From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM04-DM6-obe.outbound.protection.outlook.com (mail-dm6nam08on2068.outbound.protection.outlook.com [40.107.102.68]) by sourceware.org (Postfix) with ESMTPS id 639623858D33 for ; Tue, 31 May 2022 11:06:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 639623858D33 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RjcqciEVJL69NGYi42Y2ATIu0WxdWE8h1MRRHWU1w4XJbghScWZvZhDhMfbitoAWIneqACKmGsijVb22nOL7fwTBLrN9rj3YmXNqqBwuege+wLSfIb8ZiMo1YWRFYCJ3TnNbnjcekv5Jj4wwUO0o/hz7DoS9hq9E32WCVCuHWr1DrQB+JJKgASKxfmIEcJsOF7CTMB1X1ejYBCb83QQ1+d9L0D1HwjKRxtuTiDIsKizlxmncU1ft4R5QMJCJ3VWnyCoaB0FYFCqWao7Wc/h2d6HonAyeYKOs1OaCBxflyIzsWNYDdKNsvXyv5UlcsXNuT7kGkbeeFrGdZFp6V4zaag== 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=RO0Enp6osQnrfKk/1Bp/jvtQQQQmq7YfmTLp6DCBMAU=; b=SNRgjoAR1W9cAA0T7XJmuPO3yUxUqHVD3v+bFSgQ8Rbz8umel13wdMkg9a50wuBJHRugtROiE4sHOewQdMPLsTUgCkxiizCX6B1fRVBsMLhPydBwOTUWoGGa6MjaBfDMzoxBKuGNhiXI8qw436DVFCJgwhi7EVcH/nZlrWWFXACuZikYgTv94aaYghQtZyqpIhxSGYVQeZx0du/aMvaohrZwvTdoP6uL3m61Jc2TS9vyAO2xojCuCcEkXuse78lp0kAKJW7pWnttNfPwJlDgbAvd6VwkD0miZznkkKpeJCcXv1oAOxMX4k0VEK92Df8/4XqssaZSYyvUhzJUQ5Ne6w== 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 MW2PR12MB4684.namprd12.prod.outlook.com (2603:10b6:302:13::29) by BL1PR12MB5780.namprd12.prod.outlook.com (2603:10b6:208:393::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.17; Tue, 31 May 2022 11:06:45 +0000 Received: from MW2PR12MB4684.namprd12.prod.outlook.com ([fe80::b54a:73b4:f346:66a8]) by MW2PR12MB4684.namprd12.prod.outlook.com ([fe80::b54a:73b4:f346:66a8%7]) with mapi id 15.20.5293.019; Tue, 31 May 2022 11:06:45 +0000 From: "Kumar N, Bhuvanendra" To: "binutils@sourceware.org" CC: Nick Clifton , "George, Jini Susan" , "Natarajan, Kavitha" Subject: [PATCH] Binutils support for dwarf-5 (location and range lists related) Thread-Topic: [PATCH] Binutils support for dwarf-5 (location and range lists related) Thread-Index: Adh020vad4LVvQo5TT66Bt6jYXvDbA== Date: Tue, 31 May 2022 11:06:45 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: MSIP_Label_d4243a53-6221-4f75-8154-e4b33a5707a1_Enabled=true; MSIP_Label_d4243a53-6221-4f75-8154-e4b33a5707a1_SetDate=2022-05-31T10:18:45Z; MSIP_Label_d4243a53-6221-4f75-8154-e4b33a5707a1_Method=Privileged; MSIP_Label_d4243a53-6221-4f75-8154-e4b33a5707a1_Name=Public-AIP 2.0; MSIP_Label_d4243a53-6221-4f75-8154-e4b33a5707a1_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; MSIP_Label_d4243a53-6221-4f75-8154-e4b33a5707a1_ActionId=0f674614-e8b0-4609-99b0-70a3fbf96cc0; MSIP_Label_d4243a53-6221-4f75-8154-e4b33a5707a1_ContentBits=1 msip_label_d4243a53-6221-4f75-8154-e4b33a5707a1_enabled: true msip_label_d4243a53-6221-4f75-8154-e4b33a5707a1_setdate: 2022-05-31T11:06:37Z msip_label_d4243a53-6221-4f75-8154-e4b33a5707a1_method: Privileged msip_label_d4243a53-6221-4f75-8154-e4b33a5707a1_name: Public-AIP 2.0 msip_label_d4243a53-6221-4f75-8154-e4b33a5707a1_siteid: 3dd8961f-e488-4e60-8e11-a82d994e183d msip_label_d4243a53-6221-4f75-8154-e4b33a5707a1_actionid: 2126ca69-ff70-4bcb-ae03-dfef33d8f4cd msip_label_d4243a53-6221-4f75-8154-e4b33a5707a1_contentbits: 0 x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 564d6f23-f80b-4887-609a-08da42f5a68a x-ms-traffictypediagnostic: BL1PR12MB5780: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: BKNh3DrwBTmsLi7LZTSU4Xab8t2eB8/nFduMhRO9IEJQ+Q1pVLoGnTQ3BNQ0cqQIMHML9tZeedFF9WrhTopvBt6NqKkLcg2Y6ibB1tPmJm2FPU/WQFYerd++dW1qt9n5jztOSdPrbb3xNLh/kYWlUrgjs6iYQKsXr+V9d2Sx8sTQ+4WtG9Xix/dzLKZIo36lltm9I6jOscNbt0h1Hso/dKM2qFiFRJZjwMr6bOsxN2rzDOmhHSXERTXHzP6Pk1uPrrVcbWEwFUXZTj/tDDgO9nZhxdQ62FFtJeNxEISmCER5jdaeniu2wiiS5ziqfjRIK6dlu515eOz/B1vNfX/Lo4NV8z4bsKDoq03Yhddyj6+TUhUcGom+JvBKFmeh/sPix414yrBdabukf0iNUkgJqZ6ok22p74jV7kk4LbgIZq+kcQtoZkJiZU5nL4dT3C13zBSybK2wAWaQ/ep9p7IldWAv241BY6wBt6uJfiVVDK1wSQasiW9h6Iz21oFQauBNE0X2xs1c1GcbTtjyD27UHXXwt7HG1I5XkmmgNGJh/tfYUh18PO6ANjE0zGiq+Ej8sDxueeqliKkppXxGVNW/IhpvJca9ZTGSHml+IjW5KjvK9iVadqg+A4KzX50H5vWgwVndnR071SbWPYFcNL4X8/849opCJyta0HzGku3vHh/e2mo4n7ojtKaiC8YRzY3Y9qU7NZMGB2618kBbS/t3NqZboU1tmdXCjMg23S2/oldCpXzSM+6jIASgQ4hJVMUYO9BWmDS7BxAdDJc7cCC5B/Ol0F5w1f2q1NNIwXkwW1xbA8KDhNlwpdIt0rCmljmw x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MW2PR12MB4684.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(83380400001)(66946007)(9686003)(66446008)(53546011)(55016003)(66556008)(6916009)(508600001)(86362001)(99936003)(76116006)(54906003)(166002)(316002)(71200400001)(2906002)(8936002)(30864003)(8676002)(186003)(64756008)(55236004)(26005)(5660300002)(6506007)(66476007)(966005)(38070700005)(38100700002)(33656002)(4326008)(122000001)(52536014)(7696005)(2004002)(579004)(559001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?dpjqYPMEM00QEaAoWlr3TMt6q7XXoDo9c86gpQGR4bnMSj5iaiarf1aeRYTV?= =?us-ascii?Q?PQ8yb+Sxzy4Y7ma/mG3vEuLsgMxYk+VGTPysOICJ1AuMMlCjV4/gRbQFDXeO?= =?us-ascii?Q?WHslrK7+dEAIByXnHEFQGIA8P4NI/RFM+J2Zck+TgcO9EfRAsybeYQyy6mWV?= =?us-ascii?Q?8W/kk8uwN7jwdfvqQNt+EwAY1mVH0cJyKgZRVvIrQsipbj02XWTU2I77WIHE?= =?us-ascii?Q?NiDMNczr2L0hLfPMJnHa9PWx93iACDKwlJJU98A1gbFwFXkj5dUgMv0SDjOS?= =?us-ascii?Q?y3tuBDY5FRBTa86W9JkF82PsPpNOJm03ptBNsmvY50TUOrLYYiFHBvf2G9Xm?= =?us-ascii?Q?emf1dbRytlBS8RFvfINXngtlBdnioAl7GkJETXUALJ2C8+S9tY9P1z5i4nDs?= =?us-ascii?Q?7I9mA2KfDSl3oeqMjqLjA6dA31znqpyoA8KTJtAcDvDTv/3BtdtUsEl0xjqJ?= =?us-ascii?Q?vPdBmt9yXQWLzM+SNfNA0Paq2x+L5y6fy2eB4BAifs4TjJxQzZIF4MzRtYAS?= =?us-ascii?Q?HSxx1xItwj7fHwWsILlbbf6tgUYvsoIsFKDEjSnDPhicFU0t14EmG4oSQMTB?= =?us-ascii?Q?iqBJ8P1vwRPPUx5uzn5jJ6nFoeyYjHOY6lhuPpHOmsMYNm/lQ9W/xBSE/5+B?= =?us-ascii?Q?OSm5MlDu5xvI0m043jLTytE1rplHcA8fsXmD6EQZB+E5ePzsgZ0VozOXLaq5?= =?us-ascii?Q?BCbt4/sX9+N4zewagS2+Rd9WWICeMlJc7gQwETC+GrRRljGlm/gq41EJoRx6?= =?us-ascii?Q?SXq4XdqvyuKjjUhD/qEDCwnNUVGQEngU5AxE7C6MZjuZbVPuRXhplh2VrCKo?= =?us-ascii?Q?wBwW8VTlUpD7kVH8+ruqrI3eq1PM2hWDeJHukKBATe3HQZCp9iXWi+HJB3V0?= =?us-ascii?Q?fDWEog10cA/qIYOSDgmC21dghu2TyX64Lk+xacu+UfOI41qaugjO9DGt1V8C?= =?us-ascii?Q?O1T3pLROMdr6AD0JNnfZP0IIy676nbFAS1zm5Xkqh5lt20m57Rpckcr15Pqm?= =?us-ascii?Q?AbwTbC/Xb9jO58ZTn5s1f3zB0bJ1Ka0x1aYoDVxQ7b463YcyDHG1AFABaxSW?= =?us-ascii?Q?K0HcmY0JN/1fFTU9SV7SW6LlqxH4wyRLIOIZSWYZ7u6iAkp1zKE38EkQU5k9?= =?us-ascii?Q?JVO7g9MwnGBTH3W+zoqsCUkq426kkQmwcqNo9YkTb3NcoDxDkcDQENpd3zDi?= =?us-ascii?Q?U2xzHj3/jqnaJxYBq2b0yUQ6lVhZiTps77mpSwKTnGKXtGG5rh7otIEE8O16?= =?us-ascii?Q?XLQE4NPMcaMqFGcimczWzbt0WsGbetcy2v7n3FaeF8ekq03+jIFUSYHzw239?= =?us-ascii?Q?Yp1OvHh6UfIFrnb7n4MPLMVffd9h6w5Ky/NT8p+ySegoSCINoo73S/4JGWgx?= =?us-ascii?Q?XjzFimocTDfO00pe9ciBx+w/4H2NHJwztunvlix6sln1pO9lpt2p+WNF5In5?= =?us-ascii?Q?i3LSmcsngEwxHImTEfsKtCrWDejiI9mWUoQzIDGa2LygY2nzDNZW9GDaluwQ?= =?us-ascii?Q?t/5dBm4pFAgfg8959y6PasB8Grsc3RmdOF7MlDhnLLjH7V3ZYUpAhZVlVjZs?= =?us-ascii?Q?BMXLVXBGZ02qh83Qq3kXu1eFy1xD5lrlCBJ6pfB46T/a6mK37HReVW6yOtfD?= =?us-ascii?Q?OV5e8bPvPuV7HeF7RVywpv7PYDvOxSNURLIUxnoyHb9rkhFcPM2PPGGsYLHt?= =?us-ascii?Q?Y2BRIG/gKGLnshpqV69XxnoV/luTY6K+WRKckSVImQq8Pfd4eNp2con+5UcP?= =?us-ascii?Q?R1vBwUwsOA=3D=3D?= Content-Type: multipart/mixed; boundary="_005_MW2PR12MB4684E7B148D1C2972E32668187DC9MW2PR12MB4684namp_" MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW2PR12MB4684.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 564d6f23-f80b-4887-609a-08da42f5a68a X-MS-Exchange-CrossTenant-originalarrivaltime: 31 May 2022 11:06:45.4385 (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: Z1wk5M3FGK7K1pTL6MJslHFOhbOJln8eTCvaFVPKyL0mOqFNsDWPY66/NzKb4I1/qomg1BaxptLiqbB2VDFBnA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5780 X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, HTML_MESSAGE, KAM_SHORT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-Content-Filtered-By: Mailman/MimeDel 2.1.29 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: Tue, 31 May 2022 11:07:02 -0000 --_005_MW2PR12MB4684E7B148D1C2972E32668187DC9MW2PR12MB4684namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable [Public] Hi, As part of dwarf-5 many new things are added for location and range lists s= upport and clang and GCC compiler supports these features. For clang compiler compiled objects with dwarf-5, multiple issues are fixed= in Binutils(readelf/objdump) which are related to .debug_rnglists and .deb= ug_loclists sections and their offset address dump comprising single and mu= ltiple CU. Binutils(readelf/objdump) emits error/warning/incorrect output i= n these cases which are fixed now. There are 2 patches uploaded/inlined below. Fixes are divided into 2 patche= s(instead of making into one big patch), so that fix for each issues can be= addressed separately, hence might be easy to review these changes. Patch 2= /2 is continuation of patch 1/2. Even though many of these fixes are applic= able to clang compiler generated objects, they are also applicable to GCC c= ompiled objects as well. These fixes caters both clang and GCC. Issues fixed in patch 1/2 are: Issue 1: .debug_rnglists section dump for single CU. Incorrect section dump= or error while dumping .debug_rnglists section is fixed. Issue 2: location list offset address dump under DW_AT_location is correcte= d. while dumping the location list offset either the address dumped is wron= g(refers to .debug_addr instead of .debug_loclists) or the below warning wa= s emitted by readelf/objdump when used with objects having single CU and mu= ltiple CU. <49> DW_AT_location :readelf: Warning: Offset into section .debug_addr= too big: 0x18 Issue 3: range list offset address dump under DW_AT_ranges is corrected. Be= fore fix, the range list offset displayed is wrong, its pointing to .debug_= addr section. After fix, this offset is actually points to .debug_rnglists = section. Before fix: <3bdf> DW_AT_ranges : (addr_index: 0x0): 9008 After fix: <3bdf> DW_AT_ranges : (addr_index: 0x0): 2c Contents of the .debug_rnglists section: . . . Offsets starting at 0xc: [ 0] 0x2c Issues fixed in patch 2/2 are: Issue 4: .debug_rnglists section dump for multiple CU. For each CU, range l= ist header is dumped now. Fix caters both clang and gcc. NOTE: I will be sending the Binutils patch for split-dwarf with dwarf-5 for= clang and gcc compiler. regards, bhuvan PATCH 1/2 inlined : >From 96ce32f762803a7d74ca30c3930f1679afc0100c Mon Sep 17 00:00:00 2001 From: =3D?UTF-8?q?=3DE2=3D80=3D9Cbhkumarn=3DE2=3D80=3D9D?=3D Bhuvanendra.Ku= marN@amd.com Date: Tue, 31 May 2022 14:07:17 +0530 Subject: [PATCH] [PATCH 1/2] Binutils support for dwarf-5. For clang compiled with dwarf-5, multiple issues are fixed which are related to .debug_rnglists and .debug_loclists sections and their offset address dump comprising single and multiple CU. There are 2 patches and this is patch 1/2. Issues fixed in patch 1/2 are: Issue 1: .debug_rnglists section dump for single CU. Issue 2: location list offset address dump under DW_AT_location is correcte= d. Issue 3: range list offset address dump under DW_AT_ranges is corrected. * dwarf.c (fetch_indexed_value): Add base_address as parameter and use it to access the section offset. (read_and_display_attr_value): Handle DW_FORM_loclistx and DW_FORM_rnglistx forms separately. (display_debug_rnglists_list): Fix support for DW_RLE_base_addressx, DW_RLE_startx_length. (display_debug_ranges): Correct the range list entries starting addre= ss. --- binutils/dwarf.c | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/binutils/dwarf.c b/binutils/dwarf.c index caa3ce48d00..566104762d1 100644 --- a/binutils/dwarf.c +++ b/binutils/dwarf.c @@ -118,6 +118,7 @@ int dwarf_cutoff_level =3D -1; unsigned long dwarf_start_die; int dwarf_check =3D 0; +#define DEBUG_LOCLISTS_RNGLISTS_SECTION_HEADER_LEN 12 /* Convenient constant, to avoid having to cast -1 to dwarf_vma when testing whether e.g. a locview list is present. */ @@ -826,7 +827,8 @@ fetch_indexed_addr (dwarf_vma offset, uint32_t num_byte= s) static dwarf_vma fetch_indexed_value (dwarf_vma idx, - enum dwarf_section_display_enum sec_enum) + enum dwarf_section_display_enum sec_enum, + dwarf_vma base_address) { struct dwarf_section *section =3D &debug_displays [sec_enum].section; @@ -851,8 +853,12 @@ fetch_indexed_value (dwarf_vma idx, dwarf_vma offset =3D idx * pointer_size; - /* Offsets are biased by the size of the section header. */ - offset +=3D bias; + /* Offsets are biased by the size of the section header + or base address. */ + if (sec_enum =3D=3D loclists) + offset +=3D base_address; + else + offset +=3D bias; if (offset + pointer_size > section->size) { @@ -2788,7 +2794,15 @@ read_and_display_attr_value (unsigned long = attribute, offset =3D base + uvalue * pointer_size; - if (do_wide) + if (form =3D=3D DW_FORM_loclistx) + printf (_("%c(index: 0x%s): %s"), delimiter, + dwarf_vmatoa ("x", uvalue), + dwarf_vmatoa ("x", debug_info_p->loc_offsets [uvalue])); + else if (form =3D=3D DW_FORM_rnglistx) + printf (_("%c(index: 0x%s): %s"), delimiter, + dwarf_vmatoa ("x", uvalue), + dwarf_vmatoa ("x", fetch_indexed_value (uvalue, rnglists,= 0))); + else if (do_wide) /* We have already displayed the form name. */ printf (_("%c(index: 0x%s): %s"), delimiter, dwarf_vmatoa ("x", uvalue), @@ -2870,7 +2884,7 @@ read_and_display_attr_value (unsigned long = attribute, } if (form =3D=3D DW_FORM_loclistx) - uvalue =3D fetch_indexed_value (uvalue, loclists); + uvalue =3D fetch_indexed_value (num, loclists, debug_info_p->loc= lists_base); else if (this_set !=3D NULL) uvalue +=3D this_set->section_offsets [DW_SECT_LOC]; @@ -2939,7 +2953,7 @@ read_and_display_attr_value (unsigned long = attribute, } if (form =3D=3D DW_FORM_rnglistx) - uvalue =3D fetch_indexed_value (uvalue, rnglists); + uvalue =3D fetch_indexed_value (uvalue, rnglists, 0); debug_info_p->range_lists [num] =3D uvalue; debug_info_p->num_range_lists++; @@ -7976,9 +7990,6 @@ display_debug_rnglists_list (unsigned char * start, case DW_RLE_base_addressx: READ_ULEB (base_address, start, finish); print_dwarf_vma (base_address, pointer_size); - printf (_("(base address index) ")); - base_address =3D fetch_indexed_addr (base_address, pointer_size); - print_dwarf_vma (base_address, pointer_size); printf (_("(base address)\n")); break; case DW_RLE_startx_endx: @@ -7990,7 +8001,6 @@ display_debug_rnglists_list (unsigned char * start, case DW_RLE_startx_length: READ_ULEB (begin, start, finish); READ_ULEB (length, start, finish); - begin =3D fetch_indexed_addr (begin, pointer_size); end =3D begin + length; break; case DW_RLE_offset_pair: @@ -8243,7 +8253,7 @@ display_debug_ranges (struct dwarf_section *section, (unsigned long) offset, i); continue; } - next =3D section_begin + offset; + next =3D section_begin + offset + DEBUG_LOCLISTS_RNGLISTS_SECTION_HE= ADER_LEN; /* If multiple DWARF entities reference the same range then we will have multiple entries in the `range_entries' list for the same -- 2.17.1 PATCH 2/2 inlined: >From 882829b72716d43a7f4b3ce2c82e58d3fa6d4573 Mon Sep 17 00:00:00 2001 From: =3D?UTF-8?q?=3DE2=3D80=3D9Cbhkumarn=3DE2=3D80=3D9D?=3D Bhuvanendra.Ku= marN@amd.com Date: Tue, 31 May 2022 15:03:16 +0530 Subject: [PATCH] [PATCH 2/2] Binutils support for dwarf-5. For clang compiled with dwarf-5, multiple issues are fixed which are related to .debug_rnglists and .debug_loclists sections and their offset address dump comprising single and multiple CU. There are 2 patches and this is patch 2/2 and it has dependency on patch 1/2 and its continuation of patch 1/2. Issues fixed in patch 2/2 are: Issue 4: .debug_rnglists section dump for multiple CU. * dwarf.c (fetch_indexed_value): Use base_address parameter to access the section offset. (read_and_display_attr_value): Fix support for DW_FORM_rnglistx form. Add support for DW_AT_rnglists_base attribute. Read attribute DW_AT_rnglists_base which can come before or after DW_AT_ranges attribute. (display_offset_entry_loclists): Fix support for DW_LLE_base_addressx= . (display_debug_rnglists_list): Add start_header as parameter and return the start of the range list header of next compilation unit. (display_debug_rnglists_header): New function to dump range lists hea= der for each compilation unit. (display_debug_ranges): For each compilation unit call display_debug_rnglists_header accordingly. * dwarf.h (struct debug_info): Add rnglists_base field. * testsuite/binutils-all/dw5-loclist.S: New file, .debug_loclists sec= tion content is updated. * testsuite/binutils-all/dw5-loclist.W: New file, expected output. * testsuite/binutils-all/readelf.exp: Added new test point dw5-loclis= t. --- binutils/dwarf.c | 143 +++- binutils/dwarf.h | 1 + binutils/testsuite/binutils-all/dw5-loclist.S | 691 ++++++++++++++++++ binutils/testsuite/binutils-all/dw5-loclist.W | 27 + binutils/testsuite/binutils-all/readelf.exp | 19 + 5 files changed, 865 insertions(+), 16 deletions(-) create mode 100644 binutils/testsuite/binutils-all/dw5-loclist.S create mode 100644 binutils/testsuite/binutils-all/dw5-loclist.W diff --git a/binutils/dwarf.c b/binutils/dwarf.c index 566104762d1..58675b4088d 100644 --- a/binutils/dwarf.c +++ b/binutils/dwarf.c @@ -118,7 +118,6 @@ int dwarf_cutoff_level =3D -1; unsigned long dwarf_start_die; int dwarf_check =3D 0; -#define DEBUG_LOCLISTS_RNGLISTS_SECTION_HEADER_LEN 12 /* Convenient constant, to avoid having to cast -1 to dwarf_vma when testing whether e.g. a locview list is present. */ @@ -855,7 +854,7 @@ fetch_indexed_value (dwarf_vma idx, /* Offsets are biased by the size of the section header or base address. */ - if (sec_enum =3D=3D loclists) + if ((sec_enum =3D=3D loclists) || (sec_enum =3D=3D rnglists)) offset +=3D base_address; else offset +=3D bias; @@ -921,6 +920,7 @@ typedef struct abbrev_map static abbrev_map * cu_abbrev_map =3D NULL; static unsigned long num_abbrev_map_entries =3D 0; static unsigned long next_free_abbrev_map_entry =3D 0; +static abbrev_attr *ranges_attr =3D NULL; #define INITIAL_NUM_ABBREV_MAP_ENTRIES 8 #define ABBREV_MAP_ENTRIES_INCREMENT 8 @@ -2451,6 +2451,7 @@ read_and_display_attr_value (unsigned long = attribute, dwarf_vma uvalue_hi =3D 0; unsigned char *block_start =3D NULL; unsigned char *orig_data =3D data; + dwarf_vma uvalue_rnglists_base; if (data > end || (data =3D=3D end && form !=3D DW_FORM_flag_present)) { @@ -2801,7 +2802,7 @@ read_and_display_attr_value (unsigned long = attribute, else if (form =3D=3D DW_FORM_rnglistx) printf (_("%c(index: 0x%s): %s"), delimiter, dwarf_vmatoa ("x", uvalue), - dwarf_vmatoa ("x", fetch_indexed_value (uvalue, rnglists,= 0))); + dwarf_vmatoa ("x", debug_info_p->range_lists [uvalue])); else if (do_wide) /* We have already displayed the form name. */ printf (_("%c(index: 0x%s): %s"), delimiter, @@ -2839,6 +2840,13 @@ read_and_display_attr_value (unsigned long = attribute, debug_info_p->loclists_base =3D uvalue; break; + case DW_AT_rnglists_base: + if (debug_info_p->rnglists_base) + warn (_("CU @ 0x%s has multiple rnglists_base values"), + dwarf_vmatoa ("x", debug_info_p->cu_offset)); + debug_info_p->rnglists_base =3D uvalue; + break; + case DW_AT_frame_base: have_frame_base =3D 1; /* Fall through. */ @@ -2934,6 +2942,24 @@ read_and_display_attr_value (unsigned long = attribute, break; case DW_AT_ranges: + uvalue_rnglists_base =3D 0; + /* DW_AT_rnglists_base can appear before or after DW_AT_ranges attr= ibute. + If its found before, DW_AT_rnglists_base is used directly, + otherwise its looked ahead from DW_AT_ranges and read. */ + if (!debug_info_p->rnglists_base) { + if (ranges_attr && ranges_attr->next && ranges_attr->next->next &= & + (ranges_attr->next->next->attribute =3D=3D DW_AT_rnglists_bas= e)) { + unsigned char *data_dupl =3D data; + dwarf_vma uvalue_skip; + data_dupl =3D skip_attr_bytes (ranges_attr->next->form, data_du= pl, end, + pointer_size, offset_size, + dwarf_version, &uvalue_skip); + SAFE_BYTE_GET_AND_INC (uvalue_rnglists_base, data_dupl, offset_= size, end); + } + } + else + uvalue_rnglists_base =3D debug_info_p->rnglists_base; + if ((dwarf_version < 4 && (form =3D=3D DW_FORM_data4 || form =3D=3D DW_FORM_data8)) || form =3D=3D DW_FORM_sec_offset @@ -2942,6 +2968,7 @@ read_and_display_attr_value (unsigned long = attribute, /* Process range list. */ unsigned int lmax =3D debug_info_p->max_range_lists; unsigned int num =3D debug_info_p->num_range_lists; + dwarf_vma uvalue_index; if (lmax =3D=3D 0 || num >=3D lmax) { @@ -2952,10 +2979,15 @@ read_and_display_attr_value (unsigned long = attribute, debug_info_p->max_range_lists =3D lmax; } + uvalue_index =3D uvalue; if (form =3D=3D DW_FORM_rnglistx) - uvalue =3D fetch_indexed_value (uvalue, rnglists, 0); + uvalue =3D fetch_indexed_value (uvalue, rnglists, uvalue_rnglist= s_base); - debug_info_p->range_lists [num] =3D uvalue; + uvalue +=3D uvalue_rnglists_base; + if (form =3D=3D DW_FORM_rnglistx) + debug_info_p->range_lists [uvalue_index] =3D uvalue; + else + debug_info_p->range_lists [num] =3D uvalue; debug_info_p->num_range_lists++; } break; @@ -3329,6 +3361,7 @@ read_and_display_attr_value (unsigned long = attribute, /* Fall through. */ case DW_AT_location: case DW_AT_loclists_base: + case DW_AT_rnglists_base: case DW_AT_string_length: case DW_AT_return_addr: case DW_AT_data_member_location: @@ -3347,8 +3380,12 @@ read_and_display_attr_value (unsigned long = attribute, if ((dwarf_version < 4 && (form =3D=3D DW_FORM_data4 || form =3D=3D DW_FORM_data8)) || form =3D=3D DW_FORM_sec_offset - || form =3D=3D DW_FORM_loclistx) - printf (_(" (location list)")); + || form =3D=3D DW_FORM_loclistx) { + if (attribute =3D=3D DW_AT_rnglists_base) + printf (_(" (range list)")); + else + printf (_(" (location list)")); + } /* Fall through. */ case DW_AT_allocated: case DW_AT_associated: @@ -3835,6 +3872,7 @@ process_debug_info (struct dwarf_section * section, debug_information [unit].range_lists =3D NULL; debug_information [unit].max_range_lists=3D 0; debug_information [unit].num_range_lists =3D 0; + debug_information [unit].rnglists_base =3D 0; } if (!do_loc && dwarf_start_die =3D=3D 0) @@ -4056,6 +4094,8 @@ process_debug_info (struct dwarf_section * section, if (! do_loc && do_printing) /* Show the offset from where the tag was extracted. */ printf (" <%lx>", (unsigned long)(tags - section_begin)); + if (attr->attribute =3D=3D DW_AT_ranges) + ranges_attr =3D attr; tags =3D read_and_display_attr (attr->attribute, attr->form, attr->implicit_const, @@ -7086,9 +7126,6 @@ display_offset_entry_loclists (struct dwarf_section *= section) case DW_LLE_base_addressx: READ_ULEB (base_address, start, end); print_dwarf_vma (base_address, address_size); - printf (_("(index into .debug_addr) ")); - base_address =3D fetch_indexed_addr (base_address, address_size= ); - print_dwarf_vma (base_address, address_size); printf (_("(base address)\n")); continue; @@ -7959,7 +7996,8 @@ display_debug_rnglists_list (unsigned char * start, unsigned char * finish, unsigned int pointer_size, dwarf_vma offset, - dwarf_vma base_address) + dwarf_vma base_address, + unsigned char ** start_header) { unsigned char *next =3D start; @@ -8026,8 +8064,10 @@ display_debug_rnglists_list (unsigned char * start, rlet =3D DW_RLE_end_of_list; break; } - if (rlet =3D=3D DW_RLE_end_of_list) - break; + if (rlet =3D=3D DW_RLE_end_of_list) { + *start_header =3D start; + break; + } if (rlet =3D=3D DW_RLE_base_address || rlet =3D=3D DW_RLE_base_addre= ssx) continue; @@ -8050,6 +8090,69 @@ display_debug_rnglists_list (unsigned char * start, } } +static void display_debug_rnglists_header (unsigned char * start, + unsigned char * finish) +{ + dwarf_vma initial_length; + unsigned char segment_selector_size; + unsigned int offset_size, offset_entry_count, i; + unsigned short version; + unsigned char address_size =3D 0; + + /* Get and check the length of the block. */ + SAFE_BYTE_GET_AND_INC (initial_length, start, 4, finish); + + if (initial_length =3D=3D 0xffffffff) + { + /* This section is 64-bit DWARF 3. */ + SAFE_BYTE_GET_AND_INC (initial_length, start, 8, finish); + offset_size =3D 8; + } + else + offset_size =3D 4; + + /* Get the other fields in the header. */ + SAFE_BYTE_GET_AND_INC (version, start, 2, finish); + SAFE_BYTE_GET_AND_INC (address_size, start, 1, finish); + SAFE_BYTE_GET_AND_INC (segment_selector_size, start, 1, finish); + SAFE_BYTE_GET_AND_INC (offset_entry_count, start, 4, finish); + + putchar ('\n'); + printf (_(" Length: 0x%s\n"), dwarf_vmatoa ("x", initial_l= ength)); + printf (_(" DWARF version: %u\n"), version); + printf (_(" Address size: %u\n"), address_size); + printf (_(" Segment size: %u\n"), segment_selector_size); + printf (_(" Offset entries: %u\n"), offset_entry_count); + + if (offset_entry_count !=3D 0) + { + printf (_("\n Offsets starting at 0x%lx:\n"), + (long)(start - debug_displays [rnglists].section.start))= ; + if (offset_size =3D=3D 8) + { + for (i =3D 0; i < offset_entry_count; i++) + { + dwarf_vma entry; + + SAFE_BYTE_GET_AND_INC (entry, start, 8, finish); + printf (_(" [%6u] 0x%s\n"), i, dwarf_vmatoa ("x", ent= ry)); + } + } + else + { + for (i =3D 0; i < offset_entry_count; i++) + { + uint32_t entry; + + SAFE_BYTE_GET_AND_INC (entry, start, 4, finish); + printf (_(" [%6u] 0x%x\n"), i, entry); + } + } + } + putchar ('\n'); + printf (_(" Offset Begin End\n")); +} + static int display_debug_ranges (struct dwarf_section *section, void *file ATTRIBUTE_UNUSED) @@ -8066,6 +8169,7 @@ display_debug_ranges (struct dwarf_section *section, /* Initialize it due to a false compiler warning. */ unsigned char address_size =3D 0; dwarf_vma last_offset =3D 0; + unsigned char * start_header =3D NULL; if (bytes =3D=3D 0) { @@ -8226,7 +8330,8 @@ display_debug_ranges (struct dwarf_section *section, putchar ('\n'); printf (_(" Offset Begin End\n")); - for (i =3D 0; i < num_range_list; i++) + unsigned int range_lists_count =3D 0; + for (i =3D 0; i < num_range_list; i++, range_lists_count++) { struct range_entry *range_entry =3D &range_entries[i]; debug_info *debug_info_p =3D range_entry->debug_info_p; @@ -8239,6 +8344,12 @@ display_debug_ranges (struct dwarf_section *section, offset =3D range_entry->ranges_offset; base_address =3D debug_info_p->base_address; + if ((i > 0) && + (start_header !=3D NULL) && + (range_lists_count =3D=3D range_entries[i-1].debug_info_p->num_r= ange_lists)) { + range_lists_count =3D 0; + display_debug_rnglists_header (start_header, finish); + } /* PR 17512: file: 001-101485-0.001:0.1. */ if (pointer_size < 2 || pointer_size > 8) { @@ -8253,7 +8364,7 @@ display_debug_ranges (struct dwarf_section *section, (unsigned long) offset, i); continue; } - next =3D section_begin + offset + DEBUG_LOCLISTS_RNGLISTS_SECTION_HE= ADER_LEN; + next =3D section_begin + offset; /* If multiple DWARF entities reference the same range then we will have multiple entries in the `range_entries' list for the same @@ -8285,7 +8396,7 @@ display_debug_ranges (struct dwarf_section *section, if (is_rnglists) display_debug_rnglists_list - (start, finish, pointer_size, offset, base_address); + (start, finish, pointer_size, offset, base_address, &start_header); else display_debug_ranges_list (start, finish, pointer_size, offset, base_address); diff --git a/binutils/dwarf.h b/binutils/dwarf.h index 040e674c6ce..8a89c08e7c2 100644 --- a/binutils/dwarf.h +++ b/binutils/dwarf.h @@ -192,6 +192,7 @@ typedef struct dwarf_vma * range_lists; unsigned int num_range_lists; unsigned int max_range_lists; + dwarf_vma rnglists_base; } debug_info; diff --git a/binutils/testsuite/binutils-all/dw5-loclist.S b/binutils/tests= uite/binutils-all/dw5-loclist.S new file mode 100644 index 00000000000..5adf66c66c0 --- /dev/null +++ b/binutils/testsuite/binutils-all/dw5-loclist.S @@ -0,0 +1,691 @@ +/* Copyright (C) 2017-2022 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see http://www.gnu.org/licenses/. */ + + .file "main.c" + .text +.Ltext0: + .p2align 4,,15 + .globl func + .type func, %function +func: +.LFB0: + /* main.c:5 */ +.LM1: +/* BLOCK 2 freq:10000 seq:0 */ +/* PRED: ENTRY [100.0%] (FALLTHRU) */ + /* main.c:5 */ +.LM2: + .dc.b 0 +/* SUCC: */ + .dc.b 0 +.LFE0: + .size func, .-func + .section .text.startup,"ax",%progbits + .p2align 4,,15 + .globl main + .type main, %function +main: +.LFB1: + /* main.c:6 */ +.LM3: +.LVL0: +/* BLOCK 2 freq:10000 seq:0 */ +/* PRED: ENTRY [100.0%] (FALLTHRU) */ + .dc.b 0 + /* main.c:6 */ +.LM4: + .dc.b 0 +.LVL1: + .dc.b 0 +.LVL2: + .dc.b 0 +/* SUCC: EXIT [100.0%] */ + .dc.b 0 +.LFE1: + .size main, .-main + .ifdef HPUX +pvar .comm 8 +yvar .comm 4 + .else + .comm pvar,8,8 + .comm yvar,4,4 + .endif + .globl xvar + .data + .align 4 + .type xvar, %object + .size xvar, 4 +xvar: + .4byte 42 + .text +.Letext0: + .section .debug_info,"",%progbits +.Ldebug_info0: + .4byte 0x160 /* Length of Compilation Unit Info */ + .2byte 0x5 /* DWARF version number */ + .byte 0x1 /* DW_UT_compile */ + .byte 0x8 /* Pointer Size (in bytes) */ + .4byte .Ldebug_abbrev0 /* Offset Into Abbrev. Section */ + .uleb128 0x6 /* (DIE (0xc) DW_TAG_compile_unit) */ + .4byte .LASF21 /* DW_AT_producer: "GNU C11 7.0.1 20170218 (exp= erimental) -mtune=3Dgeneric -march=3Dx86-64 -gdwarf-5 -O2" */ + .byte 0x1d /* DW_AT_language */ + .4byte .LASF0 /* DW_AT_name: "main.c" */ + .4byte .LASF1 /* DW_AT_comp_dir: "" */ + .4byte .LLRL2 /* DW_AT_ranges */ + .8byte 0 /* DW_AT_low_pc */ + .4byte .Ldebug_line0 /* DW_AT_stmt_list */ + .uleb128 0x1 /* (DIE (0x2a) DW_TAG_base_type) */ + .byte 0x1 /* DW_AT_byte_size */ + .byte 0x8 /* DW_AT_encoding */ + .4byte .LASF2 /* DW_AT_name: "unsigned char" */ + .uleb128 0x1 /* (DIE (0x31) DW_TAG_base_type) */ + .byte 0x2 /* DW_AT_byte_size */ + .byte 0x7 /* DW_AT_encoding */ + .4byte .LASF3 /* DW_AT_name: "short unsigned int" */ + .uleb128 0x1 /* (DIE (0x38) DW_TAG_base_type) */ + .byte 0x4 /* DW_AT_byte_size */ + .byte 0x7 /* DW_AT_encoding */ + .4byte .LASF4 /* DW_AT_name: "unsigned int" */ + .uleb128 0x1 /* (DIE (0x3f) DW_TAG_base_type) */ + .byte 0x8 /* DW_AT_byte_size */ + .byte 0x7 /* DW_AT_encoding */ + .4byte .LASF5 /* DW_AT_name: "long unsigned int" */ + .uleb128 0x1 /* (DIE (0x46) DW_TAG_base_type) */ + .byte 0x1 /* DW_AT_byte_size */ + .byte 0x6 /* DW_AT_encoding */ + .4byte .LASF6 /* DW_AT_name: "signed char" */ + .uleb128 0x1 /* (DIE (0x4d) DW_TAG_base_type) */ + .byte 0x2 /* DW_AT_byte_size */ + .byte 0x5 /* DW_AT_encoding */ + .4byte .LASF7 /* DW_AT_name: "short int" */ + .uleb128 0x7 /* (DIE (0x54) DW_TAG_base_type) */ + .byte 0x4 /* DW_AT_byte_size */ + .byte 0x5 /* DW_AT_encoding */ + .ascii "int\0" /* DW_AT_name */ + .uleb128 0x1 /* (DIE (0x5b) DW_TAG_base_type) */ + .byte 0x8 /* DW_AT_byte_size */ + .byte 0x5 /* DW_AT_encoding */ + .4byte .LASF8 /* DW_AT_name: "long int" */ + .uleb128 0x1 /* (DIE (0x62) DW_TAG_base_type) */ + .byte 0x8 /* DW_AT_byte_size */ + .byte 0x7 /* DW_AT_encoding */ + .4byte .LASF9 /* DW_AT_name: "sizetype" */ + .uleb128 0x3 /* (DIE (0x69) DW_TAG_pointer_type) */ + /* DW_AT_byte_size (0x8) */ + .4byte 0x6e /* DW_AT_type */ + .uleb128 0x1 /* (DIE (0x6e) DW_TAG_base_type) */ + .byte 0x1 /* DW_AT_byte_size */ + .byte 0x6 /* DW_AT_encoding */ + .4byte .LASF10 /* DW_AT_name: "char" */ + .uleb128 0x8 /* (DIE (0x75) DW_TAG_variable) */ + .4byte .LASF11 /* DW_AT_name: "__environ" */ + .byte 0x2 /* DW_AT_decl_file (/usr/include/unistd.h) */ + .2byte 0x222 /* DW_AT_decl_line */ + .4byte 0x81 /* DW_AT_type */ + /* DW_AT_external */ + /* DW_AT_declaration */ + .uleb128 0x3 /* (DIE (0x81) DW_TAG_pointer_type) */ + /* DW_AT_byte_size (0x8) */ + .4byte 0x69 /* DW_AT_type */ + .uleb128 0x2 /* (DIE (0x86) DW_TAG_variable) */ + .4byte .LASF12 /* DW_AT_name: "optarg" */ + /* DW_AT_decl_file (3, /usr/include/getopt.h) */ + .byte 0x39 /* DW_AT_decl_line */ + .4byte 0x69 /* DW_AT_type */ + /* DW_AT_external */ + /* DW_AT_declaration */ + .uleb128 0x2 /* (DIE (0x90) DW_TAG_variable) */ + .4byte .LASF13 /* DW_AT_name: "optind" */ + /* DW_AT_decl_file (3, /usr/include/getopt.h) */ + .byte 0x47 /* DW_AT_decl_line */ + .4byte 0x54 /* DW_AT_type */ + /* DW_AT_external */ + /* DW_AT_declaration */ + .uleb128 0x2 /* (DIE (0x9a) DW_TAG_variable) */ + .4byte .LASF14 /* DW_AT_name: "opterr" */ + /* DW_AT_decl_file (3, /usr/include/getopt.h) */ + .byte 0x4c /* DW_AT_decl_line */ + .4byte 0x54 /* DW_AT_type */ + /* DW_AT_external */ + /* DW_AT_declaration */ + .uleb128 0x2 /* (DIE (0xa4) DW_TAG_variable) */ + .4byte .LASF15 /* DW_AT_name: "optopt" */ + /* DW_AT_decl_file (3, /usr/include/getopt.h) */ + .byte 0x50 /* DW_AT_decl_line */ + .4byte 0x54 /* DW_AT_type */ + /* DW_AT_external */ + /* DW_AT_declaration */ + .uleb128 0x4 /* (DIE (0xae) DW_TAG_variable) */ + .4byte .LASF16 /* DW_AT_name: "xvar" */ + /* DW_AT_decl_file (1, main.c) */ + .byte 0x2 /* DW_AT_decl_line */ + .4byte 0x54 /* DW_AT_type */ + /* DW_AT_external */ + .uleb128 0x9 /* DW_AT_location */ + .byte 0x3 /* DW_OP_addr */ + .8byte 0x1234 + .uleb128 0x4 /* (DIE (0xc2) DW_TAG_variable) */ + .4byte .LASF17 /* DW_AT_name: "yvar" */ + /* DW_AT_decl_file (1, main.c) */ + .byte 0x3 /* DW_AT_decl_line */ + .4byte 0x54 /* DW_AT_type */ + /* DW_AT_external */ + .uleb128 0x9 /* DW_AT_location */ + .byte 0x3 /* DW_OP_addr */ + .8byte 0x1234 + .uleb128 0x4 /* (DIE (0xd6) DW_TAG_variable) */ + .4byte .LASF18 /* DW_AT_name: "pvar" */ + /* DW_AT_decl_file (1, main.c) */ + .byte 0x4 /* DW_AT_decl_line */ + .4byte 0xea /* DW_AT_type */ + /* DW_AT_external */ + .uleb128 0x9 /* DW_AT_location */ + .byte 0x3 /* DW_OP_addr */ + .8byte 0x1234 + .uleb128 0x3 /* (DIE (0xea) DW_TAG_pointer_type) */ + /* DW_AT_byte_size (0x8) */ + .4byte 0x54 /* DW_AT_type */ + .uleb128 0x9 /* (DIE (0xef) DW_TAG_subprogram) */ + /* DW_AT_external */ + .4byte .LASF22 /* DW_AT_name: "main" */ + .byte 0x1 /* DW_AT_decl_file (main.c) */ + .byte 0x6 /* DW_AT_decl_line */ + /* DW_AT_prototyped */ + .4byte 0x54 /* DW_AT_type */ + .8byte 0x1234 /* DW_AT_low_pc */ + .8byte 0x5678 /* DW_AT_high_pc */ + .uleb128 0x1 /* DW_AT_frame_base */ + .byte 0x9c /* DW_OP_call_frame_cfa */ + /* DW_AT_call_all_calls */ + .4byte 0x13e /* DW_AT_sibling */ + .uleb128 0x5 /* (DIE (0x110) DW_TAG_formal_parameter) */ + .4byte .LASF19 /* DW_AT_name: "argc" */ + /* DW_AT_decl_file (1, main.c) */ + /* DW_AT_decl_line (0x6) */ + .4byte 0x54 /* DW_AT_type */ + .4byte .LLST0 /* DW_AT_location */ + .uleb128 0x5 /* (DIE (0x11d) DW_TAG_formal_parameter) */ + .4byte .LASF20 /* DW_AT_name: "argv" */ + /* DW_AT_decl_file (1, main.c) */ + /* DW_AT_decl_line (0x6) */ + .4byte 0x81 /* DW_AT_type */ + .4byte .LLST1 /* DW_AT_location */ + .uleb128 0xa /* (DIE (0x12a) DW_TAG_call_site) */ + .8byte 0x12345 /* DW_AT_call_return_pc */ + .4byte 0x157 /* DW_AT_call_origin */ + .uleb128 0xb /* (DIE (0x137) DW_TAG_call_site_parameter) */ + .uleb128 0x1 /* DW_AT_location */ + .byte 0x55 /* DW_OP_reg5 */ + .uleb128 0x1 /* DW_AT_call_value */ + .byte 0x30 /* DW_OP_lit0 */ + .byte 0 /* end of children of DIE 0x12a */ + .byte 0 /* end of children of DIE 0xef */ + .uleb128 0xc /* (DIE (0x13e) DW_TAG_subprogram) */ + /* DW_AT_external */ + .4byte .LASF23 /* DW_AT_name: "func" */ + .byte 0x1 /* DW_AT_decl_file (main.c) */ + .byte 0x5 /* DW_AT_decl_line */ + /* DW_AT_prototyped */ + .8byte 0x1234 /* DW_AT_low_pc */ + .8byte 0x5678 /* DW_AT_high_pc */ + .uleb128 0x1 /* DW_AT_frame_base */ + .byte 0x9c /* DW_OP_call_frame_cfa */ + /* DW_AT_call_all_calls */ + .uleb128 0xd /* (DIE (0x157) DW_TAG_subprogram) */ + /* DW_AT_external */ + /* DW_AT_declaration */ + .4byte .LASF24 /* DW_AT_linkage_name: "alarm" */ + .4byte .LASF24 /* DW_AT_name: "alarm" */ + .byte 0x2 /* DW_AT_decl_file (/usr/include/unistd.h) */ + .2byte 0x1b3 /* DW_AT_decl_line */ + .byte 0 /* end of children of DIE 0xc */ + .section .debug_abbrev,"",%progbits +.Ldebug_abbrev0: +.Lfunc_begin0: + .uleb128 0x1 /* (abbrev code) */ + .uleb128 0x24 /* (TAG: DW_TAG_base_type) */ + .byte 0 /* DW_children_no */ + .uleb128 0xb /* (DW_AT_byte_size) */ + .uleb128 0xb /* (DW_FORM_data1) */ + .uleb128 0x3e /* (DW_AT_encoding) */ + .uleb128 0xb /* (DW_FORM_data1) */ +.Lfunc_end0: + .uleb128 0x3 /* (DW_AT_name) */ + .uleb128 0xe /* (DW_FORM_strp) */ + .byte 0 + .byte 0 + .uleb128 0x2 /* (abbrev code) */ + .uleb128 0x34 /* (TAG: DW_TAG_variable) */ + .byte 0 /* DW_children_no */ + .uleb128 0x3 /* (DW_AT_name) */ + .uleb128 0xe /* (DW_FORM_strp) */ + .uleb128 0x3a /* (DW_AT_decl_file) */ + .uleb128 0x21 /* (DW_FORM_implicit_const) */ + .sleb128 3 /* (/usr/include/getopt.h) */ + .uleb128 0x3b /* (DW_AT_decl_line) */ + .uleb128 0xb /* (DW_FORM_data1) */ + .uleb128 0x49 /* (DW_AT_type) */ + .uleb128 0x13 /* (DW_FORM_ref4) */ + .uleb128 0x3f /* (DW_AT_external) */ + .uleb128 0x19 /* (DW_FORM_flag_present) */ + .uleb128 0x3c /* (DW_AT_declaration) */ + .uleb128 0x19 /* (DW_FORM_flag_present) */ + .byte 0 + .byte 0 + .uleb128 0x3 /* (abbrev code) */ + .uleb128 0xf /* (TAG: DW_TAG_pointer_type) */ + .byte 0 /* DW_children_no */ + .uleb128 0xb /* (DW_AT_byte_size) */ + .uleb128 0x21 /* (DW_FORM_implicit_const) */ + .sleb128 8 + .uleb128 0x49 /* (DW_AT_type) */ + .uleb128 0x13 /* (DW_FORM_ref4) */ + .byte 0 + .byte 0 + .uleb128 0x4 /* (abbrev code) */ + .uleb128 0x34 /* (TAG: DW_TAG_variable) */ + .byte 0 /* DW_children_no */ + .uleb128 0x3 /* (DW_AT_name) */ + .uleb128 0xe /* (DW_FORM_strp) */ + .uleb128 0x3a /* (DW_AT_decl_file) */ + .uleb128 0x21 /* (DW_FORM_implicit_const) */ + .sleb128 1 /* (main.c) */ + .uleb128 0x3b /* (DW_AT_decl_line) */ + .uleb128 0xb /* (DW_FORM_data1) */ + .uleb128 0x49 /* (DW_AT_type) */ + .uleb128 0x13 /* (DW_FORM_ref4) */ + .uleb128 0x3f /* (DW_AT_external) */ + .uleb128 0x19 /* (DW_FORM_flag_present) */ + .uleb128 0x2 /* (DW_AT_location) */ + .uleb128 0x18 /* (DW_FORM_exprloc) */ + .byte 0 + .byte 0 + .uleb128 0x5 /* (abbrev code) */ + .uleb128 0x5 /* (TAG: DW_TAG_formal_parameter) */ + .byte 0 /* DW_children_no */ + .uleb128 0x3 /* (DW_AT_name) */ + .uleb128 0xe /* (DW_FORM_strp) */ + .uleb128 0x3a /* (DW_AT_decl_file) */ + .uleb128 0x21 /* (DW_FORM_implicit_const) */ + .sleb128 1 /* (main.c) */ + .uleb128 0x3b /* (DW_AT_decl_line) */ + .uleb128 0x21 /* (DW_FORM_implicit_const) */ + .sleb128 6 + .uleb128 0x49 /* (DW_AT_type) */ + .uleb128 0x13 /* (DW_FORM_ref4) */ + .uleb128 0x2 /* (DW_AT_location) */ + .uleb128 0x17 /* (DW_FORM_sec_offset) */ + .byte 0 + .byte 0 + .uleb128 0x6 /* (abbrev code) */ + .uleb128 0x11 /* (TAG: DW_TAG_compile_unit) */ + .byte 0x1 /* DW_children_yes */ + .uleb128 0x25 /* (DW_AT_producer) */ + .uleb128 0xe /* (DW_FORM_strp) */ + .uleb128 0x13 /* (DW_AT_language) */ + .uleb128 0xb /* (DW_FORM_data1) */ + .uleb128 0x3 /* (DW_AT_name) */ + .uleb128 0x1f /* (DW_FORM_line_strp) */ + .uleb128 0x1b /* (DW_AT_comp_dir) */ + .uleb128 0x1f /* (DW_FORM_line_strp) */ + .uleb128 0x55 /* (DW_AT_ranges) */ + .uleb128 0x17 /* (DW_FORM_sec_offset) */ + .uleb128 0x11 /* (DW_AT_low_pc) */ + .uleb128 0x1 /* (DW_FORM_addr) */ + .uleb128 0x10 /* (DW_AT_stmt_list) */ + .uleb128 0x17 /* (DW_FORM_sec_offset) */ + .byte 0 + .byte 0 + .uleb128 0x7 /* (abbrev code) */ + .uleb128 0x24 /* (TAG: DW_TAG_base_type) */ + .byte 0 /* DW_children_no */ + .uleb128 0xb /* (DW_AT_byte_size) */ + .uleb128 0xb /* (DW_FORM_data1) */ + .uleb128 0x3e /* (DW_AT_encoding) */ + .uleb128 0xb /* (DW_FORM_data1) */ + .uleb128 0x3 /* (DW_AT_name) */ + .uleb128 0x8 /* (DW_FORM_string) */ + .byte 0 + .byte 0 + .uleb128 0x8 /* (abbrev code) */ + .uleb128 0x34 /* (TAG: DW_TAG_variable) */ + .byte 0 /* DW_children_no */ + .uleb128 0x3 /* (DW_AT_name) */ + .uleb128 0xe /* (DW_FORM_strp) */ + .uleb128 0x3a /* (DW_AT_decl_file) */ + .uleb128 0xb /* (DW_FORM_data1) */ + .uleb128 0x3b /* (DW_AT_decl_line) */ + .uleb128 0x5 /* (DW_FORM_data2) */ + .uleb128 0x49 /* (DW_AT_type) */ + .uleb128 0x13 /* (DW_FORM_ref4) */ + .uleb128 0x3f /* (DW_AT_external) */ + .uleb128 0x19 /* (DW_FORM_flag_present) */ + .uleb128 0x3c /* (DW_AT_declaration) */ + .uleb128 0x19 /* (DW_FORM_flag_present) */ + .byte 0 + .byte 0 + .uleb128 0x9 /* (abbrev code) */ + .uleb128 0x2e /* (TAG: DW_TAG_subprogram) */ + .byte 0x1 /* DW_children_yes */ + .uleb128 0x3f /* (DW_AT_external) */ + .uleb128 0x19 /* (DW_FORM_flag_present) */ + .uleb128 0x3 /* (DW_AT_name) */ + .uleb128 0xe /* (DW_FORM_strp) */ + .uleb128 0x3a /* (DW_AT_decl_file) */ + .uleb128 0xb /* (DW_FORM_data1) */ + .uleb128 0x3b /* (DW_AT_decl_line) */ + .uleb128 0xb /* (DW_FORM_data1) */ + .uleb128 0x27 /* (DW_AT_prototyped) */ + .uleb128 0x19 /* (DW_FORM_flag_present) */ + .uleb128 0x49 /* (DW_AT_type) */ + .uleb128 0x13 /* (DW_FORM_ref4) */ + .uleb128 0x11 /* (DW_AT_low_pc) */ + .uleb128 0x1 /* (DW_FORM_addr) */ + .uleb128 0x12 /* (DW_AT_high_pc) */ + .uleb128 0x7 /* (DW_FORM_data8) */ + .uleb128 0x40 /* (DW_AT_frame_base) */ + .uleb128 0x18 /* (DW_FORM_exprloc) */ + .uleb128 0x7a /* (DW_AT_call_all_calls) */ + .uleb128 0x19 /* (DW_FORM_flag_present) */ + .uleb128 0x1 /* (DW_AT_sibling) */ + .uleb128 0x13 /* (DW_FORM_ref4) */ + .byte 0 + .byte 0 + .uleb128 0xa /* (abbrev code) */ + .uleb128 0x48 /* (TAG: DW_TAG_call_site) */ + .byte 0x1 /* DW_children_yes */ + .uleb128 0x7d /* (DW_AT_call_return_pc) */ + .uleb128 0x1 /* (DW_FORM_addr) */ + .uleb128 0x7f /* (DW_AT_call_origin) */ + .uleb128 0x13 /* (DW_FORM_ref4) */ + .byte 0 + .byte 0 + .uleb128 0xb /* (abbrev code) */ + .uleb128 0x49 /* (TAG: DW_TAG_call_site_parameter) */ + .byte 0 /* DW_children_no */ + .uleb128 0x2 /* (DW_AT_location) */ + .uleb128 0x18 /* (DW_FORM_exprloc) */ + .uleb128 0x7e /* (DW_AT_call_value) */ + .uleb128 0x18 /* (DW_FORM_exprloc) */ + .byte 0 + .byte 0 + .uleb128 0xc /* (abbrev code) */ + .uleb128 0x2e /* (TAG: DW_TAG_subprogram) */ + .byte 0 /* DW_children_no */ + .uleb128 0x3f /* (DW_AT_external) */ + .uleb128 0x19 /* (DW_FORM_flag_present) */ + .uleb128 0x3 /* (DW_AT_name) */ + .uleb128 0xe /* (DW_FORM_strp) */ + .uleb128 0x3a /* (DW_AT_decl_file) */ + .uleb128 0xb /* (DW_FORM_data1) */ + .uleb128 0x3b /* (DW_AT_decl_line) */ + .uleb128 0xb /* (DW_FORM_data1) */ + .uleb128 0x27 /* (DW_AT_prototyped) */ + .uleb128 0x19 /* (DW_FORM_flag_present) */ + .uleb128 0x11 /* (DW_AT_low_pc) */ + .uleb128 0x1 /* (DW_FORM_addr) */ + .uleb128 0x12 /* (DW_AT_high_pc) */ + .uleb128 0x7 /* (DW_FORM_data8) */ + .uleb128 0x40 /* (DW_AT_frame_base) */ + .uleb128 0x18 /* (DW_FORM_exprloc) */ + .uleb128 0x7a /* (DW_AT_call_all_calls) */ + .uleb128 0x19 /* (DW_FORM_flag_present) */ + .byte 0 + .byte 0 + .uleb128 0xd /* (abbrev code) */ + .uleb128 0x2e /* (TAG: DW_TAG_subprogram) */ + .byte 0 /* DW_children_no */ + .uleb128 0x3f /* (DW_AT_external) */ + .uleb128 0x19 /* (DW_FORM_flag_present) */ + .uleb128 0x3c /* (DW_AT_declaration) */ + .uleb128 0x19 /* (DW_FORM_flag_present) */ + .uleb128 0x6e /* (DW_AT_linkage_name) */ + .uleb128 0xe /* (DW_FORM_strp) */ + .uleb128 0x3 /* (DW_AT_name) */ + .uleb128 0xe /* (DW_FORM_strp) */ + .uleb128 0x3a /* (DW_AT_decl_file) */ + .uleb128 0xb /* (DW_FORM_data1) */ + .uleb128 0x3b /* (DW_AT_decl_line) */ + .uleb128 0x5 /* (DW_FORM_data2) */ + .byte 0 + .byte 0 + .byte 0 + .section .debug_loclists,"",%progbits + .long .Ldebug_list_header_end0-.Ldebug_list_header_start0 # Leng= th +.Ldebug_list_header_start0: + .short 5 # Version + .byte 8 # Address size + .byte 0 # Segment selector size + .long 3 # Offset entry count +.Lloclists_table_base0: + .long .Ldebug_loc0-.Lloclists_table_base0 + .long .Ldebug_loc1-.Lloclists_table_base0 + .long .Ldebug_loc2-.Lloclists_table_base0 +.Ldebug_loc0: + .byte 4 # DW_LLE_offset_pair + .uleb128 .Lfunc_begin0-.Lfunc_begin0 # starting offset + .uleb128 .Lfunc_end0-.Lfunc_begin0 # ending offset + .byte 6 # Loc expr size + .byte 85 # DW_OP_reg5 + .byte 147 # DW_OP_piece + .byte 8 # 8 + .byte 84 # super-register DW_OP_reg= 4 + .byte 147 # DW_OP_piece + .byte 4 # 4 + .byte 0 # DW_LLE_end_of_list +.Ldebug_loc1: + .byte 4 # DW_LLE_offset_pair + .uleb128 .Lfunc_begin0-.Lfunc_begin0 # starting offset + .uleb128 .Lfunc_end0-.Lfunc_begin0 # ending offset + .byte 6 # Loc expr size + .byte 81 # DW_OP_reg1 + .byte 147 # DW_OP_piece + .byte 8 # 8 + .byte 82 # super-register DW_OP_reg= 2 + .byte 147 # DW_OP_piece + .byte 4 # 4 + .byte 0 # DW_LLE_end_of_list +.Ldebug_loc2: + .byte 4 # DW_LLE_offset_pair + .uleb128 .Lfunc_begin0-.Lfunc_begin0 # starting offset + .uleb128 .Lfunc_end0-.Lfunc_begin0 # ending offset + .byte 6 # Loc expr size + .byte 88 # DW_OP_reg8 + .byte 147 # DW_OP_piece + .byte 8 # 8 + .byte 89 # super-register DW_OP_reg= 9 + .byte 147 # DW_OP_piece + .byte 4 # 4 + .byte 0 # DW_LLE_end_of_list +.Ldebug_list_header_end0: + .section .debug_aranges,"",%progbits + .4byte 0x3c /* Length of Address Ranges Info */ + .2byte 0x2 /* DWARF Version */ + .4byte .Ldebug_info0 /* Offset of Compilation Unit Info */ + .byte 0x8 /* Size of Address */ + .byte 0 /* Size of Segment Descriptor */ + .2byte 0 /* Pad to 16 byte boundary */ + .2byte 0 + .8byte 0x1234 /* Address */ + .8byte 0x4567 /* Length */ + .8byte 0x1234 /* Address */ + .8byte 0x5678 /* Length */ + .8byte 0 + .8byte 0 + .section .debug_rnglists,"",%progbits +.Ldebug_ranges0: + .4byte .Ldebug_ranges3-.Ldebug_ranges2 /* Length of Range Lists = */ +.Ldebug_ranges2: + .2byte 0x5 /* DWARF Version */ + .byte 0x8 /* Address Size */ + .byte 0 /* Segment Size */ + .4byte 0 /* Offset Entry Count */ +.LLRL2: + .byte 0x7 /* DW_RLE_start_length (*.LLRL2) */ + .8byte 0x1234 /* Range begin address (*.LLRL2) */ + .uleb128 .Letext0-.Ltext0 /* Range length (*.LLRL2) */ + .byte 0x7 /* DW_RLE_start_length (*.LLRL2) */ + .8byte 0x1234 /* Range begin address (*.LLRL2) */ + .uleb128 .LFE1-.LFB1 /* Range length (*.LLRL2) */ + .byte 0 /* DW_RLE_end_of_list (*.LLRL2) */ +.Ldebug_ranges3: + .section .debug_line,"",%progbits +.Ldebug_line0: + .4byte .LELT0-.LSLT0 /* Length of Source Line Info */ +.LSLT0: + .2byte 0x5 /* DWARF Version */ + .byte 0x8 /* Address Size */ + .byte 0 /* Segment Size */ + .4byte .LELTP0-.LASLTP0 /* Prolog Length */ +.LASLTP0: + .byte 0x1 /* Minimum Instruction Length */ + .byte 0x1 /* Maximum Operations Per Instruction */ + .byte 0x1 /* Default is_stmt_start flag */ + .byte 0xf6 /* Line Base Value (Special Opcodes) */ + .byte 0xf2 /* Line Range Value (Special Opcodes) */ + .byte 0xd /* Special Opcode Base */ + .byte 0 /* opcode: 0x1 has 0 args */ + .byte 0x1 /* opcode: 0x2 has 1 arg */ + .byte 0x1 /* opcode: 0x3 has 1 arg */ + .byte 0x1 /* opcode: 0x4 has 1 arg */ + .byte 0x1 /* opcode: 0x5 has 1 arg */ + .byte 0 /* opcode: 0x6 has 0 args */ + .byte 0 /* opcode: 0x7 has 0 args */ + .byte 0 /* opcode: 0x8 has 0 args */ + .byte 0x1 /* opcode: 0x9 has 1 arg */ + .byte 0 /* opcode: 0xa has 0 args */ + .byte 0 /* opcode: 0xb has 0 args */ + .byte 0x1 /* opcode: 0xc has 1 arg */ + .byte 0x1 /* Directory entry format count */ + .uleb128 0x1 /* DW_LNCT_path */ + .uleb128 0x1f /* DW_FORM_line_strp */ + .uleb128 0x3 /* Directories count */ + .4byte .LASF1 /* Directory Entry: 0: "" */ + .4byte .LASF25 /* Directory Entry: 0: "" */ + .4byte .LASF26 /* Directory Entry: 0: "/usr/include" */ + .byte 0x2 /* File name entry format count */ + .uleb128 0x1 /* DW_LNCT_path */ + .uleb128 0x1f /* DW_FORM_line_strp */ + .uleb128 0x2 /* DW_LNCT_directory_index */ + .uleb128 0xb /* DW_FORM_data1 */ + .uleb128 0x4 /* File names count */ + .4byte .LASF0 /* File Entry: 0: "main.c" */ + .byte 0 + .4byte .LASF27 /* File Entry: 0: "main.c" */ + .byte 0x1 + .4byte .LASF28 /* File Entry: 0: "unistd.h" */ + .byte 0x2 + .4byte .LASF29 /* File Entry: 0: "getopt.h" */ + .byte 0x2 +.LELTP0: + .byte 0 /* set address *.LM3 */ + .uleb128 0x9 + .byte 0x2 + .8byte 0x1234 + .byte 0x1c /* line 6 */ + .byte 0 /* set address *.LM4 */ + .uleb128 0x9 + .byte 0x2 + .8byte 0x12346 + .byte 0x1 /* copy line 6 */ + .byte 0 /* set address *.LFE1 */ + .uleb128 0x9 + .byte 0x2 + .8byte 0x1234 + .byte 0 /* end sequence */ + .uleb128 0x1 + .byte 0x1 + .byte 0 /* set address *.LM1 */ + .uleb128 0x9 + .byte 0x2 + .8byte 0x1234 + .byte 0x1b /* line 5 */ + .byte 0 /* set address *.LM2 */ + .uleb128 0x9 + .byte 0x2 + .8byte 0x1234 + .byte 0x1 /* copy line 5 */ + .byte 0 /* set address *.Letext0 */ + .uleb128 0x9 + .byte 0x2 + .8byte 0x1234 + .byte 0 /* end sequence */ + .uleb128 0x1 + .byte 0x1 +.LELT0: + .section .debug_str,"MS",%progbits,1 +.LASF4: + .asciz "unsigned int" +.LASF15: + .asciz "optopt" +.LASF22: + .asciz "main" +.LASF6: + .asciz "signed char" +.LASF16: + .asciz "xvar" +.LASF5: + .asciz "long unsigned int" +.LASF14: + .asciz "opterr" +.LASF21: + .asciz "GNU C11 7.0.1 20170218 (experimental) -mtune=3Dgeneric -m= arch=3Dx86-64 -gdwarf-5 -O2" +.LASF2: + .asciz "unsigned char" +.LASF10: + .asciz "char" +.LASF13: + .asciz "optind" +.LASF8: + .asciz "long int" +.LASF19: + .asciz "argc" +.LASF3: + .asciz "short unsigned int" +.LASF17: + .asciz "yvar" +.LASF18: + .asciz "pvar" +.LASF11: + .asciz "__environ" +.LASF23: + .asciz "func" +.LASF12: + .asciz "optarg" +.LASF7: + .asciz "short int" +.LASF24: + .asciz "alarm" +.LASF9: + .asciz "sizetype" +.LASF20: + .asciz "argv" + .section .debug_line_str,"MS",%progbits,1 +.LASF1: + .asciz "" +.LASF25: + .asciz "" +.LASF29: + .asciz "getopt.h" +.LASF28: + .asciz "unistd.h" +.LASF0: + .asciz "main.c" +.LASF27: + .asciz "main.c" +.LASF26: + .asciz "/usr/include" + .ident "GCC: (GNU) 7.0.1 20170218 (experimental)" + .section .note.GNU-stack,"",%progbits diff --git a/binutils/testsuite/binutils-all/dw5-loclist.W b/binutils/tests= uite/binutils-all/dw5-loclist.W new file mode 100644 index 00000000000..79c220aa658 --- /dev/null +++ b/binutils/testsuite/binutils-all/dw5-loclist.W @@ -0,0 +1,27 @@ +Contents of the .debug_loclists section: + +Table at Offset 0x0 + Length: 0x35 + DWARF version: 5 + Address size: 8 + Segment size: 0 + Offset entries: 3 + + Offset Entries starting at 0xc: + \[ 0\] 0xc + \[ 1\] 0x17 + \[ 2\] 0x22 + + Offset Entry 0 + 00000018 0000000000000000 0000000000000007 DW_OP_reg5 \(rdi\); DW_OP_= piece: 8; DW_OP_reg4 \(rsi\); DW_OP_piece: 4 + 00000022 + + Offset Entry 1 + 00000023 0000000000000000 0000000000000007 DW_OP_reg1 \(rdx\); DW_OP_= piece: 8; DW_OP_reg2 \(rcx\); DW_OP_piece: 4 + 0000002d + + Offset Entry 2 + 0000002e 0000000000000000 0000000000000007 DW_OP_reg8 \(r8\); DW_OP_p= iece: 8; DW_OP_reg9 \(r9\); DW_OP_piece: 4 + 00000038 + + diff --git a/binutils/testsuite/binutils-all/readelf.exp b/binutils/testsui= te/binutils-all/readelf.exp index 0f7a1f3b5a0..aaa50cf6c12 100644 --- a/binutils/testsuite/binutils-all/readelf.exp +++ b/binutils/testsuite/binutils-all/readelf.exp @@ -616,3 +616,22 @@ readelf_find_size $tempfile 2 # Make sure that readelf can decode the contents. readelf_test -wi $tempfile dw5-op.W } + +# Check dwarf-5 support for .debug_loclists section dump. +if {![binutils_assemble_flags $srcdir/$subdir/dw5-loclist.S tmpdir/dw5-loc= list.o $hpux]} then { + unsupported "readelf -wo dw5-loclist (failed to assemble)" +} else { + +# Download it. +if ![is_remote host] { + set tempfile tmpdir/dw5-loclist.o +} else { + set tempfile [remote_download host tmpdir/dw5-loclist.o] +} + +# First, determine the size, so specific output matchers can be used. +readelf_find_size $tempfile 2 + +# Make sure that readelf can decode the contents. +readelf_test -wo $tempfile dw5-loclist.W +} -- 2.17.1 --_005_MW2PR12MB4684E7B148D1C2972E32668187DC9MW2PR12MB4684namp_ Content-Type: application/octet-stream; name="0001-PATCH-1-2-Binutils-support-for-dwarf-5.patch" Content-Description: 0001-PATCH-1-2-Binutils-support-for-dwarf-5.patch Content-Disposition: attachment; filename="0001-PATCH-1-2-Binutils-support-for-dwarf-5.patch"; size=4913; creation-date="Tue, 31 May 2022 10:44:00 GMT"; modification-date="Tue, 31 May 2022 11:06:42 GMT" Content-Transfer-Encoding: base64 RnJvbSA5NmNlMzJmNzYyODAzYTdkNzRjYTMwYzM5MzBmMTY3OWFmYzAxMDBjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUUyPTgwPTlDYmhrdW1hcm49RTI9ODA9OUQ/ PSA8Qmh1dmFuZW5kcmEuS3VtYXJOQGFtZC5jb20+CkRhdGU6IFR1ZSwgMzEgTWF5IDIwMjIgMTQ6 MDc6MTcgKzA1MzAKU3ViamVjdDogW1BBVENIXSBbUEFUQ0ggMS8yXSBCaW51dGlscyBzdXBwb3J0 IGZvciBkd2FyZi01LgoKRm9yIGNsYW5nIGNvbXBpbGVkIHdpdGggZHdhcmYtNSwgbXVsdGlwbGUg aXNzdWVzIGFyZSBmaXhlZCB3aGljaCBhcmUKcmVsYXRlZCB0byAuZGVidWdfcm5nbGlzdHMgYW5k IC5kZWJ1Z19sb2NsaXN0cyBzZWN0aW9ucyBhbmQgdGhlaXIgb2Zmc2V0CmFkZHJlc3MgZHVtcCBj b21wcmlzaW5nIHNpbmdsZSBhbmQgbXVsdGlwbGUgQ1UuIFRoZXJlIGFyZSAyIHBhdGNoZXMKYW5k IHRoaXMgaXMgcGF0Y2ggMS8yLgoKSXNzdWVzIGZpeGVkIGluIHBhdGNoIDEvMiBhcmU6Cklzc3Vl IDE6IC5kZWJ1Z19ybmdsaXN0cyBzZWN0aW9uIGR1bXAgZm9yIHNpbmdsZSBDVS4KSXNzdWUgMjog bG9jYXRpb24gbGlzdCBvZmZzZXQgYWRkcmVzcyBkdW1wIHVuZGVyIERXX0FUX2xvY2F0aW9uIGlz IGNvcnJlY3RlZC4KSXNzdWUgMzogcmFuZ2UgbGlzdCBvZmZzZXQgYWRkcmVzcyBkdW1wIHVuZGVy IERXX0FUX3JhbmdlcyBpcyBjb3JyZWN0ZWQuCgoJKiBkd2FyZi5jIChmZXRjaF9pbmRleGVkX3Zh bHVlKTogQWRkIGJhc2VfYWRkcmVzcyBhcyBwYXJhbWV0ZXIgYW5kCgl1c2UgaXQgdG8gYWNjZXNz IHRoZSBzZWN0aW9uIG9mZnNldC4KCShyZWFkX2FuZF9kaXNwbGF5X2F0dHJfdmFsdWUpOiBIYW5k bGUgRFdfRk9STV9sb2NsaXN0eCBhbmQKCURXX0ZPUk1fcm5nbGlzdHggZm9ybXMgc2VwYXJhdGVs eS4KCShkaXNwbGF5X2RlYnVnX3JuZ2xpc3RzX2xpc3QpOiBGaXggc3VwcG9ydCBmb3IgRFdfUkxF X2Jhc2VfYWRkcmVzc3gsCglEV19STEVfc3RhcnR4X2xlbmd0aC4KCShkaXNwbGF5X2RlYnVnX3Jh bmdlcyk6IENvcnJlY3QgdGhlIHJhbmdlIGxpc3QgZW50cmllcyBzdGFydGluZyBhZGRyZXNzLgot LS0KIGJpbnV0aWxzL2R3YXJmLmMgfCAzMiArKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2JpbnV0aWxzL2R3YXJmLmMgYi9iaW51dGlscy9kd2FyZi5jCmluZGV4IGNhYTNj ZTQ4ZDAwLi41NjYxMDQ3NjJkMSAxMDA2NDQKLS0tIGEvYmludXRpbHMvZHdhcmYuYworKysgYi9i aW51dGlscy9kd2FyZi5jCkBAIC0xMTgsNiArMTE4LDcgQEAgaW50IGR3YXJmX2N1dG9mZl9sZXZl bCA9IC0xOwogdW5zaWduZWQgbG9uZyBkd2FyZl9zdGFydF9kaWU7CiAKIGludCBkd2FyZl9jaGVj ayA9IDA7CisjZGVmaW5lIERFQlVHX0xPQ0xJU1RTX1JOR0xJU1RTX1NFQ1RJT05fSEVBREVSX0xF TiAxMgogCiAvKiBDb252ZW5pZW50IGNvbnN0YW50LCB0byBhdm9pZCBoYXZpbmcgdG8gY2FzdCAt MSB0byBkd2FyZl92bWEgd2hlbgogICAgdGVzdGluZyB3aGV0aGVyIGUuZy4gYSBsb2N2aWV3IGxp c3QgaXMgcHJlc2VudC4gICovCkBAIC04MjYsNyArODI3LDggQEAgZmV0Y2hfaW5kZXhlZF9hZGRy IChkd2FyZl92bWEgb2Zmc2V0LCB1aW50MzJfdCBudW1fYnl0ZXMpCiAKIHN0YXRpYyBkd2FyZl92 bWEKIGZldGNoX2luZGV4ZWRfdmFsdWUgKGR3YXJmX3ZtYSBpZHgsCi0JCSAgICAgZW51bSBkd2Fy Zl9zZWN0aW9uX2Rpc3BsYXlfZW51bSBzZWNfZW51bSkKKwkJICAgICBlbnVtIGR3YXJmX3NlY3Rp b25fZGlzcGxheV9lbnVtIHNlY19lbnVtLAorCQkgICAgIGR3YXJmX3ZtYSBiYXNlX2FkZHJlc3Mp CiB7CiAgIHN0cnVjdCBkd2FyZl9zZWN0aW9uICpzZWN0aW9uID0gJmRlYnVnX2Rpc3BsYXlzIFtz ZWNfZW51bV0uc2VjdGlvbjsKIApAQCAtODUxLDggKzg1MywxMiBAQCBmZXRjaF9pbmRleGVkX3Zh bHVlIChkd2FyZl92bWEgaWR4LAogIAogICBkd2FyZl92bWEgb2Zmc2V0ID0gaWR4ICogcG9pbnRl cl9zaXplOwogCi0gIC8qIE9mZnNldHMgYXJlIGJpYXNlZCBieSB0aGUgc2l6ZSBvZiB0aGUgc2Vj dGlvbiBoZWFkZXIuICAqLwotICBvZmZzZXQgKz0gYmlhczsKKyAgLyogT2Zmc2V0cyBhcmUgYmlh c2VkIGJ5IHRoZSBzaXplIG9mIHRoZSBzZWN0aW9uIGhlYWRlcgorICAgICBvciBiYXNlIGFkZHJl c3MuICAqLworICBpZiAoc2VjX2VudW0gPT0gbG9jbGlzdHMpCisgICAgb2Zmc2V0ICs9IGJhc2Vf YWRkcmVzczsKKyAgZWxzZQorICAgIG9mZnNldCArPSBiaWFzOwogCiAgIGlmIChvZmZzZXQgKyBw b2ludGVyX3NpemUgPiBzZWN0aW9uLT5zaXplKQogICAgIHsKQEAgLTI3ODgsNyArMjc5NCwxNSBA QCByZWFkX2FuZF9kaXNwbGF5X2F0dHJfdmFsdWUgKHVuc2lnbmVkIGxvbmcgICAgICAgICAgIGF0 dHJpYnV0ZSwKIAogCSAgb2Zmc2V0ID0gYmFzZSArIHV2YWx1ZSAqIHBvaW50ZXJfc2l6ZTsKIAot CSAgaWYgKGRvX3dpZGUpCisJICBpZiAoZm9ybSA9PSBEV19GT1JNX2xvY2xpc3R4KQorCSAgICBw cmludGYgKF8oIiVjKGluZGV4OiAweCVzKTogJXMiKSwgZGVsaW1pdGVyLAorCSAgICAgICAgICAg IGR3YXJmX3ZtYXRvYSAoIngiLCB1dmFsdWUpLAorCSAgICAgICAgICAgIGR3YXJmX3ZtYXRvYSAo IngiLCBkZWJ1Z19pbmZvX3AtPmxvY19vZmZzZXRzIFt1dmFsdWVdKSk7CisJICBlbHNlIGlmIChm b3JtID09IERXX0ZPUk1fcm5nbGlzdHgpCisJICAgIHByaW50ZiAoXygiJWMoaW5kZXg6IDB4JXMp OiAlcyIpLCBkZWxpbWl0ZXIsCisJICAgICAgICAgICAgZHdhcmZfdm1hdG9hICgieCIsIHV2YWx1 ZSksCisJICAgICAgICAgICAgZHdhcmZfdm1hdG9hICgieCIsIGZldGNoX2luZGV4ZWRfdmFsdWUg KHV2YWx1ZSwgcm5nbGlzdHMsIDApKSk7CisJICBlbHNlIGlmIChkb193aWRlKQogCSAgICAvKiBX ZSBoYXZlIGFscmVhZHkgZGlzcGxheWVkIHRoZSBmb3JtIG5hbWUuICAqLwogCSAgICBwcmludGYg KF8oIiVjKGluZGV4OiAweCVzKTogJXMiKSwgZGVsaW1pdGVyLAogCQkgICAgZHdhcmZfdm1hdG9h ICgieCIsIHV2YWx1ZSksCkBAIC0yODcwLDcgKzI4ODQsNyBAQCByZWFkX2FuZF9kaXNwbGF5X2F0 dHJfdmFsdWUgKHVuc2lnbmVkIGxvbmcgICAgICAgICAgIGF0dHJpYnV0ZSwKIAkJfQogCiAJICAg ICAgaWYgKGZvcm0gPT0gRFdfRk9STV9sb2NsaXN0eCkKLQkJdXZhbHVlID0gZmV0Y2hfaW5kZXhl ZF92YWx1ZSAodXZhbHVlLCBsb2NsaXN0cyk7CisJCXV2YWx1ZSA9IGZldGNoX2luZGV4ZWRfdmFs dWUgKG51bSwgbG9jbGlzdHMsIGRlYnVnX2luZm9fcC0+bG9jbGlzdHNfYmFzZSk7CiAJICAgICAg ZWxzZSBpZiAodGhpc19zZXQgIT0gTlVMTCkKIAkJdXZhbHVlICs9IHRoaXNfc2V0LT5zZWN0aW9u X29mZnNldHMgW0RXX1NFQ1RfTE9DXTsKIApAQCAtMjkzOSw3ICsyOTUzLDcgQEAgcmVhZF9hbmRf ZGlzcGxheV9hdHRyX3ZhbHVlICh1bnNpZ25lZCBsb25nICAgICAgICAgICBhdHRyaWJ1dGUsCiAJ CX0KIAogCSAgICAgIGlmIChmb3JtID09IERXX0ZPUk1fcm5nbGlzdHgpCi0JCXV2YWx1ZSA9IGZl dGNoX2luZGV4ZWRfdmFsdWUgKHV2YWx1ZSwgcm5nbGlzdHMpOworCQl1dmFsdWUgPSBmZXRjaF9p bmRleGVkX3ZhbHVlICh1dmFsdWUsIHJuZ2xpc3RzLCAwKTsKIAogCSAgICAgIGRlYnVnX2luZm9f cC0+cmFuZ2VfbGlzdHMgW251bV0gPSB1dmFsdWU7CiAJICAgICAgZGVidWdfaW5mb19wLT5udW1f cmFuZ2VfbGlzdHMrKzsKQEAgLTc5NzYsOSArNzk5MCw2IEBAIGRpc3BsYXlfZGVidWdfcm5nbGlz dHNfbGlzdCAodW5zaWduZWQgY2hhciAqIHN0YXJ0LAogCWNhc2UgRFdfUkxFX2Jhc2VfYWRkcmVz c3g6CiAJICBSRUFEX1VMRUIgKGJhc2VfYWRkcmVzcywgc3RhcnQsIGZpbmlzaCk7CiAJICBwcmlu dF9kd2FyZl92bWEgKGJhc2VfYWRkcmVzcywgcG9pbnRlcl9zaXplKTsKLQkgIHByaW50ZiAoXygi KGJhc2UgYWRkcmVzcyBpbmRleCkgIikpOwotCSAgYmFzZV9hZGRyZXNzID0gZmV0Y2hfaW5kZXhl ZF9hZGRyIChiYXNlX2FkZHJlc3MsIHBvaW50ZXJfc2l6ZSk7Ci0JICBwcmludF9kd2FyZl92bWEg KGJhc2VfYWRkcmVzcywgcG9pbnRlcl9zaXplKTsKIAkgIHByaW50ZiAoXygiKGJhc2UgYWRkcmVz cylcbiIpKTsKIAkgIGJyZWFrOwogCWNhc2UgRFdfUkxFX3N0YXJ0eF9lbmR4OgpAQCAtNzk5MCw3 ICs4MDAxLDYgQEAgZGlzcGxheV9kZWJ1Z19ybmdsaXN0c19saXN0ICh1bnNpZ25lZCBjaGFyICog c3RhcnQsCiAJY2FzZSBEV19STEVfc3RhcnR4X2xlbmd0aDoKIAkgIFJFQURfVUxFQiAoYmVnaW4s IHN0YXJ0LCBmaW5pc2gpOwogCSAgUkVBRF9VTEVCIChsZW5ndGgsIHN0YXJ0LCBmaW5pc2gpOwot CSAgYmVnaW4gPSBmZXRjaF9pbmRleGVkX2FkZHIgKGJlZ2luLCBwb2ludGVyX3NpemUpOwogCSAg ZW5kID0gYmVnaW4gKyBsZW5ndGg7CiAJICBicmVhazsKIAljYXNlIERXX1JMRV9vZmZzZXRfcGFp cjoKQEAgLTgyNDMsNyArODI1Myw3IEBAIGRpc3BsYXlfZGVidWdfcmFuZ2VzIChzdHJ1Y3QgZHdh cmZfc2VjdGlvbiAqc2VjdGlvbiwKIAkJKHVuc2lnbmVkIGxvbmcpIG9mZnNldCwgaSk7CiAJICBj b250aW51ZTsKIAl9Ci0gICAgICBuZXh0ID0gc2VjdGlvbl9iZWdpbiArIG9mZnNldDsKKyAgICAg IG5leHQgPSBzZWN0aW9uX2JlZ2luICsgb2Zmc2V0ICsgREVCVUdfTE9DTElTVFNfUk5HTElTVFNf U0VDVElPTl9IRUFERVJfTEVOOwogCiAgICAgICAvKiBJZiBtdWx0aXBsZSBEV0FSRiBlbnRpdGll cyByZWZlcmVuY2UgdGhlIHNhbWUgcmFuZ2UgdGhlbiB3ZSB3aWxsCiAgICAgICAgICBoYXZlIG11 bHRpcGxlIGVudHJpZXMgaW4gdGhlIGByYW5nZV9lbnRyaWVzJyBsaXN0IGZvciB0aGUgc2FtZQot LSAKMi4xNy4xCgo= --_005_MW2PR12MB4684E7B148D1C2972E32668187DC9MW2PR12MB4684namp_ Content-Type: application/octet-stream; name="0001-PATCH-2-2-Binutils-support-for-dwarf-5.patch" Content-Description: 0001-PATCH-2-2-Binutils-support-for-dwarf-5.patch Content-Disposition: attachment; filename="0001-PATCH-2-2-Binutils-support-for-dwarf-5.patch"; size=39689; creation-date="Tue, 31 May 2022 10:44:00 GMT"; modification-date="Tue, 31 May 2022 11:06:43 GMT" Content-Transfer-Encoding: base64 RnJvbSA4ODI4MjliNzI3MTZkNDNhN2Y0YjNjZTJjODJlNThkM2ZhNmQ0NTczIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUUyPTgwPTlDYmhrdW1hcm49RTI9ODA9OUQ/ PSA8Qmh1dmFuZW5kcmEuS3VtYXJOQGFtZC5jb20+CkRhdGU6IFR1ZSwgMzEgTWF5IDIwMjIgMTU6 MDM6MTYgKzA1MzAKU3ViamVjdDogW1BBVENIXSBbUEFUQ0ggMi8yXSBCaW51dGlscyBzdXBwb3J0 IGZvciBkd2FyZi01LgoKRm9yIGNsYW5nIGNvbXBpbGVkIHdpdGggZHdhcmYtNSwgbXVsdGlwbGUg aXNzdWVzIGFyZSBmaXhlZCB3aGljaCBhcmUKcmVsYXRlZCB0byAuZGVidWdfcm5nbGlzdHMgYW5k IC5kZWJ1Z19sb2NsaXN0cyBzZWN0aW9ucyBhbmQgdGhlaXIgb2Zmc2V0CmFkZHJlc3MgZHVtcCBj b21wcmlzaW5nIHNpbmdsZSBhbmQgbXVsdGlwbGUgQ1UuIFRoZXJlIGFyZSAyIHBhdGNoZXMKYW5k IHRoaXMgaXMgcGF0Y2ggMi8yIGFuZCBpdCBoYXMgZGVwZW5kZW5jeSBvbiBwYXRjaCAxLzIgYW5k IGl0cwpjb250aW51YXRpb24gb2YgcGF0Y2ggMS8yLgoKSXNzdWVzIGZpeGVkIGluIHBhdGNoIDIv MiBhcmU6Cklzc3VlIDQ6IC5kZWJ1Z19ybmdsaXN0cyBzZWN0aW9uIGR1bXAgZm9yIG11bHRpcGxl IENVLgoKCSogZHdhcmYuYyAoZmV0Y2hfaW5kZXhlZF92YWx1ZSk6IFVzZSBiYXNlX2FkZHJlc3Mg cGFyYW1ldGVyIHRvCglhY2Nlc3MgdGhlIHNlY3Rpb24gb2Zmc2V0LgoJKHJlYWRfYW5kX2Rpc3Bs YXlfYXR0cl92YWx1ZSk6IEZpeCBzdXBwb3J0IGZvciBEV19GT1JNX3JuZ2xpc3R4IGZvcm0uCglB ZGQgc3VwcG9ydCBmb3IgRFdfQVRfcm5nbGlzdHNfYmFzZSBhdHRyaWJ1dGUuCglSZWFkIGF0dHJp YnV0ZSBEV19BVF9ybmdsaXN0c19iYXNlIHdoaWNoIGNhbiBjb21lIGJlZm9yZSBvciBhZnRlcgoJ RFdfQVRfcmFuZ2VzIGF0dHJpYnV0ZS4KCShkaXNwbGF5X29mZnNldF9lbnRyeV9sb2NsaXN0cyk6 IEZpeCBzdXBwb3J0IGZvciBEV19MTEVfYmFzZV9hZGRyZXNzeC4KCShkaXNwbGF5X2RlYnVnX3Ju Z2xpc3RzX2xpc3QpOiBBZGQgc3RhcnRfaGVhZGVyIGFzIHBhcmFtZXRlciBhbmQKCXJldHVybiB0 aGUgc3RhcnQgb2YgdGhlIHJhbmdlIGxpc3QgaGVhZGVyIG9mIG5leHQgY29tcGlsYXRpb24gdW5p dC4KCShkaXNwbGF5X2RlYnVnX3JuZ2xpc3RzX2hlYWRlcik6IE5ldyBmdW5jdGlvbiB0byBkdW1w IHJhbmdlIGxpc3RzIGhlYWRlcgoJZm9yIGVhY2ggY29tcGlsYXRpb24gdW5pdC4KCShkaXNwbGF5 X2RlYnVnX3Jhbmdlcyk6IEZvciBlYWNoIGNvbXBpbGF0aW9uIHVuaXQgY2FsbAoJZGlzcGxheV9k ZWJ1Z19ybmdsaXN0c19oZWFkZXIgYWNjb3JkaW5nbHkuCgkqIGR3YXJmLmggKHN0cnVjdCBkZWJ1 Z19pbmZvKTogQWRkIHJuZ2xpc3RzX2Jhc2UgZmllbGQuCgkqIHRlc3RzdWl0ZS9iaW51dGlscy1h bGwvZHc1LWxvY2xpc3QuUzogTmV3IGZpbGUsIC5kZWJ1Z19sb2NsaXN0cyBzZWN0aW9uCgljb250 ZW50IGlzIHVwZGF0ZWQuCgkqIHRlc3RzdWl0ZS9iaW51dGlscy1hbGwvZHc1LWxvY2xpc3QuVzog TmV3IGZpbGUsIGV4cGVjdGVkIG91dHB1dC4KCSogdGVzdHN1aXRlL2JpbnV0aWxzLWFsbC9yZWFk ZWxmLmV4cDogQWRkZWQgbmV3IHRlc3QgcG9pbnQgZHc1LWxvY2xpc3QuCi0tLQogYmludXRpbHMv ZHdhcmYuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTQzICsrKy0KIGJpbnV0aWxz L2R3YXJmLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBiaW51dGlscy90 ZXN0c3VpdGUvYmludXRpbHMtYWxsL2R3NS1sb2NsaXN0LlMgfCA2OTEgKysrKysrKysrKysrKysr KysrCiBiaW51dGlscy90ZXN0c3VpdGUvYmludXRpbHMtYWxsL2R3NS1sb2NsaXN0LlcgfCAgMjcg KwogYmludXRpbHMvdGVzdHN1aXRlL2JpbnV0aWxzLWFsbC9yZWFkZWxmLmV4cCAgIHwgIDE5ICsK IDUgZmlsZXMgY2hhbmdlZCwgODY1IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQogY3Jl YXRlIG1vZGUgMTAwNjQ0IGJpbnV0aWxzL3Rlc3RzdWl0ZS9iaW51dGlscy1hbGwvZHc1LWxvY2xp c3QuUwogY3JlYXRlIG1vZGUgMTAwNjQ0IGJpbnV0aWxzL3Rlc3RzdWl0ZS9iaW51dGlscy1hbGwv ZHc1LWxvY2xpc3QuVwoKZGlmZiAtLWdpdCBhL2JpbnV0aWxzL2R3YXJmLmMgYi9iaW51dGlscy9k d2FyZi5jCmluZGV4IDU2NjEwNDc2MmQxLi41ODY3NWI0MDg4ZCAxMDA2NDQKLS0tIGEvYmludXRp bHMvZHdhcmYuYworKysgYi9iaW51dGlscy9kd2FyZi5jCkBAIC0xMTgsNyArMTE4LDYgQEAgaW50 IGR3YXJmX2N1dG9mZl9sZXZlbCA9IC0xOwogdW5zaWduZWQgbG9uZyBkd2FyZl9zdGFydF9kaWU7 CiAKIGludCBkd2FyZl9jaGVjayA9IDA7Ci0jZGVmaW5lIERFQlVHX0xPQ0xJU1RTX1JOR0xJU1RT X1NFQ1RJT05fSEVBREVSX0xFTiAxMgogCiAvKiBDb252ZW5pZW50IGNvbnN0YW50LCB0byBhdm9p ZCBoYXZpbmcgdG8gY2FzdCAtMSB0byBkd2FyZl92bWEgd2hlbgogICAgdGVzdGluZyB3aGV0aGVy IGUuZy4gYSBsb2N2aWV3IGxpc3QgaXMgcHJlc2VudC4gICovCkBAIC04NTUsNyArODU0LDcgQEAg ZmV0Y2hfaW5kZXhlZF92YWx1ZSAoZHdhcmZfdm1hIGlkeCwKIAogICAvKiBPZmZzZXRzIGFyZSBi aWFzZWQgYnkgdGhlIHNpemUgb2YgdGhlIHNlY3Rpb24gaGVhZGVyCiAgICAgIG9yIGJhc2UgYWRk cmVzcy4gICovCi0gIGlmIChzZWNfZW51bSA9PSBsb2NsaXN0cykKKyAgaWYgKChzZWNfZW51bSA9 PSBsb2NsaXN0cykgfHwgKHNlY19lbnVtID09IHJuZ2xpc3RzKSkKICAgICBvZmZzZXQgKz0gYmFz ZV9hZGRyZXNzOwogICBlbHNlCiAgICAgb2Zmc2V0ICs9IGJpYXM7CkBAIC05MjEsNiArOTIwLDcg QEAgdHlwZWRlZiBzdHJ1Y3QgYWJicmV2X21hcAogc3RhdGljIGFiYnJldl9tYXAgKiAgIGN1X2Fi YnJldl9tYXAgPSBOVUxMOwogc3RhdGljIHVuc2lnbmVkIGxvbmcgIG51bV9hYmJyZXZfbWFwX2Vu dHJpZXMgPSAwOwogc3RhdGljIHVuc2lnbmVkIGxvbmcgIG5leHRfZnJlZV9hYmJyZXZfbWFwX2Vu dHJ5ID0gMDsKK3N0YXRpYyBhYmJyZXZfYXR0ciAqcmFuZ2VzX2F0dHIgPSBOVUxMOwogCiAjZGVm aW5lIElOSVRJQUxfTlVNX0FCQlJFVl9NQVBfRU5UUklFUyA4CiAjZGVmaW5lIEFCQlJFVl9NQVBf RU5UUklFU19JTkNSRU1FTlQgICA4CkBAIC0yNDUxLDYgKzI0NTEsNyBAQCByZWFkX2FuZF9kaXNw bGF5X2F0dHJfdmFsdWUgKHVuc2lnbmVkIGxvbmcgICAgICAgICAgIGF0dHJpYnV0ZSwKICAgZHdh cmZfdm1hIHV2YWx1ZV9oaSA9IDA7CiAgIHVuc2lnbmVkIGNoYXIgKmJsb2NrX3N0YXJ0ID0gTlVM TDsKICAgdW5zaWduZWQgY2hhciAqb3JpZ19kYXRhID0gZGF0YTsKKyAgZHdhcmZfdm1hIHV2YWx1 ZV9ybmdsaXN0c19iYXNlOwogCiAgIGlmIChkYXRhID4gZW5kIHx8IChkYXRhID09IGVuZCAmJiBm b3JtICE9IERXX0ZPUk1fZmxhZ19wcmVzZW50KSkKICAgICB7CkBAIC0yODAxLDcgKzI4MDIsNyBA QCByZWFkX2FuZF9kaXNwbGF5X2F0dHJfdmFsdWUgKHVuc2lnbmVkIGxvbmcgICAgICAgICAgIGF0 dHJpYnV0ZSwKIAkgIGVsc2UgaWYgKGZvcm0gPT0gRFdfRk9STV9ybmdsaXN0eCkKIAkgICAgcHJp bnRmIChfKCIlYyhpbmRleDogMHglcyk6ICVzIiksIGRlbGltaXRlciwKIAkgICAgICAgICAgICBk d2FyZl92bWF0b2EgKCJ4IiwgdXZhbHVlKSwKLQkgICAgICAgICAgICBkd2FyZl92bWF0b2EgKCJ4 IiwgZmV0Y2hfaW5kZXhlZF92YWx1ZSAodXZhbHVlLCBybmdsaXN0cywgMCkpKTsKKwkgICAgICAg ICAgICBkd2FyZl92bWF0b2EgKCJ4IiwgZGVidWdfaW5mb19wLT5yYW5nZV9saXN0cyBbdXZhbHVl XSkpOwogCSAgZWxzZSBpZiAoZG9fd2lkZSkKIAkgICAgLyogV2UgaGF2ZSBhbHJlYWR5IGRpc3Bs YXllZCB0aGUgZm9ybSBuYW1lLiAgKi8KIAkgICAgcHJpbnRmIChfKCIlYyhpbmRleDogMHglcyk6 ICVzIiksIGRlbGltaXRlciwKQEAgLTI4MzksNiArMjg0MCwxMyBAQCByZWFkX2FuZF9kaXNwbGF5 X2F0dHJfdmFsdWUgKHVuc2lnbmVkIGxvbmcgICAgICAgICAgIGF0dHJpYnV0ZSwKIAkgIGRlYnVn X2luZm9fcC0+bG9jbGlzdHNfYmFzZSA9IHV2YWx1ZTsKIAkgIGJyZWFrOwogCisJY2FzZSBEV19B VF9ybmdsaXN0c19iYXNlOgorCSAgaWYgKGRlYnVnX2luZm9fcC0+cm5nbGlzdHNfYmFzZSkKKwkg ICAgd2FybiAoXygiQ1UgQCAweCVzIGhhcyBtdWx0aXBsZSBybmdsaXN0c19iYXNlIHZhbHVlcyIp LAorCSAgICAgICAgICBkd2FyZl92bWF0b2EgKCJ4IiwgZGVidWdfaW5mb19wLT5jdV9vZmZzZXQp KTsKKwkgIGRlYnVnX2luZm9fcC0+cm5nbGlzdHNfYmFzZSA9IHV2YWx1ZTsKKwkgIGJyZWFrOwor CiAJY2FzZSBEV19BVF9mcmFtZV9iYXNlOgogCSAgaGF2ZV9mcmFtZV9iYXNlID0gMTsKIAkgIC8q IEZhbGwgdGhyb3VnaC4gICovCkBAIC0yOTM0LDYgKzI5NDIsMjQgQEAgcmVhZF9hbmRfZGlzcGxh eV9hdHRyX3ZhbHVlICh1bnNpZ25lZCBsb25nICAgICAgICAgICBhdHRyaWJ1dGUsCiAJICBicmVh azsKIAogCWNhc2UgRFdfQVRfcmFuZ2VzOgorCSAgdXZhbHVlX3JuZ2xpc3RzX2Jhc2UgPSAwOwor CSAgLyogRFdfQVRfcm5nbGlzdHNfYmFzZSBjYW4gYXBwZWFyIGJlZm9yZSBvciBhZnRlciBEV19B VF9yYW5nZXMgYXR0cmlidXRlLgorCSAgICAgSWYgaXRzIGZvdW5kIGJlZm9yZSwgRFdfQVRfcm5n bGlzdHNfYmFzZSBpcyB1c2VkIGRpcmVjdGx5LAorCSAgICAgb3RoZXJ3aXNlIGl0cyBsb29rZWQg YWhlYWQgZnJvbSBEV19BVF9yYW5nZXMgYW5kIHJlYWQuICAqLworCSAgaWYgKCFkZWJ1Z19pbmZv X3AtPnJuZ2xpc3RzX2Jhc2UpIHsKKwkgICAgaWYgKHJhbmdlc19hdHRyICYmIHJhbmdlc19hdHRy LT5uZXh0ICYmIHJhbmdlc19hdHRyLT5uZXh0LT5uZXh0ICYmCisJICAgICAgICAocmFuZ2VzX2F0 dHItPm5leHQtPm5leHQtPmF0dHJpYnV0ZSA9PSBEV19BVF9ybmdsaXN0c19iYXNlKSkgeworCSAg ICAgIHVuc2lnbmVkIGNoYXIgKmRhdGFfZHVwbCA9IGRhdGE7CisJICAgICAgZHdhcmZfdm1hIHV2 YWx1ZV9za2lwOworCSAgICAgIGRhdGFfZHVwbCA9IHNraXBfYXR0cl9ieXRlcyAocmFuZ2VzX2F0 dHItPm5leHQtPmZvcm0sIGRhdGFfZHVwbCwgZW5kLAorCSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcG9pbnRlcl9zaXplLCBvZmZzZXRfc2l6ZSwKKwkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGR3YXJmX3ZlcnNpb24sICZ1dmFsdWVfc2tpcCk7CisJICAgICAg U0FGRV9CWVRFX0dFVF9BTkRfSU5DICh1dmFsdWVfcm5nbGlzdHNfYmFzZSwgZGF0YV9kdXBsLCBv ZmZzZXRfc2l6ZSwgZW5kKTsKKwkgICAgfQorCSAgfQorCSAgZWxzZQorCSAgICB1dmFsdWVfcm5n bGlzdHNfYmFzZSA9IGRlYnVnX2luZm9fcC0+cm5nbGlzdHNfYmFzZTsKKwogCSAgaWYgKChkd2Fy Zl92ZXJzaW9uIDwgNAogCSAgICAgICAmJiAoZm9ybSA9PSBEV19GT1JNX2RhdGE0IHx8IGZvcm0g PT0gRFdfRk9STV9kYXRhOCkpCiAJICAgICAgfHwgZm9ybSA9PSBEV19GT1JNX3NlY19vZmZzZXQK QEAgLTI5NDIsNiArMjk2OCw3IEBAIHJlYWRfYW5kX2Rpc3BsYXlfYXR0cl92YWx1ZSAodW5zaWdu ZWQgbG9uZyAgICAgICAgICAgYXR0cmlidXRlLAogCSAgICAgIC8qIFByb2Nlc3MgcmFuZ2UgbGlz dC4gICovCiAJICAgICAgdW5zaWduZWQgaW50IGxtYXggPSBkZWJ1Z19pbmZvX3AtPm1heF9yYW5n ZV9saXN0czsKIAkgICAgICB1bnNpZ25lZCBpbnQgbnVtID0gZGVidWdfaW5mb19wLT5udW1fcmFu Z2VfbGlzdHM7CisJICAgICAgZHdhcmZfdm1hIHV2YWx1ZV9pbmRleDsKIAogCSAgICAgIGlmIChs bWF4ID09IDAgfHwgbnVtID49IGxtYXgpCiAJCXsKQEAgLTI5NTIsMTAgKzI5NzksMTUgQEAgcmVh ZF9hbmRfZGlzcGxheV9hdHRyX3ZhbHVlICh1bnNpZ25lZCBsb25nICAgICAgICAgICBhdHRyaWJ1 dGUsCiAJCSAgZGVidWdfaW5mb19wLT5tYXhfcmFuZ2VfbGlzdHMgPSBsbWF4OwogCQl9CiAKKwkg ICAgICB1dmFsdWVfaW5kZXggPSB1dmFsdWU7CiAJICAgICAgaWYgKGZvcm0gPT0gRFdfRk9STV9y bmdsaXN0eCkKLQkJdXZhbHVlID0gZmV0Y2hfaW5kZXhlZF92YWx1ZSAodXZhbHVlLCBybmdsaXN0 cywgMCk7CisJCXV2YWx1ZSA9IGZldGNoX2luZGV4ZWRfdmFsdWUgKHV2YWx1ZSwgcm5nbGlzdHMs IHV2YWx1ZV9ybmdsaXN0c19iYXNlKTsKIAotCSAgICAgIGRlYnVnX2luZm9fcC0+cmFuZ2VfbGlz dHMgW251bV0gPSB1dmFsdWU7CisJICAgICAgdXZhbHVlICs9IHV2YWx1ZV9ybmdsaXN0c19iYXNl OworCSAgICAgIGlmIChmb3JtID09IERXX0ZPUk1fcm5nbGlzdHgpCisJICAgICAgICBkZWJ1Z19p bmZvX3AtPnJhbmdlX2xpc3RzIFt1dmFsdWVfaW5kZXhdID0gdXZhbHVlOworCSAgICAgIGVsc2UK KwkgICAgICAgIGRlYnVnX2luZm9fcC0+cmFuZ2VfbGlzdHMgW251bV0gPSB1dmFsdWU7CiAJICAg ICAgZGVidWdfaW5mb19wLT5udW1fcmFuZ2VfbGlzdHMrKzsKIAkgICAgfQogCSAgYnJlYWs7CkBA IC0zMzI5LDYgKzMzNjEsNyBAQCByZWFkX2FuZF9kaXNwbGF5X2F0dHJfdmFsdWUgKHVuc2lnbmVk IGxvbmcgICAgICAgICAgIGF0dHJpYnV0ZSwKICAgICAgIC8qIEZhbGwgdGhyb3VnaC4gICovCiAg ICAgY2FzZSBEV19BVF9sb2NhdGlvbjoKICAgICBjYXNlIERXX0FUX2xvY2xpc3RzX2Jhc2U6Cisg ICAgY2FzZSBEV19BVF9ybmdsaXN0c19iYXNlOgogICAgIGNhc2UgRFdfQVRfc3RyaW5nX2xlbmd0 aDoKICAgICBjYXNlIERXX0FUX3JldHVybl9hZGRyOgogICAgIGNhc2UgRFdfQVRfZGF0YV9tZW1i ZXJfbG9jYXRpb246CkBAIC0zMzQ3LDggKzMzODAsMTIgQEAgcmVhZF9hbmRfZGlzcGxheV9hdHRy X3ZhbHVlICh1bnNpZ25lZCBsb25nICAgICAgICAgICBhdHRyaWJ1dGUsCiAgICAgICBpZiAoKGR3 YXJmX3ZlcnNpb24gPCA0CiAJICAgJiYgKGZvcm0gPT0gRFdfRk9STV9kYXRhNCB8fCBmb3JtID09 IERXX0ZPUk1fZGF0YTgpKQogCSAgfHwgZm9ybSA9PSBEV19GT1JNX3NlY19vZmZzZXQKLQkgIHx8 IGZvcm0gPT0gRFdfRk9STV9sb2NsaXN0eCkKLQlwcmludGYgKF8oIiAobG9jYXRpb24gbGlzdCki KSk7CisJICB8fCBmb3JtID09IERXX0ZPUk1fbG9jbGlzdHgpIHsKKwlpZiAoYXR0cmlidXRlID09 IERXX0FUX3JuZ2xpc3RzX2Jhc2UpCisJICBwcmludGYgKF8oIiAocmFuZ2UgbGlzdCkiKSk7CisJ ZWxzZQorCSAgcHJpbnRmIChfKCIgKGxvY2F0aW9uIGxpc3QpIikpOworICAgICAgfQogICAgICAg LyogRmFsbCB0aHJvdWdoLiAgKi8KICAgICBjYXNlIERXX0FUX2FsbG9jYXRlZDoKICAgICBjYXNl IERXX0FUX2Fzc29jaWF0ZWQ6CkBAIC0zODM1LDYgKzM4NzIsNyBAQCBwcm9jZXNzX2RlYnVnX2lu Zm8gKHN0cnVjdCBkd2FyZl9zZWN0aW9uICogc2VjdGlvbiwKIAkgIGRlYnVnX2luZm9ybWF0aW9u IFt1bml0XS5yYW5nZV9saXN0cyA9IE5VTEw7CiAJICBkZWJ1Z19pbmZvcm1hdGlvbiBbdW5pdF0u bWF4X3JhbmdlX2xpc3RzPSAwOwogCSAgZGVidWdfaW5mb3JtYXRpb24gW3VuaXRdLm51bV9yYW5n ZV9saXN0cyA9IDA7CisJICBkZWJ1Z19pbmZvcm1hdGlvbiBbdW5pdF0ucm5nbGlzdHNfYmFzZSA9 IDA7CiAJfQogCiAgICAgICBpZiAoIWRvX2xvYyAmJiBkd2FyZl9zdGFydF9kaWUgPT0gMCkKQEAg LTQwNTYsNiArNDA5NCw4IEBAIHByb2Nlc3NfZGVidWdfaW5mbyAoc3RydWN0IGR3YXJmX3NlY3Rp b24gKiBzZWN0aW9uLAogCSAgICAgIGlmICghIGRvX2xvYyAmJiBkb19wcmludGluZykKIAkJLyog U2hvdyB0aGUgb2Zmc2V0IGZyb20gd2hlcmUgdGhlIHRhZyB3YXMgZXh0cmFjdGVkLiAgKi8KIAkJ cHJpbnRmICgiICAgIDwlbHg+IiwgKHVuc2lnbmVkIGxvbmcpKHRhZ3MgLSBzZWN0aW9uX2JlZ2lu KSk7CisJICAgICAgaWYgKGF0dHItPmF0dHJpYnV0ZSA9PSBEV19BVF9yYW5nZXMpCisJICAgICAg ICByYW5nZXNfYXR0ciA9IGF0dHI7CiAJICAgICAgdGFncyA9IHJlYWRfYW5kX2Rpc3BsYXlfYXR0 ciAoYXR0ci0+YXR0cmlidXRlLAogCQkJCQkgICAgYXR0ci0+Zm9ybSwKIAkJCQkJICAgIGF0dHIt PmltcGxpY2l0X2NvbnN0LApAQCAtNzA4Niw5ICs3MTI2LDYgQEAgZGlzcGxheV9vZmZzZXRfZW50 cnlfbG9jbGlzdHMgKHN0cnVjdCBkd2FyZl9zZWN0aW9uICpzZWN0aW9uKQogCSAgICBjYXNlIERX X0xMRV9iYXNlX2FkZHJlc3N4OgogCSAgICAgIFJFQURfVUxFQiAoYmFzZV9hZGRyZXNzLCBzdGFy dCwgZW5kKTsKIAkgICAgICBwcmludF9kd2FyZl92bWEgKGJhc2VfYWRkcmVzcywgYWRkcmVzc19z aXplKTsKLQkgICAgICBwcmludGYgKF8oIihpbmRleCBpbnRvIC5kZWJ1Z19hZGRyKSAiKSk7Ci0J ICAgICAgYmFzZV9hZGRyZXNzID0gZmV0Y2hfaW5kZXhlZF9hZGRyIChiYXNlX2FkZHJlc3MsIGFk ZHJlc3Nfc2l6ZSk7Ci0JICAgICAgcHJpbnRfZHdhcmZfdm1hIChiYXNlX2FkZHJlc3MsIGFkZHJl c3Nfc2l6ZSk7CiAJICAgICAgcHJpbnRmIChfKCIoYmFzZSBhZGRyZXNzKVxuIikpOwogCSAgICAg IGNvbnRpbnVlOwogCkBAIC03OTU5LDcgKzc5OTYsOCBAQCBkaXNwbGF5X2RlYnVnX3JuZ2xpc3Rz X2xpc3QgKHVuc2lnbmVkIGNoYXIgKiBzdGFydCwKIAkJCSAgICAgdW5zaWduZWQgY2hhciAqIGZp bmlzaCwKIAkJCSAgICAgdW5zaWduZWQgaW50ICAgIHBvaW50ZXJfc2l6ZSwKIAkJCSAgICAgZHdh cmZfdm1hICAgICAgIG9mZnNldCwKLQkJCSAgICAgZHdhcmZfdm1hICAgICAgIGJhc2VfYWRkcmVz cykKKwkJCSAgICAgZHdhcmZfdm1hICAgICAgIGJhc2VfYWRkcmVzcywKKwkJCSAgICAgdW5zaWdu ZWQgY2hhciAqKiBzdGFydF9oZWFkZXIpCiB7CiAgIHVuc2lnbmVkIGNoYXIgKm5leHQgPSBzdGFy dDsKIApAQCAtODAyNiw4ICs4MDY0LDEwIEBAIGRpc3BsYXlfZGVidWdfcm5nbGlzdHNfbGlzdCAo dW5zaWduZWQgY2hhciAqIHN0YXJ0LAogCSAgcmxldCA9IERXX1JMRV9lbmRfb2ZfbGlzdDsKIAkg IGJyZWFrOwogCX0KLSAgICAgIGlmIChybGV0ID09IERXX1JMRV9lbmRfb2ZfbGlzdCkKLQlicmVh azsKKyAgICAgIGlmIChybGV0ID09IERXX1JMRV9lbmRfb2ZfbGlzdCkgeworICAgICAgICAqc3Rh cnRfaGVhZGVyID0gc3RhcnQ7CisgICAgICAgIGJyZWFrOworICAgICAgfQogICAgICAgaWYgKHJs ZXQgPT0gRFdfUkxFX2Jhc2VfYWRkcmVzcyB8fCBybGV0ID09IERXX1JMRV9iYXNlX2FkZHJlc3N4 KQogCWNvbnRpbnVlOwogCkBAIC04MDUwLDYgKzgwOTAsNjkgQEAgZGlzcGxheV9kZWJ1Z19ybmds aXN0c19saXN0ICh1bnNpZ25lZCBjaGFyICogc3RhcnQsCiAgICAgfQogfQogCitzdGF0aWMgdm9p ZCBkaXNwbGF5X2RlYnVnX3JuZ2xpc3RzX2hlYWRlciAodW5zaWduZWQgY2hhciAqIHN0YXJ0LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIg KiBmaW5pc2gpCit7CisgICAgICBkd2FyZl92bWEgaW5pdGlhbF9sZW5ndGg7CisgICAgICB1bnNp Z25lZCBjaGFyIHNlZ21lbnRfc2VsZWN0b3Jfc2l6ZTsKKyAgICAgIHVuc2lnbmVkIGludCBvZmZz ZXRfc2l6ZSwgb2Zmc2V0X2VudHJ5X2NvdW50LCBpOworICAgICAgdW5zaWduZWQgc2hvcnQgdmVy c2lvbjsKKyAgICAgIHVuc2lnbmVkIGNoYXIgIGFkZHJlc3Nfc2l6ZSA9IDA7CisKKyAgICAgIC8q IEdldCBhbmQgY2hlY2sgdGhlIGxlbmd0aCBvZiB0aGUgYmxvY2suICAqLworICAgICAgU0FGRV9C WVRFX0dFVF9BTkRfSU5DIChpbml0aWFsX2xlbmd0aCwgc3RhcnQsIDQsIGZpbmlzaCk7CisKKyAg ICAgIGlmIChpbml0aWFsX2xlbmd0aCA9PSAweGZmZmZmZmZmKQorICAgICAgICB7CisgICAgICAg ICAgLyogVGhpcyBzZWN0aW9uIGlzIDY0LWJpdCBEV0FSRiAzLiAgKi8KKyAgICAgICAgICBTQUZF X0JZVEVfR0VUX0FORF9JTkMgKGluaXRpYWxfbGVuZ3RoLCBzdGFydCwgOCwgZmluaXNoKTsKKyAg ICAgICAgICBvZmZzZXRfc2l6ZSA9IDg7CisgICAgICAgIH0KKyAgICAgIGVsc2UKKyAgICAgICAg b2Zmc2V0X3NpemUgPSA0OworCisgICAgICAvKiBHZXQgdGhlIG90aGVyIGZpZWxkcyBpbiB0aGUg aGVhZGVyLiAgKi8KKyAgICAgIFNBRkVfQllURV9HRVRfQU5EX0lOQyAodmVyc2lvbiwgc3RhcnQs IDIsIGZpbmlzaCk7CisgICAgICBTQUZFX0JZVEVfR0VUX0FORF9JTkMgKGFkZHJlc3Nfc2l6ZSwg c3RhcnQsIDEsIGZpbmlzaCk7CisgICAgICBTQUZFX0JZVEVfR0VUX0FORF9JTkMgKHNlZ21lbnRf c2VsZWN0b3Jfc2l6ZSwgc3RhcnQsIDEsIGZpbmlzaCk7CisgICAgICBTQUZFX0JZVEVfR0VUX0FO RF9JTkMgKG9mZnNldF9lbnRyeV9jb3VudCwgc3RhcnQsIDQsIGZpbmlzaCk7CisKKyAgICAgIHB1 dGNoYXIgKCdcbicpOworICAgICAgcHJpbnRmIChfKCIgIExlbmd0aDogICAgICAgICAgMHglc1xu IiksIGR3YXJmX3ZtYXRvYSAoIngiLCBpbml0aWFsX2xlbmd0aCkpOworICAgICAgcHJpbnRmIChf KCIgIERXQVJGIHZlcnNpb246ICAgJXVcbiIpLCB2ZXJzaW9uKTsKKyAgICAgIHByaW50ZiAoXygi ICBBZGRyZXNzIHNpemU6ICAgICV1XG4iKSwgYWRkcmVzc19zaXplKTsKKyAgICAgIHByaW50ZiAo XygiICBTZWdtZW50IHNpemU6ICAgICV1XG4iKSwgc2VnbWVudF9zZWxlY3Rvcl9zaXplKTsKKyAg ICAgIHByaW50ZiAoXygiICBPZmZzZXQgZW50cmllczogICV1XG4iKSwgb2Zmc2V0X2VudHJ5X2Nv dW50KTsKKworICAgICAgaWYgKG9mZnNldF9lbnRyeV9jb3VudCAhPSAwKQorICAgICAgICB7Cisg ICAgICAgICAgcHJpbnRmIChfKCJcbiAgIE9mZnNldHMgc3RhcnRpbmcgYXQgMHglbHg6XG4iKSwK KyAgICAgICAgICAgICAgICAgIChsb25nKShzdGFydCAtIGRlYnVnX2Rpc3BsYXlzIFtybmdsaXN0 c10uc2VjdGlvbi5zdGFydCkpOworICAgICAgICAgIGlmIChvZmZzZXRfc2l6ZSA9PSA4KQorICAg ICAgICAgICAgeworICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgb2Zmc2V0X2VudHJ5X2Nv dW50OyBpKyspCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgZHdhcmZfdm1h IGVudHJ5OworCisgICAgICAgICAgICAgICAgICBTQUZFX0JZVEVfR0VUX0FORF9JTkMgKGVudHJ5 LCBzdGFydCwgOCwgZmluaXNoKTsKKyAgICAgICAgICAgICAgICAgIHByaW50ZiAoXygiICAgIFsl NnVdIDB4JXNcbiIpLCBpLCBkd2FyZl92bWF0b2EgKCJ4IiwgZW50cnkpKTsKKyAgICAgICAgICAg ICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgZWxzZQorICAgICAgICAgICAgeworICAg ICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgb2Zmc2V0X2VudHJ5X2NvdW50OyBpKyspCisgICAg ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgdWludDMyX3QgZW50cnk7CisKKyAgICAg ICAgICAgICAgICAgIFNBRkVfQllURV9HRVRfQU5EX0lOQyAoZW50cnksIHN0YXJ0LCA0LCBmaW5p c2gpOworICAgICAgICAgICAgICAgICAgcHJpbnRmIChfKCIgICAgWyU2dV0gMHgleFxuIiksIGks IGVudHJ5KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAg ICAgIHB1dGNoYXIgKCdcbicpOworICAgICAgcHJpbnRmIChfKCIgICAgT2Zmc2V0ICAgQmVnaW4g ICAgRW5kXG4iKSk7Cit9CisKIHN0YXRpYyBpbnQKIGRpc3BsYXlfZGVidWdfcmFuZ2VzIChzdHJ1 Y3QgZHdhcmZfc2VjdGlvbiAqc2VjdGlvbiwKIAkJICAgICAgdm9pZCAqZmlsZSBBVFRSSUJVVEVf VU5VU0VEKQpAQCAtODA2Niw2ICs4MTY5LDcgQEAgZGlzcGxheV9kZWJ1Z19yYW5nZXMgKHN0cnVj dCBkd2FyZl9zZWN0aW9uICpzZWN0aW9uLAogICAvKiBJbml0aWFsaXplIGl0IGR1ZSB0byBhIGZh bHNlIGNvbXBpbGVyIHdhcm5pbmcuICAqLwogICB1bnNpZ25lZCBjaGFyICAgICAgICAgYWRkcmVz c19zaXplID0gMDsKICAgZHdhcmZfdm1hICAgICAgICAgICAgIGxhc3Rfb2Zmc2V0ID0gMDsKKyAg dW5zaWduZWQgY2hhciAqICAgICAgIHN0YXJ0X2hlYWRlciA9IE5VTEw7CiAKICAgaWYgKGJ5dGVz ID09IDApCiAgICAgewpAQCAtODIyNiw3ICs4MzMwLDggQEAgZGlzcGxheV9kZWJ1Z19yYW5nZXMg KHN0cnVjdCBkd2FyZl9zZWN0aW9uICpzZWN0aW9uLAogICBwdXRjaGFyICgnXG4nKTsKICAgcHJp bnRmIChfKCIgICAgT2Zmc2V0ICAgQmVnaW4gICAgRW5kXG4iKSk7CiAKLSAgZm9yIChpID0gMDsg aSA8IG51bV9yYW5nZV9saXN0OyBpKyspCisgIHVuc2lnbmVkIGludCByYW5nZV9saXN0c19jb3Vu dCA9IDA7CisgIGZvciAoaSA9IDA7IGkgPCBudW1fcmFuZ2VfbGlzdDsgaSsrLCByYW5nZV9saXN0 c19jb3VudCsrKQogICAgIHsKICAgICAgIHN0cnVjdCByYW5nZV9lbnRyeSAqcmFuZ2VfZW50cnkg PSAmcmFuZ2VfZW50cmllc1tpXTsKICAgICAgIGRlYnVnX2luZm8gKmRlYnVnX2luZm9fcCA9IHJh bmdlX2VudHJ5LT5kZWJ1Z19pbmZvX3A7CkBAIC04MjM5LDYgKzgzNDQsMTIgQEAgZGlzcGxheV9k ZWJ1Z19yYW5nZXMgKHN0cnVjdCBkd2FyZl9zZWN0aW9uICpzZWN0aW9uLAogICAgICAgb2Zmc2V0 ID0gcmFuZ2VfZW50cnktPnJhbmdlc19vZmZzZXQ7CiAgICAgICBiYXNlX2FkZHJlc3MgPSBkZWJ1 Z19pbmZvX3AtPmJhc2VfYWRkcmVzczsKIAorICAgICAgaWYgKChpID4gMCkgJiYKKyAgICAgICAg ICAoc3RhcnRfaGVhZGVyICE9IE5VTEwpICYmCisgICAgICAgICAgKHJhbmdlX2xpc3RzX2NvdW50 ID09IHJhbmdlX2VudHJpZXNbaS0xXS5kZWJ1Z19pbmZvX3AtPm51bV9yYW5nZV9saXN0cykpIHsK KyAgICAgICAgcmFuZ2VfbGlzdHNfY291bnQgPSAwOworICAgICAgICBkaXNwbGF5X2RlYnVnX3Ju Z2xpc3RzX2hlYWRlciAoc3RhcnRfaGVhZGVyLCBmaW5pc2gpOworICAgICAgfQogICAgICAgLyog UFIgMTc1MTI6IGZpbGU6IDAwMS0xMDE0ODUtMC4wMDE6MC4xLiAgKi8KICAgICAgIGlmIChwb2lu dGVyX3NpemUgPCAyIHx8IHBvaW50ZXJfc2l6ZSA+IDgpCiAJewpAQCAtODI1Myw3ICs4MzY0LDcg QEAgZGlzcGxheV9kZWJ1Z19yYW5nZXMgKHN0cnVjdCBkd2FyZl9zZWN0aW9uICpzZWN0aW9uLAog CQkodW5zaWduZWQgbG9uZykgb2Zmc2V0LCBpKTsKIAkgIGNvbnRpbnVlOwogCX0KLSAgICAgIG5l eHQgPSBzZWN0aW9uX2JlZ2luICsgb2Zmc2V0ICsgREVCVUdfTE9DTElTVFNfUk5HTElTVFNfU0VD VElPTl9IRUFERVJfTEVOOworICAgICAgbmV4dCA9IHNlY3Rpb25fYmVnaW4gKyBvZmZzZXQ7CiAK ICAgICAgIC8qIElmIG11bHRpcGxlIERXQVJGIGVudGl0aWVzIHJlZmVyZW5jZSB0aGUgc2FtZSBy YW5nZSB0aGVuIHdlIHdpbGwKICAgICAgICAgIGhhdmUgbXVsdGlwbGUgZW50cmllcyBpbiB0aGUg YHJhbmdlX2VudHJpZXMnIGxpc3QgZm9yIHRoZSBzYW1lCkBAIC04Mjg1LDcgKzgzOTYsNyBAQCBk aXNwbGF5X2RlYnVnX3JhbmdlcyAoc3RydWN0IGR3YXJmX3NlY3Rpb24gKnNlY3Rpb24sCiAKICAg ICAgIGlmIChpc19ybmdsaXN0cykKIAlkaXNwbGF5X2RlYnVnX3JuZ2xpc3RzX2xpc3QKLQkgIChz dGFydCwgZmluaXNoLCBwb2ludGVyX3NpemUsIG9mZnNldCwgYmFzZV9hZGRyZXNzKTsKKwkgIChz dGFydCwgZmluaXNoLCBwb2ludGVyX3NpemUsIG9mZnNldCwgYmFzZV9hZGRyZXNzLCAmc3RhcnRf aGVhZGVyKTsKICAgICAgIGVsc2UKIAlkaXNwbGF5X2RlYnVnX3Jhbmdlc19saXN0CiAJICAoc3Rh cnQsIGZpbmlzaCwgcG9pbnRlcl9zaXplLCBvZmZzZXQsIGJhc2VfYWRkcmVzcyk7CmRpZmYgLS1n aXQgYS9iaW51dGlscy9kd2FyZi5oIGIvYmludXRpbHMvZHdhcmYuaAppbmRleCAwNDBlNjc0YzZj ZS4uOGE4OWMwOGU3YzIgMTAwNjQ0Ci0tLSBhL2JpbnV0aWxzL2R3YXJmLmgKKysrIGIvYmludXRp bHMvZHdhcmYuaApAQCAtMTkyLDYgKzE5Miw3IEBAIHR5cGVkZWYgc3RydWN0CiAgIGR3YXJmX3Zt YSAqICAgIHJhbmdlX2xpc3RzOwogICB1bnNpZ25lZCBpbnQgICBudW1fcmFuZ2VfbGlzdHM7CiAg IHVuc2lnbmVkIGludCAgIG1heF9yYW5nZV9saXN0czsKKyAgZHdhcmZfdm1hICAgICAgcm5nbGlz dHNfYmFzZTsKIH0KIGRlYnVnX2luZm87CiAKZGlmZiAtLWdpdCBhL2JpbnV0aWxzL3Rlc3RzdWl0 ZS9iaW51dGlscy1hbGwvZHc1LWxvY2xpc3QuUyBiL2JpbnV0aWxzL3Rlc3RzdWl0ZS9iaW51dGls cy1hbGwvZHc1LWxvY2xpc3QuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MC4uNWFkZjY2YzY2YzAKLS0tIC9kZXYvbnVsbAorKysgYi9iaW51dGlscy90ZXN0c3VpdGUvYmlu dXRpbHMtYWxsL2R3NS1sb2NsaXN0LlMKQEAgLTAsMCArMSw2OTEgQEAKKy8qIENvcHlyaWdodCAo QykgMjAxNy0yMDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisgICBUaGlzIHBy b2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeQorICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp dGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisgICAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgICBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor ICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uICAqLworCisJLmZpbGUJIm1haW4uYyIKKwkudGV4dAorLkx0ZXh0MDoK KwkucDJhbGlnbiA0LCwxNQorCS5nbG9ibAlmdW5jCisJLnR5cGUJZnVuYywgJWZ1bmN0aW9uCitm dW5jOgorLkxGQjA6CisJLyogbWFpbi5jOjUgKi8KKy5MTTE6CisvKiBCTE9DSyAyIGZyZXE6MTAw MDAgc2VxOjAgKi8KKy8qIFBSRUQ6IEVOVFJZIFsxMDAuMCVdICAoRkFMTFRIUlUpICovCisJLyog bWFpbi5jOjUgKi8KKy5MTTI6CisJLmRjLmIgMAorLyogU1VDQzogKi8KKwkuZGMuYiAwCisuTEZF MDoKKwkuc2l6ZQlmdW5jLCAuLWZ1bmMKKwkuc2VjdGlvbgkudGV4dC5zdGFydHVwLCJheCIsJXBy b2diaXRzCisJLnAyYWxpZ24gNCwsMTUKKwkuZ2xvYmwJbWFpbgorCS50eXBlCW1haW4sICVmdW5j dGlvbgorbWFpbjoKKy5MRkIxOgorCS8qIG1haW4uYzo2ICovCisuTE0zOgorLkxWTDA6CisvKiBC TE9DSyAyIGZyZXE6MTAwMDAgc2VxOjAgKi8KKy8qIFBSRUQ6IEVOVFJZIFsxMDAuMCVdICAoRkFM TFRIUlUpICovCisJLmRjLmIgMAorCS8qIG1haW4uYzo2ICovCisuTE00OgorCS5kYy5iIDAKKy5M VkwxOgorCS5kYy5iIDAKKy5MVkwyOgorCS5kYy5iIDAKKy8qIFNVQ0M6IEVYSVQgWzEwMC4wJV0g ICovCisJLmRjLmIgMAorLkxGRTE6CisJLnNpemUJbWFpbiwgLi1tYWluCisgLmlmZGVmIEhQVVgK K3B2YXIJLmNvbW0JOAoreXZhcgkuY29tbQk0CisgLmVsc2UKKwkuY29tbQlwdmFyLDgsOAorCS5j b21tCXl2YXIsNCw0CisgLmVuZGlmCisJLmdsb2JsCXh2YXIKKwkuZGF0YQorCS5hbGlnbiA0CisJ LnR5cGUJeHZhciwgJW9iamVjdAorCS5zaXplCXh2YXIsIDQKK3h2YXI6CisJLjRieXRlCTQyCisJ LnRleHQKKy5MZXRleHQwOgorCS5zZWN0aW9uCS5kZWJ1Z19pbmZvLCIiLCVwcm9nYml0cworLkxk ZWJ1Z19pbmZvMDoKKwkuNGJ5dGUJMHgxNjAJLyogTGVuZ3RoIG9mIENvbXBpbGF0aW9uIFVuaXQg SW5mbyAqLworCS4yYnl0ZQkweDUJLyogRFdBUkYgdmVyc2lvbiBudW1iZXIgKi8KKwkuYnl0ZQkw eDEJLyogRFdfVVRfY29tcGlsZSAqLworCS5ieXRlCTB4OAkvKiBQb2ludGVyIFNpemUgKGluIGJ5 dGVzKSAqLworCS40Ynl0ZQkuTGRlYnVnX2FiYnJldjAJLyogT2Zmc2V0IEludG8gQWJicmV2LiBT ZWN0aW9uICovCisJLnVsZWIxMjggMHg2CS8qIChESUUgKDB4YykgRFdfVEFHX2NvbXBpbGVfdW5p dCkgKi8KKwkuNGJ5dGUJLkxBU0YyMQkvKiBEV19BVF9wcm9kdWNlcjogIkdOVSBDMTEgNy4wLjEg MjAxNzAyMTggKGV4cGVyaW1lbnRhbCkgLW10dW5lPWdlbmVyaWMgLW1hcmNoPXg4Ni02NCAtZ2R3 YXJmLTUgLU8yIiAqLworCS5ieXRlCTB4MWQJLyogRFdfQVRfbGFuZ3VhZ2UgKi8KKwkuNGJ5dGUJ LkxBU0YwCS8qIERXX0FUX25hbWU6ICJtYWluLmMiICovCisJLjRieXRlCS5MQVNGMQkvKiBEV19B VF9jb21wX2RpcjogIiIgKi8KKwkuNGJ5dGUJLkxMUkwyCS8qIERXX0FUX3JhbmdlcyAqLworCS44 Ynl0ZQkwCS8qIERXX0FUX2xvd19wYyAqLworCS40Ynl0ZQkuTGRlYnVnX2xpbmUwCS8qIERXX0FU X3N0bXRfbGlzdCAqLworCS51bGViMTI4IDB4MQkvKiAoRElFICgweDJhKSBEV19UQUdfYmFzZV90 eXBlKSAqLworCS5ieXRlCTB4MQkvKiBEV19BVF9ieXRlX3NpemUgKi8KKwkuYnl0ZQkweDgJLyog RFdfQVRfZW5jb2RpbmcgKi8KKwkuNGJ5dGUJLkxBU0YyCS8qIERXX0FUX25hbWU6ICJ1bnNpZ25l ZCBjaGFyIiAqLworCS51bGViMTI4IDB4MQkvKiAoRElFICgweDMxKSBEV19UQUdfYmFzZV90eXBl KSAqLworCS5ieXRlCTB4MgkvKiBEV19BVF9ieXRlX3NpemUgKi8KKwkuYnl0ZQkweDcJLyogRFdf QVRfZW5jb2RpbmcgKi8KKwkuNGJ5dGUJLkxBU0YzCS8qIERXX0FUX25hbWU6ICJzaG9ydCB1bnNp Z25lZCBpbnQiICovCisJLnVsZWIxMjggMHgxCS8qIChESUUgKDB4MzgpIERXX1RBR19iYXNlX3R5 cGUpICovCisJLmJ5dGUJMHg0CS8qIERXX0FUX2J5dGVfc2l6ZSAqLworCS5ieXRlCTB4NwkvKiBE V19BVF9lbmNvZGluZyAqLworCS40Ynl0ZQkuTEFTRjQJLyogRFdfQVRfbmFtZTogInVuc2lnbmVk IGludCIgKi8KKwkudWxlYjEyOCAweDEJLyogKERJRSAoMHgzZikgRFdfVEFHX2Jhc2VfdHlwZSkg Ki8KKwkuYnl0ZQkweDgJLyogRFdfQVRfYnl0ZV9zaXplICovCisJLmJ5dGUJMHg3CS8qIERXX0FU X2VuY29kaW5nICovCisJLjRieXRlCS5MQVNGNQkvKiBEV19BVF9uYW1lOiAibG9uZyB1bnNpZ25l ZCBpbnQiICovCisJLnVsZWIxMjggMHgxCS8qIChESUUgKDB4NDYpIERXX1RBR19iYXNlX3R5cGUp ICovCisJLmJ5dGUJMHgxCS8qIERXX0FUX2J5dGVfc2l6ZSAqLworCS5ieXRlCTB4NgkvKiBEV19B VF9lbmNvZGluZyAqLworCS40Ynl0ZQkuTEFTRjYJLyogRFdfQVRfbmFtZTogInNpZ25lZCBjaGFy IiAqLworCS51bGViMTI4IDB4MQkvKiAoRElFICgweDRkKSBEV19UQUdfYmFzZV90eXBlKSAqLwor CS5ieXRlCTB4MgkvKiBEV19BVF9ieXRlX3NpemUgKi8KKwkuYnl0ZQkweDUJLyogRFdfQVRfZW5j b2RpbmcgKi8KKwkuNGJ5dGUJLkxBU0Y3CS8qIERXX0FUX25hbWU6ICJzaG9ydCBpbnQiICovCisJ LnVsZWIxMjggMHg3CS8qIChESUUgKDB4NTQpIERXX1RBR19iYXNlX3R5cGUpICovCisJLmJ5dGUJ MHg0CS8qIERXX0FUX2J5dGVfc2l6ZSAqLworCS5ieXRlCTB4NQkvKiBEV19BVF9lbmNvZGluZyAq LworCS5hc2NpaSAiaW50XDAiCS8qIERXX0FUX25hbWUgKi8KKwkudWxlYjEyOCAweDEJLyogKERJ RSAoMHg1YikgRFdfVEFHX2Jhc2VfdHlwZSkgKi8KKwkuYnl0ZQkweDgJLyogRFdfQVRfYnl0ZV9z aXplICovCisJLmJ5dGUJMHg1CS8qIERXX0FUX2VuY29kaW5nICovCisJLjRieXRlCS5MQVNGOAkv KiBEV19BVF9uYW1lOiAibG9uZyBpbnQiICovCisJLnVsZWIxMjggMHgxCS8qIChESUUgKDB4NjIp IERXX1RBR19iYXNlX3R5cGUpICovCisJLmJ5dGUJMHg4CS8qIERXX0FUX2J5dGVfc2l6ZSAqLwor CS5ieXRlCTB4NwkvKiBEV19BVF9lbmNvZGluZyAqLworCS40Ynl0ZQkuTEFTRjkJLyogRFdfQVRf bmFtZTogInNpemV0eXBlIiAqLworCS51bGViMTI4IDB4MwkvKiAoRElFICgweDY5KSBEV19UQUdf cG9pbnRlcl90eXBlKSAqLworCQkJLyogRFdfQVRfYnl0ZV9zaXplICgweDgpICovCisJLjRieXRl CTB4NmUJLyogRFdfQVRfdHlwZSAqLworCS51bGViMTI4IDB4MQkvKiAoRElFICgweDZlKSBEV19U QUdfYmFzZV90eXBlKSAqLworCS5ieXRlCTB4MQkvKiBEV19BVF9ieXRlX3NpemUgKi8KKwkuYnl0 ZQkweDYJLyogRFdfQVRfZW5jb2RpbmcgKi8KKwkuNGJ5dGUJLkxBU0YxMAkvKiBEV19BVF9uYW1l OiAiY2hhciIgKi8KKwkudWxlYjEyOCAweDgJLyogKERJRSAoMHg3NSkgRFdfVEFHX3ZhcmlhYmxl KSAqLworCS40Ynl0ZQkuTEFTRjExCS8qIERXX0FUX25hbWU6ICJfX2Vudmlyb24iICovCisJLmJ5 dGUJMHgyCS8qIERXX0FUX2RlY2xfZmlsZSAoL3Vzci9pbmNsdWRlL3VuaXN0ZC5oKSAqLworCS4y Ynl0ZQkweDIyMgkvKiBEV19BVF9kZWNsX2xpbmUgKi8KKwkuNGJ5dGUJMHg4MQkvKiBEV19BVF90 eXBlICovCisJCQkvKiBEV19BVF9leHRlcm5hbCAqLworCQkJLyogRFdfQVRfZGVjbGFyYXRpb24g Ki8KKwkudWxlYjEyOCAweDMJLyogKERJRSAoMHg4MSkgRFdfVEFHX3BvaW50ZXJfdHlwZSkgKi8K KwkJCS8qIERXX0FUX2J5dGVfc2l6ZSAoMHg4KSAqLworCS40Ynl0ZQkweDY5CS8qIERXX0FUX3R5 cGUgKi8KKwkudWxlYjEyOCAweDIJLyogKERJRSAoMHg4NikgRFdfVEFHX3ZhcmlhYmxlKSAqLwor CS40Ynl0ZQkuTEFTRjEyCS8qIERXX0FUX25hbWU6ICJvcHRhcmciICovCisJCQkvKiBEV19BVF9k ZWNsX2ZpbGUgKDMsIC91c3IvaW5jbHVkZS9nZXRvcHQuaCkgKi8KKwkuYnl0ZQkweDM5CS8qIERX X0FUX2RlY2xfbGluZSAqLworCS40Ynl0ZQkweDY5CS8qIERXX0FUX3R5cGUgKi8KKwkJCS8qIERX X0FUX2V4dGVybmFsICovCisJCQkvKiBEV19BVF9kZWNsYXJhdGlvbiAqLworCS51bGViMTI4IDB4 MgkvKiAoRElFICgweDkwKSBEV19UQUdfdmFyaWFibGUpICovCisJLjRieXRlCS5MQVNGMTMJLyog RFdfQVRfbmFtZTogIm9wdGluZCIgKi8KKwkJCS8qIERXX0FUX2RlY2xfZmlsZSAoMywgL3Vzci9p bmNsdWRlL2dldG9wdC5oKSAqLworCS5ieXRlCTB4NDcJLyogRFdfQVRfZGVjbF9saW5lICovCisJ LjRieXRlCTB4NTQJLyogRFdfQVRfdHlwZSAqLworCQkJLyogRFdfQVRfZXh0ZXJuYWwgKi8KKwkJ CS8qIERXX0FUX2RlY2xhcmF0aW9uICovCisJLnVsZWIxMjggMHgyCS8qIChESUUgKDB4OWEpIERX X1RBR192YXJpYWJsZSkgKi8KKwkuNGJ5dGUJLkxBU0YxNAkvKiBEV19BVF9uYW1lOiAib3B0ZXJy IiAqLworCQkJLyogRFdfQVRfZGVjbF9maWxlICgzLCAvdXNyL2luY2x1ZGUvZ2V0b3B0LmgpICov CisJLmJ5dGUJMHg0YwkvKiBEV19BVF9kZWNsX2xpbmUgKi8KKwkuNGJ5dGUJMHg1NAkvKiBEV19B VF90eXBlICovCisJCQkvKiBEV19BVF9leHRlcm5hbCAqLworCQkJLyogRFdfQVRfZGVjbGFyYXRp b24gKi8KKwkudWxlYjEyOCAweDIJLyogKERJRSAoMHhhNCkgRFdfVEFHX3ZhcmlhYmxlKSAqLwor CS40Ynl0ZQkuTEFTRjE1CS8qIERXX0FUX25hbWU6ICJvcHRvcHQiICovCisJCQkvKiBEV19BVF9k ZWNsX2ZpbGUgKDMsIC91c3IvaW5jbHVkZS9nZXRvcHQuaCkgKi8KKwkuYnl0ZQkweDUwCS8qIERX X0FUX2RlY2xfbGluZSAqLworCS40Ynl0ZQkweDU0CS8qIERXX0FUX3R5cGUgKi8KKwkJCS8qIERX X0FUX2V4dGVybmFsICovCisJCQkvKiBEV19BVF9kZWNsYXJhdGlvbiAqLworCS51bGViMTI4IDB4 NAkvKiAoRElFICgweGFlKSBEV19UQUdfdmFyaWFibGUpICovCisJLjRieXRlCS5MQVNGMTYJLyog RFdfQVRfbmFtZTogInh2YXIiICovCisJCQkvKiBEV19BVF9kZWNsX2ZpbGUgKDEsIG1haW4uYykg Ki8KKwkuYnl0ZQkweDIJLyogRFdfQVRfZGVjbF9saW5lICovCisJLjRieXRlCTB4NTQJLyogRFdf QVRfdHlwZSAqLworCQkJLyogRFdfQVRfZXh0ZXJuYWwgKi8KKwkudWxlYjEyOCAweDkJLyogRFdf QVRfbG9jYXRpb24gKi8KKwkuYnl0ZQkweDMJLyogRFdfT1BfYWRkciAqLworCS44Ynl0ZQkweDEy MzQKKwkudWxlYjEyOCAweDQJLyogKERJRSAoMHhjMikgRFdfVEFHX3ZhcmlhYmxlKSAqLworCS40 Ynl0ZQkuTEFTRjE3CS8qIERXX0FUX25hbWU6ICJ5dmFyIiAqLworCQkJLyogRFdfQVRfZGVjbF9m aWxlICgxLCBtYWluLmMpICovCisJLmJ5dGUJMHgzCS8qIERXX0FUX2RlY2xfbGluZSAqLworCS40 Ynl0ZQkweDU0CS8qIERXX0FUX3R5cGUgKi8KKwkJCS8qIERXX0FUX2V4dGVybmFsICovCisJLnVs ZWIxMjggMHg5CS8qIERXX0FUX2xvY2F0aW9uICovCisJLmJ5dGUJMHgzCS8qIERXX09QX2FkZHIg Ki8KKwkuOGJ5dGUJMHgxMjM0CisJLnVsZWIxMjggMHg0CS8qIChESUUgKDB4ZDYpIERXX1RBR192 YXJpYWJsZSkgKi8KKwkuNGJ5dGUJLkxBU0YxOAkvKiBEV19BVF9uYW1lOiAicHZhciIgKi8KKwkJ CS8qIERXX0FUX2RlY2xfZmlsZSAoMSwgbWFpbi5jKSAqLworCS5ieXRlCTB4NAkvKiBEV19BVF9k ZWNsX2xpbmUgKi8KKwkuNGJ5dGUJMHhlYQkvKiBEV19BVF90eXBlICovCisJCQkvKiBEV19BVF9l eHRlcm5hbCAqLworCS51bGViMTI4IDB4OQkvKiBEV19BVF9sb2NhdGlvbiAqLworCS5ieXRlCTB4 MwkvKiBEV19PUF9hZGRyICovCisJLjhieXRlCTB4MTIzNAorCS51bGViMTI4IDB4MwkvKiAoRElF ICgweGVhKSBEV19UQUdfcG9pbnRlcl90eXBlKSAqLworCQkJLyogRFdfQVRfYnl0ZV9zaXplICgw eDgpICovCisJLjRieXRlCTB4NTQJLyogRFdfQVRfdHlwZSAqLworCS51bGViMTI4IDB4OQkvKiAo RElFICgweGVmKSBEV19UQUdfc3VicHJvZ3JhbSkgKi8KKwkJCS8qIERXX0FUX2V4dGVybmFsICov CisJLjRieXRlCS5MQVNGMjIJLyogRFdfQVRfbmFtZTogIm1haW4iICovCisJLmJ5dGUJMHgxCS8q IERXX0FUX2RlY2xfZmlsZSAobWFpbi5jKSAqLworCS5ieXRlCTB4NgkvKiBEV19BVF9kZWNsX2xp bmUgKi8KKwkJCS8qIERXX0FUX3Byb3RvdHlwZWQgKi8KKwkuNGJ5dGUJMHg1NAkvKiBEV19BVF90 eXBlICovCisJLjhieXRlCTB4MTIzNAkvKiBEV19BVF9sb3dfcGMgKi8KKwkuOGJ5dGUJMHg1Njc4 CS8qIERXX0FUX2hpZ2hfcGMgKi8KKwkudWxlYjEyOCAweDEJLyogRFdfQVRfZnJhbWVfYmFzZSAq LworCS5ieXRlCTB4OWMJLyogRFdfT1BfY2FsbF9mcmFtZV9jZmEgKi8KKwkJCS8qIERXX0FUX2Nh bGxfYWxsX2NhbGxzICovCisJLjRieXRlCTB4MTNlCS8qIERXX0FUX3NpYmxpbmcgKi8KKwkudWxl YjEyOCAweDUJLyogKERJRSAoMHgxMTApIERXX1RBR19mb3JtYWxfcGFyYW1ldGVyKSAqLworCS40 Ynl0ZQkuTEFTRjE5CS8qIERXX0FUX25hbWU6ICJhcmdjIiAqLworCQkJLyogRFdfQVRfZGVjbF9m aWxlICgxLCBtYWluLmMpICovCisJCQkvKiBEV19BVF9kZWNsX2xpbmUgKDB4NikgKi8KKwkuNGJ5 dGUJMHg1NAkvKiBEV19BVF90eXBlICovCisJLjRieXRlCS5MTFNUMAkvKiBEV19BVF9sb2NhdGlv biAqLworCS51bGViMTI4IDB4NQkvKiAoRElFICgweDExZCkgRFdfVEFHX2Zvcm1hbF9wYXJhbWV0 ZXIpICovCisJLjRieXRlCS5MQVNGMjAJLyogRFdfQVRfbmFtZTogImFyZ3YiICovCisJCQkvKiBE V19BVF9kZWNsX2ZpbGUgKDEsIG1haW4uYykgKi8KKwkJCS8qIERXX0FUX2RlY2xfbGluZSAoMHg2 KSAqLworCS40Ynl0ZQkweDgxCS8qIERXX0FUX3R5cGUgKi8KKwkuNGJ5dGUJLkxMU1QxCS8qIERX X0FUX2xvY2F0aW9uICovCisJLnVsZWIxMjggMHhhCS8qIChESUUgKDB4MTJhKSBEV19UQUdfY2Fs bF9zaXRlKSAqLworCS44Ynl0ZQkweDEyMzQ1CS8qIERXX0FUX2NhbGxfcmV0dXJuX3BjICovCisJ LjRieXRlCTB4MTU3CS8qIERXX0FUX2NhbGxfb3JpZ2luICovCisJLnVsZWIxMjggMHhiCS8qIChE SUUgKDB4MTM3KSBEV19UQUdfY2FsbF9zaXRlX3BhcmFtZXRlcikgKi8KKwkudWxlYjEyOCAweDEJ LyogRFdfQVRfbG9jYXRpb24gKi8KKwkuYnl0ZQkweDU1CS8qIERXX09QX3JlZzUgKi8KKwkudWxl YjEyOCAweDEJLyogRFdfQVRfY2FsbF92YWx1ZSAqLworCS5ieXRlCTB4MzAJLyogRFdfT1BfbGl0 MCAqLworCS5ieXRlCTAJLyogZW5kIG9mIGNoaWxkcmVuIG9mIERJRSAweDEyYSAqLworCS5ieXRl CTAJLyogZW5kIG9mIGNoaWxkcmVuIG9mIERJRSAweGVmICovCisJLnVsZWIxMjggMHhjCS8qIChE SUUgKDB4MTNlKSBEV19UQUdfc3VicHJvZ3JhbSkgKi8KKwkJCS8qIERXX0FUX2V4dGVybmFsICov CisJLjRieXRlCS5MQVNGMjMJLyogRFdfQVRfbmFtZTogImZ1bmMiICovCisJLmJ5dGUJMHgxCS8q IERXX0FUX2RlY2xfZmlsZSAobWFpbi5jKSAqLworCS5ieXRlCTB4NQkvKiBEV19BVF9kZWNsX2xp bmUgKi8KKwkJCS8qIERXX0FUX3Byb3RvdHlwZWQgKi8KKwkuOGJ5dGUJMHgxMjM0CS8qIERXX0FU X2xvd19wYyAqLworCS44Ynl0ZQkweDU2NzgJLyogRFdfQVRfaGlnaF9wYyAqLworCS51bGViMTI4 IDB4MQkvKiBEV19BVF9mcmFtZV9iYXNlICovCisJLmJ5dGUJMHg5YwkvKiBEV19PUF9jYWxsX2Zy YW1lX2NmYSAqLworCQkJLyogRFdfQVRfY2FsbF9hbGxfY2FsbHMgKi8KKwkudWxlYjEyOCAweGQJ LyogKERJRSAoMHgxNTcpIERXX1RBR19zdWJwcm9ncmFtKSAqLworCQkJLyogRFdfQVRfZXh0ZXJu YWwgKi8KKwkJCS8qIERXX0FUX2RlY2xhcmF0aW9uICovCisJLjRieXRlCS5MQVNGMjQJLyogRFdf QVRfbGlua2FnZV9uYW1lOiAiYWxhcm0iICovCisJLjRieXRlCS5MQVNGMjQJLyogRFdfQVRfbmFt ZTogImFsYXJtIiAqLworCS5ieXRlCTB4MgkvKiBEV19BVF9kZWNsX2ZpbGUgKC91c3IvaW5jbHVk ZS91bmlzdGQuaCkgKi8KKwkuMmJ5dGUJMHgxYjMJLyogRFdfQVRfZGVjbF9saW5lICovCisJLmJ5 dGUJMAkvKiBlbmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4YyAqLworCS5zZWN0aW9uCS5kZWJ1Z19h YmJyZXYsIiIsJXByb2diaXRzCisuTGRlYnVnX2FiYnJldjA6CisuTGZ1bmNfYmVnaW4wOgorCS51 bGViMTI4IDB4MQkvKiAoYWJicmV2IGNvZGUpICovCisJLnVsZWIxMjggMHgyNAkvKiAoVEFHOiBE V19UQUdfYmFzZV90eXBlKSAqLworCS5ieXRlCTAJLyogRFdfY2hpbGRyZW5fbm8gKi8KKwkudWxl YjEyOCAweGIJLyogKERXX0FUX2J5dGVfc2l6ZSkgKi8KKwkudWxlYjEyOCAweGIJLyogKERXX0ZP Uk1fZGF0YTEpICovCisJLnVsZWIxMjggMHgzZQkvKiAoRFdfQVRfZW5jb2RpbmcpICovCisJLnVs ZWIxMjggMHhiCS8qIChEV19GT1JNX2RhdGExKSAqLworLkxmdW5jX2VuZDA6CisJLnVsZWIxMjgg MHgzCS8qIChEV19BVF9uYW1lKSAqLworCS51bGViMTI4IDB4ZQkvKiAoRFdfRk9STV9zdHJwKSAq LworCS5ieXRlCTAKKwkuYnl0ZQkwCisJLnVsZWIxMjggMHgyCS8qIChhYmJyZXYgY29kZSkgKi8K KwkudWxlYjEyOCAweDM0CS8qIChUQUc6IERXX1RBR192YXJpYWJsZSkgKi8KKwkuYnl0ZQkwCS8q IERXX2NoaWxkcmVuX25vICovCisJLnVsZWIxMjggMHgzCS8qIChEV19BVF9uYW1lKSAqLworCS51 bGViMTI4IDB4ZQkvKiAoRFdfRk9STV9zdHJwKSAqLworCS51bGViMTI4IDB4M2EJLyogKERXX0FU X2RlY2xfZmlsZSkgKi8KKwkudWxlYjEyOCAweDIxCS8qIChEV19GT1JNX2ltcGxpY2l0X2NvbnN0 KSAqLworCS5zbGViMTI4IDMJLyogKC91c3IvaW5jbHVkZS9nZXRvcHQuaCkgKi8KKwkudWxlYjEy OCAweDNiCS8qIChEV19BVF9kZWNsX2xpbmUpICovCisJLnVsZWIxMjggMHhiCS8qIChEV19GT1JN X2RhdGExKSAqLworCS51bGViMTI4IDB4NDkJLyogKERXX0FUX3R5cGUpICovCisJLnVsZWIxMjgg MHgxMwkvKiAoRFdfRk9STV9yZWY0KSAqLworCS51bGViMTI4IDB4M2YJLyogKERXX0FUX2V4dGVy bmFsKSAqLworCS51bGViMTI4IDB4MTkJLyogKERXX0ZPUk1fZmxhZ19wcmVzZW50KSAqLworCS51 bGViMTI4IDB4M2MJLyogKERXX0FUX2RlY2xhcmF0aW9uKSAqLworCS51bGViMTI4IDB4MTkJLyog KERXX0ZPUk1fZmxhZ19wcmVzZW50KSAqLworCS5ieXRlCTAKKwkuYnl0ZQkwCisJLnVsZWIxMjgg MHgzCS8qIChhYmJyZXYgY29kZSkgKi8KKwkudWxlYjEyOCAweGYJLyogKFRBRzogRFdfVEFHX3Bv aW50ZXJfdHlwZSkgKi8KKwkuYnl0ZQkwCS8qIERXX2NoaWxkcmVuX25vICovCisJLnVsZWIxMjgg MHhiCS8qIChEV19BVF9ieXRlX3NpemUpICovCisJLnVsZWIxMjggMHgyMQkvKiAoRFdfRk9STV9p bXBsaWNpdF9jb25zdCkgKi8KKwkuc2xlYjEyOCA4CisJLnVsZWIxMjggMHg0OQkvKiAoRFdfQVRf dHlwZSkgKi8KKwkudWxlYjEyOCAweDEzCS8qIChEV19GT1JNX3JlZjQpICovCisJLmJ5dGUJMAor CS5ieXRlCTAKKwkudWxlYjEyOCAweDQJLyogKGFiYnJldiBjb2RlKSAqLworCS51bGViMTI4IDB4 MzQJLyogKFRBRzogRFdfVEFHX3ZhcmlhYmxlKSAqLworCS5ieXRlCTAJLyogRFdfY2hpbGRyZW5f bm8gKi8KKwkudWxlYjEyOCAweDMJLyogKERXX0FUX25hbWUpICovCisJLnVsZWIxMjggMHhlCS8q IChEV19GT1JNX3N0cnApICovCisJLnVsZWIxMjggMHgzYQkvKiAoRFdfQVRfZGVjbF9maWxlKSAq LworCS51bGViMTI4IDB4MjEJLyogKERXX0ZPUk1faW1wbGljaXRfY29uc3QpICovCisJLnNsZWIx MjggMQkvKiAobWFpbi5jKSAqLworCS51bGViMTI4IDB4M2IJLyogKERXX0FUX2RlY2xfbGluZSkg Ki8KKwkudWxlYjEyOCAweGIJLyogKERXX0ZPUk1fZGF0YTEpICovCisJLnVsZWIxMjggMHg0OQkv KiAoRFdfQVRfdHlwZSkgKi8KKwkudWxlYjEyOCAweDEzCS8qIChEV19GT1JNX3JlZjQpICovCisJ LnVsZWIxMjggMHgzZgkvKiAoRFdfQVRfZXh0ZXJuYWwpICovCisJLnVsZWIxMjggMHgxOQkvKiAo RFdfRk9STV9mbGFnX3ByZXNlbnQpICovCisJLnVsZWIxMjggMHgyCS8qIChEV19BVF9sb2NhdGlv bikgKi8KKwkudWxlYjEyOCAweDE4CS8qIChEV19GT1JNX2V4cHJsb2MpICovCisJLmJ5dGUJMAor CS5ieXRlCTAKKwkudWxlYjEyOCAweDUJLyogKGFiYnJldiBjb2RlKSAqLworCS51bGViMTI4IDB4 NQkvKiAoVEFHOiBEV19UQUdfZm9ybWFsX3BhcmFtZXRlcikgKi8KKwkuYnl0ZQkwCS8qIERXX2No aWxkcmVuX25vICovCisJLnVsZWIxMjggMHgzCS8qIChEV19BVF9uYW1lKSAqLworCS51bGViMTI4 IDB4ZQkvKiAoRFdfRk9STV9zdHJwKSAqLworCS51bGViMTI4IDB4M2EJLyogKERXX0FUX2RlY2xf ZmlsZSkgKi8KKwkudWxlYjEyOCAweDIxCS8qIChEV19GT1JNX2ltcGxpY2l0X2NvbnN0KSAqLwor CS5zbGViMTI4IDEJLyogKG1haW4uYykgKi8KKwkudWxlYjEyOCAweDNiCS8qIChEV19BVF9kZWNs X2xpbmUpICovCisJLnVsZWIxMjggMHgyMQkvKiAoRFdfRk9STV9pbXBsaWNpdF9jb25zdCkgKi8K Kwkuc2xlYjEyOCA2CisJLnVsZWIxMjggMHg0OQkvKiAoRFdfQVRfdHlwZSkgKi8KKwkudWxlYjEy OCAweDEzCS8qIChEV19GT1JNX3JlZjQpICovCisJLnVsZWIxMjggMHgyCS8qIChEV19BVF9sb2Nh dGlvbikgKi8KKwkudWxlYjEyOCAweDE3CS8qIChEV19GT1JNX3NlY19vZmZzZXQpICovCisJLmJ5 dGUJMAorCS5ieXRlCTAKKwkudWxlYjEyOCAweDYJLyogKGFiYnJldiBjb2RlKSAqLworCS51bGVi MTI4IDB4MTEJLyogKFRBRzogRFdfVEFHX2NvbXBpbGVfdW5pdCkgKi8KKwkuYnl0ZQkweDEJLyog RFdfY2hpbGRyZW5feWVzICovCisJLnVsZWIxMjggMHgyNQkvKiAoRFdfQVRfcHJvZHVjZXIpICov CisJLnVsZWIxMjggMHhlCS8qIChEV19GT1JNX3N0cnApICovCisJLnVsZWIxMjggMHgxMwkvKiAo RFdfQVRfbGFuZ3VhZ2UpICovCisJLnVsZWIxMjggMHhiCS8qIChEV19GT1JNX2RhdGExKSAqLwor CS51bGViMTI4IDB4MwkvKiAoRFdfQVRfbmFtZSkgKi8KKwkudWxlYjEyOCAweDFmCS8qIChEV19G T1JNX2xpbmVfc3RycCkgKi8KKwkudWxlYjEyOCAweDFiCS8qIChEV19BVF9jb21wX2RpcikgKi8K KwkudWxlYjEyOCAweDFmCS8qIChEV19GT1JNX2xpbmVfc3RycCkgKi8KKwkudWxlYjEyOCAweDU1 CS8qIChEV19BVF9yYW5nZXMpICovCisJLnVsZWIxMjggMHgxNwkvKiAoRFdfRk9STV9zZWNfb2Zm c2V0KSAqLworCS51bGViMTI4IDB4MTEJLyogKERXX0FUX2xvd19wYykgKi8KKwkudWxlYjEyOCAw eDEJLyogKERXX0ZPUk1fYWRkcikgKi8KKwkudWxlYjEyOCAweDEwCS8qIChEV19BVF9zdG10X2xp c3QpICovCisJLnVsZWIxMjggMHgxNwkvKiAoRFdfRk9STV9zZWNfb2Zmc2V0KSAqLworCS5ieXRl CTAKKwkuYnl0ZQkwCisJLnVsZWIxMjggMHg3CS8qIChhYmJyZXYgY29kZSkgKi8KKwkudWxlYjEy OCAweDI0CS8qIChUQUc6IERXX1RBR19iYXNlX3R5cGUpICovCisJLmJ5dGUJMAkvKiBEV19jaGls ZHJlbl9ubyAqLworCS51bGViMTI4IDB4YgkvKiAoRFdfQVRfYnl0ZV9zaXplKSAqLworCS51bGVi MTI4IDB4YgkvKiAoRFdfRk9STV9kYXRhMSkgKi8KKwkudWxlYjEyOCAweDNlCS8qIChEV19BVF9l bmNvZGluZykgKi8KKwkudWxlYjEyOCAweGIJLyogKERXX0ZPUk1fZGF0YTEpICovCisJLnVsZWIx MjggMHgzCS8qIChEV19BVF9uYW1lKSAqLworCS51bGViMTI4IDB4OAkvKiAoRFdfRk9STV9zdHJp bmcpICovCisJLmJ5dGUJMAorCS5ieXRlCTAKKwkudWxlYjEyOCAweDgJLyogKGFiYnJldiBjb2Rl KSAqLworCS51bGViMTI4IDB4MzQJLyogKFRBRzogRFdfVEFHX3ZhcmlhYmxlKSAqLworCS5ieXRl CTAJLyogRFdfY2hpbGRyZW5fbm8gKi8KKwkudWxlYjEyOCAweDMJLyogKERXX0FUX25hbWUpICov CisJLnVsZWIxMjggMHhlCS8qIChEV19GT1JNX3N0cnApICovCisJLnVsZWIxMjggMHgzYQkvKiAo RFdfQVRfZGVjbF9maWxlKSAqLworCS51bGViMTI4IDB4YgkvKiAoRFdfRk9STV9kYXRhMSkgKi8K KwkudWxlYjEyOCAweDNiCS8qIChEV19BVF9kZWNsX2xpbmUpICovCisJLnVsZWIxMjggMHg1CS8q IChEV19GT1JNX2RhdGEyKSAqLworCS51bGViMTI4IDB4NDkJLyogKERXX0FUX3R5cGUpICovCisJ LnVsZWIxMjggMHgxMwkvKiAoRFdfRk9STV9yZWY0KSAqLworCS51bGViMTI4IDB4M2YJLyogKERX X0FUX2V4dGVybmFsKSAqLworCS51bGViMTI4IDB4MTkJLyogKERXX0ZPUk1fZmxhZ19wcmVzZW50 KSAqLworCS51bGViMTI4IDB4M2MJLyogKERXX0FUX2RlY2xhcmF0aW9uKSAqLworCS51bGViMTI4 IDB4MTkJLyogKERXX0ZPUk1fZmxhZ19wcmVzZW50KSAqLworCS5ieXRlCTAKKwkuYnl0ZQkwCisJ LnVsZWIxMjggMHg5CS8qIChhYmJyZXYgY29kZSkgKi8KKwkudWxlYjEyOCAweDJlCS8qIChUQUc6 IERXX1RBR19zdWJwcm9ncmFtKSAqLworCS5ieXRlCTB4MQkvKiBEV19jaGlsZHJlbl95ZXMgKi8K KwkudWxlYjEyOCAweDNmCS8qIChEV19BVF9leHRlcm5hbCkgKi8KKwkudWxlYjEyOCAweDE5CS8q IChEV19GT1JNX2ZsYWdfcHJlc2VudCkgKi8KKwkudWxlYjEyOCAweDMJLyogKERXX0FUX25hbWUp ICovCisJLnVsZWIxMjggMHhlCS8qIChEV19GT1JNX3N0cnApICovCisJLnVsZWIxMjggMHgzYQkv KiAoRFdfQVRfZGVjbF9maWxlKSAqLworCS51bGViMTI4IDB4YgkvKiAoRFdfRk9STV9kYXRhMSkg Ki8KKwkudWxlYjEyOCAweDNiCS8qIChEV19BVF9kZWNsX2xpbmUpICovCisJLnVsZWIxMjggMHhi CS8qIChEV19GT1JNX2RhdGExKSAqLworCS51bGViMTI4IDB4MjcJLyogKERXX0FUX3Byb3RvdHlw ZWQpICovCisJLnVsZWIxMjggMHgxOQkvKiAoRFdfRk9STV9mbGFnX3ByZXNlbnQpICovCisJLnVs ZWIxMjggMHg0OQkvKiAoRFdfQVRfdHlwZSkgKi8KKwkudWxlYjEyOCAweDEzCS8qIChEV19GT1JN X3JlZjQpICovCisJLnVsZWIxMjggMHgxMQkvKiAoRFdfQVRfbG93X3BjKSAqLworCS51bGViMTI4 IDB4MQkvKiAoRFdfRk9STV9hZGRyKSAqLworCS51bGViMTI4IDB4MTIJLyogKERXX0FUX2hpZ2hf cGMpICovCisJLnVsZWIxMjggMHg3CS8qIChEV19GT1JNX2RhdGE4KSAqLworCS51bGViMTI4IDB4 NDAJLyogKERXX0FUX2ZyYW1lX2Jhc2UpICovCisJLnVsZWIxMjggMHgxOAkvKiAoRFdfRk9STV9l eHBybG9jKSAqLworCS51bGViMTI4IDB4N2EJLyogKERXX0FUX2NhbGxfYWxsX2NhbGxzKSAqLwor CS51bGViMTI4IDB4MTkJLyogKERXX0ZPUk1fZmxhZ19wcmVzZW50KSAqLworCS51bGViMTI4IDB4 MQkvKiAoRFdfQVRfc2libGluZykgKi8KKwkudWxlYjEyOCAweDEzCS8qIChEV19GT1JNX3JlZjQp ICovCisJLmJ5dGUJMAorCS5ieXRlCTAKKwkudWxlYjEyOCAweGEJLyogKGFiYnJldiBjb2RlKSAq LworCS51bGViMTI4IDB4NDgJLyogKFRBRzogRFdfVEFHX2NhbGxfc2l0ZSkgKi8KKwkuYnl0ZQkw eDEJLyogRFdfY2hpbGRyZW5feWVzICovCisJLnVsZWIxMjggMHg3ZAkvKiAoRFdfQVRfY2FsbF9y ZXR1cm5fcGMpICovCisJLnVsZWIxMjggMHgxCS8qIChEV19GT1JNX2FkZHIpICovCisJLnVsZWIx MjggMHg3ZgkvKiAoRFdfQVRfY2FsbF9vcmlnaW4pICovCisJLnVsZWIxMjggMHgxMwkvKiAoRFdf Rk9STV9yZWY0KSAqLworCS5ieXRlCTAKKwkuYnl0ZQkwCisJLnVsZWIxMjggMHhiCS8qIChhYmJy ZXYgY29kZSkgKi8KKwkudWxlYjEyOCAweDQ5CS8qIChUQUc6IERXX1RBR19jYWxsX3NpdGVfcGFy YW1ldGVyKSAqLworCS5ieXRlCTAJLyogRFdfY2hpbGRyZW5fbm8gKi8KKwkudWxlYjEyOCAweDIJ LyogKERXX0FUX2xvY2F0aW9uKSAqLworCS51bGViMTI4IDB4MTgJLyogKERXX0ZPUk1fZXhwcmxv YykgKi8KKwkudWxlYjEyOCAweDdlCS8qIChEV19BVF9jYWxsX3ZhbHVlKSAqLworCS51bGViMTI4 IDB4MTgJLyogKERXX0ZPUk1fZXhwcmxvYykgKi8KKwkuYnl0ZQkwCisJLmJ5dGUJMAorCS51bGVi MTI4IDB4YwkvKiAoYWJicmV2IGNvZGUpICovCisJLnVsZWIxMjggMHgyZQkvKiAoVEFHOiBEV19U QUdfc3VicHJvZ3JhbSkgKi8KKwkuYnl0ZQkwCS8qIERXX2NoaWxkcmVuX25vICovCisJLnVsZWIx MjggMHgzZgkvKiAoRFdfQVRfZXh0ZXJuYWwpICovCisJLnVsZWIxMjggMHgxOQkvKiAoRFdfRk9S TV9mbGFnX3ByZXNlbnQpICovCisJLnVsZWIxMjggMHgzCS8qIChEV19BVF9uYW1lKSAqLworCS51 bGViMTI4IDB4ZQkvKiAoRFdfRk9STV9zdHJwKSAqLworCS51bGViMTI4IDB4M2EJLyogKERXX0FU X2RlY2xfZmlsZSkgKi8KKwkudWxlYjEyOCAweGIJLyogKERXX0ZPUk1fZGF0YTEpICovCisJLnVs ZWIxMjggMHgzYgkvKiAoRFdfQVRfZGVjbF9saW5lKSAqLworCS51bGViMTI4IDB4YgkvKiAoRFdf Rk9STV9kYXRhMSkgKi8KKwkudWxlYjEyOCAweDI3CS8qIChEV19BVF9wcm90b3R5cGVkKSAqLwor CS51bGViMTI4IDB4MTkJLyogKERXX0ZPUk1fZmxhZ19wcmVzZW50KSAqLworCS51bGViMTI4IDB4 MTEJLyogKERXX0FUX2xvd19wYykgKi8KKwkudWxlYjEyOCAweDEJLyogKERXX0ZPUk1fYWRkcikg Ki8KKwkudWxlYjEyOCAweDEyCS8qIChEV19BVF9oaWdoX3BjKSAqLworCS51bGViMTI4IDB4Nwkv KiAoRFdfRk9STV9kYXRhOCkgKi8KKwkudWxlYjEyOCAweDQwCS8qIChEV19BVF9mcmFtZV9iYXNl KSAqLworCS51bGViMTI4IDB4MTgJLyogKERXX0ZPUk1fZXhwcmxvYykgKi8KKwkudWxlYjEyOCAw eDdhCS8qIChEV19BVF9jYWxsX2FsbF9jYWxscykgKi8KKwkudWxlYjEyOCAweDE5CS8qIChEV19G T1JNX2ZsYWdfcHJlc2VudCkgKi8KKwkuYnl0ZQkwCisJLmJ5dGUJMAorCS51bGViMTI4IDB4ZAkv KiAoYWJicmV2IGNvZGUpICovCisJLnVsZWIxMjggMHgyZQkvKiAoVEFHOiBEV19UQUdfc3VicHJv Z3JhbSkgKi8KKwkuYnl0ZQkwCS8qIERXX2NoaWxkcmVuX25vICovCisJLnVsZWIxMjggMHgzZgkv KiAoRFdfQVRfZXh0ZXJuYWwpICovCisJLnVsZWIxMjggMHgxOQkvKiAoRFdfRk9STV9mbGFnX3By ZXNlbnQpICovCisJLnVsZWIxMjggMHgzYwkvKiAoRFdfQVRfZGVjbGFyYXRpb24pICovCisJLnVs ZWIxMjggMHgxOQkvKiAoRFdfRk9STV9mbGFnX3ByZXNlbnQpICovCisJLnVsZWIxMjggMHg2ZQkv KiAoRFdfQVRfbGlua2FnZV9uYW1lKSAqLworCS51bGViMTI4IDB4ZQkvKiAoRFdfRk9STV9zdHJw KSAqLworCS51bGViMTI4IDB4MwkvKiAoRFdfQVRfbmFtZSkgKi8KKwkudWxlYjEyOCAweGUJLyog KERXX0ZPUk1fc3RycCkgKi8KKwkudWxlYjEyOCAweDNhCS8qIChEV19BVF9kZWNsX2ZpbGUpICov CisJLnVsZWIxMjggMHhiCS8qIChEV19GT1JNX2RhdGExKSAqLworCS51bGViMTI4IDB4M2IJLyog KERXX0FUX2RlY2xfbGluZSkgKi8KKwkudWxlYjEyOCAweDUJLyogKERXX0ZPUk1fZGF0YTIpICov CisJLmJ5dGUJMAorCS5ieXRlCTAKKwkuYnl0ZQkwCisJLnNlY3Rpb24JLmRlYnVnX2xvY2xpc3Rz LCIiLCVwcm9nYml0cworICAgICAgICAubG9uZyAgIC5MZGVidWdfbGlzdF9oZWFkZXJfZW5kMC0u TGRlYnVnX2xpc3RfaGVhZGVyX3N0YXJ0MCAjIExlbmd0aAorLkxkZWJ1Z19saXN0X2hlYWRlcl9z dGFydDA6CisgICAgICAgIC5zaG9ydCAgNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAj IFZlcnNpb24KKyAgICAgICAgLmJ5dGUgICA4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICMgQWRkcmVzcyBzaXplCisgICAgICAgIC5ieXRlICAgMCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAjIFNlZ21lbnQgc2VsZWN0b3Igc2l6ZQorICAgICAgICAubG9uZyAgIDMgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIyBPZmZzZXQgZW50cnkgY291bnQKKy5MbG9jbGlzdHNf dGFibGVfYmFzZTA6CisgICAgICAgIC5sb25nICAgLkxkZWJ1Z19sb2MwLS5MbG9jbGlzdHNfdGFi bGVfYmFzZTAKKyAgICAgICAgLmxvbmcgICAuTGRlYnVnX2xvYzEtLkxsb2NsaXN0c190YWJsZV9i YXNlMAorICAgICAgICAubG9uZyAgIC5MZGVidWdfbG9jMi0uTGxvY2xpc3RzX3RhYmxlX2Jhc2Uw CisuTGRlYnVnX2xvYzA6CisgICAgICAgIC5ieXRlICAgNCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAjIERXX0xMRV9vZmZzZXRfcGFpcgorICAgICAgICAudWxlYjEyOCAuTGZ1bmNfYmVn aW4wLS5MZnVuY19iZWdpbjAgICAgIyAgIHN0YXJ0aW5nIG9mZnNldAorICAgICAgICAudWxlYjEy OCAuTGZ1bmNfZW5kMC0uTGZ1bmNfYmVnaW4wICAgICAgIyAgIGVuZGluZyBvZmZzZXQKKyAgICAg ICAgLmJ5dGUgICA2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgTG9jIGV4cHIgc2l6 ZQorICAgICAgICAuYnl0ZSAgIDg1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBEV19P UF9yZWc1CisgICAgICAgIC5ieXRlICAgMTQ3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAj IERXX09QX3BpZWNlCisgICAgICAgIC5ieXRlICAgOCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAjIDgKKyAgICAgICAgLmJ5dGUgICA4NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICMgc3VwZXItcmVnaXN0ZXIgRFdfT1BfcmVnNAorICAgICAgICAuYnl0ZSAgIDE0NyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIyBEV19PUF9waWVjZQorICAgICAgICAuYnl0ZSAgIDQgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIyA0CisgICAgICAgIC5ieXRlICAgMCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAjIERXX0xMRV9lbmRfb2ZfbGlzdAorLkxkZWJ1Z19sb2Mx OgorICAgICAgICAuYnl0ZSAgIDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBEV19M TEVfb2Zmc2V0X3BhaXIKKyAgICAgICAgLnVsZWIxMjggLkxmdW5jX2JlZ2luMC0uTGZ1bmNfYmVn aW4wICAgICMgICBzdGFydGluZyBvZmZzZXQKKyAgICAgICAgLnVsZWIxMjggLkxmdW5jX2VuZDAt LkxmdW5jX2JlZ2luMCAgICAgICMgICBlbmRpbmcgb2Zmc2V0CisgICAgICAgIC5ieXRlICAgNiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIExvYyBleHByIHNpemUKKyAgICAgICAgLmJ5 dGUgICA4MSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgRFdfT1BfcmVnMQorICAgICAg ICAuYnl0ZSAgIDE0NyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBEV19PUF9waWVjZQor ICAgICAgICAuYnl0ZSAgIDggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyA4CisgICAg ICAgIC5ieXRlICAgODIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHN1cGVyLXJlZ2lz dGVyIERXX09QX3JlZzIKKyAgICAgICAgLmJ5dGUgICAxNDcgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICMgRFdfT1BfcGllY2UKKyAgICAgICAgLmJ5dGUgICA0ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICMgNAorICAgICAgICAuYnl0ZSAgIDAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIyBEV19MTEVfZW5kX29mX2xpc3QKKy5MZGVidWdfbG9jMjoKKyAgICAgICAgLmJ5 dGUgICA0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgRFdfTExFX29mZnNldF9wYWly CisgICAgICAgIC51bGViMTI4IC5MZnVuY19iZWdpbjAtLkxmdW5jX2JlZ2luMCAgICAjICAgc3Rh cnRpbmcgb2Zmc2V0CisgICAgICAgIC51bGViMTI4IC5MZnVuY19lbmQwLS5MZnVuY19iZWdpbjAg ICAgICAjICAgZW5kaW5nIG9mZnNldAorICAgICAgICAuYnl0ZSAgIDYgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIyBMb2MgZXhwciBzaXplCisgICAgICAgIC5ieXRlICAgODggICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAjIERXX09QX3JlZzgKKyAgICAgICAgLmJ5dGUgICAxNDcg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgRFdfT1BfcGllY2UKKyAgICAgICAgLmJ5dGUg ICA4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgOAorICAgICAgICAuYnl0ZSAgIDg5 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBzdXBlci1yZWdpc3RlciBEV19PUF9yZWc5 CisgICAgICAgIC5ieXRlICAgMTQ3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIERXX09Q X3BpZWNlCisgICAgICAgIC5ieXRlICAgNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAj IDQKKyAgICAgICAgLmJ5dGUgICAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgRFdf TExFX2VuZF9vZl9saXN0CisuTGRlYnVnX2xpc3RfaGVhZGVyX2VuZDA6CisJLnNlY3Rpb24JLmRl YnVnX2FyYW5nZXMsIiIsJXByb2diaXRzCisJLjRieXRlCTB4M2MJLyogTGVuZ3RoIG9mIEFkZHJl c3MgUmFuZ2VzIEluZm8gKi8KKwkuMmJ5dGUJMHgyCS8qIERXQVJGIFZlcnNpb24gKi8KKwkuNGJ5 dGUJLkxkZWJ1Z19pbmZvMAkvKiBPZmZzZXQgb2YgQ29tcGlsYXRpb24gVW5pdCBJbmZvICovCisJ LmJ5dGUJMHg4CS8qIFNpemUgb2YgQWRkcmVzcyAqLworCS5ieXRlCTAJLyogU2l6ZSBvZiBTZWdt ZW50IERlc2NyaXB0b3IgKi8KKwkuMmJ5dGUJMAkvKiBQYWQgdG8gMTYgYnl0ZSBib3VuZGFyeSAq LworCS4yYnl0ZQkwCisJLjhieXRlCTB4MTIzNAkvKiBBZGRyZXNzICovCisJLjhieXRlCTB4NDU2 NwkvKiBMZW5ndGggKi8KKwkuOGJ5dGUJMHgxMjM0CS8qIEFkZHJlc3MgKi8KKwkuOGJ5dGUJMHg1 Njc4CS8qIExlbmd0aCAqLworCS44Ynl0ZQkwCisJLjhieXRlCTAKKwkuc2VjdGlvbgkuZGVidWdf cm5nbGlzdHMsIiIsJXByb2diaXRzCisuTGRlYnVnX3JhbmdlczA6CisJLjRieXRlCS5MZGVidWdf cmFuZ2VzMy0uTGRlYnVnX3JhbmdlczIJLyogTGVuZ3RoIG9mIFJhbmdlIExpc3RzICovCisuTGRl YnVnX3JhbmdlczI6CisJLjJieXRlCTB4NQkvKiBEV0FSRiBWZXJzaW9uICovCisJLmJ5dGUJMHg4 CS8qIEFkZHJlc3MgU2l6ZSAqLworCS5ieXRlCTAJLyogU2VnbWVudCBTaXplICovCisJLjRieXRl CTAJLyogT2Zmc2V0IEVudHJ5IENvdW50ICovCisuTExSTDI6CisJLmJ5dGUJMHg3CS8qIERXX1JM RV9zdGFydF9sZW5ndGggKCouTExSTDIpICovCisJLjhieXRlCTB4MTIzNAkvKiBSYW5nZSBiZWdp biBhZGRyZXNzICgqLkxMUkwyKSAqLworCS51bGViMTI4IC5MZXRleHQwLS5MdGV4dDAJLyogUmFu Z2UgbGVuZ3RoICgqLkxMUkwyKSAqLworCS5ieXRlCTB4NwkvKiBEV19STEVfc3RhcnRfbGVuZ3Ro ICgqLkxMUkwyKSAqLworCS44Ynl0ZQkweDEyMzQJLyogUmFuZ2UgYmVnaW4gYWRkcmVzcyAoKi5M TFJMMikgKi8KKwkudWxlYjEyOCAuTEZFMS0uTEZCMQkvKiBSYW5nZSBsZW5ndGggKCouTExSTDIp ICovCisJLmJ5dGUJMAkvKiBEV19STEVfZW5kX29mX2xpc3QgKCouTExSTDIpICovCisuTGRlYnVn X3JhbmdlczM6CisJLnNlY3Rpb24JLmRlYnVnX2xpbmUsIiIsJXByb2diaXRzCisuTGRlYnVnX2xp bmUwOgorCS40Ynl0ZQkuTEVMVDAtLkxTTFQwCS8qIExlbmd0aCBvZiBTb3VyY2UgTGluZSBJbmZv ICovCisuTFNMVDA6CisJLjJieXRlCTB4NQkvKiBEV0FSRiBWZXJzaW9uICovCisJLmJ5dGUJMHg4 CS8qIEFkZHJlc3MgU2l6ZSAqLworCS5ieXRlCTAJLyogU2VnbWVudCBTaXplICovCisJLjRieXRl CS5MRUxUUDAtLkxBU0xUUDAJLyogUHJvbG9nIExlbmd0aCAqLworLkxBU0xUUDA6CisJLmJ5dGUJ MHgxCS8qIE1pbmltdW0gSW5zdHJ1Y3Rpb24gTGVuZ3RoICovCisJLmJ5dGUJMHgxCS8qIE1heGlt dW0gT3BlcmF0aW9ucyBQZXIgSW5zdHJ1Y3Rpb24gKi8KKwkuYnl0ZQkweDEJLyogRGVmYXVsdCBp c19zdG10X3N0YXJ0IGZsYWcgKi8KKwkuYnl0ZQkweGY2CS8qIExpbmUgQmFzZSBWYWx1ZSAoU3Bl Y2lhbCBPcGNvZGVzKSAqLworCS5ieXRlCTB4ZjIJLyogTGluZSBSYW5nZSBWYWx1ZSAoU3BlY2lh bCBPcGNvZGVzKSAqLworCS5ieXRlCTB4ZAkvKiBTcGVjaWFsIE9wY29kZSBCYXNlICovCisJLmJ5 dGUJMAkvKiBvcGNvZGU6IDB4MSBoYXMgMCBhcmdzICovCisJLmJ5dGUJMHgxCS8qIG9wY29kZTog MHgyIGhhcyAxIGFyZyAqLworCS5ieXRlCTB4MQkvKiBvcGNvZGU6IDB4MyBoYXMgMSBhcmcgKi8K KwkuYnl0ZQkweDEJLyogb3Bjb2RlOiAweDQgaGFzIDEgYXJnICovCisJLmJ5dGUJMHgxCS8qIG9w Y29kZTogMHg1IGhhcyAxIGFyZyAqLworCS5ieXRlCTAJLyogb3Bjb2RlOiAweDYgaGFzIDAgYXJn cyAqLworCS5ieXRlCTAJLyogb3Bjb2RlOiAweDcgaGFzIDAgYXJncyAqLworCS5ieXRlCTAJLyog b3Bjb2RlOiAweDggaGFzIDAgYXJncyAqLworCS5ieXRlCTB4MQkvKiBvcGNvZGU6IDB4OSBoYXMg MSBhcmcgKi8KKwkuYnl0ZQkwCS8qIG9wY29kZTogMHhhIGhhcyAwIGFyZ3MgKi8KKwkuYnl0ZQkw CS8qIG9wY29kZTogMHhiIGhhcyAwIGFyZ3MgKi8KKwkuYnl0ZQkweDEJLyogb3Bjb2RlOiAweGMg aGFzIDEgYXJnICovCisJLmJ5dGUJMHgxCS8qIERpcmVjdG9yeSBlbnRyeSBmb3JtYXQgY291bnQg Ki8KKwkudWxlYjEyOCAweDEJLyogRFdfTE5DVF9wYXRoICovCisJLnVsZWIxMjggMHgxZgkvKiBE V19GT1JNX2xpbmVfc3RycCAqLworCS51bGViMTI4IDB4MwkvKiBEaXJlY3RvcmllcyBjb3VudCAq LworCS40Ynl0ZQkuTEFTRjEJLyogRGlyZWN0b3J5IEVudHJ5OiAwOiAiIiAqLworCS40Ynl0ZQku TEFTRjI1CS8qIERpcmVjdG9yeSBFbnRyeTogMDogIiIgKi8KKwkuNGJ5dGUJLkxBU0YyNgkvKiBE aXJlY3RvcnkgRW50cnk6IDA6ICIvdXNyL2luY2x1ZGUiICovCisJLmJ5dGUJMHgyCS8qIEZpbGUg bmFtZSBlbnRyeSBmb3JtYXQgY291bnQgKi8KKwkudWxlYjEyOCAweDEJLyogRFdfTE5DVF9wYXRo ICovCisJLnVsZWIxMjggMHgxZgkvKiBEV19GT1JNX2xpbmVfc3RycCAqLworCS51bGViMTI4IDB4 MgkvKiBEV19MTkNUX2RpcmVjdG9yeV9pbmRleCAqLworCS51bGViMTI4IDB4YgkvKiBEV19GT1JN X2RhdGExICovCisJLnVsZWIxMjggMHg0CS8qIEZpbGUgbmFtZXMgY291bnQgKi8KKwkuNGJ5dGUJ LkxBU0YwCS8qIEZpbGUgRW50cnk6IDA6ICJtYWluLmMiICovCisJLmJ5dGUJMAorCS40Ynl0ZQku TEFTRjI3CS8qIEZpbGUgRW50cnk6IDA6ICJtYWluLmMiICovCisJLmJ5dGUJMHgxCisJLjRieXRl CS5MQVNGMjgJLyogRmlsZSBFbnRyeTogMDogInVuaXN0ZC5oIiAqLworCS5ieXRlCTB4MgorCS40 Ynl0ZQkuTEFTRjI5CS8qIEZpbGUgRW50cnk6IDA6ICJnZXRvcHQuaCIgKi8KKwkuYnl0ZQkweDIK Ky5MRUxUUDA6CisJLmJ5dGUJMAkvKiBzZXQgYWRkcmVzcyAqLkxNMyAqLworCS51bGViMTI4IDB4 OQorCS5ieXRlCTB4MgorCS44Ynl0ZQkweDEyMzQKKwkuYnl0ZQkweDFjCS8qIGxpbmUgNiAqLwor CS5ieXRlCTAJLyogc2V0IGFkZHJlc3MgKi5MTTQgKi8KKwkudWxlYjEyOCAweDkKKwkuYnl0ZQkw eDIKKwkuOGJ5dGUJMHgxMjM0NgorCS5ieXRlCTB4MQkvKiBjb3B5IGxpbmUgNiAqLworCS5ieXRl CTAJLyogc2V0IGFkZHJlc3MgKi5MRkUxICovCisJLnVsZWIxMjggMHg5CisJLmJ5dGUJMHgyCisJ LjhieXRlCTB4MTIzNAorCS5ieXRlCTAJLyogZW5kIHNlcXVlbmNlICovCisJLnVsZWIxMjggMHgx CisJLmJ5dGUJMHgxCisJLmJ5dGUJMAkvKiBzZXQgYWRkcmVzcyAqLkxNMSAqLworCS51bGViMTI4 IDB4OQorCS5ieXRlCTB4MgorCS44Ynl0ZQkweDEyMzQKKwkuYnl0ZQkweDFiCS8qIGxpbmUgNSAq LworCS5ieXRlCTAJLyogc2V0IGFkZHJlc3MgKi5MTTIgKi8KKwkudWxlYjEyOCAweDkKKwkuYnl0 ZQkweDIKKwkuOGJ5dGUJMHgxMjM0CisJLmJ5dGUJMHgxCS8qIGNvcHkgbGluZSA1ICovCisJLmJ5 dGUJMAkvKiBzZXQgYWRkcmVzcyAqLkxldGV4dDAgKi8KKwkudWxlYjEyOCAweDkKKwkuYnl0ZQkw eDIKKwkuOGJ5dGUJMHgxMjM0CisJLmJ5dGUJMAkvKiBlbmQgc2VxdWVuY2UgKi8KKwkudWxlYjEy OCAweDEKKwkuYnl0ZQkweDEKKy5MRUxUMDoKKwkuc2VjdGlvbgkuZGVidWdfc3RyLCJNUyIsJXBy b2diaXRzLDEKKy5MQVNGNDoKKwkuYXNjaXoJInVuc2lnbmVkIGludCIKKy5MQVNGMTU6CisJLmFz Y2l6CSJvcHRvcHQiCisuTEFTRjIyOgorCS5hc2NpegkibWFpbiIKKy5MQVNGNjoKKwkuYXNjaXoJ InNpZ25lZCBjaGFyIgorLkxBU0YxNjoKKwkuYXNjaXoJInh2YXIiCisuTEFTRjU6CisJLmFzY2l6 CSJsb25nIHVuc2lnbmVkIGludCIKKy5MQVNGMTQ6CisJLmFzY2l6CSJvcHRlcnIiCisuTEFTRjIx OgorCS5hc2NpegkiR05VIEMxMSA3LjAuMSAyMDE3MDIxOCAoZXhwZXJpbWVudGFsKSAtbXR1bmU9 Z2VuZXJpYyAtbWFyY2g9eDg2LTY0IC1nZHdhcmYtNSAtTzIiCisuTEFTRjI6CisJLmFzY2l6CSJ1 bnNpZ25lZCBjaGFyIgorLkxBU0YxMDoKKwkuYXNjaXoJImNoYXIiCisuTEFTRjEzOgorCS5hc2Np egkib3B0aW5kIgorLkxBU0Y4OgorCS5hc2NpegkibG9uZyBpbnQiCisuTEFTRjE5OgorCS5hc2Np egkiYXJnYyIKKy5MQVNGMzoKKwkuYXNjaXoJInNob3J0IHVuc2lnbmVkIGludCIKKy5MQVNGMTc6 CisJLmFzY2l6CSJ5dmFyIgorLkxBU0YxODoKKwkuYXNjaXoJInB2YXIiCisuTEFTRjExOgorCS5h c2NpegkiX19lbnZpcm9uIgorLkxBU0YyMzoKKwkuYXNjaXoJImZ1bmMiCisuTEFTRjEyOgorCS5h c2Npegkib3B0YXJnIgorLkxBU0Y3OgorCS5hc2Npegkic2hvcnQgaW50IgorLkxBU0YyNDoKKwku YXNjaXoJImFsYXJtIgorLkxBU0Y5OgorCS5hc2Npegkic2l6ZXR5cGUiCisuTEFTRjIwOgorCS5h c2NpegkiYXJndiIKKwkuc2VjdGlvbgkuZGVidWdfbGluZV9zdHIsIk1TIiwlcHJvZ2JpdHMsMQor LkxBU0YxOgorCS5hc2NpegkiIgorLkxBU0YyNToKKwkuYXNjaXoJIiIKKy5MQVNGMjk6CisJLmFz Y2l6CSJnZXRvcHQuaCIKKy5MQVNGMjg6CisJLmFzY2l6CSJ1bmlzdGQuaCIKKy5MQVNGMDoKKwku YXNjaXoJIm1haW4uYyIKKy5MQVNGMjc6CisJLmFzY2l6CSJtYWluLmMiCisuTEFTRjI2OgorCS5h c2NpegkiL3Vzci9pbmNsdWRlIgorCS5pZGVudAkiR0NDOiAoR05VKSA3LjAuMSAyMDE3MDIxOCAo ZXhwZXJpbWVudGFsKSIKKwkuc2VjdGlvbgkubm90ZS5HTlUtc3RhY2ssIiIsJXByb2diaXRzCmRp ZmYgLS1naXQgYS9iaW51dGlscy90ZXN0c3VpdGUvYmludXRpbHMtYWxsL2R3NS1sb2NsaXN0Llcg Yi9iaW51dGlscy90ZXN0c3VpdGUvYmludXRpbHMtYWxsL2R3NS1sb2NsaXN0LlcKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjc5YzIyMGFhNjU4Ci0tLSAvZGV2L251bGwK KysrIGIvYmludXRpbHMvdGVzdHN1aXRlL2JpbnV0aWxzLWFsbC9kdzUtbG9jbGlzdC5XCkBAIC0w LDAgKzEsMjcgQEAKK0NvbnRlbnRzIG9mIHRoZSAuZGVidWdfbG9jbGlzdHMgc2VjdGlvbjoKKwor VGFibGUgYXQgT2Zmc2V0IDB4MAorICBMZW5ndGg6ICAgICAgICAgIDB4MzUKKyAgRFdBUkYgdmVy c2lvbjogICA1CisgIEFkZHJlc3Mgc2l6ZTogICAgOAorICBTZWdtZW50IHNpemU6ICAgIDAKKyAg T2Zmc2V0IGVudHJpZXM6ICAzCisKKyAgIE9mZnNldCBFbnRyaWVzIHN0YXJ0aW5nIGF0IDB4YzoK KyAgICBcWyAgICAgMFxdIDB4YworICAgIFxbICAgICAxXF0gMHgxNworICAgIFxbICAgICAyXF0g MHgyMgorCisgICBPZmZzZXQgRW50cnkgMAorICAgIDAwMDAwMDE4IDAwMDAwMDAwMDAwMDAwMDAg MDAwMDAwMDAwMDAwMDAwNyAgRFdfT1BfcmVnNSBcKHJkaVwpOyBEV19PUF9waWVjZTogODsgRFdf T1BfcmVnNCBcKHJzaVwpOyBEV19PUF9waWVjZTogNAorICAgIDAwMDAwMDIyIDxFbmQgb2YgbGlz dD4KKworICAgT2Zmc2V0IEVudHJ5IDEKKyAgICAwMDAwMDAyMyAwMDAwMDAwMDAwMDAwMDAwIDAw MDAwMDAwMDAwMDAwMDcgIERXX09QX3JlZzEgXChyZHhcKTsgRFdfT1BfcGllY2U6IDg7IERXX09Q X3JlZzIgXChyY3hcKTsgRFdfT1BfcGllY2U6IDQKKyAgICAwMDAwMDAyZCA8RW5kIG9mIGxpc3Q+ CisKKyAgIE9mZnNldCBFbnRyeSAyCisgICAgMDAwMDAwMmUgMDAwMDAwMDAwMDAwMDAwMCAwMDAw MDAwMDAwMDAwMDA3ICBEV19PUF9yZWc4IFwocjhcKTsgRFdfT1BfcGllY2U6IDg7IERXX09QX3Jl ZzkgXChyOVwpOyBEV19PUF9waWVjZTogNAorICAgIDAwMDAwMDM4IDxFbmQgb2YgbGlzdD4KKwor CmRpZmYgLS1naXQgYS9iaW51dGlscy90ZXN0c3VpdGUvYmludXRpbHMtYWxsL3JlYWRlbGYuZXhw IGIvYmludXRpbHMvdGVzdHN1aXRlL2JpbnV0aWxzLWFsbC9yZWFkZWxmLmV4cAppbmRleCAwZjdh MWYzYjVhMC4uYWFhNTBjZjZjMTIgMTAwNjQ0Ci0tLSBhL2JpbnV0aWxzL3Rlc3RzdWl0ZS9iaW51 dGlscy1hbGwvcmVhZGVsZi5leHAKKysrIGIvYmludXRpbHMvdGVzdHN1aXRlL2JpbnV0aWxzLWFs bC9yZWFkZWxmLmV4cApAQCAtNjE2LDMgKzYxNiwyMiBAQCByZWFkZWxmX2ZpbmRfc2l6ZSAkdGVt cGZpbGUgMgogIyBNYWtlIHN1cmUgdGhhdCByZWFkZWxmIGNhbiBkZWNvZGUgdGhlIGNvbnRlbnRz LgogcmVhZGVsZl90ZXN0IC13aSAkdGVtcGZpbGUgZHc1LW9wLlcKIH0KKworIyBDaGVjayBkd2Fy Zi01IHN1cHBvcnQgZm9yIC5kZWJ1Z19sb2NsaXN0cyBzZWN0aW9uIGR1bXAuCitpZiB7IVtiaW51 dGlsc19hc3NlbWJsZV9mbGFncyAkc3JjZGlyLyRzdWJkaXIvZHc1LWxvY2xpc3QuUyB0bXBkaXIv ZHc1LWxvY2xpc3QubyAkaHB1eF19IHRoZW4geworICAgIHVuc3VwcG9ydGVkICJyZWFkZWxmIC13 byBkdzUtbG9jbGlzdCAoZmFpbGVkIHRvIGFzc2VtYmxlKSIKK30gZWxzZSB7CisKKyMgRG93bmxv YWQgaXQuCitpZiAhW2lzX3JlbW90ZSBob3N0XSB7CisgICAgc2V0IHRlbXBmaWxlIHRtcGRpci9k dzUtbG9jbGlzdC5vCit9IGVsc2UgeworICAgIHNldCB0ZW1wZmlsZSBbcmVtb3RlX2Rvd25sb2Fk IGhvc3QgdG1wZGlyL2R3NS1sb2NsaXN0Lm9dCit9CisKKyMgRmlyc3QsIGRldGVybWluZSB0aGUg c2l6ZSwgc28gc3BlY2lmaWMgb3V0cHV0IG1hdGNoZXJzIGNhbiBiZSB1c2VkLgorcmVhZGVsZl9m aW5kX3NpemUgJHRlbXBmaWxlIDIKKworIyBNYWtlIHN1cmUgdGhhdCByZWFkZWxmIGNhbiBkZWNv ZGUgdGhlIGNvbnRlbnRzLgorcmVhZGVsZl90ZXN0IC13byAkdGVtcGZpbGUgZHc1LWxvY2xpc3Qu VworfQotLSAKMi4xNy4xCgo= --_005_MW2PR12MB4684E7B148D1C2972E32668187DC9MW2PR12MB4684namp_--