From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10067.outbound.protection.outlook.com [40.107.1.67]) by sourceware.org (Postfix) with ESMTPS id 671453856DDD for ; Tue, 14 Jun 2022 13:39:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 671453856DDD ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=OR+Z9JrKhvIol6z24iUVvm4ZUjmFJmZw+ocQTgXyOiVnx9e4NGw8V/jydgwiuVVThLh6nTRHzr/IWdzhmQMd+cMjvQzk2GVUlcyXC/p859Zn3FqzC7qRcXBq4bpu8zvu7dS3Q3yG70eUP1OZJIGimi5AylyM6cU+GPN9Y7dBFFq34XBVxM+j9tRI2Ey0EEqO6/jf72QJ+S7DNnrMosU0voYf8uiUy+SFyIuUOX7XowGK/2pZS9V84H5kVqDwQ4p851TT2N4blYIVVVUnx8Cb5Lu63cmGG8cn703P0A/DV+kLVo8U/+yP7DUGdE90KgCVXbGpdFWjhHqgEieDwdndZg== 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=nzLz8tKzWCVUaegk8lRWuxZUK7FAQ4D69yatGIjMYEY=; b=ANH90Nv2q2PAiXmUdb1bRYU6lJ396COSlgKbMGq2Ygap75DlxPdqQyN+1CpYP+mKwGhEsC+0FdEtqu+hVg/i/cMxUtBkCFGzOGmFOB8l2uIKyFP3zEaJDwJ1sxhaUka35l86n2HiE/rWY73hkYVAxKemFxFtvTyr6PNuYCBs7zfh3ajbOwj/UwSUAjSpE49SqAmi/fD5jNkTBZ8jmXQZCZDTZnvBCaCNJ40MiX7MjnHe2hdnzT9aW+u12U31SWLvIBIOBNUrg0w3E3wfwLEJIe7rZehdK8gyGaP0R0B8X9aUDLwsgduaCHD0mP17kXFQPvrvGPcfOD5uN/BYwcZGIQ== 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 DBBPR09CA0017.eurprd09.prod.outlook.com (2603:10a6:10:c0::29) by GV2PR08MB8073.eurprd08.prod.outlook.com (2603:10a6:150:75::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5332.20; Tue, 14 Jun 2022 13:38:55 +0000 Received: from DBAEUR03FT022.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:c0:cafe::37) by DBBPR09CA0017.outlook.office365.com (2603:10a6:10:c0::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5332.13 via Frontend Transport; Tue, 14 Jun 2022 13:38:55 +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 DBAEUR03FT022.mail.protection.outlook.com (100.127.142.217) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5332.12 via Frontend Transport; Tue, 14 Jun 2022 13:38:55 +0000 Received: ("Tessian outbound 5b5a41c043d3:v120"); Tue, 14 Jun 2022 13:38:55 +0000 X-CR-MTA-TID: 64aa7808 Received: from 3b6298e06988.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 41207461-10D7-4084-A752-16F273AA44DA.1; Tue, 14 Jun 2022 13:38:44 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 3b6298e06988.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 14 Jun 2022 13:38:44 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QCoSKsnhQYJUAG4IquI9qV2TOmOQnjVlzeSK7VI31jkGDkufSXv1f3MqwifP8K3/5qiylL//+2VQ7V5TQc7JVESXqLmoAdOwm6CBoTxQSGofxRcYaEk3mO5YVFzIxrEYGIxjTh5LX+Wt6QfjDEjOGKXX5Bef+WLAbzaN4oHjffgpnH1jBu5GCn2xiEyeoZb8OsWB8rOeQN2RpkHlAY+lRzp/RHCBWVT7Ttr0/g9nzlp+CZzfd4nP18Tjm4UjbBp0n9nKXpu3bksRr0EFoJgXMBCgzPFsvOlEwI/iO8H4PKmFsmT3JCmyouF1UqH1DVD02frJ3FgYRqkVEGNmge0rew== 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=nzLz8tKzWCVUaegk8lRWuxZUK7FAQ4D69yatGIjMYEY=; b=XkIuI0m3BcUg+YgzOH3rYXkeqPa79bxQANPZ6TTJTt0nj19LGif872BSEIe1ZrVGC2iECaTEXgAkHjnFl2sR8Hym/fFhUY4Uf5gynzFV2vZowHYJirO4yfkQjqUCLC5yYcoKAez99kcF3VuKrLIECDMe2HNOA7CV047SulYDP9VqwSfehzVEfVjpPcExq3PE98INVsePlLjU8l9z3SNThrvMmUw5UKMYrEIxA5Wvk8/aMA3rfFcw9Et955ln26wzggLFe4IMXtWkqN7esgKRrK6G5k74krETbwed8B3wSTf7xYCy4u+AUjHepMOy941O/lsvAWGxPIb+HwC8GDprAw== 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 DBBPR08MB4379.eurprd08.prod.outlook.com (2603:10a6:10:cd::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5332.14; Tue, 14 Jun 2022 13:38:42 +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.022; Tue, 14 Jun 2022 13:38:42 +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: AQHYe7rkG8mCfxiDnUegM0t31rGaD61NFy0AgAAEOACAAAPNUIAAIDAAgAAlHcCAAYaPAIAAAM9Q Date: Tue, 14 Jun 2022 13:38:41 +0000 Message-ID: References: <2p382n54-427o-8q82-6o45-p2nn6869opr5@fhfr.qr> In-Reply-To: <2p382n54-427o-8q82-6o45-p2nn6869opr5@fhfr.qr> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: EBD17B731FA7AD4EB87898AC9CDB2FA6.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: 5a3987c5-e6ea-4f8e-e709-08da4e0b3a3d x-ms-traffictypediagnostic: DBBPR08MB4379:EE_|DBAEUR03FT022:EE_|GV2PR08MB8073: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: 7z0nERWBjOyUVLyc1viEtXuteEJKrNdmxAlmmWl5Fb9gedGYSxzhQenouG+/KfFqihB1hAlSzOJR6SKM0iaiG04Vpa4JknZdLaK3t7FA1Zh+7/XSEgIEmu9Zk9lXReZBNNi3Wx1kCaEGtFgnXI8MjhCCIZQnuNdG3xT/Vr4cyYLPu6KpurgStCugMwK0A1seOlWZLWs7TF+6llrH+9V9ggNfbUWA3lSGvIlKaebIJOzw530Qd0aGiLiEkYaKOFG6uwy4mNEC/YRvT6maCkMMdW+TXLIBgM3q/hjdoOgdtlB4ATrKOjeey7YOMHK+zFwJtfCxmsj+nx19Aq3tbIG4DsAGfJQJn5lgBWBdkTucuIqF1zFX5FXLprv42qnNhr2NoOtxXY0kzLAimKp062bmpj0YBuz/Rr9YsS+KP6ZPhca20pN6yQNnUHHk/ZY+Mu8KYoY6S/tcfvzJxZe3aubRJAr7Z1kKoAxNHEBziosDGSqwHkuTeA1Et/K2xoCbtrW8n/UfvEPqUhLFjt2pByMRRuAOoE/5Ilx+nWQ+6O6m6ViqcbIPMphxnyyEO7edOGEk+yZllvSbmdm8Js6gepdvNxcrO2PrCsm56bIk5ej8sgMHpSqgLNAZDC9HZx6q1cWLiUzgxQlmc0qKbNfuPfR/s0X0eVCBwIULqRc2ItmzFJM/UruTSpjY/hpUbxOleMkmNOHaNrlynnu7dVgz2ZPhpF03TpSHMqAb6FmuawrKt8nWWtFHhMj8IspHjvrb0IJsHlseiKM24cmbZGG7yRl6Z6dkPG6IfQcVjFuGsiB6cGAlZjh7i7pnbaRwXNH4Y2fD5QvlAmYHUL7gPJ51u3Pi7A== 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)(38070700005)(6506007)(55016003)(84970400001)(5660300002)(6916009)(508600001)(83380400001)(54906003)(122000001)(2906002)(316002)(7696005)(71200400001)(53546011)(66946007)(66446008)(26005)(64756008)(30864003)(66556008)(8676002)(4326008)(38100700002)(76116006)(52536014)(33656002)(8936002)(9686003)(86362001)(66476007)(66574015)(186003)(559001)(579004); DIR:OUT; SFP:1101; Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB4379 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: DBAEUR03FT022.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 02ed18c6-db52-4592-2f03-08da4e0b323f X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6UySA9sRvzeienJ0wUGKvYRLqU2Z+KajEkkSWi5dLhjo8N9nx/jkPkpLwW4GsbQuTyS664vOa2meQmzKgxfCnFhizwupgrDvcEOZ6CglIz9z6mkxIAQCuPLn97HLdKT+c5c3JBxnvIqp6Wc+Mic3zHXtacTugeC2DjJzg402Q07z3XESCg/BVaXIAuVkvcDAr63LMZSyEXWSnHtGfq21BRuS1WvBLv96jVljwyZioO0BAC5Uq+RqYQH+7P0pKxYBrXbrAgdr+ppTh9tRgmYvsSSqwnnzFU0lrkvpHKZLbL0T49EDQvkPps4LIniwbIwArX0GYteSQHcuBGEec8ZAscKKCX3P/BMKAEALppinkkN+POMCVGMIZv48TnsGIsqzNe2XtNAgfz+RBZNSyxkgxGYNpCSmhLMrjpPLtMAedFgVh9EhRTqJVgU5DXvo+WPS0IvDoRa95qEkd3sEWJZIE681h1lsdzv8tvHe87hLUi36nuW+fTm1ZjrDXoLz256LXg0Bw94l4j6ke9KsC6CHX3zdv+LyJYUaR4ku0rxROP3skNOm3Z30cz/Q3MMb9wzvbapW59B1WT8SevVUDA5wNvkTQsVQ20YXFGHl9lgVZ/q6BZ2Xb3FHM6CM4vm62aDD2eOdcZnvWRM32arcVZ2vQMmXg/cvnKzg/v9U2+2wpIe+kfvbQmXvhdHgwNjDGrfGGBEpkQARJvBb2eP8TGnI6hS7FeTZE5JFEYr6uJSXUD3hATKUFJjq0IWliLE0RkG3WnWVjSBq6JqCOOsLuY9rsMwk05edu/5ldS2Q5Fii6s4= 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)(46966006)(36840700001)(8676002)(81166007)(86362001)(9686003)(508600001)(70206006)(70586007)(6862004)(2906002)(356005)(54906003)(8936002)(4326008)(316002)(186003)(36860700001)(26005)(33656002)(84970400001)(53546011)(7696005)(66574015)(336012)(40460700003)(55016003)(6506007)(5660300002)(83380400001)(82310400005)(47076005)(52536014)(30864003); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jun 2022 13:38:55.5088 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5a3987c5-e6ea-4f8e-e709-08da4e0b3a3d 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: DBAEUR03FT022.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR08MB8073 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: Tue, 14 Jun 2022 13:39:05 -0000 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBSaWNoYXJkIEJpZW5lciA8cmd1 ZW50aGVyQHN1c2UuZGU+DQo+IFNlbnQ6IFR1ZXNkYXksIEp1bmUgMTQsIDIwMjIgMjoxOSBQTQ0K PiBUbzogVGFtYXIgQ2hyaXN0aW5hIDxUYW1hci5DaHJpc3RpbmFAYXJtLmNvbT4NCj4gQ2M6IGdj Yy1wYXRjaGVzQGdjYy5nbnUub3JnOyBuZCA8bmRAYXJtLmNvbT47IFJpY2hhcmQgU2FuZGlmb3Jk DQo+IDxSaWNoYXJkLlNhbmRpZm9yZEBhcm0uY29tPg0KPiBTdWJqZWN0OiBSRTogW1BBVENIIDEv Ml1taWRkbGUtZW5kIFN1cHBvcnQgb3B0aW1pemVkIGRpdmlzaW9uIGJ5IHBvdzINCj4gYml0bWFz aw0KPiANCj4gT24gTW9uLCAxMyBKdW4gMjAyMiwgVGFtYXIgQ2hyaXN0aW5hIHdyb3RlOg0KPiAN Cj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBSaWNoYXJkIEJp ZW5lciA8cmd1ZW50aGVyQHN1c2UuZGU+DQo+ID4gPiBTZW50OiBNb25kYXksIEp1bmUgMTMsIDIw MjIgMTI6NDggUE0NCj4gPiA+IFRvOiBUYW1hciBDaHJpc3RpbmEgPFRhbWFyLkNocmlzdGluYUBh cm0uY29tPg0KPiA+ID4gQ2M6IGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnOyBuZCA8bmRAYXJtLmNv bT47IFJpY2hhcmQgU2FuZGlmb3JkDQo+ID4gPiA8UmljaGFyZC5TYW5kaWZvcmRAYXJtLmNvbT4N Cj4gPiA+IFN1YmplY3Q6IFJFOiBbUEFUQ0ggMS8yXW1pZGRsZS1lbmQgU3VwcG9ydCBvcHRpbWl6 ZWQgZGl2aXNpb24gYnkNCj4gPiA+IHBvdzIgYml0bWFzaw0KPiA+ID4NCj4gPiA+IE9uIE1vbiwg MTMgSnVuIDIwMjIsIFRhbWFyIENocmlzdGluYSB3cm90ZToNCj4gPiA+DQo+ID4gPiA+ID4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiBGcm9tOiBSaWNoYXJkIEJpZW5lciA8 cmd1ZW50aGVyQHN1c2UuZGU+DQo+ID4gPiA+ID4gU2VudDogTW9uZGF5LCBKdW5lIDEzLCAyMDIy IDEwOjM5IEFNDQo+ID4gPiA+ID4gVG86IFRhbWFyIENocmlzdGluYSA8VGFtYXIuQ2hyaXN0aW5h QGFybS5jb20+DQo+ID4gPiA+ID4gQ2M6IGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnOyBuZCA8bmRA YXJtLmNvbT47IFJpY2hhcmQgU2FuZGlmb3JkDQo+ID4gPiA+ID4gPFJpY2hhcmQuU2FuZGlmb3Jk QGFybS5jb20+DQo+ID4gPiA+ID4gU3ViamVjdDogUmU6IFtQQVRDSCAxLzJdbWlkZGxlLWVuZCBT dXBwb3J0IG9wdGltaXplZCBkaXZpc2lvbiBieQ0KPiA+ID4gPiA+IHBvdzIgYml0bWFzaw0KPiA+ ID4gPiA+DQo+ID4gPiA+ID4gT24gTW9uLCAxMyBKdW4gMjAyMiwgUmljaGFyZCBCaWVuZXIgd3Jv dGU6DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IE9uIFRodSwgOSBKdW4gMjAyMiwgVGFtYXIgQ2hy aXN0aW5hIHdyb3RlOg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gSGkgQWxsLA0KPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBJbiBwbGVudHkgb2YgaW1hZ2UgYW5kIHZpZGVvIHByb2Nl c3NpbmcgY29kZSBpdCdzIGNvbW1vbiB0bw0KPiA+ID4gPiA+ID4gPiBtb2RpZnkgcGl4ZWwgdmFs dWVzIGJ5IGEgd2lkZW5pbmcgb3BlcmF0aW9uIGFuZCB0aGVuIHNjYWxlDQo+ID4gPiA+ID4gPiA+ IHRoZW0gYmFjayBpbnRvIHJhbmdlDQo+ID4gPiA+ID4gYnkgZGl2aWRpbmcgYnkgMjU1Lg0KPiA+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBUaGlzIHBhdGNoIGFkZHMgYW4gb3B0YWIgdG8gYWxs b3cgdXMgdG8gZW1pdCBhbiBvcHRpbWl6ZWQNCj4gPiA+ID4gPiA+ID4gc2VxdWVuY2Ugd2hlbiBk b2luZyBhbiB1bnNpZ25lZCBkaXZpc2lvbiB0aGF0IGlzIGVxdWl2YWxlbnQgdG86DQo+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgIHggPSB5IC8gKDIgXiAoYml0c2l6ZSAoeSkvMiktMQ0K PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBCb290c3RyYXBwZWQgUmVndGVzdGVkIG9uIGFh cmNoNjQtbm9uZS1saW51eC1nbnUsDQo+ID4gPiA+ID4gPiA+IHg4Nl82NC1wYy1saW51eC1nbnUg YW5kIG5vIGlzc3Vlcy4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gT2sgZm9yIG1hc3Rl cj8NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBMb29raW5nIGF0IDIvMiBpdCBzZWVtcyB0aGF0 IHRoaXMgaXMgdGhlIHdyb25nIHdheSB0byBhdHRhY2sNCj4gPiA+ID4gPiA+IHRoZSBwcm9ibGVt LiAgVGhlIElTQSBkb2Vzbid0IGhhdmUgc3VjaCBpbnN0cnVjdGlvbiBzbyBhZGRpbmcNCj4gPiA+ ID4gPiA+IGFuIG9wdGFiIGxvb2tzIHByZW1hdHVyZS4gIEkgc3VwcG9zZSB0aGF0IHRoZXJlJ3Mg bm8gdW5zaWduZWQNCj4gPiA+ID4gPiA+IHZlY3RvciBpbnRlZ2VyIGRpdmlzaW9uIGFuZCB0aHVz IHdlIG9wZW4tY29kZSB0aGF0IGluIGEgZGlmZmVyZW50DQo+IHdheT8NCj4gPiA+ID4gPiA+IElz bid0IHRoZSBjb3JyZWN0IHRoaW5nIHRoZW4gdG8gZml4dXAgdGhhdCBvcGVuLWNvZGluZyBpZiBp dA0KPiA+ID4gPiA+ID4gaXMgbW9yZQ0KPiA+ID4gZWZmaWNpZW50Pw0KPiA+ID4gPiA+DQo+ID4g PiA+DQo+ID4gPiA+IFRoZSBwcm9ibGVtIGlzIHRoYXQgZXZlbiBpZiB5b3UgZml4dXAgdGhlIG9w ZW4tY29kaW5nIGl0IHdvdWxkDQo+ID4gPiA+IG5lZWQgdG8gYmUgc29tZXRoaW5nIHRhcmdldCBz cGVjaWZpYz8gVGhlIHNlcXVlbmNlIG9mIGluc3RydWN0aW9ucw0KPiA+ID4gPiB3ZSBnZW5lcmF0 ZSBkb24ndCBoYXZlIGEgR0lNUExFIHJlcHJlc2VudGF0aW9uLiAgU28gd2hhdGV2ZXIgaXMNCj4g PiA+ID4gZ2VuZXJhdGVkIEknZCBoYXZlIHRvIGZpeHVwIGluIFJUTCB0aGVuLg0KPiA+ID4NCj4g PiA+IFdoYXQncyB0aGUgb3BlcmF0aW9uIHRoYXQgZG9lc24ndCBoYXZlIGEgR0lNUExFIHJlcHJl c2VudGF0aW9uPw0KPiA+DQo+ID4gRm9yIE5FT04gdXNlIHR3byBvcGVyYXRpb25zOg0KPiA+IDEu IEFkZCBIaWdoIG5hcnJvd2luZyBsb3dwYXJ0LCBlc3NlbnRpYWxseSBkb2luZyAoYSArdyBiKSA+ Pi5uIGJpdHNpemUoYSkvMg0KPiA+ICAgICBXaGVyZSB0aGUgKyB3aWRlbnMgYW5kIHRoZSA+PiBu YXJyb3dzLiAgU28geW91IGdpdmUgaXQgdHdvIHNob3J0cywNCj4gPiBnZXQgYSBieXRlIDIuIEFk ZCB3aWRlbmluZyBhZGQgb2YgbG93cGFydCBzbyBiYXNpY2FsbHkgbG93cGFydCAoYSArdw0KPiA+ IGIpDQo+ID4NCj4gPiBGb3IgU1ZFMiB3ZSB1c2UgYSBkaWZmZXJlbnQgc2VxdWVuY2UsIHdlIHVz ZSB0d28gYmFjay10by1iYWNrDQo+IHNlcXVlbmNlcyBvZjoNCj4gPiAxLiBBZGQgbmFycm93IGhp Z2ggcGFydCAoYm90dG9tKS4gIEluIFNWRSB0aGUgVG9wIGFuZCBCb3R0b20gaW5zdHJ1Y3Rpb25z DQo+IHNlbGVjdA0KPiA+ICAgIEV2ZW4gYW5kIG9kZCBlbGVtZW50cyBvZiB0aGUgdmVjdG9yIHJh dGhlciB0aGFuICJ0b3AgaGFsZiIgYW5kICJib3R0b20NCj4gaGFsZiIuDQo+ID4NCj4gPiAgICBT byB0aGlzIGluc3RydWN0aW9uIGRvZXMgOiBBZGQgZWFjaCB2ZWN0b3IgZWxlbWVudCBvZiB0aGUg Zmlyc3Qgc291cmNlDQo+IHZlY3RvciB0byB0aGUNCj4gPiAgICBjb3JyZXNwb25kaW5nIHZlY3Rv ciBlbGVtZW50IG9mIHRoZSBzZWNvbmQgc291cmNlIHZlY3RvciwgYW5kIHBsYWNlIHRoZQ0KPiBt b3N0DQo+ID4gICAgIHNpZ25pZmljYW50IGhhbGYgb2YgdGhlIHJlc3VsdCBpbiB0aGUgZXZlbi1u dW1iZXJlZCBoYWxmLXdpZHRoIGRlc3RpbmF0aW9uDQo+IGVsZW1lbnRzLA0KPiA+ICAgICB3aGls ZSBzZXR0aW5nIHRoZSBvZGQtbnVtYmVyZWQgZWxlbWVudHMgdG8gemVyby4NCj4gPg0KPiA+IFNv IHRoZXJlJ3MgYW4gZXhwbGljaXQgcGVybXV0ZSBpbiB0aGVyZS4gVGhlIGluc3RydWN0aW9ucyBh cmUNCj4gPiBzdWZmaWNpZW50bHkgZGlmZmVyZW50IHRoYXQgdGhlcmUgd291bGRuJ3QgYmUgYSBz aW5nbGUgR0lNUExFDQo+IHJlcHJlc2VudGF0aW9uLg0KPiANCj4gSSBzZWUuICBBcmUgdGhlc2Ug YWxzbyB1c2VmdWwgdG8gZXhwcmVzcyBzY2FsYXIgaW50ZWdlciBkaXZpc2lvbj8NCg0KSG1tIG5v dCB0aGVzZSBleGFjdCBpbnN0cnVjdGlvbnMgYXMgdGhleSBvbmx5IGV4aXN0IG9uIHZlY3Rvci4g U2NhbGFyIG1heQ0KUG90ZW50aWFsbHkgYmVuZWZpdCBmcm9tIHJld3JpdGluZyB0aGlzIHRvICh4 ICsgKCh4ICsgMjU3KSA+PiA4KSkgPj4gOA0KV2hpY2ggYXZvaWRzIHRoZSBtdWx0aXBseSB3aXRo IHRoZSBtYWdpYyBjb25zdGFudC4gIEJ1dCB0aGUgcHJvYmxlbSBoZXJlIGlzDQp0aGF0IHVubGVz cyB1bmRvbmUgZm9yIHZlY3RvciBpdCB3b3VsZCBsaWtlbHkgZ2VuZXJhdGUgd29yc2UgY29kZSBp ZiB2ZWN0b3JpemVkDQpleGFjdGx5IGxpa2UgdGhpcyBvbiBtb3N0IElTQXMgY29tcGFyZWQgdG8g d2hhdCB3ZSBoYXZlIG5vdy4NCg0KPiANCj4gSSdsbCBkZWZlciB0byBvdGhlcnMgdG8gYWNrIHRo ZSBzcGVjaWFsIHVkaXZfcG93Ml9iaXRtYXNrIG9wdGFiIG9yIHN1Z2dlc3QNCj4gc29tZSBwaWVj ZW1haWwgdGhpbmdzIG90aGVyIHRhcmdldHMgbWlnaHQgYmUgYWJsZSB0byBkbyBhcyB3ZWxsLiAg SXQgZG9lcyBsb29rDQo+IHZlcnkgc3BlY2lhbC4gIEknZCBhbHNvIGJpa2VzaGVkIGl0IHRvDQo+ IHVkaXZfcG93Mm0xIHNpbmNlICdiaXRtYXNrJyBpcyBsZXNzIG9idmlvdXMgdGhhbiAyXm4tMSAo YXNzdW1pbmcgSQ0KPiBpbnRlcnByZXRlZCAnYml0bWFzaycgY29ycmVjdGx5IDspKS4gIEl0IHNl ZW1zIHRvIGJlIGV2ZW4gbGVzcyBnZW5lcmFsIHNpbmNlIGl0IGlzDQo+IGFuIHVuYXJ5IG9wIGFu ZCB0aGUgYWN0dWFsIGRpdmlzb3IgaXMgY29uc3RyYWluZWQgYnkgdGhlIG1vZGUgaXRzZWxmPw0K DQpJIGFtIGhhcHB5IHRvIGNoYW5nZSB0aGUgbmFtZSwgYW5kIHF1aXRlIGhhcHB5IHRvIGFkZCB0 aGUgY29uc3RhbnQgYXMgYW4NCmFyZ3VtZW50LiAgIEkgaGFkIG9ubHkgbWFkZSBpdCB0aGlzIHNw ZWNpZmljIGJlY2F1c2UgdGhpcyB3YXMgdGhlIG9ubHkgZmFpcmx5DQpjb21tb24gb3BlcmF0aW9u IEkgaGFkIGZvdW5kLiAgVGhvdWdoIHBlcmhhcHMgaXQncyBpbmRlZWQgYmV0dGVyIHRvIGtlZXAN CnRoZSBvcHRhYiBhIGJpdCBtb3JlIGdlbmVyYWw/DQoNClRoYW5rcywNClRhbWFyDQoNCj4gDQo+ IFJpY2hhcmQuDQo+IA0KPiA+ID4NCj4gPiA+IEkgdGhpbmsgZm9yIGNvc3RpbmcgeW91IGNvdWxk IHJlc29ydCB0byB0aGUgKl9jb3N0IGZ1bmN0aW9ucyBhcyB1c2VkDQo+ID4gPiBieSBzeW50aF9t dWx0IGFuZCBmcmllbmRzLg0KPiA+ID4NCj4gPiA+ID4gVGhlIHByb2JsZW0gd2l0aCB0aGlzIGlz IHRoYXQgaXQgc2VlbWVkIGZyYWdpbGUuIFdlIGdlbmVyYXRlIGZyb20NCj4gPiA+ID4gdGhlDQo+ ID4gPiA+IFZlY3Rvcml6ZXI6DQo+ID4gPiA+DQo+ID4gPiA+ICAgdmVjdF9fMy44XzM1ID0gTUVN IDx2ZWN0b3IoMTYpIHVuc2lnbmVkIGNoYXI+IFsodWludDhfdCAqKV8yMV07DQo+ID4gPiA+ICAg dmVjdF9wYXR0XzI4LjlfMzcgPSBXSURFTl9NVUxUX0xPX0VYUFIgPHZlY3RfXzMuOF8zNSwNCj4g PiA+IHZlY3RfY3N0X18zNj47DQo+ID4gPiA+ICAgdmVjdF9wYXR0XzI4LjlfMzggPSBXSURFTl9N VUxUX0hJX0VYUFIgPHZlY3RfXzMuOF8zNSwNCj4gPiA+IHZlY3RfY3N0X18zNj47DQo+ID4gPiA+ ICAgdmVjdF9wYXR0XzE5LjEwXzQwID0gdmVjdF9wYXR0XzI4LjlfMzcgaCogeyAzMjg5NywgMzI4 OTcsIDMyODk3LA0KPiA+ID4gPiAzMjg5NywNCj4gPiA+IDMyODk3LCAzMjg5NywgMzI4OTcsIDMy ODk3IH07DQo+ID4gPiA+ICAgdmVjdF9wYXR0XzE5LjEwXzQxID0gdmVjdF9wYXR0XzI4LjlfMzgg aCogeyAzMjg5NywgMzI4OTcsIDMyODk3LA0KPiA+ID4gPiAzMjg5NywNCj4gPiA+IDMyODk3LCAz Mjg5NywgMzI4OTcsIDMyODk3IH07DQo+ID4gPiA+ICAgdmVjdF9wYXR0XzI1LjExXzQyID0gdmVj dF9wYXR0XzE5LjEwXzQwID4+IDc7DQo+ID4gPiA+ICAgdmVjdF9wYXR0XzI1LjExXzQzID0gdmVj dF9wYXR0XzE5LjEwXzQxID4+IDc7DQo+ID4gPiA+ICAgdmVjdF9wYXR0XzExLjEyXzQ0ID0gVkVD X1BBQ0tfVFJVTkNfRVhQUiA8dmVjdF9wYXR0XzI1LjExXzQyLA0KPiA+ID4gPiB2ZWN0X3BhdHRf MjUuMTFfNDM+Ow0KPiA+ID4gPg0KPiA+ID4gPiBhbmQgaWYgdGhlIG1hZ2ljIGNvbnN0YW50cyBj aGFuZ2UgdGhlbiB3ZSBtaXNzIHRoZSBvcHRpbWl6YXRpb24uIEkNCj4gPiA+ID4gY291bGQgcmV3 cml0ZSB0aGUgb3BlbiBjb2RpbmcgdG8gdXNlIHNoaWZ0cyBhbG9uZSwgYnV0IHRoYXQgbWlnaHQN Cj4gPiA+ID4gYmUgYQ0KPiA+ID4gcmVncmVzc2lvbiBmb3Igc29tZSB1YXJjaGVzIEkgd291bGQg aW1hZ2luZS4NCj4gPiA+DQo+ID4gPiBPSywgc28geW91IGRvIGhhdmUgYSBoaWdocGFydCBtdWx0 aXBseS4gIEkgc3VwcG9zZSB0aGUgcGF0dGVybiBpcw0KPiA+ID4gdG9vIGRlZXAgdG8gYmUgcmVj b2duaXplZCBieSBjb21iaW5lPyAgV2hhdCdzIHRoZSBSVEwgZ29vZCB2cy4gYmFkDQo+ID4gPiBi ZWZvcmUgY29tYmluZSBvZiBvbmUgb2YgdGhlIGV4cHJlc3Npb25zPw0KPiA+DQo+ID4gWWVhaCBj b21iaW5lIG9ubHkgdHJpZWQgMi0zIGluc3RydWN0aW9ucywgYnV0IHRvIHVzZSB0aGVzZSBzZXF1 ZW5jZXMNCj4gPiB3ZSBoYXZlIHRvIG1hdGNoIHRoZSBlbnRpcmUgY2hhaW4gYXMgdGhlIGluc3Ry dWN0aW9ucyBkbyB0aGUgbmFycm93aW5nDQo+ID4gdGhlbXNlbHZlcy4gIFNvIHRoZSBSVEwgZm9y IHRoZSBiYWQgY2FzZSBiZWZvcmUgY29tYmluZSBpcw0KPiA+DQo+ID4gKGluc24gMzkgMzcgNDIg NCAoc2V0IChyZWc6VjRTSSAxMTkpDQo+ID4gICAgICAgICAobXVsdDpWNFNJICh6ZXJvX2V4dGVu ZDpWNFNJICh2ZWNfc2VsZWN0OlY0SEkgKHJlZzpWOEhJIDExNiBbDQo+IHZlY3RfcGF0dF8yOC45 RC4zNzU0IF0pDQo+ID4gICAgICAgICAgICAgICAgICAgICAocGFyYWxsZWw6VjhISSBbDQo+ID4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgNCBbMHg0XSkNCj4gPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCA1IFsweDVdKQ0KPiA+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDYgWzB4Nl0pDQo+ID4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChjb25zdF9pbnQgNyBbMHg3XSkNCj4gPiAgICAgICAgICAgICAgICAg ICAgICAgICBdKSkpDQo+ID4gICAgICAgICAgICAgKHplcm9fZXh0ZW5kOlY0U0kgKHZlY19zZWxl Y3Q6VjRISSAocmVnOlY4SEkgMTE4KQ0KPiA+ICAgICAgICAgICAgICAgICAgICAgKHBhcmFsbGVs OlY4SEkgWw0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDQgWzB4 NF0pDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgNSBbMHg1XSkN Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCA2IFsweDZdKQ0KPiA+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDcgWzB4N10pDQo+ID4gICAg ICAgICAgICAgICAgICAgICAgICAgXSkpKSkpICIvYXBwL2V4YW1wbGUuYyI6NjoxNCAyMTE0DQo+ IHthYXJjaDY0X3NpbWRfdmVjX3VtdWx0X2hpX3Y4aGl9DQo+ID4gICAgICAoZXhwcl9saXN0OlJF R19ERUFEIChyZWc6VjhISSAxMTYgWyB2ZWN0X3BhdHRfMjguOUQuMzc1NCBdKQ0KPiA+ICAgICAg ICAgKGV4cHJfbGlzdDpSRUdfRVFVQUwgKG11bHQ6VjRTSSAoemVyb19leHRlbmQ6VjRTSSAodmVj X3NlbGVjdDpWNEhJDQo+IChyZWc6VjhISSAxMTYgWyB2ZWN0X3BhdHRfMjguOUQuMzc1NCBdKQ0K PiA+ICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJhbGxlbDpWOEhJIFsNCj4gPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgNCBbMHg0XSkNCj4gPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgNSBbMHg1XSkNCj4gPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgNiBbMHg2XSkNCj4gPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgNyBbMHg3XSkNCj4gPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXSkpKQ0KPiA+ICAgICAgICAgICAgICAgICAoY29uc3RfdmVj dG9yOlY0U0kgWw0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMzI4OTcg WzB4ODA4MV0pIHJlcGVhdGVkIHg0DQo+ID4gICAgICAgICAgICAgICAgICAgICBdKSkNCj4gPiAg ICAgICAgICAgICAobmlsKSkpKQ0KPiA+IChpbnNuIDQyIDM5IDQzIDQgKHNldCAocmVnOlY4SEkg MTIxIFsgdmVjdF9wYXR0XzE5LjEwRC4zNzU1IF0pDQo+ID4gICAgICAgICAodW5zcGVjOlY4SEkg Ww0KPiA+ICAgICAgICAgICAgICAgICAoc3VicmVnOlY4SEkgKHJlZzpWNFNJIDExNykgMCkNCj4g PiAgICAgICAgICAgICAgICAgKHN1YnJlZzpWOEhJIChyZWc6VjRTSSAxMTkpIDApDQo+ID4gICAg ICAgICAgICAgXSBVTlNQRUNfVVpQMikpICIvYXBwL2V4YW1wbGUuYyI6NjoxNCA0MDk2IHthYXJj aDY0X3V6cDJ2OGhpfQ0KPiA+ICAgICAgKGV4cHJfbGlzdDpSRUdfREVBRCAocmVnOlY0U0kgMTE5 KQ0KPiA+ICAgICAgICAgKGV4cHJfbGlzdDpSRUdfREVBRCAocmVnOlY0U0kgMTE3KQ0KPiA+ICAg ICAgICAgICAgIChuaWwpKSkpDQo+ID4gKGluc24gNDMgNDIgNDQgNCAoc2V0IChyZWc6VjhISSAx MjQgWyB2ZWN0X3BhdHRfMjUuMTFELjM3NTYgXSkNCj4gPiAgICAgICAgIChsc2hpZnRydDpWOEhJ IChyZWc6VjhISSAxMjEgWyB2ZWN0X3BhdHRfMTkuMTBELjM3NTUgXSkNCj4gPiAgICAgICAgICAg ICAoY29uc3RfdmVjdG9yOlY4SEkgWw0KPiA+ICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2lu dCA3IFsweDddKSByZXBlYXRlZCB4OA0KPiA+ICAgICAgICAgICAgICAgICBdKSkpICIvYXBwL2V4 YW1wbGUuYyI6NjoxNCAxODAzIHthYXJjaDY0X3NpbWRfbHNocnY4aGl9DQo+ID4gICAgICAoZXhw cl9saXN0OlJFR19ERUFEIChyZWc6VjhISSAxMjEgWyB2ZWN0X3BhdHRfMTkuMTBELjM3NTUgXSkN Cj4gPiAgICAgICAgIChuaWwpKSkNCj4gPiAoaW5zbiA0NCA0MyA0NiA0IChzZXQgKHJlZzpWOEhJ IDEyNSBbIHZlY3RfcGF0dF8yOC45RC4zNzU0IF0pDQo+ID4gICAgICAgICAobXVsdDpWOEhJICh6 ZXJvX2V4dGVuZDpWOEhJICh2ZWNfc2VsZWN0OlY4UUkgKHJlZzpWMTZRSSAxMTUgWyBNRU0NCj4g PHZlY3RvcigxNikgdW5zaWduZWQgY2hhckQuMjE+IFsodWludDhfdEQuMzcwNCAqKV8yMSBjbGlx dWUgMSBiYXNlIDFdIF0pDQo+ID4gICAgICAgICAgICAgICAgICAgICAocGFyYWxsZWw6VjE2UUkg Ww0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDggWzB4OF0pDQo+ ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgOSBbMHg5XSkNCj4gPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAxMCBbMHhhXSkNCj4gPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAxMSBbMHhiXSkNCj4gPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAxMiBbMHhjXSkNCj4gPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAxMyBbMHhkXSkNCj4gPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGNvbnN0X2ludCAxNCBbMHhlXSkNCj4gPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGNvbnN0X2ludCAxNSBbMHhmXSkNCj4gPiAgICAgICAgICAgICAgICAgICAg ICAgICBdKSkpDQo+ID4gICAgICAgICAgICAgKHplcm9fZXh0ZW5kOlY4SEkgKHZlY19zZWxlY3Q6 VjhRSSAocmVnOlYxNlFJIDEwMCBbIHZlY3RfY3N0X18zNiBdKQ0KPiA+ICAgICAgICAgICAgICAg ICAgICAgKHBhcmFsbGVsOlYxNlFJIFsNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGNvbnN0X2ludCA4IFsweDhdKQ0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29u c3RfaW50IDkgWzB4OV0pDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9p bnQgMTAgWzB4YV0pDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQg MTEgWzB4Yl0pDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMTIg WzB4Y10pDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMTMgWzB4 ZF0pDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMTQgWzB4ZV0p DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMTUgWzB4Zl0pDQo+ ID4gICAgICAgICAgICAgICAgICAgICAgICAgXSkpKSkpICIvYXBwL2V4YW1wbGUuYyI6NjoxNCAy MTEyDQo+IHthYXJjaDY0X3NpbWRfdmVjX3VtdWx0X2hpX3YxNnFpfQ0KPiA+ICAgICAgKGV4cHJf bGlzdDpSRUdfREVBRCAocmVnOlYxNlFJIDExNSBbIE1FTSA8dmVjdG9yKDE2KSB1bnNpZ25lZA0K PiBjaGFyRC4yMT4gWyh1aW50OF90RC4zNzA0ICopXzIxIGNsaXF1ZSAxIGJhc2UgMV0gXSkNCj4g PiAgICAgICAgIChuaWwpKSkNCj4gPiAoaW5zbiA0NiA0NCA0OCA0IChzZXQgKHJlZzpWNFNJIDEy NikNCj4gPiAgICAgICAgIChtdWx0OlY0U0kgKHplcm9fZXh0ZW5kOlY0U0kgKHN1YnJlZzpWNEhJ IChyZWc6VjhISSAxMjUgWw0KPiB2ZWN0X3BhdHRfMjguOUQuMzc1NCBdKSAwKSkNCj4gPiAgICAg ICAgICAgICAoemVyb19leHRlbmQ6VjRTSSAoc3VicmVnOlY0SEkgKHJlZzpWOEhJIDExOCkgMCkp KSkNCj4gIi9hcHAvZXhhbXBsZS5jIjo2OjE0IDIxMDgge2FhcmNoNjRfaW50cmluc2ljX3ZlY191 bXVsdF9sb192NGhpfQ0KPiA+ICAgICAgKGV4cHJfbGlzdDpSRUdfRVFVQUwgKG11bHQ6VjRTSSAo emVyb19leHRlbmQ6VjRTSSAoc3VicmVnOlY0SEkNCj4gKHJlZzpWOEhJIDEyNSBbIHZlY3RfcGF0 dF8yOC45RC4zNzU0IF0pIDApKQ0KPiA+ICAgICAgICAgICAgIChjb25zdF92ZWN0b3I6VjRTSSBb DQo+ID4gICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDMyODk3IFsweDgwODFdKSByZXBl YXRlZCB4NA0KPiA+ICAgICAgICAgICAgICAgICBdKSkNCj4gPiAgICAgICAgIChuaWwpKSkNCj4g PiAoaW5zbiA0OCA0NiA1MSA0IChzZXQgKHJlZzpWNFNJIDEyOCkNCj4gPiAgICAgICAgIChtdWx0 OlY0U0kgKHplcm9fZXh0ZW5kOlY0U0kgKHZlY19zZWxlY3Q6VjRISSAocmVnOlY4SEkgMTI1IFsN Cj4gdmVjdF9wYXR0XzI4LjlELjM3NTQgXSkNCj4gPiAgICAgICAgICAgICAgICAgICAgIChwYXJh bGxlbDpWOEhJIFsNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCA0 IFsweDRdKQ0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDUgWzB4 NV0pDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgNiBbMHg2XSkN Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCA3IFsweDddKQ0KPiA+ ICAgICAgICAgICAgICAgICAgICAgICAgIF0pKSkNCj4gPiAgICAgICAgICAgICAoemVyb19leHRl bmQ6VjRTSSAodmVjX3NlbGVjdDpWNEhJIChyZWc6VjhISSAxMTgpDQo+ID4gICAgICAgICAgICAg ICAgICAgICAocGFyYWxsZWw6VjhISSBbDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAg IChjb25zdF9pbnQgNCBbMHg0XSkNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNv bnN0X2ludCA1IFsweDVdKQ0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3Rf aW50IDYgWzB4Nl0pDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQg NyBbMHg3XSkNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICBdKSkpKSkgIi9hcHAvZXhhbXBs ZS5jIjo2OjE0IDIxMTQNCj4ge2FhcmNoNjRfc2ltZF92ZWNfdW11bHRfaGlfdjhoaX0NCj4gPiAg ICAgIChleHByX2xpc3Q6UkVHX0RFQUQgKHJlZzpWOEhJIDEyNSBbIHZlY3RfcGF0dF8yOC45RC4z NzU0IF0pDQo+ID4gICAgICAgICAoZXhwcl9saXN0OlJFR19FUVVBTCAobXVsdDpWNFNJICh6ZXJv X2V4dGVuZDpWNFNJICh2ZWNfc2VsZWN0OlY0SEkNCj4gKHJlZzpWOEhJIDEyNSBbIHZlY3RfcGF0 dF8yOC45RC4zNzU0IF0pDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgKHBhcmFsbGVsOlY4 SEkgWw0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCA0IFsw eDRdKQ0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCA1IFsw eDVdKQ0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCA2IFsw eDZdKQ0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCA3IFsw eDddKQ0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSkpDQo+ID4gICAgICAgICAg ICAgICAgIChjb25zdF92ZWN0b3I6VjRTSSBbDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAg KGNvbnN0X2ludCAzMjg5NyBbMHg4MDgxXSkgcmVwZWF0ZWQgeDQNCj4gPiAgICAgICAgICAgICAg ICAgICAgIF0pKQ0KPiA+ICAgICAgICAgICAgIChuaWwpKSkpDQo+ID4gKGluc24gNTEgNDggNTIg NCAoc2V0IChyZWc6VjhISSAxMzAgWyB2ZWN0X3BhdHRfMTkuMTBELjM3NTUgXSkNCj4gPiAgICAg ICAgICh1bnNwZWM6VjhISSBbDQo+ID4gICAgICAgICAgICAgICAgIChzdWJyZWc6VjhISSAocmVn OlY0U0kgMTI2KSAwKQ0KPiA+ICAgICAgICAgICAgICAgICAoc3VicmVnOlY4SEkgKHJlZzpWNFNJ IDEyOCkgMCkNCj4gPiAgICAgICAgICAgICBdIFVOU1BFQ19VWlAyKSkgIi9hcHAvZXhhbXBsZS5j Ijo2OjE0IDQwOTYge2FhcmNoNjRfdXpwMnY4aGl9DQo+ID4gICAgICAoZXhwcl9saXN0OlJFR19E RUFEIChyZWc6VjRTSSAxMjgpDQo+ID4gICAgICAgICAoZXhwcl9saXN0OlJFR19ERUFEIChyZWc6 VjRTSSAxMjYpDQo+ID4gICAgICAgICAgICAgKG5pbCkpKSkNCj4gPiAoaW5zbiA1MiA1MSA1MyA0 IChzZXQgKHJlZzpWOEhJIDEzMyBbIHZlY3RfcGF0dF8yNS4xMUQuMzc1NiBdKQ0KPiA+ICAgICAg ICAgKGxzaGlmdHJ0OlY4SEkgKHJlZzpWOEhJIDEzMCBbIHZlY3RfcGF0dF8xOS4xMEQuMzc1NSBd KQ0KPiA+ICAgICAgICAgICAgIChjb25zdF92ZWN0b3I6VjhISSBbDQo+ID4gICAgICAgICAgICAg ICAgICAgICAoY29uc3RfaW50IDcgWzB4N10pIHJlcGVhdGVkIHg4DQo+ID4gICAgICAgICAgICAg ICAgIF0pKSkgIi9hcHAvZXhhbXBsZS5jIjo2OjE0IDE4MDMge2FhcmNoNjRfc2ltZF9sc2hydjho aX0NCj4gPiAgICAgIChleHByX2xpc3Q6UkVHX0RFQUQgKHJlZzpWOEhJIDEzMCBbIHZlY3RfcGF0 dF8xOS4xMEQuMzc1NSBdKQ0KPiA+ICAgICAgICAgKG5pbCkpKQ0KPiA+DQo+ID4gQW5kIGZvciBn b29kOg0KPiA+DQo+ID4gKGluc24gMzIgMzAgMzQgNCAoc2V0IChyZWc6VjE2UUkgMTE4KQ0KPiA+ ICAgICAgICAgKHZlY19jb25jYXQ6VjE2UUkgKHVuc3BlYzpWOFFJIFsNCj4gPiAgICAgICAgICAg ICAgICAgICAgIChyZWc6VjhISSAxMTQgWyB2ZWN0X3BhdHRfMjguOSBdKQ0KPiA+ICAgICAgICAg ICAgICAgICAgICAgKHJlZzpWOEhJIDExNSkNCj4gPiAgICAgICAgICAgICAgICAgXSBVTlNQRUNf QURESE4pDQo+ID4gICAgICAgICAgICAgKGNvbnN0X3ZlY3RvcjpWOFFJIFsNCj4gPiAgICAgICAg ICAgICAgICAgICAgIChjb25zdF9pbnQgMCBbMF0pIHJlcGVhdGVkIHg4DQo+ID4gICAgICAgICAg ICAgICAgIF0pKSkgImRyYXcuYyI6NjozNSAyNjg4IHthYXJjaDY0X2FkZGhudjhoaV9pbnNuX2xl fQ0KPiA+ICAgICAgKGV4cHJfbGlzdDpSRUdfRVFVQUwgKHZlY19jb25jYXQ6VjE2UUkgKHVuc3Bl YzpWOFFJIFsNCj4gPiAgICAgICAgICAgICAgICAgICAgIChyZWc6VjhISSAxMTQgWyB2ZWN0X3Bh dHRfMjguOSBdKQ0KPiA+ICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X3ZlY3RvcjpWOEhJIFsN Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAyNTcgWzB4MTAxXSkg cmVwZWF0ZWQgeDgNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICBdKQ0KPiA+ICAgICAgICAg ICAgICAgICBdIFVOU1BFQ19BRERITikNCj4gPiAgICAgICAgICAgICAoY29uc3RfdmVjdG9yOlY4 UUkgWw0KPiA+ICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAwIFswXSkgcmVwZWF0ZWQg eDgNCj4gPiAgICAgICAgICAgICAgICAgXSkpDQo+ID4gICAgICAgICAobmlsKSkpDQo+ID4gKGlu c24gMzQgMzIgMzUgNCAoc2V0IChyZWc6VjhISSAxMTcpDQo+ID4gICAgICAgICAocGx1czpWOEhJ ICh6ZXJvX2V4dGVuZDpWOEhJIChzdWJyZWc6VjhRSSAocmVnOlYxNlFJIDExOCkgMCkpDQo+ID4g ICAgICAgICAgICAgKHJlZzpWOEhJIDExNCBbIHZlY3RfcGF0dF8yOC45IF0pKSkgImRyYXcuYyI6 NjozNSAyNjM1DQo+IHthYXJjaDY0X3VhZGR3djhxaX0NCj4gPiAgICAgIChleHByX2xpc3Q6UkVH X0RFQUQgKHJlZzpWMTZRSSAxMTgpDQo+ID4gICAgICAgICAoZXhwcl9saXN0OlJFR19ERUFEIChy ZWc6VjhISSAxMTQgWyB2ZWN0X3BhdHRfMjguOSBdKQ0KPiA+ICAgICAgICAgICAgIChuaWwpKSkp DQo+ID4gKGluc24gMzUgMzQgMzcgNCAoc2V0IChyZWc6VjhISSAxMDMgWyB2ZWN0X3BhdHRfMjUu MTAgXSkNCj4gPiAgICAgICAgIChsc2hpZnRydDpWOEhJIChyZWc6VjhISSAxMTcpDQo+ID4gICAg ICAgICAgICAgKGNvbnN0X3ZlY3RvcjpWOEhJIFsNCj4gPiAgICAgICAgICAgICAgICAgICAgIChj b25zdF9pbnQgOCBbMHg4XSkgcmVwZWF0ZWQgeDgNCj4gPiAgICAgICAgICAgICAgICAgXSkpKSAi ZHJhdy5jIjo2OjM1IDE3NDEge2FhcmNoNjRfc2ltZF9sc2hydjhoaX0NCj4gPiAgICAgIChleHBy X2xpc3Q6UkVHX0RFQUQgKHJlZzpWOEhJIDExNykNCj4gPiAgICAgICAgIChuaWwpKSkNCj4gPiAo aW5zbiAzNyAzNSAzOSA0IChzZXQgKHJlZzpWMTZRSSAxMjIpDQo+ID4gICAgICAgICAodmVjX2Nv bmNhdDpWMTZRSSAodW5zcGVjOlY4UUkgWw0KPiA+ICAgICAgICAgICAgICAgICAgICAgKHJlZzpW OEhJIDEwMiBbIHZlY3RfcGF0dF8yOC45IF0pDQo+ID4gICAgICAgICAgICAgICAgICAgICAocmVn OlY4SEkgMTE1KQ0KPiA+ICAgICAgICAgICAgICAgICBdIFVOU1BFQ19BRERITikNCj4gPiAgICAg ICAgICAgICAoY29uc3RfdmVjdG9yOlY4UUkgWw0KPiA+ICAgICAgICAgICAgICAgICAgICAgKGNv bnN0X2ludCAwIFswXSkgcmVwZWF0ZWQgeDgNCj4gPiAgICAgICAgICAgICAgICAgXSkpKSAiZHJh dy5jIjo2OjM1IDI2ODgge2FhcmNoNjRfYWRkaG52OGhpX2luc25fbGV9DQo+ID4gICAgICAoZXhw cl9saXN0OlJFR19FUVVBTCAodmVjX2NvbmNhdDpWMTZRSSAodW5zcGVjOlY4UUkgWw0KPiA+ICAg ICAgICAgICAgICAgICAgICAgKHJlZzpWOEhJIDEwMiBbIHZlY3RfcGF0dF8yOC45IF0pDQo+ID4g ICAgICAgICAgICAgICAgICAgICAoY29uc3RfdmVjdG9yOlY4SEkgWw0KPiA+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDI1NyBbMHgxMDFdKSByZXBlYXRlZCB4OA0KPiA+ ICAgICAgICAgICAgICAgICAgICAgICAgIF0pDQo+ID4gICAgICAgICAgICAgICAgIF0gVU5TUEVD X0FEREhOKQ0KPiA+ICAgICAgICAgICAgIChjb25zdF92ZWN0b3I6VjhRSSBbDQo+ID4gICAgICAg ICAgICAgICAgICAgICAoY29uc3RfaW50IDAgWzBdKSByZXBlYXRlZCB4OA0KPiA+ICAgICAgICAg ICAgICAgICBdKSkNCj4gPiAgICAgICAgIChuaWwpKSkNCj4gPiAoaW5zbiAzOSAzNyA0MCA0IChz ZXQgKHJlZzpWOEhJIDEyMSkNCj4gPiAgICAgICAgIChwbHVzOlY4SEkgKHplcm9fZXh0ZW5kOlY4 SEkgKHN1YnJlZzpWOFFJIChyZWc6VjE2UUkgMTIyKSAwKSkNCj4gPiAgICAgICAgICAgICAocmVn OlY4SEkgMTAyIFsgdmVjdF9wYXR0XzI4LjkgXSkpKSAiZHJhdy5jIjo2OjM1IDI2MzUNCj4ge2Fh cmNoNjRfdWFkZHd2OHFpfQ0KPiA+ICAgICAgKGV4cHJfbGlzdDpSRUdfREVBRCAocmVnOlYxNlFJ IDEyMikNCj4gPiAgICAgICAgIChleHByX2xpc3Q6UkVHX0RFQUQgKHJlZzpWOEhJIDEwMiBbIHZl Y3RfcGF0dF8yOC45IF0pDQo+ID4gICAgICAgICAgICAgKG5pbCkpKSkNCj4gPiAoaW5zbiA0MCAz OSA0MSA0IChzZXQgKHJlZzpWOEhJIDEwNCBbIHZlY3RfcGF0dF8yNS4xMCBdKQ0KPiA+ICAgICAg ICAgKGxzaGlmdHJ0OlY4SEkgKHJlZzpWOEhJIDEyMSkNCj4gPiAgICAgICAgICAgICAoY29uc3Rf dmVjdG9yOlY4SEkgWw0KPiA+ICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCA4IFsweDhd KSByZXBlYXRlZCB4OA0KPiA+ICAgICAgICAgICAgICAgICBdKSkpICJkcmF3LmMiOjY6MzUgMTc0 MSB7YWFyY2g2NF9zaW1kX2xzaHJ2OGhpfQ0KPiA+DQo+ID4gQ2hlZXJzLA0KPiA+IFRhbWFyDQo+ ID4NCj4gPiA+DQo+ID4gPiA+ID4gQnR3LCBvbiB4ODYgd2UgdXNlDQo+ID4gPiA+ID4NCj4gPiA+ ID4gPiB0LmM6MzoyMTogbm90ZTogICByZXBsYWNpbmcgZWFybGllciBwYXR0ZXJuIHBhdHRfMjUg PSBwYXR0XzI4IC8gMjU1Ow0KPiA+ID4gPiA+IHQuYzozOjIxOiBub3RlOiAgIHdpdGggcGF0dF8y NSA9IHBhdHRfMTkgPj4gNzsNCj4gPiA+ID4gPiB0LmM6MzoyMTogbm90ZTogICBleHRyYSBwYXR0 ZXJuIHN0bXQ6IHBhdHRfMTkgPSBwYXR0XzI4IGgqIDMyODk3Ow0KPiA+ID4gPiA+DQo+ID4gPiA+ ID4gd2hpY2ggdHJhbnNsYXRlcyB0bw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gICAgICAgICB2cG11 bGh1dyAgICAgICAgJXltbTQsICV5bW0wLCAleW1tMA0KPiA+ID4gPiA+ICAgICAgICAgdnBtdWxo dXcgICAgICAgICV5bW00LCAleW1tMSwgJXltbTENCj4gPiA+ID4gPiAgICAgICAgIHZwc3JsdyAg JDcsICV5bW0wLCAleW1tMA0KPiA+ID4gPiA+ICAgICAgICAgdnBzcmx3ICAkNywgJXltbTEsICV5 bW0xDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiB0aGVyZSdzIG9kZA0KPiA+ID4gPiA+DQo+ID4gPiA+ ID4gICAgICAgICB2cGFuZCAgICV5bW0wLCAleW1tMywgJXltbTANCj4gPiA+ID4gPiAgICAgICAg IHZwYW5kICAgJXltbTEsICV5bW0zLCAleW1tMQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gYmVmb3Jl ICgleW1tMyBpcyBhbGwgMHgwMGZmKQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gICAgICAgICB2cGFj a3Vzd2IgICAgICAgJXltbTEsICV5bW0wLCAleW1tMA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gdGhh dCdzIG5vdCB2aXNpYmxlIGluIEdJTVBMRS4gIEkgZ3Vlc3MgYWFyY2g2NCBsYWNrcyBhIGhpZ2hw YXJ0DQo+ID4gPiA+ID4gbXVsdGlwbHkNCj4gPiA+IGhlcmU/DQo+ID4gPiA+ID4gSW4gYW55IGNh c2UsIGl0IHNlZW1zIHRoYXQgZ2VuZXJpYyBkaXZpc2lvbiBleHBhbnNpb24gY291bGQgYmUNCj4g PiA+ID4gPiBpbXByb3ZlZCBoZXJlPyAoY2hvb3NlX211bHRpcGxpZXI/KQ0KPiA+ID4gPg0KPiA+ ID4gPiBXZSBkbyBnZW5lcmF0ZSBtdWx0aXBseSBoaWdocGFydCBoZXJlLCBidXQgdGhlIHBhdGNo IGNvbXBsZXRlbHkNCj4gPiA+ID4gYXZvaWRzIG11bHRpcGxpZXMgYW5kIHNoaWZ0cyBlbnRpcmVs eSBieSBjcmVhdGl2ZSB1c2Ugb2YgdGhlIElTQS4NCj4gPiA+ID4gQW5vdGhlciByZWFzb24gSQ0K PiA+ID4gd2VudCBmb3IgYW4gb3B0YWIgaXMgY29zdGluZy4NCj4gPiA+ID4gVGhlIGNob3NlbiBv cGVyYXRpb25zIGFyZSBzaWduaWZpY2FudGx5IGNoZWFwZXIgb24gYWxsIEFybSB1YXJjaGVzDQo+ ID4gPiA+IHRoYW4NCj4gPiA+IFNoaWZ0cyBhbmQgbXVsdGlwbHkuDQo+ID4gPiA+DQo+ID4gPiA+ IFRoaXMgbWVhbnMgd2UgZ2V0IHZlY3Rvcml6YXRpb24gaW4gc29tZSBjYXNlcyB3aGVyZSB0aGUg Y29zdCBtb2RlbA0KPiA+ID4gPiB3b3VsZCBjb3JyZWN0bHkgc2F5IEl0J3MgdG9vIGV4cGVuc2l2 ZSB0byB2ZWN0b3JpemUuIFBhcnRpY3VsYXJseQ0KPiA+ID4gPiBhcm91bmQNCj4gPiA+IGRvdWJs ZSBwcmVjaXNpb24uDQo+ID4gPiA+DQo+ID4gPiA+IFRoYW5rcywNCj4gPiA+ID4gVGFtYXINCj4g PiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFJpY2hhcmQuDQo+ID4gPiA+ID4NCj4gPiA+ID4g PiA+IFJpY2hhcmQuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBUaGFua3MsDQo+ID4gPiA+ ID4gPiA+IFRhbWFyDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IGdjYy9DaGFuZ2VMb2c6 DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IAkqIGludGVybmFsLWZuLmRlZiAoRElWX1BP VzJfQklUTUFTSyk6IE5ldy4NCj4gPiA+ID4gPiA+ID4gCSogb3B0YWJzLmRlZiAodWRpdl9wb3cy X2JpdG1hc2tfb3B0YWIpOiBOZXcuDQo+ID4gPiA+ID4gPiA+IAkqIGRvYy9tZC50ZXhpOiBEb2N1 bWVudCBpdC4NCj4gPiA+ID4gPiA+ID4gCSogdHJlZS12ZWN0LXBhdHRlcm5zLmNjICh2ZWN0X3Jl Y29nX2Rpdm1vZF9wYXR0ZXJuKToNCj4gPiA+ID4gPiA+ID4gUmVjb2duaXplDQo+ID4gPiA+ID4g cGF0dGVybi4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gZ2NjL3Rlc3RzdWl0ZS9DaGFu Z2VMb2c6DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IAkqIGdjYy5kZy92ZWN0L3ZlY3Qt ZGl2LWJpdG1hc2stMS5jOiBOZXcgdGVzdC4NCj4gPiA+ID4gPiA+ID4gCSogZ2NjLmRnL3ZlY3Qv dmVjdC1kaXYtYml0bWFzay0yLmM6IE5ldyB0ZXN0Lg0KPiA+ID4gPiA+ID4gPiAJKiBnY2MuZGcv dmVjdC92ZWN0LWRpdi1iaXRtYXNrLTMuYzogTmV3IHRlc3QuDQo+ID4gPiA+ID4gPiA+IAkqIGdj Yy5kZy92ZWN0L3ZlY3QtZGl2LWJpdG1hc2suaDogTmV3IGZpbGUuDQo+ID4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiA+IC0tLSBpbmxpbmUgY29weSBvZiBwYXRjaCAtLQ0KPiA+ID4gPiA+ID4gPiBk aWZmIC0tZ2l0IGEvZ2NjL2RvYy9tZC50ZXhpIGIvZ2NjL2RvYy9tZC50ZXhpIGluZGV4DQo+ID4g PiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+DQo+IGYzNjE5YzUwNWMwMjVmMTU4YzJiYzY0NzU2 NTMxODc3Mzc4YjIyZTEuLjc4NGM0OWQ3ZDI0Y2VmNzYxOWU0ZDYxM2Y3DQo+ID4gPiA+ID4gPiA+ IGI0ZjZlOTQ1ODY2YzM4IDEwMDY0NA0KPiA+ID4gPiA+ID4gPiAtLS0gYS9nY2MvZG9jL21kLnRl eGkNCj4gPiA+ID4gPiA+ID4gKysrIGIvZ2NjL2RvYy9tZC50ZXhpDQo+ID4gPiA+ID4gPiA+IEBA IC01NTg4LDYgKzU1ODgsMTggQEAgc2lnbmVkIG9wMCwgb3AxOw0KPiA+ID4gPiA+ID4gPiAgb3Aw ID0gb3AxIC8gKDEgPDwgaW1tKTsNCj4gPiA+ID4gPiA+ID4gIEBlbmQgc21hbGxleGFtcGxlDQo+ ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICtAY2luZGV4IEBjb2Rle3VkaXZfcG93Ml9iaXRt YXNrQHZhcnttMn19IGluc3RydWN0aW9uDQo+ID4gPiA+ID4gPiA+ICtwYXR0ZXJuDQo+ID4gPiA+ ID4gQGl0ZW0NCj4gPiA+ID4gPiA+ID4gK0BzYW1we3VkaXZfcG93Ml9iaXRtYXNrQHZhcnttMn19 IEBjaW5kZXgNCj4gPiA+ID4gPiA+ID4gK0Bjb2Rle3VkaXZfcG93Ml9iaXRtYXNrQHZhcnttMn19 IGluc3RydWN0aW9uIHBhdHRlcm4NCj4gQGl0ZW14DQo+ID4gPiA+ID4gPiA+ICtAc2FtcHt1ZGl2 X3BvdzJfYml0bWFza0B2YXJ7bTJ9fSBVbnNpZ25lZCB2ZWN0b3IgZGl2aXNpb24NCj4gPiA+ID4g PiA+ID4gK2J5DQo+ID4gPiBhbg0KPiA+ID4gPiA+ID4gPiAraW1tZWRpYXRlIHRoYXQgaXMgZXF1 aXZhbGVudCB0bw0KPiA+ID4gPiA+ID4gPiArQHNhbXB7Ml4oYml0c2l6ZShtKSAvIDIpIC0gMX0u DQo+ID4gPiA+ID4gPiA+ICtAc21hbGxleGFtcGxlDQo+ID4gPiA+ID4gPiA+ICt1bnNpZ25lZCBz aG9ydCBvcDA7IG9wMTsNCj4gPiA+ID4gPiA+ID4gK0Bkb3Rze30NCj4gPiA+ID4gPiA+ID4gK29w MCA9IG9wMSAvIDB4ZmZVOw0KPiA+ID4gPiA+ID4gPiArQGVuZCBzbWFsbGV4YW1wbGUNCj4gPiA+ ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiAgQGNpbmRleCBAY29kZXt2ZWNfc2hsX2luc2VydF9A dmFye219fSBpbnN0cnVjdGlvbiBwYXR0ZXJuDQo+ID4gPiA+ID4gPiA+IEBpdGVtIEBzYW1we3Zl Y19zaGxfaW5zZXJ0X0B2YXJ7bX19ICBTaGlmdCB0aGUgZWxlbWVudHMgaW4NCj4gPiA+ID4gPiA+ ID4gdmVjdG9yIGlucHV0IG9wZXJhbmQgMSBsZWZ0IG9uZSBlbGVtZW50IChpLmUuQDoNCj4gPiA+ ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2djYy9pbnRlcm5hbC1mbi5kZWYgYi9nY2MvaW50ZXJuYWwt Zm4uZGVmIGluZGV4DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+DQo+IGQyZDU1MGQz NTg2MDYwMjJiMWNiNDRmYTg0MmYwNmUwYmU1MDdiYzMuLmEzZTNjYzE1MjBmNzc2ODNlYmY2MjU2 ODk4DQo+ID4gPiA+ID4gPiA+IGY5MTZlZDQ1ZGU0NzVmIDEwMDY0NA0KPiA+ID4gPiA+ID4gPiAt LS0gYS9nY2MvaW50ZXJuYWwtZm4uZGVmDQo+ID4gPiA+ID4gPiA+ICsrKyBiL2djYy9pbnRlcm5h bC1mbi5kZWYNCj4gPiA+ID4gPiA+ID4gQEAgLTE1OSw2ICsxNTksOCBAQCBERUZfSU5URVJOQUxf T1BUQUJfRk4NCj4gKFZFQ19TSExfSU5TRVJULA0KPiA+ID4gPiA+IEVDRl9DT05TVCB8IEVDRl9O T1RIUk9XLA0KPiA+ID4gPiA+ID4gPiAgCQkgICAgICAgdmVjX3NobF9pbnNlcnQsIGJpbmFyeSkN Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gIERFRl9JTlRFUk5BTF9PUFRBQl9GTiAoRElW X1BPVzIsIEVDRl9DT05TVCB8DQo+ID4gPiBFQ0ZfTk9USFJPVywNCj4gPiA+ID4gPiA+ID4gc2Rp dl9wb3cyLCBiaW5hcnkpDQo+ID4gPiA+ID4gPiA+ICtERUZfSU5URVJOQUxfT1BUQUJfRk4gKERJ Vl9QT1cyX0JJVE1BU0ssIEVDRl9DT05TVCB8DQo+ID4gPiA+ID4gRUNGX05PVEhST1csDQo+ID4g PiA+ID4gPiA+ICsJCSAgICAgICB1ZGl2X3BvdzJfYml0bWFzaywgdW5hcnkpDQo+ID4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiA+ICBERUZfSU5URVJOQUxfT1BUQUJfRk4gKEZNUywgRUNGX0NPTlNU LCBmbXMsIHRlcm5hcnkpDQo+ID4gPiA+ID4gPiA+IERFRl9JTlRFUk5BTF9PUFRBQl9GTiAoRk5N QSwgRUNGX0NPTlNULCBmbm1hLCB0ZXJuYXJ5KQ0KPiBkaWZmDQo+ID4gPiA+ID4gPiA+IC0tZ2l0 IGEvZ2NjL29wdGFicy5kZWYgYi9nY2Mvb3B0YWJzLmRlZiBpbmRleA0KPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+DQo+ID4gPg0KPiA4MDEzMTBlYmFhN2Q0Njk1MjA4MDliYjdlZmVkNjgyMGY4ZWI4 NjZiLi4zZjBhYzA1ZWY1YWQ1YWVkOGQ2Y2EzOTFmDQo+ID4gPiA+ID4gNA0KPiA+ID4gPiA+ID4g PiBlZWQ3MWIwNDk0ZTE3ZiAxMDA2NDQNCj4gPiA+ID4gPiA+ID4gLS0tIGEvZ2NjL29wdGFicy5k ZWYNCj4gPiA+ID4gPiA+ID4gKysrIGIvZ2NjL29wdGFicy5kZWYNCj4gPiA+ID4gPiA+ID4gQEAg LTM3Miw2ICszNzIsNyBAQCBPUFRBQl9EIChzbXVsaHJzX29wdGFiLCAic211bGhycyRhMyIpDQo+ ID4gPiA+ID4gT1BUQUJfRA0KPiA+ID4gPiA+ID4gPiAodW11bGhzX29wdGFiLCAidW11bGhzJGEz IikgIE9QVEFCX0QgKHVtdWxocnNfb3B0YWIsDQo+ID4gPiA+ID4gPiA+ICJ1bXVsaHJzJGEzIikg T1BUQUJfRCAoc2Rpdl9wb3cyX29wdGFiLCAic2Rpdl9wb3cyJGEzIikNCj4gPiA+ID4gPiA+ID4g K09QVEFCX0QgKHVkaXZfcG93Ml9iaXRtYXNrX29wdGFiLA0KPiAidWRpdl9wb3cyX2JpdG1hc2sk YTIiKQ0KPiA+ID4gPiA+ID4gPiAgT1BUQUJfRCAodmVjX3BhY2tfc2ZpeF90cnVuY19vcHRhYiwN Cj4gPiA+ID4gPiA+ID4gInZlY19wYWNrX3NmaXhfdHJ1bmNfJGEiKSBPUFRBQl9EICh2ZWNfcGFj a19zc2F0X29wdGFiLA0KPiA+ID4gPiA+ID4gPiAidmVjX3BhY2tfc3NhdF8kYSIpICBPUFRBQl9E ICh2ZWNfcGFja190cnVuY19vcHRhYiwNCj4gPiA+ID4gPiA+ID4gInZlY19wYWNrX3RydW5jXyRh IikgZGlmZiAtLWdpdA0KPiA+ID4gPiA+ID4gPiBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ZlY3Qv dmVjdC1kaXYtYml0bWFzay0xLmMNCj4gPiA+ID4gPiA+ID4gYi9nY2MvdGVzdHN1aXRlL2djYy5k Zy92ZWN0L3ZlY3QtZGl2LWJpdG1hc2stMS5jDQo+ID4gPiA+ID4gPiA+IG5ldyBmaWxlIG1vZGUg MTAwNjQ0DQo+ID4gPiA+ID4gPiA+IGluZGV4DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4g PiA+DQo+IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE3ZWEzY2Nl NDc2NDIzOWM1ZDI4MWE4ZjBiDQo+ID4gPiA+ID4gPiA+IGVhZDFmNmE0NTJkZTNmDQo+ID4gPiA+ ID4gPiA+IC0tLSAvZGV2L251bGwNCj4gPiA+ID4gPiA+ID4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MuZGcvdmVjdC92ZWN0LWRpdi1iaXRtYXNrLTEuYw0KPiA+ID4gPiA+ID4gPiBAQCAtMCwwICsx LDI1IEBADQo+ID4gPiA+ID4gPiA+ICsvKiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCB2 ZWN0X2ludCB9ICovDQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gKyNpbmNsdWRlIDxz dGRpbnQuaD4NCj4gPiA+ID4gPiA+ID4gKyNpbmNsdWRlICJ0cmVlLXZlY3QuaCINCj4gPiA+ID4g PiA+ID4gKw0KPiA+ID4gPiA+ID4gPiArI2RlZmluZSBOIDUwDQo+ID4gPiA+ID4gPiA+ICsjZGVm aW5lIFRZUEUgdWludDhfdA0KPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ICtfX2F0dHJp YnV0ZV9fKChub2lwYSwgbm9pbmxpbmUsIG9wdGltaXplKCJPMSIpKSkgdm9pZA0KPiA+ID4gPiA+ ID4gPiArZnVuMShUWVBFKiByZXN0cmljdCBwaXhlbCwgVFlQRSBsZXZlbCwgaW50IG4pIHsNCj4g PiA+ID4gPiA+ID4gKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKz0xKQ0KPiA+ID4gPiA+ID4g PiArICAgIHBpeGVsW2ldID0gKHBpeGVsW2ldICogbGV2ZWwpIC8gMHhmZjsgfQ0KPiA+ID4gPiA+ ID4gPiArDQo+ID4gPiA+ID4gPiA+ICtfX2F0dHJpYnV0ZV9fKChub2lwYSwgbm9pbmxpbmUsIG9w dGltaXplKCJPMyIpKSkgdm9pZA0KPiA+ID4gPiA+ID4gPiArZnVuMihUWVBFKiByZXN0cmljdCBw aXhlbCwgVFlQRSBsZXZlbCwgaW50IG4pIHsNCj4gPiA+ID4gPiA+ID4gKyAgZm9yIChpbnQgaSA9 IDA7IGkgPCBuOyBpKz0xKQ0KPiA+ID4gPiA+ID4gPiArICAgIHBpeGVsW2ldID0gKHBpeGVsW2ld ICogbGV2ZWwpIC8gMHhmZjsgfQ0KPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ICsjaW5j bHVkZSAidmVjdC1kaXYtYml0bWFzay5oIg0KPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAgInZlY3RfcmVjb2dfZGl2bW9kX3BhdHRl cm46DQo+ID4gPiA+ID4gPiA+ICtkZXRlY3RlZCIgInZlY3QiIH0gfSAqLw0KPiA+ID4gPiA+ID4g PiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdmVjdC92ZWN0LWRpdi1iaXRtYXNr LTIuYw0KPiA+ID4gPiA+ID4gPiBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ZlY3QvdmVjdC1kaXYt Yml0bWFzay0yLmMNCj4gPiA+ID4gPiA+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiA+ID4g PiA+ID4gaW5kZXgNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4NCj4gMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDA5ZTE2ZTFiMzY0OTdlNTcyNDQxMGQ5 OA0KPiA+ID4gPiA+IDQNCj4gPiA+ID4gPiA+ID4gM2YxY2UxMjJiMjZkZGENCj4gPiA+ID4gPiA+ ID4gLS0tIC9kZXYvbnVsbA0KPiA+ID4gPiA+ID4gPiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy5k Zy92ZWN0L3ZlY3QtZGl2LWJpdG1hc2stMi5jDQo+ID4gPiA+ID4gPiA+IEBAIC0wLDAgKzEsMjUg QEANCj4gPiA+ID4gPiA+ID4gKy8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IHZlY3Rf aW50IH0gKi8NCj4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiArI2luY2x1ZGUgPHN0ZGlu dC5oPg0KPiA+ID4gPiA+ID4gPiArI2luY2x1ZGUgInRyZWUtdmVjdC5oIg0KPiA+ID4gPiA+ID4g PiArDQo+ID4gPiA+ID4gPiA+ICsjZGVmaW5lIE4gNTANCj4gPiA+ID4gPiA+ID4gKyNkZWZpbmUg VFlQRSB1aW50MTZfdA0KPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ICtfX2F0dHJpYnV0 ZV9fKChub2lwYSwgbm9pbmxpbmUsIG9wdGltaXplKCJPMSIpKSkgdm9pZA0KPiA+ID4gPiA+ID4g PiArZnVuMShUWVBFKiByZXN0cmljdCBwaXhlbCwgVFlQRSBsZXZlbCwgaW50IG4pIHsNCj4gPiA+ ID4gPiA+ID4gKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKz0xKQ0KPiA+ID4gPiA+ID4gPiAr ICAgIHBpeGVsW2ldID0gKHBpeGVsW2ldICogbGV2ZWwpIC8gMHhmZmZmVTsgfQ0KPiA+ID4gPiA+ ID4gPiArDQo+ID4gPiA+ID4gPiA+ICtfX2F0dHJpYnV0ZV9fKChub2lwYSwgbm9pbmxpbmUsIG9w dGltaXplKCJPMyIpKSkgdm9pZA0KPiA+ID4gPiA+ID4gPiArZnVuMihUWVBFKiByZXN0cmljdCBw aXhlbCwgVFlQRSBsZXZlbCwgaW50IG4pIHsNCj4gPiA+ID4gPiA+ID4gKyAgZm9yIChpbnQgaSA9 IDA7IGkgPCBuOyBpKz0xKQ0KPiA+ID4gPiA+ID4gPiArICAgIHBpeGVsW2ldID0gKHBpeGVsW2ld ICogbGV2ZWwpIC8gMHhmZmZmVTsgfQ0KPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ICsj aW5jbHVkZSAidmVjdC1kaXYtYml0bWFzay5oIg0KPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4g PiA+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAgInZlY3RfcmVjb2dfZGl2bW9kX3Bh dHRlcm46DQo+ID4gPiA+ID4gPiA+ICtkZXRlY3RlZCIgInZlY3QiIH0gfSAqLw0KPiA+ID4gPiA+ ID4gPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdmVjdC92ZWN0LWRpdi1iaXRt YXNrLTMuYw0KPiA+ID4gPiA+ID4gPiBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ZlY3QvdmVjdC1k aXYtYml0bWFzay0zLmMNCj4gPiA+ID4gPiA+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiA+ ID4gPiA+ID4gaW5kZXgNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4NCj4gMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmYzNWEwYmRhODMzM2M0MThlNjky ZDk0Mg0KPiA+ID4gPiA+IDINCj4gPiA+ID4gPiA+ID4gMGRmODQ5Y2M0NzkzMGINCj4gPiA+ID4g PiA+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ID4gPiA+ID4gPiArKysgYi9nY2MvdGVzdHN1aXRlL2dj Yy5kZy92ZWN0L3ZlY3QtZGl2LWJpdG1hc2stMy5jDQo+ID4gPiA+ID4gPiA+IEBAIC0wLDAgKzEs MjYgQEANCj4gPiA+ID4gPiA+ID4gKy8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IHZl Y3RfaW50IH0gKi8NCj4gPiA+ID4gPiA+ID4gKy8qIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICIt Zm5vLXZlY3QtY29zdC1tb2RlbCIgeyB0YXJnZXQNCj4gPiA+ID4gPiA+ID4gK2FhcmNoNjQqLSot KiB9IH0gKi8NCj4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiArI2luY2x1ZGUgPHN0ZGlu dC5oPg0KPiA+ID4gPiA+ID4gPiArI2luY2x1ZGUgInRyZWUtdmVjdC5oIg0KPiA+ID4gPiA+ID4g PiArDQo+ID4gPiA+ID4gPiA+ICsjZGVmaW5lIE4gNTANCj4gPiA+ID4gPiA+ID4gKyNkZWZpbmUg VFlQRSB1aW50MzJfdA0KPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ICtfX2F0dHJpYnV0 ZV9fKChub2lwYSwgbm9pbmxpbmUsIG9wdGltaXplKCJPMSIpKSkgdm9pZA0KPiA+ID4gPiA+ID4g PiArZnVuMShUWVBFKiByZXN0cmljdCBwaXhlbCwgVFlQRSBsZXZlbCwgaW50IG4pIHsNCj4gPiA+ ID4gPiA+ID4gKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKz0xKQ0KPiA+ID4gPiA+ID4gPiAr ICAgIHBpeGVsW2ldID0gKHBpeGVsW2ldICogKHVpbnQ2NF90KWxldmVsKSAvIDB4ZmZmZmZmZmZV TDsNCj4gPiA+ID4gPiA+ID4gK30NCj4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiArX19h dHRyaWJ1dGVfXygobm9pcGEsIG5vaW5saW5lLCBvcHRpbWl6ZSgiTzMiKSkpIHZvaWQNCj4gPiA+ ID4gPiA+ID4gK2Z1bjIoVFlQRSogcmVzdHJpY3QgcGl4ZWwsIFRZUEUgbGV2ZWwsIGludCBuKSB7 DQo+ID4gPiA+ID4gPiA+ICsgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSs9MSkNCj4gPiA+ID4g PiA+ID4gKyAgICBwaXhlbFtpXSA9IChwaXhlbFtpXSAqICh1aW50NjRfdClsZXZlbCkgLyAweGZm ZmZmZmZmVUw7DQo+ID4gPiA+ID4gPiA+ICt9DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ ID4gKyNpbmNsdWRlICJ2ZWN0LWRpdi1iaXRtYXNrLmgiDQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ ID4gPiA+ID4gKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcCAidmVjdF9yZWNvZ19kaXZt b2RfcGF0dGVybjoNCj4gPiA+ID4gPiA+ID4gK2RldGVjdGVkIiAidmVjdCIgfSB9ICovDQo+ID4g PiA+ID4gPiA+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy5kZy92ZWN0L3ZlY3QtZGl2 LWJpdG1hc2suaA0KPiA+ID4gPiA+ID4gPiBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ZlY3QvdmVj dC1kaXYtYml0bWFzay5oDQo+ID4gPiA+ID4gPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4g PiA+ID4gPiA+IGluZGV4DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+DQo+IDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI5YTE2NzM5YWE0YjcwNjYxNjM2 N2JmZDENCj4gPiA+ID4gPiA4DQo+ID4gPiA+ID4gPiA+IDMyZjI4ZWJkMDc5OTNlDQo+ID4gPiA+ ID4gPiA+IC0tLSAvZGV2L251bGwNCj4gPiA+ID4gPiA+ID4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MuZGcvdmVjdC92ZWN0LWRpdi1iaXRtYXNrLmgNCj4gPiA+ID4gPiA+ID4gQEAgLTAsMCArMSw0 MyBAQA0KPiA+ID4gPiA+ID4gPiArI2luY2x1ZGUgPHN0ZGlvLmg+DQo+ID4gPiA+ID4gPiA+ICsN Cj4gPiA+ID4gPiA+ID4gKyNpZm5kZWYgTg0KPiA+ID4gPiA+ID4gPiArI2RlZmluZSBOIDY1DQo+ ID4gPiA+ID4gPiA+ICsjZW5kaWYNCj4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiArI2lm bmRlZiBUWVBFDQo+ID4gPiA+ID4gPiA+ICsjZGVmaW5lIFRZUEUgdWludDMyX3QNCj4gPiA+ID4g PiA+ID4gKyNlbmRpZg0KPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ICsjaWZuZGVmIERF QlVHDQo+ID4gPiA+ID4gPiA+ICsjZGVmaW5lIERFQlVHIDANCj4gPiA+ID4gPiA+ID4gKyNlbmRp Zg0KPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ICsjZGVmaW5lIEJBU0UgKChUWVBFKSAt MSA8IDAgPyAtMTI2IDogNCkNCj4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiAraW50IG1h aW4gKCkNCj4gPiA+ID4gPiA+ID4gK3sNCj4gPiA+ID4gPiA+ID4gKyAgVFlQRSBhW05dOw0KPiA+ ID4gPiA+ID4gPiArICBUWVBFIGJbTl07DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4g KyAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyArK2kpDQo+ID4gPiA+ID4gPiA+ICsgICAgew0KPiA+ ID4gPiA+ID4gPiArICAgICAgYVtpXSA9IEJBU0UgKyBpICogMTM7DQo+ID4gPiA+ID4gPiA+ICsg ICAgICBiW2ldID0gQkFTRSArIGkgKiAxMzsNCj4gPiA+ID4gPiA+ID4gKyAgICAgIGlmIChERUJV RykNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgcHJpbnRmICgiJWQ6IDB4JXhcbiIsIGksIGFbaV0p Ow0KPiA+ID4gPiA+ID4gPiArICAgIH0NCj4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiAr ICBmdW4xIChhLCBOIC8gMiwgTik7DQo+ID4gPiA+ID4gPiA+ICsgIGZ1bjIgKGIsIE4gLyAyLCBO KTsNCj4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiArICBmb3IgKGludCBpID0gMDsgaSA8 IE47ICsraSkNCj4gPiA+ID4gPiA+ID4gKyAgICB7DQo+ID4gPiA+ID4gPiA+ICsgICAgICBpZiAo REVCVUcpDQo+ID4gPiA+ID4gPiA+ICsgICAgICAgIHByaW50ZiAoIiVkID0gMHgleCA9PSAweCV4 XG4iLCBpLCBhW2ldLCBiW2ldKTsNCj4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiArICAg ICAgaWYgKGFbaV0gIT0gYltpXSkNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgX19idWlsdGluX2Fi b3J0ICgpOw0KPiA+ID4gPiA+ID4gPiArICAgIH0NCj4gPiA+ID4gPiA+ID4gKyAgcmV0dXJuIDA7 DQo+ID4gPiA+ID4gPiA+ICt9DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gZGlmZiAt LWdpdCBhL2djYy90cmVlLXZlY3QtcGF0dGVybnMuY2MNCj4gPiA+ID4gPiA+ID4gYi9nY2MvdHJl ZS12ZWN0LXBhdHRlcm5zLmNjIGluZGV4DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ DQo+IDIxN2JkZmQ3MDQ1YTIyNTc4YTM1YmI4OTFhNDMxOGQ3NDEwNzE4NzIuLmE3Mzg1NThjYjhk MTIyOTZiZmY0NjJkNzENCj4gPiA+ID4gPiA2DQo+ID4gPiA+ID4gPiA+IDMxMGNhOGQ4Mjk1N2I1 IDEwMDY0NA0KPiA+ID4gPiA+ID4gPiAtLS0gYS9nY2MvdHJlZS12ZWN0LXBhdHRlcm5zLmNjDQo+ ID4gPiA+ID4gPiA+ICsrKyBiL2djYy90cmVlLXZlY3QtcGF0dGVybnMuY2MNCj4gPiA+ID4gPiA+ ID4gQEAgLTM1NTgsNiArMzU1OCwzMyBAQCB2ZWN0X3JlY29nX2Rpdm1vZF9wYXR0ZXJuICh2ZWNf aW5mbw0KPiA+ID4gPiA+ID4gPiAqdmluZm8sDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ ICAgICAgICByZXR1cm4gcGF0dGVybl9zdG10Ow0KPiA+ID4gPiA+ID4gPiAgICAgIH0NCj4gPiA+ ID4gPiA+ID4gKyAgZWxzZSBpZiAoKFRZUEVfVU5TSUdORUQgKGl0eXBlKSB8fCB0cmVlX2ludF9j c3Rfc2duIChvcHJuZDEpDQo+ICE9IDEpDQo+ID4gPiA+ID4gPiA+ICsJICAgJiYgcmhzX2NvZGUg IT0gVFJVTkNfTU9EX0VYUFIpDQo+ID4gPiA+ID4gPiA+ICsgICAgew0KPiA+ID4gPiA+ID4gPiAr ICAgICAgd2lkZV9pbnQgaWNzdCA9IHdpOjp0b193aWRlIChvcHJuZDEpOw0KPiA+ID4gPiA+ID4g PiArICAgICAgd2lkZV9pbnQgdmFsID0gd2k6OmFkZCAoaWNzdCwgMSk7DQo+ID4gPiA+ID4gPiA+ ICsgICAgICBpbnQgcG93ID0gd2k6OmV4YWN0X2xvZzIgKHZhbCk7DQo+ID4gPiA+ID4gPiA+ICsg ICAgICBpZiAocG93ID09IChwcmVjIC8gMikpDQo+ID4gPiA+ID4gPiA+ICsJew0KPiA+ID4gPiA+ ID4gPiArCSAgLyogUGF0dGVybiBkZXRlY3RlZC4gICovDQo+ID4gPiA+ID4gPiA+ICsJICB2ZWN0 X3BhdHRlcm5fZGV0ZWN0ZWQgKCJ2ZWN0X3JlY29nX2Rpdm1vZF9wYXR0ZXJuIiwNCj4gPiA+ID4g PiA+ID4gK2xhc3Rfc3RtdCk7DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gKwkgICp0 eXBlX291dCA9IHZlY3R5cGU7DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gKwkgIC8q IENoZWNrIGlmIHRoZSB0YXJnZXQgc3VwcG9ydHMgdGhpcyBpbnRlcm5hbCBmdW5jdGlvbi4gICov DQo+ID4gPiA+ID4gPiA+ICsJICBpbnRlcm5hbF9mbiBpZm4gPSBJRk5fRElWX1BPVzJfQklUTUFT SzsNCj4gPiA+ID4gPiA+ID4gKwkgIGlmIChkaXJlY3RfaW50ZXJuYWxfZm5fc3VwcG9ydGVkX3Ag KGlmbiwgdmVjdHlwZSwNCj4gPiA+ID4gPiBPUFRJTUlaRV9GT1JfU1BFRUQpKQ0KPiA+ID4gPiA+ ID4gPiArCSAgICB7DQo+ID4gPiA+ID4gPiA+ICsJICAgICAgdHJlZSB2YXJfZGl2ID0gdmVjdF9y ZWNvZ190ZW1wX3NzYV92YXIgKGl0eXBlLCBOVUxMKTsNCj4gPiA+ID4gPiA+ID4gKwkgICAgICBn aW1wbGUgKmRpdl9zdG10ID0gZ2ltcGxlX2J1aWxkX2NhbGxfaW50ZXJuYWwgKGlmbiwNCj4gPiA+ ID4gPiA+ID4gKzEsDQo+ID4gPiBvcHJuZDApOw0KPiA+ID4gPiA+ID4gPiArCSAgICAgIGdpbXBs ZV9jYWxsX3NldF9saHMgKGRpdl9zdG10LCB2YXJfZGl2KTsNCj4gPiA+ID4gPiA+ID4gKw0KPiA+ ID4gPiA+ID4gPiArCSAgICAgIGdpbXBsZV9zZXRfbG9jYXRpb24gKGRpdl9zdG10LCBnaW1wbGVf bG9jYXRpb24NCj4gPiA+ID4gPiA+ID4gKyhsYXN0X3N0bXQpKTsNCj4gPiA+ID4gPiA+ID4gKw0K PiA+ID4gPiA+ID4gPiArCSAgICAgIHJldHVybiBkaXZfc3RtdDsNCj4gPiA+ID4gPiA+ID4gKwkg ICAgfQ0KPiA+ID4gPiA+ID4gPiArCX0NCj4gPiA+ID4gPiA+ID4gKyAgICB9DQo+ID4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiA+ICAgIGlmIChwcmVjID4gSE9TVF9CSVRTX1BFUl9XSURFX0lOVA0K PiA+ID4gPiA+ID4gPiAgICAgICAgfHwgaW50ZWdlcl96ZXJvcCAob3BybmQxKSkNCj4gPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4g LS0NCj4gPiA+ID4gPiBSaWNoYXJkIEJpZW5lciA8cmd1ZW50aGVyQHN1c2UuZGU+IFNVU0UgU29m dHdhcmUgU29sdXRpb25zDQo+ID4gPiA+ID4gR2VybWFueSBHbWJILCBGcmFua2Vuc3RyYcOfZSAx NDYsIDkwNDYxIE51ZXJuYmVyZywgR2VybWFueTsgR0Y6DQo+ID4gPiA+ID4gSXZvIFRvdGV2LCBB bmRyZXcgTXllcnMsIEFuZHJldyBNY0RvbmFsZCwgQm91ZGllbiBNb2VybWFuOw0KPiBIUkINCj4g PiA+ID4gPiAzNjgwOSAoQUcgTnVlcm5iZXJnKQ0KPiA+ID4gPg0KPiA+ID4NCj4gPiA+IC0tDQo+ ID4gPiBSaWNoYXJkIEJpZW5lciA8cmd1ZW50aGVyQHN1c2UuZGU+DQo+ID4gPiBTVVNFIFNvZnR3 YXJlIFNvbHV0aW9ucyBHZXJtYW55IEdtYkgsIEZyYW5rZW5zdHJhw59lIDE0NiwgOTA0NjENCj4g PiA+IE51ZXJuYmVyZywgR2VybWFueTsgR0Y6IEl2byBUb3RldiwgQW5kcmV3IE15ZXJzLCBBbmRy ZXcgTWNEb25hbGQsDQo+ID4gPiBCb3VkaWVuIE1vZXJtYW47IEhSQiAzNjgwOSAoQUcgTnVlcm5i ZXJnKQ0KPiA+DQo+IA0KPiAtLQ0KPiBSaWNoYXJkIEJpZW5lciA8cmd1ZW50aGVyQHN1c2UuZGU+ DQo+IFNVU0UgU29mdHdhcmUgU29sdXRpb25zIEdlcm1hbnkgR21iSCwgRnJhbmtlbnN0cmHDn2Ug MTQ2LCA5MDQ2MQ0KPiBOdWVybmJlcmcsIEdlcm1hbnk7IEdGOiBJdm8gVG90ZXYsIEFuZHJldyBN eWVycywgQW5kcmV3IE1jRG9uYWxkLA0KPiBCb3VkaWVuIE1vZXJtYW47IEhSQiAzNjgwOSAoQUcg TnVlcm5iZXJnKQ0K