From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03on2080.outbound.protection.outlook.com [40.107.104.80]) by sourceware.org (Postfix) with ESMTPS id D08D13858D20 for ; Thu, 9 Mar 2023 19:37:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D08D13858D20 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=I7YasbgDOaZ3VGGE/LnSd5qPjRHYO3s6G+UCeCmUhqo=; b=imD+FyLLGJtQ1alITzRH2HrslfMQ+ZUiZnuDB1NrHPW6n5D3sCK1ugwpco9/7OYp7pAI5d75FeTJopaoOc0XOOEd0xmdqSAxDBkBTeXICnQCznue0trV6ds7YEjY4GQN8nYmBqGyAOjv+hq6jDNYv4oqFcoQr1tljjLKhpV016Y= Received: from AM6PR10CA0020.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:89::33) by DU0PR08MB7884.eurprd08.prod.outlook.com (2603:10a6:10:3b0::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.19; Thu, 9 Mar 2023 19:37:47 +0000 Received: from VI1EUR03FT044.eop-EUR03.prod.protection.outlook.com (2603:10a6:209:89:cafe::d8) by AM6PR10CA0020.outlook.office365.com (2603:10a6:209:89::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.19 via Frontend Transport; Thu, 9 Mar 2023 19:37:47 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;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; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by VI1EUR03FT044.mail.protection.outlook.com (100.127.144.96) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.19 via Frontend Transport; Thu, 9 Mar 2023 19:37:47 +0000 Received: ("Tessian outbound cfb430c87a1e:v135"); Thu, 09 Mar 2023 19:37:47 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 18095d4c12599cbf X-CR-MTA-TID: 64aa7808 Received: from dd13d43ea763.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 0EFB7D11-22E0-4FF0-BA5F-661EE00004E2.1; Thu, 09 Mar 2023 19:37:40 +0000 Received: from EUR04-DB3-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id dd13d43ea763.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 09 Mar 2023 19:37:40 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=A6IpkwU6xmHlyoQNIEt+B42ZG/xKecpImNlnHgzwULasNZYveQTB57/vJxg5pVtFprI5Gc/RVfVYGiPaUhtNWwAeyQi7uAp7U0gaIK6YKNvyxYLpSv1jbr9Nguldee63bRLw0SdSGm0Ib50c6BKFONaWRN8M+Ewvk5Ad1EMb1clfykjLpJJEp/VtrkcOt9wyiuCVOaTLo9Ap6S9vjQ1UYM1MrNHqDXi6moV44wVkOmHxPKE3Goup8XrmDFq61xjerZ47+hx/KlJ8mRPQO6o4wTORg8CShn0HLwPpMPR1qAOs6LzauT5hRyC2Mw5+PISWWRpLTFhVFndcFOexR7dlVA== 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=I7YasbgDOaZ3VGGE/LnSd5qPjRHYO3s6G+UCeCmUhqo=; b=PyIxYJcmzIeQgtZZVgHnX0RA4zGd29vq98xrL+3DpbxGQ84PIQHLb+bTbdsufO+eUdSafHAOQg1cRbCs0eqs6PTpHt3QM0iojKBvdM1oYINcUBBxH7wMD88TyrYyy82CJTqT77jvbLbfvtRQWh/bZrOuamu2FRQW1Gi+U5dJWn/vyLU/Rir+oC66h2LsB9CEjV8zXh45mpGcTqDAZ1clbUvepS7SkO+W/rF2c0uOcD77/fdYHLDSLiDFlYAnMiKu0AxM5LLMPFoeEjr9ADgkPubTdEsUfjseHGCt4yrzYvBzjx5GwnWJ/JXAqRyBqE7Jlv4KBuXT5s8AbfVdUUkmIA== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=I7YasbgDOaZ3VGGE/LnSd5qPjRHYO3s6G+UCeCmUhqo=; b=imD+FyLLGJtQ1alITzRH2HrslfMQ+ZUiZnuDB1NrHPW6n5D3sCK1ugwpco9/7OYp7pAI5d75FeTJopaoOc0XOOEd0xmdqSAxDBkBTeXICnQCznue0trV6ds7YEjY4GQN8nYmBqGyAOjv+hq6jDNYv4oqFcoQr1tljjLKhpV016Y= Received: from AM0PR08MB5316.eurprd08.prod.outlook.com (2603:10a6:208:185::14) by AS8PR08MB9477.eurprd08.prod.outlook.com (2603:10a6:20b:5ee::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.19; Thu, 9 Mar 2023 19:37:37 +0000 Received: from AM0PR08MB5316.eurprd08.prod.outlook.com ([fe80::4e42:7a37:a4a4:c7cb]) by AM0PR08MB5316.eurprd08.prod.outlook.com ([fe80::4e42:7a37:a4a4:c7cb%4]) with mapi id 15.20.6178.017; Thu, 9 Mar 2023 19:37:37 +0000 From: Tamar Christina To: Aldy Hernandez CC: "gcc-patches@gcc.gnu.org" , nd , "amacleod@redhat.com" Subject: RE: [PATCH 2/4][ranger]: Add range-ops for widen addition and widen multiplication [PR108583] Thread-Topic: [PATCH 2/4][ranger]: Add range-ops for widen addition and widen multiplication [PR108583] Thread-Index: AQHZSqewyyhUvsox90usuenFT6G55q7tpevggAL8sACAAkUooA== Date: Thu, 9 Mar 2023 19:37:37 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: 9D30D6C20BA9554E8874C8FE044EA79E.0 Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: AM0PR08MB5316:EE_|AS8PR08MB9477:EE_|VI1EUR03FT044:EE_|DU0PR08MB7884:EE_ X-MS-Office365-Filtering-Correlation-Id: ea2a7cfe-8cbf-43e4-0d1c-08db20d5c2ff x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: UOEzSem5SLqlYUcR3ZgRFw10mRnicDT4SM7o1G109CMWHAkpwk1nD0e2ZOP+WUFhU7DHZgxCXeHbbIbrkOm3I6i+rSaxd4KJzOQuBCBljeKfWVScFhEE8tmvphgLLbCMCQMf3rD2T+NNRGMT9L6nuDhZoPUrYBwrfZpjAqVQpWTkFrjw3ThUDw5gZWUDlhmdilF76LFK+qvpF1XDywCjnzyjw/o+mZvJhmRzlQCqebwnNIMXVVGhQuT+cfASMIOn3fs3TustfvwWGixPO5lheMI7kIDq2Jv8Sa7l48i8bzyDp8mp0FtjCiSsFvm6ByPZlPiEpMzsoTIcHGMViPhVoOqEPi7+3xerUnffM9AKTyB6oHB3CgYkwSh+OVex7AqajfrEBJJnGJYVPUT+3zhm8TtMszNUi67Y4TdnCdNpx2W/vEJKDaoMfDkwveKdKEVn4I7RsBeLFoNBaFR8sHx9+DH24R759PRkjnD5TjQVrxJtQrbW8zlTUe76Gwh6OrWJFptsxHoForKyL+5EVOTuPURi2g8/KXLffJiDb9dfIiuFO6W62DO150Kgf9sMj7NJCCX4Di0wmKAM9e7zZG5MGuHKJqjBVtGcx+/6ex7F5HTFal63VNfeMYbvHQNvlNsoEI/ygIpe/c6PN8Ny5SfbX+o/zp2w57cqEbOSUP44K2xEcNhtKJENvbu3/kVzwYub2x60DB5OSedMgQwICP/t4w== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR08MB5316.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(4636009)(39860400002)(366004)(376002)(346002)(136003)(396003)(451199018)(33656002)(54906003)(52536014)(71200400001)(316002)(7696005)(6916009)(5660300002)(2906002)(8936002)(76116006)(64756008)(66476007)(30864003)(66946007)(8676002)(66556008)(66446008)(41300700001)(4326008)(55016003)(26005)(122000001)(38070700005)(86362001)(186003)(9686003)(478600001)(53546011)(6506007)(83380400001)(38100700002);DIR:OUT;SFP:1101; Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB9477 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VI1EUR03FT044.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: e05ebe9a-ab20-4426-6e79-08db20d5bd2f X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 8ljlcFijNbAsvxsseqYlEtlGsHoCGTwAPQNQ/V6ENfby2XLmWtFj6YFxmkDPJdj+hBlabtMAF4waSqLG5R+VF9bYAZTbVOUVwxMiKzTqjYEcTfXa5JcmpMy+Ydqf+GfvOtHMjWDoGw0hi/sUARfV1EQSEaAW0UC/sXet5SnyCo70FOBkaQ7bv2Mcdt1Muv11EQhcjjr5Temn8Pjg6Xlto7+sfRLokoOJHRKZM1K52+wqxv5O6J+IIVG4AnalqAFNzM3VppafTrfsaHmX/EgXylYo2aXmkG3HEeZ0OabAqPclCWVlw2y5TY+MlmG3sNj4c2pAnIlkG6GJXqVCMCZGWTXAqOzUFjwBL+nUf+qHAXc9lzE/KytcvG0HGGCADiWA6jtMf3yltWX2zWZ83BCHDinP1LV/DHSzVxvGLK0VIz33TVqUpspRM9SGLGrLrOgXsi5mCXDtAgXIpZjf13xmEVFXLGsvH6MdviYsCwkuHg/b47SRKzsTvnC1C4gBytjVU8uBZoIBpMxt3cHulxdC9BUyd/fGd/95H6irchrU8AH2XqRnZQ6fmbKNgvuSh1QIp72xUE1WRdEOOanGtGu3gicz88Tv/2Ge29BwW3TyoKlYn9fQ1I80iWjO0tGmKYtyvUhiyNZ05vcvFdorb/NA/o9cDF7+Ojvu+FZ+42ReETYEw46HuAyOv5D0RzpJu1uX+Pcu/WSiE0lmgg3viE7enA== 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:(13230025)(4636009)(136003)(346002)(376002)(39860400002)(396003)(451199018)(46966006)(40470700004)(36840700001)(33656002)(40460700003)(316002)(54906003)(478600001)(7696005)(5660300002)(52536014)(2906002)(6862004)(30864003)(70586007)(8676002)(4326008)(70206006)(8936002)(41300700001)(82740400003)(81166007)(36860700001)(55016003)(40480700001)(356005)(86362001)(186003)(107886003)(53546011)(9686003)(26005)(6506007)(83380400001)(82310400005)(336012)(47076005);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Mar 2023 19:37:47.3268 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ea2a7cfe-8cbf-43e4-0d1c-08db20d5c2ff 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: VI1EUR03FT044.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB7884 X-Spam-Status: No, score=-12.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,GIT_PATCH_0,KAM_DMARC_NONE,KAM_LOTSOFHASH,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE,TXREP,UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Q2hlZXJzLA0KDQpUaGFua3MhIEknbGwgd2F5IGZvciBoaW0gdG8gY29tZSBiYWNrIHRoZW4g8J+Y ig0KDQpUaGFua3MsDQpUYW1hcg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZy b206IEFsZHkgSGVybmFuZGV6IDxhbGR5aEByZWRoYXQuY29tPg0KPiBTZW50OiBXZWRuZXNkYXks IE1hcmNoIDgsIDIwMjMgODo1NyBBTQ0KPiBUbzogVGFtYXIgQ2hyaXN0aW5hIDxUYW1hci5DaHJp c3RpbmFAYXJtLmNvbT4NCj4gQ2M6IGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnOyBuZCA8bmRAYXJt LmNvbT47IGFtYWNsZW9kQHJlZGhhdC5jb20NCj4gU3ViamVjdDogUmU6IFtQQVRDSCAyLzRdW3Jh bmdlcl06IEFkZCByYW5nZS1vcHMgZm9yIHdpZGVuIGFkZGl0aW9uIGFuZA0KPiB3aWRlbiBtdWx0 aXBsaWNhdGlvbiBbUFIxMDg1ODNdDQo+IA0KPiBBcyBBbmRyZXcgaGFzIGJlZW4gYWR2aXNpbmcg b24gdGhpcyBvbmUsIEknZCBwcmVmZXIgZm9yIGhpbSB0byByZXZpZXcgaXQuDQo+IEhvd2V2ZXIs IGhlJ3Mgb24gdmFjYXRpb24gdGhpcyB3ZWVrLiAgRllJLi4uDQo+IA0KPiBBbGR5DQo+IA0KPiBP biBNb24sIE1hciA2LCAyMDIzIGF0IDEyOjIy4oCvUE0gVGFtYXIgQ2hyaXN0aW5hDQo+IDxUYW1h ci5DaHJpc3RpbmFAYXJtLmNvbT4gd3JvdGU6DQo+ID4NCj4gPiBQaW5nLg0KPiA+DQo+ID4gQW5k IHVwZGF0ZWQgdGhlIHBhdGNoIHRvIHJlamVjdCBjYXNlcyB0aGF0IHdlIGRvbid0IGV4cGVjdCBv ciBjYW4gaGFuZGxlDQo+IGNsZWFubHkgZm9yIG5vdy4NCj4gPg0KPiA+IEJvb3RzdHJhcHBlZCBS ZWd0ZXN0ZWQgb24gYWFyY2g2NC1ub25lLWxpbnV4LWdudSBhbmQgbm8gaXNzdWVzLg0KPiA+DQo+ ID4gT2sgZm9yIG1hc3Rlcj8NCj4gPg0KPiA+IFRoYW5rcywNCj4gPiBUYW1hcg0KPiA+DQo+ID4g Z2NjL0NoYW5nZUxvZzoNCj4gPg0KPiA+ICAgICAgICAgUFIgdGFyZ2V0LzEwODU4Mw0KPiA+ICAg ICAgICAgKiBnaW1wbGUtcmFuZ2Utb3AuaCAoZ2ltcGxlX3JhbmdlX29wX2hhbmRsZXIpOiBBZGQN Cj4gbWF5YmVfbm9uX3N0YW5kYXJkLg0KPiA+ICAgICAgICAgKiBnaW1wbGUtcmFuZ2Utb3AuY2MN Cj4gKGdpbXBsZV9yYW5nZV9vcF9oYW5kbGVyOjpnaW1wbGVfcmFuZ2Vfb3BfaGFuZGxlcik6DQo+ ID4gICAgICAgICBVc2UgaXQuDQo+ID4gICAgICAgICAoZ2ltcGxlX3JhbmdlX29wX2hhbmRsZXI6 Om1heWJlX25vbl9zdGFuZGFyZCk6IE5ldy4NCj4gPiAgICAgICAgICogcmFuZ2Utb3AuY2MgKGNs YXNzIG9wZXJhdG9yX3dpZGVuX3BsdXNfc2lnbmVkLA0KPiA+ICAgICAgICAgb3BlcmF0b3Jfd2lk ZW5fcGx1c19zaWduZWQ6OndpX2ZvbGQsIGNsYXNzDQo+IG9wZXJhdG9yX3dpZGVuX3BsdXNfdW5z aWduZWQsDQo+ID4gICAgICAgICBvcGVyYXRvcl93aWRlbl9wbHVzX3Vuc2lnbmVkOjp3aV9mb2xk LCBjbGFzcw0KPiBvcGVyYXRvcl93aWRlbl9tdWx0X3NpZ25lZCwNCj4gPiAgICAgICAgIG9wZXJh dG9yX3dpZGVuX211bHRfc2lnbmVkOjp3aV9mb2xkLCBjbGFzcw0KPiBvcGVyYXRvcl93aWRlbl9t dWx0X3Vuc2lnbmVkLA0KPiA+ICAgICAgICAgb3BlcmF0b3Jfd2lkZW5fbXVsdF91bnNpZ25lZDo6 d2lfZm9sZCwNCj4gPiAgICAgICAgIHB0cl9vcF93aWRlbl9tdWx0X3NpZ25lZCwgcHRyX29wX3dp ZGVuX211bHRfdW5zaWduZWQsDQo+ID4gICAgICAgICBwdHJfb3Bfd2lkZW5fcGx1c19zaWduZWQs IHB0cl9vcF93aWRlbl9wbHVzX3Vuc2lnbmVkKTogTmV3Lg0KPiA+ICAgICAgICAgKiByYW5nZS1v cC5oIChwdHJfb3Bfd2lkZW5fbXVsdF9zaWduZWQsDQo+IHB0cl9vcF93aWRlbl9tdWx0X3Vuc2ln bmVkLA0KPiA+ICAgICAgICAgcHRyX29wX3dpZGVuX3BsdXNfc2lnbmVkLCBwdHJfb3Bfd2lkZW5f cGx1c191bnNpZ25lZCk6IE5ldw0KPiA+DQo+ID4gQ28tQXV0aG9yZWQtQnk6IEFuZHJldyBNYWNM ZW9kIDxhbWFjbGVvZEByZWRoYXQuY29tPg0KPiA+DQo+ID4gLS0tIElubGluZSBjb3B5IG9mIHBh dGNoIC0tLQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2djYy9naW1wbGUtcmFuZ2Utb3AuaCBiL2dj Yy9naW1wbGUtcmFuZ2Utb3AuaCBpbmRleA0KPiA+DQo+IDc0M2I4NTgxMjZlMzMzZWE5NTkwYzBm MTc1YWFjYjQ3NjI2MGMwNDguLjFiZjYzYzVjZTZmNWRiOTI0YTFmNQ0KPiA5MDdhYjQ1DQo+ID4g MzllMzc2MjgxYmQwIDEwMDY0NA0KPiA+IC0tLSBhL2djYy9naW1wbGUtcmFuZ2Utb3AuaA0KPiA+ ICsrKyBiL2djYy9naW1wbGUtcmFuZ2Utb3AuaA0KPiA+IEBAIC00MSw2ICs0MSw3IEBAIHB1Ymxp YzoNCj4gPiAgICAgICAgICAgICAgICAgIHJlbGF0aW9uX3RyaW8gPSBUUklPX1ZBUllJTkcpOw0K PiA+ICBwcml2YXRlOg0KPiA+ICAgIHZvaWQgbWF5YmVfYnVpbHRpbl9jYWxsICgpOw0KPiA+ICsg IHZvaWQgbWF5YmVfbm9uX3N0YW5kYXJkICgpOw0KPiA+ICAgIGdpbXBsZSAqbV9zdG10Ow0KPiA+ ICAgIHRyZWUgbV9vcDEsIG1fb3AyOw0KPiA+ICB9Ow0KPiA+IGRpZmYgLS1naXQgYS9nY2MvZ2lt cGxlLXJhbmdlLW9wLmNjIGIvZ2NjL2dpbXBsZS1yYW5nZS1vcC5jYyBpbmRleA0KPiA+DQo+IGQ5 ZGZkYzU2OTM5YmI2MmFkZTcyNzI2YjE1YzNkNWU4N2U0ZGRjZDEuLmE1ZDYyNTM4N2U3MTJjMTcw ZTFlDQo+IDY4ZjZhN2Q0DQo+ID4gOTQwMjdmNmVmMGQwIDEwMDY0NA0KPiA+IC0tLSBhL2djYy9n aW1wbGUtcmFuZ2Utb3AuY2MNCj4gPiArKysgYi9nY2MvZ2ltcGxlLXJhbmdlLW9wLmNjDQo+ID4g QEAgLTE3OSw2ICsxNzksOCBAQA0KPiBnaW1wbGVfcmFuZ2Vfb3BfaGFuZGxlcjo6Z2ltcGxlX3Jh bmdlX29wX2hhbmRsZXIgKGdpbXBsZSAqcykNCj4gPiAgICAvLyBzdGF0ZW1lbnRzLg0KPiA+ICAg IGlmIChpc19hIDxnY2FsbCAqPiAobV9zdG10KSkNCj4gPiAgICAgIG1heWJlX2J1aWx0aW5fY2Fs bCAoKTsNCj4gPiArICBlbHNlDQo+ID4gKyAgICBtYXliZV9ub25fc3RhbmRhcmQgKCk7DQo+ID4g IH0NCj4gPg0KPiA+ICAvLyBDYWxjdWxhdGUgd2hhdCB3ZSBjYW4gZGV0ZXJtaW5lIG9mIHRoZSBy YW5nZSBvZiB0aGlzIHVuYXJ5IEBADQo+ID4gLTc2NCw2ICs3NjYsNTcgQEAgcHVibGljOg0KPiA+ ICAgIH0NCj4gPiAgfSBvcF9jZm5fcGFyaXR5Ow0KPiA+DQo+ID4gKy8vIFNldCB1cCBhIGdpbXBs ZV9yYW5nZV9vcF9oYW5kbGVyIGZvciBhbnkgbm9uc3RhbmRhcmQgZnVuY3Rpb24NCj4gPiArd2hp Y2ggY2FuIGJlIC8vIHN1cHBvcnRlZCB2aWEgcmFuZ2Utb3BzLg0KPiA+ICsNCj4gPiArdm9pZA0K PiA+ICtnaW1wbGVfcmFuZ2Vfb3BfaGFuZGxlcjo6bWF5YmVfbm9uX3N0YW5kYXJkICgpIHsNCj4g PiArICByYW5nZV9vcGVyYXRvciAqc2lnbmVkX29wID0gcHRyX29wX3dpZGVuX211bHRfc2lnbmVk Ow0KPiA+ICsgIHJhbmdlX29wZXJhdG9yICp1bnNpZ25lZF9vcCA9IHB0cl9vcF93aWRlbl9tdWx0 X3Vuc2lnbmVkOw0KPiA+ICsgIGlmIChnaW1wbGVfY29kZSAobV9zdG10KSA9PSBHSU1QTEVfQVNT SUdOKQ0KPiA+ICsgICAgc3dpdGNoIChnaW1wbGVfYXNzaWduX3Joc19jb2RlIChtX3N0bXQpKQ0K PiA+ICsgICAgICB7DQo+ID4gKyAgICAgICBjYXNlIFdJREVOX1BMVVNfRVhQUjoNCj4gPiArICAg ICAgIHsNCj4gPiArICAgICAgICAgc2lnbmVkX29wID0gcHRyX29wX3dpZGVuX3BsdXNfc2lnbmVk Ow0KPiA+ICsgICAgICAgICB1bnNpZ25lZF9vcCA9IHB0cl9vcF93aWRlbl9wbHVzX3Vuc2lnbmVk Ow0KPiA+ICsgICAgICAgfQ0KPiA+ICsgICAgICAgZ2NjX2ZhbGx0aHJvdWdoICgpOw0KPiA+ICsg ICAgICAgY2FzZSBXSURFTl9NVUxUX0VYUFI6DQo+ID4gKyAgICAgICB7DQo+ID4gKyAgICAgICAg IG1fdmFsaWQgPSBmYWxzZTsNCj4gPiArICAgICAgICAgbV9vcDEgPSBnaW1wbGVfYXNzaWduX3Jo czEgKG1fc3RtdCk7DQo+ID4gKyAgICAgICAgIG1fb3AyID0gZ2ltcGxlX2Fzc2lnbl9yaHMyICht X3N0bXQpOw0KPiA+ICsgICAgICAgICB0cmVlIHJldCA9IGdpbXBsZV9hc3NpZ25fbGhzIChtX3N0 bXQpOw0KPiA+ICsgICAgICAgICBib29sIHNpZ25lZDEgPSBUWVBFX1NJR04gKFRSRUVfVFlQRSAo bV9vcDEpKSA9PSBTSUdORUQ7DQo+ID4gKyAgICAgICAgIGJvb2wgc2lnbmVkMiA9IFRZUEVfU0lH TiAoVFJFRV9UWVBFIChtX29wMikpID09IFNJR05FRDsNCj4gPiArICAgICAgICAgYm9vbCBzaWdu ZWRfcmV0ID0gVFlQRV9TSUdOIChUUkVFX1RZUEUgKHJldCkpID09IFNJR05FRDsNCj4gPiArDQo+ ID4gKyAgICAgICAgIC8qIE5vcm1hbGx5IHRoZXNlIG9wZXJhbmRzIHNob3VsZCBhbGwgaGF2ZSB0 aGUgc2FtZSBzaWduLCBidXQNCj4gPiArICAgICAgICAgICAgc29tZSBwYXNzZXMgYW5kIHZpb2xh dGUgdGhpcyBieSB0YWtpbmcgbWlzbWF0Y2hlZCBzaWduIGFyZ3MuICBBdA0KPiA+ICsgICAgICAg ICAgICB0aGUgbW9tZW50IHRoZSBvbmx5IG9uZSB0aGF0J3MgcG9zc2libGUgaXMgbWlzbWF0Y2gg aW5wdXRzIGFuZA0KPiA+ICsgICAgICAgICAgICB1bnNpZ25lZCBvdXRwdXQuICBPbmNlIHJhbmdl ciBzdXBwb3J0cyBzaWducyBmb3IgdGhlIG9wZXJhbmRzIHdlDQo+ID4gKyAgICAgICAgICAgIGNh biBwcm9wZXJseSBmaXggaXQsICBmb3Igbm93IG9ubHkgYWNjZXB0IHRoZSBjYXNlIHdlIGNhbiBk bw0KPiA+ICsgICAgICAgICAgICBjb3JyZWN0bHkuICAqLw0KPiA+ICsgICAgICAgICBpZiAoKHNp Z25lZDEgXiBzaWduZWQyKSAmJiBzaWduZWRfcmV0KQ0KPiA+ICsgICAgICAgICAgIHJldHVybjsN Cj4gPiArDQo+ID4gKyAgICAgICAgIG1fdmFsaWQgPSB0cnVlOw0KPiA+ICsgICAgICAgICBpZiAo c2lnbmVkMiAmJiAhc2lnbmVkMSkNCj4gPiArICAgICAgICAgICBzdGQ6OnN3YXAgKG1fb3AxLCBt X29wMik7DQo+ID4gKw0KPiA+ICsgICAgICAgICBpZiAoc2lnbmVkMSB8fCBzaWduZWQyKQ0KPiA+ ICsgICAgICAgICAgIG1faW50ID0gc2lnbmVkX29wOw0KPiA+ICsgICAgICAgICBlbHNlDQo+ID4g KyAgICAgICAgICAgbV9pbnQgPSB1bnNpZ25lZF9vcDsNCj4gPiArICAgICAgICAgYnJlYWs7DQo+ ID4gKyAgICAgICB9DQo+ID4gKyAgICAgICBkZWZhdWx0Og0KPiA+ICsgICAgICAgICBicmVhazsN Cj4gPiArICAgICAgfQ0KPiA+ICt9DQo+ID4gKw0KPiA+ICAvLyBTZXQgdXAgYSBnaW1wbGVfcmFu Z2Vfb3BfaGFuZGxlciBmb3IgYW55IGJ1aWx0IGluIGZ1bmN0aW9uIHdoaWNoDQo+ID4gY2FuIGJl ICAvLyBzdXBwb3J0ZWQgdmlhIHJhbmdlLW9wcy4NCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9nY2Mv cmFuZ2Utb3AuaCBiL2djYy9yYW5nZS1vcC5oIGluZGV4DQo+ID4NCj4gZjAwYjc0N2YwOGExZmE4 NDA0YzYzYmZlNWE5MzFiNDA0ODAwOGIwMy4uYjFlZWFjNzBkZjgxZjJiZGYyMjhhZg0KPiA3YWRm ZjUNCj4gPiAzOTllN2FjNWU1ZDYgMTAwNjQ0DQo+ID4gLS0tIGEvZ2NjL3JhbmdlLW9wLmgNCj4g PiArKysgYi9nY2MvcmFuZ2Utb3AuaA0KPiA+IEBAIC0zMTEsNCArMzExLDggQEAgcHJpdmF0ZToN Cj4gPiAgLy8gVGhpcyBob2xkcyB0aGUgcmFuZ2Ugb3AgdGFibGUgZm9yIGZsb2F0aW5nIHBvaW50 IG9wZXJhdGlvbnMuDQo+ID4gIGV4dGVybiBmbG9hdGluZ19vcF90YWJsZSAqZmxvYXRpbmdfdHJl ZV90YWJsZTsNCj4gPg0KPiA+ICtleHRlcm4gcmFuZ2Vfb3BlcmF0b3IgKnB0cl9vcF93aWRlbl9t dWx0X3NpZ25lZDsgZXh0ZXJuDQo+ID4gK3JhbmdlX29wZXJhdG9yICpwdHJfb3Bfd2lkZW5fbXVs dF91bnNpZ25lZDsgZXh0ZXJuIHJhbmdlX29wZXJhdG9yDQo+ID4gKypwdHJfb3Bfd2lkZW5fcGx1 c19zaWduZWQ7IGV4dGVybiByYW5nZV9vcGVyYXRvcg0KPiA+ICsqcHRyX29wX3dpZGVuX3BsdXNf dW5zaWduZWQ7DQo+ID4gICNlbmRpZiAvLyBHQ0NfUkFOR0VfT1BfSA0KPiA+IGRpZmYgLS1naXQg YS9nY2MvcmFuZ2Utb3AuY2MgYi9nY2MvcmFuZ2Utb3AuY2MgaW5kZXgNCj4gPg0KPiA1YzY3YmNl NmQzYWFiODFhZDMxODZiOTAyZTA5ZDZhOTY4NzhkOWJiLi43MThjY2I2ZjA3NGUxYTJhOWVmMQ0K PiBiN2E1ZDRlOA0KPiA+IDc5ODk4ZDRhN2ZjMyAxMDA2NDQNCj4gPiAtLS0gYS9nY2MvcmFuZ2Ut b3AuY2MNCj4gPiArKysgYi9nY2MvcmFuZ2Utb3AuY2MNCj4gPiBAQCAtMTU1Niw2ICsxNTU2LDcz IEBAIG9wZXJhdG9yX3BsdXM6Om9wMl9yYW5nZSAoaXJhbmdlICZyLCB0cmVlIHR5cGUsDQo+ID4g ICAgcmV0dXJuIG9wMV9yYW5nZSAociwgdHlwZSwgbGhzLCBvcDEsIHJlbC5zd2FwX29wMV9vcDIg KCkpOyAgfQ0KPiA+DQo+ID4gK2NsYXNzIG9wZXJhdG9yX3dpZGVuX3BsdXNfc2lnbmVkIDogcHVi bGljIHJhbmdlX29wZXJhdG9yIHsNCj4gPiArcHVibGljOg0KPiA+ICsgIHZpcnR1YWwgdm9pZCB3 aV9mb2xkIChpcmFuZ2UgJnIsIHRyZWUgdHlwZSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCB3aWRlX2ludCAmbGhfbGIsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgY29u c3Qgd2lkZV9pbnQgJmxoX3ViLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHdp ZGVfaW50ICZyaF9sYiwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB3aWRlX2lu dCAmcmhfdWIpIGNvbnN0OyB9DQo+ID4gK29wX3dpZGVuX3BsdXNfc2lnbmVkOyByYW5nZV9vcGVy YXRvciAqcHRyX29wX3dpZGVuX3BsdXNfc2lnbmVkID0NCj4gPiArJm9wX3dpZGVuX3BsdXNfc2ln bmVkOw0KPiA+ICsNCj4gPiArdm9pZA0KPiA+ICtvcGVyYXRvcl93aWRlbl9wbHVzX3NpZ25lZDo6 d2lfZm9sZCAoaXJhbmdlICZyLCB0cmVlIHR5cGUsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IHdpZGVfaW50ICZsaF9sYiwNCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2lkZV9pbnQgJmxoX3ViLA0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB3aWRlX2ludCAmcmhfbGIsDQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHdpZGVfaW50ICZy aF91YikgY29uc3Qgew0KPiA+ICsgICB3aTo6b3ZlcmZsb3dfdHlwZSBvdl9sYiwgb3ZfdWI7DQo+ ID4gKyAgIHNpZ25vcCBzID0gVFlQRV9TSUdOICh0eXBlKTsNCj4gPiArDQo+ID4gKyAgIHdpZGVf aW50IGxoX3dsYg0KPiA+ICsgICAgID0gd2lkZV9pbnQ6OmZyb20gKGxoX2xiLCB3aTo6Z2V0X3By ZWNpc2lvbiAobGhfbGIpICogMiwgU0lHTkVEKTsNCj4gPiArICAgd2lkZV9pbnQgbGhfd3ViDQo+ ID4gKyAgICAgPSB3aWRlX2ludDo6ZnJvbSAobGhfdWIsIHdpOjpnZXRfcHJlY2lzaW9uIChsaF91 YikgKiAyLCBTSUdORUQpOw0KPiA+ICsgICB3aWRlX2ludCByaF93bGIgPSB3aWRlX2ludDo6ZnJv bSAocmhfbGIsIHdpOjpnZXRfcHJlY2lzaW9uIChyaF9sYikgKiAyLCBzKTsNCj4gPiArICAgd2lk ZV9pbnQgcmhfd3ViID0gd2lkZV9pbnQ6OmZyb20gKHJoX3ViLCB3aTo6Z2V0X3ByZWNpc2lvbiAo cmhfdWIpDQo+ID4gKyAqIDIsIHMpOw0KPiA+ICsNCj4gPiArICAgd2lkZV9pbnQgbmV3X2xiID0g d2k6OmFkZCAobGhfd2xiLCByaF93bGIsIHMsICZvdl9sYik7DQo+ID4gKyAgIHdpZGVfaW50IG5l d191YiA9IHdpOjphZGQgKGxoX3d1Yiwgcmhfd3ViLCBzLCAmb3ZfdWIpOw0KPiA+ICsNCj4gPiAr ICAgciA9IGludF9yYW5nZTwyPiAodHlwZSwgbmV3X2xiLCBuZXdfdWIpOyB9DQo+ID4gKw0KPiA+ ICtjbGFzcyBvcGVyYXRvcl93aWRlbl9wbHVzX3Vuc2lnbmVkIDogcHVibGljIHJhbmdlX29wZXJh dG9yIHsNCj4gPiArcHVibGljOg0KPiA+ICsgIHZpcnR1YWwgdm9pZCB3aV9mb2xkIChpcmFuZ2Ug JnIsIHRyZWUgdHlwZSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB3aWRlX2lu dCAmbGhfbGIsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2lkZV9pbnQgJmxo X3ViLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHdpZGVfaW50ICZyaF9sYiwN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB3aWRlX2ludCAmcmhfdWIpIGNvbnN0 OyB9DQo+ID4gK29wX3dpZGVuX3BsdXNfdW5zaWduZWQ7IHJhbmdlX29wZXJhdG9yICpwdHJfb3Bf d2lkZW5fcGx1c191bnNpZ25lZA0KPiA9DQo+ID4gKyZvcF93aWRlbl9wbHVzX3Vuc2lnbmVkOw0K PiA+ICsNCj4gPiArdm9pZA0KPiA+ICtvcGVyYXRvcl93aWRlbl9wbHVzX3Vuc2lnbmVkOjp3aV9m b2xkIChpcmFuZ2UgJnIsIHRyZWUgdHlwZSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCB3aWRlX2ludCAmbGhfbGIsDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2lkZV9pbnQgJmxoX3ViLA0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHdpZGVfaW50ICZyaF9sYiwN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB3aWRlX2lu dCAmcmhfdWIpIGNvbnN0IHsNCj4gPiArICAgd2k6Om92ZXJmbG93X3R5cGUgb3ZfbGIsIG92X3Vi Ow0KPiA+ICsgICBzaWdub3AgcyA9IFRZUEVfU0lHTiAodHlwZSk7DQo+ID4gKw0KPiA+ICsgICB3 aWRlX2ludCBsaF93bGINCj4gPiArICAgICA9IHdpZGVfaW50Ojpmcm9tIChsaF9sYiwgd2k6Omdl dF9wcmVjaXNpb24gKGxoX2xiKSAqIDIsIFVOU0lHTkVEKTsNCj4gPiArICAgd2lkZV9pbnQgbGhf d3ViDQo+ID4gKyAgICAgPSB3aWRlX2ludDo6ZnJvbSAobGhfdWIsIHdpOjpnZXRfcHJlY2lzaW9u IChsaF91YikgKiAyLCBVTlNJR05FRCk7DQo+ID4gKyAgIHdpZGVfaW50IHJoX3dsYiA9IHdpZGVf aW50Ojpmcm9tIChyaF9sYiwgd2k6OmdldF9wcmVjaXNpb24gKHJoX2xiKSAqIDIsIHMpOw0KPiA+ ICsgICB3aWRlX2ludCByaF93dWIgPSB3aWRlX2ludDo6ZnJvbSAocmhfdWIsIHdpOjpnZXRfcHJl Y2lzaW9uIChyaF91YikNCj4gPiArICogMiwgcyk7DQo+ID4gKw0KPiA+ICsgICB3aWRlX2ludCBu ZXdfbGIgPSB3aTo6YWRkIChsaF93bGIsIHJoX3dsYiwgcywgJm92X2xiKTsNCj4gPiArICAgd2lk ZV9pbnQgbmV3X3ViID0gd2k6OmFkZCAobGhfd3ViLCByaF93dWIsIHMsICZvdl91Yik7DQo+ID4g Kw0KPiA+ICsgICByID0gaW50X3JhbmdlPDI+ICh0eXBlLCBuZXdfbGIsIG5ld191Yik7IH0NCj4g Pg0KPiA+ICBjbGFzcyBvcGVyYXRvcl9taW51cyA6IHB1YmxpYyByYW5nZV9vcGVyYXRvciAgeyBA QCAtMjAzMSw2ICsyMDk4LDcwDQo+ID4gQEAgb3BlcmF0b3JfbXVsdDo6d2lfZm9sZCAoaXJhbmdl ICZyLCB0cmVlIHR5cGUsDQo+ID4gICAgICB9DQo+ID4gIH0NCj4gPg0KPiA+ICtjbGFzcyBvcGVy YXRvcl93aWRlbl9tdWx0X3NpZ25lZCA6IHB1YmxpYyByYW5nZV9vcGVyYXRvciB7DQo+ID4gK3B1 YmxpYzoNCj4gPiArICB2aXJ0dWFsIHZvaWQgd2lfZm9sZCAoaXJhbmdlICZyLCB0cmVlIHR5cGUs DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2lkZV9pbnQgJmxoX2xiLA0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHdpZGVfaW50ICZsaF91YiwNCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCB3aWRlX2ludCAmcmhfbGIsDQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgY29uc3Qgd2lkZV9pbnQgJnJoX3ViKQ0KPiA+ICsgICAgY29uc3Q7DQo+ ID4gK30gb3Bfd2lkZW5fbXVsdF9zaWduZWQ7DQo+ID4gK3JhbmdlX29wZXJhdG9yICpwdHJfb3Bf d2lkZW5fbXVsdF9zaWduZWQgPSAmb3Bfd2lkZW5fbXVsdF9zaWduZWQ7DQo+ID4gKw0KPiA+ICt2 b2lkDQo+ID4gK29wZXJhdG9yX3dpZGVuX211bHRfc2lnbmVkOjp3aV9mb2xkIChpcmFuZ2UgJnIs IHRyZWUgdHlwZSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3Qgd2lkZV9pbnQgJmxoX2xiLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCB3aWRlX2ludCAmbGhfdWIsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IHdpZGVfaW50ICZyaF9sYiwNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2lkZV9pbnQgJnJoX3ViKSBjb25zdCB7DQo+ID4g KyAgc2lnbm9wIHMgPSBUWVBFX1NJR04gKHR5cGUpOw0KPiA+ICsNCj4gPiArICB3aWRlX2ludCBs aF93bGIgPSB3aWRlX2ludDo6ZnJvbSAobGhfbGIsIHdpOjpnZXRfcHJlY2lzaW9uIChsaF9sYikN Cj4gPiArICogMiwgU0lHTkVEKTsgIHdpZGVfaW50IGxoX3d1YiA9IHdpZGVfaW50Ojpmcm9tIChs aF91YiwNCj4gPiArIHdpOjpnZXRfcHJlY2lzaW9uIChsaF91YikgKiAyLCBTSUdORUQpOyAgd2lk ZV9pbnQgcmhfd2xiID0NCj4gPiArIHdpZGVfaW50Ojpmcm9tIChyaF9sYiwgd2k6OmdldF9wcmVj aXNpb24gKHJoX2xiKSAqIDIsIHMpOyAgd2lkZV9pbnQNCj4gPiArIHJoX3d1YiA9IHdpZGVfaW50 Ojpmcm9tIChyaF91Yiwgd2k6OmdldF9wcmVjaXNpb24gKHJoX3ViKSAqIDIsIHMpOw0KPiA+ICsN Cj4gPiArICAvKiBXZSBkb24ndCBleHBlY3QgYSB3aWRlbmluZyBtdWx0aXBsaWNhdGlvbiB0byBi ZSBhYmxlIHRvIG92ZXJmbG93IGJ1dA0KPiByYW5nZQ0KPiA+ICsgICAgIGNhbGN1bGF0aW9ucyBm b3IgbXVsdGlwbGljYXRpb25zIGFyZSBjb21wbGljYXRlZC4gIEFmdGVyIHdpZGVuaW5nIHRoZQ0K PiA+ICsgICAgIG9wZXJhbmRzIGxldHMgY2FsbCB0aGUgYmFzZSBjbGFzcy4gICovDQo+ID4gKyAg cmV0dXJuIG9wX211bHQud2lfZm9sZCAociwgdHlwZSwgbGhfd2xiLCBsaF93dWIsIHJoX3dsYiwg cmhfd3ViKTsgfQ0KPiA+ICsNCj4gPiArDQo+ID4gK2NsYXNzIG9wZXJhdG9yX3dpZGVuX211bHRf dW5zaWduZWQgOiBwdWJsaWMgcmFuZ2Vfb3BlcmF0b3Igew0KPiA+ICtwdWJsaWM6DQo+ID4gKyAg dmlydHVhbCB2b2lkIHdpX2ZvbGQgKGlyYW5nZSAmciwgdHJlZSB0eXBlLA0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IHdpZGVfaW50ICZsaF9sYiwNCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCB3aWRlX2ludCAmbGhfdWIsDQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgY29uc3Qgd2lkZV9pbnQgJnJoX2xiLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IHdpZGVfaW50ICZyaF91YikNCj4gPiArICAgIGNvbnN0Ow0KPiA+ICt9IG9wX3dpZGVu X211bHRfdW5zaWduZWQ7DQo+ID4gK3JhbmdlX29wZXJhdG9yICpwdHJfb3Bfd2lkZW5fbXVsdF91 bnNpZ25lZCA9DQo+ICZvcF93aWRlbl9tdWx0X3Vuc2lnbmVkOw0KPiA+ICsNCj4gPiArdm9pZA0K PiA+ICtvcGVyYXRvcl93aWRlbl9tdWx0X3Vuc2lnbmVkOjp3aV9mb2xkIChpcmFuZ2UgJnIsIHRy ZWUgdHlwZSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCB3aWRlX2ludCAmbGhfbGIsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3Qgd2lkZV9pbnQgJmxoX3ViLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IHdpZGVfaW50ICZyaF9sYiwNCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB3aWRlX2ludCAmcmhfdWIpIGNvbnN0IHsN Cj4gPiArICBzaWdub3AgcyA9IFRZUEVfU0lHTiAodHlwZSk7DQo+ID4gKw0KPiA+ICsgIHdpZGVf aW50IGxoX3dsYiA9IHdpZGVfaW50Ojpmcm9tIChsaF9sYiwgd2k6OmdldF9wcmVjaXNpb24gKGxo X2xiKQ0KPiA+ICsgKiAyLCBVTlNJR05FRCk7ICB3aWRlX2ludCBsaF93dWIgPSB3aWRlX2ludDo6 ZnJvbSAobGhfdWIsDQo+ID4gKyB3aTo6Z2V0X3ByZWNpc2lvbiAobGhfdWIpICogMiwgVU5TSUdO RUQpOyAgd2lkZV9pbnQgcmhfd2xiID0NCj4gPiArIHdpZGVfaW50Ojpmcm9tIChyaF9sYiwgd2k6 OmdldF9wcmVjaXNpb24gKHJoX2xiKSAqIDIsIHMpOyAgd2lkZV9pbnQNCj4gPiArIHJoX3d1YiA9 IHdpZGVfaW50Ojpmcm9tIChyaF91Yiwgd2k6OmdldF9wcmVjaXNpb24gKHJoX3ViKSAqIDIsIHMp Ow0KPiA+ICsNCj4gPiArICAvKiBXZSBkb24ndCBleHBlY3QgYSB3aWRlbmluZyBtdWx0aXBsaWNh dGlvbiB0byBiZSBhYmxlIHRvIG92ZXJmbG93IGJ1dA0KPiByYW5nZQ0KPiA+ICsgICAgIGNhbGN1 bGF0aW9ucyBmb3IgbXVsdGlwbGljYXRpb25zIGFyZSBjb21wbGljYXRlZC4gIEFmdGVyIHdpZGVu aW5nIHRoZQ0KPiA+ICsgICAgIG9wZXJhbmRzIGxldHMgY2FsbCB0aGUgYmFzZSBjbGFzcy4gICov DQo+ID4gKyAgcmV0dXJuIG9wX211bHQud2lfZm9sZCAociwgdHlwZSwgbGhfd2xiLCBsaF93dWIs IHJoX3dsYiwgcmhfd3ViKTsgfQ0KPiA+DQo+ID4gIGNsYXNzIG9wZXJhdG9yX2RpdiA6IHB1Ymxp YyBjcm9zc19wcm9kdWN0X29wZXJhdG9yICB7DQo+ID4NCg0K