From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2076.outbound.protection.outlook.com [40.107.20.76]) by sourceware.org (Postfix) with ESMTPS id C5BDC39BEC07 for ; Tue, 3 Nov 2020 15:06:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org C5BDC39BEC07 Received: from MR2P264CA0018.FRAP264.PROD.OUTLOOK.COM (2603:10a6:500:1::30) by AM6PR08MB4133.eurprd08.prod.outlook.com (2603:10a6:20b:ab::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3499.18; Tue, 3 Nov 2020 15:06:47 +0000 Received: from VE1EUR03FT062.eop-EUR03.prod.protection.outlook.com (2603:10a6:500:1:cafe::c0) by MR2P264CA0018.outlook.office365.com (2603:10a6:500:1::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3499.19 via Frontend Transport; Tue, 3 Nov 2020 15:06:46 +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 VE1EUR03FT062.mail.protection.outlook.com (10.152.18.252) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3520.15 via Frontend Transport; Tue, 3 Nov 2020 15:06:46 +0000 Received: ("Tessian outbound d5e343850048:v64"); Tue, 03 Nov 2020 15:06:46 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 0c0c9f7d6d059816 X-CR-MTA-TID: 64aa7808 Received: from ededfedcd22c.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 5558A8F4-C988-40E8-9C5B-16C2AA638DC8.1; Tue, 03 Nov 2020 15:06:40 +0000 Received: from EUR01-VE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id ededfedcd22c.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 03 Nov 2020 15:06:40 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JlbIvbXQnhsuhulqHDx3kEm6Dnzqnp7FDIQog01AJs5kB1uRAWZ3sPmaGgISffGRq6lqRb71ry7Ss2CScFEV6OAVzw8jpU7VRZP2SmQlVnjHiXaDRUDK8alc/SnsjUHkG72CtSQ2px4GQFQCy57vNOBv+wcWGT/ltaP+7yA9bYg1kREDtKQmt6gBGvRk32oEimNMwyjwdDgZJ+hWnFwpmtJMneUQpXdngnqhS9WxrJundD26AySWM3TefsbbsSX2MvAwpQtzNg0bgjKTBoPusI+x0PsgXi1lE90USk8AmdTaMIzIltJzIvTvpm8N/kbTMxf4+TbIkBLwy/OZOi4Flw== 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=hUKTvh5GqefZO8mLuIJ0aFu8LzrVOa6omcWtIoo/Y7A=; b=hPKgo2ucxlfydcP458tR/zl6v/3425REzHWpemoJZrBshoi7LRg7Or2+GNUCLDQiVbrYkONeuhraOZapuXdJdnTH1B9WSHBC42cXrD1ihCmOFYX48zmztVom3eOOacXDsDG0OTkV3S6GA2076aX1/jxVqpmJXcDERyj1NpxzmwScD1jcGmQH2gFJ4dKP+I5Cn+Yu+7efJXwte77bUo9N+5EiQf0f/VbZqnQfryuVVCchdYNrbDS+q8MpGI7HUegzGEDjtuxbPSOPQSH8GN1Kno0LIbtEkmbfJg3cPKU+vtNXaQzrdbutbAn4uZPs14iNr1RaO0C3ILLoVAZiuzWNzw== 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 VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) by VI1PR08MB2702.eurprd08.prod.outlook.com (2603:10a6:802:1e::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3499.27; Tue, 3 Nov 2020 15:06:37 +0000 Received: from VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::d0e7:49cd:4dae:a2a2]) by VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::d0e7:49cd:4dae:a2a2%6]) with mapi id 15.20.3499.032; Tue, 3 Nov 2020 15:06:37 +0000 From: Tamar Christina To: Tamar Christina , Richard Biener CC: nd , "gcc-patches@gcc.gnu.org" , "ook@ucw.cz" Subject: RE: [PATCH v2 5/16]middle-end: Add shared machinery for matching patterns involving complex numbers. Thread-Topic: [PATCH v2 5/16]middle-end: Add shared machinery for matching patterns involving complex numbers. Thread-Index: AQHWk0gpitQ7W7X8WUGPrSL0SJ+s+al+Dh4AgAAdUCCAOIWxcA== Date: Tue, 3 Nov 2020 15:06:37 +0000 Message-ID: References: <20200925142837.GA16579@arm.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ms-exchange-imapappendstamp: VI1PR08MB5325.eurprd08.prod.outlook.com (15.20.3499.032) x-ts-tracking-id: 2D03C2D3C058604B8B57333232CAA4F4.0 x-checkrecipientchecked: true Authentication-Results-Original: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; x-originating-ip: [82.24.248.186] x-ms-publictraffictype: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 29f28f05-a509-4d4a-e09b-08d8800a1526 x-ms-traffictypediagnostic: VI1PR08MB2702:|AM6PR08MB4133: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:10000;OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: f+VF5TViL/j1AeWK6OqqKbPxmnBA1mCUdcLYf5X8U9ibrPfQ+n/RcMHKjTm6SQBTRTpJC0CFpGiRwcVF9IApgXl28tvkG9m0qxKreQJXt32h6hokA2CTjDw5/oKtq+xPss3qrQGTUxRxm7m24agzo3ypZTZ+O2vgL/+jaX8CqEwxFtg5AMjE/QkbVTiDgTN73+mLfBEfAN1OvqOeMj1gigLtm4tMj13K0KWeVS51cAgYgrzVgLKCJdWxWdsvOMDghPvDwGgWnEsO3WKavVtXH0eRzd7q4uovXLn7xRx1OwAydY8A+f8Rn1nggC2isDXheb2yyEHKDbjMYepdNV8Aiw== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR08MB5325.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(39850400004)(366004)(136003)(346002)(376002)(396003)(186003)(8676002)(66446008)(110136005)(66476007)(478600001)(4326008)(54906003)(64756008)(66616009)(66556008)(66946007)(76116006)(8936002)(99936003)(26005)(83380400001)(6506007)(316002)(86362001)(55016002)(7696005)(2906002)(53546011)(52536014)(5660300002)(71200400001)(9686003)(33656002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: RXHeNu5UYkS29jFuaDc7GOk7lhIXoRuQaRJP11q8pov+qLq6gsbLLXcvwJCSQL0OxdKkiUskNd/8AKohK5y90XUuwjPXdRCOOOUeLzTegYV9bBZq+ClOM/G374ePy0DBmp7B5FsjngZ4q4BcD0lvZJdRbFmRDaSAnOlixXDwf0YOPWN6ynUwaRoUb2HoO2la4/Rzr2XiX7FHLp57lHBNG9LscqkJFQMOLB2Q8/cjSejJJCH6TrYIYNAB0bhzwnDvwKI+iI09ZBKCHKAKnyUfrGdh4ZH5mZ/J828h01icYLK0SMFDQ479OPuV3W5LGe+enmIIAHgxRqLJlZFeS6qFwEZFhMmDojGhRbn/ReHmN2W5ZH32rgzzGD+7OnILLceTLvxTADmrJTxeAfOMND8pWI47khz+1DO9tXPuWDkfYeK9XlFVL53J11MCv4eODmsYpi1Yi6GHj4aSKimVK4amAh2gTPzaWtefMDF6mbG2cBeyLC7rly/DmvAWCSX+RzCBFJzkw11PLCbLLx80eT82h0MPmQclltPNNYvMAFL7DRrcYfgtr/DU8e994/1AuhwiFswsWH/qr8yJd84yk1mg1HydKAS5+qQecM3xrhUP5qvTwjs1eLKqiNQiEPnrAo3A4+XdRfJBGNm3MYSGhceITQ== Content-Type: multipart/mixed; boundary="_002_VI1PR08MB5325EF6771B91721B5FCC9A4FF110VI1PR08MB5325eurp_" MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB2702 Original-Authentication-Results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT062.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 3c61f334-d6da-46b3-a4be-08d8800a0fca X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ciIujQ/WyvN+rwyr2vDbFeAScVWMIQXFUAPIUik6a2HZMfiaFCcU/zgs7CvKGvul8n7jrabhdoorzBzMxnYu8Gj9nsBTPR/G7YTIUSY8ZRUWRGypUGeeYtSG9QuBPIrLNqVR6aX/WMrnOdaabWz1cAP7Tw3dEeVSxxEawO7v7c5iZjXmiLVxlgQz46M/W7mMP456/vP5l48cz35bSC73B8QoDWVJN2TGdtwSNUIYDX6EkKSIqiXBQdoJR7FUU5U8+/E+IdAmH5sQLskDurPlUqyIMQqI+tC3K3D5PVLpvw15Ix9A53MBahnrJ/yuTZet/AFzzmivl/CHlVhdSnU3XCXpsAZOzSdAL8Jp8q/AwbWDMyo9Ku+AQcgIJoGwLDDCZR8ov/vnwEwwup8UQ4Mhvg== 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)(376002)(346002)(396003)(39860400002)(136003)(46966005)(70586007)(478600001)(86362001)(7696005)(47076004)(5660300002)(82310400003)(83380400001)(55016002)(235185007)(82740400003)(356005)(66616009)(99936003)(70206006)(81166007)(33964004)(8676002)(316002)(9686003)(4326008)(26005)(53546011)(54906003)(6506007)(110136005)(36906005)(33656002)(8936002)(186003)(52536014)(2906002)(336012); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2020 15:06:46.4433 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 29f28f05-a509-4d4a-e09b-08d8800a1526 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: VE1EUR03FT062.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB4133 X-Spam-Status: No, score=-14.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, 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: Tue, 03 Nov 2020 15:06:52 -0000 --_002_VI1PR08MB5325EF6771B91721B5FCC9A4FF110VI1PR08MB5325eurp_ Content-Type: text/plain; charset="utf-8" Content-ID: <02DFAEEF0B2E164FA6C760AEF6480AD3@arm.com> Content-Transfer-Encoding: base64 SGkgQWxsLA0KDQpUaGlzIGlzIGEgcmVzcGluIGNvbnRhaW5pbmcgdGhlIHJlcXVlc3RlZCBjaGFu Z2VzLg0KDQpPayBmb3IgbWFzdGVyPw0KDQpUaGFua3MsDQpUYW1hcg0KDQpnY2MvQ2hhbmdlTG9n Og0KDQoJKiB0cmVlLXZlY3Qtc2xwLXBhdHRlcm5zLmMgKHZlY3RfbWF0Y2hfZXhwcmVzc2lvbl9w LA0KCXZlY3RfY2hlY2tfbGFuZV9wZXJtdXRlLCB2ZWN0X2RldGVjdF9wYWlyX29wLA0KCXZlY3Rf bWFya19zdG10c19hc19pbl9wYXR0ZXJuLCBjbGFzcyBjb21wbGV4X3BhdHRlcm4sDQoJY29tcGxl eF9wYXR0ZXJuOjp2YWxpZGF0ZV9wLCBjbGFzcyBjb21wbGV4X29wZXJhdGlvbnNfcGF0dGVybiwN Cgljb21wbGV4X29wZXJhdGlvbnNfcGF0dGVybjo6bWF0Y2hlcywNCgljb21wbGV4X29wZXJhdGlv bnNfcGF0dGVybjo6Z2V0X25hbWUsDQoJY29tcGxleF9vcGVyYXRpb25zX3BhdHRlcm46OmJ1aWxk LA0KCWNvbXBsZXhfb3BlcmF0aW9uc19wYXR0ZXJuOjp2YWxpZGF0ZV9wLA0KCWNvbXBsZXhfb3Bl cmF0aW9uc19wYXR0ZXJuOjpnZXRfYXJpdHksDQoJY29tcGxleF9vcGVyYXRpb25zX3BhdHRlcm46 OmlzX29wdGFiX3N1cHBvcnRlZF9wLA0KCWNvbXBsZXhfb3BlcmF0aW9uc19wYXR0ZXJuOjpnZXRf aWZuKTogTmV3Lg0KCShzbHBfcGF0dGVybnMpOiBBZGQgY29tcGxleF9vcGVyYXRpb25zX3BhdHRl cm4uDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogR2NjLXBhdGNoZXMg PGdjYy1wYXRjaGVzLWJvdW5jZXNAZ2NjLmdudS5vcmc+IE9uIEJlaGFsZiBPZiBUYW1hcg0KPiBD aHJpc3RpbmENCj4gU2VudDogTW9uZGF5LCBTZXB0ZW1iZXIgMjgsIDIwMjAgNTowNiBQTQ0KPiBU bzogUmljaGFyZCBCaWVuZXIgPHJndWVudGhlckBzdXNlLmRlPg0KPiBDYzogbmQgPG5kQGFybS5j b20+OyBnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZzsgb29rQHVjdy5jeg0KPiBTdWJqZWN0OiBSRTog W1BBVENIIHYyIDUvMTZdbWlkZGxlLWVuZDogQWRkIHNoYXJlZCBtYWNoaW5lcnkgZm9yIG1hdGNo aW5nDQo+IHBhdHRlcm5zIGludm9sdmluZyBjb21wbGV4IG51bWJlcnMuDQo+IA0KPiBIaSBSaWNo aSwNCj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiByZ3VlbnRo ZXJAYzY1My5hcmNoLnN1c2UuZGUgPHJndWVudGhlckBjNjUzLmFyY2guc3VzZS5kZT4gT24NCj4g PiBCZWhhbGYgT2YgUmljaGFyZCBCaWVuZXINCj4gPiBTZW50OiBNb25kYXksIFNlcHRlbWJlciAy OCwgMjAyMCAyOjIyIFBNDQo+ID4gVG86IFRhbWFyIENocmlzdGluYSA8VGFtYXIuQ2hyaXN0aW5h QGFybS5jb20+DQo+ID4gQ2M6IGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnOyBuZCA8bmRAYXJtLmNv bT47IG9va0B1Y3cuY3oNCj4gPiBTdWJqZWN0OiBSZTogW1BBVENIIHYyIDUvMTZdbWlkZGxlLWVu ZDogQWRkIHNoYXJlZCBtYWNoaW5lcnkgZm9yDQo+ID4gbWF0Y2hpbmcgcGF0dGVybnMgaW52b2x2 aW5nIGNvbXBsZXggbnVtYmVycy4NCj4gPg0KPiA+IE9uIEZyaSwgMjUgU2VwIDIwMjAsIFRhbWFy IENocmlzdGluYSB3cm90ZToNCj4gPg0KPiA+ID4gSGkgQWxsLA0KPiA+ID4NCj4gPiA+IFRoaXMg cGF0Y2ggYWRkcyBzaGFyZWQgbWFjaGluZXJ5IGZvciBkZXRlY3RpbmcgcGF0dGVybnMgaGF2aW5n IHRvIGRvDQo+ID4gPiB3aXRoIGNvbXBsZXggbnVtYmVyIG9wZXJhdGlvbnMuICBUaGUgY2xhc3Mg Q29tcGxleFBhdHRlcm4gcHJvdmlkZXMNCj4gPiA+IGhlbHBlcnMgZm9yIG1hdGNoaW5nIGFuZCB1 bHRpbWF0ZWx5IHVuZG9pbmcgdGhlIHBlcm11dGF0aW9uIGluIHRoZQ0KPiA+ID4gdHJlZSBieSBy ZWJ1aWxkaW5nIHRoZSBncmFwaC4NCj4gPiA+DQo+ID4gPiBCb290c3RyYXBwZWQgUmVndGVzdGVk IG9uIGFhcmNoNjQtbm9uZS1saW51eC1nbnUgYW5kIG5vIGlzc3Vlcy4NCj4gPiA+DQo+ID4gPiBP ayBmb3IgbWFzdGVyPw0KPiA+DQo+ID4gSSB0aGluayB5b3Ugd2FudCB0byBjaGFuZ2UgYWxsIHRo aXMgdG8gbm90IGxvb2sgYXQgaW5kaXZpZHVhbA0KPiA+IHN0bXRzOg0KPiA+DQo+ID4gKyAgICB2 ZWN0X21hdGNoX2V4cHJlc3Npb25fcCAoc2xwX3RyZWUgbm9kZSwgdHJlZV9jb2RlIGNvZGUsIGlu dCBiYXNlLA0KPiA+ICsgaW50DQo+ID4gaWR4LA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RtdF92ZWNfaW5mbyAqb3AxLCBzdG10X3ZlY19pbmZvICpvcDIpDQo+ID4gKyAgICB7 DQo+ID4gKw0KPiA+ICsgICAgICB2ZWM8c3RtdF92ZWNfaW5mbz4gc2NhbGFyX3N0bXRzID0gU0xQ X1RSRUVfU0NBTEFSX1NUTVRTIChub2RlKTsNCj4gPiArDQo+ID4NCj4gPiBfYWxsXyBsYW5lcyBh cmUgc3VwcG9zZWQgdG8gbWF0Y2ggdGhlIG9wZXJhdGlvbiBpbg0KPiA+IFNMUF9UUkVFX1JFUFJF U0VOVEFUSVZFIHRoZXJlJ3Mgbm8gbmVlZCB0byBkbyBhbnkgb3BlcmF0aW9uLW1hdGNoaW5nDQo+ ID4gb24gbGFuZSBncmFudWxhcml0eS4NCj4gPg0KPiANCj4gVGhhdCdzIGZhaXIsIHRoYXQgZmxl eGliaWxpdHkgc2VlbXMgbGlrZSBpdCBpbmRlZWQgd29uJ3Qgd29yayBzaW5jZSB0aGUNCj4gc3Rh dGVtZW50cyBhcmUgdmVjdG9yaXplZCBiYXNlZCBvbiBTTFBfVFJFRV9SRVBSRVNFTlRBVElWRSBh bnl3YXkuIFNvDQo+IEknbGwgc2ltcGxpZnkgaXQuDQo+IA0KPiA+IFRoZSBvbmx5IHRoaW5nIG1h a2luZyBhIGRpZmZlcmVuY2UgaGVyZSBpcyBWRUNfUEVSTV9FWFBSIG5vZGVzIHdoZXJlDQo+ID4g YWdhaW4gLSB0aGVyZSdzIG5vIG5lZWQgdG8gbG9vayBhdCAoZXZlbnR1YWxseSBub24tZXhpc3Rh bnQhKQ0KPiA+IFNMUF9UUkVFX1NDQUxBUl9TVE1UUyBidXQgaXRzIFNMUF9UUkVFX1JFUFJFU0VO VEFUSVZFLg0KPiA+DQo+ID4gKyAgICAgIHZlYzxzbHBfdHJlZT4gY2hpbGRyZW4gPSBTTFBfVFJF RV9DSElMRFJFTiAobm9kZSk7DQo+ID4gKw0KPiA+ICsgICAgICAvKiBJZiBpdCdzIGEgVkVDX1BF Uk1fRVhQUiB3ZSBuZWVkIHRvIGxvb2sgb25lIGRlZXBlci4NCj4gPiBWRUNfUEVSTV9FWFBSDQo+ ID4gKyAgICAgICAgb25seSBoYXZlIG9uZSBlbnRyeS4gIFNvIHBpY2sgb24uICAqLw0KPiA+ICsg ICAgICBpZiAobm9kZS0+Y29kZSA9PSBWRUNfUEVSTV9FWFBSKQ0KPiA+ICsgICAgICAgY2hpbGRy ZW4gPSBTTFBfVFJFRV9DSElMRFJFTiAoY2hpbGRyZW4ubGFzdCAoKSk7DQo+ID4NCj4gPiB0aGF0 J3MgdG9vIHNpbXBsaXN0aWMgOykNCj4gPg0KPiA+ICsgICAgICAgICAqb3AxID0gU0xQX1RSRUVf U0NBTEFSX1NUTVRTIChjaGlsZHJlblswXSlbbl07DQo+ID4NCj4gPiBwbGVhc2UgbWFrZSBvcDEs b3AyIHNscF90cmVlLCBub3Qgc3RtdF92ZWNfaW5mby4NCj4gPg0KPiA+IFdoZXJlIGRvIHlvdSBs b29rIGF0IFNMUF9UUkVFX0xBTkVfUEVSTVVUQVRJT04gYXQgYWxsPyAgSSB0aGluayB0aGUNCj4g PiByZXN1bHQgb2YNCj4gPg0KPiANCj4gSGVyZSBJIGhhdmUgdG8gYWRtaXQgdGhhdCBJIGhhdmUv YW0gYSBiaXQgY29uZnVzZWQgYXMgdG8gdGhlIHJlbGF0aW9uDQo+IGJldHdlZW4gdGhlIGRpZmZl cmVudCBwZXJtdXRlIGZpZWxkcy4NCj4gTE9BRCBwZXJtdXRlIGlzIHF1aXRlIHN0cmFpZ2h0IGZv cndhcmQsIExBTkUgcGVybXV0ZSBJIHRoaW5rIGFyZQ0KPiBzaHVmZmxlcy9leHBsaWNpdCBwZXJt dXRlcy4NCj4gDQo+IEJ1dCB0aGVuIEkgYW0gbG9zdCBhcyB0byB0aGUgcHVycG9zZSBvZiBhIFZF Q19QRVJNX0VYUFIgbm9kZXMuIElzIGl0IGp1c3QgYQ0KPiBtYXJrZXIgdG8gaW5kaWNhdGUgdGhh dCBzb21lIG5vZGUgYmVsb3cgaGFzIGEgbG9hZCBwZXJtdXRlIHNvbWV3aGVyZT8NCj4gDQo+ID4g KyAgICB2ZWN0X2RldGVjdF9wYWlyX29wIChpbnQgYmFzZSwgc2xwX3RyZWUgbm9kZTEsIGludCBv ZmZzZXQxLA0KPiA+ICsgc2xwX3RyZWUNCj4gPiBub2RlMiwNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgaW50IG9mZnNldDIsIHZlYzxzdG10X3ZlY19pbmZvPiAqb3BzKQ0KPiA+DQo+ID4g Y291bGQgYmUgc2ltcGx5IHRoZSBTTFBfVFJFRV9MQU5FX1BFUk1VVEFUSU9OPyBwbHVzIGl0cyB0 d28gY2hpbGQNCj4gPiBub2Rlcz8NCj4gDQo+IFJpZ2h0LCBpZiBJIHVuZGVyc3Rvb2QgY29ycmVj dGx5LCBvbiB0aGUgdHdvX29wZXJhbmRzIGNhc2UgdGhlIGxhbmUgcGVybXV0ZQ0KPiB3b3VsZCB0 ZWxsIG1lIHdoZXRoZXIgaXQncyArIG9yIC0sIGFuZCBpbiB0aGUgY2FzZSBvZiB0aGUgbm9uLSB0 d29fb3BlcmFuZHMNCj4gY2FzZXMgSSBwcm9iYWJseSB3YW50IHRvIGNoZWNrIHRoYXQgaXQncyB2 TlVMTCBzaW5jZSBhbnkgcGVybXV0ZSBpbiB0aGUgb3JkZXINCj4gY2hhbmdlcyBob3cgdGhlIGlu c3RydWN0aW9uIGFjY2VwdHMgdGhlIGlucHV0cz8NCj4gDQo+ID4NCj4gPiBJbiB0aGUgQ29tcGxl eEFkZFBhdHRlcm4gcGF0Y2ggSSBzZWUNCj4gPg0KPiA+ICsgICAgICAvKiBDb3JyZWN0IHRoZSBh cmd1bWVudHMgYWZ0ZXIgbWF0Y2hpbmcuICAqLw0KPiA+ICsgICAgICBzdGQ6OnN3YXAgKHRoaXMt Pm1fdmVjdHNbMV0sIHRoaXMtPm1fdmVjdHNbM10pOw0KPiA+DQo+ID4gaG93J3MgdGhhdCBuZWNl c3Nhcnk/ICBUaGUgcmVwbGFjZW1lbnQgU0xQIG5vZGUgc2hvdWxkIGVuZCB1cCB3aXRoDQo+ID4g anVzdCBhIFNMUF9UUkVFX1JFUFJFU0VOVEFUSVZFICh0aGUgSUZOIGZ1bmN0aW9uIGNhbGwpLg0K PiA+IFRoYXQgaXMsIHRoZSBvbmx5IHRoaW5nIG5lY2Vzc2FyeSBpcyB2ZXJpZmljYXRpb24gLyBt YXRjaGluZyBvZiB0aGUNCj4gPiBhcHByb3ByaWF0ZSAiaW50ZXJsZWF2aW5nIiBzY2hlbWUgaW1w b3NlZCBieQ0KPiBTTFBfVFJFRV9MQU5FX1BFUk1VVEFUSU9OLg0KPiANCj4gQnV0IHRoZSBvcmRl ciBvciB0aGUgc3RhdGVtZW50cyBhcmUgaW1wb3J0YW50IGFzIHRob3NlIGRlY2lkZSB0aGUNCj4g TE9BRF9QRVJNVVRBVElPTiB0aGF0IGJ1aWxkX3NscF90cmVlIGNyZWF0ZXMuDQo+IA0KPiBTbyBp biB0aGlzIGNhc2UgdGhlIG9yaWdpbmFsIHN0YXRlbWVudCBpcw0KPiANCj4gICAgICAgIHN0bXQg MCBfMzkgPSBfMzcgKyBfMTI7DQo+ICAgICAgICBzdG10IDEgXzYgPSBfMzggLSBfMzY7DQo+IA0K PiB7XzEyLCBfMzZ9IHJlc3VsdCBpbiBhIExPQURfUEVSTVVUQVRJT04gb2YgezEsIDB9IGJlY2F1 c2Ugb2YgaG93IHRoZQ0KPiBhZGRpdGlvbiBpcyBkb25lLg0KPiBTbyB0byB1bmRvIHRoZSBMT0FE X1BFUk1VVEUgaXQgaGFzIHRvIGJ1aWxkIHRoZSBuZXcgY2hpbGRyZW4gdXNpbmcNCj4gDQo+ICAg ICAgICBzdG10IDAgXzM5ID0ge18zNywgXzM2fTsNCj4gICAgICAgIHN0bXQgMSBfNiA9IHtfMzgs IF8xMn07DQo+IA0KPiBTbyB0aGUgc2NhbGFyIHN0YXRlbWVudHMgYXJlIHB1cmVseSBhIHJlLW9y ZGVyaW5nIHRvIGdldCBpdCB0byByZWJ1aWxkIHRoZQ0KPiBjaGlsZHJlbiBjb3JyZWN0bHkuDQo+ IA0KPiBOb3cgQUREIGlzIHNpbXBsaXN0aWMsIHRoZSBtb3JlIGNvbXBsaWNhdGVkIGNhc2VzIGxp a2UgTVVMIGFuZCBGTUEgdXNlIHRoaXMNCj4gcHJvcGVydHkgdG8gQWxzbyByZWJ1aWxkIHRoZSB0 cmVlIHJlbW92aW5nIHVubmVlZGVkIHN0YXRlbWVudHMuICBUaGlzDQo+IG1ldGhvZCByZXR1cm5z IHRoZXNlIGFuZCBzdG9yZXMgdGhlbSBpbiB0aGUgUGF0dGVybk1hdGNoIGNsYXNzLCBzbyBJIGRv bid0DQo+IGhhdmUgdG8gYXNrIGZvciB0aGVtIGFnYWluIGxhdGVyIHdoZW4gcmVwbGFjaW5nIHRo ZSBub2Rlcy4gIEV2ZW4gZm9yDQo+IFNMUF9UUkVFX1JFUFJFU0VOVEFUSVZFIGRvbid0IHRoZSBh cmd1bWVudHMgaW4gdGhlIElGTiBjYWxsIG5lZWQgdG8gYmUgaW4NCj4gc3VjaCB3YXkgdGhhdCB0 aGV5IGJvdGggaW4gdGhlIHNhbWUgcGxhY2UgaW4gdGhlIGxvYWQgY2hhaW4/DQo+IA0KPiA+IEkg Z3Vlc3MgdGhpbmdzIHdvdWxkIGdvIHdyb25nIGlmIGluc3RlYWQgb2YgZWZmZWN0aXZlbHkgYmxl bmRpbmcgdHdvDQo+ID4gdmVjdG9ycyB3ZSdkIGludGVybGVhdmUgdHdvIHNtYWxsZXIgdmVjdG9y IHR5cGUgdmVjdG9ycz8gIFNheSBhIDQtd2F5DQo+ID4gYWRkIGFuZCBhIDQtIHdheSBzdWIgaW50 ZXJsZWF2ZWQgaW50byBhIDgtd2F5IGFkZHN1YiwgdXNpbmcgVjRTRiBhbmQgVjhTRg0KPiB2ZWN0 b3JzPw0KPiA+DQo+IA0KPiBBdCB0aGlzIHN0YWdlIHllcywgbW9zdCBsaWtlbHksIGJ1dCBpdCBz aG91bGQgYmUgcmVqZWN0ZWQgYXQgdGhlIHZhbGlkYXRlIGxldmVsLg0KPiANCj4gV2hhdCBpcyBh bHNvIGN1cnJlbnRseSByZWplY3RlZCBpcyB3aGVuIHNvbWUgb2YgdGhlIGRlZmluaXRpb25zIGFy ZSBleHRlcm5hbCwNCj4gd2hpY2ggSSB0aGluayBJIHNob3VsZCBiZSBhYmxlIHRvIGhhbmRsZS4g SSdsbCBmaXggdGhhdCB1cCB3aXRoIHRoZSByZXN0IG9mIHRoZQ0KPiBjaGFuZ2VzLg0KPiANCj4g DQo+IFRoYW5rcyBmb3IgdGhlIGZlZWRiYWNrIQ0KPiANCj4gUmVnYXJkcywNCj4gVGFtYXINCj4g DQo+ID4gR29pbmcgdG8gc3RvcCBsb29raW5nIGF0IHRoZSBzZXJpZXMgYXQgdGhpcyBwb2ludCwg b25lIGZ1cnRoZXIgbm90ZSBpcw0KPiA+IHRoYXQgYWxsIG9mIHRoZSBDb21wbGV4KlBhdHRlcm5z IHNlZW0gdG8gc2hhcmUgdGhlIGluaXRpYWwgbWF0Y2ggYW5kDQo+ID4gdGh1cyByZWR1bmRhbnRs eSBkbyBhIHZlY3RfZGV0ZWN0X3BhaXJfb3AgcmVwZWF0ZWRseSBvbiBlYWNoIG5vZGUgZm9yDQo+ ID4gZWFjaCBwYXR0ZXJuPyAgSSB3b25kZXIgaWYgaXQgY291bGQgYmUgY29tbW9uZWQgaW50byBh IHNpbmdsZSBwYXR0ZXJuLA0KPiA+IHRoZXkgYWxsIHNlZW0gdG8gc2hhcmUgdGhlIGluaXRpYWwg bWl4ZWQgcGx1cy9taW51cywgdGhlbiB3ZSBoYXZlIHRoZQ0KPiA+IG11bHRpcGxpY2F0aW9uIG9u IG9uZSBvciBib3RoIG9wZXJhbmQgY2FzZXMuDQo+ID4NCj4gPiBSaWNoYXJkLg0KPiA+DQo+ID4g PiBUaGFua3MsDQo+ID4gPiBUYW1hcg0KPiA+ID4NCj4gPiA+IGdjYy9DaGFuZ2VMb2c6DQo+ID4g Pg0KPiA+ID4gCSogdHJlZS12ZWN0LXNscC1wYXR0ZXJucy5jIChjb21wbGV4X29wZXJhdGlvbl90 LGNsYXNzDQo+ID4gQ29tcGxleFBhdHRlcm4pOg0KPiA+ID4gCU5ldy4NCj4gPiA+DQo+ID4gPg0K PiA+DQo+ID4gLS0NCj4gPiBSaWNoYXJkIEJpZW5lciA8cmd1ZW50aGVyQHN1c2UuZGU+DQo+ID4g U1VTRSBTb2Z0d2FyZSBTb2x1dGlvbnMgR2VybWFueSBHbWJILCBNYXhmZWxkc3RyYXNzZSA1LCA5 MDQwOQ0KPiA+IE51ZXJuYmVyZywgR2VybWFueTsgR0Y6IEZlbGl4IEltZW5kDQo= --_002_VI1PR08MB5325EF6771B91721B5FCC9A4FF110VI1PR08MB5325eurp_ Content-Type: text/x-diff; name="pr13509.patch" Content-Description: pr13509.patch Content-Disposition: attachment; filename="pr13509.patch"; size=12270; creation-date="Tue, 03 Nov 2020 14:53:28 GMT"; modification-date="Tue, 03 Nov 2020 14:53:28 GMT" Content-ID: Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy90cmVlLXZlY3Qtc2xwLXBhdHRlcm5zLmMgYi9nY2MvdHJlZS12ZWN0 LXNscC1wYXR0ZXJucy5jDQppbmRleCBiODFjZDY4NTZhZDRkYjVhMGNkYTQ4Y2EyMTQzODlmMDA3 ZTA2MGRhLi42NTA0NGE3N2Q1NWUyNGNkZTZjNjYzZTgxYzExYjY2YWQ5NjUwMDU2IDEwMDY0NA0K LS0tIGEvZ2NjL3RyZWUtdmVjdC1zbHAtcGF0dGVybnMuYw0KKysrIGIvZ2NjL3RyZWUtdmVjdC1z bHAtcGF0dGVybnMuYw0KQEAgLTEzNiw2ICsxMzYsMjcgQEAgYWxvbmcgd2l0aCBHQ0M7IHNlZSB0 aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5vdCBzZWUNCiAgIFRvIGFkZCBhIG5ldyBwYXR0ZXJuLCBp bXBsZW1lbnQgdGhlIHZlY3RfcGF0dGVybiBjbGFzcyBhbmQgYWRkIHRoZSB0eXBlIHRvDQogICBz bHBfcGF0dGVybnMuICAqLw0KIA0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICogR2VuZXJh bCBoZWxwZXIgdHlwZXMNCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKw0KKy8qIFRoZSBDT01Q TEVYX09QRVJBVElPTiBlbnVtIGRlbm90ZXMgdGhlIHBvc3NpYmxlIHBhaXIgb2Ygb3BlcmF0aW9u cyB0aGF0IGNhbg0KKyAgIGJlIG1hdGNoZWQgd2hlbiBsb29raW5nIGZvciBleHByZXNzaW9ucyB0 aGF0IHdlIGFyZSBpbnRlcmVzdGVkIG1hdGNoaW5nIGZvcg0KKyAgIGNvbXBsZXggbnVtYmVycyBh ZGRpdGlvbiBhbmQgbWxhLiAgKi8NCisNCit0eXBlZGVmIGVudW0gX2NvbXBsZXhfb3BlcmF0aW9u IDogdW5zaWduZWQgew0KKyAgUExVU19QTFVTLA0KKyAgTUlOVVNfUExVUywNCisgIFBMVVNfTUlO VVMsDQorICBNVUxUX01VTFQsDQorICBORUdfTkVHLA0KKyAgQ01QTFhfTk9ORQ0KK30gY29tcGxl eF9vcGVyYXRpb25fdDsNCisNCisvKiBBIHNpbXBsZSBwYWlyIHR5cGUgdXNlZCBmb3Igb3JkZXJp bmcgb2YgY29tYmluZSBvcGVyYXRpb25zLiAgKi8NCisNCit0eXBlZGVmIHN0cnVjdCBtYXBfIHsg aW50IGE7IGludCBiOyB9IG1hcF90Ow0KKw0KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQogICog U2ltcGxlIHZlY3RvciBwYXR0ZXJuIG1hdGNoZXINCiAgKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0K QEAgLTI3Niw2ICsyOTcsMzQ4IEBAIHZlY3Rfc2ltcGxlX3BhdHRlcm5fbWF0Y2g6OmJ1aWxkICgp DQogICByZXR1cm4gY2FsbF9zdG10Ow0KIH0NCiANCisvKiBDaGVja3MgdG8gc2VlIG9mIHRoZSBl eHByZXNzaW9uIEVYUFIgaXMgYSBnaW1wbGUgYXNzaWduIHdpdGggY29kZSBDT0RFDQorICAgYW5k IGlmIHRoaXMgaXMgdGhlIGNhc2UgdGhlIHR3byBvcGVyYW5kcyBvZiBFWFBSIGlzIHJldHVybmVk IGluIE9QMSBhbmQNCisgICBPUDIuDQorDQorICAgSWYgdGhlIG1hdGNoaW5nIGFuZCBleHRyYWN0 aW9uIGlzIHN1Y2Nlc3NmdWwgVFJVRSBpcyByZXR1cm5lZCBvdGhlcndpc2UNCisgICBGQUxTRSBp biB3aGljaCBjYXNlIHRoZSB2YWx1ZSBvZiBPUDEgYW5kIE9QMiB3aWxsIG5vdCBoYXZlIGJlZW4g dG91Y2hlZC4NCisqLw0KKw0KK3N0YXRpYyBib29sDQordmVjdF9tYXRjaF9leHByZXNzaW9uX3Ag KHNscF90cmVlIG5vZGUsIHRyZWVfY29kZSBjb2RlKQ0KK3sNCisgIGlmICghU0xQX1RSRUVfUkVQ UkVTRU5UQVRJVkUgKG5vZGUpKQ0KKyAgICByZXR1cm4gZmFsc2U7DQorDQorICBnaW1wbGUqIGV4 cHIgPSBTVE1UX1ZJTkZPX1NUTVQgKFNMUF9UUkVFX1JFUFJFU0VOVEFUSVZFIChub2RlKSk7DQor ICBpZiAoIWlzX2dpbXBsZV9hc3NpZ24gKGV4cHIpDQorICAgICAgfHwgZ2ltcGxlX2V4cHJfY29k ZSAoZXhwcikgIT0gY29kZSkNCisgICAgcmV0dXJuIGZhbHNlOw0KKw0KKyAgcmV0dXJuIHRydWU7 DQorfQ0KKw0KKy8qIENoZWNrIGlmIHRoZSBnaXZlbiBsYW5lIHBlcm11dGUgaW4gUEVSTVVURVMg bWF0Y2hlcyBhbiBhbHRlcm5hdGluZyBzZXF1ZW5jZQ0KKyAgIG9mIHtQMCBQMSBQMCBQMSAuLi59 LiAgVGhpcyB0byBhY2NvdW50IGZvciB1bnJvbGxlZCBsb29wcy4gICAqLw0KK3N0YXRpYyBib29s DQordmVjdF9jaGVja19sYW5lX3Blcm11dGUgKGxhbmVfcGVybXV0YXRpb25fdCAmcGVybXV0ZXMs DQorCQkJIHVuc2lnbmVkIHAwLCB1bnNpZ25lZCBwMSkNCit7DQorICB1bnNpZ25lZCB2YWxbMl0g PSB7cDAsIHAxfTsNCisgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwZXJtdXRlcy5sZW5ndGgg KCk7IGkrKykNCisgICAgaWYgKHBlcm11dGVzW2ldLmZpcnN0ICE9IHZhbFtpICUgMl0pDQorICAg ICAgcmV0dXJuIGZhbHNlOw0KKw0KKyAgcmV0dXJuIHRydWU7DQorfQ0KKw0KKy8qIFRoaXMgZnVu Y3Rpb24gd2lsbCBtYXRjaCB0d28gZ2ltcGxlIGV4cHJlc3Npb25zIFNUTVRfMCBhbmQgU1RNVF8x IGluDQorICAgcGFyYWxsZWwgYW5kIHJldHVybnMgdGhlIHBhaXIgb3BlcmF0aW9uIHRoYXQgcmVw cmVzZW50cyB0aGUgdHdvDQorICAgZXhwcmVzc2lvbnMgaW4gdGhlIHR3byBzdGF0ZW1lbnRzLiAg VGhlIHN0YXRlbWVudHMgYXJlIGxvY2F0ZWQgaW4gTk9ERTENCisgICBhbmQgTk9ERTIgYXQgb2Zm c2V0IGJhc2UgKyBvZmZzZXQxIGFuZCBiYXNlICsgb2Zmc2V0MiByZXNwZWN0aXZlbHkuDQorDQor ICAgSWYgbWF0Y2ggaXMgc3VjY2Vzc2Z1bCB0aGVuIHRoZSBjb3JyZXNwb25kaW5nIGNvbXBsZXhf b3BlcmF0aW9uIGlzDQorICAgcmV0dXJuZWQgYW5kIHRoZSBhcmd1bWVudHMgdG8gdGhlIHR3byBt YXRjaGVkIG9wZXJhdGlvbnMgYXJlIHJldHVybmVkIGluIE9QUy4NCisNCisgICBJZiB1bnN1Y2Nl c3NmdWwgdGhlbiBDTVBMWF9OT05FIGlzIHJldHVybmVkIGFuZCBPUFMgaXMgdW50b3VjaGVkLg0K Kw0KKyAgIGUuZy4gdGhlIGZvbGxvd2luZyBnaW1wbGUgc3RhdGVtZW50cw0KKw0KKyAgIHN0bXQg MCBfMzkgPSBfMzcgKyBfMTI7DQorICAgc3RtdCAxIF82ID0gXzM4IC0gXzM2Ow0KKw0KKyAgIHdp bGwgcmV0dXJuIFBMVVNfTUlOVVMgYWxvbmcgd2l0aCBPUFMgY29udGFpbmluZyB7XzM3LCBfMTIs IF8zOCwgXzM2fS4NCisqLw0KKw0KK3N0YXRpYyBjb21wbGV4X29wZXJhdGlvbl90DQordmVjdF9k ZXRlY3RfcGFpcl9vcCAoc2xwX3RyZWUgbm9kZTEsIHNscF90cmVlIG5vZGUyLCBsYW5lX3Blcm11 dGF0aW9uX3QgJmxhbmVzLA0KKwkJICAgICBib29sIHR3b19vcGVyYW5kcyA9IHRydWUsIHZlYzxz bHBfdHJlZT4gKm9wcyA9IE5VTEwpDQorew0KKyAgY29tcGxleF9vcGVyYXRpb25fdCByZXN1bHQg PSBDTVBMWF9OT05FOw0KKyNkZWZpbmUgQ0hFQ0tfRk9SKHgsIHkpICAgICAgICAgICAgICAgICAg XA0KKyAgKHZlY3RfbWF0Y2hfZXhwcmVzc2lvbl9wIChub2RlMSwgeCkgICAgXA0KKyAgICYmIHZl Y3RfbWF0Y2hfZXhwcmVzc2lvbl9wIChub2RlMiwgeSkpDQorDQorICBpZiAoQ0hFQ0tfRk9SIChN SU5VU19FWFBSLCBQTFVTX0VYUFIpDQorICAgICAgJiYgKCF0d29fb3BlcmFuZHMgfHwgdmVjdF9j aGVja19sYW5lX3Blcm11dGUgKGxhbmVzLCAwLCAxKSkpDQorICAgIHJlc3VsdCA9IE1JTlVTX1BM VVM7DQorICBlbHNlIGlmIChDSEVDS19GT1IgKFBMVVNfRVhQUiwgTUlOVVNfRVhQUikNCisJICAg JiYgKCF0d29fb3BlcmFuZHMgfHwgdmVjdF9jaGVja19sYW5lX3Blcm11dGUgKGxhbmVzLCAwLCAx KSkpDQorICAgIHJlc3VsdCA9IFBMVVNfTUlOVVM7DQorICBlbHNlIGlmIChDSEVDS19GT1IgKFBM VVNfRVhQUiwgUExVU19FWFBSKSkNCisgICAgcmVzdWx0ID0gUExVU19QTFVTOw0KKyAgZWxzZSBp ZiAoQ0hFQ0tfRk9SIChNVUxUX0VYUFIsIE1VTFRfRVhQUikpDQorICAgIHJlc3VsdCA9IE1VTFRf TVVMVDsNCisgIGVsc2UgaWYgKENIRUNLX0ZPUiAoTkVHQVRFX0VYUFIsIE5FR0FURV9FWFBSKSkN CisgICAgcmVzdWx0ID0gTkVHX05FRzsNCisjdW5kZWYgQ0hFQ0tfRk9SDQorDQorICBpZiAocmVz dWx0ICE9IENNUExYX05PTkUgJiYgb3BzICE9IE5VTEwpDQorICAgIHsNCisgICAgICBvcHMtPmNy ZWF0ZSAoMik7DQorICAgICAgb3BzLT5xdWlja19wdXNoIChub2RlMSk7DQorICAgICAgb3BzLT5x dWlja19wdXNoIChub2RlMik7DQorICAgIH0NCisgIHJldHVybiByZXN1bHQ7DQorfQ0KKw0KKy8q IE92ZXJsb2FkIG9mIHZlY3RfZGV0ZWN0X3BhaXJfb3Agd2hlcmUgdGhlIHN0YXRlbWVudHMgYXJl IGFzc3VtZWQgdG8gYmUNCisgICBvbmUgYWZ0ZXIgdGhlIG90aGVyLiAgVGhpcyBpbnNwZWN0cyBu b2RlW2Jhc2VdIGFuZCBub2RlW2Jhc2UrMV0uICAqLw0KKw0KK3N0YXRpYyBjb21wbGV4X29wZXJh dGlvbl90DQordmVjdF9kZXRlY3RfcGFpcl9vcCAoc2xwX3RyZWUgbm9kZSwgYm9vbCB0d29fb3Bl cmFuZHMgPSB0cnVlLA0KKwkJICAgICB2ZWM8c2xwX3RyZWU+ICpvcHMgPSBOVUxMKQ0KK3sNCisg IGlmICghdHdvX29wZXJhbmRzICYmIFNMUF9UUkVFX0NPREUgKG5vZGUpID09IFZFQ19QRVJNX0VY UFIpDQorICAgIHJldHVybiBDTVBMWF9OT05FOw0KKw0KKyAgaWYgKFNMUF9UUkVFX0NISUxEUkVO IChub2RlKS5sZW5ndGggKCkgIT0gMikNCisgICAgcmV0dXJuIENNUExYX05PTkU7DQorDQorICB2 ZWM8c2xwX3RyZWU+IGNoaWxkcmVuID0gU0xQX1RSRUVfQ0hJTERSRU4gKG5vZGUpOw0KKyAgbGFu ZV9wZXJtdXRhdGlvbl90ICZsYW5lcyA9IFNMUF9UUkVFX0xBTkVfUEVSTVVUQVRJT04gKG5vZGUp Ow0KKw0KKyAgcmV0dXJuIHZlY3RfZGV0ZWN0X3BhaXJfb3AgKGNoaWxkcmVuWzBdLCBjaGlsZHJl blsxXSwgbGFuZXMsIHR3b19vcGVyYW5kcywNCisJCQkgICAgICBvcHMpOw0KK30NCisNCisvKiBU aGlzIGZ1bmN0aW9uIG1hcmtzIGV2ZXJ5IHN0YXRlbWVudCB0aGF0IGlzIGJlaW5nIHJlcGxhY2Vk IGR1cmluZyB0aGUNCisgICB0aGUgcGF0dGVybiBtYXRjaGluZyBhcyBQVVJFLiAgTm9ybWFsbHkg d2hlbiByZXBsYWNpbmcgYSBzdGF0ZW1lbnQgZHVlDQorICAgdG8gYSBwYXR0ZXJuIHdlIGFkZCB0 aGUgc3RhdGVtZW50IHRvIHRoZSBTVE1UX1ZJTkZPX1BBVFRFUk5fREVGX1NFUSBvZg0KKyAgIHRo ZSBwYXR0ZXJuIHRoYXQgaXMgcmVwbGFjaW5nIHRoZW0uICBJbiB0aGlzIGNhc2UgaG93ZXZlciB0 aGlzIHdvbid0DQorICAgd29yayBhcyB3aGVuIGRvaW5nIHRoZSByZXBsYWNlbWVudCB3ZSBhcmUg Y2hhbmdpbmcgdGhlIG5vZGVzIHRoYXQgYXJlDQorICAgdXNlZCBieSB0aGUgc3RhdGVtZW50cy4g IFRoaXMgbWVhbnMgdGhhdCB3aGVuIHZlY3Rvcml6ZWQgdGhlIFNTQSBjaGFpbg0KKyAgIGlzIGRp ZmZlcmVudCB0aGFuIGluIHRoZSBCQi4NCisNCisgICBEZWNsYXJpbmcgdGhlIHN0YXRlbWVudHMg YXMgcGFydCBvZiB0aGUgc2VxdWVuY2Ugd2lsbCB0aGVuIGNhdXNlIFNTQQ0KKyAgIHZlcmlmaWNh dGlvbiB0byBmYWlsIGFzIHdlIG1heSByZWZlciB0byBzdGF0ZW1lbnRzIHRoYXQgd2VyZSBub3Qg aW4gdGhlDQorICAgb3JpZ2luYWwgVVNFLURFRiBjaGFpbiBvZiB0aGUgc3RhdGVtZW50IHdlIGFy ZSByZXBsYWNpbmcuDQorDQorICAgVGhlIGRvd25zaWRlIG9mIHRoaXMgYXBwcm9hY2ggaXMgdGhh dCB0aGUgc3RhdGVtZW50cyB3aWxsIHN0aWxsIGJlDQorICAgc2VlbiBhcyByZWxldmFudCBhbmQg c28gd2Ugd2lsbCBzdGlsbCBnZW5lcmF0ZSBjb2RlIGZvciB0aGVtIGFuZCB0aGV5DQorICAgd2ls bCBiZSBpbiB0aGUgb3V0cHV0LCB1bmNvbm5lY3RlZCB1bnRpbCBEU0UuICBXZSBjb3VsZCBtYXJr IHRoZW0gYXMNCisgICBpcnJlbGV2YW50LCBidXQgdGhhdCBpcyBvbmx5IHNhZmUgaWYgdGhlcmUg YXJlIG5vIG1vcmUgdXNlcyBvZiB0aGUgbm9kZQ0KKyAgIGluIHRoZSBTTFAgZ3JhcGggKFNvIHBl cmhhcHMgdGhpcyBzaG91bGQgYmUgZG9uZSBpbiBmcmVlX3NscF90cmVlDQorICAgaW5zdGVhZCBv ZiBoZXJlLiAgKi8NCisNCitzdGF0aWMgdm9pZA0KK3ZlY3RfbWFya19zdG10c19hc19pbl9wYXR0 ZXJuIChoYXNoX3NldDxzbHBfdHJlZT4gKmNhY2hlLCBzbHBfdHJlZSBub2RlKQ0KK3sNCisgIGlm IChjYWNoZS0+Y29udGFpbnMgKG5vZGUpKQ0KKyAgICByZXR1cm47DQorDQorICB1bnNpZ25lZCBp Ow0KKyAgc3RtdF92ZWNfaW5mbyBzdG10X2luZm87DQorICBzbHBfdHJlZSBjaGlsZDsNCisNCisg IGNhY2hlLT5hZGQgKG5vZGUpOw0KKw0KKyAgRk9SX0VBQ0hfVkVDX0VMVCAoU0xQX1RSRUVfU0NB TEFSX1NUTVRTIChub2RlKSwgaSwgc3RtdF9pbmZvKQ0KKyAgICB7DQorICAgICAgaWYgKGdpbXBs ZV9hc3NpZ25fbG9hZF9wIChTVE1UX1ZJTkZPX1NUTVQgKHN0bXRfaW5mbykpKQ0KKwlyZXR1cm47 DQorDQorICAgICAgU1RNVF9TTFBfVFlQRSAoc3RtdF9pbmZvKSA9IHB1cmVfc2xwOw0KKyAgICB9 DQorDQorICBGT1JfRUFDSF9WRUNfRUxUIChTTFBfVFJFRV9DSElMRFJFTiAobm9kZSksIGksIGNo aWxkKQ0KKyAgICB2ZWN0X21hcmtfc3RtdHNfYXNfaW5fcGF0dGVybiAoY2FjaGUsIGNoaWxkKTsN Cit9DQorDQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKiBjb21wbGV4X3BhdHRlcm4g Y2xhc3MNCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKw0KKy8qIFRoZSBjb21wbGV4X3BhdHRl cm4gY2xhc3MgY29udGFpbnMgY29tbW9uIGNvZGUgZm9yIHBhdHRlcm4gbWF0Y2hlcnMgdGhhdCB3 b3JrDQorICAgb24gY29tcGxleCBudW1iZXJzLiAgVGhlc2UgcHJvdmlkZSBmdW5jdGlvbmFsaXR5 IHRvIGFsbG93IGRlLWNvbnN0cnVjdGlvbiBhbmQNCisgICB2YWxpZGF0aW9uIG9mIHNlcXVlbmNl cyBkZXBpY3RpbmcvdHJhbnNmb3JtaW5nIFJFQUwgYW5kIElNQUcgcGFpcnMuICAqLw0KKw0KK2Ns YXNzIGNvbXBsZXhfcGF0dGVybiA6IHB1YmxpYyB2ZWN0X3BhdHRlcm4NCit7DQorICBwcm90ZWN0 ZWQ6DQorICAgIGNvbXBsZXhfcGF0dGVybiAoc2xwX3RyZWUgKm5vZGUsIHZlY19pbmZvICp2aW5m bykNCisgICAgICA6IHZlY3RfcGF0dGVybiAobm9kZSwgdmluZm8pDQorICAgIHsgfQ0KKw0KKyAg ICAvKiBDcmVhdGUgYW5kIHN0b3JlIGEgbmV3IHZlY3RfcGF0dGVybl9tYXRjaCBvYmplY3Qgd2l0 aCB0aGUgY3VycmVudCBtYXRjaA0KKyAgICAgICB0aGF0IHdhcyBmb3VuZC4gICovDQorDQorICAg IHZvaWQgc2F2ZV9tYXRjaCAoKQ0KKyAgICB7DQorICAgICAgdGhpcy0+bV9tYXRjaA0KKwk9IG5l dyB2ZWN0X3NpbXBsZV9wYXR0ZXJuX21hdGNoICh0aGlzLT5tX2FyaXR5LCB0aGlzLT5tX2lmbiwN CisJCQkJCSB0aGlzLT5tX3ZpbmZvLA0KKwkJCQkJICZTTFBfVFJFRV9DSElMRFJFTiAoKnRoaXMt Pm1fbm9kZSksDQorCQkJCQkgdGhpcy0+bV9udW1fYXJncyk7DQorICAgIH0NCisNCisgIHB1Ymxp YzoNCisgICAgYm9vbCB2YWxpZGF0ZV9wICgpOw0KK307DQorDQorLyogVGhlIHBvc3QgdHJhbnNm b3JtIGFuZCB2YWxpZGF0aW9uIGZ1bmN0aW9uIGZvciB0aGUgY29tcGxleCBudW1iZXINCisgICBw YXR0ZXJucy4gIFRoaXMgd2lsbCByZS1hcnJhbmdlIHRoZSB0cmVlIGFuZCByZS1vcmdhbml6ZSB0 aGUgbm9kZXMgc3VjaA0KKyAgIHRoYXQgdGhleSBjYW4gYmUgdXNlZCBieSB0aGUgY29tcGxleCBu dW1iZXIgaW5zdHJ1Y3Rpb25zIHRoYXQgYXJlIHRvIGJlDQorICAgY3JlYXRlZC4gIEl0IGRvZXMg dGhpcyBieSBkb2luZyB0aGUgZm9sbG93aW5nIHN0ZXBzOg0KKw0KKyAgIEZvciBlYWNoIG5vZGUg dGhhdCBpc24ndCBhbHJlYWR5IGxpbmVhciBhIG5ldyBwZXJtdXRlIG5vZGUgaXMgY3JlYXRlZCB3 aGljaA0KKyAgIHdoZW4gYXBwbGllZCBtYWtlcyB0aGUgbm9kZSBsaW5lYXIuICBJZiBzdWNoIHBl cm11dGF0aW9uIGRvZXMgbm90IGV4aXN0IHRoZW4NCisgICB0aGUgZnVuY3Rpb24gcmV0dXJucyBG QUxTRS4gIEZvciBub2RlcyB0aGF0IGFyZSBhbHJlYWR5IGxpbmVhciBubyB3b3JrIGlzDQorICAg ZG9uZS4gICAqLw0KKw0KK2Jvb2wNCitjb21wbGV4X3BhdHRlcm46OnZhbGlkYXRlX3AgKCkNCit7 DQorICBpZiAoIXRoaXMtPm1fbWF0Y2gpDQorICAgIHJldHVybiBmYWxzZTsNCisNCisgIHNscF90 cmVlIG5vZGU7DQorICB1bnNpZ25lZCBpeDsNCisgIEZPUl9FQUNIX1ZFQ19FTFQgKHRoaXMtPm1f b3BzLCBpeCwgbm9kZSkNCisgICAgew0KKyAgICAgIGF1dG9fdmVjPHNscF90cmVlPiBub2RlczsN CisgICAgICBub2Rlcy5jcmVhdGUgKHRoaXMtPm1fbnVtX2FyZ3MpOw0KKyAgICAgIHNscF90cmVl IHRtcCA9IE5VTEw7DQorDQorICAgICAgdW5zaWduZWQgaTsNCisgICAgICBGT1JfRUFDSF9WRUNf RUxUIChTTFBfVFJFRV9DSElMRFJFTiAobm9kZSksIGksIHRtcCkNCisJew0KKwkgIHNscF90cmVl IHZub2RlID0gTlVMTDsNCisJICBpZiAodmVjdF9zbHBfbWFrZV9saW5lYXIgKG5vZGUsIHRtcCwg JnZub2RlKSkNCisJICAgIG5vZGVzLnF1aWNrX3B1c2ggKHZub2RlKTsNCisJICBlbHNlDQorCSAg ICB7DQorCSAgICAgIG5vZGVzLnJlbGVhc2UoKTsNCisJICAgICAgcmV0dXJuIGZhbHNlOw0KKwkg ICAgfQ0KKwl9DQorDQorICAgICAgc2xwX3RyZWUgbmV3X25vZGUNCisJPSB2ZWN0X2NyZWF0ZV9u ZXdfc2xwX25vZGUgKFNMUF9UUkVFX1NDQUxBUl9TVE1UUyAobm9kZSksDQorCQkJCSAgICBTTFBf VFJFRV9DSElMRFJFTiAobm9kZSkubGVuZ3RoICgpKTsNCisgICAgICBTTFBfVFJFRV9WRUNUWVBF IChuZXdfbm9kZSkgPSBTTFBfVFJFRV9WRUNUWVBFIChub2RlKTsNCisgICAgICBTTFBfVFJFRV9M QU5FX1BFUk1VVEFUSU9OIChuZXdfbm9kZSkgPSBTTFBfVFJFRV9MQU5FX1BFUk1VVEFUSU9OIChu b2RlKTsNCisgICAgICBTTFBfVFJFRV9DT0RFIChuZXdfbm9kZSkgPSBTTFBfVFJFRV9DT0RFIChu b2RlKTsNCisgICAgICBTTFBfVFJFRV9SRUZfQ09VTlQgKG5ld19ub2RlKSA9IFNMUF9UUkVFX1JF Rl9DT1VOVCAobm9kZSk7DQorICAgICAgU0xQX1RSRUVfUkVQUkVTRU5UQVRJVkUgKG5ld19ub2Rl KSA9IFNMUF9UUkVFX1JFUFJFU0VOVEFUSVZFIChub2RlKTsNCisgICAgICBTTFBfVFJFRV9DSElM RFJFTiAobmV3X25vZGUpLnNhZmVfc3BsaWNlIChub2Rlcyk7DQorICAgICAgU0xQX1RSRUVfTEFO RVMgKG5ld19ub2RlKSA9IFNMUF9UUkVFX0xBTkVTIChub2RlKTsNCisNCisgICAgICBTTFBfVFJF RV9DSElMRFJFTiAoKnRoaXMtPm1fbm9kZSlbaXhdID0gbmV3X25vZGU7DQorICAgIH0NCisNCisg IHJldHVybiB0cnVlOw0KK30NCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAqIGNvbXBs ZXhfb3BlcmF0aW9uc19wYXR0ZXJuIGNsYXNzDQorICoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisN CisvKiBUaGlzIGZ1bmN0aW9uIGNvbWJpbmVzIGFsbCB0aGUgZXhpc3RpbmcgcGF0dGVybiBtYXRj aGVycyBhYm92ZSBpbnRvIG9uZSBjbGFzcw0KKyAgIHRoYXQgc2hhcmVzIHRoZSBmdW5jdGlvbmFs aXR5IGJldHdlZW4gdGhlbS4gICovDQorDQorY2xhc3MgY29tcGxleF9vcGVyYXRpb25zX3BhdHRl cm4gOiBwdWJsaWMgY29tcGxleF9wYXR0ZXJuDQorew0KKyAgcHJvdGVjdGVkOg0KKyAgICBjb21w bGV4X29wZXJhdGlvbnNfcGF0dGVybiAoc2xwX3RyZWUgKm5vZGUsIHZlY19pbmZvICp2aW5mbykN CisgICAgICA6IGNvbXBsZXhfcGF0dGVybiAobm9kZSwgdmluZm8pDQorICAgIHsgfQ0KKw0KKyAg dmVjdF9wYXR0ZXJuICptX3BhdHQgPSBOVUxMOw0KKw0KKyAgcHVibGljOg0KKyAgICB1c2luZyBj b21wbGV4X3BhdHRlcm46Om1hdGNoZXM7DQorICAgIGJvb2wgbWF0Y2hlcyAoKTsNCisgICAgY29u c3QgY2hhciogZ2V0X25hbWUgKCk7DQorICAgIGdjYWxsICpidWlsZCAoKTsNCisgICAgYm9vbCB2 YWxpZGF0ZV9wICgpOw0KKyAgICB1aW50OF90IGdldF9hcml0eSAoKTsNCisgICAgYm9vbCBpc19v cHRhYl9zdXBwb3J0ZWRfcCAodHJlZSwgb3B0aW1pemF0aW9uX3R5cGUpOw0KKyAgICBpbnRlcm5h bF9mbiBnZXRfaWZuICgpOw0KKw0KKyAgICB+Y29tcGxleF9vcGVyYXRpb25zX3BhdHRlcm4gKCkN CisgICAgew0KKyAgICAgIGlmICh0aGlzLT5tX3BhdHQpDQorCWRlbGV0ZSB0aGlzLT5tX3BhdHQ7 DQorICAgICAgdGhpcy0+bV9wYXR0ID0gTlVMTDsNCisgICAgfQ0KKw0KKyAgICBzdGF0aWMgdmVj dF9wYXR0ZXJuKiBjcmVhdGUgKHNscF90cmVlICpub2RlLCB2ZWNfaW5mbyAqdmluZm8pDQorICAg IHsNCisgICAgICAgcmV0dXJuIG5ldyBjb21wbGV4X29wZXJhdGlvbnNfcGF0dGVybiAobm9kZSwg dmluZm8pOw0KKyAgICB9DQorfTsNCisNCitib29sDQorY29tcGxleF9vcGVyYXRpb25zX3BhdHRl cm46Om1hdGNoZXMgKCkNCit7DQorICBjb21wbGV4X29wZXJhdGlvbl90IG9wDQorICAgID0gdmVj dF9kZXRlY3RfcGFpcl9vcCAoKnRoaXMtPm1fbm9kZSwgdHJ1ZSwgJnRoaXMtPm1fb3BzKTsNCisN CisgIGlmIChvcCA9PSBDTVBMWF9OT05FKQ0KKyAgICByZXR1cm4gZmFsc2U7DQorDQorICB0aGlz LT5tX3BhdHQgPSBOVUxMOw0KKyAgcmV0dXJuIGZhbHNlOw0KK30NCisNCitjb25zdCBjaGFyKg0K K2NvbXBsZXhfb3BlcmF0aW9uc19wYXR0ZXJuOjpnZXRfbmFtZSAoKQ0KK3sNCisgIGlmICghdGhp cy0+bV9wYXR0KQ0KKyAgICByZXR1cm4gIkNvbXBsZXggT3BlcmF0aW9ucyI7DQorDQorICByZXR1 cm4gdGhpcy0+bV9wYXR0LT5nZXRfbmFtZSAoKTsNCit9DQorDQorZ2NhbGwgKg0KK2NvbXBsZXhf b3BlcmF0aW9uc19wYXR0ZXJuOjpidWlsZCAoKQ0KK3sNCisgIGlmICghdGhpcy0+bV9wYXR0KQ0K KyAgICByZXR1cm4gTlVMTDsNCisNCisgIHJldHVybiB0aGlzLT5tX3BhdHQtPmJ1aWxkICgpOw0K K30NCisNCitib29sDQorY29tcGxleF9vcGVyYXRpb25zX3BhdHRlcm46OnZhbGlkYXRlX3AgKCkN Cit7DQorICBpZiAoIXRoaXMtPm1fcGF0dCkNCisgICAgcmV0dXJuIGZhbHNlOw0KKw0KKyAgcmV0 dXJuIHRoaXMtPm1fcGF0dC0+dmFsaWRhdGVfcCAoKTsNCit9DQorDQordWludDhfdA0KK2NvbXBs ZXhfb3BlcmF0aW9uc19wYXR0ZXJuOjpnZXRfYXJpdHkgKCkNCit7DQorICBpZiAoIXRoaXMtPm1f cGF0dCkNCisgICAgcmV0dXJuIDA7DQorDQorICByZXR1cm4gdGhpcy0+bV9wYXR0LT5nZXRfYXJp dHkgKCk7DQorfQ0KKw0KK2Jvb2wNCitjb21wbGV4X29wZXJhdGlvbnNfcGF0dGVybjo6aXNfb3B0 YWJfc3VwcG9ydGVkX3AgKHRyZWUgdmVjdHlwZSwNCisJCQkJCQkgIG9wdGltaXphdGlvbl90eXBl IG9wdF90eXBlKQ0KK3sNCisgIGlmICghdmVjdHlwZSB8fCAhdGhpcy0+bV9wYXR0KQ0KKyAgICBy ZXR1cm4gZmFsc2U7DQorDQorICByZXR1cm4gdGhpcy0+bV9wYXR0LT5pc19vcHRhYl9zdXBwb3J0 ZWRfcCAodmVjdHlwZSwgb3B0X3R5cGUpOw0KK30NCisNCitpbnRlcm5hbF9mbg0KK2NvbXBsZXhf b3BlcmF0aW9uc19wYXR0ZXJuOjpnZXRfaWZuICgpDQorew0KKyAgaWYgKCF0aGlzLT5tX3BhdHQp DQorICAgIHJldHVybiBJRk5fTEFTVDsNCisNCisgIHJldHVybiB0aGlzLT5tX3BhdHQtPmdldF9p Zm4gKCk7DQorfQ0KKw0KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQogICogUGF0dGVybiBtYXRj aGluZyBkZWZpbml0aW9ucw0KICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQpAQCAtMjg3LDYgKzY1 MCw3IEBAIHZlY3RfcGF0dGVybl9kZWNsX3Qgc2xwX3BhdHRlcm5zW10NCiAgICAgIG9yZGVyIHBh dHRlcm5zIGZyb20gdGhlIGxhcmdlc3QgdG8gdGhlIHNtYWxsZXN0LiAgRXNwZWNpYWxseSBpZiB0 aGV5DQogICAgICBvdmVybGFwIGluIHdoYXQgdGhleSBjYW4gZGV0ZWN0LiAgKi8NCiANCisgIFNM UF9QQVRURVJOIChjb21wbGV4X29wZXJhdGlvbnNfcGF0dGVybiksDQogfTsNCiAjdW5kZWYgU0xQ X1BBVFRFUk4NCiANCg0K --_002_VI1PR08MB5325EF6771B91721B5FCC9A4FF110VI1PR08MB5325eurp_--