From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2062a.outbound.protection.outlook.com [IPv6:2a01:111:f403:200a::62a]) by sourceware.org (Postfix) with ESMTPS id 0D0D33858C52 for ; Mon, 7 Oct 2024 20:51:37 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0D0D33858C52 Authentication-Results: sourceware.org; dmarc=fail (p=reject dis=none) header.from=nvidia.com Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=nvidia.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 0D0D33858C52 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:200a::62a ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1728334301; cv=pass; b=TavtkoqIiYNrnYHZsBEYG81KPOEdV6Hwf6qy7kM4Ye8rcac032/78o3hKZci/+FRN0piPgjOrwfJp7cTjKU4JBtfKsNQMQ3MH+nEb2lwxKRuhO5hPG21GY+y0/oboZoZiPIRm8d6QmbnAKXrFmsXYjkPJzsixEYcTlQ7EO5mw8I= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1728334301; c=relaxed/simple; bh=595KeMQnH61QOMr7df/5AfwK5nXjvv3wuR93zgQg/c8=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=BldpJ8dYIYUXoOnOarmOiv8iYSU0AXyHUa4RNWN9AoeIi0+9yTP8Ci4Mxy33iqMf8DnA4yaEBJj6AClxc0/IeeUMBuJZkbIMqEKGAo+p7EcRPyvo+s9OG6DeNsCy6Rk9jvYog0MX6tW17rL3Kzw9N2vQiFUe5g5kNRTFg/XsidU= ARC-Authentication-Results: i=2; server2.sourceware.org ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=IaXFZvTmOZY7p+ymVM4Ued7kJbRHlxNs89ckgEZehHJZ9Tu78VqFygYvQOD8v/M86FGU2s1T6bR4GG63rx756vbW/sJoOx2i90na47Nh0mKosF4DHyMokN1xWQhRLyEyD+YwF+L9/3HiwkJUB3sztFSHKmodTHEL5Jd3qx4DCjEvYUXNdk73boMdz/w1w22hWzIKKTwNfRz5/8u/aYcBRJkCT/IdcZc2I0Y4x6jOiMZ40MBgMW2g1oF4thRnyQTcGU4fNs3qpMPKsGz5MfbdYm+UfdpxeeDFORMFUOcWBfHvqjP0OIxlel0pu1P6T7WvE15T5nbbfYITRN1bZrxpVg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=595KeMQnH61QOMr7df/5AfwK5nXjvv3wuR93zgQg/c8=; b=UU6ve4Fu+2FQ3sMYCfrDKQtFwzLbEMXYB/Nq/RqaOfdXajHfzznt4CwZuKpd73b3pTMzpE6Lh6XPU17CBjK8MZ9jPqj/Pyx0Wep6E29Z6nDZDyvs26qY1EgznMYN8uB2wLwBhqDtk/dzQ8FKH8rVvaDRAXvjmw70nGRkHhyHmxMPvr2MseTpVeoSwO+R3uP4KBh6l0ujiCe3J8iPu3X0sepgQd74lFdDWogn3BzGjaEhwbpbjXcvNJI6gnPFtd+Sof5AnwAA/rmPd0Wf2zcpganSY96sAG4uI0wBqWacDFzMte2dttkeRLDbnIO2s6hj7C58O9FaojyyR0pK+SVJkA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=595KeMQnH61QOMr7df/5AfwK5nXjvv3wuR93zgQg/c8=; b=US/xpWwfZFhyuoi63Zj1tI9TG16eZCTjiLFx1Th1LxwGSZWLn2/luO/6m/wdPxtcGQMCUAbRfUC38rR1rxmKPOKpDEVNlpPpWmzDuOqxC67nJA7ViqpQGG6USgiwTRdFk975LGOOUubuZi1fitomO4rF9Cu9RowPoUAgke5RM9l/VJH/klw1QybH7/K+ZszhQ7KNwS99X9S+OV4BY4rnNjswNJuauxhxVGQZD4fXv3AXOgovexY3Lf7zeER6XBYVZvtL/vX7oE9+ihM72XBHusID3UDR4tdJsOLOrEbv/OJc8uYBT9M/LR2UnzrZsQbJREdH+SVKBZ6l6tVyefJeCA== Received: from IA1PR12MB9031.namprd12.prod.outlook.com (2603:10b6:208:3f9::19) by MW4PR12MB7310.namprd12.prod.outlook.com (2603:10b6:303:22c::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8026.20; Mon, 7 Oct 2024 20:51:29 +0000 Received: from IA1PR12MB9031.namprd12.prod.outlook.com ([fe80::1fb7:5076:77b5:559c]) by IA1PR12MB9031.namprd12.prod.outlook.com ([fe80::1fb7:5076:77b5:559c%3]) with mapi id 15.20.8026.020; Mon, 7 Oct 2024 20:51:29 +0000 From: Prathamesh Kulkarni To: Prathamesh Kulkarni , Richard Sandiford CC: "rguenther@suse.de" , Thomas Schwinge , "gcc-patches@gcc.gnu.org" Subject: RE: Re-compute TYPE_MODE and DECL_MODE while streaming in for accelerator Thread-Topic: Re-compute TYPE_MODE and DECL_MODE while streaming in for accelerator Thread-Index: AdrxVpf6dNO5bvvBSsmk3+TcPYF3JwBEtIz2ABVSLwAAPjKK0AAB0eiAADcjXtACQ7/qgAFFWz0AAuCtIXAAAzP6gAFwh/0gATpJFTA= Date: Mon, 7 Oct 2024 20:51:29 +0000 Message-ID: References: <84437483-ED6B-47F3-8BB5-3766EC270F12@suse.de> <33q20n27-2n79-s910-6549-8s95pron7599@fhfr.qr> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: IA1PR12MB9031:EE_|MW4PR12MB7310:EE_ x-ms-office365-filtering-correlation-id: 47e8b554-5a0c-4c72-7769-08dce711d197 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?VkE4MjVJVFhqd1NnQlFMTmk0TW9nT3RhbS8rWmkvdk1aclFmN3ZWckR5TWtO?= =?utf-8?B?NU9tSzgvZXY3Qkx1VTN3Z2Q0cjRldmpkYk1rKytDUXdyZ25WdEZITng2OUFE?= =?utf-8?B?OUpMZGllRjRpL2I2dU5pQ3R6MzFYVWJ2TzUvSjg4bkxnRGpIL3piZVRuVnpQ?= =?utf-8?B?NTh3bTQ4NHU4M1R3aStWbnczSC9lUlJHV0MvY1Q0VVErengrQUV6Ni9vcnFL?= =?utf-8?B?b3R0TmFhZnFmVWl4eS9LZEtQSkpUSS9qOGZSNDVpeDY1ZkZlSElpVDZnQlk1?= =?utf-8?B?RVRJbjBITHZpZjFNVkVMbDZyazdIMGhMdldYN0lVekZsSWFIL3dQNENkVkZU?= =?utf-8?B?aFBwd1RnNmJ2K0JpdmZwbU4wMHlXYWRxaStiTklwTFhrWGcwYWdETmNmWmRv?= =?utf-8?B?bFk3REJMcDA4UmtCMmNoRmxDSk5MVzFMN2dWMTlhbm5uQ05ybTNHbncwQUxM?= =?utf-8?B?U0d0SjVXWUVydXdENHZBSWV6WVJhZW8wb2xnVld1dDhuV0lWSjJsNlRyaTR5?= =?utf-8?B?V1V2L2FNd3VaeTM5VDJ0bUxMU2cwV0tBSGUwN2hVMDJobHdFWGJHTnZoK2M4?= =?utf-8?B?VW1ENURjMEd5VWcvZnVwN3Y4cmlXcGZPOGVUbmZsOG16SVRiY2tCRzcrSG0x?= =?utf-8?B?ZzJFdGhCdndJVmc2VHBKWTlQc0I3Mk1sTlh5bmNsQVUyRTV0N0N5VUU1Mi85?= =?utf-8?B?RzM3aXUzdVNPTjR1WG9mZUJOUkRLUlVsV3Q3UjJSaW9QeEhuaXJrbUs2ZlN5?= =?utf-8?B?Z0puYjhxdE9YaG13Y0YwNWlOVDhmbENXNmd4RnFNdnU0Q1pqcXZxSFhEQ1Vm?= =?utf-8?B?QVp0OWxPZUJpUFc4K25DcGVRWkgyYUM2N0VMbWhZYTh1Z2dkRHhhaHpCUDQ4?= =?utf-8?B?WnlsQmVteE1kYko5OXY3aWpKOXBrUnRiWHNRSXh1dTMvZmVubE1YN1l6ckpT?= =?utf-8?B?UFVRYXJiR3lSdi9BMytIcFU2U0plRU9YUzQxbFJrQXA5QVM1ZFpPNGlsZW5O?= =?utf-8?B?ZHByemxFVGM4RTRnSElrV095VGtlSzRoK3k5c1pPVTU3NUdFb0VTeHQwTTVo?= =?utf-8?B?aS9rUERJMHQ2R2xXUEYyQzJ6VVhaV3hvSEk5cVZKK1BmQy9rYjcrNUFBcXlp?= =?utf-8?B?eWEvRFp3Q0lhZTNtUFV1RlZZMzJ6eDNTa1pNRmFKdzRjcmtueFFKVmMxVEVq?= =?utf-8?B?NFhDMGZ5aVRsV3VDcVp6WGtjNUlHNWt4eWJCVm10K1VNTmh6VWJKVXd2WWpI?= =?utf-8?B?Z2ZucGhJS0lldC90U0VsYnUxeGFHN1d5VGpDSWduQXk3dWlkU0lEenF3eVhY?= =?utf-8?B?N0l6bVcxaXdBWXV0dWNXbzRaOW1QRFkzZnQrdnJjYjBtUGMvNEUzWjMwVmtO?= =?utf-8?B?ZjdLZTZpOS9ranIrU1F2bmV5NHkwU2IzSGMvbm9WY3NOeng3b3MvaTRxWHFx?= =?utf-8?B?cWNnY0VHdlNXb1pFNHZOUU9QalhMbytOSVY1TDhnVVZ1MGdCb2Vzdm5DMktN?= =?utf-8?B?bWdpTzljS2VJMnoxYkNuYzFrakoxZ3ExYWJJUjlvVUxxQThsOWtBbHBpMWsx?= =?utf-8?B?ZkRmaGE0U002c3M3V1VydFkydlcxZXJLN2JlRU1jZi80enpHWjdzYXNxdGtM?= =?utf-8?B?OGYzUTgyWTBualB6QktYU0FvT1JQR0wyS09nYnpGL3RNVlBCWUxBT2pEbWdH?= =?utf-8?B?SzFqaGZOZUh3aVhuTlpic3BGNFNiNk41S1RzOWxmb1Bnc0tyOGI1Y1NZNEhm?= =?utf-8?B?cnd6aUpsWXlNaDFMT3VDanNwL3ZOYWt3U2F2dWRvaG9XU2RZcGhxWkdlZUZY?= =?utf-8?B?SCtFYTN4aFFYMTkxbVFHZz09?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR12MB9031.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?TlpMNGNTcHFldit0Y05qOGlJZzduSWNhRXZSK1RWay9hUzRyVXAxa0hSSVJB?= =?utf-8?B?TUdzRVNRbmVEb2tSZzVEdnNKR01uQ1llaHBOdjdyUW9pWnQvZXRMT1E4c0l6?= =?utf-8?B?UzMwSkg4L1lpNmdPYVVINExFWVNacU40U3U3UUVlcnNBTGhQVGlqL2d0bG0z?= =?utf-8?B?UXEvTFloQUZ3akJqSk5iSFJKb1FEWHVWa0JLK1ZkZXNYVjJsY2llREUvaWRJ?= =?utf-8?B?dHgxZFdMOE0wbnRnTG0vcy9jcEFVY3BlUHNEYzQ0alFHVmFrMWwxbXloRVll?= =?utf-8?B?NGNXWTFkeklNVURob1cvWDV0ZncyWGdDeGFEa1ZKS2lzV0dtZjFFeFVrbG5j?= =?utf-8?B?QjdmZmVnRTlmcEFOaXB2K0U5SzVQNWsvd2ZQZ0k3WFpQU01tNnZtRi9EQm9Y?= =?utf-8?B?ZlFtcVIzY3ptTkZWTUpzR2lhSWg2VVJhWit6cU5yWUtPS2pGMmZkM1Qrei9j?= =?utf-8?B?Q3Vmb2Vkekk5dE9mMXhObWltWjRHcmVJeGxOTzkwNkFNZUdqa2xQRnhob0hH?= =?utf-8?B?SFAvNnNJOWxoblJNc3Qwekh0MktlTjZwVEErZTFjdkozdDVlNWROZWlpalNJ?= =?utf-8?B?UmZ1TlMxOVU3eHQ0OExvcGpndEtrWHpJdmxvTDN6TlUxRzNlSHVmNGU4dXRm?= =?utf-8?B?MzNiMCtMWXRnMWVOS2wxaUxqZ2hoNVVwbC9qdGsyc21qZVZLdm9Cb2tvLzdp?= =?utf-8?B?TG01M3dLQ1VNbzBGSUFrd3FHWHRxaGRmM2NZTWFxYUIzU3F2eG5NTVIvakNa?= =?utf-8?B?dVNpQ3hrYjFIOFh3ZDIzYkZYbVVwaDA1cXpvL2M5U3pwTlFnQW1DVnJwZGRR?= =?utf-8?B?UWF3R3FUZ3dhTzRSWisrZlhyWC9PcnBSc3hrdTg5L1pVYk5KUHd4Q00wT2hZ?= =?utf-8?B?RGZPQWF3d0xuRk1NNHlkVEFuM0Rmb2diU1g3T1NUZHVQb2FuNVFCN0xLdlNL?= =?utf-8?B?UStZVUVtaWtJN3hTenNXbit2RlBvaVVaZFF1ZnhYZ0ZHSXVodklVTzRYWTRl?= =?utf-8?B?RFp2QUIzaHlZN0Jxb2MxckNzL1BmbVlxdW9QQnAvVm56YW1hMlNsTUxSQU1Q?= =?utf-8?B?NTRvbTNCNDVWeDZObnFONXNQTVZBTlBSNnJ6YTNTOEZZNU05d29yb3k3S200?= =?utf-8?B?K1BlakN1NlpCd0ErQWdGQ24zT1BKR2NxOElRbFZlM2thS1IvSGJkTnc5bHpx?= =?utf-8?B?QW1mVjVZV09ET2NUcUNhVmNlZmNXK09KaDZYTkFKbVlrTE1md0ltVEdUOHpL?= =?utf-8?B?VllCaUM3K3BPdjkrWE0rMlVLRzd2ZUI0VCtpRWZDbWFUK05ubmJTV3ZCaVJs?= =?utf-8?B?N2RWRU1xdC9SK0xEa1Q0YWN5VEdYZFVIQVF4bUV1RVIwSTRGbTRPTlMwU0ZG?= =?utf-8?B?SU53eURiMGoxQ2lkQ21PZGVrZ3pGQTdoMDJmRlVOZGhUM3YwVXYwQmJ3dWl6?= =?utf-8?B?dXYzb0xuSzV3YndBZzVraDNXZjJ4VkpmSld3NTFWZWRsN3Z6eEFyZFVRZE1h?= =?utf-8?B?eTgxRHkyM1BWdStGOUFQa2xSbmpHWUdwR2cvOWxNSGZEZDZGMENVUENIanhB?= =?utf-8?B?RE1aOHVrbkJQV25yTmRyL3RPZ3NPWWk5TVl2M3dlS1lpM0lNNWJ4VnRaRHRV?= =?utf-8?B?V0U3azBGcUs3cEUwVkVOYW1qQnFiRlM5ZWo0bmxxaXNsZ3pPaDdNZVorZks2?= =?utf-8?B?MlJLVi9peG9uMnJ1R3UwaW5uWWtnZ0ZCck92OXZqVC9MYnpjK0prSTNhR29Z?= =?utf-8?B?VWpoY0dVcUFkWXFRWmIvc0VvTjJyL0VGMHJMSXc3a1o1MW5ZRzJ3SVBDWURt?= =?utf-8?B?TGdsdE5vUmZhMS91WGJGY3EzVlNzN3NTSVpMWEt2RFFGaHVTM25RTTdVTDRR?= =?utf-8?B?aWxsYmFHLysyOHlYclAzZmJVWDljL2VHb29MalY4dkhQMUF6ckd3SVZRSkkv?= =?utf-8?B?a3ZWaWh0NElBczZ0NVY3NTcrTVFSY0d3NGZ2d0c4aHZvbEFKakhYZXNLOW9q?= =?utf-8?B?SEY2VkUzM3lwOWJYejRvSDBMckFCd0hWakpvVnBpSEUzdVVXb3J1bmZYWG01?= =?utf-8?B?Si9LUk9RVFEyUUcvMmJ1UVNqTVNpZGFyZEJSUHNSaDRTUSs2R1JhNkRqTkE0?= =?utf-8?Q?lNSOHMxdsggbQqsiP/gCuqrd4?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: IA1PR12MB9031.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 47e8b554-5a0c-4c72-7769-08dce711d197 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Oct 2024 20:51:29.6228 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: IcupxYUwST2/yl/YOj3yjluo/7+MdgZeA0bxquq0t1K0U0FDATqI4Sui42EIEaqYTECeyI7FmDK7PE4CaSCgqg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7310 X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_SPF_HELO,GIT_PATCH_0,KAM_SHORT,SPF_HELO_PASS,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogUHJhdGhhbWVzaCBLdWxr YXJuaSA8cHJhdGhhbWVzaGtAbnZpZGlhLmNvbT4NCj4gU2VudDogVHVlc2RheSwgT2N0b2JlciAx LCAyMDI0IDg6MjYgUE0NCj4gVG86IFJpY2hhcmQgU2FuZGlmb3JkIDxyaWNoYXJkLnNhbmRpZm9y ZEBhcm0uY29tPg0KPiBDYzogcmd1ZW50aGVyQHN1c2UuZGU7IFRob21hcyBTY2h3aW5nZSA8dHNj aHdpbmdlQGJheWxpYnJlLmNvbT47IGdjYy0NCj4gcGF0Y2hlc0BnY2MuZ251Lm9yZw0KPiBTdWJq ZWN0OiBSRTogUmUtY29tcHV0ZSBUWVBFX01PREUgYW5kIERFQ0xfTU9ERSB3aGlsZSBzdHJlYW1p bmcgaW4gZm9yDQo+IGFjY2VsZXJhdG9yDQo+IA0KPiBFeHRlcm5hbCBlbWFpbDogVXNlIGNhdXRp b24gb3BlbmluZyBsaW5rcyBvciBhdHRhY2htZW50cw0KPiANCj4gDQo+ID4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBSaWNoYXJkIEJpZW5lciA8cmd1ZW50aGVyQHN1c2Uu ZGU+DQo+ID4gU2VudDogVHVlc2RheSwgU2VwdGVtYmVyIDI0LCAyMDI0IDEyOjI5IFBNDQo+ID4g VG86IFByYXRoYW1lc2ggS3Vsa2FybmkgPHByYXRoYW1lc2hrQG52aWRpYS5jb20+DQo+ID4gQ2M6 IFJpY2hhcmQgU2FuZGlmb3JkIDxyaWNoYXJkLnNhbmRpZm9yZEBhcm0uY29tPjsgVGhvbWFzIFNj aHdpbmdlDQo+ID4gPHRzY2h3aW5nZUBiYXlsaWJyZS5jb20+OyBnY2MtcGF0Y2hlc0BnY2MuZ251 Lm9yZw0KPiA+IFN1YmplY3Q6IFJFOiBSZS1jb21wdXRlIFRZUEVfTU9ERSBhbmQgREVDTF9NT0RF IHdoaWxlIHN0cmVhbWluZyBpbg0KPiBmb3INCj4gPiBhY2NlbGVyYXRvcg0KPiA+DQo+ID4gRXh0 ZXJuYWwgZW1haWw6IFVzZSBjYXV0aW9uIG9wZW5pbmcgbGlua3Mgb3IgYXR0YWNobWVudHMNCj4g Pg0KPiA+DQo+ID4gT24gVHVlLCAyNCBTZXAgMjAyNCwgUHJhdGhhbWVzaCBLdWxrYXJuaSB3cm90 ZToNCj4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0t DQo+ID4gPiA+IEZyb206IFJpY2hhcmQgQmllbmVyIDxyZ3VlbnRoZXJAc3VzZS5kZT4NCj4gPiA+ ID4gU2VudDogTW9uZGF5LCBTZXB0ZW1iZXIgOSwgMjAyNCA3OjI0IFBNDQo+ID4gPiA+IFRvOiBQ cmF0aGFtZXNoIEt1bGthcm5pIDxwcmF0aGFtZXNoa0BudmlkaWEuY29tPg0KPiA+ID4gPiBDYzog UmljaGFyZCBTYW5kaWZvcmQgPHJpY2hhcmQuc2FuZGlmb3JkQGFybS5jb20+OyBUaG9tYXMNCj4g U2Nod2luZ2UNCj4gPiA+ID4gPHRzY2h3aW5nZUBiYXlsaWJyZS5jb20+OyBnY2MtcGF0Y2hlc0Bn Y2MuZ251Lm9yZw0KPiA+ID4gPiBTdWJqZWN0OiBSRTogUmUtY29tcHV0ZSBUWVBFX01PREUgYW5k IERFQ0xfTU9ERSB3aGlsZSBzdHJlYW1pbmcNCj4gaW4NCj4gPiA+ID4gZm9yIGFjY2VsZXJhdG9y DQo+ID4gPiA+DQo+ID4gPiA+IEV4dGVybmFsIGVtYWlsOiBVc2UgY2F1dGlvbiBvcGVuaW5nIGxp bmtzIG9yIGF0dGFjaG1lbnRzDQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+IE9uIFR1ZSwgMyBT ZXAgMjAyNCwgUHJhdGhhbWVzaCBLdWxrYXJuaSB3cm90ZToNCj4gPiA+ID4NCj4gPiA+ID4gPg0K PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4g PiA+ID4gRnJvbTogUHJhdGhhbWVzaCBLdWxrYXJuaSA8cHJhdGhhbWVzaGtAbnZpZGlhLmNvbT4N Cj4gPiA+ID4gPiA+IFNlbnQ6IFRodXJzZGF5LCBBdWd1c3QgMjIsIDIwMjQgNzo0MSBQTQ0KPiA+ ID4gPiA+ID4gVG86IFJpY2hhcmQgQmllbmVyIDxyZ3VlbnRoZXJAc3VzZS5kZT4NCj4gPiA+ID4g PiA+IENjOiBSaWNoYXJkIFNhbmRpZm9yZCA8cmljaGFyZC5zYW5kaWZvcmRAYXJtLmNvbT47IFRo b21hcw0KPiA+ID4gPiA+ID4gU2Nod2luZ2UgPHRzY2h3aW5nZUBiYXlsaWJyZS5jb20+OyBnY2Mt cGF0Y2hlc0BnY2MuZ251Lm9yZw0KPiA+ID4gPiA+ID4gU3ViamVjdDogUkU6IFJlLWNvbXB1dGUg VFlQRV9NT0RFIGFuZCBERUNMX01PREUgd2hpbGUNCj4gPiBzdHJlYW1pbmcNCj4gPiA+ID4gPiA+ IGluIGZvciBhY2NlbGVyYXRvcg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEV4dGVybmFsIGVt YWlsOiBVc2UgY2F1dGlvbiBvcGVuaW5nIGxpbmtzIG9yIGF0dGFjaG1lbnRzDQo+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N Cj4gPiA+ID4gPiA+ID4gRnJvbTogUmljaGFyZCBCaWVuZXIgPHJndWVudGhlckBzdXNlLmRlPg0K PiA+ID4gPiA+ID4gPiBTZW50OiBXZWRuZXNkYXksIEF1Z3VzdCAyMSwgMjAyNCA1OjA5IFBNDQo+ ID4gPiA+ID4gPiA+IFRvOiBQcmF0aGFtZXNoIEt1bGthcm5pIDxwcmF0aGFtZXNoa0BudmlkaWEu Y29tPg0KPiA+ID4gPiA+ID4gPiBDYzogUmljaGFyZCBTYW5kaWZvcmQgPHJpY2hhcmQuc2FuZGlm b3JkQGFybS5jb20+OyBUaG9tYXMNCj4gPiA+ID4gPiA+ID4gU2Nod2luZ2UgPHRzY2h3aW5nZUBi YXlsaWJyZS5jb20+OyBnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZw0KPiA+ID4gPiA+ID4gPiBTdWJq ZWN0OiBSRTogUmUtY29tcHV0ZSBUWVBFX01PREUgYW5kIERFQ0xfTU9ERSB3aGlsZQ0KPiA+ID4g PiA+ID4gPiBzdHJlYW1pbmcgaW4NCj4gPiA+ID4gPiA+IGZvcg0KPiA+ID4gPiA+ID4gPiBhY2Nl bGVyYXRvcg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBFeHRlcm5hbCBlbWFpbDogVXNl IGNhdXRpb24gb3BlbmluZyBsaW5rcyBvciBhdHRhY2htZW50cw0KPiA+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBPbiBXZWQsIDIxIEF1ZyAyMDI0LCBQcmF0aGFtZXNo IEt1bGthcm5pIHdyb3RlOg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ ID4gPiA+ID4gPiA+ID4gPiBGcm9tOiBSaWNoYXJkIEJpZW5lciA8cmd1ZW50aGVyQHN1c2UuZGU+ DQo+ID4gPiA+ID4gPiA+ID4gPiBTZW50OiBUdWVzZGF5LCBBdWd1c3QgMjAsIDIwMjQgMTA6MzYg QU0NCj4gPiA+ID4gPiA+ID4gPiA+IFRvOiBSaWNoYXJkIFNhbmRpZm9yZCA8cmljaGFyZC5zYW5k aWZvcmRAYXJtLmNvbT4NCj4gPiA+ID4gPiA+ID4gPiA+IENjOiBQcmF0aGFtZXNoIEt1bGthcm5p IDxwcmF0aGFtZXNoa0BudmlkaWEuY29tPjsNCj4gVGhvbWFzDQo+ID4gPiA+ID4gPiBTY2h3aW5n ZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPHRzY2h3aW5nZUBiYXlsaWJyZS5jb20+OyBnY2MtcGF0Y2hl c0BnY2MuZ251Lm9yZw0KPiA+ID4gPiA+ID4gPiA+ID4gU3ViamVjdDogUmU6IFJlLWNvbXB1dGUg VFlQRV9NT0RFIGFuZCBERUNMX01PREUgd2hpbGUNCj4gPiA+ID4gPiA+ID4gPiA+IHN0cmVhbWlu Zw0KPiA+ID4gPiA+ID4gaW4NCj4gPiA+ID4gPiA+ID4gPiA+IGZvciBhY2NlbGVyYXRvcg0KPiA+ ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IEV4dGVybmFsIGVtYWlsOiBVc2UgY2F1 dGlvbiBvcGVuaW5nIGxpbmtzIG9yDQo+IGF0dGFjaG1lbnRzDQo+ID4gPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gQW0gMTkuMDguMjAyNCB1bSAy MDo1NiBzY2hyaWViIFJpY2hhcmQgU2FuZGlmb3JkDQo+ID4gPiA+ID4gPiA+ID4gPiA8cmljaGFy ZC5zYW5kaWZvcmRAYXJtLmNvbT46DQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ ID4gPiA+IO+7v1ByYXRoYW1lc2ggS3Vsa2FybmkgPHByYXRoYW1lc2hrQG52aWRpYS5jb20+IHdy aXRlczoNCj4gPiA+ID4gPiA+ID4gPiA+ID4+IGRpZmYgLS1naXQgYS9nY2MvbHRvLXN0cmVhbWVy LWluLmNjDQo+ID4gPiA+ID4gPiA+ID4gPiA+PiBiL2djYy9sdG8tc3RyZWFtZXItaW4uY2MgaW5k ZXgNCj4gPiA+ID4gPiA+ID4gPiA+ID4+IGNiZjYwNDFmZDY4Li4wNDIwMTgzZmFmOCAxMDA2NDQN Cj4gPiA+ID4gPiA+ID4gPiA+ID4+IC0tLSBhL2djYy9sdG8tc3RyZWFtZXItaW4uY2MNCj4gPiA+ ID4gPiA+ID4gPiA+ID4+ICsrKyBiL2djYy9sdG8tc3RyZWFtZXItaW4uY2MNCj4gPiA+ID4gPiA+ ID4gPiA+ID4+IEBAIC00NCw2ICs0NCw3IEBAIGFsb25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUN Cj4gPiBDT1BZSU5HMy4NCj4gPiA+ID4gPiA+ID4gPiA+ID4+IElmDQo+ID4gPiA+ID4gPiA+IG5v dA0KPiA+ID4gPiA+ID4gPiA+ID4gc2VlDQo+ID4gPiA+ID4gPiA+ID4gPiA+PiAjaW5jbHVkZSAi ZGVidWcuaCINCj4gPiA+ID4gPiA+ID4gPiA+ID4+ICNpbmNsdWRlICJhbGxvYy1wb29sLmgiDQo+ ID4gPiA+ID4gPiA+ID4gPiA+PiAjaW5jbHVkZSAidG9wbGV2LmgiDQo+ID4gPiA+ID4gPiA+ID4g PiA+PiArI2luY2x1ZGUgInN0b3ItbGF5b3V0LmgiDQo+ID4gPiA+ID4gPiA+ID4gPiA+Pg0KPiA+ ID4gPiA+ID4gPiA+ID4gPj4gLyogQWxsb2NhdG9yIHVzZWQgdG8gaG9sZCBzdHJpbmcgc2xvdCBl bnRyaWVzIGZvcg0KPiA+IGxpbmUNCj4gPiA+ID4gPiA+ID4gPiA+ID4+IG1hcA0KPiA+ID4gPiA+ ID4gPiA+ID4gc3RyZWFtaW5nLg0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gKi8gc3RhdGljIHN0cnVj dCBvYmplY3RfYWxsb2NhdG9yPHN0cnVjdA0KPiBzdHJpbmdfc2xvdD4NCj4gPiA+ID4gPiA+ID4g PiA+ID4+ICpzdHJpbmdfc2xvdF9hbGxvY2F0b3I7IEBAIC0xNzUyLDYgKzE3NTMsMTcgQEANCj4g PiA+ID4gPiA+IGx0b19yZWFkX3RyZWVfMQ0KPiA+ID4gPiA+ID4gPiA+ID4gKGNsYXNzIGx0b19p bnB1dF9ibG9jayAqaWIsIGNsYXNzIGRhdGFfaW4gKmRhdGFfaW4sDQo+IHRyZWUNCj4gPiA+ID4g PiA+ID4gPiA+IGV4cHIpDQo+ID4gPiA+ID4gPiA+ID4gPiA+PiAgICAgd2l0aCAtZzEsIHNlZSBm b3IgZXhhbXBsZSBQUjExMzQ4OC4gICovDQo+ID4gPiA+ID4gPiA+ID4gPiA+PiAgICAgICBlbHNl IGlmIChERUNMX1AgKGV4cHIpICYmDQo+IERFQ0xfQUJTVFJBQ1RfT1JJR0lODQo+ID4gPiA+ID4g PiA+ID4gPiA+PiAoZXhwcikNCj4gPiA+ID4gPiA+ID09DQo+ID4gPiA+ID4gPiA+ID4gPiBleHBy KQ0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gICAgREVDTF9BQlNUUkFDVF9PUklHSU4gKGV4cHIpID0g TlVMTF9UUkVFOw0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gKw0KPiA+ID4gPiA+ID4gPiA+ID4gPj4g KyNpZmRlZiBBQ0NFTF9DT01QSUxFUg0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gKyAgICAgIC8qIEZv ciBkZWNsIHdpdGggYWdncmVnYXRlIHR5cGUsIGhvc3QNCj4gc3RyZWFtcw0KPiA+ID4gPiA+ID4g PiA+ID4gPj4gK291dA0KPiA+ID4gPiA+ID4gPiBWT0lEbW9kZS4NCj4gPiA+ID4gPiA+ID4gPiA+ ID4+ICsgICAgIENvbXB1dGUgdGhlIGNvcnJlY3QgREVDTF9NT0RFIGJ5IGNhbGxpbmcNCj4gPiA+ ID4gcmVsYXlvdXRfZGVjbC4NCj4gPiA+ID4gPiA+ID4gKi8NCj4gPiA+ID4gPiA+ID4gPiA+ID4+ ICsgICAgICBpZiAoKFZBUl9QIChleHByKQ0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gKyAgICAgICB8 fCBUUkVFX0NPREUgKGV4cHIpID09IFBBUk1fREVDTA0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gKyAg ICAgICB8fCBUUkVFX0NPREUgKGV4cHIpID09IEZJRUxEX0RFQ0wpDQo+ID4gPiA+ID4gPiA+ID4g PiA+PiArICAgICAgJiYgQUdHUkVHQVRFX1RZUEVfUCAoVFJFRV9UWVBFIChleHByKSkNCj4gPiA+ ID4gPiA+ID4gPiA+ID4+ICsgICAgICAmJiBERUNMX01PREUgKGV4cHIpID09IFZPSURtb2RlKQ0K PiA+ID4gPiA+ID4gPiA+ID4gPj4gKyAgICByZWxheW91dF9kZWNsIChleHByKTsgI2VuZGlmDQo+ ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IEdlbnVpbmUgcXVlc3Rpb24s IGJ1dDogaXMgcmVsYXlvdXRfZGVjbCBzYWZlIGluIHRoaXMNCj4gPiA+ID4gY29udGV4dD8NCj4g PiA+ID4gPiA+ID4gSXQNCj4gPiA+ID4gPiA+ID4gPiA+IGRvZXMNCj4gPiA+ID4gPiA+ID4gPiA+ ID4gYSBsb3QgbW9yZSB0aGFuIGp1c3QgcmVzZXQgdGhlIG1vZGUuICBJdCBhbHNvDQo+IGFwcGxp ZXMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gdGhlDQo+ID4gPiA+ID4gPiB0YXJnZXQNCj4gPiA+ID4g PiA+ID4gPiA+IEFCSSdzDQo+ID4gPiA+ID4gPiA+ID4gPiA+IHByZWZlcmVuY2VzIHdydCBhbGln bm1lbnQsIHBhZGRpbmcsIGFuZCBzbyBvbiwNCj4gcmF0aGVyDQo+ID4gPiA+ID4gPiA+ID4gPiA+ IHRoYW4NCj4gPiA+ID4gPiA+ID4gPiA+IHByZXNlcnZpbmcNCj4gPiA+ID4gPiA+ID4gPiA+ID4g dGhvc2Ugb2YgdGhlIGhvc3Qncy4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g PiBJdCB3b3VsZCBiZSBiZXR0ZXIgdG8ganVzdCByZWNvbXB1dGUgdGhlIG1vZGUgaGVyZS4NCj4g PiA+ID4gPiA+ID4gPiBIaSwNCj4gPiA+ID4gPiA+ID4gPiBUaGUgYXR0YWNoZWQgcGF0Y2ggc2V0 cyBERUNMX01PREUgKGV4cHIpIHRvIFRZUEVfTU9ERQ0KPiA+ID4gPiA+ID4gPiA+IChUUkVFX1RZ UEUNCj4gPiA+ID4gPiA+ID4gKGV4cHIpKSBpbiBsdG9fcmVhZF90cmVlXzEgaW5zdGVhZCBvZiBj YWxsaW5nDQo+IHJlbGF5b3V0X2RlY2wNCj4gPiA+ID4gKGV4cHIpLg0KPiA+ID4gPiA+ID4gPiA+ IEkgY2hlY2tlZCBsYXlvdXRfZGVjbF90eXBlIGRvZXMgdGhlIHNhbWUgdGhpbmcgZm9yDQo+IHNl dHRpbmcNCj4gPiA+ID4gPiA+ID4gPiBkZWNsDQo+ID4gPiA+ID4gPiA+IG1vZGUsDQo+ID4gPiA+ ID4gPiA+ID4gZXhjZXB0IGZvciBiaXQgZmllbGRzLiBTaW5jZSBiaXQtZmllbGRzIGNhbm5vdCBo YXZlDQo+ID4gPiA+ID4gPiA+ID4gYWdncmVnYXRlDQo+ID4gPiA+ID4gPiB0eXBlLA0KPiA+ID4g PiA+ID4gPiBJIGFtIGFzc3VtaW5nIHNldHRpbmcgREVDTF9NT0RFIChleHByKSB0byBUWVBFX01P REUNCj4gPiAoVFJFRV9UWVBFDQo+ID4gPiA+ID4gPiAoZXhwcikpDQo+ID4gPiA+ID4gPiA+IHdv dWxkIGJlIE9LIGluIHRoaXMgY2FzZSA/DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IFll cCwgdGhhdCBzaG91bGQgd29yay4NCj4gPiA+ID4gPiA+IFRoYW5rcywgSSBoYXZlIGNvbW1pdHRl ZCB0aGUgcGF0Y2ggaW46DQo+ID4gPiA+ID4gPg0KPiA+IGh0dHBzOi8vZ2NjLmdudS5vcmcvZ2l0 Lz9wPWdjYy5naXQ7YT1jb21taXQ7aD03OTJhZGI4ZDIyMmQwZDFkMTYNCj4gPiA+ID4gPiA+IGIx ODINCj4gPiA+ID4gPiA+IDg3DQo+ID4gPiA+ID4gPiAxZTEwNWY0NzgyM2I4ZTcyDQo+ID4gPiA+ ID4gSGksDQo+ID4gPiA+ID4gVGhpcyBhbHNvIHJlc3VsdHMgaW4gc2FtZSBmYWlsdXJlICh1c2lu ZyBPSW1vZGUpIGZvciB2ZWN0b3Igb2YNCj4gPiA+ID4gPiAyNTYtYml0IHR5cGUsIHdoaWNoIHdh cyB0cmlnZ2VyZWQgZm9yIGZpcnN0cHJpdmF0ZS1tYXBwaW5ncy0NCj4gMS5jLg0KPiA+ID4gPiA+ IENhbiBiZSByZXByb2R1Y2VkIHdpdGggZm9sbG93aW5nIHNpbXBsZSB0ZXN0LWNhc2U6DQo+ID4g PiA+ID4NCj4gPiA+ID4gPiB0eXBlZGVmIGxvbmcgdjRkaSBfX2F0dHJpYnV0ZV9fKCh2ZWN0b3Jf c2l6ZSAoc2l6ZW9mIChsb25nKSAqDQo+ID4gPiA+ID4gNCkpKTsgaW50IG1haW4oKSB7DQo+ID4g PiA+ID4gICB2NGRpIHg7DQo+ID4gPiA+ID4gICAjcHJhZ21hIGFjYyBwYXJhbGxlbCBjb3B5KHgp DQo+ID4gPiA+ID4gICAgIHg7DQo+ID4gPiA+ID4gICByZXR1cm4gMDsNCj4gPiA+ID4gPiB9DQo+ ID4gPiA+ID4NCj4gPiA+ID4gPiBDb21waWxpbmcgd2l0aCAtZm9wZW5hY2MgLWZvZmZsb2FkPW52 cHR4LW5vbmU6DQo+ID4gPiA+ID4gbHRvMTogZmF0YWwgZXJyb3I6IG52cHR4LW5vbmUgLSAyNTYt Yml0IGludGVnZXIgbnVtYmVycw0KPiA+ID4gPiA+IHVuc3VwcG9ydGVkIChtb2RlIOKAmE9J4oCZ KSBjb21waWxhdGlvbiB0ZXJtaW5hdGVkLg0KPiA+ID4gPiA+IG52cHR4IG1rb2ZmbG9hZDogZmF0 YWwgZXJyb3I6DQo+ID4gPiA+ID4gLi4vaW5zdGFsbC9iaW4vYWFyY2g2NC11bmtub3duLWxpbnV4 LWdudS1hY2NlbC1udnB0eC1ub25lLWdjYw0KPiA+ID4gPiA+IHJldHVybmVkDQo+ID4gPiA+IDEg ZXhpdCBzdGF0dXMgY29tcGlsYXRpb24gdGVybWluYXRlZC4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ IFRoZSBhdHRhY2hlZCBwYXRjaCBmaXhlcyB0aGUgdGVzdCB3aXRoIHNhbWUgYXBwcm9hY2ggYXMg Zm9yDQo+ID4gPiA+ID4gYWdncmVnYXRlIHR5cGUgLS0gc3RyZWFtaW5nIG91dCBWT0lEbW9kZSBm cm9tIGhvc3QsIGFuZA0KPiA+ID4gPiA+IHJlY29tcHV0aW5nIG1vZGUgZm9yDQo+ID4gPiA+IHZl Y3Rvcl90eXBlIGR1cmluZyBzdHJlYW0taW4gZm9yIGFjY2VsZXJhdG9yLg0KPiA+ID4gPiA+IExU TyBib290c3RyYXArdGVzdGVkIG9uIGFhcmNoNjQtbGludXgtZ251Lg0KPiA+ID4gPiA+IERvZXMg dGhlIHBhdGNoIGxvb2sgT0sgPw0KPiA+ID4gPg0KPiA+ID4gPiBAQCAtMTc1NywxMSArMTc1Nywy MiBAQCBsdG9fcmVhZF90cmVlXzEgKGNsYXNzIGx0b19pbnB1dF9ibG9jaw0KPiA+ICppYiwNCj4g PiA+ID4gY2xhc3MgZGF0YV9pbiAqZGF0YV9pbiwgdHJlZSBleHByKQ0KPiA+ID4gPiAgICAgICAg aWYgKChWQVJfUCAoZXhwcikNCj4gPiA+ID4gICAgICAgICAgICB8fCBUUkVFX0NPREUgKGV4cHIp ID09IFBBUk1fREVDTA0KPiA+ID4gPiAgICAgICAgICAgIHx8IFRSRUVfQ09ERSAoZXhwcikgPT0g RklFTERfREVDTCkNCj4gPiA+ID4gLSAgICAgICAgICYmIEFHR1JFR0FURV9UWVBFX1AgKFRSRUVf VFlQRSAoZXhwcikpDQo+ID4gPiA+ICsgICAgICAgICAmJiAoQUdHUkVHQVRFX1RZUEVfUCAoVFJF RV9UWVBFIChleHByKSkgfHwNCj4gVkVDVE9SX1RZUEVfUA0KPiA+ID4gPiAoVFJFRV9UWVBFIChl eHByKSkpDQo+ID4gPiA+DQo+ID4gPiA+IGxvbmcgbGluZSwgcGxlYXNlIHdyYXAuDQo+ID4gPiA+ DQo+ID4gPiA+ICAgICAgICAgICAmJiBERUNMX01PREUgKGV4cHIpID09IFZPSURtb2RlKQ0KPiA+ ID4gPiAgICAgICAgIFNFVF9ERUNMX01PREUgKGV4cHIsIFRZUEVfTU9ERSAoVFJFRV9UWVBFIChl eHByKSkpOw0KPiA+ICNlbmRpZg0KPiA+ID4gPiAgICAgIH0NCj4gPiA+ID4NCj4gPiA+ID4gSSdt IG5vdCBzdXJlIHlvdSBjYW4gY2FsbCBUWVBFX01PREUgYWthIHZlY3Rvcl90eXBlX21vZGUgc2Fm ZWx5DQo+ID4gPiA+IGR1cmluZyBMVE8gc3RyZWFtaW5nLiAgSW5zdGVhZCB5b3UgcG9zc2libHkg d2FudCB0byB1c2UNCj4gPiBUWVBFX01PREVfUkFXIGhlcmU/DQo+ID4gPiA+DQo+ID4gPiA+ICsj aWZkZWYgQUNDRUxfQ09NUElMRVINCj4gPiA+ID4gKyAgICBpZiAoVkVDVE9SX1RZUEVfUCAoZXhw cikgJiYgVFlQRV9NT0RFIChleHByKSA9PSBWT0lEbW9kZSkNCj4gPiA+ID4gKyAgICAgIHsNCj4g PiA+ID4gKyAgICAgICBwb2x5X3VpbnQ2NCBudW5pdHMgPSBUWVBFX1ZFQ1RPUl9TVUJQQVJUUyAo ZXhwcik7DQo+ID4gPiA+ICsgICAgICAgdHJlZSBpbm5lcnR5cGUgPSBUUkVFX1RZUEUgKGV4cHIp Ow0KPiA+ID4gPiArICAgICAgIG1hY2hpbmVfbW9kZSB2bW9kZQ0KPiA+ID4gPiArICAgICAgICAg PSBtb2RlX2Zvcl92ZWN0b3IgKFNDQUxBUl9UWVBFX01PREUgKGlubmVydHlwZSksDQo+ID4gPiA+ IG51bml0cykuZWxzZV9ibGsgKCk7DQo+ID4gPiA+ICsgICAgICAgU0VUX1RZUEVfTU9ERSAoZXhw ciwgdm1vZGUpOw0KPiA+ID4gPg0KPiA+ID4gPiBJJ20gbm90IHN1cmUgdGhpcyB1bmFtYmlndW91 c2x5IHNwZWNpZmllcyB0aGUgbW9kZSwgZG9lcyBpdD8gKHgyDQo+ID4gPiA+IG1vZGVzLCBldGMu KS4NCj4gPiA+ID4NCj4gPiA+ID4gUmljaGFyZD8NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4g PiBJZiB3ZSBnbyB3aXRoIHRoaXMgYXBwcm9hY2gsIHdvdWxkIGl0IGJlIHNhZmUgdG8gcmVtb3Zl IHRoZQ0KPiA+ID4gPiA+IGZvbGxvd2luZyBodW5rIGZyb20gbHRvX2lucHV0X21vZGVfdGFibGUs IHNpbmNlIHZlY3RvciBtb2Rlcw0KPiA+IHdvdWxkDQo+ID4gPiA+ID4gbm8gbG9uZ2VyIGJlDQo+ ID4gPiA+IHN0cmVhbWVkIG91dCBpbiBMVE8gYnl0ZWNvZGUgPw0KPiA+ID4gPg0KPiA+ID4gPiBJ IHdvdWxkIGd1ZXNzIHlvdSB3YW50IHRvIHB1dCBhbiBhc3NlcnQgb24gdGhlIHF1ZXJ5IHNpZGUg dGhlbj8NCj4gPiA+IEhpIFJpY2hhcmQsDQo+ID4gPiBUaGFua3MgZm9yIHRoZSByZXZpZXcgYW5k IHNvcnJ5IGZvciBsYXRlIHJlcGx5Lg0KPiA+ID4gVGhlIGF0dGFjaGVkIHBhdGNoIHVzZXMgVFlQ RV9NT0RFX1JBVyBmb3IgdmVjdG9yX3R5cGUsIGFuZCByZW1vdmVzDQo+ID4gPiB2ZWN0b3IgaGFu ZGxpbmcgaW4gbHRvX2lucHV0X21vZGVfdGFibGUuDQo+ID4gPg0KPiA+ID4gU2hvdWxkIEkgYWxz byBuZWVkIHRvIGFkZCBhbiBhc3NlcnQgZm9yICFWRUNUT1JfTU9ERV9QIGluDQo+ID4gPiBicF91 bnBhY2tfbWFjaGluZV9tb2RlIChpZiB3ZSdyZSBpbiBhY2NlbCkgb3IgdGhlIGNoZWNrIGluDQo+ ID4gPiBsdG9faW5wdXRfbW9kZV90YWJsZSBzaG91bGQgYmUgc3VmZmljaWVudCA/DQo+ID4gPg0K PiA+ID4gVGhlIHBhdGNoIG1vdmVzIHRoZSBmb2xsb3dpbmcgaHVuayBpbiBsdG9fcmVhZF90cmVl XzE6DQo+ID4gPg0KPiA+ID4gI2lmZGVmIEFDQ0VMX0NPTVBJTEVSDQo+ID4gPiAgICAgICBpZiAo KFZBUl9QIChleHByKQ0KPiA+ID4gICAgICAgICAgICB8fCBUUkVFX0NPREUgKGV4cHIpID09IFBB Uk1fREVDTA0KPiA+ID4gICAgICAgICAgICB8fCBUUkVFX0NPREUgKGV4cHIpID09IEZJRUxEX0RF Q0wpDQo+ID4gPiAgICAgICAgICAgJiYgQUdHUkVHQVRFX1RZUEVfUCAoVFJFRV9UWVBFIChleHBy KSkNCj4gPiA+ICAgICAgICAgICAmJiBERUNMX01PREUgKGV4cHIpID09IFZPSURtb2RlKQ0KPiA+ ID4gICAgICAgICBTRVRfREVDTF9NT0RFIChleHByLCBUWVBFX01PREUgKFRSRUVfVFlQRSAoZXhw cikpKTsgI2VuZGlmDQo+ID4gPg0KPiA+ID4gb3V0c2lkZSB0aGUgZm9sbG93aW5nIGNvbmRpdGlv bjoNCj4gPiA+ICBpZiAoKERFQ0xfUCAoZXhwcikNCj4gPiA+ICAgICAgICAmJiBUUkVFX0NPREUg KGV4cHIpICE9IEZJRUxEX0RFQ0wNCj4gPiA+ICAgICAgICAmJiBUUkVFX0NPREUgKGV4cHIpICE9 IERFQlVHX0VYUFJfREVDTA0KPiA+ID4gICAgICAgICYmIFRSRUVfQ09ERSAoZXhwcikgIT0gVFlQ RV9ERUNMKQ0KPiA+ID4NCj4gPiA+IHNpbmNlIHRoZSBjb25kaXRpb24gZG9lc24ndCBhbGxvdyBG SUVMRF9ERUNMIGFuZCB0aHVzIHdvdWxkIG5vdA0KPiBzZXQNCj4gPiA+IG1vZGUgZm9yIEZJRUxE X0RFQ0wuDQo+ID4gPg0KPiA+ID4gSSBhbSBub3Qgc3VyZSBob3cgdG8gaW5mZXIgdmVjdG9yIG1v ZGUgZnJvbSBzY2FsYXJfdHlwZSBhbmQNCj4gbGVuZ3RoLA0KPiA+IGlmDQo+ID4gPiB3ZSBjYW4n dCB1c2UgbW9kZV9mb3JfdmVjdG9yIGhlcmUuIENvdWxkIHlvdSBwbGVhc2Ugc3VnZ2VzdCBob3cg dG8NCj4gPiBwcm9jZWVkID8NCj4gPg0KPiA+IEkgaGF2ZSBubyBnb29kIGlkZWEgYmVzaWRlcyBp bmRlZWQgdXNpbmcgbW9kZV9mb3JfdmVjdG9yIGFzDQo+ID4gbGF5b3V0X3R5cGUgZG9lcy4NCj4g Pg0KPiA+IFNvIE9LIHVubGVzcyBSaWNoYXJkIFMuIGhhcyBhbnl0aGluZyB0byBhZGQuDQo+IEhp IFJpY2hhcmQgUy4sDQo+IERvZXMgdGhlIHBhdGNoIGluOg0KPiBodHRwczovL2djYy5nbnUub3Jn L3BpcGVybWFpbC9nY2MtcGF0Y2hlcy8yMDI0LVNlcHRlbWJlci82NjM2NzAuaHRtbA0KPiANCj4g bG9vayBPSyB0byB5b3UgPyBXb3VsZCB1c2luZyBtb2RlX2Zvcl92ZWN0b3IgYmUgY29ycmVjdCB0 byByZWNvbXB1dGUNCj4gdmVjdG9yIG1vZGUgd2hpbGUgc3RyZWFtaW5nLWluIGR1cmluZyBhY2Nl bCwgYXMgZG9uZSBpbiB0aGUgcGF0Y2ggPw0KSGksIHBpbmcgPw0KDQpUaGFua3MsDQpQcmF0aGFt ZXNoDQo+IA0KPiBUaGFua3MsDQo+IFByYXRoYW1lc2gNCj4gPg0KPiA+IFRoYW5rcywNCj4gPiBS aWNoYXJkLg0KPiA+DQo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBQcmF0aGFtZXNoIEt1bGthcm5pIDxw cmF0aGFtZXNoa0BudmlkaWEuY29tPg0KPiA+ID4NCj4gPiA+IFRoYW5rcw0KPiA+ID4gUHJhdGhh bWVzaA0KPiA+ID4gPg0KPiA+ID4gPiA+ICAgICAgICAgICAgIGNhc2UgTU9ERV9WRUNUT1JfQk9P TDoNCj4gPiA+ID4gPiAgICAgICAgICAgICBjYXNlIE1PREVfVkVDVE9SX0lOVDoNCj4gPiA+ID4g PiAgICAgICAgICAgICBjYXNlIE1PREVfVkVDVE9SX0ZMT0FUOg0KPiA+ID4gPiA+ICAgICAgICAg ICAgIGNhc2UgTU9ERV9WRUNUT1JfRlJBQ1Q6DQo+ID4gPiA+ID4gICAgICAgICAgICAgY2FzZSBN T0RFX1ZFQ1RPUl9VRlJBQ1Q6DQo+ID4gPiA+ID4gICAgICAgICAgICAgY2FzZSBNT0RFX1ZFQ1RP Ul9BQ0NVTToNCj4gPiA+ID4gPiAgICAgICAgICAgICBjYXNlIE1PREVfVkVDVE9SX1VBQ0NVTToN Cj4gPiA+ID4gPiAgICAgICAgICAgICAgIC8qIEZvciB1bnN1cHBvcnRlZCB2ZWN0b3IgbW9kZXMg anVzdCB1c2UNCj4gQkxLbW9kZSwNCj4gPiA+ID4gPiAgICAgICAgICAgICAgICAgIGlmIHRoZSBz Y2FsYXIgbW9kZSBpcyBzdXBwb3J0ZWQuICAqLw0KPiA+ID4gPiA+ICAgICAgICAgICAgICAgaWYg KHRhYmxlWyhpbnQpIGlubmVyXSAhPSBWT0lEbW9kZSkNCj4gPiA+ID4gPiAgICAgICAgICAgICAg ICAgew0KPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgIHRhYmxlW21dID0gQkxLbW9kZTsNCj4g PiA+ID4gPiAgICAgICAgICAgICAgICAgICBicmVhazsNCj4gPiA+ID4gPiAgICAgICAgICAgICAg ICAgfQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogUHJhdGhhbWVzaCBLdWxr YXJuaSA8cHJhdGhhbWVzaGtAbnZpZGlhLmNvbT4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFRoYW5r cywNCj4gPiA+ID4gPiBQcmF0aGFtZXNoDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gYWZ0ZXIg dmVyaWZ5aW5nIGl0IHBhc3NlcyBib290c3RyYXArdGVzdCBvbiBhYXJjaDY0LWxpbnV4LQ0KPiBn bnUsDQo+ID4gPiA+ID4gPiBhbmQgbGliZ29tcCB0ZXN0aW5nICh3aXRob3V0IEdQVSkgZm9yIGFh cmNoNjQtPm52cHR4IGFuZA0KPiA+IHg4Nl82NC0+bnZwdHguDQo+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+ID4gU29ycnkgaWYgdGhpcyBzb3VuZHMgbGlrZSBhIHNpbGx5IHF1ZXMgLS0gV2h5 IHdvdWxkIGl0DQo+IGJlDQo+ID4gPiA+ID4gPiA+ID4gdW5zYWZlDQo+ID4gPiA+ID4gPiB0bw0K PiA+ID4gPiA+ID4gPiA+IGNhbGwgcmVsYXlvdXRfZGVjbCBmb3IgdmFyaWFibGVzIHRoYXQgYXJl IG1hcHBlZCB0bw0KPiA+ID4gPiA+ID4gPiA+IGFjY2VsZXJhdG9yDQo+ID4gPiA+ID4gPiBldmVu DQo+ID4gPiA+ID4gPiA+ID4gaWYgaXQnZCBub3QgcHJlc2VydmUgaG9zdCdzIHByb3BlcnRpZXMg PyBJIGFzc3VtZWQgd2UNCj4gd2FudA0KPiA+ID4gPiA+ID4gPiA+IHRvDQo+ID4gPiA+ID4gPiBh c3NpZ24NCj4gPiA+ID4gPiA+ID4gYWNjZWwncyBBQkkgcHJvcGVydGllcyBmb3IgbWFwcGVkIGRl Y2xzIChtb2RlIGJlaW5nIG9uZSBvZg0KPiA+ID4gPiA+ID4gPiB0aGVtKSwgb3IgYW0gSSBtaXN1 bmRlcnN0YW5kaW5nID8NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gU3RydWN0dXJlIGxh eW91dCBuZWVkIG5vdCBiZSBjb21wYXRpYmxlIGJ1dCB3ZSBhcmUNCj4gPiBwcmVzZXJ2aW5nDQo+ ID4gPiA+ID4gPiA+IHRoYXQNCj4gPiA+ID4gPiA+IG9mDQo+ID4gPiA+ID4gPiA+IHRoZSBob3N0 IGluc3RlYWQgb2YgcmUtbGF5b3V0aW5nIGluIHRhcmdldCBjb250ZXh0Lg0KPiA+IExpa2V3aXNl DQo+ID4gPiA+ID4gPiA+IHR5cGUNCj4gPiA+ID4gPiA+IDwtPg0KPiA+ID4gPiA+ID4gPiBtb2Rl IG1hcHBpbmcgZG9lc24ndCBoYXZlIHRvIGFncmVlLg0KPiA+ID4gPiA+ID4gQWggT0ssIHRoYW5r cyBmb3IgY2xhcmlmeWluZy4gU28gSUlVQywgaW4gZnV0dXJlLCB3ZSBtaWdodA0KPiA+IG5lZWQN Cj4gPiA+ID4gPiA+IHRvIGNoYW5nZSB0aGF0IGlmIChpbiB0aGVvcnkpLCBob3N0J3Mgc3RydWN0 dXJlIGxheW91dCBmb3IgYQ0KPiA+ID4gPiA+ID4gZGVjbCBpcyBpbmNvbXBhdGlibGUgd2l0aCBh IHBhcnRpY3VsYXIgYWNjZWwncyBBQkkgYW5kIHdpbGwNCj4gPiBuZWVkDQo+ID4gPiA+ID4gPiB0 byByZWxheW91dCBpbiBhY2NlbCdzIGNvbnRleHQgPw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ IFRoYW5rcywNCj4gPiA+ID4gPiA+IFByYXRoYW1lc2gNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gUmljaGFyZC4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBTaWduZWQtb2Zm LWJ5OiBQcmF0aGFtZXNoIEt1bGthcm5pDQo+ID4gPHByYXRoYW1lc2hrQG52aWRpYS5jb20+DQo+ ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBUaGFua3MsDQo+ID4gPiA+ID4gPiA+ID4g UHJhdGhhbWVzaA0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IFJpY2hhcmQN Cj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IFRoYW5rcywNCj4gPiA+ID4g PiA+ID4gPiA+ID4gUmljaGFyZA0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gICAgIH0NCj4gPiA+ID4gPiA+ID4gPiA+ID4+IH0N Cj4gPiA+ID4gPiA+ID4gPiA+ID4+DQo+ID4gPiA+ID4gPiA+ID4gPiA+PiBkaWZmIC0tZ2l0IGEv Z2NjL3N0b3ItbGF5b3V0LmNjIGIvZ2NjL3N0b3ItDQo+IGxheW91dC5jYw0KPiA+ID4gPiA+ID4g PiA+ID4gPj4gaW5kZXggMTBjMDgwOTkxNGMuLjBmZjhiZDExNzFlIDEwMDY0NA0KPiA+ID4gPiA+ ID4gPiA+ID4gPj4gLS0tIGEvZ2NjL3N0b3ItbGF5b3V0LmNjDQo+ID4gPiA+ID4gPiA+ID4gPiA+ PiArKysgYi9nY2Mvc3Rvci1sYXlvdXQuY2MNCj4gPiA+ID4gPiA+ID4gPiA+ID4+IEBAIC0yMzk2 LDYgKzIzOTYsMzIgQEAgZmluaXNoX2J1aWx0aW5fc3RydWN0ICh0cmVlDQo+ID4gPiA+ID4gPiA+ ID4gPiA+PiB0eXBlLA0KPiA+ID4gPiA+ID4gY29uc3QNCj4gPiA+ID4gPiA+ID4gPiA+ID4+IGNo YXINCj4gPiA+ID4gPiA+ID4gPiA+ICpuYW1lLCB0cmVlIGZpZWxkcywNCj4gPiA+ID4gPiA+ID4g PiA+ID4+ICAgbGF5b3V0X2RlY2wgKFRZUEVfTkFNRSAodHlwZSksIDApOyB9DQo+ID4gPiA+ID4g PiA+ID4gPiA+Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gKy8qIENvbXB1dGUgVFlQRV9NT0RFIGZv ciBUWVBFICh3aGljaCBpcw0KPiBBUlJBWV9UWVBFKS4NCj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsq Lw0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gKw0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gK3ZvaWQgY29t cHV0ZV9hcnJheV9tb2RlICh0cmVlIHR5cGUpIHsNCj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsgIGdj Y19hc3NlcnQgKFRSRUVfQ09ERSAodHlwZSkgPT0gQVJSQVlfVFlQRSk7DQo+ID4gPiA+ID4gPiA+ ID4gPiA+PiArDQo+ID4gPiA+ID4gPiA+ID4gPiA+PiArICBTRVRfVFlQRV9NT0RFICh0eXBlLCBC TEttb2RlKTsgIGlmIChUWVBFX1NJWkUNCj4gPiAodHlwZSkNCj4gPiA+ID4gPiA+ID4gPiA+ID4+ ICsgIT0NCj4gPiA+ID4gMA0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gKyAgICAgICYmICEgdGFyZ2V0 bS5tZW1iZXJfdHlwZV9mb3JjZXNfYmxrICh0eXBlLA0KPiA+IFZPSURtb2RlKQ0KPiA+ID4gPiA+ ID4gPiA+ID4gPj4gKyAgICAgIC8qIEJMS21vZGUgZWxlbWVudHMgZm9yY2UgQkxLbW9kZSBhZ2dy ZWdhdGU7DQo+ID4gPiA+ID4gPiA+ID4gPiA+PiArICAgICBlbHNlIGV4dHJhY3Qvc3RvcmUgZmll bGRzIG1heSBsb3NlLiAgKi8NCj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsgICAgICAmJiAoVFlQRV9N T0RFIChUUkVFX1RZUEUgKHR5cGUpKSAhPSBCTEttb2RlDQo+ID4gPiA+ID4gPiA+ID4gPiA+PiAr ICAgICAgfHwgVFlQRV9OT19GT1JDRV9CTEsgKFRSRUVfVFlQRSAodHlwZSkpKSkNCj4gPiA+ID4g PiA+ID4gPiA+ID4+ICsgICAgew0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gKyAgICAgIFNFVF9UWVBF X01PREUgKHR5cGUsIG1vZGVfZm9yX2FycmF5DQo+IChUUkVFX1RZUEUNCj4gPiA+ID4gKHR5cGUp LA0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgVFlQRV9TSVpF ICh0eXBlKSkpOw0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gKyAgICAgIGlmIChUWVBFX01PREUgKHR5 cGUpICE9IEJMS21vZGUNCj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsgICAgICAmJiBTVFJJQ1RfQUxJ R05NRU5UICYmIFRZUEVfQUxJR04gKHR5cGUpIDwNCj4gPiA+ID4gPiA+ID4gQklHR0VTVF9BTElH Tk1FTlQNCj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsgICAgICAmJiBUWVBFX0FMSUdOICh0eXBlKSA8 IEdFVF9NT0RFX0FMSUdOTUVOVA0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gKyAoVFlQRV9NT0RFDQo+ ID4gPiA+ID4gPiA+ID4gPiAodHlwZSkpKQ0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gKyAgICB7DQo+ ID4gPiA+ID4gPiA+ID4gPiA+PiArICAgICAgVFlQRV9OT19GT1JDRV9CTEsgKHR5cGUpID0gMTsN Cj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsgICAgICBTRVRfVFlQRV9NT0RFICh0eXBlLCBCTEttb2Rl KTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsgICAgfQ0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gKyAg ICB9DQo+ID4gPiA+ID4gPiA+ID4gPiA+PiArfQ0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gKw0KPiA+ ID4gPiA+ID4gPiA+ID4gPj4gLyogQ2FsY3VsYXRlIHRoZSBtb2RlLCBzaXplLCBhbmQgYWxpZ25t ZW50IGZvcg0KPiBUWVBFLg0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gICAgRm9yIGFuIGFycmF5IHR5 cGUsIGNhbGN1bGF0ZSB0aGUgZWxlbWVudA0KPiA+IHNlcGFyYXRpb24NCj4gPiA+ID4gPiA+ID4g PiA+ID4+IGFzDQo+ID4gPiA+ID4gPiB3ZWxsLg0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gICAgUmVj b3JkIFRZUEUgb24gdGhlIGNoYWluIG9mIHBlcm1hbmVudCBvcg0KPiB0ZW1wb3JhcnkNCj4gPiA+ ID4gPiA+ID4gPiA+ID4+IHR5cGVzDQo+ID4gPiA+ID4gPiBAQA0KPiA+ID4gPiA+ID4gPiA+ID4g Pj4gLTI3MDksMjQgKzI3MzUsNyBAQCBsYXlvdXRfdHlwZSAodHJlZSB0eXBlKQ0KPiA+ID4gPiA+ ID4gPiA+ID4gPj4gICAgYWxpZ24gPSBNQVggKGFsaWduLCBCSVRTX1BFUl9VTklUKTsgI2VuZGlm DQo+ID4gPiA+ID4gPiA+ID4gPiA+PiAgICBTRVRfVFlQRV9BTElHTiAodHlwZSwgYWxpZ24pOw0K PiA+ID4gPiA+ID4gPiA+ID4gPj4gLSAgICBTRVRfVFlQRV9NT0RFICh0eXBlLCBCTEttb2RlKTsN Cj4gPiA+ID4gPiA+ID4gPiA+ID4+IC0gICAgaWYgKFRZUEVfU0laRSAodHlwZSkgIT0gMA0KPiA+ ID4gPiA+ID4gPiA+ID4gPj4gLSAgICAgICAgJiYgISB0YXJnZXRtLm1lbWJlcl90eXBlX2ZvcmNl c19ibGsgKHR5cGUsDQo+ID4gPiA+IFZPSURtb2RlKQ0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gLSAg ICAgICAgLyogQkxLbW9kZSBlbGVtZW50cyBmb3JjZSBCTEttb2RlDQo+IGFnZ3JlZ2F0ZTsNCj4g PiA+ID4gPiA+ID4gPiA+ID4+IC0gICAgICAgICAgIGVsc2UgZXh0cmFjdC9zdG9yZSBmaWVsZHMg bWF5IGxvc2UuICAqLw0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gLSAgICAgICAgJiYgKFRZUEVfTU9E RSAoVFJFRV9UWVBFICh0eXBlKSkgIT0NCj4gQkxLbW9kZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPj4g LSAgICAgICAgfHwgVFlQRV9OT19GT1JDRV9CTEsgKFRSRUVfVFlQRSAodHlwZSkpKSkNCj4gPiA+ ID4gPiA+ID4gPiA+ID4+IC0gICAgICB7DQo+ID4gPiA+ID4gPiA+ID4gPiA+PiAtICAgICAgICBT RVRfVFlQRV9NT0RFICh0eXBlLCBtb2RlX2Zvcl9hcnJheQ0KPiA+IChUUkVFX1RZUEUNCj4gPiA+ ID4gPiA+ICh0eXBlKSwNCj4gPiA+ID4gPiA+ID4gPiA+ID4+IC0gICAgICAgICAgICAgICAgICAg ICAgICAgVFlQRV9TSVpFICh0eXBlKSkpOw0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gLSAgICAgICAg aWYgKFRZUEVfTU9ERSAodHlwZSkgIT0gQkxLbW9kZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gLSAg ICAgICAgJiYgU1RSSUNUX0FMSUdOTUVOVCAmJiBUWVBFX0FMSUdOICh0eXBlKSA8DQo+ID4gPiA+ ID4gPiA+ID4gPiBCSUdHRVNUX0FMSUdOTUVOVA0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gLSAgICAg ICAgJiYgVFlQRV9BTElHTiAodHlwZSkgPCBHRVRfTU9ERV9BTElHTk1FTlQNCj4gPiA+ID4gKFRZ UEVfTU9ERQ0KPiA+ID4gPiA+ID4gPiA+ID4gKHR5cGUpKSkNCj4gPiA+ID4gPiA+ID4gPiA+ID4+ IC0gICAgICAgICAgew0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gLSAgICAgICAgVFlQRV9OT19GT1JD RV9CTEsgKHR5cGUpID0gMTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4+IC0gICAgICAgIFNFVF9UWVBF X01PREUgKHR5cGUsIEJMS21vZGUpOw0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gLSAgICAgICAgICB9 DQo+ID4gPiA+ID4gPiA+ID4gPiA+PiAtICAgICAgfQ0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gKyAg ICBjb21wdXRlX2FycmF5X21vZGUgKHR5cGUpOw0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gICAgaWYg KEFHR1JFR0FURV9UWVBFX1AgKGVsZW1lbnQpKQ0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gICAgICBU WVBFX1RZUEVMRVNTX1NUT1JBR0UgKHR5cGUpID0NCj4gPiA+ID4gPiA+ID4gPiA+ID4+IFRZUEVf VFlQRUxFU1NfU1RPUkFHRQ0KPiA+ID4gPiA+ID4gPiA+ID4gKGVsZW1lbnQpOw0KPiA+ID4gPiA+ ID4gPiA+ID4gPj4gICAgLyogV2hlbiB0aGUgZWxlbWVudCBzaXplIGlzIGNvbnN0YW50LCBjaGVj ayB0aGF0DQo+ID4gaXQNCj4gPiA+ID4gPiA+ID4gPiA+ID4+IGlzIGF0IGxlYXN0DQo+ID4gPiA+ ID4gPiA+ID4gPiBhcw0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gZGlmZiAtLWdpdCBhL2djYy9zdG9y LWxheW91dC5oIGIvZ2NjL3N0b3ItbGF5b3V0LmgNCj4gPiA+ID4gPiA+ID4gPiA+ID4+IGluZGV4 DQo+ID4gPiA+ID4gPiA+ID4gPiA+PiAwOTZjYTgxMTc2Mi4uOWQ5YjhjMzg1ZjYgMTAwNjQ0DQo+ ID4gPiA+ID4gPiA+ID4gPiA+PiAtLS0gYS9nY2Mvc3Rvci1sYXlvdXQuaA0KPiA+ID4gPiA+ID4g PiA+ID4gPj4gKysrIGIvZ2NjL3N0b3ItbGF5b3V0LmgNCj4gPiA+ID4gPiA+ID4gPiA+ID4+IEBA IC0zNCw2ICszNCw3IEBAIGV4dGVybiB0cmVlIHJsaV9zaXplX3NvX2Zhcg0KPiA+ID4gPiA+ID4g PiA+ID4gPj4gKHJlY29yZF9sYXlvdXRfaW5mbyk7IGV4dGVybiB2b2lkIG5vcm1hbGl6ZV9ybGkN Cj4gPiA+ID4gPiA+ID4gPiA+ID4+IChyZWNvcmRfbGF5b3V0X2luZm8pOyBleHRlcm4gdm9pZCBw bGFjZV9maWVsZA0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gKHJlY29yZF9sYXlvdXRfaW5mbywgdHJl ZSk7IGV4dGVybiB2b2lkDQo+ID4gPiA+ID4gPiA+ID4gPiA+PiBjb21wdXRlX3JlY29yZF9tb2Rl ICh0cmVlKTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4+ICtleHRlcm4gdm9pZCBjb21wdXRlX2FycmF5 X21vZGUgKHRyZWUpOw0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gZXh0ZXJuIHZvaWQgZmluaXNoX2Jp dGZpZWxkX2xheW91dCAodHJlZSk7IGV4dGVybg0KPiA+IHZvaWQNCj4gPiA+ID4gPiA+ID4gPiA+ ID4+IGZpbmlzaF9yZWNvcmRfbGF5b3V0IChyZWNvcmRfbGF5b3V0X2luZm8sIGludCk7DQo+ID4g ZXh0ZXJuDQo+ID4gPiA+ID4gPiA+ID4gPiA+PiB2b2lkIGZpbmFsaXplX3NpemVfZnVuY3Rpb25z ICh2b2lkKTsgZGlmZiAtLWdpdA0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gYS9nY2MvdHJlZS0NCj4g PiA+ID4gPiA+IHN0cmVhbWVyLQ0KPiA+ID4gPiA+ID4gPiA+ID4gaW4uY2MNCj4gPiA+ID4gPiA+ ID4gPiA+ID4+IGIvZ2NjL3RyZWUtc3RyZWFtZXItaW4uY2MgaW5kZXgNCj4gPiA+ID4gPiA+ID4g PiA+ID4+IDQwMDI5NDM3MTk5Li4zMjlkMjE4ZTdkNA0KPiA+ID4gPiA+ID4gMTAwNjQ0DQo+ID4g PiA+ID4gPiA+ID4gPiA+PiAtLS0gYS9nY2MvdHJlZS1zdHJlYW1lci1pbi5jYw0KPiA+ID4gPiA+ ID4gPiA+ID4gPj4gKysrIGIvZ2NjL3RyZWUtc3RyZWFtZXItaW4uY2MNCj4gPiA+ID4gPiA+ID4g PiA+ID4+IEBAIC0zNSw2ICszNSw3IEBAIGFsb25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUNCj4g PiBDT1BZSU5HMy4NCj4gPiA+ID4gPiA+ID4gPiA+ID4+IElmDQo+ID4gPiA+ID4gPiA+IG5vdA0K PiA+ID4gPiA+ID4gPiA+ID4gc2VlDQo+ID4gPiA+ID4gPiA+ID4gPiA+PiAjaW5jbHVkZSAiYXR0 cmlicy5oIg0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gI2luY2x1ZGUgImFzYW4uaCINCj4gPiA+ID4g PiA+ID4gPiA+ID4+ICNpbmNsdWRlICJvcHRzLmgiDQo+ID4gPiA+ID4gPiA+ID4gPiA+PiArI2lu Y2x1ZGUgInN0b3ItbGF5b3V0LmgiDQo+ID4gPiA+ID4gPiA+ID4gPiA+Pg0KPiA+ID4gPiA+ID4g PiA+ID4gPj4NCj4gPiA+ID4gPiA+ID4gPiA+ID4+IC8qIFJlYWQgYSBTVFJJTkdfQ1NUIGZyb20g dGhlIHN0cmluZyB0YWJsZSBpbg0KPiBEQVRBX0lODQo+ID4gPiA+ID4gPiA+ID4gPiA+PiB1c2lu Zw0KPiA+ID4gPiA+ID4gPiBpbnB1dA0KPiA+ID4gPiA+ID4gPiA+ID4gQEANCj4gPiA+ID4gPiA+ ID4gPiA+ID4+IC0zOTUsNiArMzk2LDE3IEBADQo+IHVucGFja190c190eXBlX2NvbW1vbl92YWx1 ZV9maWVsZHMNCj4gPiA+ID4gPiA+ID4gPiA+ID4+IChzdHJ1Y3QgYml0cGFja19kICpicCwgdHJl ZSBleHByKSAjaWZkZWYNCj4gPiBBQ0NFTF9DT01QSUxFUg0KPiA+ID4gPiA+ID4gPiA+ID4gPj4g ICBpZiAoVFlQRV9BTElHTiAoZXhwcikgPg0KPiA+ID4gPiB0YXJnZXRtLmFic29sdXRlX2JpZ2dl c3RfYWxpZ25tZW50KQ0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gICAgIFNFVF9UWVBFX0FMSUdOIChl eHByLA0KPiA+ID4gPiA+ID4gdGFyZ2V0bS5hYnNvbHV0ZV9iaWdnZXN0X2FsaWdubWVudCk7DQo+ ID4gPiA+ID4gPiA+ID4gPiA+PiArDQo+ID4gPiA+ID4gPiA+ID4gPiA+PiArICAvKiBIb3N0IHN0 cmVhbXMgb3V0IFZPSURtb2RlIGZvciBhZ2dyZWdhdGUgdHlwZS4NCj4gPiAqLw0KPiA+ID4gPiA+ ID4gPiA+ID4gPj4gKyBpZiAoQUdHUkVHQVRFX1RZUEVfUCAoZXhwcikgJiYgVFlQRV9NT0RFIChl eHByKQ0KPiA9PQ0KPiA+IFZPSURtb2RlKQ0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gKyAgICB7DQo+ ID4gPiA+ID4gPiA+ID4gPiA+PiArICAgICAgaWYgKFRSRUVfQ09ERSAoZXhwcikgPT0gQVJSQVlf VFlQRSkNCj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsgICAgY29tcHV0ZV9hcnJheV9tb2RlIChleHBy KTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsgICAgICBlbHNlIGlmIChSRUNPUkRfT1JfVU5JT05f VFlQRV9QIChleHByKSkNCj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsgICAgY29tcHV0ZV9yZWNvcmRf bW9kZSAoZXhwcik7DQo+ID4gPiA+ID4gPiA+ID4gPiA+PiArICAgICAgZWxzZQ0KPiA+ID4gPiA+ ID4gPiA+ID4gPj4gKyAgICBnY2NfdW5yZWFjaGFibGUgKCk7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ PiArICAgIH0NCj4gPiA+ID4gPiA+ID4gPiA+ID4+ICNlbmRpZg0KPiA+ID4gPiA+ID4gPiA+ID4g Pj4gfQ0KPiA+ID4gPiA+ID4gPiA+ID4gPj4NCj4gPiA+ID4gPiA+ID4gPiA+ID4+IGRpZmYgLS1n aXQgYS9nY2MvdHJlZS1zdHJlYW1lci1vdXQuY2MNCj4gPiA+ID4gPiA+ID4gPiA+ID4+IGIvZ2Nj L3RyZWUtc3RyZWFtZXItDQo+ID4gPiA+ID4gPiA+IG91dC5jYw0KPiA+ID4gPiA+ID4gPiA+ID4g Pj4gaW5kZXggYjcyMDUyODdmZmIuLjdkZTQ0NDdhMWI1IDEwMDY0NA0KPiA+ID4gPiA+ID4gPiA+ ID4gPj4gLS0tIGEvZ2NjL3RyZWUtc3RyZWFtZXItb3V0LmNjDQo+ID4gPiA+ID4gPiA+ID4gPiA+ PiArKysgYi9nY2MvdHJlZS1zdHJlYW1lci1vdXQuY2MNCj4gPiA+ID4gPiA+ID4gPiA+ID4+IEBA IC0xODcsNyArMTg3LDE3IEBAIHBhY2tfdHNfZml4ZWRfY3N0X3ZhbHVlX2ZpZWxkcw0KPiA+ID4g PiA+ID4gPiA+ID4gPj4gKHN0cnVjdA0KPiA+ID4gPiA+ID4gPiA+ID4gYml0cGFja19kDQo+ID4g PiA+ID4gPiA+ID4gPiA+PiAqYnAsIHRyZWUgZXhwcikgc3RhdGljIHZvaWQNCj4gPiA+ID4gPiA+ ID4gPiA+ID4+IHBhY2tfdHNfZGVjbF9jb21tb25fdmFsdWVfZmllbGRzDQo+ID4gPiA+ID4gPiA+ ID4gPiAoc3RydWN0DQo+ID4gPiA+ID4gPiA+ID4gPiA+PiBiaXRwYWNrX2QgKmJwLCB0cmVlIGV4 cHIpIHsNCj4gPiA+ID4gPiA+ID4gPiA+ID4+IC0gIGJwX3BhY2tfbWFjaGluZV9tb2RlIChicCwg REVDTF9NT0RFIChleHByKSk7DQo+ID4gPiA+ID4gPiA+ID4gPiA+PiArICAvKiBTaW1pbGFyIHRv IFRZUEVfTU9ERSwgYXZvaWQgc3RyZWFtaW5nIG91dA0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gKyBo b3N0LXNwZWNpZmljDQo+ID4gPiA+ID4gPiA+ID4gPiBERUNMX01PREUNCj4gPiA+ID4gPiA+ID4g PiA+ID4+ICsgICAgIGZvciBhZ2dyZWdhdGUgdHlwZSB3aXRoIG9mZmxvYWRpbmcgZW5hYmxlZCwN Cj4gYW5kDQo+ID4gPiA+ID4gPiA+ID4gPiA+PiArIHdoaWxlDQo+ID4gPiA+ID4gPiA+ID4gPiBz dHJlYW1pbmctaW4NCj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsgICAgIHJlY29tcHV0ZSBhcHByb3By aWF0ZSBERUNMX01PREUgZm9yDQo+ID4gYWNjZWxlcmF0b3IuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ PiArICovDQo+ID4gPiA+ID4gPiBpZg0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gKyAobHRvX3N0cmVh bV9vZmZsb2FkX3ANCj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsgICAgICAmJiAoVkFSX1AgKGV4cHIp DQo+ID4gPiA+ID4gPiA+ID4gPiA+PiArICAgICAgfHwgVFJFRV9DT0RFIChleHByKSA9PSBQQVJN X0RFQ0wNCj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsgICAgICB8fCBUUkVFX0NPREUgKGV4cHIpID09 IEZJRUxEX0RFQ0wpDQo+ID4gPiA+ID4gPiA+ID4gPiA+PiArICAgICAgJiYgQUdHUkVHQVRFX1RZ UEVfUCAoVFJFRV9UWVBFIChleHByKSkpDQo+ID4gPiA+ID4gPiA+ID4gPiA+PiArICAgIGJwX3Bh Y2tfbWFjaGluZV9tb2RlIChicCwgVk9JRG1vZGUpOyAgZWxzZQ0KPiA+ID4gPiA+ID4gPiA+ID4g Pj4gKyAgICBicF9wYWNrX21hY2hpbmVfbW9kZSAoYnAsIERFQ0xfTU9ERSAoZXhwcikpOw0KPiA+ ID4gPiA+ID4gPiA+ID4gPj4gICBicF9wYWNrX3ZhbHVlIChicCwgREVDTF9OT05MT0NBTCAoZXhw ciksIDEpOw0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gICBicF9wYWNrX3ZhbHVlIChicCwgREVDTF9W SVJUVUFMX1AgKGV4cHIpLCAxKTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4+ICAgYnBfcGFja192YWx1 ZSAoYnAsIERFQ0xfSUdOT1JFRF9QIChleHByKSwgMSk7IEBADQo+ID4gPiA+ID4gPiA+ID4gPiA+ PiAtMzE3LDEwDQo+ID4gPiA+ID4gPiA+ID4gPiA+PiArMzI3LDE4DQo+ID4gPiA+ID4gPiA+ID4g PiBAQA0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gcGFja190c19mdW5jdGlvbl9kZWNsX3ZhbHVlX2Zp ZWxkcyAoc3RydWN0DQo+IGJpdHBhY2tfZA0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gKmJwLA0KPiA+ ID4gPiA+ID4gdHJlZQ0KPiA+ID4gPiA+ID4gPiA+ID4gZXhwcikNCj4gPiA+ID4gPiA+ID4gPiA+ ID4+IHN0YXRpYyB2b2lkIHBhY2tfdHNfdHlwZV9jb21tb25fdmFsdWVfZmllbGRzDQo+IChzdHJ1 Y3QNCj4gPiA+ID4gPiA+IGJpdHBhY2tfZA0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gKmJwLCB0cmVl IGV4cHIpIHsNCj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsgIC8qIEZvciBvZmZsb2FkaW5nLCBhdm9p ZCBzdHJlYW1pbmcgb3V0IFRZUEVfTU9ERQ0KPiA+IGZvcg0KPiA+ID4gPiA+ID4gPiBhZ2dyZWdh dGUNCj4gPiA+ID4gPiA+ID4gPiA+IHR5cGUgc2luY2UNCj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsg ICAgIGl0IG1heSBiZSBob3N0LXNwZWNpZmljLiBGb3IgZWcsIGFhcmNoNjQgdXNlcw0KPiA+ID4g PiA+ID4gPiA+ID4gPj4gKyBPSW1vZGUNCj4gPiA+ID4gPiA+IGZvcg0KPiA+ID4gPiA+ID4gPiA+ ID4gQVJSQVlfVFlQRQ0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gKyAgICAgd2hvc2Ugc2l6ZSBpcyAy NTYtYml0cywgd2hpY2ggaXMgbm90DQo+ID4gPiA+ID4gPiA+ID4gPiA+PiArIHJlcHJlc2VudGFi bGUgb24NCj4gPiA+ID4gPiA+ID4gPiA+IGFjY2VsZXJhdG9yLg0KPiA+ID4gPiA+ID4gPiA+ID4g Pj4gKyAgICAgSW5zdGVhZCBzdHJlYW0gb3V0IFZPSURtb2RlLCBhbmQgd2hpbGUNCj4gPiA+ID4g PiA+ID4gPiA+ID4+ICsgc3RyZWFtaW5nLWluLA0KPiA+ID4gPiA+ID4gPiA+ID4gcmVjb21wdXRl DQo+ID4gPiA+ID4gPiA+ID4gPiA+PiArICAgICBhcHByb3ByaWF0ZSBUWVBFX01PREUgZm9yIGFj Y2VsZXJhdG9yLiAgKi8NCj4gaWYNCj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsgKGx0b19zdHJlYW1f b2ZmbG9hZF9wICYmIEFHR1JFR0FURV9UWVBFX1AgKGV4cHIpKQ0KPiA+ID4gPiA+ID4gPiA+ID4g Pj4gKyAgICBicF9wYWNrX21hY2hpbmVfbW9kZSAoYnAsIFZPSURtb2RlKTsNCj4gPiA+ID4gPiA+ ID4gPiA+ID4+ICAgLyogZm9yIFZFQ1RPUl9UWVBFLCBUWVBFX01PREUgcmVldmFsdWF0ZXMgdGhl DQo+IG1vZGUNCj4gPiA+ID4gPiA+ID4gPiA+ID4+IHVzaW5nDQo+ID4gPiA+ID4gPiA+ID4gPiB0 YXJnZXRfZmxhZ3MNCj4gPiA+ID4gPiA+ID4gPiA+ID4+ICAgICAgbm90IG5lY2Vzc2FyeSB2YWxp ZCBpbiBhIGdsb2JhbCBjb250ZXh0Lg0KPiA+ID4gPiA+ID4gPiA+ID4gPj4gICAgICBVc2UgdGhl IHJhdyB2YWx1ZSBwcmV2aW91c2x5IHNldCBieQ0KPiBsYXlvdXRfdHlwZS4NCj4gPiA+ID4gPiA+ ID4gPiA+ID4+ICovDQo+ID4gPiA+ID4gPiA+ID4gPiA+PiAtICBicF9wYWNrX21hY2hpbmVfbW9k ZSAoYnAsIFRZUEVfTU9ERV9SQVcgKGV4cHIpKTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsgIGVs c2UNCj4gPiA+ID4gPiA+ID4gPiA+ID4+ICsgICAgYnBfcGFja19tYWNoaW5lX21vZGUgKGJwLCBU WVBFX01PREVfUkFXDQo+IChleHByKSk7DQo+ID4gPiA+ID4gPiA+ID4gPiA+PiAgIC8qIFRZUEVf Tk9fRk9SQ0VfQkxLIGlzIHByaXZhdGUgdG8gc3Rvci1sYXlvdXQNCj4gYW5kDQo+ID4gbmVlZA0K PiA+ID4gPiA+ID4gPiA+ID4gPj4gICAgICBubyBzdHJlYW1pbmcuICAqLw0KPiA+ID4gPiA+ID4g PiA+ID4gPj4gICBicF9wYWNrX3ZhbHVlIChicCwgVFlQRV9QQUNLRUQgKGV4cHIpLCAxKTsNCj4g PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAtLQ0KPiA+ID4gPiA+ ID4gPiBSaWNoYXJkIEJpZW5lciA8cmd1ZW50aGVyQHN1c2UuZGU+IFNVU0UgU29mdHdhcmUgU29s dXRpb25zDQo+ID4gPiA+ID4gPiA+IEdlcm1hbnkgR21iSCwgRnJhbmtlbnN0cmFzc2UgMTQ2LCA5 MDQ2MSBOdWVybmJlcmcsDQo+IEdlcm1hbnk7DQo+ID4gPiA+ID4gPiA+IEdGOiBJdm8gVG90ZXYs IEFuZHJldyBNY0RvbmFsZCwgV2VybmVyIEtub2JsaWNoOyAoSFJCDQo+IDM2ODA5LA0KPiA+ID4g PiA+ID4gPiBBRw0KPiA+ID4gPiA+ID4gPiBOdWVybmJlcmcpDQo+ID4gPiA+ID4NCj4gPiA+ID4N Cj4gPiA+ID4gLS0NCj4gPiA+ID4gUmljaGFyZCBCaWVuZXIgPHJndWVudGhlckBzdXNlLmRlPiBT VVNFIFNvZnR3YXJlIFNvbHV0aW9ucw0KPiBHZXJtYW55DQo+ID4gPiA+IEdtYkgsIEZyYW5rZW5z dHJhc3NlIDE0NiwgOTA0NjEgTnVlcm5iZXJnLCBHZXJtYW55Ow0KPiA+ID4gPiBHRjogSXZvIFRv dGV2LCBBbmRyZXcgTWNEb25hbGQsIFdlcm5lciBLbm9ibGljaDsgKEhSQiAzNjgwOSwgQUcNCj4g PiA+ID4gTnVlcm5iZXJnKQ0KPiA+ID4NCj4gPg0KPiA+IC0tDQo+ID4gUmljaGFyZCBCaWVuZXIg PHJndWVudGhlckBzdXNlLmRlPg0KPiA+IFNVU0UgU29mdHdhcmUgU29sdXRpb25zIEdlcm1hbnkg R21iSCwNCj4gPiBGcmFua2Vuc3RyYXNzZSAxNDYsIDkwNDYxIE51ZXJuYmVyZywgR2VybWFueTsN Cj4gPiBHRjogSXZvIFRvdGV2LCBBbmRyZXcgTWNEb25hbGQsIFdlcm5lciBLbm9ibGljaDsgKEhS QiAzNjgwOSwgQUcNCj4gPiBOdWVybmJlcmcpDQo=