From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-eopbgr60054.outbound.protection.outlook.com [40.107.6.54]) by sourceware.org (Postfix) with ESMTPS id 3416C385803E for ; Mon, 13 Jun 2022 14:37:39 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 3416C385803E ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=MwU6NK/U3q/s2Z0tvHtqTG7wUHw2fjZt7h+IU/QpJLXBhfjNkk9W37Ho5nTE1STCWZJ4iJOunI5+XSlmfZKb2swyYYNsagvOVXR/cGa2jgF4nWcE5QDnh3CKqMQZU6MNWEypJbxL5wMwKI91QYLiyFWTaDqa4UlBQ4OR7o3d9vXyG28dIWHsOc4YNIh68pEJ6CaW6Jrkv6RYeYGSJWJ3V/OCyYvJNi3Ha97vpOk1R1kagGJuFNxmOW7HYDLcoyTi04oXpBy5cyXYxrP8QZczwgpLMwIjzi34IzLUs5z1TUFjfgoOVNwQoHXP9hhXwVdbiuyT5LhqK+jcTyHZr0uDQw== ARC-Message-Signature: i=2; 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=2qXw8E1FOEriQJSo/7Y7tqqIIAUhvgW3MksAXXODZHQ=; b=RzD+5V9G4qlSHI3dqJMSECadJCc9X3EkEJb1bqErJnpy+DkmsBTxB/5Ftwy2zzfYFUIR8nQs0UFnj8vx9td8Aig0vUrZ66RCXQ2KiGQCqFhh4inIvPxtXKiwmpURh/ausH+0OK1aBvdhcl2Emwrqrr9RmIdZMAOLcE8dIcqqd2+Tr9U3oCPf3g1AZRcJfMY5rCRRXOG9MUc4GvXe0PRO4cgcq6mS4tQS8DqFn2AVJ5ntGMA1LBMTbbluNRZXbAR7LG0/kI27DUVeq+oca4Bv1sVdfhPliXK+ETgsB88+HAe/m0afMpTbA/05AOYVVUjjE41swVOnQWHz5gOxlvHsHg== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com]) Received: from AM6P191CA0016.EURP191.PROD.OUTLOOK.COM (2603:10a6:209:8b::29) by AM6PR08MB3640.eurprd08.prod.outlook.com (2603:10a6:20b:4c::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5332.12; Mon, 13 Jun 2022 14:37:36 +0000 Received: from VE1EUR03FT059.eop-EUR03.prod.protection.outlook.com (2603:10a6:209:8b:cafe::10) by AM6P191CA0016.outlook.office365.com (2603:10a6:209:8b::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5332.12 via Frontend Transport; Mon, 13 Jun 2022 14:37:35 +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 VE1EUR03FT059.mail.protection.outlook.com (10.152.19.60) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5332.12 via Frontend Transport; Mon, 13 Jun 2022 14:37:35 +0000 Received: ("Tessian outbound e40990bc24d7:v120"); Mon, 13 Jun 2022 14:37:27 +0000 X-CR-MTA-TID: 64aa7808 Received: from ec50255dfadb.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 707042E4-5EBF-4240-BAF4-B7892788FD05.1; Mon, 13 Jun 2022 14:37:18 +0000 Received: from EUR02-AM5-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id ec50255dfadb.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Mon, 13 Jun 2022 14:37:18 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SyEeDX9PdY6cysdGqAOVWCiVp/Kew5DfLFuu66i08QnALxoql9i5pI2ndBZbbTh8SKqbTReEcUNrA0SQzNT2fn8ZyFfCPKeU+/W5u1h1P4q4g2ObKIzpPPVa97RQN17g81Cs0zd0eTcU24I7v/S5UdBaYvUAsYxq0vNP3IkSn46qvL9NCw9mxn1q7881IyuOiSBksFQ4AwxyqcDLm4FiaDH1GTaUdsBEdOiwUn+6ECSJ+9/seMT/PJ6HzLF1NTQiWUXDM65pNdHl+NibRg81AOwjGa9450lpMM1d4EMzV4uxmhEZEqavw+cNubgdfc41H/UEoHZvUFr/d81wPMxx2Q== 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=2qXw8E1FOEriQJSo/7Y7tqqIIAUhvgW3MksAXXODZHQ=; b=E6PO0U2ZpfoJ6hfBzAaYcnovmeif4B1E3GVYxVRyRT3Gdm/gcOUJ83LNBGzd/586aXosYz94UG8APsJ/p3WkGKAuqyAHNA0eEmVJZpF+WfdJ9CwWcL5Y/F43AIhj0FLxqTvRkqdTG47k95J1m7Pc5oVGd8QJv2N7m7cPY8whJFHt+nerk4ychjlz/vcVG8pXAbhZUlWwHHjG/R8Q5jdqEFrmhKDArrVB+FW7FGFDMTzp0+ggXk3d978oI504ldQ/P05iFmBLdHC1/Ju/G5bG+8lX+D64AQM15itnOWEpihb4zsN8yhyE/V+/8o5YyIo16w02h3WHpHdBNcLEvic5XA== 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 DB6PR0802MB2389.eurprd08.prod.outlook.com (2603:10a6:4:9e::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5332.17; Mon, 13 Jun 2022 14:37:15 +0000 Received: from VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::54e5:594b:e5fd:a9b4]) by VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::54e5:594b:e5fd:a9b4%8]) with mapi id 15.20.5332.020; Mon, 13 Jun 2022 14:37:14 +0000 From: Tamar Christina To: Richard Biener CC: "gcc-patches@gcc.gnu.org" , nd , Richard Sandiford Subject: RE: [PATCH 1/2]middle-end Support optimized division by pow2 bitmask Thread-Topic: [PATCH 1/2]middle-end Support optimized division by pow2 bitmask Thread-Index: AQHYe7rkG8mCfxiDnUegM0t31rGaD61NFy0AgAAEOACAAAPNUIAAIDAAgAAlHcA= Date: Mon, 13 Jun 2022 14:37:14 +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: 6B6DE58EC3ADED4AB7B5A015A6A96C75.0 x-checkrecipientchecked: true Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-MS-Office365-Filtering-Correlation-Id: ecd6f0cc-8f06-42ff-f94f-08da4d4a41e6 x-ms-traffictypediagnostic: DB6PR0802MB2389:EE_|VE1EUR03FT059:EE_|AM6PR08MB3640:EE_ X-Microsoft-Antispam-PRVS: 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: uzOdDTj61GwC+2o3ucmkpHPZEfYGDamNHIbswGkKYB0htwJT+n1AvAIws2Yz1za+T6by3jjJtQZ/WShyujp2A3OXN2Bl8JGuTPtc2pfjoPDva2OeIX5Zq3p68VfPOE4dO/Rqx4WUYOLWstlgQfzSilxQVrXIuHD3a1kjn0lHRXapS4k1gwYDYP9NH8AnzByUza10x7hfvmtEIB861MYmRXKSHR8a/wyVIA3TWdM5i+wwnfMlg4UlqrP1sTGIGcaraWebhxcwmjkFcQVL0liVdLCZG9mXZgzfU33px8seVUsW3efb8k4Q67EeAtCqGJuebep7mFQR5MhQHRvCS+x/DLJGzXQ37Z+s+JmWlFSemyCu+xnigIegpYWWzNmcBS9oKQ8EYMCRLK1q/XWs3gc5agLKm9CIsVUIKy2+TrdJFXxBjiUlR4Jy/dyRlxor5sbgS2bs2qEmwhQvxTEy80er1lWGOuk54Kn8JwcbGxlpfTusjsE/j/kmXftVR34nZqc1PkpXtMVVYQFpKP72kihzU6dFyThFUqWMURqV/GojhTPr6DcedkxrpFLbsP0/uY3FPxV5/pDPSXBW5BzkWO8so5YXZmSZw5gIQDoeerNN/jg6vZMvFiPRuHzguM9msfXg9G6CtGALuIMY0vsDYTdkl8ssM8yAu+oAhP/MlUcyG6rj+KWkip0Tj1RRkcAKUEUzIQ7BMcYFk4dkXr4s4Fe6S7X6n8T45rmpTEXMQnuntPlhaZNoalfF0+3DtPFVKjOTT/PvBlv6MqSoqRrtibBTU9BSmn/N0TYvxXA8nIQWJmG2M8avVFjoWcN4gyqLIf6S5caUJAPSvOACmVP0cbGBWQ== 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:(13230016)(4636009)(366004)(4326008)(64756008)(8676002)(86362001)(66446008)(55016003)(38070700005)(5660300002)(8936002)(52536014)(508600001)(54906003)(30864003)(33656002)(76116006)(316002)(66476007)(66556008)(2906002)(66946007)(84970400001)(38100700002)(26005)(71200400001)(9686003)(6916009)(186003)(6506007)(66574015)(53546011)(7696005)(122000001)(83380400001)(579004)(559001); DIR:OUT; SFP:1101; Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0802MB2389 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: VE1EUR03FT059.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 75bbc083-bef7-45e0-120b-08da4d4a3535 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: YPkZ3lgySOXKx7egC6N7rYd//Gi5Dbo/Euutsf+XR4kekXMTnts6tglOdx/XC5useDpPutrqOAcSffMnsAEhxQziM0dI1xhaKoTK873UbNGKkMqnsgXXjR4s1PGjI9+zbNSuNzG57SzLX1ujX+7YqKicKWFTleYDSMTo7QFfPCUzffuhCWXD+PHMXGObjHsqqDmgwB3qn7wnR7Gdxc2R7qEfi5UzAhFT5eNffvO2jgf4dVs1GIJjwmp37IRmZPWSi0NX+tFcnSDr4HgStLZ6kdCwIH19Gg5yALrLEgIytvo0hIs2nMZINJM5MJ3IngLRN2bQCrhTuVe6NVqxCHyGaZv6/zQLckepDRAZBryDxFVfIFUohewQtD8Mb4kMfYzK4+9Ft3lGxonTZhb4UQxl0UKR2K4NehCH/c+NDToSTv31uirBmbsH3rjCLBwe501PFl7oj+he4y2n8C0t6C4MFYIN4wBmLPNTQ/QBRB/7knuRwnXy0dbvRFM5nCtfuQ/JH7ndEv2Wa5Z+3DXs8LfMUVdD+wGTtXUqw+j9wpjRDkIqDdAEZSFQmFFO+gUzYGWpzvxxUi0Eqt7ppvB3BA+fvv+wzIap4d2NjhR4gf5ThYlX9fcHHmn0QmQfHn0mwmwascM4MfIcjv0FAzfdWPUzugB3Ruxf64wHztqz6XMJHnSgYr//7oYmVFdxiikS8wRbrMgoluEGX7Ey6gwVfNiZ8PY1iBGC+R+5IsZAsLxapmp7AnxOkc1SfjmXfgmC7MOrZ87u19kwFV98HuKiF11ubeGZzoSRH27hHu3l3gFKawI= 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:(13230016)(4636009)(40470700004)(36840700001)(46966006)(47076005)(508600001)(70586007)(52536014)(55016003)(70206006)(4326008)(40460700003)(81166007)(2906002)(82310400005)(9686003)(5660300002)(6862004)(33656002)(66574015)(26005)(7696005)(316002)(336012)(8676002)(83380400001)(53546011)(356005)(186003)(86362001)(54906003)(84970400001)(8936002)(36860700001)(30864003)(6506007); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jun 2022 14:37:35.3202 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ecd6f0cc-8f06-42ff-f94f-08da4d4a41e6 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: VE1EUR03FT059.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3640 X-Spam-Status: No, score=-12.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FORGED_SPF_HELO, GIT_PATCH_0, KAM_DMARC_NONE, KAM_LOTSOFHASH, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE, 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 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: Mon, 13 Jun 2022 14:37:44 -0000 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBSaWNoYXJkIEJpZW5lciA8cmd1 ZW50aGVyQHN1c2UuZGU+DQo+IFNlbnQ6IE1vbmRheSwgSnVuZSAxMywgMjAyMiAxMjo0OCBQTQ0K PiBUbzogVGFtYXIgQ2hyaXN0aW5hIDxUYW1hci5DaHJpc3RpbmFAYXJtLmNvbT4NCj4gQ2M6IGdj Yy1wYXRjaGVzQGdjYy5nbnUub3JnOyBuZCA8bmRAYXJtLmNvbT47IFJpY2hhcmQgU2FuZGlmb3Jk DQo+IDxSaWNoYXJkLlNhbmRpZm9yZEBhcm0uY29tPg0KPiBTdWJqZWN0OiBSRTogW1BBVENIIDEv Ml1taWRkbGUtZW5kIFN1cHBvcnQgb3B0aW1pemVkIGRpdmlzaW9uIGJ5IHBvdzINCj4gYml0bWFz aw0KPiANCj4gT24gTW9uLCAxMyBKdW4gMjAyMiwgVGFtYXIgQ2hyaXN0aW5hIHdyb3RlOg0KPiAN Cj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBSaWNoYXJkIEJp ZW5lciA8cmd1ZW50aGVyQHN1c2UuZGU+DQo+ID4gPiBTZW50OiBNb25kYXksIEp1bmUgMTMsIDIw MjIgMTA6MzkgQU0NCj4gPiA+IFRvOiBUYW1hciBDaHJpc3RpbmEgPFRhbWFyLkNocmlzdGluYUBh cm0uY29tPg0KPiA+ID4gQ2M6IGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnOyBuZCA8bmRAYXJtLmNv bT47IFJpY2hhcmQgU2FuZGlmb3JkDQo+ID4gPiA8UmljaGFyZC5TYW5kaWZvcmRAYXJtLmNvbT4N Cj4gPiA+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggMS8yXW1pZGRsZS1lbmQgU3VwcG9ydCBvcHRpbWl6 ZWQgZGl2aXNpb24gYnkNCj4gPiA+IHBvdzIgYml0bWFzaw0KPiA+ID4NCj4gPiA+IE9uIE1vbiwg MTMgSnVuIDIwMjIsIFJpY2hhcmQgQmllbmVyIHdyb3RlOg0KPiA+ID4NCj4gPiA+ID4gT24gVGh1 LCA5IEp1biAyMDIyLCBUYW1hciBDaHJpc3RpbmEgd3JvdGU6DQo+ID4gPiA+DQo+ID4gPiA+ID4g SGkgQWxsLA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gSW4gcGxlbnR5IG9mIGltYWdlIGFuZCB2aWRl byBwcm9jZXNzaW5nIGNvZGUgaXQncyBjb21tb24gdG8NCj4gPiA+ID4gPiBtb2RpZnkgcGl4ZWwg dmFsdWVzIGJ5IGEgd2lkZW5pbmcgb3BlcmF0aW9uIGFuZCB0aGVuIHNjYWxlIHRoZW0NCj4gPiA+ ID4gPiBiYWNrIGludG8gcmFuZ2UNCj4gPiA+IGJ5IGRpdmlkaW5nIGJ5IDI1NS4NCj4gPiA+ID4g Pg0KPiA+ID4gPiA+IFRoaXMgcGF0Y2ggYWRkcyBhbiBvcHRhYiB0byBhbGxvdyB1cyB0byBlbWl0 IGFuIG9wdGltaXplZA0KPiA+ID4gPiA+IHNlcXVlbmNlIHdoZW4gZG9pbmcgYW4gdW5zaWduZWQg ZGl2aXNpb24gdGhhdCBpcyBlcXVpdmFsZW50IHRvOg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gICAg eCA9IHkgLyAoMiBeIChiaXRzaXplICh5KS8yKS0xDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBCb290 c3RyYXBwZWQgUmVndGVzdGVkIG9uIGFhcmNoNjQtbm9uZS1saW51eC1nbnUsDQo+ID4gPiA+ID4g eDg2XzY0LXBjLWxpbnV4LWdudSBhbmQgbm8gaXNzdWVzLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4g T2sgZm9yIG1hc3Rlcj8NCj4gPiA+ID4NCj4gPiA+ID4gTG9va2luZyBhdCAyLzIgaXQgc2VlbXMg dGhhdCB0aGlzIGlzIHRoZSB3cm9uZyB3YXkgdG8gYXR0YWNrIHRoZQ0KPiA+ID4gPiBwcm9ibGVt LiAgVGhlIElTQSBkb2Vzbid0IGhhdmUgc3VjaCBpbnN0cnVjdGlvbiBzbyBhZGRpbmcgYW4gb3B0 YWINCj4gPiA+ID4gbG9va3MgcHJlbWF0dXJlLiAgSSBzdXBwb3NlIHRoYXQgdGhlcmUncyBubyB1 bnNpZ25lZCB2ZWN0b3INCj4gPiA+ID4gaW50ZWdlciBkaXZpc2lvbiBhbmQgdGh1cyB3ZSBvcGVu LWNvZGUgdGhhdCBpbiBhIGRpZmZlcmVudCB3YXk/DQo+ID4gPiA+IElzbid0IHRoZSBjb3JyZWN0 IHRoaW5nIHRoZW4gdG8gZml4dXAgdGhhdCBvcGVuLWNvZGluZyBpZiBpdCBpcyBtb3JlDQo+IGVm ZmljaWVudD8NCj4gPiA+DQo+ID4NCj4gPiBUaGUgcHJvYmxlbSBpcyB0aGF0IGV2ZW4gaWYgeW91 IGZpeHVwIHRoZSBvcGVuLWNvZGluZyBpdCB3b3VsZCBuZWVkIHRvDQo+ID4gYmUgc29tZXRoaW5n IHRhcmdldCBzcGVjaWZpYz8gVGhlIHNlcXVlbmNlIG9mIGluc3RydWN0aW9ucyB3ZSBnZW5lcmF0 ZQ0KPiA+IGRvbid0IGhhdmUgYSBHSU1QTEUgcmVwcmVzZW50YXRpb24uICBTbyB3aGF0ZXZlciBp cyBnZW5lcmF0ZWQgSSdkIGhhdmUNCj4gPiB0byBmaXh1cCBpbiBSVEwgdGhlbi4NCj4gDQo+IFdo YXQncyB0aGUgb3BlcmF0aW9uIHRoYXQgZG9lc24ndCBoYXZlIGEgR0lNUExFIHJlcHJlc2VudGF0 aW9uPw0KDQpGb3IgTkVPTiB1c2UgdHdvIG9wZXJhdGlvbnM6DQoxLiBBZGQgSGlnaCBuYXJyb3dp bmcgbG93cGFydCwgZXNzZW50aWFsbHkgZG9pbmcgKGEgK3cgYikgPj4ubiBiaXRzaXplKGEpLzIN CiAgICBXaGVyZSB0aGUgKyB3aWRlbnMgYW5kIHRoZSA+PiBuYXJyb3dzLiAgU28geW91IGdpdmUg aXQgdHdvIHNob3J0cywgZ2V0IGEgYnl0ZQ0KMi4gQWRkIHdpZGVuaW5nIGFkZCBvZiBsb3dwYXJ0 IHNvIGJhc2ljYWxseSBsb3dwYXJ0IChhICt3IGIpDQoNCkZvciBTVkUyIHdlIHVzZSBhIGRpZmZl cmVudCBzZXF1ZW5jZSwgd2UgdXNlIHR3byBiYWNrLXRvLWJhY2sgc2VxdWVuY2VzIG9mOg0KMS4g QWRkIG5hcnJvdyBoaWdoIHBhcnQgKGJvdHRvbSkuICBJbiBTVkUgdGhlIFRvcCBhbmQgQm90dG9t IGluc3RydWN0aW9ucyBzZWxlY3QNCiAgIEV2ZW4gYW5kIG9kZCBlbGVtZW50cyBvZiB0aGUgdmVj dG9yIHJhdGhlciB0aGFuICJ0b3AgaGFsZiIgYW5kICJib3R0b20gaGFsZiIuDQoNCiAgIFNvIHRo aXMgaW5zdHJ1Y3Rpb24gZG9lcyA6IEFkZCBlYWNoIHZlY3RvciBlbGVtZW50IG9mIHRoZSBmaXJz dCBzb3VyY2UgdmVjdG9yIHRvIHRoZQ0KICAgY29ycmVzcG9uZGluZyB2ZWN0b3IgZWxlbWVudCBv ZiB0aGUgc2Vjb25kIHNvdXJjZSB2ZWN0b3IsIGFuZCBwbGFjZSB0aGUgbW9zdA0KICAgIHNpZ25p ZmljYW50IGhhbGYgb2YgdGhlIHJlc3VsdCBpbiB0aGUgZXZlbi1udW1iZXJlZCBoYWxmLXdpZHRo IGRlc3RpbmF0aW9uIGVsZW1lbnRzLA0KICAgIHdoaWxlIHNldHRpbmcgdGhlIG9kZC1udW1iZXJl ZCBlbGVtZW50cyB0byB6ZXJvLg0KDQpTbyB0aGVyZSdzIGFuIGV4cGxpY2l0IHBlcm11dGUgaW4g dGhlcmUuIFRoZSBpbnN0cnVjdGlvbnMgYXJlIHN1ZmZpY2llbnRseSBkaWZmZXJlbnQgdGhhdCB0 aGVyZQ0Kd291bGRuJ3QgYmUgYSBzaW5nbGUgR0lNUExFIHJlcHJlc2VudGF0aW9uLg0KDQo+IA0K PiBJIHRoaW5rIGZvciBjb3N0aW5nIHlvdSBjb3VsZCByZXNvcnQgdG8gdGhlICpfY29zdCBmdW5j dGlvbnMgYXMgdXNlZCBieQ0KPiBzeW50aF9tdWx0IGFuZCBmcmllbmRzLg0KPiANCj4gPiBUaGUg cHJvYmxlbSB3aXRoIHRoaXMgaXMgdGhhdCBpdCBzZWVtZWQgZnJhZ2lsZS4gV2UgZ2VuZXJhdGUg ZnJvbSB0aGUNCj4gPiBWZWN0b3JpemVyOg0KPiA+DQo+ID4gICB2ZWN0X18zLjhfMzUgPSBNRU0g PHZlY3RvcigxNikgdW5zaWduZWQgY2hhcj4gWyh1aW50OF90ICopXzIxXTsNCj4gPiAgIHZlY3Rf cGF0dF8yOC45XzM3ID0gV0lERU5fTVVMVF9MT19FWFBSIDx2ZWN0X18zLjhfMzUsDQo+IHZlY3Rf Y3N0X18zNj47DQo+ID4gICB2ZWN0X3BhdHRfMjguOV8zOCA9IFdJREVOX01VTFRfSElfRVhQUiA8 dmVjdF9fMy44XzM1LA0KPiB2ZWN0X2NzdF9fMzY+Ow0KPiA+ICAgdmVjdF9wYXR0XzE5LjEwXzQw ID0gdmVjdF9wYXR0XzI4LjlfMzcgaCogeyAzMjg5NywgMzI4OTcsIDMyODk3LCAzMjg5NywNCj4g MzI4OTcsIDMyODk3LCAzMjg5NywgMzI4OTcgfTsNCj4gPiAgIHZlY3RfcGF0dF8xOS4xMF80MSA9 IHZlY3RfcGF0dF8yOC45XzM4IGgqIHsgMzI4OTcsIDMyODk3LCAzMjg5NywgMzI4OTcsDQo+IDMy ODk3LCAzMjg5NywgMzI4OTcsIDMyODk3IH07DQo+ID4gICB2ZWN0X3BhdHRfMjUuMTFfNDIgPSB2 ZWN0X3BhdHRfMTkuMTBfNDAgPj4gNzsNCj4gPiAgIHZlY3RfcGF0dF8yNS4xMV80MyA9IHZlY3Rf cGF0dF8xOS4xMF80MSA+PiA3Ow0KPiA+ICAgdmVjdF9wYXR0XzExLjEyXzQ0ID0gVkVDX1BBQ0tf VFJVTkNfRVhQUiA8dmVjdF9wYXR0XzI1LjExXzQyLA0KPiA+IHZlY3RfcGF0dF8yNS4xMV80Mz47 DQo+ID4NCj4gPiBhbmQgaWYgdGhlIG1hZ2ljIGNvbnN0YW50cyBjaGFuZ2UgdGhlbiB3ZSBtaXNz IHRoZSBvcHRpbWl6YXRpb24uIEkNCj4gPiBjb3VsZCByZXdyaXRlIHRoZSBvcGVuIGNvZGluZyB0 byB1c2Ugc2hpZnRzIGFsb25lLCBidXQgdGhhdCBtaWdodCBiZSBhDQo+IHJlZ3Jlc3Npb24gZm9y IHNvbWUgdWFyY2hlcyBJIHdvdWxkIGltYWdpbmUuDQo+IA0KPiBPSywgc28geW91IGRvIGhhdmUg YSBoaWdocGFydCBtdWx0aXBseS4gIEkgc3VwcG9zZSB0aGUgcGF0dGVybiBpcyB0b28gZGVlcCB0 bw0KPiBiZSByZWNvZ25pemVkIGJ5IGNvbWJpbmU/ICBXaGF0J3MgdGhlIFJUTCBnb29kIHZzLiBi YWQgYmVmb3JlIGNvbWJpbmUgb2YNCj4gb25lIG9mIHRoZSBleHByZXNzaW9ucz8NCg0KWWVhaCBj b21iaW5lIG9ubHkgdHJpZWQgMi0zIGluc3RydWN0aW9ucywgYnV0IHRvIHVzZSB0aGVzZSBzZXF1 ZW5jZXMgd2UgaGF2ZSB0bw0KbWF0Y2ggdGhlIGVudGlyZSBjaGFpbiBhcyB0aGUgaW5zdHJ1Y3Rp b25zIGRvIHRoZSBuYXJyb3dpbmcgdGhlbXNlbHZlcy4gIFNvIHRoZSBSVEwNCmZvciB0aGUgYmFk IGNhc2UgYmVmb3JlIGNvbWJpbmUgaXMNCg0KKGluc24gMzkgMzcgNDIgNCAoc2V0IChyZWc6VjRT SSAxMTkpDQogICAgICAgIChtdWx0OlY0U0kgKHplcm9fZXh0ZW5kOlY0U0kgKHZlY19zZWxlY3Q6 VjRISSAocmVnOlY4SEkgMTE2IFsgdmVjdF9wYXR0XzI4LjlELjM3NTQgXSkNCiAgICAgICAgICAg ICAgICAgICAgKHBhcmFsbGVsOlY4SEkgWw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIChj b25zdF9pbnQgNCBbMHg0XSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50 IDUgWzB4NV0pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCA2IFsweDZd KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgNyBbMHg3XSkNCiAgICAg ICAgICAgICAgICAgICAgICAgIF0pKSkNCiAgICAgICAgICAgICh6ZXJvX2V4dGVuZDpWNFNJICh2 ZWNfc2VsZWN0OlY0SEkgKHJlZzpWOEhJIDExOCkNCiAgICAgICAgICAgICAgICAgICAgKHBhcmFs bGVsOlY4SEkgWw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgNCBbMHg0 XSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDUgWzB4NV0pDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCA2IFsweDZdKQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChjb25zdF9pbnQgNyBbMHg3XSkNCiAgICAgICAgICAgICAgICAgICAg ICAgIF0pKSkpKSAiL2FwcC9leGFtcGxlLmMiOjY6MTQgMjExNCB7YWFyY2g2NF9zaW1kX3ZlY191 bXVsdF9oaV92OGhpfQ0KICAgICAoZXhwcl9saXN0OlJFR19ERUFEIChyZWc6VjhISSAxMTYgWyB2 ZWN0X3BhdHRfMjguOUQuMzc1NCBdKQ0KICAgICAgICAoZXhwcl9saXN0OlJFR19FUVVBTCAobXVs dDpWNFNJICh6ZXJvX2V4dGVuZDpWNFNJICh2ZWNfc2VsZWN0OlY0SEkgKHJlZzpWOEhJIDExNiBb IHZlY3RfcGF0dF8yOC45RC4zNzU0IF0pDQogICAgICAgICAgICAgICAgICAgICAgICAocGFyYWxs ZWw6VjhISSBbDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgNCBb MHg0XSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCA1IFsweDVd KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDYgWzB4Nl0pDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgNyBbMHg3XSkNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBdKSkpDQogICAgICAgICAgICAgICAgKGNvbnN0X3ZlY3Rv cjpWNFNJIFsNCiAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMzI4OTcgWzB4ODA4 MV0pIHJlcGVhdGVkIHg0DQogICAgICAgICAgICAgICAgICAgIF0pKQ0KICAgICAgICAgICAgKG5p bCkpKSkNCihpbnNuIDQyIDM5IDQzIDQgKHNldCAocmVnOlY4SEkgMTIxIFsgdmVjdF9wYXR0XzE5 LjEwRC4zNzU1IF0pDQogICAgICAgICh1bnNwZWM6VjhISSBbDQogICAgICAgICAgICAgICAgKHN1 YnJlZzpWOEhJIChyZWc6VjRTSSAxMTcpIDApDQogICAgICAgICAgICAgICAgKHN1YnJlZzpWOEhJ IChyZWc6VjRTSSAxMTkpIDApDQogICAgICAgICAgICBdIFVOU1BFQ19VWlAyKSkgIi9hcHAvZXhh bXBsZS5jIjo2OjE0IDQwOTYge2FhcmNoNjRfdXpwMnY4aGl9DQogICAgIChleHByX2xpc3Q6UkVH X0RFQUQgKHJlZzpWNFNJIDExOSkNCiAgICAgICAgKGV4cHJfbGlzdDpSRUdfREVBRCAocmVnOlY0 U0kgMTE3KQ0KICAgICAgICAgICAgKG5pbCkpKSkNCihpbnNuIDQzIDQyIDQ0IDQgKHNldCAocmVn OlY4SEkgMTI0IFsgdmVjdF9wYXR0XzI1LjExRC4zNzU2IF0pDQogICAgICAgIChsc2hpZnRydDpW OEhJIChyZWc6VjhISSAxMjEgWyB2ZWN0X3BhdHRfMTkuMTBELjM3NTUgXSkNCiAgICAgICAgICAg IChjb25zdF92ZWN0b3I6VjhISSBbDQogICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgNyBb MHg3XSkgcmVwZWF0ZWQgeDgNCiAgICAgICAgICAgICAgICBdKSkpICIvYXBwL2V4YW1wbGUuYyI6 NjoxNCAxODAzIHthYXJjaDY0X3NpbWRfbHNocnY4aGl9DQogICAgIChleHByX2xpc3Q6UkVHX0RF QUQgKHJlZzpWOEhJIDEyMSBbIHZlY3RfcGF0dF8xOS4xMEQuMzc1NSBdKQ0KICAgICAgICAobmls KSkpDQooaW5zbiA0NCA0MyA0NiA0IChzZXQgKHJlZzpWOEhJIDEyNSBbIHZlY3RfcGF0dF8yOC45 RC4zNzU0IF0pDQogICAgICAgIChtdWx0OlY4SEkgKHplcm9fZXh0ZW5kOlY4SEkgKHZlY19zZWxl Y3Q6VjhRSSAocmVnOlYxNlFJIDExNSBbIE1FTSA8dmVjdG9yKDE2KSB1bnNpZ25lZCBjaGFyRC4y MT4gWyh1aW50OF90RC4zNzA0ICopXzIxIGNsaXF1ZSAxIGJhc2UgMV0gXSkNCiAgICAgICAgICAg ICAgICAgICAgKHBhcmFsbGVsOlYxNlFJIFsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAo Y29uc3RfaW50IDggWzB4OF0pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2lu dCA5IFsweDldKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMTAgWzB4 YV0pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAxMSBbMHhiXSkNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDEyIFsweGNdKQ0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMTMgWzB4ZF0pDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGNvbnN0X2ludCAxNCBbMHhlXSkNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoY29uc3RfaW50IDE1IFsweGZdKQ0KICAgICAgICAgICAgICAgICAgICAgICAgXSkpKQ0K ICAgICAgICAgICAgKHplcm9fZXh0ZW5kOlY4SEkgKHZlY19zZWxlY3Q6VjhRSSAocmVnOlYxNlFJ IDEwMCBbIHZlY3RfY3N0X18zNiBdKQ0KICAgICAgICAgICAgICAgICAgICAocGFyYWxsZWw6VjE2 UUkgWw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgOCBbMHg4XSkNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDkgWzB4OV0pDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAxMCBbMHhhXSkNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoY29uc3RfaW50IDExIFsweGJdKQ0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChjb25zdF9pbnQgMTIgWzB4Y10pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNv bnN0X2ludCAxMyBbMHhkXSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50 IDE0IFsweGVdKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMTUgWzB4 Zl0pDQogICAgICAgICAgICAgICAgICAgICAgICBdKSkpKSkgIi9hcHAvZXhhbXBsZS5jIjo2OjE0 IDIxMTIge2FhcmNoNjRfc2ltZF92ZWNfdW11bHRfaGlfdjE2cWl9DQogICAgIChleHByX2xpc3Q6 UkVHX0RFQUQgKHJlZzpWMTZRSSAxMTUgWyBNRU0gPHZlY3RvcigxNikgdW5zaWduZWQgY2hhckQu MjE+IFsodWludDhfdEQuMzcwNCAqKV8yMSBjbGlxdWUgMSBiYXNlIDFdIF0pDQogICAgICAgIChu aWwpKSkNCihpbnNuIDQ2IDQ0IDQ4IDQgKHNldCAocmVnOlY0U0kgMTI2KQ0KICAgICAgICAobXVs dDpWNFNJICh6ZXJvX2V4dGVuZDpWNFNJIChzdWJyZWc6VjRISSAocmVnOlY4SEkgMTI1IFsgdmVj dF9wYXR0XzI4LjlELjM3NTQgXSkgMCkpDQogICAgICAgICAgICAoemVyb19leHRlbmQ6VjRTSSAo c3VicmVnOlY0SEkgKHJlZzpWOEhJIDExOCkgMCkpKSkgIi9hcHAvZXhhbXBsZS5jIjo2OjE0IDIx MDgge2FhcmNoNjRfaW50cmluc2ljX3ZlY191bXVsdF9sb192NGhpfQ0KICAgICAoZXhwcl9saXN0 OlJFR19FUVVBTCAobXVsdDpWNFNJICh6ZXJvX2V4dGVuZDpWNFNJIChzdWJyZWc6VjRISSAocmVn OlY4SEkgMTI1IFsgdmVjdF9wYXR0XzI4LjlELjM3NTQgXSkgMCkpDQogICAgICAgICAgICAoY29u c3RfdmVjdG9yOlY0U0kgWw0KICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDMyODk3IFsw eDgwODFdKSByZXBlYXRlZCB4NA0KICAgICAgICAgICAgICAgIF0pKQ0KICAgICAgICAobmlsKSkp DQooaW5zbiA0OCA0NiA1MSA0IChzZXQgKHJlZzpWNFNJIDEyOCkNCiAgICAgICAgKG11bHQ6VjRT SSAoemVyb19leHRlbmQ6VjRTSSAodmVjX3NlbGVjdDpWNEhJIChyZWc6VjhISSAxMjUgWyB2ZWN0 X3BhdHRfMjguOUQuMzc1NCBdKQ0KICAgICAgICAgICAgICAgICAgICAocGFyYWxsZWw6VjhISSBb DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCA0IFsweDRdKQ0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgNSBbMHg1XSkNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoY29uc3RfaW50IDYgWzB4Nl0pDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGNvbnN0X2ludCA3IFsweDddKQ0KICAgICAgICAgICAgICAgICAgICAgICAgXSkpKQ0K ICAgICAgICAgICAgKHplcm9fZXh0ZW5kOlY0U0kgKHZlY19zZWxlY3Q6VjRISSAocmVnOlY4SEkg MTE4KQ0KICAgICAgICAgICAgICAgICAgICAocGFyYWxsZWw6VjhISSBbDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGNvbnN0X2ludCA0IFsweDRdKQ0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChjb25zdF9pbnQgNSBbMHg1XSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAo Y29uc3RfaW50IDYgWzB4Nl0pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2lu dCA3IFsweDddKQ0KICAgICAgICAgICAgICAgICAgICAgICAgXSkpKSkpICIvYXBwL2V4YW1wbGUu YyI6NjoxNCAyMTE0IHthYXJjaDY0X3NpbWRfdmVjX3VtdWx0X2hpX3Y4aGl9DQogICAgIChleHBy X2xpc3Q6UkVHX0RFQUQgKHJlZzpWOEhJIDEyNSBbIHZlY3RfcGF0dF8yOC45RC4zNzU0IF0pDQog ICAgICAgIChleHByX2xpc3Q6UkVHX0VRVUFMIChtdWx0OlY0U0kgKHplcm9fZXh0ZW5kOlY0U0kg KHZlY19zZWxlY3Q6VjRISSAocmVnOlY4SEkgMTI1IFsgdmVjdF9wYXR0XzI4LjlELjM3NTQgXSkN CiAgICAgICAgICAgICAgICAgICAgICAgIChwYXJhbGxlbDpWOEhJIFsNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCA0IFsweDRdKQ0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoY29uc3RfaW50IDUgWzB4NV0pDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChjb25zdF9pbnQgNiBbMHg2XSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGNvbnN0X2ludCA3IFsweDddKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0p KSkNCiAgICAgICAgICAgICAgICAoY29uc3RfdmVjdG9yOlY0U0kgWw0KICAgICAgICAgICAgICAg ICAgICAgICAgKGNvbnN0X2ludCAzMjg5NyBbMHg4MDgxXSkgcmVwZWF0ZWQgeDQNCiAgICAgICAg ICAgICAgICAgICAgXSkpDQogICAgICAgICAgICAobmlsKSkpKQ0KKGluc24gNTEgNDggNTIgNCAo c2V0IChyZWc6VjhISSAxMzAgWyB2ZWN0X3BhdHRfMTkuMTBELjM3NTUgXSkNCiAgICAgICAgKHVu c3BlYzpWOEhJIFsNCiAgICAgICAgICAgICAgICAoc3VicmVnOlY4SEkgKHJlZzpWNFNJIDEyNikg MCkNCiAgICAgICAgICAgICAgICAoc3VicmVnOlY4SEkgKHJlZzpWNFNJIDEyOCkgMCkNCiAgICAg ICAgICAgIF0gVU5TUEVDX1VaUDIpKSAiL2FwcC9leGFtcGxlLmMiOjY6MTQgNDA5NiB7YWFyY2g2 NF91enAydjhoaX0NCiAgICAgKGV4cHJfbGlzdDpSRUdfREVBRCAocmVnOlY0U0kgMTI4KQ0KICAg ICAgICAoZXhwcl9saXN0OlJFR19ERUFEIChyZWc6VjRTSSAxMjYpDQogICAgICAgICAgICAobmls KSkpKQ0KKGluc24gNTIgNTEgNTMgNCAoc2V0IChyZWc6VjhISSAxMzMgWyB2ZWN0X3BhdHRfMjUu MTFELjM3NTYgXSkNCiAgICAgICAgKGxzaGlmdHJ0OlY4SEkgKHJlZzpWOEhJIDEzMCBbIHZlY3Rf cGF0dF8xOS4xMEQuMzc1NSBdKQ0KICAgICAgICAgICAgKGNvbnN0X3ZlY3RvcjpWOEhJIFsNCiAg ICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCA3IFsweDddKSByZXBlYXRlZCB4OA0KICAgICAg ICAgICAgICAgIF0pKSkgIi9hcHAvZXhhbXBsZS5jIjo2OjE0IDE4MDMge2FhcmNoNjRfc2ltZF9s c2hydjhoaX0NCiAgICAgKGV4cHJfbGlzdDpSRUdfREVBRCAocmVnOlY4SEkgMTMwIFsgdmVjdF9w YXR0XzE5LjEwRC4zNzU1IF0pDQogICAgICAgIChuaWwpKSkNCg0KQW5kIGZvciBnb29kOg0KDQoo aW5zbiAzMiAzMCAzNCA0IChzZXQgKHJlZzpWMTZRSSAxMTgpDQogICAgICAgICh2ZWNfY29uY2F0 OlYxNlFJICh1bnNwZWM6VjhRSSBbDQogICAgICAgICAgICAgICAgICAgIChyZWc6VjhISSAxMTQg WyB2ZWN0X3BhdHRfMjguOSBdKQ0KICAgICAgICAgICAgICAgICAgICAocmVnOlY4SEkgMTE1KQ0K ICAgICAgICAgICAgICAgIF0gVU5TUEVDX0FEREhOKQ0KICAgICAgICAgICAgKGNvbnN0X3ZlY3Rv cjpWOFFJIFsNCiAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAwIFswXSkgcmVwZWF0ZWQg eDgNCiAgICAgICAgICAgICAgICBdKSkpICJkcmF3LmMiOjY6MzUgMjY4OCB7YWFyY2g2NF9hZGRo bnY4aGlfaW5zbl9sZX0NCiAgICAgKGV4cHJfbGlzdDpSRUdfRVFVQUwgKHZlY19jb25jYXQ6VjE2 UUkgKHVuc3BlYzpWOFFJIFsNCiAgICAgICAgICAgICAgICAgICAgKHJlZzpWOEhJIDExNCBbIHZl Y3RfcGF0dF8yOC45IF0pDQogICAgICAgICAgICAgICAgICAgIChjb25zdF92ZWN0b3I6VjhISSBb DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAyNTcgWzB4MTAxXSkgcmVw ZWF0ZWQgeDgNCiAgICAgICAgICAgICAgICAgICAgICAgIF0pDQogICAgICAgICAgICAgICAgXSBV TlNQRUNfQURESE4pDQogICAgICAgICAgICAoY29uc3RfdmVjdG9yOlY4UUkgWw0KICAgICAgICAg ICAgICAgICAgICAoY29uc3RfaW50IDAgWzBdKSByZXBlYXRlZCB4OA0KICAgICAgICAgICAgICAg IF0pKQ0KICAgICAgICAobmlsKSkpDQooaW5zbiAzNCAzMiAzNSA0IChzZXQgKHJlZzpWOEhJIDEx NykNCiAgICAgICAgKHBsdXM6VjhISSAoemVyb19leHRlbmQ6VjhISSAoc3VicmVnOlY4UUkgKHJl ZzpWMTZRSSAxMTgpIDApKQ0KICAgICAgICAgICAgKHJlZzpWOEhJIDExNCBbIHZlY3RfcGF0dF8y OC45IF0pKSkgImRyYXcuYyI6NjozNSAyNjM1IHthYXJjaDY0X3VhZGR3djhxaX0NCiAgICAgKGV4 cHJfbGlzdDpSRUdfREVBRCAocmVnOlYxNlFJIDExOCkNCiAgICAgICAgKGV4cHJfbGlzdDpSRUdf REVBRCAocmVnOlY4SEkgMTE0IFsgdmVjdF9wYXR0XzI4LjkgXSkNCiAgICAgICAgICAgIChuaWwp KSkpDQooaW5zbiAzNSAzNCAzNyA0IChzZXQgKHJlZzpWOEhJIDEwMyBbIHZlY3RfcGF0dF8yNS4x MCBdKQ0KICAgICAgICAobHNoaWZ0cnQ6VjhISSAocmVnOlY4SEkgMTE3KQ0KICAgICAgICAgICAg KGNvbnN0X3ZlY3RvcjpWOEhJIFsNCiAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCA4IFsw eDhdKSByZXBlYXRlZCB4OA0KICAgICAgICAgICAgICAgIF0pKSkgImRyYXcuYyI6NjozNSAxNzQx IHthYXJjaDY0X3NpbWRfbHNocnY4aGl9DQogICAgIChleHByX2xpc3Q6UkVHX0RFQUQgKHJlZzpW OEhJIDExNykNCiAgICAgICAgKG5pbCkpKQ0KKGluc24gMzcgMzUgMzkgNCAoc2V0IChyZWc6VjE2 UUkgMTIyKQ0KICAgICAgICAodmVjX2NvbmNhdDpWMTZRSSAodW5zcGVjOlY4UUkgWw0KICAgICAg ICAgICAgICAgICAgICAocmVnOlY4SEkgMTAyIFsgdmVjdF9wYXR0XzI4LjkgXSkNCiAgICAgICAg ICAgICAgICAgICAgKHJlZzpWOEhJIDExNSkNCiAgICAgICAgICAgICAgICBdIFVOU1BFQ19BRERI TikNCiAgICAgICAgICAgIChjb25zdF92ZWN0b3I6VjhRSSBbDQogICAgICAgICAgICAgICAgICAg IChjb25zdF9pbnQgMCBbMF0pIHJlcGVhdGVkIHg4DQogICAgICAgICAgICAgICAgXSkpKSAiZHJh dy5jIjo2OjM1IDI2ODgge2FhcmNoNjRfYWRkaG52OGhpX2luc25fbGV9DQogICAgIChleHByX2xp c3Q6UkVHX0VRVUFMICh2ZWNfY29uY2F0OlYxNlFJICh1bnNwZWM6VjhRSSBbDQogICAgICAgICAg ICAgICAgICAgIChyZWc6VjhISSAxMDIgWyB2ZWN0X3BhdHRfMjguOSBdKQ0KICAgICAgICAgICAg ICAgICAgICAoY29uc3RfdmVjdG9yOlY4SEkgWw0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IChjb25zdF9pbnQgMjU3IFsweDEwMV0pIHJlcGVhdGVkIHg4DQogICAgICAgICAgICAgICAgICAg ICAgICBdKQ0KICAgICAgICAgICAgICAgIF0gVU5TUEVDX0FEREhOKQ0KICAgICAgICAgICAgKGNv bnN0X3ZlY3RvcjpWOFFJIFsNCiAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAwIFswXSkg cmVwZWF0ZWQgeDgNCiAgICAgICAgICAgICAgICBdKSkNCiAgICAgICAgKG5pbCkpKQ0KKGluc24g MzkgMzcgNDAgNCAoc2V0IChyZWc6VjhISSAxMjEpDQogICAgICAgIChwbHVzOlY4SEkgKHplcm9f ZXh0ZW5kOlY4SEkgKHN1YnJlZzpWOFFJIChyZWc6VjE2UUkgMTIyKSAwKSkNCiAgICAgICAgICAg IChyZWc6VjhISSAxMDIgWyB2ZWN0X3BhdHRfMjguOSBdKSkpICJkcmF3LmMiOjY6MzUgMjYzNSB7 YWFyY2g2NF91YWRkd3Y4cWl9DQogICAgIChleHByX2xpc3Q6UkVHX0RFQUQgKHJlZzpWMTZRSSAx MjIpDQogICAgICAgIChleHByX2xpc3Q6UkVHX0RFQUQgKHJlZzpWOEhJIDEwMiBbIHZlY3RfcGF0 dF8yOC45IF0pDQogICAgICAgICAgICAobmlsKSkpKQ0KKGluc24gNDAgMzkgNDEgNCAoc2V0IChy ZWc6VjhISSAxMDQgWyB2ZWN0X3BhdHRfMjUuMTAgXSkNCiAgICAgICAgKGxzaGlmdHJ0OlY4SEkg KHJlZzpWOEhJIDEyMSkNCiAgICAgICAgICAgIChjb25zdF92ZWN0b3I6VjhISSBbDQogICAgICAg ICAgICAgICAgICAgIChjb25zdF9pbnQgOCBbMHg4XSkgcmVwZWF0ZWQgeDgNCiAgICAgICAgICAg ICAgICBdKSkpICJkcmF3LmMiOjY6MzUgMTc0MSB7YWFyY2g2NF9zaW1kX2xzaHJ2OGhpfQ0KDQpD aGVlcnMsDQpUYW1hcg0KDQo+IA0KPiA+ID4gQnR3LCBvbiB4ODYgd2UgdXNlDQo+ID4gPg0KPiA+ ID4gdC5jOjM6MjE6IG5vdGU6ICAgcmVwbGFjaW5nIGVhcmxpZXIgcGF0dGVybiBwYXR0XzI1ID0g cGF0dF8yOCAvIDI1NTsNCj4gPiA+IHQuYzozOjIxOiBub3RlOiAgIHdpdGggcGF0dF8yNSA9IHBh dHRfMTkgPj4gNzsNCj4gPiA+IHQuYzozOjIxOiBub3RlOiAgIGV4dHJhIHBhdHRlcm4gc3RtdDog cGF0dF8xOSA9IHBhdHRfMjggaCogMzI4OTc7DQo+ID4gPg0KPiA+ID4gd2hpY2ggdHJhbnNsYXRl cyB0bw0KPiA+ID4NCj4gPiA+ICAgICAgICAgdnBtdWxodXcgICAgICAgICV5bW00LCAleW1tMCwg JXltbTANCj4gPiA+ICAgICAgICAgdnBtdWxodXcgICAgICAgICV5bW00LCAleW1tMSwgJXltbTEN Cj4gPiA+ICAgICAgICAgdnBzcmx3ICAkNywgJXltbTAsICV5bW0wDQo+ID4gPiAgICAgICAgIHZw c3JsdyAgJDcsICV5bW0xLCAleW1tMQ0KPiA+ID4NCj4gPiA+IHRoZXJlJ3Mgb2RkDQo+ID4gPg0K PiA+ID4gICAgICAgICB2cGFuZCAgICV5bW0wLCAleW1tMywgJXltbTANCj4gPiA+ICAgICAgICAg dnBhbmQgICAleW1tMSwgJXltbTMsICV5bW0xDQo+ID4gPg0KPiA+ID4gYmVmb3JlICgleW1tMyBp cyBhbGwgMHgwMGZmKQ0KPiA+ID4NCj4gPiA+ICAgICAgICAgdnBhY2t1c3diICAgICAgICV5bW0x LCAleW1tMCwgJXltbTANCj4gPiA+DQo+ID4gPiB0aGF0J3Mgbm90IHZpc2libGUgaW4gR0lNUExF LiAgSSBndWVzcyBhYXJjaDY0IGxhY2tzIGEgaGlnaHBhcnQgbXVsdGlwbHkNCj4gaGVyZT8NCj4g PiA+IEluIGFueSBjYXNlLCBpdCBzZWVtcyB0aGF0IGdlbmVyaWMgZGl2aXNpb24gZXhwYW5zaW9u IGNvdWxkIGJlDQo+ID4gPiBpbXByb3ZlZCBoZXJlPyAoY2hvb3NlX211bHRpcGxpZXI/KQ0KPiA+ DQo+ID4gV2UgZG8gZ2VuZXJhdGUgbXVsdGlwbHkgaGlnaHBhcnQgaGVyZSwgYnV0IHRoZSBwYXRj aCBjb21wbGV0ZWx5IGF2b2lkcw0KPiA+IG11bHRpcGxpZXMgYW5kIHNoaWZ0cyBlbnRpcmVseSBi eSBjcmVhdGl2ZSB1c2Ugb2YgdGhlIElTQS4gQW5vdGhlciByZWFzb24gSQ0KPiB3ZW50IGZvciBh biBvcHRhYiBpcyBjb3N0aW5nLg0KPiA+IFRoZSBjaG9zZW4gb3BlcmF0aW9ucyBhcmUgc2lnbmlm aWNhbnRseSBjaGVhcGVyIG9uIGFsbCBBcm0gdWFyY2hlcyB0aGFuDQo+IFNoaWZ0cyBhbmQgbXVs dGlwbHkuDQo+ID4NCj4gPiBUaGlzIG1lYW5zIHdlIGdldCB2ZWN0b3JpemF0aW9uIGluIHNvbWUg Y2FzZXMgd2hlcmUgdGhlIGNvc3QgbW9kZWwNCj4gPiB3b3VsZCBjb3JyZWN0bHkgc2F5IEl0J3Mg dG9vIGV4cGVuc2l2ZSB0byB2ZWN0b3JpemUuIFBhcnRpY3VsYXJseSBhcm91bmQNCj4gZG91Ymxl IHByZWNpc2lvbi4NCj4gPg0KPiA+IFRoYW5rcywNCj4gPiBUYW1hcg0KPiA+DQo+ID4gPg0KPiA+ ID4gUmljaGFyZC4NCj4gPiA+DQo+ID4gPiA+IFJpY2hhcmQuDQo+ID4gPiA+DQo+ID4gPiA+ID4g VGhhbmtzLA0KPiA+ID4gPiA+IFRhbWFyDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBnY2MvQ2hhbmdl TG9nOg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gCSogaW50ZXJuYWwtZm4uZGVmIChESVZfUE9XMl9C SVRNQVNLKTogTmV3Lg0KPiA+ID4gPiA+IAkqIG9wdGFicy5kZWYgKHVkaXZfcG93Ml9iaXRtYXNr X29wdGFiKTogTmV3Lg0KPiA+ID4gPiA+IAkqIGRvYy9tZC50ZXhpOiBEb2N1bWVudCBpdC4NCj4g PiA+ID4gPiAJKiB0cmVlLXZlY3QtcGF0dGVybnMuY2MgKHZlY3RfcmVjb2dfZGl2bW9kX3BhdHRl cm4pOiBSZWNvZ25pemUNCj4gPiA+IHBhdHRlcm4uDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBnY2Mv dGVzdHN1aXRlL0NoYW5nZUxvZzoNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IAkqIGdjYy5kZy92ZWN0 L3ZlY3QtZGl2LWJpdG1hc2stMS5jOiBOZXcgdGVzdC4NCj4gPiA+ID4gPiAJKiBnY2MuZGcvdmVj dC92ZWN0LWRpdi1iaXRtYXNrLTIuYzogTmV3IHRlc3QuDQo+ID4gPiA+ID4gCSogZ2NjLmRnL3Zl Y3QvdmVjdC1kaXYtYml0bWFzay0zLmM6IE5ldyB0ZXN0Lg0KPiA+ID4gPiA+IAkqIGdjYy5kZy92 ZWN0L3ZlY3QtZGl2LWJpdG1hc2suaDogTmV3IGZpbGUuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAt LS0gaW5saW5lIGNvcHkgb2YgcGF0Y2ggLS0NCj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZ2NjL2Rv Yy9tZC50ZXhpIGIvZ2NjL2RvYy9tZC50ZXhpIGluZGV4DQo+ID4gPiA+ID4NCj4gPiA+DQo+IGYz NjE5YzUwNWMwMjVmMTU4YzJiYzY0NzU2NTMxODc3Mzc4YjIyZTEuLjc4NGM0OWQ3ZDI0Y2VmNzYx OWU0ZDYxM2Y3DQo+ID4gPiA+ID4gYjRmNmU5NDU4NjZjMzggMTAwNjQ0DQo+ID4gPiA+ID4gLS0t IGEvZ2NjL2RvYy9tZC50ZXhpDQo+ID4gPiA+ID4gKysrIGIvZ2NjL2RvYy9tZC50ZXhpDQo+ID4g PiA+ID4gQEAgLTU1ODgsNiArNTU4OCwxOCBAQCBzaWduZWQgb3AwLCBvcDE7DQo+ID4gPiA+ID4g IG9wMCA9IG9wMSAvICgxIDw8IGltbSk7DQo+ID4gPiA+ID4gIEBlbmQgc21hbGxleGFtcGxlDQo+ ID4gPiA+ID4NCj4gPiA+ID4gPiArQGNpbmRleCBAY29kZXt1ZGl2X3BvdzJfYml0bWFza0B2YXJ7 bTJ9fSBpbnN0cnVjdGlvbiBwYXR0ZXJuDQo+ID4gPiBAaXRlbQ0KPiA+ID4gPiA+ICtAc2FtcHt1 ZGl2X3BvdzJfYml0bWFza0B2YXJ7bTJ9fSBAY2luZGV4DQo+ID4gPiA+ID4gK0Bjb2Rle3VkaXZf cG93Ml9iaXRtYXNrQHZhcnttMn19IGluc3RydWN0aW9uIHBhdHRlcm4gQGl0ZW14DQo+ID4gPiA+ ID4gK0BzYW1we3VkaXZfcG93Ml9iaXRtYXNrQHZhcnttMn19IFVuc2lnbmVkIHZlY3RvciBkaXZp c2lvbiBieQ0KPiBhbg0KPiA+ID4gPiA+ICtpbW1lZGlhdGUgdGhhdCBpcyBlcXVpdmFsZW50IHRv DQo+ID4gPiA+ID4gK0BzYW1wezJeKGJpdHNpemUobSkgLyAyKSAtIDF9Lg0KPiA+ID4gPiA+ICtA c21hbGxleGFtcGxlDQo+ID4gPiA+ID4gK3Vuc2lnbmVkIHNob3J0IG9wMDsgb3AxOw0KPiA+ID4g PiA+ICtAZG90c3t9DQo+ID4gPiA+ID4gK29wMCA9IG9wMSAvIDB4ZmZVOw0KPiA+ID4gPiA+ICtA ZW5kIHNtYWxsZXhhbXBsZQ0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiAgQGNpbmRleCBAY29kZXt2 ZWNfc2hsX2luc2VydF9AdmFye219fSBpbnN0cnVjdGlvbiBwYXR0ZXJuDQo+ID4gPiA+ID4gQGl0 ZW0gQHNhbXB7dmVjX3NobF9pbnNlcnRfQHZhcnttfX0gIFNoaWZ0IHRoZSBlbGVtZW50cyBpbg0K PiA+ID4gPiA+IHZlY3RvciBpbnB1dCBvcGVyYW5kIDEgbGVmdCBvbmUgZWxlbWVudCAoaS5lLkA6 DQo+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2djYy9pbnRlcm5hbC1mbi5kZWYgYi9nY2MvaW50ZXJu YWwtZm4uZGVmIGluZGV4DQo+ID4gPiA+ID4NCj4gPiA+DQo+IGQyZDU1MGQzNTg2MDYwMjJiMWNi NDRmYTg0MmYwNmUwYmU1MDdiYzMuLmEzZTNjYzE1MjBmNzc2ODNlYmY2MjU2ODk4DQo+ID4gPiA+ ID4gZjkxNmVkNDVkZTQ3NWYgMTAwNjQ0DQo+ID4gPiA+ID4gLS0tIGEvZ2NjL2ludGVybmFsLWZu LmRlZg0KPiA+ID4gPiA+ICsrKyBiL2djYy9pbnRlcm5hbC1mbi5kZWYNCj4gPiA+ID4gPiBAQCAt MTU5LDYgKzE1OSw4IEBAIERFRl9JTlRFUk5BTF9PUFRBQl9GTiAoVkVDX1NITF9JTlNFUlQsDQo+ ID4gPiBFQ0ZfQ09OU1QgfCBFQ0ZfTk9USFJPVywNCj4gPiA+ID4gPiAgCQkgICAgICAgdmVjX3No bF9pbnNlcnQsIGJpbmFyeSkNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICBERUZfSU5URVJOQUxfT1BU QUJfRk4gKERJVl9QT1cyLCBFQ0ZfQ09OU1QgfA0KPiBFQ0ZfTk9USFJPVywNCj4gPiA+ID4gPiBz ZGl2X3BvdzIsIGJpbmFyeSkNCj4gPiA+ID4gPiArREVGX0lOVEVSTkFMX09QVEFCX0ZOIChESVZf UE9XMl9CSVRNQVNLLCBFQ0ZfQ09OU1QgfA0KPiA+ID4gRUNGX05PVEhST1csDQo+ID4gPiA+ID4g KwkJICAgICAgIHVkaXZfcG93Ml9iaXRtYXNrLCB1bmFyeSkNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ ICBERUZfSU5URVJOQUxfT1BUQUJfRk4gKEZNUywgRUNGX0NPTlNULCBmbXMsIHRlcm5hcnkpDQo+ ID4gPiA+ID4gREVGX0lOVEVSTkFMX09QVEFCX0ZOIChGTk1BLCBFQ0ZfQ09OU1QsIGZubWEsIHRl cm5hcnkpIGRpZmYNCj4gPiA+ID4gPiAtLWdpdCBhL2djYy9vcHRhYnMuZGVmIGIvZ2NjL29wdGFi cy5kZWYgaW5kZXgNCj4gPiA+ID4gPg0KPiA+ID4NCj4gODAxMzEwZWJhYTdkNDY5NTIwODA5YmI3 ZWZlZDY4MjBmOGViODY2Yi4uM2YwYWMwNWVmNWFkNWFlZDhkNmNhMzkxZg0KPiA+ID4gNA0KPiA+ ID4gPiA+IGVlZDcxYjA0OTRlMTdmIDEwMDY0NA0KPiA+ID4gPiA+IC0tLSBhL2djYy9vcHRhYnMu ZGVmDQo+ID4gPiA+ID4gKysrIGIvZ2NjL29wdGFicy5kZWYNCj4gPiA+ID4gPiBAQCAtMzcyLDYg KzM3Miw3IEBAIE9QVEFCX0QgKHNtdWxocnNfb3B0YWIsICJzbXVsaHJzJGEzIikNCj4gPiA+IE9Q VEFCX0QNCj4gPiA+ID4gPiAodW11bGhzX29wdGFiLCAidW11bGhzJGEzIikgIE9QVEFCX0QgKHVt dWxocnNfb3B0YWIsDQo+ID4gPiA+ID4gInVtdWxocnMkYTMiKSBPUFRBQl9EIChzZGl2X3BvdzJf b3B0YWIsICJzZGl2X3BvdzIkYTMiKQ0KPiA+ID4gPiA+ICtPUFRBQl9EICh1ZGl2X3BvdzJfYml0 bWFza19vcHRhYiwgInVkaXZfcG93Ml9iaXRtYXNrJGEyIikNCj4gPiA+ID4gPiAgT1BUQUJfRCAo dmVjX3BhY2tfc2ZpeF90cnVuY19vcHRhYiwgInZlY19wYWNrX3NmaXhfdHJ1bmNfJGEiKQ0KPiA+ ID4gPiA+IE9QVEFCX0QgKHZlY19wYWNrX3NzYXRfb3B0YWIsICJ2ZWNfcGFja19zc2F0XyRhIikg IE9QVEFCX0QNCj4gPiA+ID4gPiAodmVjX3BhY2tfdHJ1bmNfb3B0YWIsICJ2ZWNfcGFja190cnVu Y18kYSIpIGRpZmYgLS1naXQNCj4gPiA+ID4gPiBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ZlY3Qv dmVjdC1kaXYtYml0bWFzay0xLmMNCj4gPiA+ID4gPiBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3Zl Y3QvdmVjdC1kaXYtYml0bWFzay0xLmMNCj4gPiA+ID4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0K PiA+ID4gPiA+IGluZGV4DQo+ID4gPiA+ID4NCj4gPiA+DQo+IDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE3ZWEzY2NlNDc2NDIzOWM1ZDI4MWE4ZjBiDQo+ID4gPiA+ ID4gZWFkMWY2YTQ1MmRlM2YNCj4gPiA+ID4gPiAtLS0gL2Rldi9udWxsDQo+ID4gPiA+ID4gKysr IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdmVjdC92ZWN0LWRpdi1iaXRtYXNrLTEuYw0KPiA+ID4g PiA+IEBAIC0wLDAgKzEsMjUgQEANCj4gPiA+ID4gPiArLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2 ZS10YXJnZXQgdmVjdF9pbnQgfSAqLw0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiArI2luY2x1ZGUg PHN0ZGludC5oPg0KPiA+ID4gPiA+ICsjaW5jbHVkZSAidHJlZS12ZWN0LmgiDQo+ID4gPiA+ID4g Kw0KPiA+ID4gPiA+ICsjZGVmaW5lIE4gNTANCj4gPiA+ID4gPiArI2RlZmluZSBUWVBFIHVpbnQ4 X3QNCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gK19fYXR0cmlidXRlX18oKG5vaXBhLCBub2lubGlu ZSwgb3B0aW1pemUoIk8xIikpKSB2b2lkDQo+ID4gPiA+ID4gK2Z1bjEoVFlQRSogcmVzdHJpY3Qg cGl4ZWwsIFRZUEUgbGV2ZWwsIGludCBuKSB7DQo+ID4gPiA+ID4gKyAgZm9yIChpbnQgaSA9IDA7 IGkgPCBuOyBpKz0xKQ0KPiA+ID4gPiA+ICsgICAgcGl4ZWxbaV0gPSAocGl4ZWxbaV0gKiBsZXZl bCkgLyAweGZmOyB9DQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICtfX2F0dHJpYnV0ZV9fKChub2lw YSwgbm9pbmxpbmUsIG9wdGltaXplKCJPMyIpKSkgdm9pZA0KPiA+ID4gPiA+ICtmdW4yKFRZUEUq IHJlc3RyaWN0IHBpeGVsLCBUWVBFIGxldmVsLCBpbnQgbikgew0KPiA+ID4gPiA+ICsgIGZvciAo aW50IGkgPSAwOyBpIDwgbjsgaSs9MSkNCj4gPiA+ID4gPiArICAgIHBpeGVsW2ldID0gKHBpeGVs W2ldICogbGV2ZWwpIC8gMHhmZjsgfQ0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiArI2luY2x1ZGUg InZlY3QtZGl2LWJpdG1hc2suaCINCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gKy8qIHsgZGctZmlu YWwgeyBzY2FuLXRyZWUtZHVtcCAidmVjdF9yZWNvZ19kaXZtb2RfcGF0dGVybjoNCj4gPiA+ID4g PiArZGV0ZWN0ZWQiICJ2ZWN0IiB9IH0gKi8NCj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rl c3RzdWl0ZS9nY2MuZGcvdmVjdC92ZWN0LWRpdi1iaXRtYXNrLTIuYw0KPiA+ID4gPiA+IGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MuZGcvdmVjdC92ZWN0LWRpdi1iaXRtYXNrLTIuYw0KPiA+ID4gPiA+IG5l dyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gPiA+ID4gaW5kZXgNCj4gPiA+ID4gPg0KPiA+ID4NCj4g MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDA5ZTE2ZTFiMzY0OTdl NTcyNDQxMGQ5OA0KPiA+ID4gNA0KPiA+ID4gPiA+IDNmMWNlMTIyYjI2ZGRhDQo+ID4gPiA+ID4g LS0tIC9kZXYvbnVsbA0KPiA+ID4gPiA+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ZlY3Qv dmVjdC1kaXYtYml0bWFzay0yLmMNCj4gPiA+ID4gPiBAQCAtMCwwICsxLDI1IEBADQo+ID4gPiA+ ID4gKy8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IHZlY3RfaW50IH0gKi8NCj4gPiA+ ID4gPiArDQo+ID4gPiA+ID4gKyNpbmNsdWRlIDxzdGRpbnQuaD4NCj4gPiA+ID4gPiArI2luY2x1 ZGUgInRyZWUtdmVjdC5oIg0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiArI2RlZmluZSBOIDUwDQo+ ID4gPiA+ID4gKyNkZWZpbmUgVFlQRSB1aW50MTZfdA0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiAr X19hdHRyaWJ1dGVfXygobm9pcGEsIG5vaW5saW5lLCBvcHRpbWl6ZSgiTzEiKSkpIHZvaWQNCj4g PiA+ID4gPiArZnVuMShUWVBFKiByZXN0cmljdCBwaXhlbCwgVFlQRSBsZXZlbCwgaW50IG4pIHsN Cj4gPiA+ID4gPiArICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrPTEpDQo+ID4gPiA+ID4gKyAg ICBwaXhlbFtpXSA9IChwaXhlbFtpXSAqIGxldmVsKSAvIDB4ZmZmZlU7IH0NCj4gPiA+ID4gPiAr DQo+ID4gPiA+ID4gK19fYXR0cmlidXRlX18oKG5vaXBhLCBub2lubGluZSwgb3B0aW1pemUoIk8z IikpKSB2b2lkDQo+ID4gPiA+ID4gK2Z1bjIoVFlQRSogcmVzdHJpY3QgcGl4ZWwsIFRZUEUgbGV2 ZWwsIGludCBuKSB7DQo+ID4gPiA+ID4gKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKz0xKQ0K PiA+ID4gPiA+ICsgICAgcGl4ZWxbaV0gPSAocGl4ZWxbaV0gKiBsZXZlbCkgLyAweGZmZmZVOyB9 DQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICsjaW5jbHVkZSAidmVjdC1kaXYtYml0bWFzay5oIg0K PiA+ID4gPiA+ICsNCj4gPiA+ID4gPiArLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wICJ2 ZWN0X3JlY29nX2Rpdm1vZF9wYXR0ZXJuOg0KPiA+ID4gPiA+ICtkZXRlY3RlZCIgInZlY3QiIH0g fSAqLw0KPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy5kZy92ZWN0L3Zl Y3QtZGl2LWJpdG1hc2stMy5jDQo+ID4gPiA+ID4gYi9nY2MvdGVzdHN1aXRlL2djYy5kZy92ZWN0 L3ZlY3QtZGl2LWJpdG1hc2stMy5jDQo+ID4gPiA+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4g PiA+ID4gPiBpbmRleA0KPiA+ID4gPiA+DQo+ID4gPg0KPiAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwLi5iZjM1YTBiZGE4MzMzYzQxOGU2OTJkOTQyDQo+ID4gPiAyDQo+ ID4gPiA+ID4gMGRmODQ5Y2M0NzkzMGINCj4gPiA+ID4gPiAtLS0gL2Rldi9udWxsDQo+ID4gPiA+ ID4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdmVjdC92ZWN0LWRpdi1iaXRtYXNrLTMuYw0K PiA+ID4gPiA+IEBAIC0wLDAgKzEsMjYgQEANCj4gPiA+ID4gPiArLyogeyBkZy1yZXF1aXJlLWVm ZmVjdGl2ZS10YXJnZXQgdmVjdF9pbnQgfSAqLw0KPiA+ID4gPiA+ICsvKiB7IGRnLWFkZGl0aW9u YWwtb3B0aW9ucyAiLWZuby12ZWN0LWNvc3QtbW9kZWwiIHsgdGFyZ2V0DQo+ID4gPiA+ID4gK2Fh cmNoNjQqLSotKiB9IH0gKi8NCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gKyNpbmNsdWRlIDxzdGRp bnQuaD4NCj4gPiA+ID4gPiArI2luY2x1ZGUgInRyZWUtdmVjdC5oIg0KPiA+ID4gPiA+ICsNCj4g PiA+ID4gPiArI2RlZmluZSBOIDUwDQo+ID4gPiA+ID4gKyNkZWZpbmUgVFlQRSB1aW50MzJfdA0K PiA+ID4gPiA+ICsNCj4gPiA+ID4gPiArX19hdHRyaWJ1dGVfXygobm9pcGEsIG5vaW5saW5lLCBv cHRpbWl6ZSgiTzEiKSkpIHZvaWQNCj4gPiA+ID4gPiArZnVuMShUWVBFKiByZXN0cmljdCBwaXhl bCwgVFlQRSBsZXZlbCwgaW50IG4pIHsNCj4gPiA+ID4gPiArICBmb3IgKGludCBpID0gMDsgaSA8 IG47IGkrPTEpDQo+ID4gPiA+ID4gKyAgICBwaXhlbFtpXSA9IChwaXhlbFtpXSAqICh1aW50NjRf dClsZXZlbCkgLyAweGZmZmZmZmZmVUw7IH0NCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gK19fYXR0 cmlidXRlX18oKG5vaXBhLCBub2lubGluZSwgb3B0aW1pemUoIk8zIikpKSB2b2lkDQo+ID4gPiA+ ID4gK2Z1bjIoVFlQRSogcmVzdHJpY3QgcGl4ZWwsIFRZUEUgbGV2ZWwsIGludCBuKSB7DQo+ID4g PiA+ID4gKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKz0xKQ0KPiA+ID4gPiA+ICsgICAgcGl4 ZWxbaV0gPSAocGl4ZWxbaV0gKiAodWludDY0X3QpbGV2ZWwpIC8gMHhmZmZmZmZmZlVMOyB9DQo+ ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICsjaW5jbHVkZSAidmVjdC1kaXYtYml0bWFzay5oIg0KPiA+ ID4gPiA+ICsNCj4gPiA+ID4gPiArLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wICJ2ZWN0 X3JlY29nX2Rpdm1vZF9wYXR0ZXJuOg0KPiA+ID4gPiA+ICtkZXRlY3RlZCIgInZlY3QiIH0gfSAq Lw0KPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy5kZy92ZWN0L3ZlY3Qt ZGl2LWJpdG1hc2suaA0KPiA+ID4gPiA+IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdmVjdC92ZWN0 LWRpdi1iaXRtYXNrLmgNCj4gPiA+ID4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+ID4gPiA+ IGluZGV4DQo+ID4gPiA+ID4NCj4gPiA+DQo+IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAuLjI5YTE2NzM5YWE0YjcwNjYxNjM2N2JmZDENCj4gPiA+IDgNCj4gPiA+ID4g PiAzMmYyOGViZDA3OTkzZQ0KPiA+ID4gPiA+IC0tLSAvZGV2L251bGwNCj4gPiA+ID4gPiArKysg Yi9nY2MvdGVzdHN1aXRlL2djYy5kZy92ZWN0L3ZlY3QtZGl2LWJpdG1hc2suaA0KPiA+ID4gPiA+ IEBAIC0wLDAgKzEsNDMgQEANCj4gPiA+ID4gPiArI2luY2x1ZGUgPHN0ZGlvLmg+DQo+ID4gPiA+ ID4gKw0KPiA+ID4gPiA+ICsjaWZuZGVmIE4NCj4gPiA+ID4gPiArI2RlZmluZSBOIDY1DQo+ID4g PiA+ID4gKyNlbmRpZg0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiArI2lmbmRlZiBUWVBFDQo+ID4g PiA+ID4gKyNkZWZpbmUgVFlQRSB1aW50MzJfdA0KPiA+ID4gPiA+ICsjZW5kaWYNCj4gPiA+ID4g PiArDQo+ID4gPiA+ID4gKyNpZm5kZWYgREVCVUcNCj4gPiA+ID4gPiArI2RlZmluZSBERUJVRyAw DQo+ID4gPiA+ID4gKyNlbmRpZg0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiArI2RlZmluZSBCQVNF ICgoVFlQRSkgLTEgPCAwID8gLTEyNiA6IDQpDQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICtpbnQg bWFpbiAoKQ0KPiA+ID4gPiA+ICt7DQo+ID4gPiA+ID4gKyAgVFlQRSBhW05dOw0KPiA+ID4gPiA+ ICsgIFRZUEUgYltOXTsNCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gKyAgZm9yIChpbnQgaSA9IDA7 IGkgPCBOOyArK2kpDQo+ID4gPiA+ID4gKyAgICB7DQo+ID4gPiA+ID4gKyAgICAgIGFbaV0gPSBC QVNFICsgaSAqIDEzOw0KPiA+ID4gPiA+ICsgICAgICBiW2ldID0gQkFTRSArIGkgKiAxMzsNCj4g PiA+ID4gPiArICAgICAgaWYgKERFQlVHKQ0KPiA+ID4gPiA+ICsgICAgICAgIHByaW50ZiAoIiVk OiAweCV4XG4iLCBpLCBhW2ldKTsNCj4gPiA+ID4gPiArICAgIH0NCj4gPiA+ID4gPiArDQo+ID4g PiA+ID4gKyAgZnVuMSAoYSwgTiAvIDIsIE4pOw0KPiA+ID4gPiA+ICsgIGZ1bjIgKGIsIE4gLyAy LCBOKTsNCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyAr K2kpDQo+ID4gPiA+ID4gKyAgICB7DQo+ID4gPiA+ID4gKyAgICAgIGlmIChERUJVRykNCj4gPiA+ ID4gPiArICAgICAgICBwcmludGYgKCIlZCA9IDB4JXggPT0gMHgleFxuIiwgaSwgYVtpXSwgYltp XSk7DQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICsgICAgICBpZiAoYVtpXSAhPSBiW2ldKQ0KPiA+ ID4gPiA+ICsgICAgICAgIF9fYnVpbHRpbl9hYm9ydCAoKTsNCj4gPiA+ID4gPiArICAgIH0NCj4g PiA+ID4gPiArICByZXR1cm4gMDsNCj4gPiA+ID4gPiArfQ0KPiA+ID4gPiA+ICsNCj4gPiA+ID4g PiBkaWZmIC0tZ2l0IGEvZ2NjL3RyZWUtdmVjdC1wYXR0ZXJucy5jYw0KPiA+ID4gPiA+IGIvZ2Nj L3RyZWUtdmVjdC1wYXR0ZXJucy5jYyBpbmRleA0KPiA+ID4gPiA+DQo+ID4gPg0KPiAyMTdiZGZk NzA0NWEyMjU3OGEzNWJiODkxYTQzMThkNzQxMDcxODcyLi5hNzM4NTU4Y2I4ZDEyMjk2YmZmNDYy ZDcxDQo+ID4gPiA2DQo+ID4gPiA+ID4gMzEwY2E4ZDgyOTU3YjUgMTAwNjQ0DQo+ID4gPiA+ID4g LS0tIGEvZ2NjL3RyZWUtdmVjdC1wYXR0ZXJucy5jYw0KPiA+ID4gPiA+ICsrKyBiL2djYy90cmVl LXZlY3QtcGF0dGVybnMuY2MNCj4gPiA+ID4gPiBAQCAtMzU1OCw2ICszNTU4LDMzIEBAIHZlY3Rf cmVjb2dfZGl2bW9kX3BhdHRlcm4gKHZlY19pbmZvDQo+ID4gPiA+ID4gKnZpbmZvLA0KPiA+ID4g PiA+DQo+ID4gPiA+ID4gICAgICAgIHJldHVybiBwYXR0ZXJuX3N0bXQ7DQo+ID4gPiA+ID4gICAg ICB9DQo+ID4gPiA+ID4gKyAgZWxzZSBpZiAoKFRZUEVfVU5TSUdORUQgKGl0eXBlKSB8fCB0cmVl X2ludF9jc3Rfc2duIChvcHJuZDEpICE9IDEpDQo+ID4gPiA+ID4gKwkgICAmJiByaHNfY29kZSAh PSBUUlVOQ19NT0RfRVhQUikNCj4gPiA+ID4gPiArICAgIHsNCj4gPiA+ID4gPiArICAgICAgd2lk ZV9pbnQgaWNzdCA9IHdpOjp0b193aWRlIChvcHJuZDEpOw0KPiA+ID4gPiA+ICsgICAgICB3aWRl X2ludCB2YWwgPSB3aTo6YWRkIChpY3N0LCAxKTsNCj4gPiA+ID4gPiArICAgICAgaW50IHBvdyA9 IHdpOjpleGFjdF9sb2cyICh2YWwpOw0KPiA+ID4gPiA+ICsgICAgICBpZiAocG93ID09IChwcmVj IC8gMikpDQo+ID4gPiA+ID4gKwl7DQo+ID4gPiA+ID4gKwkgIC8qIFBhdHRlcm4gZGV0ZWN0ZWQu ICAqLw0KPiA+ID4gPiA+ICsJICB2ZWN0X3BhdHRlcm5fZGV0ZWN0ZWQgKCJ2ZWN0X3JlY29nX2Rp dm1vZF9wYXR0ZXJuIiwNCj4gPiA+ID4gPiArbGFzdF9zdG10KTsNCj4gPiA+ID4gPiArDQo+ID4g PiA+ID4gKwkgICp0eXBlX291dCA9IHZlY3R5cGU7DQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICsJ ICAvKiBDaGVjayBpZiB0aGUgdGFyZ2V0IHN1cHBvcnRzIHRoaXMgaW50ZXJuYWwgZnVuY3Rpb24u ICAqLw0KPiA+ID4gPiA+ICsJICBpbnRlcm5hbF9mbiBpZm4gPSBJRk5fRElWX1BPVzJfQklUTUFT SzsNCj4gPiA+ID4gPiArCSAgaWYgKGRpcmVjdF9pbnRlcm5hbF9mbl9zdXBwb3J0ZWRfcCAoaWZu LCB2ZWN0eXBlLA0KPiA+ID4gT1BUSU1JWkVfRk9SX1NQRUVEKSkNCj4gPiA+ID4gPiArCSAgICB7 DQo+ID4gPiA+ID4gKwkgICAgICB0cmVlIHZhcl9kaXYgPSB2ZWN0X3JlY29nX3RlbXBfc3NhX3Zh ciAoaXR5cGUsIE5VTEwpOw0KPiA+ID4gPiA+ICsJICAgICAgZ2ltcGxlICpkaXZfc3RtdCA9IGdp bXBsZV9idWlsZF9jYWxsX2ludGVybmFsIChpZm4sIDEsDQo+IG9wcm5kMCk7DQo+ID4gPiA+ID4g KwkgICAgICBnaW1wbGVfY2FsbF9zZXRfbGhzIChkaXZfc3RtdCwgdmFyX2Rpdik7DQo+ID4gPiA+ ID4gKw0KPiA+ID4gPiA+ICsJICAgICAgZ2ltcGxlX3NldF9sb2NhdGlvbiAoZGl2X3N0bXQsIGdp bXBsZV9sb2NhdGlvbg0KPiA+ID4gPiA+ICsobGFzdF9zdG10KSk7DQo+ID4gPiA+ID4gKw0KPiA+ ID4gPiA+ICsJICAgICAgcmV0dXJuIGRpdl9zdG10Ow0KPiA+ID4gPiA+ICsJICAgIH0NCj4gPiA+ ID4gPiArCX0NCj4gPiA+ID4gPiArICAgIH0NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICAgIGlmIChw cmVjID4gSE9TVF9CSVRTX1BFUl9XSURFX0lOVA0KPiA+ID4gPiA+ICAgICAgICB8fCBpbnRlZ2Vy X3plcm9wIChvcHJuZDEpKQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4g PiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+DQo+ID4gPiAtLQ0KPiA+ID4g UmljaGFyZCBCaWVuZXIgPHJndWVudGhlckBzdXNlLmRlPg0KPiA+ID4gU1VTRSBTb2Z0d2FyZSBT b2x1dGlvbnMgR2VybWFueSBHbWJILCBGcmFua2Vuc3RyYcOfZSAxNDYsIDkwNDYxDQo+ID4gPiBO dWVybmJlcmcsIEdlcm1hbnk7IEdGOiBJdm8gVG90ZXYsIEFuZHJldyBNeWVycywgQW5kcmV3IE1j RG9uYWxkLA0KPiA+ID4gQm91ZGllbiBNb2VybWFuOyBIUkIgMzY4MDkgKEFHIE51ZXJuYmVyZykN Cj4gPg0KPiANCj4gLS0NCj4gUmljaGFyZCBCaWVuZXIgPHJndWVudGhlckBzdXNlLmRlPg0KPiBT VVNFIFNvZnR3YXJlIFNvbHV0aW9ucyBHZXJtYW55IEdtYkgsIEZyYW5rZW5zdHJhw59lIDE0Niwg OTA0NjENCj4gTnVlcm5iZXJnLCBHZXJtYW55OyBHRjogSXZvIFRvdGV2LCBBbmRyZXcgTXllcnMs IEFuZHJldyBNY0RvbmFsZCwNCj4gQm91ZGllbiBNb2VybWFuOyBIUkIgMzY4MDkgKEFHIE51ZXJu YmVyZykNCg==