From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04hn0244.outbound.protection.outlook.com [52.100.17.244]) by sourceware.org (Postfix) with ESMTPS id 799D03973009 for ; Fri, 8 Jan 2021 10:28:43 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 799D03973009 Received: from AM6P194CA0083.EURP194.PROD.OUTLOOK.COM (2603:10a6:209:8f::24) by AM4PR08MB2836.eurprd08.prod.outlook.com (2603:10a6:205:d::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3742.6; Fri, 8 Jan 2021 10:28:39 +0000 Received: from AM5EUR03FT041.eop-EUR03.prod.protection.outlook.com (2603:10a6:209:8f:cafe::31) by AM6P194CA0083.outlook.office365.com (2603:10a6:209:8f::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3742.6 via Frontend Transport; Fri, 8 Jan 2021 10:28:39 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; gcc.gnu.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;gcc.gnu.org; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT041.mail.protection.outlook.com (10.152.17.186) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3742.6 via Frontend Transport; Fri, 8 Jan 2021 10:28:38 +0000 Received: ("Tessian outbound 76bd5a04122f:v71"); Fri, 08 Jan 2021 10:28:38 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 4a3e726baace9dd5 X-CR-MTA-TID: 64aa7808 Received: from 605757020365.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id ECEFF966-E73C-45ED-8234-ADC7B511024F.1; Fri, 08 Jan 2021 10:28:32 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 605757020365.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 08 Jan 2021 10:28:32 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=a++CkPdv1RirVZ+01P1Z4ry/yraTiSGui6Ne1zk6FfwWT4FZ6/tnuW5XZJDr9or53B3Prmxnh8raupcMQ7DJ/yzUOZDjDUx0ws5bT9H6RDvHEvuZXafVV96kDWdLW/5lOhLZ2wigDvPcoHmucfOvbVohWyFs8YUSHYZLzjLH+MmEYey4PBIPOqXqB1rMllVQSnsCt2sH9jznxZ1JB8zylgnalm8z7BuWnyoCJYF0WXd+liS0pVld5OzkV931lHmoPTzfRIJ0WgcOclyliGslv2qR4LCzABtwazN2A/Z9FlhW125W//J8/v8MG8/Nf9WDXTEq/1FjxrqPGy3wBhx5zA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=56DycjkicISDSNouvUsdWbh/Giujgc4p3q1+vMJV27o=; b=XezRPDNC7NRwM5nD2oPXq80bA7xQlgSdZp3QM2FfOf/2GDMPrvPK6h9lwsYhMmbmQZ2moEqWzZsZFfaVZWI8atxMlfiJLblGr0RsEDXpLviQOLCpmolQoKJbwD4x7GLvVL4TIM0XwWyn+lGV+gs0JRYgl5Yd5EukpsKziIz7PL6R3Eknl7udy7sBhj4DoQ7rqhcYrwTmKM492MIv7tRaMcLF2YdlP5S6Tw/jYyhPb2B2U5jqdrszMF1rGVOVF4RKZfqVRctXAHT8C14u/VLSsL0qh2cu2ENAs4qoqM44DWSR1QjWOlXgb3E5+bobYkR3CpgrteGTa7fQ7wnNIaCIjg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none Received: from DB7PR08MB3002.eurprd08.prod.outlook.com (2603:10a6:5:20::25) by DBAPR08MB5783.eurprd08.prod.outlook.com (2603:10a6:10:1a3::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3742.6; Fri, 8 Jan 2021 10:28:31 +0000 Received: from DB7PR08MB3002.eurprd08.prod.outlook.com ([fe80::28f6:30cf:8ad3:17a3]) by DB7PR08MB3002.eurprd08.prod.outlook.com ([fe80::28f6:30cf:8ad3:17a3%3]) with mapi id 15.20.3742.009; Fri, 8 Jan 2021 10:28:31 +0000 From: Kyrylo Tkachov To: gcc Patches Subject: [PATCH] aarch64: Reimplement vabd* intrinsics using builtins Thread-Topic: [PATCH] aarch64: Reimplement vabd* intrinsics using builtins Thread-Index: AdblqLP+gpQdQF4hRKyzSkVN8qTfwg== Date: Fri, 8 Jan 2021 10:28:31 +0000 Message-ID: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ts-tracking-id: 1596C515ACCFE84F800583F0EFC2DAB1.0 x-checkrecipientchecked: true Authentication-Results-Original: gcc.gnu.org; dkim=none (message not signed) header.d=none;gcc.gnu.org; dmarc=none action=none header.from=arm.com; x-originating-ip: [86.31.103.53] x-ms-publictraffictype: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 6655122e-e6eb-4818-9be2-08d8b3c029b5 x-ms-traffictypediagnostic: DBAPR08MB5783:|AM4PR08MB2836: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:7691;OLM:7691; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: jsl0p10Y7RktDZMZ9MlbXMCk7zvfAEYRHD4/1Gpct1DkjeyVWRtCX9rojQM2HPGQOOZDvEpYbiS8Jnfzn8oy2SZsyws/ZbS0PQGiCZ7MU20GJqYYSx8wgLRA6877n81jqq97qpcIr3/RBwoMqGrBxteuYqMQCXJVAaCdwsuP38qSGX3Np5NdGBfHnDO6TjQN1oDia7dTjET7zJHIWyYY/yhSRwhe1ATMdUZ4Au60YxphjfxtFJOhnGbaiG89geR5L3JH842lQKVr1oH0UwL2TvbkHeld7zD8epbmPQ3TeiVcOVPcGI/4KKPl8rlD/ro9GtlPWm4yyk32KJgYFEH8XFGAvkS7PUVShdzOVe/7Gb19UhnHqe/pjGIjC0P+KofNR2IZZC8R/2IQe9vYDAa2Hg== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR08MB3002.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(376002)(346002)(39860400002)(136003)(396003)(6506007)(66476007)(33656002)(66556008)(55236004)(9686003)(7696005)(64756008)(99936003)(55016002)(66616009)(5660300002)(186003)(4744005)(66446008)(52536014)(8936002)(6916009)(76116006)(26005)(86362001)(8676002)(66946007)(478600001)(316002)(2906002)(71200400001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?us-ascii?Q?kNYq1DrZhF/SuSC2qPHI4EorMuGv5G9CueY2CowF/nHVnoTScUUfNuLngaDZ?= =?us-ascii?Q?nO0KMPo9Sc9DUCGVGBnXfaNKlpHfof0sK8wzAls3TNepIw7qOrQKlmteGKhX?= =?us-ascii?Q?j3I5yjT8NpZxy4YeoZFZV0iAsJMUv6HxAOVcaQT3B0jq8l/fbi71Jm7/+ki+?= =?us-ascii?Q?df4orP5Y1xGTjjS3qi+waDhxLN2mc7rYxFpQZ9DjGV1mjrXwt81JCtnBTBmI?= =?us-ascii?Q?hoJoigbD2tqADFjr4U1pT624z+ooJShm+gnl+PfVPMa8WiLhrHAdd7CIt0WM?= =?us-ascii?Q?cuuSjbQsnLS9nNJqbvXc05+ox/qUjh1XLFrzpgQ2+DhcLznEluxv+5BzmkZk?= =?us-ascii?Q?at5d/QeX/24kT4lRNyQe5TA6mjZgYIz9ZQoD5ToPf7bZSRM7InHPKI+JM9+8?= =?us-ascii?Q?qiQ1scZqaKVLapBSLbupefCwvMtxgeK8h0lzu2fo34xk5enJaaq3QsfOkEmL?= =?us-ascii?Q?D4gCfts3iPbNIjug6+wjhkzhavXFuIwzPjdutps6WQp6cj7KU2xpXB/GuDFQ?= =?us-ascii?Q?d5NGp0tswSecnfFOJxRi+zV6nU8f/kL1DENIqcNaPgjJqb4WX4s32uZZ4909?= =?us-ascii?Q?kvnExQYY05uecpNJDaHs9RK8xKI/Ax4/MonikPRcLkHHVbthQwQtM0RMXT4W?= =?us-ascii?Q?OjC1hRmxDOIbXfMPWQp6Ket/WvVOEjss+yR5uh/f200WndTs4ZAHV8P3+XBp?= =?us-ascii?Q?uhM3ZZ5NCFsd8rnB4v5fSvrgdC8LYz+dyxkrCCr7+mk6VDMUfrUA7etZJf0y?= =?us-ascii?Q?kEJEhuQ8T/h8DRc1YlveyjvlcLroDDx0IltvD6ww/GH2LZehUB3YeF7usPWn?= =?us-ascii?Q?IH5EDv8+ga5dFITorXlIc7Yjuv7+rmQpudXEE51rySVW2st1kQM7rHhspmCT?= =?us-ascii?Q?+83CI8S9zNSbr4VO66JQn+p77Ppi7N63L9YzEitEMA50YJNRkhAPmav7nkKH?= =?us-ascii?Q?OKYUnk0JplDjzY1Aai6YwUj5TnPNiWFJNv6pumzE5f0=3D?= x-ms-exchange-transport-forked: True Content-Type: multipart/mixed; boundary="_002_DB7PR08MB3002805DF09E15579BA046CD93AE0DB7PR08MB3002eurp_" MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR08MB5783 Original-Authentication-Results: gcc.gnu.org; dkim=none (message not signed) header.d=none;gcc.gnu.org; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT041.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 69351bbd-0591-48e0-65df-08d8b3c02532 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: oV+SVKrxjTJ6jCA0reDoqsWQojZ5BooQ5an+co84MUn76qiyksjwlMoFbo1Xf8NwjWFDqfNOVvDnRosp9rITtzbae5HQaWc88tt/5Xq7oZ8vMjJ5vXLAjA0ilRvBXAJk8+X3DjA7sj07u8vY14EFPavajrwST64cZtjmt+0B3n3dYDASeSAQ4gPphXeVCtM5ZiFtdp6YMMkITf4cUMkCcX4QAccdYPRoGNDaC7VfVrKFry755K0iaMmNeucjhvKA+VCIcC1m64KeOfAb/u4FBCM+xogi0KvN7FYlOyoiE2qXLdyymSL34S9PMMUvQWnYoXID2xQ7LoDcDLF3G2dCwox9JwUZxnk01plaB+wUWGOlkR92uQ35845FJi8LdBa81EwNSkf2vmc3gS2bg2Bp5EsbkXUHywlXGvYjIi/PNil2SrSUrWT43AoR/JuKpdvagVOPcBN/UXQSLuhzai+RoYuwx1YbmxNFcmy1MrJ2r7plXieGg+VMXP/UZ426YMkn X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(4636009)(136003)(376002)(396003)(346002)(39860400002)(46966006)(478600001)(7696005)(5660300002)(70586007)(66616009)(52536014)(9686003)(8936002)(8676002)(47076005)(82310400003)(235185007)(55016002)(70206006)(55236004)(34020700004)(356005)(316002)(81166007)(82740400003)(2906002)(86362001)(6916009)(186003)(26005)(336012)(34010700040)(6506007)(99936003)(33656002); DIR:OUT; SFP:1501; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jan 2021 10:28:38.6946 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6655122e-e6eb-4818-9be2-08d8b3c029b5 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM5EUR03FT041.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR08MB2836 X-Spam-Status: No, score=-7.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 08 Jan 2021 10:28:45 -0000 --_002_DB7PR08MB3002805DF09E15579BA046CD93AE0DB7PR08MB3002eurp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi all, This patch reimplements the vabd* intrinsics using RTL builtins. It's fairly straightforward with new builtins + arm_neon.h changes. Bootstrapped and tested on aarch64-none-linux-gnu. Pushing to trunk. Thanks, Kyrill gcc/ * config/aarch64/aarch64-simd.md (aarch64_abd_3): Rename to... (aarch64_abd): ... This. (sadv16qi): Adjust callsite of the above. * config/aarch64/aarch64-simd-builtins.def (sabd, uabd): Define builtins. * config/aarch64/arm_neon.h (vabd_s8): Reimplement using builtin. (vabd_s16): Likewise. (vabd_s32): Likewise. (vabd_u8): Likewise. (vabd_u16): Likewise. (vabd_u32): Likewise. (vabdq_s8): Likewise. (vabdq_s16): Likewise. (vabdq_s32): Likewise. (vabdq_u8): Likewise. (vabdq_u16): Likewise. (vabdq_u32): Likewise. --_002_DB7PR08MB3002805DF09E15579BA046CD93AE0DB7PR08MB3002eurp_ Content-Type: application/octet-stream; name="vabd-int.patch" Content-Description: vabd-int.patch Content-Disposition: attachment; filename="vabd-int.patch"; size=6848; creation-date="Fri, 08 Jan 2021 10:26:23 GMT"; modification-date="Fri, 08 Jan 2021 10:25:55 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LXNpbWQtYnVpbHRpbnMuZGVm IGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtc2ltZC1idWlsdGlucy5kZWYKaW5kZXggM2Nj OGUwOTZhM2E5MmQxY2RlMzZkNmI3ODVkOGViODViMjBmMmVlOC4uY2E0NGI2NWYyNGIyMzg1MDQ5 MTRlMTRkYjRkMWYxNjMxNDNhMGYxOSAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9hYXJjaDY0L2Fh cmNoNjQtc2ltZC1idWlsdGlucy5kZWYKKysrIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQt c2ltZC1idWlsdGlucy5kZWYKQEAgLTE0OSw2ICsxNDksMTAgQEAKICAgQlVJTFRJTl9WRFFfQkhT SSAoQklOT1AsIHNyaGFkZCwgMCwgTk9ORSkKICAgQlVJTFRJTl9WRFFfQkhTSSAoQklOT1AsIHVy aGFkZCwgMCwgTk9ORSkKIAorICAvKiBJbXBsZW1lbnRlZCBieSBhYXJjaDY0XzxzdT5hYmQ8bW9k ZT4uICAqLworICBCVUlMVElOX1ZEUV9CSFNJIChCSU5PUCwgc2FiZCwgMCwgTk9ORSkKKyAgQlVJ TFRJTl9WRFFfQkhTSSAoQklOT1BVLCB1YWJkLCAwLCBOT05FKQorCiAgIC8qIEltcGxlbWVudGVk IGJ5IGFhcmNoNjRfPHN1PmFiYTxtb2RlPi4gICovCiAgIEJVSUxUSU5fVkRRX0JIU0kgKFRFUk5P UCwgc2FiYSwgMCwgTk9ORSkKICAgQlVJTFRJTl9WRFFfQkhTSSAoVEVSTk9QVSwgdWFiYSwgMCwg Tk9ORSkKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LXNpbWQubWQgYi9n Y2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC1zaW1kLm1kCmluZGV4IGQyMzM5OGVhYzM0NGQwMjQ2 MDEzZjMxMTI4NDVkNjc3ZTNhODI4MTUuLmY1MmNkN2M0MWE1ZGE5NjE1ZTM1NWMzY2U3ZDEwNWIz NTYyMzFiZTAgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LXNpbWQubWQK KysrIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtc2ltZC5tZApAQCAtNzY2LDcgKzc2Niw3 IEBAIChkZWZpbmVfaW5zbiAiYWFyY2g2NF9hYnM8bW9kZT4iCiA7OyBTbyAoQUJTOlFJIChtaW51 czpRSSA2NCAtMTI4KSkgPT0gKEFCUzpRSSAoMTkyIG9yIC02NCBzaWduZWQpKSA9PSA2NC4KIDs7 IFdoZXJlYXMgU0FCRCB3b3VsZCByZXR1cm4gMTkyICgtNjQgc2lnbmVkKSBvbiB0aGUgYWJvdmUg ZXhhbXBsZS4KIDs7IFVzZSBNSU5VUyAoW3VzXW1heCAob3AxLCBvcDIpLCBbdXNdbWluIChvcDEs IG9wMikpIGluc3RlYWQuCi0oZGVmaW5lX2luc24gImFhcmNoNjRfPHN1PmFiZDxtb2RlPl8zIgor KGRlZmluZV9pbnNuICJhYXJjaDY0XzxzdT5hYmQ8bW9kZT4iCiAgIFsoc2V0IChtYXRjaF9vcGVy YW5kOlZEUV9CSFNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9dyIpCiAJKG1pbnVzOlZEUV9CSFNJ CiAJICAoVVNNQVg6VkRRX0JIU0kKQEAgLTg0Miw3ICs4NDIsNyBAQCAoZGVmaW5lX2V4cGFuZCAi PHN1cj5zYWR2MTZxaSIKICAgICAgIHsKIAlydHggb25lcyA9IGZvcmNlX3JlZyAoVjE2UUltb2Rl LCBDT05TVDFfUlRYIChWMTZRSW1vZGUpKTsKIAlydHggYWJkID0gZ2VuX3JlZ19ydHggKFYxNlFJ bW9kZSk7Ci0JZW1pdF9pbnNuIChnZW5fYWFyY2g2NF88c3VyPmFiZHYxNnFpXzMgKGFiZCwgb3Bl cmFuZHNbMV0sIG9wZXJhbmRzWzJdKSk7CisJZW1pdF9pbnNuIChnZW5fYWFyY2g2NF88c3VyPmFi ZHYxNnFpIChhYmQsIG9wZXJhbmRzWzFdLCBvcGVyYW5kc1syXSkpOwogCWVtaXRfaW5zbiAoZ2Vu X2FhcmNoNjRfdWRvdHYxNnFpIChvcGVyYW5kc1swXSwgb3BlcmFuZHNbM10sCiAJCQkJCSAgYWJk LCBvbmVzKSk7CiAJRE9ORTsKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYWFyY2g2NC9hcm1fbmVv bi5oIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FybV9uZW9uLmgKaW5kZXggMzgxOWVkM2Q4ZjI0YjNh OWVmZWEzOTZkN2RhNDgwMTk0ZmU4MGNhMi4uNzdmOTE3MTQzZThkYjhmNTM1YWExOTBhM2Q5YTk3 ZWUzZmNkNTdhZCAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9hYXJjaDY0L2FybV9uZW9uLmgKKysr IGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FybV9uZW9uLmgKQEAgLTY4NDksNzIgKzY4NDksNDIgQEAg X19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHg4X3QKIF9fYXR0cmlidXRlX18gKChf X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKIHZhYmRf czggKGludDh4OF90IF9fYSwgaW50OHg4X3QgX19iKQogewotICBpbnQ4eDhfdCBfX3Jlc3VsdDsK LSAgX19hc21fXyAoInNhYmQgJTAuOGIsICUxLjhiLCAlMi44YiIKLSAgICAgICAgICAgOiAiPXci KF9fcmVzdWx0KQotICAgICAgICAgICA6ICJ3IihfX2EpLCAidyIoX19iKQotICAgICAgICAgICA6 IC8qIE5vIGNsb2JiZXJzICovKTsKLSAgcmV0dXJuIF9fcmVzdWx0OworICByZXR1cm4gIF9fYnVp bHRpbl9hYXJjaDY0X3NhYmR2OHFpIChfX2EsIF9fYik7CiB9CiAKIF9fZXh0ZW5zaW9uX18gZXh0 ZXJuIF9faW5saW5lIGludDE2eDRfdAogX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9f LCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogdmFiZF9zMTYgKGludDE2eDRfdCBf X2EsIGludDE2eDRfdCBfX2IpCiB7Ci0gIGludDE2eDRfdCBfX3Jlc3VsdDsKLSAgX19hc21fXyAo InNhYmQgJTAuNGgsICUxLjRoLCAlMi40aCIKLSAgICAgICAgICAgOiAiPXciKF9fcmVzdWx0KQot ICAgICAgICAgICA6ICJ3IihfX2EpLCAidyIoX19iKQotICAgICAgICAgICA6IC8qIE5vIGNsb2Ji ZXJzICovKTsKLSAgcmV0dXJuIF9fcmVzdWx0OworICByZXR1cm4gIF9fYnVpbHRpbl9hYXJjaDY0 X3NhYmR2NGhpIChfX2EsIF9fYik7CiB9CiAKIF9fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5l IGludDMyeDJfdAogX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxp bmVfXywgX19hcnRpZmljaWFsX18pKQogdmFiZF9zMzIgKGludDMyeDJfdCBfX2EsIGludDMyeDJf dCBfX2IpCiB7Ci0gIGludDMyeDJfdCBfX3Jlc3VsdDsKLSAgX19hc21fXyAoInNhYmQgJTAuMnMs ICUxLjJzLCAlMi4ycyIKLSAgICAgICAgICAgOiAiPXciKF9fcmVzdWx0KQotICAgICAgICAgICA6 ICJ3IihfX2EpLCAidyIoX19iKQotICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsKLSAg cmV0dXJuIF9fcmVzdWx0OworICByZXR1cm4gIF9fYnVpbHRpbl9hYXJjaDY0X3NhYmR2MnNpIChf X2EsIF9fYik7CiB9CiAKIF9fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDhfdAog X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp ZmljaWFsX18pKQogdmFiZF91OCAodWludDh4OF90IF9fYSwgdWludDh4OF90IF9fYikKIHsKLSAg dWludDh4OF90IF9fcmVzdWx0OwotICBfX2FzbV9fICgidWFiZCAlMC44YiwgJTEuOGIsICUyLjhi IgotICAgICAgICAgICA6ICI9dyIoX19yZXN1bHQpCi0gICAgICAgICAgIDogInciKF9fYSksICJ3 IihfX2IpCi0gICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOwotICByZXR1cm4gX19yZXN1 bHQ7CisgIHJldHVybiAgX19idWlsdGluX2FhcmNoNjRfdWFiZHY4cWlfdXV1IChfX2EsIF9fYik7 CiB9CiAKIF9fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQxNng0X3QKIF9fYXR0cmli dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f KSkKIHZhYmRfdTE2ICh1aW50MTZ4NF90IF9fYSwgdWludDE2eDRfdCBfX2IpCiB7Ci0gIHVpbnQx Nng0X3QgX19yZXN1bHQ7Ci0gIF9fYXNtX18gKCJ1YWJkICUwLjRoLCAlMS40aCwgJTIuNGgiCi0g ICAgICAgICAgIDogIj13IihfX3Jlc3VsdCkKLSAgICAgICAgICAgOiAidyIoX19hKSwgInciKF9f YikKLSAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAqLyk7Ci0gIHJldHVybiBfX3Jlc3VsdDsK KyAgcmV0dXJuICBfX2J1aWx0aW5fYWFyY2g2NF91YWJkdjRoaV91dXUgKF9fYSwgX19iKTsKIH0K IAogX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDJfdAogX19hdHRyaWJ1dGVf XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQog dmFiZF91MzIgKHVpbnQzMngyX3QgX19hLCB1aW50MzJ4Ml90IF9fYikKIHsKLSAgdWludDMyeDJf dCBfX3Jlc3VsdDsKLSAgX19hc21fXyAoInVhYmQgJTAuMnMsICUxLjJzLCAlMi4ycyIKLSAgICAg ICAgICAgOiAiPXciKF9fcmVzdWx0KQotICAgICAgICAgICA6ICJ3IihfX2EpLCAidyIoX19iKQot ICAgICAgICAgICA6IC8qIE5vIGNsb2JiZXJzICovKTsKLSAgcmV0dXJuIF9fcmVzdWx0OworICBy ZXR1cm4gIF9fYnVpbHRpbl9hYXJjaDY0X3VhYmR2MnNpX3V1dSAoX19hLCBfX2IpOwogfQogCiBf X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQxNng4X3QKQEAgLTcwNjUsNzIgKzcwMzUs NDIgQEAgX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OHgxNl90CiBfX2F0dHJpYnV0 ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykp CiB2YWJkcV9zOCAoaW50OHgxNl90IF9fYSwgaW50OHgxNl90IF9fYikKIHsKLSAgaW50OHgxNl90 IF9fcmVzdWx0OwotICBfX2FzbV9fICgic2FiZCAlMC4xNmIsICUxLjE2YiwgJTIuMTZiIgotICAg ICAgICAgICA6ICI9dyIoX19yZXN1bHQpCi0gICAgICAgICAgIDogInciKF9fYSksICJ3IihfX2Ip Ci0gICAgICAgICAgIDogLyogTm8gY2xvYmJlcnMgKi8pOwotICByZXR1cm4gX19yZXN1bHQ7Cisg IHJldHVybiAgX19idWlsdGluX2FhcmNoNjRfc2FiZHYxNnFpIChfX2EsIF9fYik7CiB9CiAKIF9f ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDhfdAogX19hdHRyaWJ1dGVfXyAoKF9f YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogdmFiZHFf czE2IChpbnQxNng4X3QgX19hLCBpbnQxNng4X3QgX19iKQogewotICBpbnQxNng4X3QgX19yZXN1 bHQ7Ci0gIF9fYXNtX18gKCJzYWJkICUwLjhoLCAlMS44aCwgJTIuOGgiCi0gICAgICAgICAgIDog Ij13IihfX3Jlc3VsdCkKLSAgICAgICAgICAgOiAidyIoX19hKSwgInciKF9fYikKLSAgICAgICAg ICAgOiAvKiBObyBjbG9iYmVycyAqLyk7Ci0gIHJldHVybiBfX3Jlc3VsdDsKKyAgcmV0dXJuICBf X2J1aWx0aW5fYWFyY2g2NF9zYWJkdjhoaSAoX19hLCBfX2IpOwogfQogCiBfX2V4dGVuc2lvbl9f IGV4dGVybiBfX2lubGluZSBpbnQzMng0X3QKIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxp bmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKIHZhYmRxX3MzMiAoaW50MzJ4 NF90IF9fYSwgaW50MzJ4NF90IF9fYikKIHsKLSAgaW50MzJ4NF90IF9fcmVzdWx0OwotICBfX2Fz bV9fICgic2FiZCAlMC40cywgJTEuNHMsICUyLjRzIgotICAgICAgICAgICA6ICI9dyIoX19yZXN1 bHQpCi0gICAgICAgICAgIDogInciKF9fYSksICJ3IihfX2IpCi0gICAgICAgICAgIDogLyogTm8g Y2xvYmJlcnMgKi8pOwotICByZXR1cm4gX19yZXN1bHQ7CisgIHJldHVybiAgX19idWlsdGluX2Fh cmNoNjRfc2FiZHY0c2kgKF9fYSwgX19iKTsKIH0KIAogX19leHRlbnNpb25fXyBleHRlcm4gX19p bmxpbmUgdWludDh4MTZfdAogX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogdmFiZHFfdTggKHVpbnQ4eDE2X3QgX19hLCB1 aW50OHgxNl90IF9fYikKIHsKLSAgdWludDh4MTZfdCBfX3Jlc3VsdDsKLSAgX19hc21fXyAoInVh YmQgJTAuMTZiLCAlMS4xNmIsICUyLjE2YiIKLSAgICAgICAgICAgOiAiPXciKF9fcmVzdWx0KQot ICAgICAgICAgICA6ICJ3IihfX2EpLCAidyIoX19iKQotICAgICAgICAgICA6IC8qIE5vIGNsb2Ji ZXJzICovKTsKLSAgcmV0dXJuIF9fcmVzdWx0OworICByZXR1cm4gIF9fYnVpbHRpbl9hYXJjaDY0 X3VhYmR2MTZxaV91dXUgKF9fYSwgX19iKTsKIH0KIAogX19leHRlbnNpb25fXyBleHRlcm4gX19p bmxpbmUgdWludDE2eDhfdAogX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogdmFiZHFfdTE2ICh1aW50MTZ4OF90IF9fYSwg dWludDE2eDhfdCBfX2IpCiB7Ci0gIHVpbnQxNng4X3QgX19yZXN1bHQ7Ci0gIF9fYXNtX18gKCJ1 YWJkICUwLjhoLCAlMS44aCwgJTIuOGgiCi0gICAgICAgICAgIDogIj13IihfX3Jlc3VsdCkKLSAg ICAgICAgICAgOiAidyIoX19hKSwgInciKF9fYikKLSAgICAgICAgICAgOiAvKiBObyBjbG9iYmVy cyAqLyk7Ci0gIHJldHVybiBfX3Jlc3VsdDsKKyAgcmV0dXJuICBfX2J1aWx0aW5fYWFyY2g2NF91 YWJkdjhoaV91dXUgKF9fYSwgX19iKTsKIH0KIAogX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxp bmUgdWludDMyeDRfdAogX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogdmFiZHFfdTMyICh1aW50MzJ4NF90IF9fYSwgdWlu dDMyeDRfdCBfX2IpCiB7Ci0gIHVpbnQzMng0X3QgX19yZXN1bHQ7Ci0gIF9fYXNtX18gKCJ1YWJk ICUwLjRzLCAlMS40cywgJTIuNHMiCi0gICAgICAgICAgIDogIj13IihfX3Jlc3VsdCkKLSAgICAg ICAgICAgOiAidyIoX19hKSwgInciKF9fYikKLSAgICAgICAgICAgOiAvKiBObyBjbG9iYmVycyAq Lyk7Ci0gIHJldHVybiBfX3Jlc3VsdDsKKyAgcmV0dXJuICBfX2J1aWx0aW5fYWFyY2g2NF91YWJk djRzaV91dXUgKF9fYSwgX19iKTsKIH0KIAogX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg aW50MTZfdAo= --_002_DB7PR08MB3002805DF09E15579BA046CD93AE0DB7PR08MB3002eurp_--