Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rd3O9-003amN-CE for pgsql-hackers@arkaria.postgresql.org; Thu, 22 Feb 2024 07:21:02 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rd3O8-008rYE-1e for pgsql-hackers@arkaria.postgresql.org; Thu, 22 Feb 2024 07:21:00 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rd3O6-008rY6-VD for pgsql-hackers@lists.postgresql.org; Thu, 22 Feb 2024 07:21:00 +0000 Received: from mx04.melco.co.jp ([192.218.140.144]) by makus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rd3O1-000Obe-TZ for pgsql-hackers@postgresql.org; Thu, 22 Feb 2024 07:20:58 +0000 Received: from mr06.melco.co.jp (mr06 [133.141.98.164]) by mx04.melco.co.jp (Postfix) with ESMTP id 4TgPgm1rtLzMvQpZ; Thu, 22 Feb 2024 16:20:52 +0900 (JST) Received: from mr06.melco.co.jp (unknown [127.0.0.1]) by mr06.imss (Postfix) with ESMTP id 4TgPgm0n5JzMt5l7; Thu, 22 Feb 2024 16:20:52 +0900 (JST) Received: from mf04_second.melco.co.jp (unknown [192.168.20.184]) by mr06.melco.co.jp (Postfix) with ESMTP id 4TgPgm0PfTzMqww4; Thu, 22 Feb 2024 16:20:52 +0900 (JST) Received: from mf04.melco.co.jp (unknown [133.141.98.184]) by mf04_second.melco.co.jp (Postfix) with ESMTP id 4TgPgm039SzMrvsf; Thu, 22 Feb 2024 16:20:52 +0900 (JST) Received: from JPN01-TYC-obe.outbound.protection.outlook.com (unknown [104.47.23.168]) by mf04.melco.co.jp (Postfix) with ESMTP id 4TgPgl6j1xzMrvsd; Thu, 22 Feb 2024 16:20:51 +0900 (JST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gZRvSHSWFoIcj+SoqV6S0HUwf9dE+HmWb2mVGlkZtg4EWk52QUho2/98GbKPeXW9FwrpgEshs0f4yTs6h6wpOxHJw/U83fCw0rT5AehTknFVQK3vmsZTsj350bAzkxbSdTZ1eQtn94lV4ue7kin6uwLP4yAJSSF7+ScFJ9MZBHBGcrSqV0Kn95L+om5IAa9K/N/2/A9PbVVWjWHOcIzzb9DwjVHyFICz1fTETLd51r8LKugnxAEphVDmHNFPvi8GvU8cjFcQJm5n3oWAnBtO1+0F7hTy/MG4tjG2GseC1ktCU9uMh54DtHX6AHfxgW1058lgm/FYQVB646UsKgOoUQ== 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=uQYqKijkvDGo85NYeirPNXsj7u+fCWDRE/AItySPgVI=; b=hmG1A2ydMKjWEPE1Sjecu5hV8Eh+y6EiXhd2uMwiOwWHw2GKCEzM7+mx1X9o4oI+fUdCp0QAxvOOMspOWEj+wKaVmEXP5WaP/V5AeaT95Vuj/0qPbKgICh4ZwrlcAGU+Wg76ARLHNS/wwYrIiGN5WO4vYBgSlLKDZ68rCgRVavrUz6U7kFhxm2IrfgcEKG6YVpnm/y33pwOhTuiwuLcx2IXN4qWIg4W/xUDD9q4V4h9+vcMoOUWrnkFL8SbeeubRTUjLF1RJ9fSIcn9o4TW/HCSC122nM/fVITUoPzGTYaCUIHkHWj6H3XDAAlK0YrAhqGDaSPtZbR1DUyvtxChK1g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=df.mitsubishielectric.co.jp; dmarc=pass action=none header.from=df.mitsubishielectric.co.jp; dkim=pass header.d=df.mitsubishielectric.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mitsubishielectricgroup.onmicrosoft.com; s=selector2-mitsubishielectricgroup-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=uQYqKijkvDGo85NYeirPNXsj7u+fCWDRE/AItySPgVI=; b=CMGQqALVpjhQbJaGVbI6Iak8WcGvYldX9OWY7/bK8MSRVmscfUr+5lEq61Nx7HGkIZNDLjgIzfqaRT0um2Usk0xm9Y2afpwO2z/P7EuQQZeqLeiq1H2u3QDYDj3weYd7mHvE5yOSnoCZ572tRH1cRERUcE54zOnoksquQh4oZlw= Received: from TYAPR01MB5514.jpnprd01.prod.outlook.com (2603:1096:404:8035::12) by OS7PR01MB11536.jpnprd01.prod.outlook.com (2603:1096:604:246::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7316.24; Thu, 22 Feb 2024 07:20:46 +0000 Received: from TYAPR01MB5514.jpnprd01.prod.outlook.com ([fe80::cfc8:10e6:6e8a:5d98]) by TYAPR01MB5514.jpnprd01.prod.outlook.com ([fe80::cfc8:10e6:6e8a:5d98%4]) with mapi id 15.20.7316.023; Thu, 22 Feb 2024 07:20:46 +0000 From: "Fujii.Yuki@df.MitsubishiElectric.co.jp" To: Robert Haas CC: PostgreSQL-development , Tom Lane , Alexander Pyhalov , Bruce Momjian , Stephen Frost , "Finnerty, Jim" , Andres Freund , Tomas Vondra , Julien Rouhaud , Daniel Gustafsson , vignesh C , "Fujii.Yuki@df.MitsubishiElectric.co.jp" Subject: Re: Partial aggregates pushdown Thread-Topic: Partial aggregates pushdown Thread-Index: AQHaZV+FhOOC+4jqD0O6QaSNENpP/A== Date: Thu, 22 Feb 2024 07:20:45 +0000 Deferred-Delivery: Thu, 22 Feb 2024 06:10:24 +0000 Message-ID: References: <8175ddeb6d417d8a1f91e667fef77abf@postgrespro.ru> <4012625.1701120204@sss.pgh.pa.us> In-Reply-To: Accept-Language: ja-JP, en-US Content-Language: ja-JP X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-melpop: 1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=df.MitsubishiElectric.co.jp; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: TYAPR01MB5514:EE_|OS7PR01MB11536:EE_ x-ms-office365-filtering-correlation-id: f9579c7a-343e-475b-1b7e-08dc3376c9da x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: deOXsIi1r+D0gr504Tv8ZQQpB3Yu3nrlJh/zKntNiTj0zlYa7XmdrM+Ife4ZIdQroazpNuCGfFu0pgtU253+lPeUhJLvMT/b3axu05+7MK4f43Ls7jrksaVOOsHKoo5JEEjVQAzalFRBRg7IGWiG1tKY18F3TW6fRO5y/3/Cvp+HWZzSZe6MOrNDBelKFhf3r47+DUcFXbnEZW+TuSWaj0fvAkRdybVX7+Ms5chI4BFV/UpMZzz69gL50WhvvjSDKHu0nM6Jk+w2ncunxkfmWcR4m67G/ZvrSczASbjOUkxhB9agIXryFm6EgvdLVyi8RLG88R6uPnFxngb0MCaUbSERiRqdzTvWIWrMsprpStA9tA9A0DNlgAcN9hmRwPk/0V3oToqLnt1It+7n5mS2Pfd1+L7rAUa/KqD1c0xNfDFfVkJxFQDlN6M+ob9YZT/SsQG11MRBNAVHF+lL7vi9JqqiBWObzFL4A8Ot0O3rnZVMOgkPfe0oKGMiVjFvs3jlFYS+OumzzndROfcndijB3siYfL631BTayRjulNOpQZvJemY2mioUBd+27+C6GzmBSEOS9PjMgYC1PcbASWOm94rpwAOBaIiubYR7s4TooV3NMlPX/+BrVZoKkvpAy+87 x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:ja;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYAPR01MB5514.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(230273577357003)(38070700009);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?OU5Qc2pJeDQ1RzNoVG51ckhRbkw3TytNUDJXbW9NOHNoTUdvaENVcDluUlJn?= =?utf-8?B?UzVJaDM4dGo1Y0xTcHB1cmlVS21TKzg5Y21IOFVNK2Y1OERQRGJuVDk5aFJY?= =?utf-8?B?QXY3eHl1ZXNFeFZVYmZzM2NiUk1TcW1PTnNEWGpBUnlTWTNOamZUM1lGRTZi?= =?utf-8?B?QUcwdlRXbkhoRTBKN3dwbU9kTnNLYjRoYXMrU1BNTjUrUW0xdG5wWktiYVI5?= =?utf-8?B?dmFsaS9nc0J3bzF5aFY2VCtXOXAzV0NFa1h0Y0NMcm4xazVrL2xKaVk4U0t0?= =?utf-8?B?aWxLR0lOVWlObEpqK0U0TlQ5OGVlMmpDenVDakFMdzVnSGJnbGRYRjBZZFR6?= =?utf-8?B?YzZBaUF5L0xmamFac1VpQ1FKMGNQOFlTV2hLbVk3YWdKTnpVTWxmajJWZUNa?= =?utf-8?B?Q1NzMkkvZ2Rya0lMclRSQWNZeVVBZm5kbDRjVGtHdmpuOFJncDJxaExuYmNi?= =?utf-8?B?VHU3OTNlZWNXaCt3cEVpajVrZmMzeHI1eTFmRFUzdzZsNFFIUUx5NC9RbXhL?= =?utf-8?B?VGVEMVhYWlJvd2xhMUprYnRZRFIrZVpQNzV1RzcxTmYrUngzOVU0T28zcDBH?= =?utf-8?B?Tml4MEI4dndYTSs2bVJuVExRMWFtdG96R3Z5SHNEYzFhS2VMQ2pOajRnVmVI?= =?utf-8?B?RGZZWldpRm9TVTVmejY3bVJ6NENKNEx0T0w2bDVjMExIM055ZVRlMWZGaG5q?= =?utf-8?B?c3VOTE0rYnNOOXQyS1dTaEQzUndIaFBLWXdKdExmN2lldE5Td0RmOU8yRnpT?= =?utf-8?B?cGYzd21UdXA5T0MreTdWZXk3a0U0eWRhSUdtcStPSWNyMmZPR0JhSGo2YlJX?= =?utf-8?B?bVRocHRCczRCRmF5THlLL0lkZ1hPRzM4RHFhQ1NxOHcxek5mSENHSm45QUhx?= =?utf-8?B?RmVTa1RBcTdZN1VEbEJIQW1wK25aZTYxc3hRaFpFVXkwVENFQ3N3a2kwSmE5?= =?utf-8?B?eVBCV0wwNnVMa2t0Vi8vOERDdGE2WThDTEloWlhPRzdUVGpnYytQckROS0k3?= =?utf-8?B?V0RyN1hnQ0N1NkFZZjJYMTFjYm8rRVdYTktPNmZQWVRndS9DQ29ZRzRnYWQ5?= =?utf-8?B?bFYrcTVzYXU2c0JveFI3aVY3YXRZS3MrajhpU1pwR0x4eDNEamJpek5ubXRz?= =?utf-8?B?bFlUOWQ0bUxraU9pUkxRTVV0cWFrYmZWM0hzU3VMRmV0Z2R1VTd2Nmcyc0Zw?= =?utf-8?B?ZG5BVmhMUi9XajBsL0o0UzIzczdyUXdHalo3N3Q1alRHWTloRGpYbnFndCtz?= =?utf-8?B?c2ZjUkxIZkQ5K1ZUWTl4V1FZbU9YTmduV09aVmNRR1d3cGR4Z01wZGp6U1R1?= =?utf-8?B?aEwyM2VrMEVkckI4bVcrR293bUI3S1FPeEg5dEo1ZkxSZVB5eTFFN3cyWEI1?= =?utf-8?B?UDRSZlROQmx0NjZqTHE0dkg1SWQ3V3VEQ25RayswYzRvMDRsT2RWWXBONFpD?= =?utf-8?B?MEJGUDJ3V3QzQnFNOHZkeWc0cGJobi94ZXllZDJxeXphcVY3NlBTSXdDMlFo?= =?utf-8?B?WENKeWRWSThNelRNODU1Y2JtdUxTQWZQZkxJNUpyZGNNUzhLczd5T0EzbThT?= =?utf-8?B?VURLWU40SW9kcHZyZXRFTTlySEtjT1poak13YTlpTEJZbWVqNG9yTDI5Tkt6?= =?utf-8?B?TzIrdGVQQnBkTVlpcUZ0Q0I3QUVGeUdIK0gyRFdWYllrdzlQSk1IM3VtSlY4?= =?utf-8?B?bW1JYmdsb0Z0L05xZnhsRnJvQUowWG1TU1lkcHMxOG5zdnc2SE80U2c2RHpu?= =?utf-8?B?djJKQlFaays2Z0pFZjlDeE51YWRHaFZoSFF5eXVXMXArVnlsazZLMjA0QWxj?= =?utf-8?B?ckFHREpsQnlLMWlCY2h4R1R5cUNwR3oxSDQydTMvTTFIb0VaVjEzZlo5bjJM?= =?utf-8?B?V3d5VTI2SzlzTHNSWDJGQUIxVGZEQVlGQk1UU3NNUHhycDE2YWdHWmZscTJa?= =?utf-8?B?b01EWHVpU0VuMS9jb1ZiMzJDVE1mc01PM2gvTEpEVTdpSzl6V0czSHFRYm5t?= =?utf-8?B?L29STC9sM1NKSXlxK0JPeHRneVJ4enBsQyt1emw2aUlkOHJvakRubjNWdFhM?= =?utf-8?B?bll1Rm4vM3NNMHNlYlQzaHNpVjJTNE1zcDArRDRXcFBwejlMeWVjSC8zTS85?= =?utf-8?Q?6+pDGy47liHPV2HTnkm4zh4p9?= Content-Type: multipart/mixed; boundary="_002_TYAPR01MB5514F0CBD9CD4F84A261198195562TYAPR01MB5514jpnp_" MIME-Version: 1.0 X-OriginatorOrg: df.MitsubishiElectric.co.jp X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYAPR01MB5514.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f9579c7a-343e-475b-1b7e-08dc3376c9da X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Feb 2024 07:20:46.5359 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: c5a75b62-4bff-4c96-a720-6621ce9978e5 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 4NvwM/yqUH8lynuSbZRjYx6vCjXmll4g/XErcvZdyNRaLog4ydnTpSCyQFLJz3f9dt2qH9JfxHjDWjetDZQKuw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS7PR01MB11536 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_002_TYAPR01MB5514F0CBD9CD4F84A261198195562TYAPR01MB5514jpnp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkuIE1yLkhhYXMsIGhhY2tlcnMuDQoNCkkgYXBvbG9naXplIGZvciB0aGUgc2lnbmlmaWNhbnQg ZGVsYXkgc2luY2UgbXkgbGFzdCBwb3N0Lg0KSSBoYXZlIGNvbmR1Y3RlZCBpbnZlc3RpZ2F0aW9u cyBhbmQgY29uc2lkZXJhdGlvbnMgcmVnYXJkaW5nIHRoZSByZW1haW5pbmcgdGFza3MgYXMgZm9s bG93cy4NCldvdWxkIGl0IGJlIHBvc3NpYmxlIGZvciB5b3UgdG8gcmV2aWV3IHRoZW0/DQpJbiBw YXJ0aWN1bGFyLCBjb3VsZCB5b3UgcGxlYXNlIGNvbmZpcm0gaWYgdGhlIGFwcHJvYWNoIG1lbnRp b25lZCBpbiAxLiBpcyBhY2NlcHRhYmxlPyANCklmIHRoZXJlIGFyZSBubyBpc3N1ZXMgd2l0aCB0 aGUgZGlyZWN0aW9uIG91dGxpbmVkIGluIDEuLCBJIHBsYW4gdG8gbWFrZSBhIHNpbXBsZSBwcm90 b3R5cGUgYmFzZWQgb24gdGhpcyBhcHByb2FjaC4NCg0KMS4gVHJhbnNtaXR0aW5nIHN0YXRlIHZh bHVlIHNhZmVseSBiZXR3ZWVuIG1hY2hpbmVzDQo+IEZyb206IFJvYmVydCBIYWFzIDxyb2JlcnRt aGFhc0BnbWFpbC5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwgRGVjZW1iZXIgNiwgMjAyMyAxMDoy NSBQTQ0KPiB0aGUgcHJvYmxlbXMgYXJvdW5kIHRyYW5zbWl0dGluZw0KPiBzZXJpYWxpemVkIGJ5 dGVhIGJsb2JzIGJldHdlZW4gbWFjaGluZXMgdGhhdCBjYW4ndCBiZSBhc3N1bWVkIHRvIGZ1bGx5 IHRydXN0IGVhY2ggb3RoZXIgd2lsbCBuZWVkIHRvIGJlIGFkZHJlc3NlZCBpbiBzb21lDQo+IHdh eSwgd2hpY2ggc2VlbXMgbGlrZSBpdCB3aWxsIHJlcXVpcmUgYSBnb29kIGRlYWwgb2YgZGVzaWdu IHdvcmssIGZvcm1pbmcgc29tZSBraW5kIG9mIGNvbnNlbnN1cywgYW5kIHRoZW4gaW1wbGVtZW50 YXRpb24NCj4gd29yayB0byBmb2xsb3cuIA0KSSBoYXZlIGNvbnNpZGVyZWQgbWV0aG9kcyBmb3Ig c2FmZWx5IHRyYW5zbWl0dGluZyBzdGF0ZSB2YWx1ZXMgYmV0d2VlbiBkaWZmZXJlbnQgbWFjaGlu ZXMuDQpJIGhhdmUgdGFrZW4gaW50byBhY2NvdW50IHRoZSB2ZXJzaW9uIHBvbGljeSBvZiBQb3N0 Z3JlU1FMICg1IHllYXJzIG9mIHN1cHBvcnQpIGFuZCB0aGUgbWFqb3IgdmVyc2lvbiByZWxlYXNl IGN5Y2xlIG92ZXIgdGhlIHBhc3QgMTAgeWVhcnMgKDEgeWVhciksIGFuZCBhcyBhIHJlc3VsdCwg SSBoYXZlIG1hZGUgdGhlIGFzc3VtcHRpb24gdGhhdCB0cmFuc21pc3Npb24gaXMgYWxsb3dlZCBv bmx5IHdoZW4gdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgbG9jYWwgdmVyc2lvbiBhbmQgdGhl IHJlbW90ZSB2ZXJzaW9uIGlzIDUgb3IgbGVzcy4NCkkgYmVsaWV2ZSB0aGF0IGJ5IGFkZGluZyBu ZXcgY29tcG9uZW50cywgImV4cG9ydCBmdW5jdGlvbiIgYW5kICJpbXBvcnQgZnVuY3Rpb24iLCB0 byB0aGUgYWdncmVnYXRlIGZ1bmN0aW9ucywgYW5kIGZ1cnRoZXIgaW50cm9kdWNpbmcgYSBuZXcg U1FMIGtleXdvcmQgdG8gdGhlIHF1ZXJ5IHN5bnRheCBvZiBhZ2dyZWdhdGUgZXhwcmVzc2lvbnMs IHdlIGNhbiBhZGRyZXNzIHRoaXMgaXNzdWUuDQpJZiB0aGUgdmVyc2lvbiBvZiB0aGUgbG9jYWwg c2VydmVyIGlzIGhpZ2hlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSB2ZXJzaW9uIG9mIHRoZSByZW1v dGUgc2VydmVyLCB0aGUgcHJvcG9zZWQgbWV0aG9kIGNhbiBiZSBzaW1wbGlmaWVkLiBUaGUgZXhw b3J0IHZlcnNpb24gbWVudGlvbmVkIGxhdGVyIGluICgxKSB3b3VsZCBub3QgYmUgbmVjZXNzYXJ5 LiBGdXJ0aGVybW9yZSwgaWYgdGhlIHZlcnNpb24gb2YgdGhlIGxvY2FsIHNlcnZlciBtYXRjaGVz IHRoZSB2ZXJzaW9uIG9mIHRoZSByZW1vdGUgc2VydmVyLCB0aGUgcHJvcG9zZWQgbWV0aG9kIGNh biBiZSBmdXJ0aGVyIHNpbXBsaWZpZWQuDQpJIHdvdWxkIGFwcHJlY2lhdGUgeW91ciBpbnB1dCBv biByZWFzb25hYmxlIGFzc3VtcHRpb25zIHJlZ2FyZGluZyB0aGUgZGlmZmVyZW5jZXMgaW4gdmVy c2lvbnMgYmV0d2VlbiB0aGUgbG9jYWwgc2VydmVyIGFuZCB0aGUgcmVtb3RlIHNlcnZlci4NCkkg d2lsbCBleHBsYWluIHRoZSBzcGVjaWZpY2F0aW9ucyBvZiB0aGUgZXhwb3J0IGZ1bmN0aW9uLCBp bXBvcnQgZnVuY3Rpb24sIHRoZSBuZXcgU1FMIGtleXdvcmQgZm9yIGFnZ3JlZ2F0ZSBleHByZXNz aW9ucywgYW5kIHRoZSBiZWhhdmlvciBvZiBxdWVyeSBwcm9jZXNzaW5nIGZvciBwYXJ0aWFsIGFn Z3JlZ2F0aW9uIHNlcGFyYXRlbHkuDQooMSkgRXhwb3J0IEZ1bmN0aW9uIFNwZWNpZmljYXRpb24N ClRoaXMgZnVuY3Rpb24gaXMgYW5vdGhlciBmaW5hbCBmdW5jdGlvbiBmb3IgcGFydGlhbCBhZ2dy ZWdhdGUuDQpUaGlzIGZ1bmN0aW9uIGNvbnZlcnRzIHRoZSBzdGF0ZSB2YWx1ZSB0aGF0IHJlcHJl c2VudHMgdGhlIHJlc3VsdCBvZiBwYXJ0aWFsIGFnZ3JlZ2F0aW9uIGludG8gYSBmb3JtYXQgdGhh dCBjYW4gYmUgcmVhZCBieSB0aGUgbG9jYWwgc2VydmVyLiANClRoaXMgZnVuY3Rpb24gaXMgY2Fs bGVkIGluc3RlYWQgb2YgdGhlIGV4aXN0aW5nIGZpbmFsZnVuYyBkdXJpbmcgdGhlIGZpbmFsIHN0 YWdlIG9mIGFnZ3JlZ2F0aW9uIHdoZW4gcGVyZm9ybWluZyBwYXJ0aWFsIGFnZ3JlZ2F0aW9uLg0K VGhlIGNvbnZlcnNpb24gcHJvY2VzcyBkZXNjcmliZWQgYWJvdmUgd2lsbCBiZSByZWZlcnJlZCB0 byBhcyAiZXhwb3J0Ii4NClRoZSBhcmd1bWVudCBvZiBhbiBleHBvcnQgZnVuY3Rpb24gaXMgdGhl IHZlcnNpb24gb2YgdGhlIHNlcnZlciB0aGF0IHdpbGwgcmVjZWl2ZSB0aGUgcmV0dXJuIHZhbHVl Lg0KSGVyZWFmdGVyLCB0aGlzIHZlcnNpb24gd2lsbCBiZSByZWZlcnJlZCB0byBhcyB0aGUgZXhw b3J0IHZlcnNpb24uDQpUaGUgY29uY2VwdCBvZiBhbiBleHBvcnQgdmVyc2lvbiBpcyBuZWNlc3Nh cnkgdG8gaGFuZGxlIGNhc2VzIHdoZXJlIHRoZSB2ZXJzaW9uIG9mIHRoZSBsb2NhbCBzZXJ2ZXIg aXMgc21hbGxlciB0aGFuIHRoZSB2ZXJzaW9uIG9mIHRoZSByZW1vdGUgc2VydmVyLg0KVGhlIHJl dHVybiB2YWx1ZSBvZiB0aGUgZXhwb3J0IGZ1bmN0aW9uIGlzIHRoZSB0cmFuc2Zvcm1lZCBzdGF0 ZSB2YWx1ZSwgYW5kIGl0cyBkYXRhIHR5cGUgaXMgYnl0ZWEuDQpGb3IgYmFja3dhcmQgY29tcGF0 aWJpbGl0eSwgdGhlIGRldmVsb3BlciBvZiB0aGUgZXhwb3J0IGZ1bmN0aW9uIG11c3QgZW5zdXJl IHRoYXQgdGhlIGV4cG9ydCBjYW4gYmUgcGVyZm9ybWVkIGZvciBtYWpvciB2ZXJzaW9ucyB1cCB0 byBmaXZlIHZlcnNpb25zIHByaW9yIHRvIHRoZSBtYWpvciB2ZXJzaW9uIG9mIFBvc3RncmVTUUwg dGhhdCB0aGUgZXhwb3J0IGZ1bmN0aW9uIGlzIGJlaW5nIGRldmVsb3BlZCBmb3IuDQpGb3IgYnVp bHQtaW4gZnVuY3Rpb25zLCBJIGJlbGlldmUgaXQgaXMgbmVjZXNzYXJ5IHRvIGFsbG93IGZvciB0 aGUgcG9zc2liaWxpdHkgb2Ygbm90IGRldmVsb3BpbmcgdGhlIGV4cG9ydCBmdW5jdGlvbmFsaXR5 IGZvciBzcGVjaWZpYyB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlIChkdWUgdG8gcmVhc29ucyBzdWNo IGFzIGRldmVsb3BtZW50IGJ1cmRlbikgYWZ0ZXIgdGhlIGV4cG9ydCBmdW5jdGlvbiBpcyBkZXZl bG9wZWQgZm9yIGEgY2VydGFpbiB2ZXJzaW9uLg0KVG8gYWNoaWV2ZSB0aGlzLCBmb3IgYnVpbHQt aW4gZnVuY3Rpb25zLCB3ZSB3aWxsIGFkZCBhIGNvbHVtbiB0byB0aGUgcGdfYWdncmVnYXRlIGNh dGFsb2cgdGhhdCBpbmRpY2F0ZXMgdGhlIHByZXNlbmNlIG9yIGFic2VuY2Ugb2YgZXhwb3J0IGZ1 bmN0aW9uYWxpdHkgZm9yIGVhY2ggbWFqb3IgdmVyc2lvbiwgaW5jbHVkaW5nIHRoZSBtYWpvciB2 ZXJzaW9uIGJlaW5nIGRldmVsb3BlZCBhbmQgdGhlIHByZXZpb3VzIGZpdmUgbWFqb3IgdmVyc2lv bnMuIFRoaXMgY29sdW1uIHdpbGwgYmUgbmFtZWQgc2FmZXR5X2V4cG9ydF92ZXJzaW9ucyBhbmQg d2lsbCBoYXZlIGEgZGF0YSB0eXBlIG9mIGJvb2xlYW5bNl0uDQpGb3IgdXNlci1kZWZpbmVkIGZ1 bmN0aW9ucywgd2Ugd2lsbCByZWZlciB0byB0aGUgZXh0ZW5zaW9ucyBvcHRpb24gYW5kIGFkZCBh biBleHRlcm5hbCBzZXJ2ZXIgb3B0aW9uIGNhbGxlZCBzYWZldHlfZXhwb3J0X2V4dGVuc2lvbnMs IHdoaWNoIHdpbGwgbWFpbnRhaW4gYSBsaXN0IG9mIGV4dGVuc2lvbnMgdGhhdCBpbmNsdWRlIG9u bHkgdGhlIGFnZ3JlZ2F0ZSBmdW5jdGlvbnMgdGhhdCBjYW4gYmUgZXhwb3J0ZWQgdG8gdGhlIGxv Y2FsIHNlcnZlciB2ZXJzaW9uLg0KDQooMikgSW1wb3J0IEZ1bmN0aW9uIFNwZWNpZmljYXRpb24N ClRoZSBpbXBvcnQgZnVuY3Rpb24gaXMgYSBmdW5jdGlvbiB0aGF0IHBlcmZvcm1zIHZhbGlkaXR5 IGNoZWNrcyBvbiB0aGUgZXhwb3J0ZWQgZGF0YSBhbmQgY29udmVydHMgaXQgaW50byBhIHN0YXRl IHZhbHVlLiBUaGUgcHJvY2VzcyBvZiB0aGlzIGNvbnZlcnNpb24gaXMgcmVmZXJyZWQgdG8gYXMg aW1wb3J0aW5nLg0KVGhlIGltcG9ydCBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbSBwb3N0Z3Jlc19m ZHcgaW4gdGhlIGxvY2FsIHNlcnZlci4NClRoZSBhcmd1bWVudHMgb2YgdGhlIGltcG9ydCBmdW5j dGlvbiBhcmUgdGhlIGV4cG9ydGVkIGRhdGEgYW5kIHRoZSBleHBvcnQgdmVyc2lvbi4NClRoZSBy ZXR1cm4gdmFsdWUgb2YgdGhlIGltcG9ydCBmdW5jdGlvbiBpcyBhIHN0YXRlIHZhbHVlIHRoYXQg Y2FuIGJlIHJlYWQgb24gdGhlIGxvY2FsIHNlcnZlci4NClRoZSBpbXBvcnQgZnVuY3Rpb24gd2ls bCB0ZXJtaW5hdGUgd2l0aCBhbiBlcnJvciBpZiB0aGUgdmFsaWRpdHkgY2hlY2sgZGV0ZXJtaW5l cyB0aGF0IHRoZSBleHBvcnRlZCByZXN1bHQgY2Fubm90IGJlIHJlYWQgb24gdGhlIGxvY2FsIHNl cnZlci4NCkZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCBkZXZlbG9wZXJzIG9mIHRoZSBpbXBv cnQgZnVuY3Rpb24gbXVzdCBlbnN1cmUgdGhhdCBpdCBjYW4gYmUgaW1wb3J0ZWQgaWYgdGhlIGV4 cG9ydCB2ZXJzaW9uIGlzIHVwIHRvIGZpdmUgdmVyc2lvbnMgcHJpb3IgdG8gdGhlaXIgb3duIHZl cnNpb24uDQoNCigzKSBUaGUgbmV3IFNRTCBrZXl3b3JkIGZvciBhZ2dyZWdhdGUgZXhwcmVzc2lv bnMNClRoZSBsb2NhbCBzZXJ2ZXIgcGFzc2VzIHRoZSBpbnN0cnVjdGlvbnMgZm9yIHBhcnRpYWwg YWdncmVnYXRpb24gYW5kIHRoZSBleHBvcnQgdmVyc2lvbiB0byB0aGUgcmVtb3RlIHNlcnZlciB1 c2luZyBTUUwga2V5d29yZHMuIFRoZSBzeW50YXggc3BlY2lmaWNhdGlvbiBpcyBhcyBmb2xsb3dz Og0KYWdncmVnYXRlX2Z1bmN0aW9uKFBBUlRJQUxfQUdHUkVHQVRFKGV4cG9ydF92ZXJzaW9uKSBl eHByKQ0KDQpIZXJlLCBQQVJUSUFMX0FHR1JFR0FURSBpcyBhIGtleXdvcmQgdGhhdCBpbmRpY2F0 ZXMgcGFydGlhbCBhZ2dyZWdhdGlvbiwgYW5kIGV4cG9ydF92ZXJzaW9uIGlzIGEgc3RyaW5nIGNv bnN0YW50IHRoYXQgaW5kaWNhdGVzIHRoZSBleHBvcnQgdmVyc2lvbi4NCg0KKDQpIFRoZSBiZWhh dmlvciBvZiBxdWVyeSBwcm9jZXNzaW5nIGZvciBwYXJ0aWFsIGFnZ3JlZ2F0aW9uDQpJIHdpbGwg aWxsdXN0cmF0ZSB0aGUgZmxvdyBvZiBxdWVyeSBwcm9jZXNzaW5nIHVzaW5nIHRoZSBleGFtcGxl IHF1ZXJ5ICJzZWxlY3QgYWdnZnVuYyhjKSBmcm9tIHQiLg0KSW4gdGhlIGZvbGxvd2luZyBleHBs YW5hdGlvbiwgdGhlIG1ham9yIHZlcnNpb24gb2YgdGhlIHJlbW90ZSBzZXJ2ZXIgd2lsbCBiZSBy ZWZlcnJlZCB0byBhcyByZW1vdGVfdmVyc2lvbiwgYW5kIHRoZSBtYWpvciB2ZXJzaW9uIG9mIHRo ZSBsb2NhbCBzZXJ2ZXIgd2lsbCBiZSByZWZlcnJlZCB0byBhcyBsb2NhbF92ZXJzaW9uLg0KU1RF UDEuIENoZWNraW5nIHRoZSBmZWFzaWJpbGl0eSBvZiBwYXJ0aWFsIGFnZ3JlZ2F0aW9uIHB1c2hk b3duIG9uIHRoZSBsb2NhbCBzZXJ2ZXINCihpKSBSZXRyaWV2aW5nIHRoZSByZW1vdGVfdmVyc2lv bg0KVGhlIHBvc3RncmVzX2ZkdyBjb25uZWN0cyB0byB0aGUgcmVtb3RlIHNlcnZlciBhbmQgcmV0 cmlldmVzIHRoZSByZW1vdGVfdmVyc2lvbi4NCihpaSkgQ2hlY2tpbmcgdGhlIHZlcnNpb25zDQpU aGUgcG9zdGdyZXNfZmR3IGRldGVybWluZXMgd2hldGhlciB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVu IGxvY2FsX3ZlcnNpb24gYW5kIHJlbW90ZV92ZXJzaW9uIGlzIHdpdGhpbiA1LiBJZiB0aGUgZGlm ZmVyZW5jZSBpcyA2IG9yIG1vcmUsIGl0IGlzIGRldGVybWluZWQgdGhhdCBwYXJ0aWFsIGFnZ3Jl Z2F0aW9uIHB1c2hkb3duIGlzIG5vdCBwb3NzaWJsZS4NCihpaWkpIENoZWNraW5nIHRoZSBpbXBv cnQgZnVuY3Rpb24NClRoZSBwb3N0Z3Jlc19mZHcgY2hlY2tzIHRoZSBwZ19hZ2dyZWdhdGUgY2F0 YWxvZyB0byBzZWUgaWYgdGhlcmUgaXMgYW4gaW1wb3J0IGZ1bmN0aW9uIGZvciBhZ2dmdW5jLiBJ ZiB0aGVyZSBpcyBub25lLCBpdCBpcyBkZXRlcm1pbmVkIHRoYXQgcGFydGlhbCBhZ2dyZWdhdGlv biBwdXNoZG93biBpcyBub3QgcG9zc2libGUuDQooaXYpIENoZWNraW5nIHRoZSBleHBvcnQgZnVu Y3Rpb24NCklmIGFnZ2Z1bmMgaXMgYSBidWlsdC1pbiBmdW5jdGlvbiwgdGhlIHBvc3RncmVzX2Zk dyBjaGVja3MgdGhlIHBnX2FnZ3JlZ2F0ZSBjYXRhbG9nLiBJdCBjaGVja3MgaWYgdGhlcmUgaXMg YSB2ZXJzaW9uIG51bWJlciBleHBvcnRfdmVyc2lvbiB0aGF0IHNhdGlzZmllcyB0aGUgY29uZGl0 aW9ucyBsb2NhbF92ZXJzaW9uID49IGV4cG9ydF92ZXJzaW9uID49IGxvY2FsX3ZlcnNpb24tNSBh bmQgaWYgdGhlcmUgaXMgYW4gZXhwb3J0IGZ1bmN0aW9uIGF2YWlsYWJsZSBmb3IgdGhhdCB2ZXJz aW9uLiBJZiB0aGUgdmVyc2lvbiBudW1iZXIgZXhwb3J0X3ZlcnNpb24gZG9lcyBub3QgZXhpc3Qs IGl0IGlzIGRldGVybWluZWQgdGhhdCBwYXJ0aWFsIGFnZ3JlZ2F0aW9uIHB1c2hkb3duIGlzIG5v dCBwb3NzaWJsZS4gVGhpcyBjaGVjayBpcyBvbmx5IHBlcmZvcm1lZCBpZiBsb2NhbF92ZXJzaW9u ID49IHJlbW90ZV92ZXJzaW9uLg0KSWYgYWdnZnVuYyBpcyBhIHVzZXItZGVmaW5lZCBmdW5jdGlv biwgdGhlIHBvc3RncmVzX2ZkdyBjaGVja3MgaWYgdGhlIGV4dGVuc2lvbiBvbiB3aGljaCBhZ2dm dW5jIGRlcGVuZHMgaXMgaW5jbHVkZWQgaW4gZXhwb3J0X3NhZmV0eV9leHRlbnNpb25zLiBJZiBp dCBpcyBub3QgaW5jbHVkZWQsIGl0IGlzIGRldGVybWluZWQgdGhhdCBwYXJ0aWFsIGFnZ3JlZ2F0 aW9uIHB1c2hkb3duIGlzIG5vdCBwb3NzaWJsZS4NCg0KU1RFUDIuIFNlbmRpbmcgYSByZW1vdGUg cXVlcnkgb24gdGhlIGxvY2FsIHNlcnZlcg0KVGhlIHF1ZXJ5IGNvbnRhaW5pbmcgdGhlIGtleXdv cmQgaW5kaWNhdGluZyBwYXJ0aWFsIGFnZ3JlZ2F0aW9uIGlzIHNlbnQgdG8gdGhlIHJlbW90ZSBz ZXJ2ZXIuIFRoZSByZW1vdGUgcXVlcnkgZm9yIHRoZSBzYW1wbGUgcXVlcnkgd291bGQgYmUgYXMg Zm9sbG93czogDQoic2VsZWN0IGFnZ2Z1bmMoUEFSVElBTF9BR0dSRUdBVEUoZXhwb3J0X3ZlcnNp b24pIGMpIGZyb20gdCINCg0KU1RFUDMuIEV4ZWN1dGluZyB0aGUgcmVtb3RlIHF1ZXJ5IG9uIHRo ZSByZW1vdGUgc2VydmVyDQpUaGUgcmVtb3RlIHNlcnZlciBwZXJmb3JtcyBwYXJ0aWFsIGFnZ3Jl Z2F0aW9uIGZvciBhZ2dmdW5jLiBJbnN0ZWFkIG9mIGNhbGxpbmcgdGhlIGZpbmFsIGZ1bmN0aW9u IGF0IHRoZSBsYXN0IHN0YWdlIG9mIGFnZ3JlZ2F0aW9uLCB0aGUgcmVtb3RlIHNlcnZlciBjYWxs cyB0aGUgZXhwb3J0IGZ1bmN0aW9uIHdpdGggZXhwb3J0X3ZlcnNpb24gYW5kIGdlbmVyYXRlcyB0 aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBwYXJ0aWFsIGFnZ3JlZ2F0aW9uLg0KDQpTVEVQNC4gUmVj ZWl2aW5nIHRoZSByZXN1bHQgb2YgdGhlIHJlbW90ZSBxdWVyeSBvbiB0aGUgbG9jYWwgc2VydmVy DQpUaGUgcG9zdGdyZXNfZmR3IHBhc3NlcyB0aGUgZXhwb3J0X3ZlcnNpb24gYW5kIHRoZSByZXR1 cm4gdmFsdWUgb2YgU1RFUDMgdG8gdGhlIGltcG9ydCBmdW5jdGlvbiBvZiBhZ2dmdW5jIGFuZCBy ZWNlaXZlcyB0aGUgc3RhdGUgdmFsdWUuIFRoZSBwb3N0Z3Jlc19mZHcgdGhlbiBwYXNzZXMgdGhl IHJlY2VpdmVkIHN0YXRlIHZhbHVlIHRvIHRoZSBleGVjdXRvciBvZiB0aGUgbG9jYWwgc2VydmVy Lg0KDQoyLiBUaGUgYXBwcm9hY2ggb2YgYWRkaW5nIFNRTCBrZXl3b3Jkcw0KPiBGcm9tOiBSb2Jl cnQgSGFhcyA8cm9iZXJ0bWhhYXNAZ21haWwuY29tPg0KPiBTZW50OiBUdWVzZGF5LCBOb3ZlbWJl ciAyMSwgMjAyMyA1OjUyIEFNDQo+IEkgZG8gaGF2ZSBhIGNvbmNlcm4gYWJvdXQgdGhpcywgdGhv dWdoLiBJdCBhZGRzIGEgbG90IG9mIGJsb2F0LiBJdCBhZGRzIGEgd2hvbGUgbG90IG9mIGFkZGl0 aW9uYWwgZW50cmllcyB0byBwZ19hZ2dyZWdhdGUsIGFuZA0KPiBldmVyeSBuZXcgYWdncmVnYXRl IHdlIGFkZCBpbiB0aGUgZnV0dXJlIHdpbGwgcmVxdWlyZSBhIGJvbnVzIGVudHJ5IGZvciB0aGlz LCBhbmQgaXQgbmVlZHMgYSBidW5jaCBvZiBuZXcgcGdfcHJvYyBlbnRyaWVzIGFzDQo+IHdlbGwu IE9uZSBpZGVhIHRoYXQgSSd2ZSBoYWQgaW4gdGhlIHBhc3QgaXMgdG8gaW5zdGVhZCBpbnRyb2R1 Y2Ugc3ludGF4IHRoYXQganVzdCBkb2VzIHRoaXMsIHdpdGhvdXQgcmVxdWlyaW5nIGEgc2VwYXJh dGUNCj4gYWdncmVnYXRlIGRlZmluaXRpb24gaW4gZWFjaCBjYXNlLg0KPiBGb3IgZXhhbXBsZSwg bWF5YmUgaW5zdGVhZCBvZiBjaGFuZ2luZyBzdHJpbmdfYWdnKHdoYXRldmVyKSB0byBzdHJpbmdf YWdnX3BfdGV4dF90ZXh0KHdoYXRldmVyKSwgeW91IGNhbiBzYXkNCj4gUEFSVElBTF9BR0dSRUdB VEUNCj4gc3RyaW5nX2FnZyh3aGF0ZXZlcikgb3Igc3RyaW5nX2FnZyhQQVJUSUFMX0FHR1JFR0FU RSB3aGF0ZXZlcikgb3Igc29tZXRoaW5nLiBUaGVuIGFsbCBhZ2dyZWdhdGVzIGNvdWxkIGJlIHRy ZWF0ZWQNCj4gaW4gYSBnZW5lcmljIHdheS4gSSdtIG5vdCBjb21wbGV0ZWx5IHN1cmUgdGhhdCdz IGJldHRlciwgYnV0IEkgdGhpbmsgaXQncyB3b3J0aCBjb25zaWRlcmluZy4NCkkgaGF2ZSBwcm90 b3R5cGVkIGFuIGFwcHJvYWNoIHVzaW5nIFNRTCBrZXl3b3JkcyBmb3IgdGhlIHBhdGNoIHRoYXQg ZG9lcyBub3QgaW5jbHVkZSB0aGUgZnVuY3Rpb25hbGl0eSBvZiBTdGVwIDEuIFBsZWFzZSBmaW5k IHRoZSBwcm90b3R5cGUgYXR0YWNoZWQgYXMgYSBmaWxlLg0KIyBJIGFwb2xvZ2l6ZSBmb3Igbm90 IGluY2x1ZGluZyBzdWZmaWNpZW50IGNvbW1lbnRzLCBkb2N1bWVudGF0aW9uLCBhbmQgdGVzdHMg aW4gdGhlIHByb3RvdHlwZS4gUGxlYXNlIHVuZGVyc3RhbmQuDQpNYWlubHksIGl0IHNlZW1zIHRo YXQgd2UgY2FuIGFkZHJlc3MgdGhpcyBieSBhZGRpbmcgaGFuZGxpbmcgZm9yIHRoZSBuZXcgU1FM IGtleXdvcmRzIGluIHRoZSBwYXJzZXIgYW5kIG1ha2luZyBtb2RpZmljYXRpb25zIHRvIHRoZSBm aW5hbGl6ZSBwcm9jZXNzIGZvciBhZ2dyZWdhdGlvbiBpbiB0aGUgZXhlY3V0b3IuDQpBcyBwb2lu dGVkIG91dCBieSBNci5IYWFzLCBpdCBoYXMgYmVlbiByZWFsaXplZCB0aGF0IHRoZSBjb2RlIGNh biBiZSBzaWduaWZpY2FudGx5IHNpbXBsaWZpZWQuDQpUaGUgYWRkaXRpb25hbCBsaW5lcyBvZiBj b2RlLCBleGNsdWRpbmcgZG9jdW1lbnRhdGlvbiBhbmQgdGVzdHMsIGFyZSBhcyBmb2xsb3dzLg0K QWRkaW5nIG5ldyBhZ2dyZWdhdGUgZnVuY3Rpb25zIGFwcHJvYWNoKGFwcHJvYWNoICMxKTogMSww NjkNCkFkZGluZyBuZXcgU1FMIGtleXdvcmQgYXBwcm9hY2goYXBwcm9hY2ggIzIpOiAzMTgNCkFz IG1lbnRpb25lZCBpbiAxLiwgSSBwbGFuIHRvIG1vZGlmeSB0aGUgcGF0Y2ggYnkgYWRkaW5nIFNR TCBrZXl3b3JkcyBpbiB0aGUgZnV0dXJlLg0KDQozLiBGaXhpbmcgdGhlIGJlaGF2aW9yIHdoZW4g dGhlIEhBVklORyBjbGF1c2UgaXMgcHJlc2VudA0KPiBGcm9tOiBSb2JlcnQgSGFhcyA8cm9iZXJ0 bWhhYXNAZ21haWwuY29tPg0KPiBTZW50OiBUdWVzZGF5LCBOb3ZlbWJlciAyOCwgMjAyMyA0OjA4 IEFNDQo+IA0KPiBPbiBXZWQsIE5vdiAyMiwgMjAyMyBhdCAxOjMy4oCvQU0gQWxleGFuZGVyIFB5 aGFsb3YgPGEucHloYWxvdkBwb3N0Z3Jlc3Byby5ydT4gd3JvdGU6DQo+ID4gSGkuIEhBVklORyBp cyBhbHNvIGEgcHJvYmxlbS4gQ29uc2lkZXIgdGhlIGZvbGxvd2luZyBxdWVyeQ0KPiA+DQo+ID4g U0VMRUNUIGNvdW50KGEpIEZST00gdCBIQVZJTkcgY291bnQoYSkgPiAxMCAtIHdlIGNhbid0IHB1 c2ggaXQgZG93biB0bw0KPiA+IGZvcmVpZ24gc2VydmVyIGFzIEhBVklORyBuZWVkcyBmdWxsIGFn Z3JlZ2F0ZSByZXN1bHQsIGJ1dCBmb3JlaWduDQo+ID4gc2VydmVyIGRvbid0IGtub3cgaXQuDQo+ IA0KPiBJIGRvbid0IHNlZSBpdCB0aGF0IHdheS4gV2hhdCB3ZSB3b3VsZCBwdXNoIHRvIHRoZSBm b3JlaWduIHNlcnZlciB3b3VsZCBiZSBzb21ldGhpbmcgbGlrZSBTRUxFQ1QgY291bnQoYSkgRlJP TSB0LiBUaGVuLA0KPiBhZnRlciB3ZSBnZXQgdGhlIHJlc3VsdHMgYmFjayBhbmQgY29tYmluZSB0 aGUgdmFyaW91cyBwYXJ0aWFsIGNvdW50cyBsb2NhbGx5LCB3ZSB3b3VsZCBsb2NhbGx5IGV2YWx1 YXRlIHRoZSBIQVZJTkcgY2xhdXNlDQo+IGFmdGVyd2FyZC4gVGhhdCBpcywgcGFydGlhbCBhZ2dy ZWdhdGlvbiBpcyBhIGJhcnJpZXIgdG8gcHVzaGluZyBkb3duIEhBVklORyBjbGF1c2UgaXRzZWxm LCBidXQgaXQgZG9lc24ndCBwcmVjbHVkZSBwdXNoaW5nDQo+IGRvd24gdGhlIGFnZ3JlZ2F0aW9u Lg0KSSBoYXZlIG1hZGUgbW9kaWZpY2F0aW9ucyBpbiB0aGUgYXR0YWNoZWQgcGF0Y2ggdG8gZW5z dXJlIHRoYXQgd2hlbiB0aGUgSEFWSU5HIGNsYXVzZSBpcyBwcmVzZW50LCB0aGUgSEFWSU5HIGNs YXVzZSBpcyBleGVjdXRlZCBsb2NhbGx5IHdoaWxlIHRoZSBwYXJ0aWFsIGFnZ3JlZ2F0aW9ucyBh cmUgcHVzaGVkIGRvd24uDQoNClNpbmNlcmVseSB5b3VycywNCll1dWtpIEZ1amlpDQoNCi0tDQpZ dXVraSBGdWppaQ0KSW5mb3JtYXRpb24gVGVjaG5vbG9neSBSJkQgQ2VudGVyIE1pdHN1YmlzaGkg RWxlY3RyaWMgQ29ycG9yYXRpb24NCg== --_002_TYAPR01MB5514F0CBD9CD4F84A261198195562TYAPR01MB5514jpnp_ Content-Type: application/octet-stream; name="0001-Partial-aggregates-push-down-SQL-keyword.patch" Content-Description: 0001-Partial-aggregates-push-down-SQL-keyword.patch Content-Disposition: attachment; filename="0001-Partial-aggregates-push-down-SQL-keyword.patch"; size=146661; creation-date="Thu, 22 Feb 2024 05:43:36 GMT"; modification-date="Thu, 22 Feb 2024 07:19:49 GMT" Content-Transfer-Encoding: base64 RnJvbSA1ZmIxMWY0M2MyZDE5OTgxYjA0NTQ4YWJmM2I5ZjRiZTJlYjc0OWUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBZdWtpIEZ1amlpIDxGdWppaS5ZdWtpQGRmLk1pdHN1YmlzaGlF bGVjdHJpYy5jby5qcD4KRGF0ZTogVGh1LCAyMiBGZWIgMjAyNCAwOTozODozMyAtMDUwMApTdWJq ZWN0OiBbUEFUQ0hdIFBhcnRpYWwgYWdncmVnYXRlcyBwdXNoIGRvd24gU1FMIGtleXdvcmQKCi0t LQogY29udHJpYi9wb3N0Z3Jlc19mZHcvZGVwYXJzZS5jICAgICAgICAgICAgICAgIHwgIDg0ICsr LQogLi4uL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0ICAgIHwgNjQyICsr KysrKysrKysrKysrKystLQogY29udHJpYi9wb3N0Z3Jlc19mZHcvb3B0aW9uLmMgICAgICAgICAg ICAgICAgIHwgICA0ICstCiBjb250cmliL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19mZHcuYyAgICAg ICAgICAgfCAgNDcgKy0KIGNvbnRyaWIvcG9zdGdyZXNfZmR3L3Bvc3RncmVzX2Zkdy5oICAgICAg ICAgICB8ICAxMCArCiBjb250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9zdGdyZXNfZmR3LnNxbCAg ICAgfCAxNTUgKysrKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVBZ2cuYyAgICAgICAgICAg ICAgICB8ICA1MiArLQogc3JjL2JhY2tlbmQvbm9kZXMvbWFrZWZ1bmNzLmMgICAgICAgICAgICAg ICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYyAgICAgICAg ICB8IDEzMyArKystCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMgICAgICAg ICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcGFnZy5jICAgICAgICAg IHwgICAxICsKIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8 ICAyOSArLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jICAgICAgICAgICAgICAgIHwg IDI0ICstCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY2xhdXNlLmMgICAgICAgICAgICAgfCAg IDEgKwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyAgICAgICAgICAgICAgIHwgICAz ICstCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jICAgICAgICAgICAgICAgfCAgMjQg Ky0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyAgICAgICAgICAgICB8ICAgMyAr LQogc3JjL2luY2x1ZGUvZXhlY3V0b3Ivbm9kZUFnZy5oICAgICAgICAgICAgICAgIHwgICA5ICsK IHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAgMSArCiBz cmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgIDUgKwogc3Jj L2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggICAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9p bmNsdWRlL3BhcnNlci9rd2xpc3QuaCAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5j bHVkZS9wYXJzZXIvcGFyc2VfYWdnLmggICAgICAgICAgICAgICAgfCAgIDIgKy0KIDIzIGZpbGVz IGNoYW5nZWQsIDExMTUgaW5zZXJ0aW9ucygrKSwgMTIwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2RlcGFyc2UuYyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3 L2RlcGFyc2UuYwppbmRleCA4ZmM2NmZhMTFjLi5jOGFkYWVhMzNjIDEwMDY0NAotLS0gYS9jb250 cmliL3Bvc3RncmVzX2Zkdy9kZXBhcnNlLmMKKysrIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvZGVw YXJzZS5jCkBAIC0yMDYsNyArMjA2LDcgQEAgc3RhdGljIGJvb2wgaXNfc3VicXVlcnlfdmFyKFZh ciAqbm9kZSwgUmVsT3B0SW5mbyAqZm9yZWlnbnJlbCwKIAkJCQkJCQlpbnQgKnJlbG5vLCBpbnQg KmNvbG5vKTsKIHN0YXRpYyB2b2lkIGdldF9yZWxhdGlvbl9jb2x1bW5fYWxpYXNfaWRzKFZhciAq bm9kZSwgUmVsT3B0SW5mbyAqZm9yZWlnbnJlbCwKIAkJCQkJCQkJCQkgIGludCAqcmVsbm8sIGlu dCAqY29sbm8pOwotCitzdGF0aWMgYm9vbCBwYXJ0aWFsX2FnZ19vayhBZ2dyZWYgKmFnZywgUGdG ZHdSZWxhdGlvbkluZm8gKmZwaW5mbyk7CiAKIC8qCiAgKiBFeGFtaW5lIGVhY2ggcXVhbCBjbGF1 c2UgaW4gaW5wdXRfY29uZHMsIGFuZCBjbGFzc2lmeSB0aGVtIGludG8gdHdvIGdyb3VwcywKQEAg LTkxMSw4ICs5MTEsOSBAQCBmb3JlaWduX2V4cHJfd2Fsa2VyKE5vZGUgKm5vZGUsCiAJCQkJaWYg KCFJU19VUFBFUl9SRUwoZ2xvYl9jeHQtPmZvcmVpZ25yZWwpKQogCQkJCQlyZXR1cm4gZmFsc2U7 CiAKLQkJCQkvKiBPbmx5IG5vbi1zcGxpdCBhZ2dyZWdhdGVzIGFyZSBwdXNoYWJsZS4gKi8KLQkJ CQlpZiAoYWdnLT5hZ2dzcGxpdCAhPSBBR0dTUExJVF9TSU1QTEUpCisJCQkJaWYgKGFnZy0+YWdn c3BsaXQgIT0gQUdHU1BMSVRfU0lNUExFICYmIGFnZy0+YWdnc3BsaXQgIT0gQUdHU1BMSVRfSU5J VElBTF9TRVJJQUwpCisJCQkJCXJldHVybiBmYWxzZTsKKwkJCQlpZiAoYWdnLT5hZ2dzcGxpdCA9 PSBBR0dTUExJVF9JTklUSUFMX1NFUklBTCAmJiAhcGFydGlhbF9hZ2dfb2soYWdnLCBmcGluZm8p KQogCQkJCQlyZXR1cm4gZmFsc2U7CiAKIAkJCQkvKiBBcyB1c3VhbCwgaXQgbXVzdCBiZSBzaGlw cGFibGUuICovCkBAIC0zNjU5LDE4ICszNjYwLDM0IEBAIGRlcGFyc2VBZ2dyZWYoQWdncmVmICpu b2RlLCBkZXBhcnNlX2V4cHJfY3h0ICpjb250ZXh0KQogCVN0cmluZ0luZm8JYnVmID0gY29udGV4 dC0+YnVmOwogCWJvb2wJCXVzZV92YXJpYWRpYzsKIAotCS8qIE9ubHkgYmFzaWMsIG5vbi1zcGxp dCBhZ2dyZWdhdGlvbiBhY2NlcHRlZC4gKi8KLQlBc3NlcnQobm9kZS0+YWdnc3BsaXQgPT0gQUdH U1BMSVRfU0lNUExFKTsKKworCUFzc2VydCgobm9kZS0+YWdnc3BsaXQgPT0gQUdHU1BMSVRfU0lN UExFKSB8fAorCQkgICAobm9kZS0+YWdnc3BsaXQgPT0gQUdHU1BMSVRfSU5JVElBTF9TRVJJQUwp KTsKIAogCS8qIENoZWNrIGlmIG5lZWQgdG8gcHJpbnQgVkFSSUFESUMgKGNmLiBydWxldXRpbHMu YykgKi8KIAl1c2VfdmFyaWFkaWMgPSBub2RlLT5hZ2d2YXJpYWRpYzsKIAotCS8qIEZpbmQgYWdn cmVnYXRlIG5hbWUgZnJvbSBhZ2dmbm9pZCB3aGljaCBpcyBhIHBnX3Byb2MgZW50cnkgKi8KIAlh cHBlbmRGdW5jdGlvbk5hbWUobm9kZS0+YWdnZm5vaWQsIGNvbnRleHQpOworCiAJYXBwZW5kU3Ry aW5nSW5mb0NoYXIoYnVmLCAnKCcpOwogCi0JLyogQWRkIERJU1RJTkNUICovCi0JYXBwZW5kU3Ry aW5nSW5mb1N0cmluZyhidWYsIChub2RlLT5hZ2dkaXN0aW5jdCAhPSBOSUwpID8gIkRJU1RJTkNU ICIgOiAiIik7CisJLyogQWRkIERJU1RJTkNUIG9yIFBBUlRJQUxfQUdHUkVHQVRFICovCisJaWYg KG5vZGUtPmFnZ2Rpc3RpbmN0ICE9IE5JTCkgeworCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1 ZiwgIkRJU1RJTkNUICIpOworCX0gZWxzZSBpZiAobm9kZS0+YWdnc3BsaXQgPT0gQUdHU1BMSVRf SU5JVElBTF9TRVJJQUwpIHsKKwkJSGVhcFR1cGxlCWFnZ3R1cDsKKwkJRm9ybV9wZ19hZ2dyZWdh dGUgYWdnZm9ybTsKKworCQlhZ2d0dXAgPSBTZWFyY2hTeXNDYWNoZTEoQUdHRk5PSUQsIE9iamVj dElkR2V0RGF0dW0obm9kZS0+YWdnZm5vaWQpKTsKKwkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKGFn Z3R1cCkpCisJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgYWdncmVnYXRl ICV1Iiwgbm9kZS0+YWdnZm5vaWQpOworCQlhZ2dmb3JtID0gKEZvcm1fcGdfYWdncmVnYXRlKSBH RVRTVFJVQ1QoYWdndHVwKTsKKworCQlpZiAoKGFnZ2Zvcm0tPmFnZ3RyYW5zdHlwZSA9PSBJTlRF Uk5BTE9JRCkgfHwgT2lkSXNWYWxpZChhZ2dmb3JtLT5hZ2dmaW5hbGZuKSkKKwkJCWFwcGVuZFN0 cmluZ0luZm9TdHJpbmcoYnVmLCAiUEFSVElBTF9BR0dSRUdBVEUgIik7CisKKwkJUmVsZWFzZVN5 c0NhY2hlKGFnZ3R1cCk7CisJfQogCiAJaWYgKEFHR0tJTkRfSVNfT1JERVJFRF9TRVQobm9kZS0+ YWdna2luZCkpCiAJewpAQCAtMzg2NSw2ICszODgyLDcgQEAgYXBwZW5kR3JvdXBCeUNsYXVzZShM aXN0ICp0bGlzdCwgZGVwYXJzZV9leHByX2N4dCAqY29udGV4dCkKIAlRdWVyeQkgICAqcXVlcnkg PSBjb250ZXh0LT5yb290LT5wYXJzZTsKIAlMaXN0Q2VsbCAgICpsYzsKIAlib29sCQlmaXJzdCA9 IHRydWU7CisJUGdGZHdSZWxhdGlvbkluZm8gKmZwaW5mbyA9IChQZ0Zkd1JlbGF0aW9uSW5mbyAq KSBjb250ZXh0LT5mb3JlaWducmVsLT5mZHdfcHJpdmF0ZTsKIAogCS8qIE5vdGhpbmcgdG8gYmUg ZG9uZSwgaWYgdGhlcmUncyBubyBHUk9VUCBCWSBjbGF1c2UgaW4gdGhlIHF1ZXJ5LiAqLwogCWlm ICghcXVlcnktPmdyb3VwQ2xhdXNlKQpAQCAtMzg4NSw3ICszOTAzLDcgQEAgYXBwZW5kR3JvdXBC eUNsYXVzZShMaXN0ICp0bGlzdCwgZGVwYXJzZV9leHByX2N4dCAqY29udGV4dCkKIAkgKiB0byBl bXB0eSwgYW5kIGluIGFueSBjYXNlIHRoZSByZWR1bmRhbmN5IHNpdHVhdGlvbiBvbiB0aGUgcmVt b3RlIG1pZ2h0CiAJICogYmUgZGlmZmVyZW50IHRoYW4gd2hhdCB3ZSB0aGluayBoZXJlLgogCSAq LwotCWZvcmVhY2gobGMsIHF1ZXJ5LT5ncm91cENsYXVzZSkKKwlmb3JlYWNoKGxjLCBmcGluZm8t Pmdyb3VwX2NsYXVzZSkKIAl7CiAJCVNvcnRHcm91cENsYXVzZSAqZ3JwID0gKFNvcnRHcm91cENs YXVzZSAqKSBsZmlyc3QobGMpOwogCkBAIC00MTg5LDMgKzQyMDcsNTEgQEAgZ2V0X3JlbGF0aW9u X2NvbHVtbl9hbGlhc19pZHMoVmFyICpub2RlLCBSZWxPcHRJbmZvICpmb3JlaWducmVsLAogCS8q IFNob3VsZG4ndCBnZXQgaGVyZSAqLwogCWVsb2coRVJST1IsICJ1bmV4cGVjdGVkIGV4cHJlc3Np b24gaW4gc3VicXVlcnkgb3V0cHV0Iik7CiB9CisKKy8qCisgKiAtLS0tLS0tLS0tCisgKiBDaGVj ayB0aGF0IHBhcnRpYWwgYWdncmVnYXRlICJhZ2ciIGlzIHNhZmUgdG8gcHVzaCBkb3duLgorICoK KyAqIEl0IGlzIHB1c2hkb3duLXNhZmUgd2hlbiBhbGwgb2YgdGhlIGZvbGxvd2luZyBjb25kaXRp b25zIGFyZSB0cnVlOgorICoKKyAqICAgICogYWdnIGlzIGFuIEFHR0tJTkRfTk9STUFMIGFnZ3Jl Z2F0ZSB3aGljaCBjb250YWlucyBubyBESVNUSU5DVCBvcgorICogICAgT1JERVIgQlkgY2xhdXNl cworICogICAgKiByZW1vdGUgc2VydmVyIGNhbiByZXR1cm4gcGFydGlhbCBhZ2dyZWdhdGUgcmVz dWx0cworICogLS0tLS0tLS0tLQorICovCitzdGF0aWMgYm9vbAorcGFydGlhbF9hZ2dfb2soQWdn cmVmICphZ2csIFBnRmR3UmVsYXRpb25JbmZvICpmcGluZm8pCit7CisJSGVhcFR1cGxlCWFnZ3R1 cDsKKwlGb3JtX3BnX2FnZ3JlZ2F0ZSBhZ2dmb3JtOworCWJvb2wJCXBhcnRpYWxfYWdnX29rID0g dHJ1ZTsKKworCUFzc2VydChhZ2ctPmFnZ3NwbGl0ID09IEFHR1NQTElUX0lOSVRJQUxfU0VSSUFM KTsKKworCS8qIFdlIGRvbid0IHN1cHBvcnQgY29tcGxleCBwYXJ0aWFsIGFnZ3JlZ2F0ZXMgKi8K KwlpZiAoYWdnLT5hZ2dkaXN0aW5jdCB8fCBhZ2ctPmFnZ2tpbmQgIT0gQUdHS0lORF9OT1JNQUwg fHwgYWdnLT5hZ2dvcmRlciAhPSBOSUwpCisJCXJldHVybiBmYWxzZTsKKworCWFnZ3R1cCA9IFNl YXJjaFN5c0NhY2hlMShBR0dGTk9JRCwgT2JqZWN0SWRHZXREYXR1bShhZ2ctPmFnZ2Zub2lkKSk7 CisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKGFnZ3R1cCkpCisJCWVsb2coRVJST1IsICJjYWNoZSBs b29rdXAgZmFpbGVkIGZvciBhZ2dyZWdhdGUgJXUiLCBhZ2ctPmFnZ2Zub2lkKTsKKwlhZ2dmb3Jt ID0gKEZvcm1fcGdfYWdncmVnYXRlKSBHRVRTVFJVQ1QoYWdndHVwKTsKKworCWlmICgoT2lkSXNW YWxpZChhZ2dmb3JtLT5hZ2dmaW5hbGZuKSB8fAorCQkoYWdnZm9ybS0+YWdndHJhbnN0eXBlID09 IElOVEVSTkFMT0lEKSkgJiYKKwkJZnBpbmZvLT5jaGVja19wYXJ0aWFsX2FnZ3JlZ2F0ZV9zdXBw b3J0KQorCXsKKwkJaWYgKGZwaW5mby0+cmVtb3RldmVyc2lvbiA9PSAwKQorCQl7CisJCQlQR2Nv bm4JICAgKmNvbm4gPSBHZXRDb25uZWN0aW9uKGZwaW5mby0+dXNlciwgZmFsc2UsIE5VTEwpOwor CisJCQlmcGluZm8tPnJlbW90ZXZlcnNpb24gPSBQUXNlcnZlclZlcnNpb24oY29ubik7CisJCX0K KworCQlpZiAoZnBpbmZvLT5yZW1vdGV2ZXJzaW9uIDwgUEdfVkVSU0lPTl9OVU0pCisJCQlwYXJ0 aWFsX2FnZ19vayA9IGZhbHNlOworCX0KKworCVJlbGVhc2VTeXNDYWNoZShhZ2d0dXApOworCXJl dHVybiBwYXJ0aWFsX2FnZ19vazsKK30KZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3 L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3Rl ZC9wb3N0Z3Jlc19mZHcub3V0CmluZGV4IGMzNTVlOGYzZjcuLjYxYjYzNjYzYTkgMTAwNjQ0Ci0t LSBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQKKysrIGIv Y29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dApAQCAtMTAwMTcs MzYgKzEwMDE3LDU2IEBAIFJFU0VUIGVuYWJsZV9wYXJ0aXRpb253aXNlX2pvaW47CiAtLSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CiAtLSB0ZXN0IHBhcnRpdGlvbndpc2UgYWdncmVnYXRlcwogLS0gPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot Q1JFQVRFIFRBQkxFIHBhZ2dfdGFiIChhIGludCwgYiBpbnQsIGMgdGV4dCkgUEFSVElUSU9OIEJZ IFJBTkdFKGEpOworQUxURVIgU0VSVkVSIGxvb3BiYWNrIE9QVElPTlMgKEFERCBmZHdfdHVwbGVf Y29zdCAnMC4xJyk7CitDUkVBVEUgVFlQRSBtb29kIEFTIGVudW0gKCdzYWQnLCAnb2snLCAnaGFw cHknKTsKK0FMVEVSIEVYVEVOU0lPTiBwb3N0Z3Jlc19mZHcgQUREIFRZUEUgbW9vZDsKK0NSRUFU RSBUQUJMRSBwYWdnX3RhYiAoYSBpbnQsIGIgaW50LCBjIHRleHQsIGNfc2VyaWFsIGludDQsCisJ CQkJCWNfaW50NGFycmF5IF9pbnQ0LCBjX2ludGVydmFsIGludGVydmFsLAorCQkJCQljX21vbmV5 IG1vbmV5LCBjXzFjIHRleHQsIGNfMWIgYnl0ZWEsCisJCQkJCWNfYml0IGJpdCgyKSwgY18xb3Iz aW50MiBpbnQyLAorCQkJCQljXzFvcjNpbnQ0IGludDQsIGNfMW9yM2ludDggaW50OCwKKwkJCQkJ Y19ib29sIGJvb2wsIGNfZW51bSBtb29kLCBjX3BnX2xzbiBwZ19sc24sCisJCQkJCWNfdGlkIHRp ZCwgY19pbnQ0cmFuZ2UgaW50NHJhbmdlLAorCQkJCQljX2ludDRtdWx0aXJhbmdlIGludDRtdWx0 aXJhbmdlLAorCQkJCQljX3RpbWUgdGltZSwgY190aW1ldHogdGltZXR6LAorCQkJCQljX3RpbWVz dGFtcCB0aW1lc3RhbXAsIGNfdGltZXN0YW1wdHogdGltZXN0YW1wdHosCisJCQkJCWNfeGlkOCB4 aWQ4KQorCVBBUlRJVElPTiBCWSBSQU5HRShhKTsKIENSRUFURSBUQUJMRSBwYWdnX3RhYl9wMSAo TElLRSBwYWdnX3RhYik7CiBDUkVBVEUgVEFCTEUgcGFnZ190YWJfcDIgKExJS0UgcGFnZ190YWIp OwogQ1JFQVRFIFRBQkxFIHBhZ2dfdGFiX3AzIChMSUtFIHBhZ2dfdGFiKTsKLUlOU0VSVCBJTlRP IHBhZ2dfdGFiX3AxIFNFTEVDVCBpICUgMzAsIGkgJSA1MCwgdG9fY2hhcihpLzMwLCAnRk0wMDAw JykgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzAwMCkgaSBXSEVSRSAoaSAlIDMwKSA8IDEwOwot SU5TRVJUIElOVE8gcGFnZ190YWJfcDIgU0VMRUNUIGkgJSAzMCwgaSAlIDUwLCB0b19jaGFyKGkv MzAsICdGTTAwMDAnKSBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMDAwKSBpIFdIRVJFIChpICUg MzApIDwgMjAgYW5kIChpICUgMzApID49IDEwOwotSU5TRVJUIElOVE8gcGFnZ190YWJfcDMgU0VM RUNUIGkgJSAzMCwgaSAlIDUwLCB0b19jaGFyKGkvMzAsICdGTTAwMDAnKSBGUk9NIGdlbmVyYXRl X3NlcmllcygxLCAzMDAwKSBpIFdIRVJFIChpICUgMzApIDwgMzAgYW5kIChpICUgMzApID49IDIw OworSU5TRVJUIElOVE8gcGFnZ190YWJfcDEgU0VMRUNUIGkgJSAzMCwgaSAlIDUwLCB0b19jaGFy KGkvMzAsICdGTTAwMDAnKSwgaSwgYXJyYXlbKGkgJSAyKSwgMF0sICgoaSAlIDIpIHx8ICcgc2Vj b25kcycpOjppbnRlcnZhbCwgKGkgJSAyKTo6bW9uZXksICgoaSAtIDEpICUgMTApOjp0ZXh0LCAo KChpIC0gMSkgJSAxMCk6OnRleHQpOjpieXRlYSwgY2FzZSB3aGVuIChpICUgMikgPSAwIHRoZW4g QicwMScgZWxzZSBCJzExJyBlbmQsIGNhc2Ugd2hlbiAoaSAlIDIpID0gMCB0aGVuIDEgZWxzZSAz IGVuZCwgY2FzZSB3aGVuIChpICUgMikgPSAwIHRoZW4gMSBlbHNlIDMgZW5kLCBjYXNlIHdoZW4g KGkgJSAyKSA9IDAgdGhlbiAxIGVsc2UgMyBlbmQsIGNhc2Ugd2hlbiAoaSAlIDIpID0gMCB0aGVu IHRydWUgZWxzZSBmYWxzZSBlbmQsIChjYXNlIHdoZW4gKGkgJSAyKSA9IDAgdGhlbiAnc2FkJyBl bHNlICdoYXBweScgZW5kKTo6bW9vZCwgKCcwLycgfHwgaSk6OnBnX2xzbiwgKCcoMCwnIHx8IGkg fHwgJyknKTo6dGlkLCBpbnQ0cmFuZ2UoMCwgaSksIGludDRtdWx0aXJhbmdlKGludDRyYW5nZSgw LCBpKSwgaW50NHJhbmdlKDEwMCwgMTAwICsgaSkpLCAnMDA6MDA6MDAnOjp0aW1lICsgKGkgfHwg JyBzZWNvbmRzJyk6OmludGVydmFsLCAnMDA6MDA6MDAnOjp0aW1ldHogKyAoaSB8fCAnIHNlY29u ZHMnKTo6aW50ZXJ2YWwsICcyMDAwLTAxLTAxJzo6dGltZXN0YW1wICsgKGkgfHwgJyBzZWNvbmRz Jyk6OmludGVydmFsLCAnMjAwMC0wMS0wMSc6OnRpbWVzdGFtcHR6ICsgKGkgfHwgJyBzZWNvbmRz Jyk6OmludGVydmFsLCAoKGkgJSAxMCk6OnRleHQpOjp4aWQ4IEZST00gZ2VuZXJhdGVfc2VyaWVz KDEsIDMwMDApIGkgV0hFUkUgKGkgJSAzMCkgPCAxMDsKK0lOU0VSVCBJTlRPIHBhZ2dfdGFiX3Ay IFNFTEVDVCBpICUgMzAsIGkgJSA1MCwgdG9fY2hhcihpLzMwLCAnRk0wMDAwJyksIGksIGFycmF5 WyhpICUgMiksIDBdLCAoKGkgJSAyKSB8fCAnIHNlY29uZHMnKTo6aW50ZXJ2YWwsIChpICUgMik6 Om1vbmV5LCAoKGkgLSAxKSAlIDEwKTo6dGV4dCwgKCgoaSAtIDEpICUgMTApOjp0ZXh0KTo6Ynl0 ZWEsIGNhc2Ugd2hlbiAoaSAlIDIpID0gMCB0aGVuIEInMDEnIGVsc2UgQicxMScgZW5kLCBjYXNl IHdoZW4gKGkgJSAyKSA9IDAgdGhlbiAxIGVsc2UgMyBlbmQsIGNhc2Ugd2hlbiAoaSAlIDIpID0g MCB0aGVuIDEgZWxzZSAzIGVuZCwgY2FzZSB3aGVuIChpICUgMikgPSAwIHRoZW4gMSBlbHNlIDMg ZW5kLCBjYXNlIHdoZW4gKGkgJSAyKSA9IDAgdGhlbiB0cnVlIGVsc2UgZmFsc2UgZW5kLCAoY2Fz ZSB3aGVuIChpICUgMikgPSAwIHRoZW4gJ3NhZCcgZWxzZSAnaGFwcHknIGVuZCk6Om1vb2QsICgn MC8nIHx8IGkpOjpwZ19sc24sICgnKDAsJyB8fCBpIHx8ICcpJyk6OnRpZCwgaW50NHJhbmdlKDAs IGkpLCBpbnQ0bXVsdGlyYW5nZShpbnQ0cmFuZ2UoMCwgaSksIGludDRyYW5nZSgxMDAsIDEwMCAr IGkpKSwgJzAwOjAwOjAwJzo6dGltZSArIChpIHx8ICcgc2Vjb25kcycpOjppbnRlcnZhbCwgJzAw OjAwOjAwJzo6dGltZXR6ICsgKGkgfHwgJyBzZWNvbmRzJyk6OmludGVydmFsLCAnMjAwMC0wMS0w MSc6OnRpbWVzdGFtcCArIChpIHx8ICcgc2Vjb25kcycpOjppbnRlcnZhbCwgJzIwMDAtMDEtMDEn Ojp0aW1lc3RhbXB0eiArIChpIHx8ICcgc2Vjb25kcycpOjppbnRlcnZhbCwgKChpICUgMTApOjp0 ZXh0KTo6eGlkOCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMDAwKSBpIFdIRVJFIChpICUgMzAp IDwgMjAgYW5kIChpICUgMzApID49IDEwOworSU5TRVJUIElOVE8gcGFnZ190YWJfcDMgU0VMRUNU IGkgJSAzMCwgaSAlIDUwLCB0b19jaGFyKGkvMzAsICdGTTAwMDAnKSwgaSwgYXJyYXlbKGkgJSAy KSwgMF0sICgoaSAlIDIpIHx8ICcgc2Vjb25kcycpOjppbnRlcnZhbCwgKGkgJSAyKTo6bW9uZXks ICgoaSAtIDEpICUgMTApOjp0ZXh0LCAoKChpIC0gMSkgJSAxMCk6OnRleHQpOjpieXRlYSwgY2Fz ZSB3aGVuIChpICUgMikgPSAwIHRoZW4gQicwMScgZWxzZSBCJzExJyBlbmQsIGNhc2Ugd2hlbiAo aSAlIDIpID0gMCB0aGVuIDEgZWxzZSAzIGVuZCwgY2FzZSB3aGVuIChpICUgMikgPSAwIHRoZW4g MSBlbHNlIDMgZW5kLCBjYXNlIHdoZW4gKGkgJSAyKSA9IDAgdGhlbiAxIGVsc2UgMyBlbmQsIGNh c2Ugd2hlbiAoaSAlIDIpID0gMCB0aGVuIHRydWUgZWxzZSBmYWxzZSBlbmQsIChjYXNlIHdoZW4g KGkgJSAyKSA9IDAgdGhlbiAnc2FkJyBlbHNlICdoYXBweScgZW5kKTo6bW9vZCwgKCcwLycgfHwg aSk6OnBnX2xzbiwgKCcoMCwnIHx8IGkgfHwgJyknKTo6dGlkLCBpbnQ0cmFuZ2UoMCwgaSksIGlu dDRtdWx0aXJhbmdlKGludDRyYW5nZSgwLCBpKSwgaW50NHJhbmdlKDEwMCwgMTAwICsgaSkpLCAn MDA6MDA6MDAnOjp0aW1lICsgKGkgfHwgJyBzZWNvbmRzJyk6OmludGVydmFsLCAnMDA6MDA6MDAn Ojp0aW1ldHogKyAoaSB8fCAnIHNlY29uZHMnKTo6aW50ZXJ2YWwsICcyMDAwLTAxLTAxJzo6dGlt ZXN0YW1wICsgKGkgfHwgJyBzZWNvbmRzJyk6OmludGVydmFsLCAnMjAwMC0wMS0wMSc6OnRpbWVz dGFtcHR6ICsgKGkgfHwgJyBzZWNvbmRzJyk6OmludGVydmFsLCAoKGkgJSAxMCk6OnRleHQpOjp4 aWQ4IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMwMDApIGkgV0hFUkUgKGkgJSAzMCkgPCAzMCBh bmQgKGkgJSAzMCkgPj0gMjA7CiAtLSBDcmVhdGUgZm9yZWlnbiBwYXJ0aXRpb25zCiBDUkVBVEUg Rk9SRUlHTiBUQUJMRSBmcGFnZ190YWJfcDEgUEFSVElUSU9OIE9GIHBhZ2dfdGFiIEZPUiBWQUxV RVMgRlJPTSAoMCkgVE8gKDEwKSBTRVJWRVIgbG9vcGJhY2sgT1BUSU9OUyAodGFibGVfbmFtZSAn cGFnZ190YWJfcDEnKTsKIENSRUFURSBGT1JFSUdOIFRBQkxFIGZwYWdnX3RhYl9wMiBQQVJUSVRJ T04gT0YgcGFnZ190YWIgRk9SIFZBTFVFUyBGUk9NICgxMCkgVE8gKDIwKSBTRVJWRVIgbG9vcGJh Y2sgT1BUSU9OUyAodGFibGVfbmFtZSAncGFnZ190YWJfcDInKTsKIENSRUFURSBGT1JFSUdOIFRB QkxFIGZwYWdnX3RhYl9wMyBQQVJUSVRJT04gT0YgcGFnZ190YWIgRk9SIFZBTFVFUyBGUk9NICgy MCkgVE8gKDMwKSBTRVJWRVIgbG9vcGJhY2sgT1BUSU9OUyAodGFibGVfbmFtZSAncGFnZ190YWJf cDMnKTsKIEFOQUxZWkUgcGFnZ190YWI7CitBTkFMWVpFIHBhZ2dfdGFiX3AxOworQU5BTFlaRSBw YWdnX3RhYl9wMjsKK0FOQUxZWkUgcGFnZ190YWJfcDM7CiBBTkFMWVpFIGZwYWdnX3RhYl9wMTsK IEFOQUxZWkUgZnBhZ2dfdGFiX3AyOwogQU5BTFlaRSBmcGFnZ190YWJfcDM7CitTRVQgZXh0cmFf ZmxvYXRfZGlnaXRzID0gMDsKIC0tIFdoZW4gR1JPVVAgQlkgY2xhdXNlIG1hdGNoZXMgd2l0aCBQ QVJUSVRJT04gS0VZLgogLS0gUGxhbiB3aXRoIHBhcnRpdGlvbndpc2UgYWdncmVnYXRlcyBpcyBk aXNhYmxlZAogU0VUIGVuYWJsZV9wYXJ0aXRpb253aXNlX2FnZ3JlZ2F0ZSBUTyBmYWxzZTsKIEVY UExBSU4gKENPU1RTIE9GRikKIFNFTEVDVCBhLCBzdW0oYiksIG1pbihiKSwgY291bnQoKikgRlJP TSBwYWdnX3RhYiBHUk9VUCBCWSBhIEhBVklORyBhdmcoYikgPCAyMiBPUkRFUiBCWSAxOwotICAg ICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gR3JvdXBB Z2dyZWdhdGUKLSAgIEdyb3VwIEtleTogcGFnZ190YWIuYQotICAgRmlsdGVyOiAoYXZnKHBhZ2df dGFiLmIpIDwgJzIyJzo6bnVtZXJpYykKLSAgIC0+ICBBcHBlbmQKLSAgICAgICAgIC0+ICBGb3Jl aWduIFNjYW4gb24gZnBhZ2dfdGFiX3AxIHBhZ2dfdGFiXzEKLSAgICAgICAgIC0+ICBGb3JlaWdu IFNjYW4gb24gZnBhZ2dfdGFiX3AyIHBhZ2dfdGFiXzIKLSAgICAgICAgIC0+ICBGb3JlaWduIFNj YW4gb24gZnBhZ2dfdGFiX3AzIHBhZ2dfdGFiXzMKLSg3IHJvd3MpCisgICAgICAgICAgICAgICAg ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTb3J0Cisg ICBTb3J0IEtleTogcGFnZ190YWIuYQorICAgLT4gIEhhc2hBZ2dyZWdhdGUKKyAgICAgICAgIEdy b3VwIEtleTogcGFnZ190YWIuYQorICAgICAgICAgRmlsdGVyOiAoYXZnKHBhZ2dfdGFiLmIpIDwg JzIyJzo6bnVtZXJpYykKKyAgICAgICAgIC0+ICBBcHBlbmQKKyAgICAgICAgICAgICAgIC0+ICBG b3JlaWduIFNjYW4gb24gZnBhZ2dfdGFiX3AxIHBhZ2dfdGFiXzEKKyAgICAgICAgICAgICAgIC0+ ICBGb3JlaWduIFNjYW4gb24gZnBhZ2dfdGFiX3AyIHBhZ2dfdGFiXzIKKyAgICAgICAgICAgICAg IC0+ICBGb3JlaWduIFNjYW4gb24gZnBhZ2dfdGFiX3AzIHBhZ2dfdGFiXzMKKyg5IHJvd3MpCiAK IC0tIFBsYW4gd2l0aCBwYXJ0aXRpb253aXNlIGFnZ3JlZ2F0ZXMgaXMgZW5hYmxlZAogU0VUIGVu YWJsZV9wYXJ0aXRpb253aXNlX2FnZ3JlZ2F0ZSBUTyB0cnVlOwpAQCAtMTAwODAsMzIgKzEwMTAw LDM0IEBAIFNFTEVDVCBhLCBzdW0oYiksIG1pbihiKSwgY291bnQoKikgRlJPTSBwYWdnX3RhYiBH Uk9VUCBCWSBhIEhBVklORyBhdmcoYikgPCAyMiBPCiAtLSBTaG91bGQgaGF2ZSBhbGwgdGhlIGNv bHVtbnMgaW4gdGhlIHRhcmdldCBsaXN0IGZvciB0aGUgZ2l2ZW4gcmVsYXRpb24KIEVYUExBSU4g KFZFUkJPU0UsIENPU1RTIE9GRikKIFNFTEVDVCBhLCBjb3VudCh0MSkgRlJPTSBwYWdnX3RhYiB0 MSBHUk9VUCBCWSBhIEhBVklORyBhdmcoYikgPCAyMiBPUkRFUiBCWSAxOwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCi0gTWVyZ2UgQXBwZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU29ydAorICAgT3V0cHV0OiB0MS5hLCAo Y291bnQoKCh0MS4qKTo6cGFnZ190YWIpKSkKICAgIFNvcnQgS2V5OiB0MS5hCi0gICAtPiAgR3Jv dXBBZ2dyZWdhdGUKLSAgICAgICAgIE91dHB1dDogdDEuYSwgY291bnQoKCh0MS4qKTo6cGFnZ190 YWIpKQotICAgICAgICAgR3JvdXAgS2V5OiB0MS5hCi0gICAgICAgICBGaWx0ZXI6IChhdmcodDEu YikgPCAnMjInOjpudW1lcmljKQotICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMu ZnBhZ2dfdGFiX3AxIHQxCi0gICAgICAgICAgICAgICBPdXRwdXQ6IHQxLmEsIHQxLiosIHQxLmIK LSAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBhLCBiLCBjIEZST00gcHVibGljLnBh Z2dfdGFiX3AxIE9SREVSIEJZIGEgQVNDIE5VTExTIExBU1QKLSAgIC0+ICBHcm91cEFnZ3JlZ2F0 ZQotICAgICAgICAgT3V0cHV0OiB0MV8xLmEsIGNvdW50KCgodDFfMS4qKTo6cGFnZ190YWIpKQot ICAgICAgICAgR3JvdXAgS2V5OiB0MV8xLmEKLSAgICAgICAgIEZpbHRlcjogKGF2Zyh0MV8xLmIp IDwgJzIyJzo6bnVtZXJpYykKLSAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4gb24gcHVibGljLmZw YWdnX3RhYl9wMiB0MV8xCi0gICAgICAgICAgICAgICBPdXRwdXQ6IHQxXzEuYSwgdDFfMS4qLCB0 MV8xLmIKLSAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBhLCBiLCBjIEZST00gcHVi bGljLnBhZ2dfdGFiX3AyIE9SREVSIEJZIGEgQVNDIE5VTExTIExBU1QKLSAgIC0+ICBHcm91cEFn Z3JlZ2F0ZQotICAgICAgICAgT3V0cHV0OiB0MV8yLmEsIGNvdW50KCgodDFfMi4qKTo6cGFnZ190 YWIpKQotICAgICAgICAgR3JvdXAgS2V5OiB0MV8yLmEKLSAgICAgICAgIEZpbHRlcjogKGF2Zyh0 MV8yLmIpIDwgJzIyJzo6bnVtZXJpYykKLSAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4gb24gcHVi bGljLmZwYWdnX3RhYl9wMyB0MV8yCi0gICAgICAgICAgICAgICBPdXRwdXQ6IHQxXzIuYSwgdDFf Mi4qLCB0MV8yLmIKLSAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBhLCBiLCBjIEZS T00gcHVibGljLnBhZ2dfdGFiX3AzIE9SREVSIEJZIGEgQVNDIE5VTExTIExBU1QKLSgyMyByb3dz KQorICAgLT4gIEFwcGVuZAorICAgICAgICAgLT4gIEhhc2hBZ2dyZWdhdGUKKyAgICAgICAgICAg ICAgIE91dHB1dDogdDEuYSwgY291bnQoKCh0MS4qKTo6cGFnZ190YWIpKQorICAgICAgICAgICAg ICAgR3JvdXAgS2V5OiB0MS5hCisgICAgICAgICAgICAgICBGaWx0ZXI6IChhdmcodDEuYikgPCAn MjInOjpudW1lcmljKQorICAgICAgICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMu ZnBhZ2dfdGFiX3AxIHQxCisgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IHQxLmEsIHQxLios IHQxLmIKKyAgICAgICAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBhLCBiLCBjLCBj X3NlcmlhbCwgY19pbnQ0YXJyYXksIGNfaW50ZXJ2YWwsIGNfbW9uZXksIGNfMWMsIGNfMWIsIGNf Yml0LCBjXzFvcjNpbnQyLCBjXzFvcjNpbnQ0LCBjXzFvcjNpbnQ4LCBjX2Jvb2wsIGNfZW51bSwg Y19wZ19sc24sIGNfdGlkLCBjX2ludDRyYW5nZSwgY19pbnQ0bXVsdGlyYW5nZSwgY190aW1lLCBj X3RpbWV0eiwgY190aW1lc3RhbXAsIGNfdGltZXN0YW1wdHosIGNfeGlkOCBGUk9NIHB1YmxpYy5w YWdnX3RhYl9wMQorICAgICAgICAgLT4gIEhhc2hBZ2dyZWdhdGUKKyAgICAgICAgICAgICAgIE91 dHB1dDogdDFfMS5hLCBjb3VudCgoKHQxXzEuKik6OnBhZ2dfdGFiKSkKKyAgICAgICAgICAgICAg IEdyb3VwIEtleTogdDFfMS5hCisgICAgICAgICAgICAgICBGaWx0ZXI6IChhdmcodDFfMS5iKSA8 ICcyMic6Om51bWVyaWMpCisgICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuIG9uIHB1Ymxp Yy5mcGFnZ190YWJfcDIgdDFfMQorICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiB0MV8xLmEs IHQxXzEuKiwgdDFfMS5iCisgICAgICAgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1Qg YSwgYiwgYywgY19zZXJpYWwsIGNfaW50NGFycmF5LCBjX2ludGVydmFsLCBjX21vbmV5LCBjXzFj LCBjXzFiLCBjX2JpdCwgY18xb3IzaW50MiwgY18xb3IzaW50NCwgY18xb3IzaW50OCwgY19ib29s LCBjX2VudW0sIGNfcGdfbHNuLCBjX3RpZCwgY19pbnQ0cmFuZ2UsIGNfaW50NG11bHRpcmFuZ2Us IGNfdGltZSwgY190aW1ldHosIGNfdGltZXN0YW1wLCBjX3RpbWVzdGFtcHR6LCBjX3hpZDggRlJP TSBwdWJsaWMucGFnZ190YWJfcDIKKyAgICAgICAgIC0+ICBIYXNoQWdncmVnYXRlCisgICAgICAg ICAgICAgICBPdXRwdXQ6IHQxXzIuYSwgY291bnQoKCh0MV8yLiopOjpwYWdnX3RhYikpCisgICAg ICAgICAgICAgICBHcm91cCBLZXk6IHQxXzIuYQorICAgICAgICAgICAgICAgRmlsdGVyOiAoYXZn KHQxXzIuYikgPCAnMjInOjpudW1lcmljKQorICAgICAgICAgICAgICAgLT4gIEZvcmVpZ24gU2Nh biBvbiBwdWJsaWMuZnBhZ2dfdGFiX3AzIHQxXzIKKyAgICAgICAgICAgICAgICAgICAgIE91dHB1 dDogdDFfMi5hLCB0MV8yLiosIHQxXzIuYgorICAgICAgICAgICAgICAgICAgICAgUmVtb3RlIFNR TDogU0VMRUNUIGEsIGIsIGMsIGNfc2VyaWFsLCBjX2ludDRhcnJheSwgY19pbnRlcnZhbCwgY19t b25leSwgY18xYywgY18xYiwgY19iaXQsIGNfMW9yM2ludDIsIGNfMW9yM2ludDQsIGNfMW9yM2lu dDgsIGNfYm9vbCwgY19lbnVtLCBjX3BnX2xzbiwgY190aWQsIGNfaW50NHJhbmdlLCBjX2ludDRt dWx0aXJhbmdlLCBjX3RpbWUsIGNfdGltZXR6LCBjX3RpbWVzdGFtcCwgY190aW1lc3RhbXB0eiwg Y194aWQ4IEZST00gcHVibGljLnBhZ2dfdGFiX3AzCisoMjUgcm93cykKIAogU0VMRUNUIGEsIGNv dW50KHQxKSBGUk9NIHBhZ2dfdGFiIHQxIEdST1VQIEJZIGEgSEFWSU5HIGF2ZyhiKSA8IDIyIE9S REVSIEJZIDE7CiAgYSAgfCBjb3VudCAKQEAgLTEwMTE4LDI3ICsxMDE0MCw1NDEgQEAgU0VMRUNU IGEsIGNvdW50KHQxKSBGUk9NIHBhZ2dfdGFiIHQxIEdST1VQIEJZIGEgSEFWSU5HIGF2ZyhiKSA8 IDIyIE9SREVSIEJZIDE7CiAgMjEgfCAgIDEwMAogKDYgcm93cykKIAotLS0gV2hlbiBHUk9VUCBC WSBjbGF1c2UgZG9lcyBub3QgbWF0Y2ggd2l0aCBQQVJUSVRJT04gS0VZLgotRVhQTEFJTiAoQ09T VFMgT0ZGKQorLS0gUGFydGlhbCBhZ2dyZWdhdGVzIGFyZSBzYWZlIHRvIHB1c2ggZG93biB3aGVu IHRoZXJlIGlzIGEgSEFWSU5HIGNsYXVzZQorRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKQog U0VMRUNUIGIsIGF2ZyhhKSwgbWF4KGEpLCBjb3VudCgqKSBGUk9NIHBhZ2dfdGFiIEdST1VQIEJZ IGIgSEFWSU5HIHN1bShhKSA8IDcwMCBPUkRFUiBCWSAxOwotICAgICAgICAgICAgICAgICAgICAg ICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZ IFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIEZpbmFsaXplIEdy b3VwQWdncmVnYXRlCisgICBPdXRwdXQ6IHBhZ2dfdGFiLmIsIGF2ZyhwYWdnX3RhYi5hKSwgbWF4 KHBhZ2dfdGFiLmEpLCBjb3VudCgqKQogICAgR3JvdXAgS2V5OiBwYWdnX3RhYi5iCiAgICBGaWx0 ZXI6IChzdW0ocGFnZ190YWIuYSkgPCA3MDApCisgICAtPiAgU29ydAorICAgICAgICAgT3V0cHV0 OiBwYWdnX3RhYi5iLCAoUEFSVElBTCBhdmcocGFnZ190YWIuYSkpLCAoUEFSVElBTCBtYXgocGFn Z190YWIuYSkpLCAoUEFSVElBTCBjb3VudCgqKSksIChQQVJUSUFMIHN1bShwYWdnX3RhYi5hKSkK KyAgICAgICAgIFNvcnQgS2V5OiBwYWdnX3RhYi5iCisgICAgICAgICAtPiAgQXBwZW5kCisgICAg ICAgICAgICAgICAtPiAgUGFydGlhbCBIYXNoQWdncmVnYXRlCisgICAgICAgICAgICAgICAgICAg ICBPdXRwdXQ6IHBhZ2dfdGFiLmIsIFBBUlRJQUwgYXZnKHBhZ2dfdGFiLmEpLCBQQVJUSUFMIG1h eChwYWdnX3RhYi5hKSwgUEFSVElBTCBjb3VudCgqKSwgUEFSVElBTCBzdW0ocGFnZ190YWIuYSkK KyAgICAgICAgICAgICAgICAgICAgIEdyb3VwIEtleTogcGFnZ190YWIuYgorICAgICAgICAgICAg ICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMuZnBhZ2dfdGFiX3AxIHBhZ2dfdGFi CisgICAgICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IHBhZ2dfdGFiLmIsIHBhZ2dfdGFi LmEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBhLCBiIEZS T00gcHVibGljLnBhZ2dfdGFiX3AxCisgICAgICAgICAgICAgICAtPiAgUGFydGlhbCBIYXNoQWdn cmVnYXRlCisgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IHBhZ2dfdGFiXzEuYiwgUEFSVElB TCBhdmcocGFnZ190YWJfMS5hKSwgUEFSVElBTCBtYXgocGFnZ190YWJfMS5hKSwgUEFSVElBTCBj b3VudCgqKSwgUEFSVElBTCBzdW0ocGFnZ190YWJfMS5hKQorICAgICAgICAgICAgICAgICAgICAg R3JvdXAgS2V5OiBwYWdnX3RhYl8xLmIKKyAgICAgICAgICAgICAgICAgICAgIC0+ICBGb3JlaWdu IFNjYW4gb24gcHVibGljLmZwYWdnX3RhYl9wMiBwYWdnX3RhYl8xCisgICAgICAgICAgICAgICAg ICAgICAgICAgICBPdXRwdXQ6IHBhZ2dfdGFiXzEuYiwgcGFnZ190YWJfMS5hCisgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYSwgYiBGUk9NIHB1YmxpYy5wYWdn X3RhYl9wMgorICAgICAgICAgICAgICAgLT4gIFBhcnRpYWwgSGFzaEFnZ3JlZ2F0ZQorICAgICAg ICAgICAgICAgICAgICAgT3V0cHV0OiBwYWdnX3RhYl8yLmIsIFBBUlRJQUwgYXZnKHBhZ2dfdGFi XzIuYSksIFBBUlRJQUwgbWF4KHBhZ2dfdGFiXzIuYSksIFBBUlRJQUwgY291bnQoKiksIFBBUlRJ QUwgc3VtKHBhZ2dfdGFiXzIuYSkKKyAgICAgICAgICAgICAgICAgICAgIEdyb3VwIEtleTogcGFn Z190YWJfMi5iCisgICAgICAgICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuIG9uIHB1Ymxp Yy5mcGFnZ190YWJfcDMgcGFnZ190YWJfMgorICAgICAgICAgICAgICAgICAgICAgICAgICAgT3V0 cHV0OiBwYWdnX3RhYl8yLmIsIHBhZ2dfdGFiXzIuYQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmVtb3RlIFNRTDogU0VMRUNUIGEsIGIgRlJPTSBwdWJsaWMucGFnZ190YWJfcDMKKygyNiBy b3dzKQorCitTRUxFQ1QgYiwgYXZnKGEpLCBtYXgoYSksIGNvdW50KCopIEZST00gcGFnZ190YWIg R1JPVVAgQlkgYiBIQVZJTkcgc3VtKGEpIDwgNzAwIE9SREVSIEJZIDE7CisgYiAgfCAgICAgICAg IGF2ZyAgICAgICAgIHwgbWF4IHwgY291bnQgCistLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLSstLS0tLS0tCisgIDAgfCAxMC4wMDAwMDAwMDAwMDAwMDAwIHwgIDIwIHwgICAgNjAKKyAg MSB8IDExLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjEgfCAgICA2MAorIDEwIHwgMTAuMDAwMDAwMDAw MDAwMDAwMCB8ICAyMCB8ICAgIDYwCisgMTEgfCAxMS4wMDAwMDAwMDAwMDAwMDAwIHwgIDIxIHwg ICAgNjAKKyAyMCB8IDEwLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjAgfCAgICA2MAorIDIxIHwgMTEu MDAwMDAwMDAwMDAwMDAwMCB8ICAyMSB8ICAgIDYwCisgMzAgfCAxMC4wMDAwMDAwMDAwMDAwMDAw IHwgIDIwIHwgICAgNjAKKyAzMSB8IDExLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjEgfCAgICA2MAor IDQwIHwgMTAuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMCB8ICAgIDYwCisgNDEgfCAxMS4wMDAwMDAw MDAwMDAwMDAwIHwgIDIxIHwgICAgNjAKKygxMCByb3dzKQorCistLSBQYXJ0aWFsIGFnZ3JlZ2F0 ZXMgYXJlIHNhZmUgdG8gcHVzaCBkb3duIHdpdGhvdXQgaGF2aW5nIGNsYXVzZQorRVhQTEFJTiAo VkVSQk9TRSwgQ09TVFMgT0ZGKQorU0VMRUNUIGIsIGF2ZyhhKSwgbWF4KGEpLCBjb3VudCgqKSBG Uk9NIHBhZ2dfdGFiIEdST1VQIEJZIGIgT1JERVIgQlkgMTsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBT b3J0CisgICBPdXRwdXQ6IHBhZ2dfdGFiLmIsIChhdmcocGFnZ190YWIuYSkpLCAobWF4KHBhZ2df dGFiLmEpKSwgKGNvdW50KCopKQorICAgU29ydCBLZXk6IHBhZ2dfdGFiLmIKKyAgIC0+ICBGaW5h bGl6ZSBIYXNoQWdncmVnYXRlCisgICAgICAgICBPdXRwdXQ6IHBhZ2dfdGFiLmIsIGF2ZyhwYWdn X3RhYi5hKSwgbWF4KHBhZ2dfdGFiLmEpLCBjb3VudCgqKQorICAgICAgICAgR3JvdXAgS2V5OiBw YWdnX3RhYi5iCisgICAgICAgICAtPiAgQXBwZW5kCisgICAgICAgICAgICAgICAtPiAgRm9yZWln biBTY2FuCisgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IHBhZ2dfdGFiLmIsIChQQVJUSUFM IGF2ZyhwYWdnX3RhYi5hKSksIChQQVJUSUFMIG1heChwYWdnX3RhYi5hKSksIChQQVJUSUFMIGNv dW50KCopKQorICAgICAgICAgICAgICAgICAgICAgUmVsYXRpb25zOiBBZ2dyZWdhdGUgb24gKHB1 YmxpYy5mcGFnZ190YWJfcDEgcGFnZ190YWIpCisgICAgICAgICAgICAgICAgICAgICBSZW1vdGUg U1FMOiBTRUxFQ1QgYiwgYXZnKFBBUlRJQUxfQUdHUkVHQVRFIGEpLCBtYXgoYSksIGNvdW50KCop IEZST00gcHVibGljLnBhZ2dfdGFiX3AxIEdST1VQIEJZIDEKKyAgICAgICAgICAgICAgIC0+ICBG b3JlaWduIFNjYW4KKyAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogcGFnZ190YWJfMS5iLCAo UEFSVElBTCBhdmcocGFnZ190YWJfMS5hKSksIChQQVJUSUFMIG1heChwYWdnX3RhYl8xLmEpKSwg KFBBUlRJQUwgY291bnQoKikpCisgICAgICAgICAgICAgICAgICAgICBSZWxhdGlvbnM6IEFnZ3Jl Z2F0ZSBvbiAocHVibGljLmZwYWdnX3RhYl9wMiBwYWdnX3RhYl8xKQorICAgICAgICAgICAgICAg ICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGIsIGF2ZyhQQVJUSUFMX0FHR1JFR0FURSBhKSwgbWF4 KGEpLCBjb3VudCgqKSBGUk9NIHB1YmxpYy5wYWdnX3RhYl9wMiBHUk9VUCBCWSAxCisgICAgICAg ICAgICAgICAtPiAgRm9yZWlnbiBTY2FuCisgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IHBh Z2dfdGFiXzIuYiwgKFBBUlRJQUwgYXZnKHBhZ2dfdGFiXzIuYSkpLCAoUEFSVElBTCBtYXgocGFn Z190YWJfMi5hKSksIChQQVJUSUFMIGNvdW50KCopKQorICAgICAgICAgICAgICAgICAgICAgUmVs YXRpb25zOiBBZ2dyZWdhdGUgb24gKHB1YmxpYy5mcGFnZ190YWJfcDMgcGFnZ190YWJfMikKKyAg ICAgICAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBiLCBhdmcoUEFSVElBTF9BR0dS RUdBVEUgYSksIG1heChhKSwgY291bnQoKikgRlJPTSBwdWJsaWMucGFnZ190YWJfcDMgR1JPVVAg QlkgMQorKDE5IHJvd3MpCisKK1NFTEVDVCBiLCBhdmcoYSksIG1heChhKSwgY291bnQoKikgRlJP TSBwYWdnX3RhYiBHUk9VUCBCWSBiIE9SREVSIEJZIDE7CisgYiAgfCAgICAgICAgIGF2ZyAgICAg ICAgIHwgbWF4IHwgY291bnQgCistLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLSstLS0t LS0tCisgIDAgfCAxMC4wMDAwMDAwMDAwMDAwMDAwIHwgIDIwIHwgICAgNjAKKyAgMSB8IDExLjAw MDAwMDAwMDAwMDAwMDAgfCAgMjEgfCAgICA2MAorICAyIHwgMTIuMDAwMDAwMDAwMDAwMDAwMCB8 ICAyMiB8ICAgIDYwCisgIDMgfCAxMy4wMDAwMDAwMDAwMDAwMDAwIHwgIDIzIHwgICAgNjAKKyAg NCB8IDE0LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjQgfCAgICA2MAorICA1IHwgMTUuMDAwMDAwMDAw MDAwMDAwMCB8ICAyNSB8ICAgIDYwCisgIDYgfCAxNi4wMDAwMDAwMDAwMDAwMDAwIHwgIDI2IHwg ICAgNjAKKyAgNyB8IDE3LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjcgfCAgICA2MAorICA4IHwgMTgu MDAwMDAwMDAwMDAwMDAwMCB8ICAyOCB8ICAgIDYwCisgIDkgfCAxOS4wMDAwMDAwMDAwMDAwMDAw IHwgIDI5IHwgICAgNjAKKyAxMCB8IDEwLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjAgfCAgICA2MAor IDExIHwgMTEuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMSB8ICAgIDYwCisgMTIgfCAxMi4wMDAwMDAw MDAwMDAwMDAwIHwgIDIyIHwgICAgNjAKKyAxMyB8IDEzLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjMg fCAgICA2MAorIDE0IHwgMTQuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNCB8ICAgIDYwCisgMTUgfCAx NS4wMDAwMDAwMDAwMDAwMDAwIHwgIDI1IHwgICAgNjAKKyAxNiB8IDE2LjAwMDAwMDAwMDAwMDAw MDAgfCAgMjYgfCAgICA2MAorIDE3IHwgMTcuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNyB8ICAgIDYw CisgMTggfCAxOC4wMDAwMDAwMDAwMDAwMDAwIHwgIDI4IHwgICAgNjAKKyAxOSB8IDE5LjAwMDAw MDAwMDAwMDAwMDAgfCAgMjkgfCAgICA2MAorIDIwIHwgMTAuMDAwMDAwMDAwMDAwMDAwMCB8ICAy MCB8ICAgIDYwCisgMjEgfCAxMS4wMDAwMDAwMDAwMDAwMDAwIHwgIDIxIHwgICAgNjAKKyAyMiB8 IDEyLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjIgfCAgICA2MAorIDIzIHwgMTMuMDAwMDAwMDAwMDAw MDAwMCB8ICAyMyB8ICAgIDYwCisgMjQgfCAxNC4wMDAwMDAwMDAwMDAwMDAwIHwgIDI0IHwgICAg NjAKKyAyNSB8IDE1LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjUgfCAgICA2MAorIDI2IHwgMTYuMDAw MDAwMDAwMDAwMDAwMCB8ICAyNiB8ICAgIDYwCisgMjcgfCAxNy4wMDAwMDAwMDAwMDAwMDAwIHwg IDI3IHwgICAgNjAKKyAyOCB8IDE4LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjggfCAgICA2MAorIDI5 IHwgMTkuMDAwMDAwMDAwMDAwMDAwMCB8ICAyOSB8ICAgIDYwCisgMzAgfCAxMC4wMDAwMDAwMDAw MDAwMDAwIHwgIDIwIHwgICAgNjAKKyAzMSB8IDExLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjEgfCAg ICA2MAorIDMyIHwgMTIuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMiB8ICAgIDYwCisgMzMgfCAxMy4w MDAwMDAwMDAwMDAwMDAwIHwgIDIzIHwgICAgNjAKKyAzNCB8IDE0LjAwMDAwMDAwMDAwMDAwMDAg fCAgMjQgfCAgICA2MAorIDM1IHwgMTUuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNSB8ICAgIDYwCisg MzYgfCAxNi4wMDAwMDAwMDAwMDAwMDAwIHwgIDI2IHwgICAgNjAKKyAzNyB8IDE3LjAwMDAwMDAw MDAwMDAwMDAgfCAgMjcgfCAgICA2MAorIDM4IHwgMTguMDAwMDAwMDAwMDAwMDAwMCB8ICAyOCB8 ICAgIDYwCisgMzkgfCAxOS4wMDAwMDAwMDAwMDAwMDAwIHwgIDI5IHwgICAgNjAKKyA0MCB8IDEw LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjAgfCAgICA2MAorIDQxIHwgMTEuMDAwMDAwMDAwMDAwMDAw MCB8ICAyMSB8ICAgIDYwCisgNDIgfCAxMi4wMDAwMDAwMDAwMDAwMDAwIHwgIDIyIHwgICAgNjAK KyA0MyB8IDEzLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjMgfCAgICA2MAorIDQ0IHwgMTQuMDAwMDAw MDAwMDAwMDAwMCB8ICAyNCB8ICAgIDYwCisgNDUgfCAxNS4wMDAwMDAwMDAwMDAwMDAwIHwgIDI1 IHwgICAgNjAKKyA0NiB8IDE2LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjYgfCAgICA2MAorIDQ3IHwg MTcuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNyB8ICAgIDYwCisgNDggfCAxOC4wMDAwMDAwMDAwMDAw MDAwIHwgIDI4IHwgICAgNjAKKyA0OSB8IDE5LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjkgfCAgICA2 MAorKDUwIHJvd3MpCisKKy0tIFBhcnRpYWwgYWdncmVnYXRlcyBhcmUgc2FmZSB0byBwdXNoIGRv d24gZXZlbiBpZiB3ZSBuZWVkIGJvdGggdmFyaWFibGUgYW5kIHZhcmlhYmxlLWJhc2VkIGV4cHJl c3Npb24KK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikKK1NFTEVDVCBhdmcoYSksIG1heChh KSwgY291bnQoKiksIChiLzIpOjpudW1lcmljIEZST00gcGFnZ190YWIgR1JPVVAgQlkgYi8yIE9S REVSIEJZIDQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgU29ydAorICAgT3V0cHV0OiAoYXZnKHBhZ2dfdGFiLmEpKSwgKG1heChw YWdnX3RhYi5hKSksIChjb3VudCgqKSksICgoKChwYWdnX3RhYi5iIC8gMikpKTo6bnVtZXJpYyks ICgocGFnZ190YWIuYiAvIDIpKQorICAgU29ydCBLZXk6ICgoKChwYWdnX3RhYi5iIC8gMikpKTo6 bnVtZXJpYykKKyAgIC0+ICBGaW5hbGl6ZSBIYXNoQWdncmVnYXRlCisgICAgICAgICBPdXRwdXQ6 IGF2ZyhwYWdnX3RhYi5hKSwgbWF4KHBhZ2dfdGFiLmEpLCBjb3VudCgqKSwgKCgocGFnZ190YWIu YiAvIDIpKSk6Om51bWVyaWMsICgocGFnZ190YWIuYiAvIDIpKQorICAgICAgICAgR3JvdXAgS2V5 OiAoKHBhZ2dfdGFiLmIgLyAyKSkKKyAgICAgICAgIC0+ICBBcHBlbmQKKyAgICAgICAgICAgICAg IC0+ICBGb3JlaWduIFNjYW4KKyAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogKChwYWdnX3Rh Yi5iIC8gMikpLCAoUEFSVElBTCBhdmcocGFnZ190YWIuYSkpLCAoUEFSVElBTCBtYXgocGFnZ190 YWIuYSkpLCAoUEFSVElBTCBjb3VudCgqKSksIHBhZ2dfdGFiLmIKKyAgICAgICAgICAgICAgICAg ICAgIFJlbGF0aW9uczogQWdncmVnYXRlIG9uIChwdWJsaWMuZnBhZ2dfdGFiX3AxIHBhZ2dfdGFi KQorICAgICAgICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIChiIC8gMiksIGIsIGF2 ZyhQQVJUSUFMX0FHR1JFR0FURSBhKSwgbWF4KGEpLCBjb3VudCgqKSBGUk9NIHB1YmxpYy5wYWdn X3RhYl9wMSBHUk9VUCBCWSAxLCAyCisgICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuCisg ICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6ICgocGFnZ190YWJfMS5iIC8gMikpLCAoUEFSVElB TCBhdmcocGFnZ190YWJfMS5hKSksIChQQVJUSUFMIG1heChwYWdnX3RhYl8xLmEpKSwgKFBBUlRJ QUwgY291bnQoKikpLCBwYWdnX3RhYl8xLmIKKyAgICAgICAgICAgICAgICAgICAgIFJlbGF0aW9u czogQWdncmVnYXRlIG9uIChwdWJsaWMuZnBhZ2dfdGFiX3AyIHBhZ2dfdGFiXzEpCisgICAgICAg ICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgKGIgLyAyKSwgYiwgYXZnKFBBUlRJQUxf QUdHUkVHQVRFIGEpLCBtYXgoYSksIGNvdW50KCopIEZST00gcHVibGljLnBhZ2dfdGFiX3AyIEdS T1VQIEJZIDEsIDIKKyAgICAgICAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4KKyAgICAgICAgICAg ICAgICAgICAgIE91dHB1dDogKChwYWdnX3RhYl8yLmIgLyAyKSksIChQQVJUSUFMIGF2ZyhwYWdn X3RhYl8yLmEpKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiXzIuYSkpLCAoUEFSVElBTCBjb3VudCgq KSksIHBhZ2dfdGFiXzIuYgorICAgICAgICAgICAgICAgICAgICAgUmVsYXRpb25zOiBBZ2dyZWdh dGUgb24gKHB1YmxpYy5mcGFnZ190YWJfcDMgcGFnZ190YWJfMikKKyAgICAgICAgICAgICAgICAg ICAgIFJlbW90ZSBTUUw6IFNFTEVDVCAoYiAvIDIpLCBiLCBhdmcoUEFSVElBTF9BR0dSRUdBVEUg YSksIG1heChhKSwgY291bnQoKikgRlJPTSBwdWJsaWMucGFnZ190YWJfcDMgR1JPVVAgQlkgMSwg MgorKDE5IHJvd3MpCisKK1NFTEVDVCBhdmcoYSksIG1heChhKSwgY291bnQoKiksIChiLzIpOjpu dW1lcmljIEZST00gcGFnZ190YWIgR1JPVVAgQlkgYi8yIE9SREVSIEJZIDQ7CisgICAgICAgICBh dmcgICAgICAgICB8IG1heCB8IGNvdW50IHwgbnVtZXJpYyAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLSstLS0tLS0tKy0tLS0tLS0tLQorIDEwLjUwMDAwMDAwMDAwMDAwMDAgfCAgMjEgfCAg IDEyMCB8ICAgICAgIDAKKyAxMi41MDAwMDAwMDAwMDAwMDAwIHwgIDIzIHwgICAxMjAgfCAgICAg ICAxCisgMTQuNTAwMDAwMDAwMDAwMDAwMCB8ICAyNSB8ICAgMTIwIHwgICAgICAgMgorIDE2LjUw MDAwMDAwMDAwMDAwMDAgfCAgMjcgfCAgIDEyMCB8ICAgICAgIDMKKyAxOC41MDAwMDAwMDAwMDAw MDAwIHwgIDI5IHwgICAxMjAgfCAgICAgICA0CisgMTAuNTAwMDAwMDAwMDAwMDAwMCB8ICAyMSB8 ICAgMTIwIHwgICAgICAgNQorIDEyLjUwMDAwMDAwMDAwMDAwMDAgfCAgMjMgfCAgIDEyMCB8ICAg ICAgIDYKKyAxNC41MDAwMDAwMDAwMDAwMDAwIHwgIDI1IHwgICAxMjAgfCAgICAgICA3CisgMTYu NTAwMDAwMDAwMDAwMDAwMCB8ICAyNyB8ICAgMTIwIHwgICAgICAgOAorIDE4LjUwMDAwMDAwMDAw MDAwMDAgfCAgMjkgfCAgIDEyMCB8ICAgICAgIDkKKyAxMC41MDAwMDAwMDAwMDAwMDAwIHwgIDIx IHwgICAxMjAgfCAgICAgIDEwCisgMTIuNTAwMDAwMDAwMDAwMDAwMCB8ICAyMyB8ICAgMTIwIHwg ICAgICAxMQorIDE0LjUwMDAwMDAwMDAwMDAwMDAgfCAgMjUgfCAgIDEyMCB8ICAgICAgMTIKKyAx Ni41MDAwMDAwMDAwMDAwMDAwIHwgIDI3IHwgICAxMjAgfCAgICAgIDEzCisgMTguNTAwMDAwMDAw MDAwMDAwMCB8ICAyOSB8ICAgMTIwIHwgICAgICAxNAorIDEwLjUwMDAwMDAwMDAwMDAwMDAgfCAg MjEgfCAgIDEyMCB8ICAgICAgMTUKKyAxMi41MDAwMDAwMDAwMDAwMDAwIHwgIDIzIHwgICAxMjAg fCAgICAgIDE2CisgMTQuNTAwMDAwMDAwMDAwMDAwMCB8ICAyNSB8ICAgMTIwIHwgICAgICAxNwor IDE2LjUwMDAwMDAwMDAwMDAwMDAgfCAgMjcgfCAgIDEyMCB8ICAgICAgMTgKKyAxOC41MDAwMDAw MDAwMDAwMDAwIHwgIDI5IHwgICAxMjAgfCAgICAgIDE5CisgMTAuNTAwMDAwMDAwMDAwMDAwMCB8 ICAyMSB8ICAgMTIwIHwgICAgICAyMAorIDEyLjUwMDAwMDAwMDAwMDAwMDAgfCAgMjMgfCAgIDEy MCB8ICAgICAgMjEKKyAxNC41MDAwMDAwMDAwMDAwMDAwIHwgIDI1IHwgICAxMjAgfCAgICAgIDIy CisgMTYuNTAwMDAwMDAwMDAwMDAwMCB8ICAyNyB8ICAgMTIwIHwgICAgICAyMworIDE4LjUwMDAw MDAwMDAwMDAwMDAgfCAgMjkgfCAgIDEyMCB8ICAgICAgMjQKKygyNSByb3dzKQorCistLSBQYXJ0 aWFsIGFnZ3JlZ2F0ZXMgYXJlIHNhZmUgdG8gcHVzaCBkb3duIGZvciBhbGwgYnVpbHQtaW4gYWdn cmVnYXRlcworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKQorU0VMRUNUIC8qIGFnZ3JlZ2F0 ZSA8PiBwYXJ0aWFsIGFnZ3JlZ2F0ZSAqLworICAgIGFycmF5X2FnZyhjX2ludDRhcnJheSksIGFy cmF5X2FnZyhiKSwKKyAgICBhdmcoYjo6aW50MiksIGF2ZyhiOjppbnQ0KSwgYXZnKGI6OmludDgp LCBhdmcoY19pbnRlcnZhbCksIGF2ZyhiOjpmbG9hdDQpLCBhdmcoYjo6ZmxvYXQ4KSwgYXZnKGI6 Om51bWVyaWMpLAorICAgIGNvcnIoYjo6ZmxvYXQ4LCAoYiAqIGIpOjpmbG9hdDgpLAorICAgIGNv dmFyX3BvcChiOjpmbG9hdDgsIChiICogYik6OmZsb2F0OCksCisgICAgY292YXJfc2FtcChiOjpm bG9hdDgsIChiICogYik6OmZsb2F0OCksCisgICAgcmVncl9hdmd4KCgyICogYik6OmZsb2F0OCwg Yjo6ZmxvYXQ4KSwKKyAgICByZWdyX2F2Z3koKDIgKiBiKTo6ZmxvYXQ4LCBiOjpmbG9hdDgpLAor ICAgIHJlZ3JfaW50ZXJjZXB0KCgyICogYiArIDMpOjpmbG9hdDgsIGI6OmZsb2F0OCksCisgICAg cmVncl9yMigoYiAqIGIpOjpmbG9hdDgsIGI6OmZsb2F0OCksCisgICAgcmVncl9zbG9wZSgoMiAq IGIgKyAzKTo6ZmxvYXQ4LCBiOjpmbG9hdDgpLAorICAgIHJlZ3Jfc3h4KCgyICogYiArIDMpOjpm bG9hdDgsIGI6OmZsb2F0OCksCisgICAgcmVncl9zeHkoKGIgKiBiKTo6ZmxvYXQ4LCBiOjpmbG9h dDgpLAorICAgIHJlZ3Jfc3l5KCgyICogYiArIDMpOjpmbG9hdDgsIGI6OmZsb2F0OCksCisgICAg c3RkZGV2KGI6OmZsb2F0NCksIHN0ZGRldihiOjpmbG9hdDgpLCBzdGRkZXYoYjo6aW50MiksIHN0 ZGRldihiOjppbnQ0KSwgc3RkZGV2KGI6OmludDgpLCBzdGRkZXYoYjo6bnVtZXJpYyksCisgICAg c3RkZGV2X3BvcChiOjpmbG9hdDQpLCBzdGRkZXZfcG9wKGI6OmZsb2F0OCksIHN0ZGRldl9wb3Ao Yjo6aW50MiksIHN0ZGRldl9wb3AoYjo6aW50NCksIHN0ZGRldl9wb3AoYjo6aW50OCksIHN0ZGRl dl9wb3AoYjo6bnVtZXJpYyksCisgICAgc3RkZGV2X3NhbXAoYjo6ZmxvYXQ0KSwgc3RkZGV2X3Nh bXAoYjo6ZmxvYXQ4KSwgc3RkZGV2X3NhbXAoYjo6aW50MiksIHN0ZGRldl9zYW1wKGI6OmludDQp LCBzdGRkZXZfc2FtcChiOjppbnQ4KSwgc3RkZGV2X3NhbXAoYjo6bnVtZXJpYyksCisgICAgc3Ry aW5nX2FnZyhjXzFjLCAnLCcpLCBzdHJpbmdfYWdnKGNfMWIsICcsJyksCisgICAgc3VtKGI6Omlu dDgpLCBzdW0oYjo6bnVtZXJpYyksCisgICAgdmFyaWFuY2UoYjo6ZmxvYXQ0KSwgdmFyaWFuY2Uo Yjo6ZmxvYXQ4KSwgdmFyaWFuY2UoYjo6aW50MiksIHZhcmlhbmNlKGI6OmludDQpLCB2YXJpYW5j ZShiOjppbnQ4KSwgdmFyaWFuY2UoYjo6bnVtZXJpYyksCisgICAgdmFyX3BvcChiOjpmbG9hdDQp LCB2YXJfcG9wKGI6OmZsb2F0OCksIHZhcl9wb3AoYjo6aW50MiksIHZhcl9wb3AoYjo6aW50NCks IHZhcl9wb3AoYjo6aW50OCksIHZhcl9wb3AoYjo6bnVtZXJpYyksCisgICAgdmFyX3NhbXAoYjo6 ZmxvYXQ0KSwgdmFyX3NhbXAoYjo6ZmxvYXQ4KSwgdmFyX3NhbXAoYjo6aW50MiksIHZhcl9zYW1w KGI6OmludDQpLCB2YXJfc2FtcChiOjppbnQ4KSwgdmFyX3NhbXAoYjo6bnVtZXJpYyksCisgICAg LyogYWdncmVnYXRlID0gcGFydGlhbCBhZ2dyZWdhdGUgKi8KKyAgICBhbnlfdmFsdWUoYiAqIDAp LAorICAgIGJpdF9hbmQoY19iaXQpLCBiaXRfYW5kKGNfMW9yM2ludDIpLCBiaXRfYW5kKGNfMW9y M2ludDQpLCBiaXRfYW5kKGNfMW9yM2ludDgpLAorICAgIGJpdF9vcihjX2JpdCksIGJpdF9vcihj XzFvcjNpbnQyKSwgYml0X29yKGNfMW9yM2ludDQpLCBiaXRfb3IoY18xb3IzaW50OCksCisgICAg Yml0X3hvcihjX2JpdCksIGJpdF94b3IoY18xb3IzaW50MiksIGJpdF94b3IoY18xb3IzaW50NCks IGJpdF94b3IoY18xb3IzaW50OCksCisgICAgYm9vbF9hbmQoY19ib29sKSwKKyAgICBib29sX29y KGNfYm9vbCksCisgICAgY291bnQoYiksIGNvdW50KCopLAorICAgIGV2ZXJ5KGNfYm9vbCksCisg ICAgbWF4KGNfaW50NGFycmF5KSwgbWF4KGNfZW51bSksIG1heChjXzFjOjpjaGFyKDEpKSwgbWF4 KCcyMDAwLTAxLTAxJzo6ZGF0ZSArIGIpLCBtYXgoJzAuMC4wLjAnOjppbmV0ICsgYiksIG1heChi OjpmbG9hdDQpLCBtYXgoYjo6ZmxvYXQ4KSwgbWF4KGI6OmludDIpLCBtYXgoYjo6aW50NCksIG1h eChiOjppbnQ4KSwgbWF4KGNfaW50ZXJ2YWwpLCBtYXgoY19tb25leSksIG1heChiOjpudW1lcmlj KSwgbWF4KGI6Om9pZCksIG1heChjX3BnX2xzbiksIG1heChjX3RpZCksIG1heChjXzFjKSwgbWF4 KGNfdGltZSksIG1heChjX3RpbWV0eiksIG1heChjX3RpbWVzdGFtcCksIG1heChjX3RpbWVzdGFt cHR6KSwgbWF4KGNfeGlkOCksCisgICAgbWluKGNfaW50NGFycmF5KSwgbWluKGNfZW51bSksIG1p bihjXzFjOjpjaGFyKDEpKSwgbWluKCcyMDAwLTAxLTAxJzo6ZGF0ZSArIGIpLCBtaW4oJzAuMC4w LjAnOjppbmV0ICsgYiksIG1pbihiOjpmbG9hdDQpLCBtaW4oYjo6ZmxvYXQ4KSwgbWluKGI6Omlu dDIpLCBtaW4oYjo6aW50NCksIG1pbihiOjppbnQ4KSwgbWluKGNfaW50ZXJ2YWwpLCBtaW4oY19t b25leSksIG1pbihiOjpudW1lcmljKSwgbWluKGI6Om9pZCksIG1pbihjX3BnX2xzbiksIG1pbihj X3RpZCksIG1pbihjXzFjKSwgbWluKGNfdGltZSksIG1pbihjX3RpbWV0eiksIG1pbihjX3RpbWVz dGFtcCksIG1pbihjX3RpbWVzdGFtcHR6KSwgbWluKGNfeGlkOCksCisgICAgcmFuZ2VfaW50ZXJz ZWN0X2FnZyhjX2ludDRyYW5nZSksIHJhbmdlX2ludGVyc2VjdF9hZ2coY19pbnQ0bXVsdGlyYW5n ZSksCisgICAgcmVncl9jb3VudCgoMiAqIGIgKyAzKTo6ZmxvYXQ4LCBiOjpmbG9hdDgpLAorICAg IHN1bShiOjpmbG9hdDQpLCBzdW0oYjo6ZmxvYXQ4KSwgc3VtKGI6OmludDIpLCBzdW0oYjo6aW50 NCksCXN1bShjX2ludGVydmFsKSwgc3VtKGNfbW9uZXkpCisgIEZST00gcGFnZ190YWIgV0hFUkUg Y19zZXJpYWwgYmV0d2VlbiAxIGFuZCAzMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBG aW5hbGl6ZSBBZ2dyZWdhdGUKKyAgIE91dHB1dDogYXJyYXlfYWdnKHBhZ2dfdGFiLmNfaW50NGFy cmF5KSwgYXJyYXlfYWdnKHBhZ2dfdGFiLmIpLCBhdmcoKHBhZ2dfdGFiLmIpOjpzbWFsbGludCks IGF2ZyhwYWdnX3RhYi5iKSwgYXZnKChwYWdnX3RhYi5iKTo6YmlnaW50KSwgYXZnKHBhZ2dfdGFi LmNfaW50ZXJ2YWwpLCBhdmcoKHBhZ2dfdGFiLmIpOjpyZWFsKSwgYXZnKChwYWdnX3RhYi5iKTo6 ZG91YmxlIHByZWNpc2lvbiksIGF2ZygocGFnZ190YWIuYik6Om51bWVyaWMpLCBjb3JyKChwYWdn X3RhYi5iKTo6ZG91YmxlIHByZWNpc2lvbiwgKChwYWdnX3RhYi5iICogcGFnZ190YWIuYikpOjpk b3VibGUgcHJlY2lzaW9uKSwgY292YXJfcG9wKChwYWdnX3RhYi5iKTo6ZG91YmxlIHByZWNpc2lv biwgKChwYWdnX3RhYi5iICogcGFnZ190YWIuYikpOjpkb3VibGUgcHJlY2lzaW9uKSwgY292YXJf c2FtcCgocGFnZ190YWIuYik6OmRvdWJsZSBwcmVjaXNpb24sICgocGFnZ190YWIuYiAqIHBhZ2df dGFiLmIpKTo6ZG91YmxlIHByZWNpc2lvbiksIHJlZ3JfYXZneCgoKDIgKiBwYWdnX3RhYi5iKSk6 OmRvdWJsZSBwcmVjaXNpb24sIChwYWdnX3RhYi5iKTo6ZG91YmxlIHByZWNpc2lvbiksIHJlZ3Jf YXZneSgoKDIgKiBwYWdnX3RhYi5iKSk6OmRvdWJsZSBwcmVjaXNpb24sIChwYWdnX3RhYi5iKTo6 ZG91YmxlIHByZWNpc2lvbiksIHJlZ3JfaW50ZXJjZXB0KCgoKDIgKiBwYWdnX3RhYi5iKSArIDMp KTo6ZG91YmxlIHByZWNpc2lvbiwgKHBhZ2dfdGFiLmIpOjpkb3VibGUgcHJlY2lzaW9uKSwgcmVn cl9yMigoKHBhZ2dfdGFiLmIgKiBwYWdnX3RhYi5iKSk6OmRvdWJsZSBwcmVjaXNpb24sIChwYWdn X3RhYi5iKTo6ZG91YmxlIHByZWNpc2lvbiksIHJlZ3Jfc2xvcGUoKCgoMiAqIHBhZ2dfdGFiLmIp ICsgMykpOjpkb3VibGUgcHJlY2lzaW9uLCAocGFnZ190YWIuYik6OmRvdWJsZSBwcmVjaXNpb24p LCByZWdyX3N4eCgoKCgyICogcGFnZ190YWIuYikgKyAzKSk6OmRvdWJsZSBwcmVjaXNpb24sIChw YWdnX3RhYi5iKTo6ZG91YmxlIHByZWNpc2lvbiksIHJlZ3Jfc3h5KCgocGFnZ190YWIuYiAqIHBh Z2dfdGFiLmIpKTo6ZG91YmxlIHByZWNpc2lvbiwgKHBhZ2dfdGFiLmIpOjpkb3VibGUgcHJlY2lz aW9uKSwgcmVncl9zeXkoKCgoMiAqIHBhZ2dfdGFiLmIpICsgMykpOjpkb3VibGUgcHJlY2lzaW9u LCAocGFnZ190YWIuYik6OmRvdWJsZSBwcmVjaXNpb24pLCBzdGRkZXYoKHBhZ2dfdGFiLmIpOjpy ZWFsKSwgc3RkZGV2KChwYWdnX3RhYi5iKTo6ZG91YmxlIHByZWNpc2lvbiksIHN0ZGRldigocGFn Z190YWIuYik6OnNtYWxsaW50KSwgc3RkZGV2KHBhZ2dfdGFiLmIpLCBzdGRkZXYoKHBhZ2dfdGFi LmIpOjpiaWdpbnQpLCBzdGRkZXYoKHBhZ2dfdGFiLmIpOjpudW1lcmljKSwgc3RkZGV2X3BvcCgo cGFnZ190YWIuYik6OnJlYWwpLCBzdGRkZXZfcG9wKChwYWdnX3RhYi5iKTo6ZG91YmxlIHByZWNp c2lvbiksIHN0ZGRldl9wb3AoKHBhZ2dfdGFiLmIpOjpzbWFsbGludCksIHN0ZGRldl9wb3AocGFn Z190YWIuYiksIHN0ZGRldl9wb3AoKHBhZ2dfdGFiLmIpOjpiaWdpbnQpLCBzdGRkZXZfcG9wKChw YWdnX3RhYi5iKTo6bnVtZXJpYyksIHN0ZGRldl9zYW1wKChwYWdnX3RhYi5iKTo6cmVhbCksIHN0 ZGRldl9zYW1wKChwYWdnX3RhYi5iKTo6ZG91YmxlIHByZWNpc2lvbiksIHN0ZGRldl9zYW1wKChw YWdnX3RhYi5iKTo6c21hbGxpbnQpLCBzdGRkZXZfc2FtcChwYWdnX3RhYi5iKSwgc3RkZGV2X3Nh bXAoKHBhZ2dfdGFiLmIpOjpiaWdpbnQpLCBzdGRkZXZfc2FtcCgocGFnZ190YWIuYik6Om51bWVy aWMpLCBzdHJpbmdfYWdnKHBhZ2dfdGFiLmNfMWMsICcsJzo6dGV4dCksIHN0cmluZ19hZ2cocGFn Z190YWIuY18xYiwgJ1x4MmMnOjpieXRlYSksIHN1bSgocGFnZ190YWIuYik6OmJpZ2ludCksIHN1 bSgocGFnZ190YWIuYik6Om51bWVyaWMpLCB2YXJpYW5jZSgocGFnZ190YWIuYik6OnJlYWwpLCB2 YXJpYW5jZSgocGFnZ190YWIuYik6OmRvdWJsZSBwcmVjaXNpb24pLCB2YXJpYW5jZSgocGFnZ190 YWIuYik6OnNtYWxsaW50KSwgdmFyaWFuY2UocGFnZ190YWIuYiksIHZhcmlhbmNlKChwYWdnX3Rh Yi5iKTo6YmlnaW50KSwgdmFyaWFuY2UoKHBhZ2dfdGFiLmIpOjpudW1lcmljKSwgdmFyX3BvcCgo cGFnZ190YWIuYik6OnJlYWwpLCB2YXJfcG9wKChwYWdnX3RhYi5iKTo6ZG91YmxlIHByZWNpc2lv biksIHZhcl9wb3AoKHBhZ2dfdGFiLmIpOjpzbWFsbGludCksIHZhcl9wb3AocGFnZ190YWIuYiks IHZhcl9wb3AoKHBhZ2dfdGFiLmIpOjpiaWdpbnQpLCB2YXJfcG9wKChwYWdnX3RhYi5iKTo6bnVt ZXJpYyksIHZhcl9zYW1wKChwYWdnX3RhYi5iKTo6cmVhbCksIHZhcl9zYW1wKChwYWdnX3RhYi5i KTo6ZG91YmxlIHByZWNpc2lvbiksIHZhcl9zYW1wKChwYWdnX3RhYi5iKTo6c21hbGxpbnQpLCB2 YXJfc2FtcChwYWdnX3RhYi5iKSwgdmFyX3NhbXAoKHBhZ2dfdGFiLmIpOjpiaWdpbnQpLCB2YXJf c2FtcCgocGFnZ190YWIuYik6Om51bWVyaWMpLCBhbnlfdmFsdWUoKHBhZ2dfdGFiLmIgKiAwKSks IGJpdF9hbmQocGFnZ190YWIuY19iaXQpLCBiaXRfYW5kKHBhZ2dfdGFiLmNfMW9yM2ludDIpLCBi aXRfYW5kKHBhZ2dfdGFiLmNfMW9yM2ludDQpLCBiaXRfYW5kKHBhZ2dfdGFiLmNfMW9yM2ludDgp LCBiaXRfb3IocGFnZ190YWIuY19iaXQpLCBiaXRfb3IocGFnZ190YWIuY18xb3IzaW50MiksIGJp dF9vcihwYWdnX3RhYi5jXzFvcjNpbnQ0KSwgYml0X29yKHBhZ2dfdGFiLmNfMW9yM2ludDgpLCBi aXRfeG9yKHBhZ2dfdGFiLmNfYml0KSwgYml0X3hvcihwYWdnX3RhYi5jXzFvcjNpbnQyKSwgYml0 X3hvcihwYWdnX3RhYi5jXzFvcjNpbnQ0KSwgYml0X3hvcihwYWdnX3RhYi5jXzFvcjNpbnQ4KSwg Ym9vbF9hbmQocGFnZ190YWIuY19ib29sKSwgYm9vbF9vcihwYWdnX3RhYi5jX2Jvb2wpLCBjb3Vu dChwYWdnX3RhYi5iKSwgY291bnQoKiksIGV2ZXJ5KHBhZ2dfdGFiLmNfYm9vbCksIG1heChwYWdn X3RhYi5jX2ludDRhcnJheSksIG1heChwYWdnX3RhYi5jX2VudW0pLCBtYXgoKHBhZ2dfdGFiLmNf MWMpOjpjaGFyYWN0ZXIoMSkpLCBtYXgoKCcwMS0wMS0yMDAwJzo6ZGF0ZSArIHBhZ2dfdGFiLmIp KSwgbWF4KCgnMC4wLjAuMCc6OmluZXQgKyAocGFnZ190YWIuYik6OmJpZ2ludCkpLCBtYXgoKHBh Z2dfdGFiLmIpOjpyZWFsKSwgbWF4KChwYWdnX3RhYi5iKTo6ZG91YmxlIHByZWNpc2lvbiksIG1h eCgocGFnZ190YWIuYik6OnNtYWxsaW50KSwgbWF4KHBhZ2dfdGFiLmIpLCBtYXgoKHBhZ2dfdGFi LmIpOjpiaWdpbnQpLCBtYXgocGFnZ190YWIuY19pbnRlcnZhbCksIG1heChwYWdnX3RhYi5jX21v bmV5KSwgbWF4KChwYWdnX3RhYi5iKTo6bnVtZXJpYyksIG1heCgocGFnZ190YWIuYik6Om9pZCks IG1heChwYWdnX3RhYi5jX3BnX2xzbiksIG1heChwYWdnX3RhYi5jX3RpZCksIG1heChwYWdnX3Rh Yi5jXzFjKSwgbWF4KHBhZ2dfdGFiLmNfdGltZSksIG1heChwYWdnX3RhYi5jX3RpbWV0eiksIG1h eChwYWdnX3RhYi5jX3RpbWVzdGFtcCksIG1heChwYWdnX3RhYi5jX3RpbWVzdGFtcHR6KSwgbWF4 KHBhZ2dfdGFiLmNfeGlkOCksIG1pbihwYWdnX3RhYi5jX2ludDRhcnJheSksIG1pbihwYWdnX3Rh Yi5jX2VudW0pLCBtaW4oKHBhZ2dfdGFiLmNfMWMpOjpjaGFyYWN0ZXIoMSkpLCBtaW4oKCcwMS0w MS0yMDAwJzo6ZGF0ZSArIHBhZ2dfdGFiLmIpKSwgbWluKCgnMC4wLjAuMCc6OmluZXQgKyAocGFn Z190YWIuYik6OmJpZ2ludCkpLCBtaW4oKHBhZ2dfdGFiLmIpOjpyZWFsKSwgbWluKChwYWdnX3Rh Yi5iKTo6ZG91YmxlIHByZWNpc2lvbiksIG1pbigocGFnZ190YWIuYik6OnNtYWxsaW50KSwgbWlu KHBhZ2dfdGFiLmIpLCBtaW4oKHBhZ2dfdGFiLmIpOjpiaWdpbnQpLCBtaW4ocGFnZ190YWIuY19p bnRlcnZhbCksIG1pbihwYWdnX3RhYi5jX21vbmV5KSwgbWluKChwYWdnX3RhYi5iKTo6bnVtZXJp YyksIG1pbigocGFnZ190YWIuYik6Om9pZCksIG1pbihwYWdnX3RhYi5jX3BnX2xzbiksIG1pbihw YWdnX3RhYi5jX3RpZCksIG1pbihwYWdnX3RhYi5jXzFjKSwgbWluKHBhZ2dfdGFiLmNfdGltZSks IG1pbihwYWdnX3RhYi5jX3RpbWV0eiksIG1pbihwYWdnX3RhYi5jX3RpbWVzdGFtcCksIG1pbihw YWdnX3RhYi5jX3RpbWVzdGFtcHR6KSwgbWluKHBhZ2dfdGFiLmNfeGlkOCksIHJhbmdlX2ludGVy c2VjdF9hZ2cocGFnZ190YWIuY19pbnQ0cmFuZ2UpLCByYW5nZV9pbnRlcnNlY3RfYWdnKHBhZ2df dGFiLmNfaW50NG11bHRpcmFuZ2UpLCByZWdyX2NvdW50KCgoKDIgKiBwYWdnX3RhYi5iKSArIDMp KTo6ZG91YmxlIHByZWNpc2lvbiwgKHBhZ2dfdGFiLmIpOjpkb3VibGUgcHJlY2lzaW9uKSwgc3Vt KChwYWdnX3RhYi5iKTo6cmVhbCksIHN1bSgocGFnZ190YWIuYik6OmRvdWJsZSBwcmVjaXNpb24p LCBzdW0oKHBhZ2dfdGFiLmIpOjpzbWFsbGludCksIHN1bShwYWdnX3RhYi5iKSwgc3VtKHBhZ2df dGFiLmNfaW50ZXJ2YWwpLCBzdW0ocGFnZ190YWIuY19tb25leSkKKyAgIC0+ICBBcHBlbmQKKyAg ICAgICAgIC0+ICBGb3JlaWduIFNjYW4KKyAgICAgICAgICAgICAgIE91dHB1dDogKFBBUlRJQUwg YXJyYXlfYWdnKHBhZ2dfdGFiLmNfaW50NGFycmF5KSksIChQQVJUSUFMIGFycmF5X2FnZyhwYWdn X3RhYi5iKSksIChQQVJUSUFMIGF2ZygocGFnZ190YWIuYik6OnNtYWxsaW50KSksIChQQVJUSUFM IGF2ZyhwYWdnX3RhYi5iKSksIChQQVJUSUFMIGF2ZygocGFnZ190YWIuYik6OmJpZ2ludCkpLCAo UEFSVElBTCBhdmcocGFnZ190YWIuY19pbnRlcnZhbCkpLCAoUEFSVElBTCBhdmcoKHBhZ2dfdGFi LmIpOjpyZWFsKSksIChQQVJUSUFMIGF2ZygocGFnZ190YWIuYik6OmRvdWJsZSBwcmVjaXNpb24p KSwgKFBBUlRJQUwgYXZnKChwYWdnX3RhYi5iKTo6bnVtZXJpYykpLCAoUEFSVElBTCBjb3JyKChw YWdnX3RhYi5iKTo6ZG91YmxlIHByZWNpc2lvbiwgKChwYWdnX3RhYi5iICogcGFnZ190YWIuYikp Ojpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIGNvdmFyX3BvcCgocGFnZ190YWIuYik6OmRv dWJsZSBwcmVjaXNpb24sICgocGFnZ190YWIuYiAqIHBhZ2dfdGFiLmIpKTo6ZG91YmxlIHByZWNp c2lvbikpLCAoUEFSVElBTCBjb3Zhcl9zYW1wKChwYWdnX3RhYi5iKTo6ZG91YmxlIHByZWNpc2lv biwgKChwYWdnX3RhYi5iICogcGFnZ190YWIuYikpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJU SUFMIHJlZ3JfYXZneCgoKDIgKiBwYWdnX3RhYi5iKSk6OmRvdWJsZSBwcmVjaXNpb24sIChwYWdn X3RhYi5iKTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCByZWdyX2F2Z3koKCgyICogcGFn Z190YWIuYikpOjpkb3VibGUgcHJlY2lzaW9uLCAocGFnZ190YWIuYik6OmRvdWJsZSBwcmVjaXNp b24pKSwgKFBBUlRJQUwgcmVncl9pbnRlcmNlcHQoKCgoMiAqIHBhZ2dfdGFiLmIpICsgMykpOjpk b3VibGUgcHJlY2lzaW9uLCAocGFnZ190YWIuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJ QUwgcmVncl9yMigoKHBhZ2dfdGFiLmIgKiBwYWdnX3RhYi5iKSk6OmRvdWJsZSBwcmVjaXNpb24s IChwYWdnX3RhYi5iKTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCByZWdyX3Nsb3BlKCgo KDIgKiBwYWdnX3RhYi5iKSArIDMpKTo6ZG91YmxlIHByZWNpc2lvbiwgKHBhZ2dfdGFiLmIpOjpk b3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIHJlZ3Jfc3h4KCgoKDIgKiBwYWdnX3RhYi5iKSAr IDMpKTo6ZG91YmxlIHByZWNpc2lvbiwgKHBhZ2dfdGFiLmIpOjpkb3VibGUgcHJlY2lzaW9uKSks IChQQVJUSUFMIHJlZ3Jfc3h5KCgocGFnZ190YWIuYiAqIHBhZ2dfdGFiLmIpKTo6ZG91YmxlIHBy ZWNpc2lvbiwgKHBhZ2dfdGFiLmIpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIHJlZ3Jf c3l5KCgoKDIgKiBwYWdnX3RhYi5iKSArIDMpKTo6ZG91YmxlIHByZWNpc2lvbiwgKHBhZ2dfdGFi LmIpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIHN0ZGRldigocGFnZ190YWIuYik6OnJl YWwpKSwgKFBBUlRJQUwgc3RkZGV2KChwYWdnX3RhYi5iKTo6ZG91YmxlIHByZWNpc2lvbikpLCAo UEFSVElBTCBzdGRkZXYoKHBhZ2dfdGFiLmIpOjpzbWFsbGludCkpLCAoUEFSVElBTCBzdGRkZXYo cGFnZ190YWIuYikpLCAoUEFSVElBTCBzdGRkZXYoKHBhZ2dfdGFiLmIpOjpiaWdpbnQpKSwgKFBB UlRJQUwgc3RkZGV2KChwYWdnX3RhYi5iKTo6bnVtZXJpYykpLCAoUEFSVElBTCBzdGRkZXZfcG9w KChwYWdnX3RhYi5iKTo6cmVhbCkpLCAoUEFSVElBTCBzdGRkZXZfcG9wKChwYWdnX3RhYi5iKTo6 ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCBzdGRkZXZfcG9wKChwYWdnX3RhYi5iKTo6c21h bGxpbnQpKSwgKFBBUlRJQUwgc3RkZGV2X3BvcChwYWdnX3RhYi5iKSksIChQQVJUSUFMIHN0ZGRl dl9wb3AoKHBhZ2dfdGFiLmIpOjpiaWdpbnQpKSwgKFBBUlRJQUwgc3RkZGV2X3BvcCgocGFnZ190 YWIuYik6Om51bWVyaWMpKSwgKFBBUlRJQUwgc3RkZGV2X3NhbXAoKHBhZ2dfdGFiLmIpOjpyZWFs KSksIChQQVJUSUFMIHN0ZGRldl9zYW1wKChwYWdnX3RhYi5iKTo6ZG91YmxlIHByZWNpc2lvbikp LCAoUEFSVElBTCBzdGRkZXZfc2FtcCgocGFnZ190YWIuYik6OnNtYWxsaW50KSksIChQQVJUSUFM IHN0ZGRldl9zYW1wKHBhZ2dfdGFiLmIpKSwgKFBBUlRJQUwgc3RkZGV2X3NhbXAoKHBhZ2dfdGFi LmIpOjpiaWdpbnQpKSwgKFBBUlRJQUwgc3RkZGV2X3NhbXAoKHBhZ2dfdGFiLmIpOjpudW1lcmlj KSksIChQQVJUSUFMIHN0cmluZ19hZ2cocGFnZ190YWIuY18xYywgJywnOjp0ZXh0KSksIChQQVJU SUFMIHN0cmluZ19hZ2cocGFnZ190YWIuY18xYiwgJ1x4MmMnOjpieXRlYSkpLCAoUEFSVElBTCBz dW0oKHBhZ2dfdGFiLmIpOjpiaWdpbnQpKSwgKFBBUlRJQUwgc3VtKChwYWdnX3RhYi5iKTo6bnVt ZXJpYykpLCAoUEFSVElBTCB2YXJpYW5jZSgocGFnZ190YWIuYik6OnJlYWwpKSwgKFBBUlRJQUwg dmFyaWFuY2UoKHBhZ2dfdGFiLmIpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIHZhcmlh bmNlKChwYWdnX3RhYi5iKTo6c21hbGxpbnQpKSwgKFBBUlRJQUwgdmFyaWFuY2UocGFnZ190YWIu YikpLCAoUEFSVElBTCB2YXJpYW5jZSgocGFnZ190YWIuYik6OmJpZ2ludCkpLCAoUEFSVElBTCB2 YXJpYW5jZSgocGFnZ190YWIuYik6Om51bWVyaWMpKSwgKFBBUlRJQUwgdmFyX3BvcCgocGFnZ190 YWIuYik6OnJlYWwpKSwgKFBBUlRJQUwgdmFyX3BvcCgocGFnZ190YWIuYik6OmRvdWJsZSBwcmVj aXNpb24pKSwgKFBBUlRJQUwgdmFyX3BvcCgocGFnZ190YWIuYik6OnNtYWxsaW50KSksIChQQVJU SUFMIHZhcl9wb3AocGFnZ190YWIuYikpLCAoUEFSVElBTCB2YXJfcG9wKChwYWdnX3RhYi5iKTo6 YmlnaW50KSksIChQQVJUSUFMIHZhcl9wb3AoKHBhZ2dfdGFiLmIpOjpudW1lcmljKSksIChQQVJU SUFMIHZhcl9zYW1wKChwYWdnX3RhYi5iKTo6cmVhbCkpLCAoUEFSVElBTCB2YXJfc2FtcCgocGFn Z190YWIuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgdmFyX3NhbXAoKHBhZ2dfdGFi LmIpOjpzbWFsbGludCkpLCAoUEFSVElBTCB2YXJfc2FtcChwYWdnX3RhYi5iKSksIChQQVJUSUFM IHZhcl9zYW1wKChwYWdnX3RhYi5iKTo6YmlnaW50KSksIChQQVJUSUFMIHZhcl9zYW1wKChwYWdn X3RhYi5iKTo6bnVtZXJpYykpLCAoUEFSVElBTCBhbnlfdmFsdWUoKHBhZ2dfdGFiLmIgKiAwKSkp LCAoUEFSVElBTCBiaXRfYW5kKHBhZ2dfdGFiLmNfYml0KSksIChQQVJUSUFMIGJpdF9hbmQocGFn Z190YWIuY18xb3IzaW50MikpLCAoUEFSVElBTCBiaXRfYW5kKHBhZ2dfdGFiLmNfMW9yM2ludDQp KSwgKFBBUlRJQUwgYml0X2FuZChwYWdnX3RhYi5jXzFvcjNpbnQ4KSksIChQQVJUSUFMIGJpdF9v cihwYWdnX3RhYi5jX2JpdCkpLCAoUEFSVElBTCBiaXRfb3IocGFnZ190YWIuY18xb3IzaW50Mikp LCAoUEFSVElBTCBiaXRfb3IocGFnZ190YWIuY18xb3IzaW50NCkpLCAoUEFSVElBTCBiaXRfb3Io cGFnZ190YWIuY18xb3IzaW50OCkpLCAoUEFSVElBTCBiaXRfeG9yKHBhZ2dfdGFiLmNfYml0KSks IChQQVJUSUFMIGJpdF94b3IocGFnZ190YWIuY18xb3IzaW50MikpLCAoUEFSVElBTCBiaXRfeG9y KHBhZ2dfdGFiLmNfMW9yM2ludDQpKSwgKFBBUlRJQUwgYml0X3hvcihwYWdnX3RhYi5jXzFvcjNp bnQ4KSksIChQQVJUSUFMIGJvb2xfYW5kKHBhZ2dfdGFiLmNfYm9vbCkpLCAoUEFSVElBTCBib29s X29yKHBhZ2dfdGFiLmNfYm9vbCkpLCAoUEFSVElBTCBjb3VudChwYWdnX3RhYi5iKSksIChQQVJU SUFMIGNvdW50KCopKSwgKFBBUlRJQUwgZXZlcnkocGFnZ190YWIuY19ib29sKSksIChQQVJUSUFM IG1heChwYWdnX3RhYi5jX2ludDRhcnJheSkpLCAoUEFSVElBTCBtYXgocGFnZ190YWIuY19lbnVt KSksIChQQVJUSUFMIG1heCgocGFnZ190YWIuY18xYyk6OmNoYXJhY3RlcigxKSkpLCAoUEFSVElB TCBtYXgoKCcwMS0wMS0yMDAwJzo6ZGF0ZSArIHBhZ2dfdGFiLmIpKSksIChQQVJUSUFMIG1heCgo JzAuMC4wLjAnOjppbmV0ICsgKHBhZ2dfdGFiLmIpOjpiaWdpbnQpKSksIChQQVJUSUFMIG1heCgo cGFnZ190YWIuYik6OnJlYWwpKSwgKFBBUlRJQUwgbWF4KChwYWdnX3RhYi5iKTo6ZG91YmxlIHBy ZWNpc2lvbikpLCAoUEFSVElBTCBtYXgoKHBhZ2dfdGFiLmIpOjpzbWFsbGludCkpLCAoUEFSVElB TCBtYXgocGFnZ190YWIuYikpLCAoUEFSVElBTCBtYXgoKHBhZ2dfdGFiLmIpOjpiaWdpbnQpKSwg KFBBUlRJQUwgbWF4KHBhZ2dfdGFiLmNfaW50ZXJ2YWwpKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFi LmNfbW9uZXkpKSwgKFBBUlRJQUwgbWF4KChwYWdnX3RhYi5iKTo6bnVtZXJpYykpLCAoUEFSVElB TCBtYXgoKHBhZ2dfdGFiLmIpOjpvaWQpKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiLmNfcGdfbHNu KSksIChQQVJUSUFMIG1heChwYWdnX3RhYi5jX3RpZCkpLCAoUEFSVElBTCBtYXgocGFnZ190YWIu Y18xYykpLCAoUEFSVElBTCBtYXgocGFnZ190YWIuY190aW1lKSksIChQQVJUSUFMIG1heChwYWdn X3RhYi5jX3RpbWV0eikpLCAoUEFSVElBTCBtYXgocGFnZ190YWIuY190aW1lc3RhbXApKSwgKFBB UlRJQUwgbWF4KHBhZ2dfdGFiLmNfdGltZXN0YW1wdHopKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFi LmNfeGlkOCkpLCAoUEFSVElBTCBtaW4ocGFnZ190YWIuY19pbnQ0YXJyYXkpKSwgKFBBUlRJQUwg bWluKHBhZ2dfdGFiLmNfZW51bSkpLCAoUEFSVElBTCBtaW4oKHBhZ2dfdGFiLmNfMWMpOjpjaGFy YWN0ZXIoMSkpKSwgKFBBUlRJQUwgbWluKCgnMDEtMDEtMjAwMCc6OmRhdGUgKyBwYWdnX3RhYi5i KSkpLCAoUEFSVElBTCBtaW4oKCcwLjAuMC4wJzo6aW5ldCArIChwYWdnX3RhYi5iKTo6YmlnaW50 KSkpLCAoUEFSVElBTCBtaW4oKHBhZ2dfdGFiLmIpOjpyZWFsKSksIChQQVJUSUFMIG1pbigocGFn Z190YWIuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgbWluKChwYWdnX3RhYi5iKTo6 c21hbGxpbnQpKSwgKFBBUlRJQUwgbWluKHBhZ2dfdGFiLmIpKSwgKFBBUlRJQUwgbWluKChwYWdn X3RhYi5iKTo6YmlnaW50KSksIChQQVJUSUFMIG1pbihwYWdnX3RhYi5jX2ludGVydmFsKSksIChQ QVJUSUFMIG1pbihwYWdnX3RhYi5jX21vbmV5KSksIChQQVJUSUFMIG1pbigocGFnZ190YWIuYik6 Om51bWVyaWMpKSwgKFBBUlRJQUwgbWluKChwYWdnX3RhYi5iKTo6b2lkKSksIChQQVJUSUFMIG1p bihwYWdnX3RhYi5jX3BnX2xzbikpLCAoUEFSVElBTCBtaW4ocGFnZ190YWIuY190aWQpKSwgKFBB UlRJQUwgbWluKHBhZ2dfdGFiLmNfMWMpKSwgKFBBUlRJQUwgbWluKHBhZ2dfdGFiLmNfdGltZSkp LCAoUEFSVElBTCBtaW4ocGFnZ190YWIuY190aW1ldHopKSwgKFBBUlRJQUwgbWluKHBhZ2dfdGFi LmNfdGltZXN0YW1wKSksIChQQVJUSUFMIG1pbihwYWdnX3RhYi5jX3RpbWVzdGFtcHR6KSksIChQ QVJUSUFMIG1pbihwYWdnX3RhYi5jX3hpZDgpKSwgKFBBUlRJQUwgcmFuZ2VfaW50ZXJzZWN0X2Fn ZyhwYWdnX3RhYi5jX2ludDRyYW5nZSkpLCAoUEFSVElBTCByYW5nZV9pbnRlcnNlY3RfYWdnKHBh Z2dfdGFiLmNfaW50NG11bHRpcmFuZ2UpKSwgKFBBUlRJQUwgcmVncl9jb3VudCgoKCgyICogcGFn Z190YWIuYikgKyAzKSk6OmRvdWJsZSBwcmVjaXNpb24sIChwYWdnX3RhYi5iKTo6ZG91YmxlIHBy ZWNpc2lvbikpLCAoUEFSVElBTCBzdW0oKHBhZ2dfdGFiLmIpOjpyZWFsKSksIChQQVJUSUFMIHN1 bSgocGFnZ190YWIuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgc3VtKChwYWdnX3Rh Yi5iKTo6c21hbGxpbnQpKSwgKFBBUlRJQUwgc3VtKHBhZ2dfdGFiLmIpKSwgKFBBUlRJQUwgc3Vt KHBhZ2dfdGFiLmNfaW50ZXJ2YWwpKSwgKFBBUlRJQUwgc3VtKHBhZ2dfdGFiLmNfbW9uZXkpKQor ICAgICAgICAgICAgICAgUmVsYXRpb25zOiBBZ2dyZWdhdGUgb24gKHB1YmxpYy5mcGFnZ190YWJf cDEgcGFnZ190YWIpCisgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYXJyYXlfYWdn KFBBUlRJQUxfQUdHUkVHQVRFIGNfaW50NGFycmF5KSwgYXJyYXlfYWdnKFBBUlRJQUxfQUdHUkVH QVRFIGIpLCBhdmcoUEFSVElBTF9BR0dSRUdBVEUgYjo6c21hbGxpbnQpLCBhdmcoUEFSVElBTF9B R0dSRUdBVEUgYiksIGF2ZyhQQVJUSUFMX0FHR1JFR0FURSBiOjpiaWdpbnQpLCBhdmcoUEFSVElB TF9BR0dSRUdBVEUgY19pbnRlcnZhbCksIGF2ZyhQQVJUSUFMX0FHR1JFR0FURSBiOjpyZWFsKSwg YXZnKFBBUlRJQUxfQUdHUkVHQVRFIGI6OmRvdWJsZSBwcmVjaXNpb24pLCBhdmcoUEFSVElBTF9B R0dSRUdBVEUgYjo6bnVtZXJpYyksIGNvcnIoUEFSVElBTF9BR0dSRUdBVEUgYjo6ZG91YmxlIHBy ZWNpc2lvbiwgKGIgKiBiKTo6ZG91YmxlIHByZWNpc2lvbiksIGNvdmFyX3BvcChQQVJUSUFMX0FH R1JFR0FURSBiOjpkb3VibGUgcHJlY2lzaW9uLCAoYiAqIGIpOjpkb3VibGUgcHJlY2lzaW9uKSwg Y292YXJfc2FtcChQQVJUSUFMX0FHR1JFR0FURSBiOjpkb3VibGUgcHJlY2lzaW9uLCAoYiAqIGIp Ojpkb3VibGUgcHJlY2lzaW9uKSwgcmVncl9hdmd4KFBBUlRJQUxfQUdHUkVHQVRFICgyICogYik6 OmRvdWJsZSBwcmVjaXNpb24sIGI6OmRvdWJsZSBwcmVjaXNpb24pLCByZWdyX2F2Z3koUEFSVElB TF9BR0dSRUdBVEUgKDIgKiBiKTo6ZG91YmxlIHByZWNpc2lvbiwgYjo6ZG91YmxlIHByZWNpc2lv biksIHJlZ3JfaW50ZXJjZXB0KFBBUlRJQUxfQUdHUkVHQVRFICgoMiAqIGIpICsgMyk6OmRvdWJs ZSBwcmVjaXNpb24sIGI6OmRvdWJsZSBwcmVjaXNpb24pLCByZWdyX3IyKFBBUlRJQUxfQUdHUkVH QVRFIChiICogYik6OmRvdWJsZSBwcmVjaXNpb24sIGI6OmRvdWJsZSBwcmVjaXNpb24pLCByZWdy X3Nsb3BlKFBBUlRJQUxfQUdHUkVHQVRFICgoMiAqIGIpICsgMyk6OmRvdWJsZSBwcmVjaXNpb24s IGI6OmRvdWJsZSBwcmVjaXNpb24pLCByZWdyX3N4eChQQVJUSUFMX0FHR1JFR0FURSAoKDIgKiBi KSArIDMpOjpkb3VibGUgcHJlY2lzaW9uLCBiOjpkb3VibGUgcHJlY2lzaW9uKSwgcmVncl9zeHko UEFSVElBTF9BR0dSRUdBVEUgKGIgKiBiKTo6ZG91YmxlIHByZWNpc2lvbiwgYjo6ZG91YmxlIHBy ZWNpc2lvbiksIHJlZ3Jfc3l5KFBBUlRJQUxfQUdHUkVHQVRFICgoMiAqIGIpICsgMyk6OmRvdWJs ZSBwcmVjaXNpb24sIGI6OmRvdWJsZSBwcmVjaXNpb24pLCBzdGRkZXYoUEFSVElBTF9BR0dSRUdB VEUgYjo6cmVhbCksIHN0ZGRldihQQVJUSUFMX0FHR1JFR0FURSBiOjpkb3VibGUgcHJlY2lzaW9u KSwgc3RkZGV2KFBBUlRJQUxfQUdHUkVHQVRFIGI6OnNtYWxsaW50KSwgc3RkZGV2KFBBUlRJQUxf QUdHUkVHQVRFIGIpLCBzdGRkZXYoUEFSVElBTF9BR0dSRUdBVEUgYjo6YmlnaW50KSwgc3RkZGV2 KFBBUlRJQUxfQUdHUkVHQVRFIGI6Om51bWVyaWMpLCBzdGRkZXZfcG9wKFBBUlRJQUxfQUdHUkVH QVRFIGI6OnJlYWwpLCBzdGRkZXZfcG9wKFBBUlRJQUxfQUdHUkVHQVRFIGI6OmRvdWJsZSBwcmVj aXNpb24pLCBzdGRkZXZfcG9wKFBBUlRJQUxfQUdHUkVHQVRFIGI6OnNtYWxsaW50KSwgc3RkZGV2 X3BvcChQQVJUSUFMX0FHR1JFR0FURSBiKSwgc3RkZGV2X3BvcChQQVJUSUFMX0FHR1JFR0FURSBi OjpiaWdpbnQpLCBzdGRkZXZfcG9wKFBBUlRJQUxfQUdHUkVHQVRFIGI6Om51bWVyaWMpLCBzdGRk ZXZfc2FtcChQQVJUSUFMX0FHR1JFR0FURSBiOjpyZWFsKSwgc3RkZGV2X3NhbXAoUEFSVElBTF9B R0dSRUdBVEUgYjo6ZG91YmxlIHByZWNpc2lvbiksIHN0ZGRldl9zYW1wKFBBUlRJQUxfQUdHUkVH QVRFIGI6OnNtYWxsaW50KSwgc3RkZGV2X3NhbXAoUEFSVElBTF9BR0dSRUdBVEUgYiksIHN0ZGRl dl9zYW1wKFBBUlRJQUxfQUdHUkVHQVRFIGI6OmJpZ2ludCksIHN0ZGRldl9zYW1wKFBBUlRJQUxf QUdHUkVHQVRFIGI6Om51bWVyaWMpLCBzdHJpbmdfYWdnKFBBUlRJQUxfQUdHUkVHQVRFIGNfMWMs ICcsJzo6dGV4dCksIHN0cmluZ19hZ2coUEFSVElBTF9BR0dSRUdBVEUgY18xYiwgRSdcXHgyYyc6 OmJ5dGVhKSwgc3VtKFBBUlRJQUxfQUdHUkVHQVRFIGI6OmJpZ2ludCksIHN1bShQQVJUSUFMX0FH R1JFR0FURSBiOjpudW1lcmljKSwgdmFyaWFuY2UoUEFSVElBTF9BR0dSRUdBVEUgYjo6cmVhbCks IHZhcmlhbmNlKFBBUlRJQUxfQUdHUkVHQVRFIGI6OmRvdWJsZSBwcmVjaXNpb24pLCB2YXJpYW5j ZShQQVJUSUFMX0FHR1JFR0FURSBiOjpzbWFsbGludCksIHZhcmlhbmNlKFBBUlRJQUxfQUdHUkVH QVRFIGIpLCB2YXJpYW5jZShQQVJUSUFMX0FHR1JFR0FURSBiOjpiaWdpbnQpLCB2YXJpYW5jZShQ QVJUSUFMX0FHR1JFR0FURSBiOjpudW1lcmljKSwgdmFyX3BvcChQQVJUSUFMX0FHR1JFR0FURSBi OjpyZWFsKSwgdmFyX3BvcChQQVJUSUFMX0FHR1JFR0FURSBiOjpkb3VibGUgcHJlY2lzaW9uKSwg dmFyX3BvcChQQVJUSUFMX0FHR1JFR0FURSBiOjpzbWFsbGludCksIHZhcl9wb3AoUEFSVElBTF9B R0dSRUdBVEUgYiksIHZhcl9wb3AoUEFSVElBTF9BR0dSRUdBVEUgYjo6YmlnaW50KSwgdmFyX3Bv cChQQVJUSUFMX0FHR1JFR0FURSBiOjpudW1lcmljKSwgdmFyX3NhbXAoUEFSVElBTF9BR0dSRUdB VEUgYjo6cmVhbCksIHZhcl9zYW1wKFBBUlRJQUxfQUdHUkVHQVRFIGI6OmRvdWJsZSBwcmVjaXNp b24pLCB2YXJfc2FtcChQQVJUSUFMX0FHR1JFR0FURSBiOjpzbWFsbGludCksIHZhcl9zYW1wKFBB UlRJQUxfQUdHUkVHQVRFIGIpLCB2YXJfc2FtcChQQVJUSUFMX0FHR1JFR0FURSBiOjpiaWdpbnQp LCB2YXJfc2FtcChQQVJUSUFMX0FHR1JFR0FURSBiOjpudW1lcmljKSwgYW55X3ZhbHVlKChiICog MCkpLCBiaXRfYW5kKGNfYml0KSwgYml0X2FuZChjXzFvcjNpbnQyKSwgYml0X2FuZChjXzFvcjNp bnQ0KSwgYml0X2FuZChjXzFvcjNpbnQ4KSwgYml0X29yKGNfYml0KSwgYml0X29yKGNfMW9yM2lu dDIpLCBiaXRfb3IoY18xb3IzaW50NCksIGJpdF9vcihjXzFvcjNpbnQ4KSwgYml0X3hvcihjX2Jp dCksIGJpdF94b3IoY18xb3IzaW50MiksIGJpdF94b3IoY18xb3IzaW50NCksIGJpdF94b3IoY18x b3IzaW50OCksIGJvb2xfYW5kKGNfYm9vbCksIGJvb2xfb3IoY19ib29sKSwgY291bnQoYiksIGNv dW50KCopLCBldmVyeShjX2Jvb2wpLCBtYXgoY19pbnQ0YXJyYXkpLCBtYXgoY19lbnVtKSwgbWF4 KGNfMWM6OmNoYXJhY3RlcigxKSksIG1heCgoJzAxLTAxLTIwMDAnOjpkYXRlICsgYikpLCBtYXgo KCcwLjAuMC4wJzo6aW5ldCArIGIpKSwgbWF4KGI6OnJlYWwpLCBtYXgoYjo6ZG91YmxlIHByZWNp c2lvbiksIG1heChiOjpzbWFsbGludCksIG1heChiKSwgbWF4KGI6OmJpZ2ludCksIG1heChjX2lu dGVydmFsKSwgbWF4KGNfbW9uZXkpLCBtYXgoYjo6bnVtZXJpYyksIG1heChiOjpvaWQpLCBtYXgo Y19wZ19sc24pLCBtYXgoY190aWQpLCBtYXgoY18xYyksIG1heChjX3RpbWUpLCBtYXgoY190aW1l dHopLCBtYXgoY190aW1lc3RhbXApLCBtYXgoY190aW1lc3RhbXB0eiksIG1heChjX3hpZDgpLCBt aW4oY19pbnQ0YXJyYXkpLCBtaW4oY19lbnVtKSwgbWluKGNfMWM6OmNoYXJhY3RlcigxKSksIG1p bigoJzAxLTAxLTIwMDAnOjpkYXRlICsgYikpLCBtaW4oKCcwLjAuMC4wJzo6aW5ldCArIGIpKSwg bWluKGI6OnJlYWwpLCBtaW4oYjo6ZG91YmxlIHByZWNpc2lvbiksIG1pbihiOjpzbWFsbGludCks IG1pbihiKSwgbWluKGI6OmJpZ2ludCksIG1pbihjX2ludGVydmFsKSwgbWluKGNfbW9uZXkpLCBt aW4oYjo6bnVtZXJpYyksIG1pbihiOjpvaWQpLCBtaW4oY19wZ19sc24pLCBtaW4oY190aWQpLCBt aW4oY18xYyksIG1pbihjX3RpbWUpLCBtaW4oY190aW1ldHopLCBtaW4oY190aW1lc3RhbXApLCBt aW4oY190aW1lc3RhbXB0eiksIG1pbihjX3hpZDgpLCByYW5nZV9pbnRlcnNlY3RfYWdnKGNfaW50 NHJhbmdlKSwgcmFuZ2VfaW50ZXJzZWN0X2FnZyhjX2ludDRtdWx0aXJhbmdlKSwgcmVncl9jb3Vu dCgoKDIgKiBiKSArIDMpOjpkb3VibGUgcHJlY2lzaW9uLCBiOjpkb3VibGUgcHJlY2lzaW9uKSwg c3VtKGI6OnJlYWwpLCBzdW0oYjo6ZG91YmxlIHByZWNpc2lvbiksIHN1bShiOjpzbWFsbGludCks IHN1bShiKSwgc3VtKFBBUlRJQUxfQUdHUkVHQVRFIGNfaW50ZXJ2YWwpLCBzdW0oY19tb25leSkg RlJPTSBwdWJsaWMucGFnZ190YWJfcDEgV0hFUkUgKChjX3NlcmlhbCA+PSAxKSkgQU5EICgoY19z ZXJpYWwgPD0gMzApKQorICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbgorICAgICAgICAgICAgICAg T3V0cHV0OiAoUEFSVElBTCBhcnJheV9hZ2cocGFnZ190YWJfMS5jX2ludDRhcnJheSkpLCAoUEFS VElBTCBhcnJheV9hZ2cocGFnZ190YWJfMS5iKSksIChQQVJUSUFMIGF2ZygocGFnZ190YWJfMS5i KTo6c21hbGxpbnQpKSwgKFBBUlRJQUwgYXZnKHBhZ2dfdGFiXzEuYikpLCAoUEFSVElBTCBhdmco KHBhZ2dfdGFiXzEuYik6OmJpZ2ludCkpLCAoUEFSVElBTCBhdmcocGFnZ190YWJfMS5jX2ludGVy dmFsKSksIChQQVJUSUFMIGF2ZygocGFnZ190YWJfMS5iKTo6cmVhbCkpLCAoUEFSVElBTCBhdmco KHBhZ2dfdGFiXzEuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgYXZnKChwYWdnX3Rh Yl8xLmIpOjpudW1lcmljKSksIChQQVJUSUFMIGNvcnIoKHBhZ2dfdGFiXzEuYik6OmRvdWJsZSBw cmVjaXNpb24sICgocGFnZ190YWJfMS5iICogcGFnZ190YWJfMS5iKSk6OmRvdWJsZSBwcmVjaXNp b24pKSwgKFBBUlRJQUwgY292YXJfcG9wKChwYWdnX3RhYl8xLmIpOjpkb3VibGUgcHJlY2lzaW9u LCAoKHBhZ2dfdGFiXzEuYiAqIHBhZ2dfdGFiXzEuYikpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQ QVJUSUFMIGNvdmFyX3NhbXAoKHBhZ2dfdGFiXzEuYik6OmRvdWJsZSBwcmVjaXNpb24sICgocGFn Z190YWJfMS5iICogcGFnZ190YWJfMS5iKSk6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwg cmVncl9hdmd4KCgoMiAqIHBhZ2dfdGFiXzEuYikpOjpkb3VibGUgcHJlY2lzaW9uLCAocGFnZ190 YWJfMS5iKTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCByZWdyX2F2Z3koKCgyICogcGFn Z190YWJfMS5iKSk6OmRvdWJsZSBwcmVjaXNpb24sIChwYWdnX3RhYl8xLmIpOjpkb3VibGUgcHJl Y2lzaW9uKSksIChQQVJUSUFMIHJlZ3JfaW50ZXJjZXB0KCgoKDIgKiBwYWdnX3RhYl8xLmIpICsg MykpOjpkb3VibGUgcHJlY2lzaW9uLCAocGFnZ190YWJfMS5iKTo6ZG91YmxlIHByZWNpc2lvbikp LCAoUEFSVElBTCByZWdyX3IyKCgocGFnZ190YWJfMS5iICogcGFnZ190YWJfMS5iKSk6OmRvdWJs ZSBwcmVjaXNpb24sIChwYWdnX3RhYl8xLmIpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFM IHJlZ3Jfc2xvcGUoKCgoMiAqIHBhZ2dfdGFiXzEuYikgKyAzKSk6OmRvdWJsZSBwcmVjaXNpb24s IChwYWdnX3RhYl8xLmIpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIHJlZ3Jfc3h4KCgo KDIgKiBwYWdnX3RhYl8xLmIpICsgMykpOjpkb3VibGUgcHJlY2lzaW9uLCAocGFnZ190YWJfMS5i KTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCByZWdyX3N4eSgoKHBhZ2dfdGFiXzEuYiAq IHBhZ2dfdGFiXzEuYikpOjpkb3VibGUgcHJlY2lzaW9uLCAocGFnZ190YWJfMS5iKTo6ZG91Ymxl IHByZWNpc2lvbikpLCAoUEFSVElBTCByZWdyX3N5eSgoKCgyICogcGFnZ190YWJfMS5iKSArIDMp KTo6ZG91YmxlIHByZWNpc2lvbiwgKHBhZ2dfdGFiXzEuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwg KFBBUlRJQUwgc3RkZGV2KChwYWdnX3RhYl8xLmIpOjpyZWFsKSksIChQQVJUSUFMIHN0ZGRldigo cGFnZ190YWJfMS5iKTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCBzdGRkZXYoKHBhZ2df dGFiXzEuYik6OnNtYWxsaW50KSksIChQQVJUSUFMIHN0ZGRldihwYWdnX3RhYl8xLmIpKSwgKFBB UlRJQUwgc3RkZGV2KChwYWdnX3RhYl8xLmIpOjpiaWdpbnQpKSwgKFBBUlRJQUwgc3RkZGV2KChw YWdnX3RhYl8xLmIpOjpudW1lcmljKSksIChQQVJUSUFMIHN0ZGRldl9wb3AoKHBhZ2dfdGFiXzEu Yik6OnJlYWwpKSwgKFBBUlRJQUwgc3RkZGV2X3BvcCgocGFnZ190YWJfMS5iKTo6ZG91YmxlIHBy ZWNpc2lvbikpLCAoUEFSVElBTCBzdGRkZXZfcG9wKChwYWdnX3RhYl8xLmIpOjpzbWFsbGludCkp LCAoUEFSVElBTCBzdGRkZXZfcG9wKHBhZ2dfdGFiXzEuYikpLCAoUEFSVElBTCBzdGRkZXZfcG9w KChwYWdnX3RhYl8xLmIpOjpiaWdpbnQpKSwgKFBBUlRJQUwgc3RkZGV2X3BvcCgocGFnZ190YWJf MS5iKTo6bnVtZXJpYykpLCAoUEFSVElBTCBzdGRkZXZfc2FtcCgocGFnZ190YWJfMS5iKTo6cmVh bCkpLCAoUEFSVElBTCBzdGRkZXZfc2FtcCgocGFnZ190YWJfMS5iKTo6ZG91YmxlIHByZWNpc2lv bikpLCAoUEFSVElBTCBzdGRkZXZfc2FtcCgocGFnZ190YWJfMS5iKTo6c21hbGxpbnQpKSwgKFBB UlRJQUwgc3RkZGV2X3NhbXAocGFnZ190YWJfMS5iKSksIChQQVJUSUFMIHN0ZGRldl9zYW1wKChw YWdnX3RhYl8xLmIpOjpiaWdpbnQpKSwgKFBBUlRJQUwgc3RkZGV2X3NhbXAoKHBhZ2dfdGFiXzEu Yik6Om51bWVyaWMpKSwgKFBBUlRJQUwgc3RyaW5nX2FnZyhwYWdnX3RhYl8xLmNfMWMsICcsJzo6 dGV4dCkpLCAoUEFSVElBTCBzdHJpbmdfYWdnKHBhZ2dfdGFiXzEuY18xYiwgJ1x4MmMnOjpieXRl YSkpLCAoUEFSVElBTCBzdW0oKHBhZ2dfdGFiXzEuYik6OmJpZ2ludCkpLCAoUEFSVElBTCBzdW0o KHBhZ2dfdGFiXzEuYik6Om51bWVyaWMpKSwgKFBBUlRJQUwgdmFyaWFuY2UoKHBhZ2dfdGFiXzEu Yik6OnJlYWwpKSwgKFBBUlRJQUwgdmFyaWFuY2UoKHBhZ2dfdGFiXzEuYik6OmRvdWJsZSBwcmVj aXNpb24pKSwgKFBBUlRJQUwgdmFyaWFuY2UoKHBhZ2dfdGFiXzEuYik6OnNtYWxsaW50KSksIChQ QVJUSUFMIHZhcmlhbmNlKHBhZ2dfdGFiXzEuYikpLCAoUEFSVElBTCB2YXJpYW5jZSgocGFnZ190 YWJfMS5iKTo6YmlnaW50KSksIChQQVJUSUFMIHZhcmlhbmNlKChwYWdnX3RhYl8xLmIpOjpudW1l cmljKSksIChQQVJUSUFMIHZhcl9wb3AoKHBhZ2dfdGFiXzEuYik6OnJlYWwpKSwgKFBBUlRJQUwg dmFyX3BvcCgocGFnZ190YWJfMS5iKTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCB2YXJf cG9wKChwYWdnX3RhYl8xLmIpOjpzbWFsbGludCkpLCAoUEFSVElBTCB2YXJfcG9wKHBhZ2dfdGFi XzEuYikpLCAoUEFSVElBTCB2YXJfcG9wKChwYWdnX3RhYl8xLmIpOjpiaWdpbnQpKSwgKFBBUlRJ QUwgdmFyX3BvcCgocGFnZ190YWJfMS5iKTo6bnVtZXJpYykpLCAoUEFSVElBTCB2YXJfc2FtcCgo cGFnZ190YWJfMS5iKTo6cmVhbCkpLCAoUEFSVElBTCB2YXJfc2FtcCgocGFnZ190YWJfMS5iKTo6 ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCB2YXJfc2FtcCgocGFnZ190YWJfMS5iKTo6c21h bGxpbnQpKSwgKFBBUlRJQUwgdmFyX3NhbXAocGFnZ190YWJfMS5iKSksIChQQVJUSUFMIHZhcl9z YW1wKChwYWdnX3RhYl8xLmIpOjpiaWdpbnQpKSwgKFBBUlRJQUwgdmFyX3NhbXAoKHBhZ2dfdGFi XzEuYik6Om51bWVyaWMpKSwgKFBBUlRJQUwgYW55X3ZhbHVlKChwYWdnX3RhYl8xLmIgKiAwKSkp LCAoUEFSVElBTCBiaXRfYW5kKHBhZ2dfdGFiXzEuY19iaXQpKSwgKFBBUlRJQUwgYml0X2FuZChw YWdnX3RhYl8xLmNfMW9yM2ludDIpKSwgKFBBUlRJQUwgYml0X2FuZChwYWdnX3RhYl8xLmNfMW9y M2ludDQpKSwgKFBBUlRJQUwgYml0X2FuZChwYWdnX3RhYl8xLmNfMW9yM2ludDgpKSwgKFBBUlRJ QUwgYml0X29yKHBhZ2dfdGFiXzEuY19iaXQpKSwgKFBBUlRJQUwgYml0X29yKHBhZ2dfdGFiXzEu Y18xb3IzaW50MikpLCAoUEFSVElBTCBiaXRfb3IocGFnZ190YWJfMS5jXzFvcjNpbnQ0KSksIChQ QVJUSUFMIGJpdF9vcihwYWdnX3RhYl8xLmNfMW9yM2ludDgpKSwgKFBBUlRJQUwgYml0X3hvcihw YWdnX3RhYl8xLmNfYml0KSksIChQQVJUSUFMIGJpdF94b3IocGFnZ190YWJfMS5jXzFvcjNpbnQy KSksIChQQVJUSUFMIGJpdF94b3IocGFnZ190YWJfMS5jXzFvcjNpbnQ0KSksIChQQVJUSUFMIGJp dF94b3IocGFnZ190YWJfMS5jXzFvcjNpbnQ4KSksIChQQVJUSUFMIGJvb2xfYW5kKHBhZ2dfdGFi XzEuY19ib29sKSksIChQQVJUSUFMIGJvb2xfb3IocGFnZ190YWJfMS5jX2Jvb2wpKSwgKFBBUlRJ QUwgY291bnQocGFnZ190YWJfMS5iKSksIChQQVJUSUFMIGNvdW50KCopKSwgKFBBUlRJQUwgZXZl cnkocGFnZ190YWJfMS5jX2Jvb2wpKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiXzEuY19pbnQ0YXJy YXkpKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiXzEuY19lbnVtKSksIChQQVJUSUFMIG1heCgocGFn Z190YWJfMS5jXzFjKTo6Y2hhcmFjdGVyKDEpKSksIChQQVJUSUFMIG1heCgoJzAxLTAxLTIwMDAn OjpkYXRlICsgcGFnZ190YWJfMS5iKSkpLCAoUEFSVElBTCBtYXgoKCcwLjAuMC4wJzo6aW5ldCAr IChwYWdnX3RhYl8xLmIpOjpiaWdpbnQpKSksIChQQVJUSUFMIG1heCgocGFnZ190YWJfMS5iKTo6 cmVhbCkpLCAoUEFSVElBTCBtYXgoKHBhZ2dfdGFiXzEuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwg KFBBUlRJQUwgbWF4KChwYWdnX3RhYl8xLmIpOjpzbWFsbGludCkpLCAoUEFSVElBTCBtYXgocGFn Z190YWJfMS5iKSksIChQQVJUSUFMIG1heCgocGFnZ190YWJfMS5iKTo6YmlnaW50KSksIChQQVJU SUFMIG1heChwYWdnX3RhYl8xLmNfaW50ZXJ2YWwpKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiXzEu Y19tb25leSkpLCAoUEFSVElBTCBtYXgoKHBhZ2dfdGFiXzEuYik6Om51bWVyaWMpKSwgKFBBUlRJ QUwgbWF4KChwYWdnX3RhYl8xLmIpOjpvaWQpKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiXzEuY19w Z19sc24pKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiXzEuY190aWQpKSwgKFBBUlRJQUwgbWF4KHBh Z2dfdGFiXzEuY18xYykpLCAoUEFSVElBTCBtYXgocGFnZ190YWJfMS5jX3RpbWUpKSwgKFBBUlRJ QUwgbWF4KHBhZ2dfdGFiXzEuY190aW1ldHopKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiXzEuY190 aW1lc3RhbXApKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiXzEuY190aW1lc3RhbXB0eikpLCAoUEFS VElBTCBtYXgocGFnZ190YWJfMS5jX3hpZDgpKSwgKFBBUlRJQUwgbWluKHBhZ2dfdGFiXzEuY19p bnQ0YXJyYXkpKSwgKFBBUlRJQUwgbWluKHBhZ2dfdGFiXzEuY19lbnVtKSksIChQQVJUSUFMIG1p bigocGFnZ190YWJfMS5jXzFjKTo6Y2hhcmFjdGVyKDEpKSksIChQQVJUSUFMIG1pbigoJzAxLTAx LTIwMDAnOjpkYXRlICsgcGFnZ190YWJfMS5iKSkpLCAoUEFSVElBTCBtaW4oKCcwLjAuMC4wJzo6 aW5ldCArIChwYWdnX3RhYl8xLmIpOjpiaWdpbnQpKSksIChQQVJUSUFMIG1pbigocGFnZ190YWJf MS5iKTo6cmVhbCkpLCAoUEFSVElBTCBtaW4oKHBhZ2dfdGFiXzEuYik6OmRvdWJsZSBwcmVjaXNp b24pKSwgKFBBUlRJQUwgbWluKChwYWdnX3RhYl8xLmIpOjpzbWFsbGludCkpLCAoUEFSVElBTCBt aW4ocGFnZ190YWJfMS5iKSksIChQQVJUSUFMIG1pbigocGFnZ190YWJfMS5iKTo6YmlnaW50KSks IChQQVJUSUFMIG1pbihwYWdnX3RhYl8xLmNfaW50ZXJ2YWwpKSwgKFBBUlRJQUwgbWluKHBhZ2df dGFiXzEuY19tb25leSkpLCAoUEFSVElBTCBtaW4oKHBhZ2dfdGFiXzEuYik6Om51bWVyaWMpKSwg KFBBUlRJQUwgbWluKChwYWdnX3RhYl8xLmIpOjpvaWQpKSwgKFBBUlRJQUwgbWluKHBhZ2dfdGFi XzEuY19wZ19sc24pKSwgKFBBUlRJQUwgbWluKHBhZ2dfdGFiXzEuY190aWQpKSwgKFBBUlRJQUwg bWluKHBhZ2dfdGFiXzEuY18xYykpLCAoUEFSVElBTCBtaW4ocGFnZ190YWJfMS5jX3RpbWUpKSwg KFBBUlRJQUwgbWluKHBhZ2dfdGFiXzEuY190aW1ldHopKSwgKFBBUlRJQUwgbWluKHBhZ2dfdGFi XzEuY190aW1lc3RhbXApKSwgKFBBUlRJQUwgbWluKHBhZ2dfdGFiXzEuY190aW1lc3RhbXB0eikp LCAoUEFSVElBTCBtaW4ocGFnZ190YWJfMS5jX3hpZDgpKSwgKFBBUlRJQUwgcmFuZ2VfaW50ZXJz ZWN0X2FnZyhwYWdnX3RhYl8xLmNfaW50NHJhbmdlKSksIChQQVJUSUFMIHJhbmdlX2ludGVyc2Vj dF9hZ2cocGFnZ190YWJfMS5jX2ludDRtdWx0aXJhbmdlKSksIChQQVJUSUFMIHJlZ3JfY291bnQo KCgoMiAqIHBhZ2dfdGFiXzEuYikgKyAzKSk6OmRvdWJsZSBwcmVjaXNpb24sIChwYWdnX3RhYl8x LmIpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIHN1bSgocGFnZ190YWJfMS5iKTo6cmVh bCkpLCAoUEFSVElBTCBzdW0oKHBhZ2dfdGFiXzEuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBB UlRJQUwgc3VtKChwYWdnX3RhYl8xLmIpOjpzbWFsbGludCkpLCAoUEFSVElBTCBzdW0ocGFnZ190 YWJfMS5iKSksIChQQVJUSUFMIHN1bShwYWdnX3RhYl8xLmNfaW50ZXJ2YWwpKSwgKFBBUlRJQUwg c3VtKHBhZ2dfdGFiXzEuY19tb25leSkpCisgICAgICAgICAgICAgICBSZWxhdGlvbnM6IEFnZ3Jl Z2F0ZSBvbiAocHVibGljLmZwYWdnX3RhYl9wMiBwYWdnX3RhYl8xKQorICAgICAgICAgICAgICAg UmVtb3RlIFNRTDogU0VMRUNUIGFycmF5X2FnZyhQQVJUSUFMX0FHR1JFR0FURSBjX2ludDRhcnJh eSksIGFycmF5X2FnZyhQQVJUSUFMX0FHR1JFR0FURSBiKSwgYXZnKFBBUlRJQUxfQUdHUkVHQVRF IGI6OnNtYWxsaW50KSwgYXZnKFBBUlRJQUxfQUdHUkVHQVRFIGIpLCBhdmcoUEFSVElBTF9BR0dS RUdBVEUgYjo6YmlnaW50KSwgYXZnKFBBUlRJQUxfQUdHUkVHQVRFIGNfaW50ZXJ2YWwpLCBhdmco UEFSVElBTF9BR0dSRUdBVEUgYjo6cmVhbCksIGF2ZyhQQVJUSUFMX0FHR1JFR0FURSBiOjpkb3Vi bGUgcHJlY2lzaW9uKSwgYXZnKFBBUlRJQUxfQUdHUkVHQVRFIGI6Om51bWVyaWMpLCBjb3JyKFBB UlRJQUxfQUdHUkVHQVRFIGI6OmRvdWJsZSBwcmVjaXNpb24sIChiICogYik6OmRvdWJsZSBwcmVj aXNpb24pLCBjb3Zhcl9wb3AoUEFSVElBTF9BR0dSRUdBVEUgYjo6ZG91YmxlIHByZWNpc2lvbiwg KGIgKiBiKTo6ZG91YmxlIHByZWNpc2lvbiksIGNvdmFyX3NhbXAoUEFSVElBTF9BR0dSRUdBVEUg Yjo6ZG91YmxlIHByZWNpc2lvbiwgKGIgKiBiKTo6ZG91YmxlIHByZWNpc2lvbiksIHJlZ3JfYXZn eChQQVJUSUFMX0FHR1JFR0FURSAoMiAqIGIpOjpkb3VibGUgcHJlY2lzaW9uLCBiOjpkb3VibGUg cHJlY2lzaW9uKSwgcmVncl9hdmd5KFBBUlRJQUxfQUdHUkVHQVRFICgyICogYik6OmRvdWJsZSBw cmVjaXNpb24sIGI6OmRvdWJsZSBwcmVjaXNpb24pLCByZWdyX2ludGVyY2VwdChQQVJUSUFMX0FH R1JFR0FURSAoKDIgKiBiKSArIDMpOjpkb3VibGUgcHJlY2lzaW9uLCBiOjpkb3VibGUgcHJlY2lz aW9uKSwgcmVncl9yMihQQVJUSUFMX0FHR1JFR0FURSAoYiAqIGIpOjpkb3VibGUgcHJlY2lzaW9u LCBiOjpkb3VibGUgcHJlY2lzaW9uKSwgcmVncl9zbG9wZShQQVJUSUFMX0FHR1JFR0FURSAoKDIg KiBiKSArIDMpOjpkb3VibGUgcHJlY2lzaW9uLCBiOjpkb3VibGUgcHJlY2lzaW9uKSwgcmVncl9z eHgoUEFSVElBTF9BR0dSRUdBVEUgKCgyICogYikgKyAzKTo6ZG91YmxlIHByZWNpc2lvbiwgYjo6 ZG91YmxlIHByZWNpc2lvbiksIHJlZ3Jfc3h5KFBBUlRJQUxfQUdHUkVHQVRFIChiICogYik6OmRv dWJsZSBwcmVjaXNpb24sIGI6OmRvdWJsZSBwcmVjaXNpb24pLCByZWdyX3N5eShQQVJUSUFMX0FH R1JFR0FURSAoKDIgKiBiKSArIDMpOjpkb3VibGUgcHJlY2lzaW9uLCBiOjpkb3VibGUgcHJlY2lz aW9uKSwgc3RkZGV2KFBBUlRJQUxfQUdHUkVHQVRFIGI6OnJlYWwpLCBzdGRkZXYoUEFSVElBTF9B R0dSRUdBVEUgYjo6ZG91YmxlIHByZWNpc2lvbiksIHN0ZGRldihQQVJUSUFMX0FHR1JFR0FURSBi OjpzbWFsbGludCksIHN0ZGRldihQQVJUSUFMX0FHR1JFR0FURSBiKSwgc3RkZGV2KFBBUlRJQUxf QUdHUkVHQVRFIGI6OmJpZ2ludCksIHN0ZGRldihQQVJUSUFMX0FHR1JFR0FURSBiOjpudW1lcmlj KSwgc3RkZGV2X3BvcChQQVJUSUFMX0FHR1JFR0FURSBiOjpyZWFsKSwgc3RkZGV2X3BvcChQQVJU SUFMX0FHR1JFR0FURSBiOjpkb3VibGUgcHJlY2lzaW9uKSwgc3RkZGV2X3BvcChQQVJUSUFMX0FH R1JFR0FURSBiOjpzbWFsbGludCksIHN0ZGRldl9wb3AoUEFSVElBTF9BR0dSRUdBVEUgYiksIHN0 ZGRldl9wb3AoUEFSVElBTF9BR0dSRUdBVEUgYjo6YmlnaW50KSwgc3RkZGV2X3BvcChQQVJUSUFM X0FHR1JFR0FURSBiOjpudW1lcmljKSwgc3RkZGV2X3NhbXAoUEFSVElBTF9BR0dSRUdBVEUgYjo6 cmVhbCksIHN0ZGRldl9zYW1wKFBBUlRJQUxfQUdHUkVHQVRFIGI6OmRvdWJsZSBwcmVjaXNpb24p LCBzdGRkZXZfc2FtcChQQVJUSUFMX0FHR1JFR0FURSBiOjpzbWFsbGludCksIHN0ZGRldl9zYW1w KFBBUlRJQUxfQUdHUkVHQVRFIGIpLCBzdGRkZXZfc2FtcChQQVJUSUFMX0FHR1JFR0FURSBiOjpi aWdpbnQpLCBzdGRkZXZfc2FtcChQQVJUSUFMX0FHR1JFR0FURSBiOjpudW1lcmljKSwgc3RyaW5n X2FnZyhQQVJUSUFMX0FHR1JFR0FURSBjXzFjLCAnLCc6OnRleHQpLCBzdHJpbmdfYWdnKFBBUlRJ QUxfQUdHUkVHQVRFIGNfMWIsIEUnXFx4MmMnOjpieXRlYSksIHN1bShQQVJUSUFMX0FHR1JFR0FU RSBiOjpiaWdpbnQpLCBzdW0oUEFSVElBTF9BR0dSRUdBVEUgYjo6bnVtZXJpYyksIHZhcmlhbmNl KFBBUlRJQUxfQUdHUkVHQVRFIGI6OnJlYWwpLCB2YXJpYW5jZShQQVJUSUFMX0FHR1JFR0FURSBi Ojpkb3VibGUgcHJlY2lzaW9uKSwgdmFyaWFuY2UoUEFSVElBTF9BR0dSRUdBVEUgYjo6c21hbGxp bnQpLCB2YXJpYW5jZShQQVJUSUFMX0FHR1JFR0FURSBiKSwgdmFyaWFuY2UoUEFSVElBTF9BR0dS RUdBVEUgYjo6YmlnaW50KSwgdmFyaWFuY2UoUEFSVElBTF9BR0dSRUdBVEUgYjo6bnVtZXJpYyks IHZhcl9wb3AoUEFSVElBTF9BR0dSRUdBVEUgYjo6cmVhbCksIHZhcl9wb3AoUEFSVElBTF9BR0dS RUdBVEUgYjo6ZG91YmxlIHByZWNpc2lvbiksIHZhcl9wb3AoUEFSVElBTF9BR0dSRUdBVEUgYjo6 c21hbGxpbnQpLCB2YXJfcG9wKFBBUlRJQUxfQUdHUkVHQVRFIGIpLCB2YXJfcG9wKFBBUlRJQUxf QUdHUkVHQVRFIGI6OmJpZ2ludCksIHZhcl9wb3AoUEFSVElBTF9BR0dSRUdBVEUgYjo6bnVtZXJp YyksIHZhcl9zYW1wKFBBUlRJQUxfQUdHUkVHQVRFIGI6OnJlYWwpLCB2YXJfc2FtcChQQVJUSUFM X0FHR1JFR0FURSBiOjpkb3VibGUgcHJlY2lzaW9uKSwgdmFyX3NhbXAoUEFSVElBTF9BR0dSRUdB VEUgYjo6c21hbGxpbnQpLCB2YXJfc2FtcChQQVJUSUFMX0FHR1JFR0FURSBiKSwgdmFyX3NhbXAo UEFSVElBTF9BR0dSRUdBVEUgYjo6YmlnaW50KSwgdmFyX3NhbXAoUEFSVElBTF9BR0dSRUdBVEUg Yjo6bnVtZXJpYyksIGFueV92YWx1ZSgoYiAqIDApKSwgYml0X2FuZChjX2JpdCksIGJpdF9hbmQo Y18xb3IzaW50MiksIGJpdF9hbmQoY18xb3IzaW50NCksIGJpdF9hbmQoY18xb3IzaW50OCksIGJp dF9vcihjX2JpdCksIGJpdF9vcihjXzFvcjNpbnQyKSwgYml0X29yKGNfMW9yM2ludDQpLCBiaXRf b3IoY18xb3IzaW50OCksIGJpdF94b3IoY19iaXQpLCBiaXRfeG9yKGNfMW9yM2ludDIpLCBiaXRf eG9yKGNfMW9yM2ludDQpLCBiaXRfeG9yKGNfMW9yM2ludDgpLCBib29sX2FuZChjX2Jvb2wpLCBi b29sX29yKGNfYm9vbCksIGNvdW50KGIpLCBjb3VudCgqKSwgZXZlcnkoY19ib29sKSwgbWF4KGNf aW50NGFycmF5KSwgbWF4KGNfZW51bSksIG1heChjXzFjOjpjaGFyYWN0ZXIoMSkpLCBtYXgoKCcw MS0wMS0yMDAwJzo6ZGF0ZSArIGIpKSwgbWF4KCgnMC4wLjAuMCc6OmluZXQgKyBiKSksIG1heChi OjpyZWFsKSwgbWF4KGI6OmRvdWJsZSBwcmVjaXNpb24pLCBtYXgoYjo6c21hbGxpbnQpLCBtYXgo YiksIG1heChiOjpiaWdpbnQpLCBtYXgoY19pbnRlcnZhbCksIG1heChjX21vbmV5KSwgbWF4KGI6 Om51bWVyaWMpLCBtYXgoYjo6b2lkKSwgbWF4KGNfcGdfbHNuKSwgbWF4KGNfdGlkKSwgbWF4KGNf MWMpLCBtYXgoY190aW1lKSwgbWF4KGNfdGltZXR6KSwgbWF4KGNfdGltZXN0YW1wKSwgbWF4KGNf dGltZXN0YW1wdHopLCBtYXgoY194aWQ4KSwgbWluKGNfaW50NGFycmF5KSwgbWluKGNfZW51bSks IG1pbihjXzFjOjpjaGFyYWN0ZXIoMSkpLCBtaW4oKCcwMS0wMS0yMDAwJzo6ZGF0ZSArIGIpKSwg bWluKCgnMC4wLjAuMCc6OmluZXQgKyBiKSksIG1pbihiOjpyZWFsKSwgbWluKGI6OmRvdWJsZSBw cmVjaXNpb24pLCBtaW4oYjo6c21hbGxpbnQpLCBtaW4oYiksIG1pbihiOjpiaWdpbnQpLCBtaW4o Y19pbnRlcnZhbCksIG1pbihjX21vbmV5KSwgbWluKGI6Om51bWVyaWMpLCBtaW4oYjo6b2lkKSwg bWluKGNfcGdfbHNuKSwgbWluKGNfdGlkKSwgbWluKGNfMWMpLCBtaW4oY190aW1lKSwgbWluKGNf dGltZXR6KSwgbWluKGNfdGltZXN0YW1wKSwgbWluKGNfdGltZXN0YW1wdHopLCBtaW4oY194aWQ4 KSwgcmFuZ2VfaW50ZXJzZWN0X2FnZyhjX2ludDRyYW5nZSksIHJhbmdlX2ludGVyc2VjdF9hZ2co Y19pbnQ0bXVsdGlyYW5nZSksIHJlZ3JfY291bnQoKCgyICogYikgKyAzKTo6ZG91YmxlIHByZWNp c2lvbiwgYjo6ZG91YmxlIHByZWNpc2lvbiksIHN1bShiOjpyZWFsKSwgc3VtKGI6OmRvdWJsZSBw cmVjaXNpb24pLCBzdW0oYjo6c21hbGxpbnQpLCBzdW0oYiksIHN1bShQQVJUSUFMX0FHR1JFR0FU RSBjX2ludGVydmFsKSwgc3VtKGNfbW9uZXkpIEZST00gcHVibGljLnBhZ2dfdGFiX3AyIFdIRVJF ICgoY19zZXJpYWwgPj0gMSkpIEFORCAoKGNfc2VyaWFsIDw9IDMwKSkKKyAgICAgICAgIC0+ICBG b3JlaWduIFNjYW4KKyAgICAgICAgICAgICAgIE91dHB1dDogKFBBUlRJQUwgYXJyYXlfYWdnKHBh Z2dfdGFiXzIuY19pbnQ0YXJyYXkpKSwgKFBBUlRJQUwgYXJyYXlfYWdnKHBhZ2dfdGFiXzIuYikp LCAoUEFSVElBTCBhdmcoKHBhZ2dfdGFiXzIuYik6OnNtYWxsaW50KSksIChQQVJUSUFMIGF2Zyhw YWdnX3RhYl8yLmIpKSwgKFBBUlRJQUwgYXZnKChwYWdnX3RhYl8yLmIpOjpiaWdpbnQpKSwgKFBB UlRJQUwgYXZnKHBhZ2dfdGFiXzIuY19pbnRlcnZhbCkpLCAoUEFSVElBTCBhdmcoKHBhZ2dfdGFi XzIuYik6OnJlYWwpKSwgKFBBUlRJQUwgYXZnKChwYWdnX3RhYl8yLmIpOjpkb3VibGUgcHJlY2lz aW9uKSksIChQQVJUSUFMIGF2ZygocGFnZ190YWJfMi5iKTo6bnVtZXJpYykpLCAoUEFSVElBTCBj b3JyKChwYWdnX3RhYl8yLmIpOjpkb3VibGUgcHJlY2lzaW9uLCAoKHBhZ2dfdGFiXzIuYiAqIHBh Z2dfdGFiXzIuYikpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIGNvdmFyX3BvcCgocGFn Z190YWJfMi5iKTo6ZG91YmxlIHByZWNpc2lvbiwgKChwYWdnX3RhYl8yLmIgKiBwYWdnX3RhYl8y LmIpKTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCBjb3Zhcl9zYW1wKChwYWdnX3RhYl8y LmIpOjpkb3VibGUgcHJlY2lzaW9uLCAoKHBhZ2dfdGFiXzIuYiAqIHBhZ2dfdGFiXzIuYikpOjpk b3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIHJlZ3JfYXZneCgoKDIgKiBwYWdnX3RhYl8yLmIp KTo6ZG91YmxlIHByZWNpc2lvbiwgKHBhZ2dfdGFiXzIuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwg KFBBUlRJQUwgcmVncl9hdmd5KCgoMiAqIHBhZ2dfdGFiXzIuYikpOjpkb3VibGUgcHJlY2lzaW9u LCAocGFnZ190YWJfMi5iKTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCByZWdyX2ludGVy Y2VwdCgoKCgyICogcGFnZ190YWJfMi5iKSArIDMpKTo6ZG91YmxlIHByZWNpc2lvbiwgKHBhZ2df dGFiXzIuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgcmVncl9yMigoKHBhZ2dfdGFi XzIuYiAqIHBhZ2dfdGFiXzIuYikpOjpkb3VibGUgcHJlY2lzaW9uLCAocGFnZ190YWJfMi5iKTo6 ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCByZWdyX3Nsb3BlKCgoKDIgKiBwYWdnX3RhYl8y LmIpICsgMykpOjpkb3VibGUgcHJlY2lzaW9uLCAocGFnZ190YWJfMi5iKTo6ZG91YmxlIHByZWNp c2lvbikpLCAoUEFSVElBTCByZWdyX3N4eCgoKCgyICogcGFnZ190YWJfMi5iKSArIDMpKTo6ZG91 YmxlIHByZWNpc2lvbiwgKHBhZ2dfdGFiXzIuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJ QUwgcmVncl9zeHkoKChwYWdnX3RhYl8yLmIgKiBwYWdnX3RhYl8yLmIpKTo6ZG91YmxlIHByZWNp c2lvbiwgKHBhZ2dfdGFiXzIuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgcmVncl9z eXkoKCgoMiAqIHBhZ2dfdGFiXzIuYikgKyAzKSk6OmRvdWJsZSBwcmVjaXNpb24sIChwYWdnX3Rh Yl8yLmIpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIHN0ZGRldigocGFnZ190YWJfMi5i KTo6cmVhbCkpLCAoUEFSVElBTCBzdGRkZXYoKHBhZ2dfdGFiXzIuYik6OmRvdWJsZSBwcmVjaXNp b24pKSwgKFBBUlRJQUwgc3RkZGV2KChwYWdnX3RhYl8yLmIpOjpzbWFsbGludCkpLCAoUEFSVElB TCBzdGRkZXYocGFnZ190YWJfMi5iKSksIChQQVJUSUFMIHN0ZGRldigocGFnZ190YWJfMi5iKTo6 YmlnaW50KSksIChQQVJUSUFMIHN0ZGRldigocGFnZ190YWJfMi5iKTo6bnVtZXJpYykpLCAoUEFS VElBTCBzdGRkZXZfcG9wKChwYWdnX3RhYl8yLmIpOjpyZWFsKSksIChQQVJUSUFMIHN0ZGRldl9w b3AoKHBhZ2dfdGFiXzIuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgc3RkZGV2X3Bv cCgocGFnZ190YWJfMi5iKTo6c21hbGxpbnQpKSwgKFBBUlRJQUwgc3RkZGV2X3BvcChwYWdnX3Rh Yl8yLmIpKSwgKFBBUlRJQUwgc3RkZGV2X3BvcCgocGFnZ190YWJfMi5iKTo6YmlnaW50KSksIChQ QVJUSUFMIHN0ZGRldl9wb3AoKHBhZ2dfdGFiXzIuYik6Om51bWVyaWMpKSwgKFBBUlRJQUwgc3Rk ZGV2X3NhbXAoKHBhZ2dfdGFiXzIuYik6OnJlYWwpKSwgKFBBUlRJQUwgc3RkZGV2X3NhbXAoKHBh Z2dfdGFiXzIuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgc3RkZGV2X3NhbXAoKHBh Z2dfdGFiXzIuYik6OnNtYWxsaW50KSksIChQQVJUSUFMIHN0ZGRldl9zYW1wKHBhZ2dfdGFiXzIu YikpLCAoUEFSVElBTCBzdGRkZXZfc2FtcCgocGFnZ190YWJfMi5iKTo6YmlnaW50KSksIChQQVJU SUFMIHN0ZGRldl9zYW1wKChwYWdnX3RhYl8yLmIpOjpudW1lcmljKSksIChQQVJUSUFMIHN0cmlu Z19hZ2cocGFnZ190YWJfMi5jXzFjLCAnLCc6OnRleHQpKSwgKFBBUlRJQUwgc3RyaW5nX2FnZyhw YWdnX3RhYl8yLmNfMWIsICdceDJjJzo6Ynl0ZWEpKSwgKFBBUlRJQUwgc3VtKChwYWdnX3RhYl8y LmIpOjpiaWdpbnQpKSwgKFBBUlRJQUwgc3VtKChwYWdnX3RhYl8yLmIpOjpudW1lcmljKSksIChQ QVJUSUFMIHZhcmlhbmNlKChwYWdnX3RhYl8yLmIpOjpyZWFsKSksIChQQVJUSUFMIHZhcmlhbmNl KChwYWdnX3RhYl8yLmIpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIHZhcmlhbmNlKChw YWdnX3RhYl8yLmIpOjpzbWFsbGludCkpLCAoUEFSVElBTCB2YXJpYW5jZShwYWdnX3RhYl8yLmIp KSwgKFBBUlRJQUwgdmFyaWFuY2UoKHBhZ2dfdGFiXzIuYik6OmJpZ2ludCkpLCAoUEFSVElBTCB2 YXJpYW5jZSgocGFnZ190YWJfMi5iKTo6bnVtZXJpYykpLCAoUEFSVElBTCB2YXJfcG9wKChwYWdn X3RhYl8yLmIpOjpyZWFsKSksIChQQVJUSUFMIHZhcl9wb3AoKHBhZ2dfdGFiXzIuYik6OmRvdWJs ZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgdmFyX3BvcCgocGFnZ190YWJfMi5iKTo6c21hbGxpbnQp KSwgKFBBUlRJQUwgdmFyX3BvcChwYWdnX3RhYl8yLmIpKSwgKFBBUlRJQUwgdmFyX3BvcCgocGFn Z190YWJfMi5iKTo6YmlnaW50KSksIChQQVJUSUFMIHZhcl9wb3AoKHBhZ2dfdGFiXzIuYik6Om51 bWVyaWMpKSwgKFBBUlRJQUwgdmFyX3NhbXAoKHBhZ2dfdGFiXzIuYik6OnJlYWwpKSwgKFBBUlRJ QUwgdmFyX3NhbXAoKHBhZ2dfdGFiXzIuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwg dmFyX3NhbXAoKHBhZ2dfdGFiXzIuYik6OnNtYWxsaW50KSksIChQQVJUSUFMIHZhcl9zYW1wKHBh Z2dfdGFiXzIuYikpLCAoUEFSVElBTCB2YXJfc2FtcCgocGFnZ190YWJfMi5iKTo6YmlnaW50KSks IChQQVJUSUFMIHZhcl9zYW1wKChwYWdnX3RhYl8yLmIpOjpudW1lcmljKSksIChQQVJUSUFMIGFu eV92YWx1ZSgocGFnZ190YWJfMi5iICogMCkpKSwgKFBBUlRJQUwgYml0X2FuZChwYWdnX3RhYl8y LmNfYml0KSksIChQQVJUSUFMIGJpdF9hbmQocGFnZ190YWJfMi5jXzFvcjNpbnQyKSksIChQQVJU SUFMIGJpdF9hbmQocGFnZ190YWJfMi5jXzFvcjNpbnQ0KSksIChQQVJUSUFMIGJpdF9hbmQocGFn Z190YWJfMi5jXzFvcjNpbnQ4KSksIChQQVJUSUFMIGJpdF9vcihwYWdnX3RhYl8yLmNfYml0KSks IChQQVJUSUFMIGJpdF9vcihwYWdnX3RhYl8yLmNfMW9yM2ludDIpKSwgKFBBUlRJQUwgYml0X29y KHBhZ2dfdGFiXzIuY18xb3IzaW50NCkpLCAoUEFSVElBTCBiaXRfb3IocGFnZ190YWJfMi5jXzFv cjNpbnQ4KSksIChQQVJUSUFMIGJpdF94b3IocGFnZ190YWJfMi5jX2JpdCkpLCAoUEFSVElBTCBi aXRfeG9yKHBhZ2dfdGFiXzIuY18xb3IzaW50MikpLCAoUEFSVElBTCBiaXRfeG9yKHBhZ2dfdGFi XzIuY18xb3IzaW50NCkpLCAoUEFSVElBTCBiaXRfeG9yKHBhZ2dfdGFiXzIuY18xb3IzaW50OCkp LCAoUEFSVElBTCBib29sX2FuZChwYWdnX3RhYl8yLmNfYm9vbCkpLCAoUEFSVElBTCBib29sX29y KHBhZ2dfdGFiXzIuY19ib29sKSksIChQQVJUSUFMIGNvdW50KHBhZ2dfdGFiXzIuYikpLCAoUEFS VElBTCBjb3VudCgqKSksIChQQVJUSUFMIGV2ZXJ5KHBhZ2dfdGFiXzIuY19ib29sKSksIChQQVJU SUFMIG1heChwYWdnX3RhYl8yLmNfaW50NGFycmF5KSksIChQQVJUSUFMIG1heChwYWdnX3RhYl8y LmNfZW51bSkpLCAoUEFSVElBTCBtYXgoKHBhZ2dfdGFiXzIuY18xYyk6OmNoYXJhY3RlcigxKSkp LCAoUEFSVElBTCBtYXgoKCcwMS0wMS0yMDAwJzo6ZGF0ZSArIHBhZ2dfdGFiXzIuYikpKSwgKFBB UlRJQUwgbWF4KCgnMC4wLjAuMCc6OmluZXQgKyAocGFnZ190YWJfMi5iKTo6YmlnaW50KSkpLCAo UEFSVElBTCBtYXgoKHBhZ2dfdGFiXzIuYik6OnJlYWwpKSwgKFBBUlRJQUwgbWF4KChwYWdnX3Rh Yl8yLmIpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIG1heCgocGFnZ190YWJfMi5iKTo6 c21hbGxpbnQpKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiXzIuYikpLCAoUEFSVElBTCBtYXgoKHBh Z2dfdGFiXzIuYik6OmJpZ2ludCkpLCAoUEFSVElBTCBtYXgocGFnZ190YWJfMi5jX2ludGVydmFs KSksIChQQVJUSUFMIG1heChwYWdnX3RhYl8yLmNfbW9uZXkpKSwgKFBBUlRJQUwgbWF4KChwYWdn X3RhYl8yLmIpOjpudW1lcmljKSksIChQQVJUSUFMIG1heCgocGFnZ190YWJfMi5iKTo6b2lkKSks IChQQVJUSUFMIG1heChwYWdnX3RhYl8yLmNfcGdfbHNuKSksIChQQVJUSUFMIG1heChwYWdnX3Rh Yl8yLmNfdGlkKSksIChQQVJUSUFMIG1heChwYWdnX3RhYl8yLmNfMWMpKSwgKFBBUlRJQUwgbWF4 KHBhZ2dfdGFiXzIuY190aW1lKSksIChQQVJUSUFMIG1heChwYWdnX3RhYl8yLmNfdGltZXR6KSks IChQQVJUSUFMIG1heChwYWdnX3RhYl8yLmNfdGltZXN0YW1wKSksIChQQVJUSUFMIG1heChwYWdn X3RhYl8yLmNfdGltZXN0YW1wdHopKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiXzIuY194aWQ4KSks IChQQVJUSUFMIG1pbihwYWdnX3RhYl8yLmNfaW50NGFycmF5KSksIChQQVJUSUFMIG1pbihwYWdn X3RhYl8yLmNfZW51bSkpLCAoUEFSVElBTCBtaW4oKHBhZ2dfdGFiXzIuY18xYyk6OmNoYXJhY3Rl cigxKSkpLCAoUEFSVElBTCBtaW4oKCcwMS0wMS0yMDAwJzo6ZGF0ZSArIHBhZ2dfdGFiXzIuYikp KSwgKFBBUlRJQUwgbWluKCgnMC4wLjAuMCc6OmluZXQgKyAocGFnZ190YWJfMi5iKTo6YmlnaW50 KSkpLCAoUEFSVElBTCBtaW4oKHBhZ2dfdGFiXzIuYik6OnJlYWwpKSwgKFBBUlRJQUwgbWluKChw YWdnX3RhYl8yLmIpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIG1pbigocGFnZ190YWJf Mi5iKTo6c21hbGxpbnQpKSwgKFBBUlRJQUwgbWluKHBhZ2dfdGFiXzIuYikpLCAoUEFSVElBTCBt aW4oKHBhZ2dfdGFiXzIuYik6OmJpZ2ludCkpLCAoUEFSVElBTCBtaW4ocGFnZ190YWJfMi5jX2lu dGVydmFsKSksIChQQVJUSUFMIG1pbihwYWdnX3RhYl8yLmNfbW9uZXkpKSwgKFBBUlRJQUwgbWlu KChwYWdnX3RhYl8yLmIpOjpudW1lcmljKSksIChQQVJUSUFMIG1pbigocGFnZ190YWJfMi5iKTo6 b2lkKSksIChQQVJUSUFMIG1pbihwYWdnX3RhYl8yLmNfcGdfbHNuKSksIChQQVJUSUFMIG1pbihw YWdnX3RhYl8yLmNfdGlkKSksIChQQVJUSUFMIG1pbihwYWdnX3RhYl8yLmNfMWMpKSwgKFBBUlRJ QUwgbWluKHBhZ2dfdGFiXzIuY190aW1lKSksIChQQVJUSUFMIG1pbihwYWdnX3RhYl8yLmNfdGlt ZXR6KSksIChQQVJUSUFMIG1pbihwYWdnX3RhYl8yLmNfdGltZXN0YW1wKSksIChQQVJUSUFMIG1p bihwYWdnX3RhYl8yLmNfdGltZXN0YW1wdHopKSwgKFBBUlRJQUwgbWluKHBhZ2dfdGFiXzIuY194 aWQ4KSksIChQQVJUSUFMIHJhbmdlX2ludGVyc2VjdF9hZ2cocGFnZ190YWJfMi5jX2ludDRyYW5n ZSkpLCAoUEFSVElBTCByYW5nZV9pbnRlcnNlY3RfYWdnKHBhZ2dfdGFiXzIuY19pbnQ0bXVsdGly YW5nZSkpLCAoUEFSVElBTCByZWdyX2NvdW50KCgoKDIgKiBwYWdnX3RhYl8yLmIpICsgMykpOjpk b3VibGUgcHJlY2lzaW9uLCAocGFnZ190YWJfMi5iKTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFS VElBTCBzdW0oKHBhZ2dfdGFiXzIuYik6OnJlYWwpKSwgKFBBUlRJQUwgc3VtKChwYWdnX3RhYl8y LmIpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIHN1bSgocGFnZ190YWJfMi5iKTo6c21h bGxpbnQpKSwgKFBBUlRJQUwgc3VtKHBhZ2dfdGFiXzIuYikpLCAoUEFSVElBTCBzdW0ocGFnZ190 YWJfMi5jX2ludGVydmFsKSksIChQQVJUSUFMIHN1bShwYWdnX3RhYl8yLmNfbW9uZXkpKQorICAg ICAgICAgICAgICAgUmVsYXRpb25zOiBBZ2dyZWdhdGUgb24gKHB1YmxpYy5mcGFnZ190YWJfcDMg cGFnZ190YWJfMikKKyAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBhcnJheV9hZ2co UEFSVElBTF9BR0dSRUdBVEUgY19pbnQ0YXJyYXkpLCBhcnJheV9hZ2coUEFSVElBTF9BR0dSRUdB VEUgYiksIGF2ZyhQQVJUSUFMX0FHR1JFR0FURSBiOjpzbWFsbGludCksIGF2ZyhQQVJUSUFMX0FH R1JFR0FURSBiKSwgYXZnKFBBUlRJQUxfQUdHUkVHQVRFIGI6OmJpZ2ludCksIGF2ZyhQQVJUSUFM X0FHR1JFR0FURSBjX2ludGVydmFsKSwgYXZnKFBBUlRJQUxfQUdHUkVHQVRFIGI6OnJlYWwpLCBh dmcoUEFSVElBTF9BR0dSRUdBVEUgYjo6ZG91YmxlIHByZWNpc2lvbiksIGF2ZyhQQVJUSUFMX0FH R1JFR0FURSBiOjpudW1lcmljKSwgY29ycihQQVJUSUFMX0FHR1JFR0FURSBiOjpkb3VibGUgcHJl Y2lzaW9uLCAoYiAqIGIpOjpkb3VibGUgcHJlY2lzaW9uKSwgY292YXJfcG9wKFBBUlRJQUxfQUdH UkVHQVRFIGI6OmRvdWJsZSBwcmVjaXNpb24sIChiICogYik6OmRvdWJsZSBwcmVjaXNpb24pLCBj b3Zhcl9zYW1wKFBBUlRJQUxfQUdHUkVHQVRFIGI6OmRvdWJsZSBwcmVjaXNpb24sIChiICogYik6 OmRvdWJsZSBwcmVjaXNpb24pLCByZWdyX2F2Z3goUEFSVElBTF9BR0dSRUdBVEUgKDIgKiBiKTo6 ZG91YmxlIHByZWNpc2lvbiwgYjo6ZG91YmxlIHByZWNpc2lvbiksIHJlZ3JfYXZneShQQVJUSUFM X0FHR1JFR0FURSAoMiAqIGIpOjpkb3VibGUgcHJlY2lzaW9uLCBiOjpkb3VibGUgcHJlY2lzaW9u KSwgcmVncl9pbnRlcmNlcHQoUEFSVElBTF9BR0dSRUdBVEUgKCgyICogYikgKyAzKTo6ZG91Ymxl IHByZWNpc2lvbiwgYjo6ZG91YmxlIHByZWNpc2lvbiksIHJlZ3JfcjIoUEFSVElBTF9BR0dSRUdB VEUgKGIgKiBiKTo6ZG91YmxlIHByZWNpc2lvbiwgYjo6ZG91YmxlIHByZWNpc2lvbiksIHJlZ3Jf c2xvcGUoUEFSVElBTF9BR0dSRUdBVEUgKCgyICogYikgKyAzKTo6ZG91YmxlIHByZWNpc2lvbiwg Yjo6ZG91YmxlIHByZWNpc2lvbiksIHJlZ3Jfc3h4KFBBUlRJQUxfQUdHUkVHQVRFICgoMiAqIGIp ICsgMyk6OmRvdWJsZSBwcmVjaXNpb24sIGI6OmRvdWJsZSBwcmVjaXNpb24pLCByZWdyX3N4eShQ QVJUSUFMX0FHR1JFR0FURSAoYiAqIGIpOjpkb3VibGUgcHJlY2lzaW9uLCBiOjpkb3VibGUgcHJl Y2lzaW9uKSwgcmVncl9zeXkoUEFSVElBTF9BR0dSRUdBVEUgKCgyICogYikgKyAzKTo6ZG91Ymxl IHByZWNpc2lvbiwgYjo6ZG91YmxlIHByZWNpc2lvbiksIHN0ZGRldihQQVJUSUFMX0FHR1JFR0FU RSBiOjpyZWFsKSwgc3RkZGV2KFBBUlRJQUxfQUdHUkVHQVRFIGI6OmRvdWJsZSBwcmVjaXNpb24p LCBzdGRkZXYoUEFSVElBTF9BR0dSRUdBVEUgYjo6c21hbGxpbnQpLCBzdGRkZXYoUEFSVElBTF9B R0dSRUdBVEUgYiksIHN0ZGRldihQQVJUSUFMX0FHR1JFR0FURSBiOjpiaWdpbnQpLCBzdGRkZXYo UEFSVElBTF9BR0dSRUdBVEUgYjo6bnVtZXJpYyksIHN0ZGRldl9wb3AoUEFSVElBTF9BR0dSRUdB VEUgYjo6cmVhbCksIHN0ZGRldl9wb3AoUEFSVElBTF9BR0dSRUdBVEUgYjo6ZG91YmxlIHByZWNp c2lvbiksIHN0ZGRldl9wb3AoUEFSVElBTF9BR0dSRUdBVEUgYjo6c21hbGxpbnQpLCBzdGRkZXZf cG9wKFBBUlRJQUxfQUdHUkVHQVRFIGIpLCBzdGRkZXZfcG9wKFBBUlRJQUxfQUdHUkVHQVRFIGI6 OmJpZ2ludCksIHN0ZGRldl9wb3AoUEFSVElBTF9BR0dSRUdBVEUgYjo6bnVtZXJpYyksIHN0ZGRl dl9zYW1wKFBBUlRJQUxfQUdHUkVHQVRFIGI6OnJlYWwpLCBzdGRkZXZfc2FtcChQQVJUSUFMX0FH R1JFR0FURSBiOjpkb3VibGUgcHJlY2lzaW9uKSwgc3RkZGV2X3NhbXAoUEFSVElBTF9BR0dSRUdB VEUgYjo6c21hbGxpbnQpLCBzdGRkZXZfc2FtcChQQVJUSUFMX0FHR1JFR0FURSBiKSwgc3RkZGV2 X3NhbXAoUEFSVElBTF9BR0dSRUdBVEUgYjo6YmlnaW50KSwgc3RkZGV2X3NhbXAoUEFSVElBTF9B R0dSRUdBVEUgYjo6bnVtZXJpYyksIHN0cmluZ19hZ2coUEFSVElBTF9BR0dSRUdBVEUgY18xYywg JywnOjp0ZXh0KSwgc3RyaW5nX2FnZyhQQVJUSUFMX0FHR1JFR0FURSBjXzFiLCBFJ1xceDJjJzo6 Ynl0ZWEpLCBzdW0oUEFSVElBTF9BR0dSRUdBVEUgYjo6YmlnaW50KSwgc3VtKFBBUlRJQUxfQUdH UkVHQVRFIGI6Om51bWVyaWMpLCB2YXJpYW5jZShQQVJUSUFMX0FHR1JFR0FURSBiOjpyZWFsKSwg dmFyaWFuY2UoUEFSVElBTF9BR0dSRUdBVEUgYjo6ZG91YmxlIHByZWNpc2lvbiksIHZhcmlhbmNl KFBBUlRJQUxfQUdHUkVHQVRFIGI6OnNtYWxsaW50KSwgdmFyaWFuY2UoUEFSVElBTF9BR0dSRUdB VEUgYiksIHZhcmlhbmNlKFBBUlRJQUxfQUdHUkVHQVRFIGI6OmJpZ2ludCksIHZhcmlhbmNlKFBB UlRJQUxfQUdHUkVHQVRFIGI6Om51bWVyaWMpLCB2YXJfcG9wKFBBUlRJQUxfQUdHUkVHQVRFIGI6 OnJlYWwpLCB2YXJfcG9wKFBBUlRJQUxfQUdHUkVHQVRFIGI6OmRvdWJsZSBwcmVjaXNpb24pLCB2 YXJfcG9wKFBBUlRJQUxfQUdHUkVHQVRFIGI6OnNtYWxsaW50KSwgdmFyX3BvcChQQVJUSUFMX0FH R1JFR0FURSBiKSwgdmFyX3BvcChQQVJUSUFMX0FHR1JFR0FURSBiOjpiaWdpbnQpLCB2YXJfcG9w KFBBUlRJQUxfQUdHUkVHQVRFIGI6Om51bWVyaWMpLCB2YXJfc2FtcChQQVJUSUFMX0FHR1JFR0FU RSBiOjpyZWFsKSwgdmFyX3NhbXAoUEFSVElBTF9BR0dSRUdBVEUgYjo6ZG91YmxlIHByZWNpc2lv biksIHZhcl9zYW1wKFBBUlRJQUxfQUdHUkVHQVRFIGI6OnNtYWxsaW50KSwgdmFyX3NhbXAoUEFS VElBTF9BR0dSRUdBVEUgYiksIHZhcl9zYW1wKFBBUlRJQUxfQUdHUkVHQVRFIGI6OmJpZ2ludCks IHZhcl9zYW1wKFBBUlRJQUxfQUdHUkVHQVRFIGI6Om51bWVyaWMpLCBhbnlfdmFsdWUoKGIgKiAw KSksIGJpdF9hbmQoY19iaXQpLCBiaXRfYW5kKGNfMW9yM2ludDIpLCBiaXRfYW5kKGNfMW9yM2lu dDQpLCBiaXRfYW5kKGNfMW9yM2ludDgpLCBiaXRfb3IoY19iaXQpLCBiaXRfb3IoY18xb3IzaW50 MiksIGJpdF9vcihjXzFvcjNpbnQ0KSwgYml0X29yKGNfMW9yM2ludDgpLCBiaXRfeG9yKGNfYml0 KSwgYml0X3hvcihjXzFvcjNpbnQyKSwgYml0X3hvcihjXzFvcjNpbnQ0KSwgYml0X3hvcihjXzFv cjNpbnQ4KSwgYm9vbF9hbmQoY19ib29sKSwgYm9vbF9vcihjX2Jvb2wpLCBjb3VudChiKSwgY291 bnQoKiksIGV2ZXJ5KGNfYm9vbCksIG1heChjX2ludDRhcnJheSksIG1heChjX2VudW0pLCBtYXgo Y18xYzo6Y2hhcmFjdGVyKDEpKSwgbWF4KCgnMDEtMDEtMjAwMCc6OmRhdGUgKyBiKSksIG1heCgo JzAuMC4wLjAnOjppbmV0ICsgYikpLCBtYXgoYjo6cmVhbCksIG1heChiOjpkb3VibGUgcHJlY2lz aW9uKSwgbWF4KGI6OnNtYWxsaW50KSwgbWF4KGIpLCBtYXgoYjo6YmlnaW50KSwgbWF4KGNfaW50 ZXJ2YWwpLCBtYXgoY19tb25leSksIG1heChiOjpudW1lcmljKSwgbWF4KGI6Om9pZCksIG1heChj X3BnX2xzbiksIG1heChjX3RpZCksIG1heChjXzFjKSwgbWF4KGNfdGltZSksIG1heChjX3RpbWV0 eiksIG1heChjX3RpbWVzdGFtcCksIG1heChjX3RpbWVzdGFtcHR6KSwgbWF4KGNfeGlkOCksIG1p bihjX2ludDRhcnJheSksIG1pbihjX2VudW0pLCBtaW4oY18xYzo6Y2hhcmFjdGVyKDEpKSwgbWlu KCgnMDEtMDEtMjAwMCc6OmRhdGUgKyBiKSksIG1pbigoJzAuMC4wLjAnOjppbmV0ICsgYikpLCBt aW4oYjo6cmVhbCksIG1pbihiOjpkb3VibGUgcHJlY2lzaW9uKSwgbWluKGI6OnNtYWxsaW50KSwg bWluKGIpLCBtaW4oYjo6YmlnaW50KSwgbWluKGNfaW50ZXJ2YWwpLCBtaW4oY19tb25leSksIG1p bihiOjpudW1lcmljKSwgbWluKGI6Om9pZCksIG1pbihjX3BnX2xzbiksIG1pbihjX3RpZCksIG1p bihjXzFjKSwgbWluKGNfdGltZSksIG1pbihjX3RpbWV0eiksIG1pbihjX3RpbWVzdGFtcCksIG1p bihjX3RpbWVzdGFtcHR6KSwgbWluKGNfeGlkOCksIHJhbmdlX2ludGVyc2VjdF9hZ2coY19pbnQ0 cmFuZ2UpLCByYW5nZV9pbnRlcnNlY3RfYWdnKGNfaW50NG11bHRpcmFuZ2UpLCByZWdyX2NvdW50 KCgoMiAqIGIpICsgMyk6OmRvdWJsZSBwcmVjaXNpb24sIGI6OmRvdWJsZSBwcmVjaXNpb24pLCBz dW0oYjo6cmVhbCksIHN1bShiOjpkb3VibGUgcHJlY2lzaW9uKSwgc3VtKGI6OnNtYWxsaW50KSwg c3VtKGIpLCBzdW0oUEFSVElBTF9BR0dSRUdBVEUgY19pbnRlcnZhbCksIHN1bShjX21vbmV5KSBG Uk9NIHB1YmxpYy5wYWdnX3RhYl9wMyBXSEVSRSAoKGNfc2VyaWFsID49IDEpKSBBTkQgKChjX3Nl cmlhbCA8PSAzMCkpCisoMTUgcm93cykKKworU0VMRUNUIC8qIGFnZ3JlZ2F0ZSA8PiBwYXJ0aWFs IGFnZ3JlZ2F0ZSAqLworICAgIGFycmF5X2FnZyhjX2ludDRhcnJheSksIGFycmF5X2FnZyhiKSwK KyAgICBhdmcoYjo6aW50MiksIGF2ZyhiOjppbnQ0KSwgYXZnKGI6OmludDgpLCBhdmcoY19pbnRl cnZhbCksCisgICAgYXZnKGI6OmZsb2F0NCksIGF2ZyhiOjpmbG9hdDgpLAorICAgIGNvcnIoYjo6 ZmxvYXQ4LCAoYiAqIGIpOjpmbG9hdDgpLAorICAgIGNvdmFyX3BvcChiOjpmbG9hdDgsIChiICog Yik6OmZsb2F0OCksCisgICAgY292YXJfc2FtcChiOjpmbG9hdDgsIChiICogYik6OmZsb2F0OCks CisgICAgcmVncl9hdmd4KCgyICogYik6OmZsb2F0OCwgYjo6ZmxvYXQ4KSwKKyAgICByZWdyX2F2 Z3koKDIgKiBiKTo6ZmxvYXQ4LCBiOjpmbG9hdDgpLAorICAgIHJlZ3JfaW50ZXJjZXB0KCgyICog YiArIDMpOjpmbG9hdDgsIGI6OmZsb2F0OCksCisgICAgcmVncl9yMigoYiAqIGIpOjpmbG9hdDgs IGI6OmZsb2F0OCksCisgICAgcmVncl9zbG9wZSgoMiAqIGIgKyAzKTo6ZmxvYXQ4LCBiOjpmbG9h dDgpLAorICAgIHJlZ3Jfc3h4KCgyICogYiArIDMpOjpmbG9hdDgsIGI6OmZsb2F0OCksCisgICAg cmVncl9zeHkoKGIgKiBiKTo6ZmxvYXQ4LCBiOjpmbG9hdDgpLAorICAgIHJlZ3Jfc3l5KCgyICog YiArIDMpOjpmbG9hdDgsIGI6OmZsb2F0OCksCisgICAgc3RkZGV2KGI6OmZsb2F0NCksIHN0ZGRl dihiOjpmbG9hdDgpLCBzdGRkZXYoYjo6aW50MiksIHN0ZGRldihiOjppbnQ0KSwgc3RkZGV2KGI6 OmludDgpLCBzdGRkZXYoYjo6bnVtZXJpYyksCisgICAgc3RkZGV2X3BvcChiOjpmbG9hdDQpLCBz dGRkZXZfcG9wKGI6OmZsb2F0OCksIHN0ZGRldl9wb3AoYjo6aW50MiksIHN0ZGRldl9wb3AoYjo6 aW50NCksIHN0ZGRldl9wb3AoYjo6aW50OCksIHN0ZGRldl9wb3AoYjo6bnVtZXJpYyksCisgICAg c3RkZGV2X3NhbXAoYjo6ZmxvYXQ0KSwgc3RkZGV2X3NhbXAoYjo6ZmxvYXQ4KSwgc3RkZGV2X3Nh bXAoYjo6aW50MiksIHN0ZGRldl9zYW1wKGI6OmludDQpLCBzdGRkZXZfc2FtcChiOjppbnQ4KSwg c3RkZGV2X3NhbXAoYjo6bnVtZXJpYyksCisgICAgc3RyaW5nX2FnZyhjXzFjLCAnLCcpLCBzdHJp bmdfYWdnKGNfMWIsICcsJyksCisgICAgc3VtKGI6OmludDgpLCBzdW0oYjo6bnVtZXJpYyksCisg ICAgdmFyaWFuY2UoYjo6ZmxvYXQ0KSwgdmFyaWFuY2UoYjo6ZmxvYXQ4KSwgdmFyaWFuY2UoYjo6 aW50MiksIHZhcmlhbmNlKGI6OmludDQpLCB2YXJpYW5jZShiOjppbnQ4KSwgdmFyaWFuY2UoYjo6 bnVtZXJpYyksCisgICAgdmFyX3BvcChiOjpmbG9hdDQpLCB2YXJfcG9wKGI6OmZsb2F0OCksIHZh cl9wb3AoYjo6aW50MiksIHZhcl9wb3AoYjo6aW50NCksIHZhcl9wb3AoYjo6aW50OCksIHZhcl9w b3AoYjo6bnVtZXJpYyksCisgICAgdmFyX3NhbXAoYjo6ZmxvYXQ0KSwgdmFyX3NhbXAoYjo6Zmxv YXQ4KSwgdmFyX3NhbXAoYjo6aW50MiksIHZhcl9zYW1wKGI6OmludDQpLCB2YXJfc2FtcChiOjpp bnQ4KSwgdmFyX3NhbXAoYjo6bnVtZXJpYyksCisgICAgLyogYWdncmVnYXRlID0gcGFydGlhbCBh Z2dyZWdhdGUgKi8KKyAgICBhbnlfdmFsdWUoYiAqIDApLAorICAgIGJpdF9hbmQoY19iaXQpLCBi aXRfYW5kKGNfMW9yM2ludDIpLCBiaXRfYW5kKGNfMW9yM2ludDQpLCBiaXRfYW5kKGNfMW9yM2lu dDgpLAorICAgIGJpdF9vcihjX2JpdCksIGJpdF9vcihjXzFvcjNpbnQyKSwgYml0X29yKGNfMW9y M2ludDQpLCBiaXRfb3IoY18xb3IzaW50OCksCisgICAgYml0X3hvcihjX2JpdCksIGJpdF94b3Io Y18xb3IzaW50MiksIGJpdF94b3IoY18xb3IzaW50NCksIGJpdF94b3IoY18xb3IzaW50OCksCisg ICAgYm9vbF9hbmQoY19ib29sKSwKKyAgICBib29sX29yKGNfYm9vbCksCisgICAgY291bnQoYiks IGNvdW50KCopLAorICAgIGV2ZXJ5KGNfYm9vbCksCisgICAgbWF4KGNfaW50NGFycmF5KSwgbWF4 KGNfZW51bSksIG1heChjXzFjOjpjaGFyKDEpKSwgbWF4KCcyMDAwLTAxLTAxJzo6ZGF0ZSArIGIp LCBtYXgoJzAuMC4wLjAnOjppbmV0ICsgYiksIG1heChiOjpmbG9hdDQpLCBtYXgoYjo6ZmxvYXQ4 KSwgbWF4KGI6OmludDIpLCBtYXgoYjo6aW50NCksIG1heChiOjppbnQ4KSwgbWF4KGNfaW50ZXJ2 YWwpLCBtYXgoY19tb25leSksIG1heChiOjpudW1lcmljKSwgbWF4KGI6Om9pZCksIG1heChjX3Bn X2xzbiksIG1heChjX3RpZCksIG1heChjXzFjKSwgbWF4KGNfdGltZSksIG1heChjX3RpbWV0eiks IG1heChjX3RpbWVzdGFtcCksIG1heChjX3RpbWVzdGFtcHR6KSwgbWF4KGNfeGlkOCksCisgICAg bWluKGNfaW50NGFycmF5KSwgbWluKGNfZW51bSksIG1pbihjXzFjOjpjaGFyKDEpKSwgbWluKCcy MDAwLTAxLTAxJzo6ZGF0ZSArIGIpLCBtaW4oJzAuMC4wLjAnOjppbmV0ICsgYiksIG1pbihiOjpm bG9hdDQpLCBtaW4oYjo6ZmxvYXQ4KSwgbWluKGI6OmludDIpLCBtaW4oYjo6aW50NCksIG1pbihi OjppbnQ4KSwgbWluKGNfaW50ZXJ2YWwpLCBtaW4oY19tb25leSksIG1pbihiOjpudW1lcmljKSwg bWluKGI6Om9pZCksIG1pbihjX3BnX2xzbiksIG1pbihjX3RpZCksIG1pbihjXzFjKSwgbWluKGNf dGltZSksIG1pbihjX3RpbWV0eiksIG1pbihjX3RpbWVzdGFtcCksIG1pbihjX3RpbWVzdGFtcHR6 KSwgbWluKGNfeGlkOCksCisgICAgcmFuZ2VfaW50ZXJzZWN0X2FnZyhjX2ludDRyYW5nZSksIHJh bmdlX2ludGVyc2VjdF9hZ2coY19pbnQ0bXVsdGlyYW5nZSksCisgICAgcmVncl9jb3VudCgoMiAq IGIgKyAzKTo6ZmxvYXQ4LCBiOjpmbG9hdDgpLAorICAgIHN1bShiOjpmbG9hdDQpLCBzdW0oYjo6 ZmxvYXQ4KSwgc3VtKGI6OmludDIpLCBzdW0oYjo6aW50NCksCXN1bShjX2ludGVydmFsKSwgc3Vt KGNfbW9uZXkpCisgIEZST00gcGFnZ190YWIgV0hFUkUgY19zZXJpYWwgYmV0d2VlbiAxIGFuZCAz MDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5X2FnZyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJy YXlfYWdnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgYXZn ICAgICAgICAgfCAgICAgICAgIGF2ZyAgICAgICAgIHwgICAgICAgICBhdmcgICAgICAgICB8ICAg IGF2ZyAgICAgfCBhdmcgIHwgYXZnICB8ICAgICAgIGNvcnIgICAgICAgIHwgICAgY292YXJfcG9w ICAgICB8IGNvdmFyX3NhbXAgfCByZWdyX2F2Z3ggfCByZWdyX2F2Z3kgfCByZWdyX2ludGVyY2Vw dCB8ICAgICAgcmVncl9yMiAgICAgIHwgcmVncl9zbG9wZSB8IHJlZ3Jfc3h4IHwgcmVncl9zeHkg fCByZWdyX3N5eSB8ICAgICBzdGRkZXYgICAgICB8ICAgICBzdGRkZXYgICAgICB8ICAgICAgIHN0 ZGRldiAgICAgICB8ICAgICAgIHN0ZGRldiAgICAgICB8ICAgICAgIHN0ZGRldiAgICAgICB8ICAg ICAgIHN0ZGRldiAgICAgICB8ICAgIHN0ZGRldl9wb3AgICAgfCAgICBzdGRkZXZfcG9wICAgIHwg ICAgIHN0ZGRldl9wb3AgICAgIHwgICAgIHN0ZGRldl9wb3AgICAgIHwgICAgIHN0ZGRldl9wb3Ag ICAgIHwgICAgIHN0ZGRldl9wb3AgICAgIHwgICBzdGRkZXZfc2FtcCAgIHwgICBzdGRkZXZfc2Ft cCAgIHwgICAgc3RkZGV2X3NhbXAgICAgIHwgICAgc3RkZGV2X3NhbXAgICAgIHwgICAgc3RkZGV2 X3NhbXAgICAgIHwgICAgc3RkZGV2X3NhbXAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAg c3RyaW5nX2FnZyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nX2FnZyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzdW0gfCBzdW0g fCB2YXJpYW5jZSB8IHZhcmlhbmNlIHwgICAgICB2YXJpYW5jZSAgICAgICB8ICAgICAgdmFyaWFu Y2UgICAgICAgfCAgICAgIHZhcmlhbmNlICAgICAgIHwgICAgICB2YXJpYW5jZSAgICAgICB8ICAg ICB2YXJfcG9wICAgICAgfCAgICAgdmFyX3BvcCAgICAgIHwgICAgICAgdmFyX3BvcCAgICAgICB8 ICAgICAgIHZhcl9wb3AgICAgICAgfCAgICAgICB2YXJfcG9wICAgICAgIHwgICAgICAgdmFyX3Bv cCAgICAgICB8IHZhcl9zYW1wIHwgdmFyX3NhbXAgfCAgICAgIHZhcl9zYW1wICAgICAgIHwgICAg ICB2YXJfc2FtcCAgICAgICB8ICAgICAgdmFyX3NhbXAgICAgICAgfCAgICAgIHZhcl9zYW1wICAg ICAgIHwgYW55X3ZhbHVlIHwgYml0X2FuZCB8IGJpdF9hbmQgfCBiaXRfYW5kIHwgYml0X2FuZCB8 IGJpdF9vciB8IGJpdF9vciB8IGJpdF9vciB8IGJpdF9vciB8IGJpdF94b3IgfCBiaXRfeG9yIHwg Yml0X3hvciB8IGJpdF94b3IgfCBib29sX2FuZCB8IGJvb2xfb3IgfCBjb3VudCB8IGNvdW50IHwg ZXZlcnkgfCAgbWF4ICB8ICBtYXggIHwgbWF4IHwgICAgbWF4ICAgICB8ICAgbWF4ICAgIHwgbWF4 IHwgbWF4IHwgbWF4IHwgbWF4IHwgbWF4IHwgICBtYXggICB8ICBtYXggIHwgbWF4IHwgbWF4IHwg bWF4ICB8ICBtYXggICB8IG1heCB8ICAgbWF4ICAgIHwgICAgIG1heCAgICAgfCAgICAgICAgICAg bWF4ICAgICAgICAgICAgfCAgICAgICAgICAgICBtYXggICAgICAgICAgICAgIHwgbWF4IHwgIG1p biAgfCBtaW4gfCBtaW4gfCAgICBtaW4gICAgIHwgICBtaW4gICB8IG1pbiB8IG1pbiB8IG1pbiB8 IG1pbiB8IG1pbiB8IG1pbiB8ICBtaW4gIHwgbWluIHwgbWluIHwgbWluIHwgIG1pbiAgfCBtaW4g fCAgIG1pbiAgICB8ICAgICBtaW4gICAgIHwgICAgICAgICAgIG1pbiAgICAgICAgICAgIHwgICAg ICAgICAgICAgbWluICAgICAgICAgICAgICB8IG1pbiB8IHJhbmdlX2ludGVyc2VjdF9hZ2cgfCBy YW5nZV9pbnRlcnNlY3RfYWdnIHwgcmVncl9jb3VudCB8IHN1bSB8IHN1bSB8IHN1bSB8IHN1bSB8 ICAgIHN1bSAgICB8ICBzdW0gICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLS0tLS0rLS0t LS0tLSstLS0tLSstLS0tLSstLS0tLS0rLS0tLS0tLS0rLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLSstLS0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0tLSstLS0tLSstLS0tLSst LS0tLSstLS0tLS0tKy0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0r LS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0KKyB7ezEsMH0sezAsMH0sezEs MH0sezAsMH0sezEsMH0sezAsMH0sezEsMH0sezAsMH0sezEsMH0sezAsMH0sezAsMH0sezEsMH0s ezAsMH0sezEsMH0sezAsMH0sezEsMH0sezAsMH0sezEsMH0sezAsMH0sezEsMH0sezAsMH0sezEs MH0sezAsMH0sezEsMH0sezAsMH0sezEsMH0sezAsMH0sezEsMH0sezAsMH0sezEsMH19IHwgezEs MiwzLDQsNSw2LDcsOCw5LDMwLDEwLDExLDEyLDEzLDE0LDE1LDE2LDE3LDE4LDE5LDIwLDIxLDIy LDIzLDI0LDI1LDI2LDI3LDI4LDI5fSB8IDE1LjUwMDAwMDAwMDAwMDAwMDAgfCAxNS41MDAwMDAw MDAwMDAwMDAwIHwgMTUuNTAwMDAwMDAwMDAwMDAwMCB8IEAgMC41IHNlY3MgfCAxNS41IHwgMTUu NSB8IDAuOTcwMjk4OTEzNTg5MjU4IHwgMjMyMi40MTY2NjY2NjY2NyB8ICAgICAyNDAyLjUgfCAg ICAgIDE1LjUgfCAgICAgICAgMzEgfCAgICAgICAgICAgICAgMyB8IDAuOTQxNDc5OTgxNzEyNDk0 IHwgICAgICAgICAgMiB8ICAgMjI0Ny41IHwgIDY5NjcyLjUgfCAgICAgODk5MCB8IDguODAzNDA4 NDMwODI5NSB8IDguODAzNDA4NDMwODI5NSB8IDguODAzNDA4NDMwODI5NTA0NiB8IDguODAzNDA4 NDMwODI5NTA0NiB8IDguODAzNDA4NDMwODI5NTA0NiB8IDguODAzNDA4NDMwODI5NTA0NiB8IDgu NjU1NDQxNDQ4Mzk5MTkgfCA4LjY1NTQ0MTQ0ODM5OTE5IHwgOC42NTU0NDE0NDgzOTkxODk5IHwg OC42NTU0NDE0NDgzOTkxODk5IHwgOC42NTU0NDE0NDgzOTkxODk5IHwgOC42NTU0NDE0NDgzOTkx ODk5IHwgOC44MDM0MDg0MzA4Mjk1IHwgOC44MDM0MDg0MzA4Mjk1IHwgOC44MDM0MDg0MzA4Mjk1 MDQ2IHwgOC44MDM0MDg0MzA4Mjk1MDQ2IHwgOC44MDM0MDg0MzA4Mjk1MDQ2IHwgOC44MDM0MDg0 MzA4Mjk1MDQ2IHwgMCwxLDIsMyw0LDUsNiw3LDgsOSw5LDAsMSwyLDMsNCw1LDYsNyw4LDksMCwx LDIsMyw0LDUsNiw3LDggfCBceDMwMmMzMTJjMzIyYzMzMmMzNDJjMzUyYzM2MmMzNzJjMzgyYzM5 MmMzOTJjMzAyYzMxMmMzMjJjMzMyYzM0MmMzNTJjMzYyYzM3MmMzODJjMzkyYzMwMmMzMTJjMzIy YzMzMmMzNDJjMzUyYzM2MmMzNzJjMzggfCA0NjUgfCA0NjUgfCAgICAgNzcuNSB8ICAgICA3Ny41 IHwgNzcuNTAwMDAwMDAwMDAwMDAwMCB8IDc3LjUwMDAwMDAwMDAwMDAwMDAgfCA3Ny41MDAwMDAw MDAwMDAwMDAwIHwgNzcuNTAwMDAwMDAwMDAwMDAwMCB8IDc0LjkxNjY2NjY2NjY2NjcgfCA3NC45 MTY2NjY2NjY2NjY3IHwgNzQuOTE2NjY2NjY2NjY2NjY2NyB8IDc0LjkxNjY2NjY2NjY2NjY2Njcg fCA3NC45MTY2NjY2NjY2NjY2NjY3IHwgNzQuOTE2NjY2NjY2NjY2NjY2NyB8ICAgICA3Ny41IHwg ICAgIDc3LjUgfCA3Ny41MDAwMDAwMDAwMDAwMDAwIHwgNzcuNTAwMDAwMDAwMDAwMDAwMCB8IDc3 LjUwMDAwMDAwMDAwMDAwMDAgfCA3Ny41MDAwMDAwMDAwMDAwMDAwIHwgICAgICAgICAwIHwgMDEg ICAgICB8ICAgICAgIDEgfCAgICAgICAxIHwgICAgICAgMSB8IDExICAgICB8ICAgICAgMyB8ICAg ICAgMyB8ICAgICAgMyB8IDEwICAgICAgfCAgICAgICAyIHwgICAgICAgMiB8ICAgICAgIDIgfCBm ICAgICAgICB8IHQgICAgICAgfCAgICAzMCB8ICAgIDMwIHwgZiAgICAgfCB7MSwwfSB8IGhhcHB5 IHwgOSAgIHwgMDEtMzEtMjAwMCB8IDAuMC4wLjMwIHwgIDMwIHwgIDMwIHwgIDMwIHwgIDMwIHwg IDMwIHwgQCAxIHNlYyB8ICQxLjAwIHwgIDMwIHwgIDMwIHwgMC8zMCB8ICgwLDMwKSB8IDkgICB8 IDAwOjAwOjMwIHwgMDA6MDA6MzAtMDggfCBTYXQgSmFuIDAxIDAwOjAwOjMwIDIwMDAgfCBTYXQg SmFuIDAxIDAwOjAwOjMwIDIwMDAgUFNUIHwgICA5IHwgezAsMH0gfCBzYWQgfCAwICAgfCAwMS0w Mi0yMDAwIHwgMC4wLjAuMSB8ICAgMSB8ICAgMSB8ICAgMSB8ICAgMSB8ICAgMSB8IEAgMCB8ICQw LjAwIHwgICAxIHwgICAxIHwgMC8xIHwgKDAsMSkgfCAwICAgfCAwMDowMDowMSB8IDAwOjAwOjAx LTA4IHwgU2F0IEphbiAwMSAwMDowMDowMSAyMDAwIHwgU2F0IEphbiAwMSAwMDowMDowMSAyMDAw IFBTVCB8ICAgMCB8IFswLDEpICAgICAgICAgICAgICAgfCB7WzAsMSksWzEwMCwxMDEpfSAgIHwg ICAgICAgICAzMCB8IDQ2NSB8IDQ2NSB8IDQ2NSB8IDQ2NSB8IEAgMTUgc2VjcyB8ICQxNS4wMAor KDEgcm93KQorCistLSBUZXN0cyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQorQUxURVIgU0VS VkVSIGxvb3BiYWNrIE9QVElPTlMgKEFERCBjaGVja19wYXJ0aWFsX2FnZ3JlZ2F0ZV9zdXBwb3J0 ICdmYWxzZScpOworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKQorU0VMRUNUIGIsIGF2Zyhh KSwgbWF4KGEpLCBjb3VudCgqKSBGUk9NIHBhZ2dfdGFiIEdST1VQIEJZIGIgT1JERVIgQlkgMTsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBR VUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBTb3J0CisgICBPdXRwdXQ6IHBhZ2dfdGFiLmIsIChhdmcocGFn Z190YWIuYSkpLCAobWF4KHBhZ2dfdGFiLmEpKSwgKGNvdW50KCopKQorICAgU29ydCBLZXk6IHBh Z2dfdGFiLmIKKyAgIC0+ICBGaW5hbGl6ZSBIYXNoQWdncmVnYXRlCisgICAgICAgICBPdXRwdXQ6 IHBhZ2dfdGFiLmIsIGF2ZyhwYWdnX3RhYi5hKSwgbWF4KHBhZ2dfdGFiLmEpLCBjb3VudCgqKQor ICAgICAgICAgR3JvdXAgS2V5OiBwYWdnX3RhYi5iCisgICAgICAgICAtPiAgQXBwZW5kCisgICAg ICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuCisgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6 IHBhZ2dfdGFiLmIsIChQQVJUSUFMIGF2ZyhwYWdnX3RhYi5hKSksIChQQVJUSUFMIG1heChwYWdn X3RhYi5hKSksIChQQVJUSUFMIGNvdW50KCopKQorICAgICAgICAgICAgICAgICAgICAgUmVsYXRp b25zOiBBZ2dyZWdhdGUgb24gKHB1YmxpYy5mcGFnZ190YWJfcDEgcGFnZ190YWIpCisgICAgICAg ICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYiwgYXZnKFBBUlRJQUxfQUdHUkVHQVRF IGEpLCBtYXgoYSksIGNvdW50KCopIEZST00gcHVibGljLnBhZ2dfdGFiX3AxIEdST1VQIEJZIDEK KyAgICAgICAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4KKyAgICAgICAgICAgICAgICAgICAgIE91 dHB1dDogcGFnZ190YWJfMS5iLCAoUEFSVElBTCBhdmcocGFnZ190YWJfMS5hKSksIChQQVJUSUFM IG1heChwYWdnX3RhYl8xLmEpKSwgKFBBUlRJQUwgY291bnQoKikpCisgICAgICAgICAgICAgICAg ICAgICBSZWxhdGlvbnM6IEFnZ3JlZ2F0ZSBvbiAocHVibGljLmZwYWdnX3RhYl9wMiBwYWdnX3Rh Yl8xKQorICAgICAgICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGIsIGF2ZyhQQVJU SUFMX0FHR1JFR0FURSBhKSwgbWF4KGEpLCBjb3VudCgqKSBGUk9NIHB1YmxpYy5wYWdnX3RhYl9w MiBHUk9VUCBCWSAxCisgICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuCisgICAgICAgICAg ICAgICAgICAgICBPdXRwdXQ6IHBhZ2dfdGFiXzIuYiwgKFBBUlRJQUwgYXZnKHBhZ2dfdGFiXzIu YSkpLCAoUEFSVElBTCBtYXgocGFnZ190YWJfMi5hKSksIChQQVJUSUFMIGNvdW50KCopKQorICAg ICAgICAgICAgICAgICAgICAgUmVsYXRpb25zOiBBZ2dyZWdhdGUgb24gKHB1YmxpYy5mcGFnZ190 YWJfcDMgcGFnZ190YWJfMikKKyAgICAgICAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVD VCBiLCBhdmcoUEFSVElBTF9BR0dSRUdBVEUgYSksIG1heChhKSwgY291bnQoKikgRlJPTSBwdWJs aWMucGFnZ190YWJfcDMgR1JPVVAgQlkgMQorKDE5IHJvd3MpCisKK1NFTEVDVCBiLCBhdmcoYSks IG1heChhKSwgY291bnQoKikgRlJPTSBwYWdnX3RhYiBHUk9VUCBCWSBiIE9SREVSIEJZIDE7Cisg YiAgfCAgICAgICAgIGF2ZyAgICAgICAgIHwgbWF4IHwgY291bnQgCistLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLSstLS0tLS0tCisgIDAgfCAxMC4wMDAwMDAwMDAwMDAwMDAwIHwgIDIw IHwgICAgNjAKKyAgMSB8IDExLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjEgfCAgICA2MAorICAyIHwg MTIuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMiB8ICAgIDYwCisgIDMgfCAxMy4wMDAwMDAwMDAwMDAw MDAwIHwgIDIzIHwgICAgNjAKKyAgNCB8IDE0LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjQgfCAgICA2 MAorICA1IHwgMTUuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNSB8ICAgIDYwCisgIDYgfCAxNi4wMDAw MDAwMDAwMDAwMDAwIHwgIDI2IHwgICAgNjAKKyAgNyB8IDE3LjAwMDAwMDAwMDAwMDAwMDAgfCAg MjcgfCAgICA2MAorICA4IHwgMTguMDAwMDAwMDAwMDAwMDAwMCB8ICAyOCB8ICAgIDYwCisgIDkg fCAxOS4wMDAwMDAwMDAwMDAwMDAwIHwgIDI5IHwgICAgNjAKKyAxMCB8IDEwLjAwMDAwMDAwMDAw MDAwMDAgfCAgMjAgfCAgICA2MAorIDExIHwgMTEuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMSB8ICAg IDYwCisgMTIgfCAxMi4wMDAwMDAwMDAwMDAwMDAwIHwgIDIyIHwgICAgNjAKKyAxMyB8IDEzLjAw MDAwMDAwMDAwMDAwMDAgfCAgMjMgfCAgICA2MAorIDE0IHwgMTQuMDAwMDAwMDAwMDAwMDAwMCB8 ICAyNCB8ICAgIDYwCisgMTUgfCAxNS4wMDAwMDAwMDAwMDAwMDAwIHwgIDI1IHwgICAgNjAKKyAx NiB8IDE2LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjYgfCAgICA2MAorIDE3IHwgMTcuMDAwMDAwMDAw MDAwMDAwMCB8ICAyNyB8ICAgIDYwCisgMTggfCAxOC4wMDAwMDAwMDAwMDAwMDAwIHwgIDI4IHwg ICAgNjAKKyAxOSB8IDE5LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjkgfCAgICA2MAorIDIwIHwgMTAu MDAwMDAwMDAwMDAwMDAwMCB8ICAyMCB8ICAgIDYwCisgMjEgfCAxMS4wMDAwMDAwMDAwMDAwMDAw IHwgIDIxIHwgICAgNjAKKyAyMiB8IDEyLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjIgfCAgICA2MAor IDIzIHwgMTMuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMyB8ICAgIDYwCisgMjQgfCAxNC4wMDAwMDAw MDAwMDAwMDAwIHwgIDI0IHwgICAgNjAKKyAyNSB8IDE1LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjUg fCAgICA2MAorIDI2IHwgMTYuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNiB8ICAgIDYwCisgMjcgfCAx Ny4wMDAwMDAwMDAwMDAwMDAwIHwgIDI3IHwgICAgNjAKKyAyOCB8IDE4LjAwMDAwMDAwMDAwMDAw MDAgfCAgMjggfCAgICA2MAorIDI5IHwgMTkuMDAwMDAwMDAwMDAwMDAwMCB8ICAyOSB8ICAgIDYw CisgMzAgfCAxMC4wMDAwMDAwMDAwMDAwMDAwIHwgIDIwIHwgICAgNjAKKyAzMSB8IDExLjAwMDAw MDAwMDAwMDAwMDAgfCAgMjEgfCAgICA2MAorIDMyIHwgMTIuMDAwMDAwMDAwMDAwMDAwMCB8ICAy MiB8ICAgIDYwCisgMzMgfCAxMy4wMDAwMDAwMDAwMDAwMDAwIHwgIDIzIHwgICAgNjAKKyAzNCB8 IDE0LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjQgfCAgICA2MAorIDM1IHwgMTUuMDAwMDAwMDAwMDAw MDAwMCB8ICAyNSB8ICAgIDYwCisgMzYgfCAxNi4wMDAwMDAwMDAwMDAwMDAwIHwgIDI2IHwgICAg NjAKKyAzNyB8IDE3LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjcgfCAgICA2MAorIDM4IHwgMTguMDAw MDAwMDAwMDAwMDAwMCB8ICAyOCB8ICAgIDYwCisgMzkgfCAxOS4wMDAwMDAwMDAwMDAwMDAwIHwg IDI5IHwgICAgNjAKKyA0MCB8IDEwLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjAgfCAgICA2MAorIDQx IHwgMTEuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMSB8ICAgIDYwCisgNDIgfCAxMi4wMDAwMDAwMDAw MDAwMDAwIHwgIDIyIHwgICAgNjAKKyA0MyB8IDEzLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjMgfCAg ICA2MAorIDQ0IHwgMTQuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNCB8ICAgIDYwCisgNDUgfCAxNS4w MDAwMDAwMDAwMDAwMDAwIHwgIDI1IHwgICAgNjAKKyA0NiB8IDE2LjAwMDAwMDAwMDAwMDAwMDAg fCAgMjYgfCAgICA2MAorIDQ3IHwgMTcuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNyB8ICAgIDYwCisg NDggfCAxOC4wMDAwMDAwMDAwMDAwMDAwIHwgIDI4IHwgICAgNjAKKyA0OSB8IDE5LjAwMDAwMDAw MDAwMDAwMDAgfCAgMjkgfCAgICA2MAorKDUwIHJvd3MpCisKK0FMVEVSIFNFUlZFUiBsb29wYmFj ayBPUFRJT05TIChTRVQgY2hlY2tfcGFydGlhbF9hZ2dyZWdhdGVfc3VwcG9ydCAndHJ1ZScpOwor RVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKQorU0VMRUNUIGIsIGF2ZyhhKSwgbWF4KGEpLCBj b3VudCgqKSBGUk9NIHBhZ2dfdGFiIEdST1VQIEJZIGIgT1JERVIgQlkgMTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBTb3J0CisgICBPdXRwdXQ6IHBhZ2dfdGFiLmIsIChhdmcocGFnZ190YWIuYSkpLCAo bWF4KHBhZ2dfdGFiLmEpKSwgKGNvdW50KCopKQorICAgU29ydCBLZXk6IHBhZ2dfdGFiLmIKKyAg IC0+ICBGaW5hbGl6ZSBIYXNoQWdncmVnYXRlCisgICAgICAgICBPdXRwdXQ6IHBhZ2dfdGFiLmIs IGF2ZyhwYWdnX3RhYi5hKSwgbWF4KHBhZ2dfdGFiLmEpLCBjb3VudCgqKQorICAgICAgICAgR3Jv dXAgS2V5OiBwYWdnX3RhYi5iCisgICAgICAgICAtPiAgQXBwZW5kCisgICAgICAgICAgICAgICAt PiAgRm9yZWlnbiBTY2FuCisgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IHBhZ2dfdGFiLmIs IChQQVJUSUFMIGF2ZyhwYWdnX3RhYi5hKSksIChQQVJUSUFMIG1heChwYWdnX3RhYi5hKSksIChQ QVJUSUFMIGNvdW50KCopKQorICAgICAgICAgICAgICAgICAgICAgUmVsYXRpb25zOiBBZ2dyZWdh dGUgb24gKHB1YmxpYy5mcGFnZ190YWJfcDEgcGFnZ190YWIpCisgICAgICAgICAgICAgICAgICAg ICBSZW1vdGUgU1FMOiBTRUxFQ1QgYiwgYXZnKFBBUlRJQUxfQUdHUkVHQVRFIGEpLCBtYXgoYSks IGNvdW50KCopIEZST00gcHVibGljLnBhZ2dfdGFiX3AxIEdST1VQIEJZIDEKKyAgICAgICAgICAg ICAgIC0+ICBGb3JlaWduIFNjYW4KKyAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogcGFnZ190 YWJfMS5iLCAoUEFSVElBTCBhdmcocGFnZ190YWJfMS5hKSksIChQQVJUSUFMIG1heChwYWdnX3Rh Yl8xLmEpKSwgKFBBUlRJQUwgY291bnQoKikpCisgICAgICAgICAgICAgICAgICAgICBSZWxhdGlv bnM6IEFnZ3JlZ2F0ZSBvbiAocHVibGljLmZwYWdnX3RhYl9wMiBwYWdnX3RhYl8xKQorICAgICAg ICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGIsIGF2ZyhQQVJUSUFMX0FHR1JFR0FU RSBhKSwgbWF4KGEpLCBjb3VudCgqKSBGUk9NIHB1YmxpYy5wYWdnX3RhYl9wMiBHUk9VUCBCWSAx CisgICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuCisgICAgICAgICAgICAgICAgICAgICBP dXRwdXQ6IHBhZ2dfdGFiXzIuYiwgKFBBUlRJQUwgYXZnKHBhZ2dfdGFiXzIuYSkpLCAoUEFSVElB TCBtYXgocGFnZ190YWJfMi5hKSksIChQQVJUSUFMIGNvdW50KCopKQorICAgICAgICAgICAgICAg ICAgICAgUmVsYXRpb25zOiBBZ2dyZWdhdGUgb24gKHB1YmxpYy5mcGFnZ190YWJfcDMgcGFnZ190 YWJfMikKKyAgICAgICAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBiLCBhdmcoUEFS VElBTF9BR0dSRUdBVEUgYSksIG1heChhKSwgY291bnQoKikgRlJPTSBwdWJsaWMucGFnZ190YWJf cDMgR1JPVVAgQlkgMQorKDE5IHJvd3MpCisKK1NFTEVDVCBiLCBhdmcoYSksIG1heChhKSwgY291 bnQoKikgRlJPTSBwYWdnX3RhYiBHUk9VUCBCWSBiIE9SREVSIEJZIDE7CisgYiAgfCAgICAgICAg IGF2ZyAgICAgICAgIHwgbWF4IHwgY291bnQgCistLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLSstLS0tLS0tCisgIDAgfCAxMC4wMDAwMDAwMDAwMDAwMDAwIHwgIDIwIHwgICAgNjAKKyAg MSB8IDExLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjEgfCAgICA2MAorICAyIHwgMTIuMDAwMDAwMDAw MDAwMDAwMCB8ICAyMiB8ICAgIDYwCisgIDMgfCAxMy4wMDAwMDAwMDAwMDAwMDAwIHwgIDIzIHwg ICAgNjAKKyAgNCB8IDE0LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjQgfCAgICA2MAorICA1IHwgMTUu MDAwMDAwMDAwMDAwMDAwMCB8ICAyNSB8ICAgIDYwCisgIDYgfCAxNi4wMDAwMDAwMDAwMDAwMDAw IHwgIDI2IHwgICAgNjAKKyAgNyB8IDE3LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjcgfCAgICA2MAor ICA4IHwgMTguMDAwMDAwMDAwMDAwMDAwMCB8ICAyOCB8ICAgIDYwCisgIDkgfCAxOS4wMDAwMDAw MDAwMDAwMDAwIHwgIDI5IHwgICAgNjAKKyAxMCB8IDEwLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjAg fCAgICA2MAorIDExIHwgMTEuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMSB8ICAgIDYwCisgMTIgfCAx Mi4wMDAwMDAwMDAwMDAwMDAwIHwgIDIyIHwgICAgNjAKKyAxMyB8IDEzLjAwMDAwMDAwMDAwMDAw MDAgfCAgMjMgfCAgICA2MAorIDE0IHwgMTQuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNCB8ICAgIDYw CisgMTUgfCAxNS4wMDAwMDAwMDAwMDAwMDAwIHwgIDI1IHwgICAgNjAKKyAxNiB8IDE2LjAwMDAw MDAwMDAwMDAwMDAgfCAgMjYgfCAgICA2MAorIDE3IHwgMTcuMDAwMDAwMDAwMDAwMDAwMCB8ICAy NyB8ICAgIDYwCisgMTggfCAxOC4wMDAwMDAwMDAwMDAwMDAwIHwgIDI4IHwgICAgNjAKKyAxOSB8 IDE5LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjkgfCAgICA2MAorIDIwIHwgMTAuMDAwMDAwMDAwMDAw MDAwMCB8ICAyMCB8ICAgIDYwCisgMjEgfCAxMS4wMDAwMDAwMDAwMDAwMDAwIHwgIDIxIHwgICAg NjAKKyAyMiB8IDEyLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjIgfCAgICA2MAorIDIzIHwgMTMuMDAw MDAwMDAwMDAwMDAwMCB8ICAyMyB8ICAgIDYwCisgMjQgfCAxNC4wMDAwMDAwMDAwMDAwMDAwIHwg IDI0IHwgICAgNjAKKyAyNSB8IDE1LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjUgfCAgICA2MAorIDI2 IHwgMTYuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNiB8ICAgIDYwCisgMjcgfCAxNy4wMDAwMDAwMDAw MDAwMDAwIHwgIDI3IHwgICAgNjAKKyAyOCB8IDE4LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjggfCAg ICA2MAorIDI5IHwgMTkuMDAwMDAwMDAwMDAwMDAwMCB8ICAyOSB8ICAgIDYwCisgMzAgfCAxMC4w MDAwMDAwMDAwMDAwMDAwIHwgIDIwIHwgICAgNjAKKyAzMSB8IDExLjAwMDAwMDAwMDAwMDAwMDAg fCAgMjEgfCAgICA2MAorIDMyIHwgMTIuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMiB8ICAgIDYwCisg MzMgfCAxMy4wMDAwMDAwMDAwMDAwMDAwIHwgIDIzIHwgICAgNjAKKyAzNCB8IDE0LjAwMDAwMDAw MDAwMDAwMDAgfCAgMjQgfCAgICA2MAorIDM1IHwgMTUuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNSB8 ICAgIDYwCisgMzYgfCAxNi4wMDAwMDAwMDAwMDAwMDAwIHwgIDI2IHwgICAgNjAKKyAzNyB8IDE3 LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjcgfCAgICA2MAorIDM4IHwgMTguMDAwMDAwMDAwMDAwMDAw MCB8ICAyOCB8ICAgIDYwCisgMzkgfCAxOS4wMDAwMDAwMDAwMDAwMDAwIHwgIDI5IHwgICAgNjAK KyA0MCB8IDEwLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjAgfCAgICA2MAorIDQxIHwgMTEuMDAwMDAw MDAwMDAwMDAwMCB8ICAyMSB8ICAgIDYwCisgNDIgfCAxMi4wMDAwMDAwMDAwMDAwMDAwIHwgIDIy IHwgICAgNjAKKyA0MyB8IDEzLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjMgfCAgICA2MAorIDQ0IHwg MTQuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNCB8ICAgIDYwCisgNDUgfCAxNS4wMDAwMDAwMDAwMDAw MDAwIHwgIDI1IHwgICAgNjAKKyA0NiB8IDE2LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjYgfCAgICA2 MAorIDQ3IHwgMTcuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNyB8ICAgIDYwCisgNDggfCAxOC4wMDAw MDAwMDAwMDAwMDAwIHwgIDI4IHwgICAgNjAKKyA0OSB8IDE5LjAwMDAwMDAwMDAwMDAwMDAgfCAg MjkgfCAgICA2MAorKDUwIHJvd3MpCisKK0FMVEVSIFNFUlZFUiBsb29wYmFjayBPUFRJT05TIChT RVQgZmR3X3R1cGxlX2Nvc3QgJzEuMCcpOworU0VUIGVuYWJsZV9wYXJ0aXRpb253aXNlX2pvaW49 b247CitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpCitTRUxFQ1QgYXZnKHQxLmIpLCBhdmco dDEuYjo6aW50OCkgRlJPTSBwYWdnX3RhYiB0MSBKT0lOIHBhZ2dfdGFiIHQyIFVTSU5HKGEpOwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgRmluYWxpemUgQWdncmVnYXRlCisgICBPdXRwdXQ6 IGF2Zyh0MS5iKSwgYXZnKCh0MS5iKTo6YmlnaW50KQorICAgLT4gIEFwcGVuZAorICAgICAgICAg LT4gIEZvcmVpZ24gU2NhbgorICAgICAgICAgICAgICAgT3V0cHV0OiAoUEFSVElBTCBhdmcodDEu YikpLCAoUEFSVElBTCBhdmcoKHQxLmIpOjpiaWdpbnQpKQorICAgICAgICAgICAgICAgUmVsYXRp b25zOiBBZ2dyZWdhdGUgb24gKChwdWJsaWMuZnBhZ2dfdGFiX3AxIHQxKSBJTk5FUiBKT0lOIChw dWJsaWMuZnBhZ2dfdGFiX3AxIHQyKSkKKyAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVD VCBhdmcoUEFSVElBTF9BR0dSRUdBVEUgcjQuYiksIGF2ZyhQQVJUSUFMX0FHR1JFR0FURSByNC5i OjpiaWdpbnQpIEZST00gKHB1YmxpYy5wYWdnX3RhYl9wMSByNCBJTk5FUiBKT0lOIHB1YmxpYy5w YWdnX3RhYl9wMSByNyBPTiAoKChyNC5hID0gcjcuYSkpKSkKKyAgICAgICAgIC0+ICBGb3JlaWdu IFNjYW4KKyAgICAgICAgICAgICAgIE91dHB1dDogKFBBUlRJQUwgYXZnKHQxXzEuYikpLCAoUEFS VElBTCBhdmcoKHQxXzEuYik6OmJpZ2ludCkpCisgICAgICAgICAgICAgICBSZWxhdGlvbnM6IEFn Z3JlZ2F0ZSBvbiAoKHB1YmxpYy5mcGFnZ190YWJfcDIgdDFfMSkgSU5ORVIgSk9JTiAocHVibGlj LmZwYWdnX3RhYl9wMiB0Ml8xKSkKKyAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBh dmcoUEFSVElBTF9BR0dSRUdBVEUgcjUuYiksIGF2ZyhQQVJUSUFMX0FHR1JFR0FURSByNS5iOjpi aWdpbnQpIEZST00gKHB1YmxpYy5wYWdnX3RhYl9wMiByNSBJTk5FUiBKT0lOIHB1YmxpYy5wYWdn X3RhYl9wMiByOCBPTiAoKChyNS5hID0gcjguYSkpKSkKKyAgICAgICAgIC0+ICBGb3JlaWduIFNj YW4KKyAgICAgICAgICAgICAgIE91dHB1dDogKFBBUlRJQUwgYXZnKHQxXzIuYikpLCAoUEFSVElB TCBhdmcoKHQxXzIuYik6OmJpZ2ludCkpCisgICAgICAgICAgICAgICBSZWxhdGlvbnM6IEFnZ3Jl Z2F0ZSBvbiAoKHB1YmxpYy5mcGFnZ190YWJfcDMgdDFfMikgSU5ORVIgSk9JTiAocHVibGljLmZw YWdnX3RhYl9wMyB0Ml8yKSkKKyAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBhdmco UEFSVElBTF9BR0dSRUdBVEUgcjYuYiksIGF2ZyhQQVJUSUFMX0FHR1JFR0FURSByNi5iOjpiaWdp bnQpIEZST00gKHB1YmxpYy5wYWdnX3RhYl9wMyByNiBJTk5FUiBKT0lOIHB1YmxpYy5wYWdnX3Rh Yl9wMyByOSBPTiAoKChyNi5hID0gcjkuYSkpKSkKKygxNSByb3dzKQorCitTRUxFQ1QgYXZnKHQx LmIpLCBhdmcodDEuYjo6aW50OCkgRlJPTSBwYWdnX3RhYiB0MSBKT0lOIHBhZ2dfdGFiIHQyIFVT SU5HKGEpOworICAgICAgICAgYXZnICAgICAgICAgfCAgICAgICAgIGF2ZyAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDI0LjUwMDAwMDAwMDAw MDAwMDAgfCAyNC41MDAwMDAwMDAwMDAwMDAwCisoMSByb3cpCisKK1JFU0VUIGVuYWJsZV9wYXJ0 aXRpb253aXNlX2pvaW47CitBTFRFUiBTRVJWRVIgbG9vcGJhY2sgT1BUSU9OUyAoU0VUIGZkd190 dXBsZV9jb3N0ICcwLjEnKTsKK0FMVEVSIFNFUlZFUiBsb29wYmFjayBPUFRJT05TIChEUk9QIGNo ZWNrX3BhcnRpYWxfYWdncmVnYXRlX3N1cHBvcnQpOworLS0gSXQgaXMgdW5zYWZlIHRvIHB1c2gg ZG93biBwYXJ0aWFsIGFnZ3JlZ2F0ZXMgd2hpY2ggY29udGFpbiBESVNUSU5DVCBjbGF1c2VzCitF WFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpCitTRUxFQ1QgbWF4KGEpLCBjb3VudChkaXN0aW5j dCBiKSBGUk9NIHBhZ2dfdGFiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICBPdXRwdXQ6IG1h eChwYWdnX3RhYi5hKSwgY291bnQoRElTVElOQ1QgcGFnZ190YWIuYikKICAgIC0+ICBNZXJnZSBB cHBlbmQKICAgICAgICAgIFNvcnQgS2V5OiBwYWdnX3RhYi5iCi0gICAgICAgICAtPiAgUGFydGlh bCBHcm91cEFnZ3JlZ2F0ZQotICAgICAgICAgICAgICAgR3JvdXAgS2V5OiBwYWdnX3RhYi5iCi0g ICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuIG9uIGZwYWdnX3RhYl9wMSBwYWdnX3RhYgot ICAgICAgICAgLT4gIFBhcnRpYWwgR3JvdXBBZ2dyZWdhdGUKLSAgICAgICAgICAgICAgIEdyb3Vw IEtleTogcGFnZ190YWJfMS5iCi0gICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuIG9uIGZw YWdnX3RhYl9wMiBwYWdnX3RhYl8xCi0gICAgICAgICAtPiAgUGFydGlhbCBHcm91cEFnZ3JlZ2F0 ZQotICAgICAgICAgICAgICAgR3JvdXAgS2V5OiBwYWdnX3RhYl8yLmIKLSAgICAgICAgICAgICAg IC0+ICBGb3JlaWduIFNjYW4gb24gZnBhZ2dfdGFiX3AzIHBhZ2dfdGFiXzIKLSgxNCByb3dzKQor ICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMuZnBhZ2dfdGFiX3AxIHBhZ2dfdGFi XzEKKyAgICAgICAgICAgICAgIE91dHB1dDogcGFnZ190YWJfMS5hLCBwYWdnX3RhYl8xLmIKKyAg ICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBhLCBiIEZST00gcHVibGljLnBhZ2dfdGFi X3AxIE9SREVSIEJZIGIgQVNDIE5VTExTIExBU1QKKyAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4g b24gcHVibGljLmZwYWdnX3RhYl9wMiBwYWdnX3RhYl8yCisgICAgICAgICAgICAgICBPdXRwdXQ6 IHBhZ2dfdGFiXzIuYSwgcGFnZ190YWJfMi5iCisgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBT RUxFQ1QgYSwgYiBGUk9NIHB1YmxpYy5wYWdnX3RhYl9wMiBPUkRFUiBCWSBiIEFTQyBOVUxMUyBM QVNUCisgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuIG9uIHB1YmxpYy5mcGFnZ190YWJfcDMgcGFn Z190YWJfMworICAgICAgICAgICAgICAgT3V0cHV0OiBwYWdnX3RhYl8zLmEsIHBhZ2dfdGFiXzMu YgorICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGEsIGIgRlJPTSBwdWJsaWMucGFn Z190YWJfcDMgT1JERVIgQlkgYiBBU0MgTlVMTFMgTEFTVAorKDEzIHJvd3MpCisKK1NFTEVDVCBt YXgoYSksIGNvdW50KGRpc3RpbmN0IGIpIEZST00gcGFnZ190YWI7CisgbWF4IHwgY291bnQgCist LS0tLSstLS0tLS0tCisgIDI5IHwgICAgNTAKKygxIHJvdykKKworLS0gSXQgaXMgdW5zYWZlIHRv IHB1c2ggZG93biBwYXJ0aWFsIGFnZ3JlZ2F0ZXMgd2hpY2ggY29udGFpbiBPUkRFUiBCWSBjbGF1 c2VzCitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCBhcnJheV9hZ2coYiBvcmRl ciBieSBiKSBGUk9NIHBhZ2dfdGFiIFdIRVJFIGNfc2VyaWFsIGJldHdlZW4gMSBhbmQgMzA7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQ TEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyBBZ2dyZWdhdGUKKyAgIE91dHB1dDogYXJyYXlfYWdnKHBhZ2dfdGFiLmIgT1JERVIgQlkgcGFn Z190YWIuYikKKyAgIC0+ICBTb3J0CisgICAgICAgICBPdXRwdXQ6IHBhZ2dfdGFiLmIKKyAgICAg ICAgIFNvcnQgS2V5OiBwYWdnX3RhYi5iCisgICAgICAgICAtPiAgQXBwZW5kCisgICAgICAgICAg ICAgICAtPiAgRm9yZWlnbiBTY2FuIG9uIHB1YmxpYy5mcGFnZ190YWJfcDEgcGFnZ190YWJfMQor ICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBwYWdnX3RhYl8xLmIKKyAgICAgICAgICAgICAg ICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBiIEZST00gcHVibGljLnBhZ2dfdGFiX3AxIFdIRVJF ICgoY19zZXJpYWwgPj0gMSkpIEFORCAoKGNfc2VyaWFsIDw9IDMwKSkKKyAgICAgICAgICAgICAg IC0+ICBGb3JlaWduIFNjYW4gb24gcHVibGljLmZwYWdnX3RhYl9wMiBwYWdnX3RhYl8yCisgICAg ICAgICAgICAgICAgICAgICBPdXRwdXQ6IHBhZ2dfdGFiXzIuYgorICAgICAgICAgICAgICAgICAg ICAgUmVtb3RlIFNRTDogU0VMRUNUIGIgRlJPTSBwdWJsaWMucGFnZ190YWJfcDIgV0hFUkUgKChj X3NlcmlhbCA+PSAxKSkgQU5EICgoY19zZXJpYWwgPD0gMzApKQorICAgICAgICAgICAgICAgLT4g IEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMuZnBhZ2dfdGFiX3AzIHBhZ2dfdGFiXzMKKyAgICAgICAg ICAgICAgICAgICAgIE91dHB1dDogcGFnZ190YWJfMy5iCisgICAgICAgICAgICAgICAgICAgICBS ZW1vdGUgU1FMOiBTRUxFQ1QgYiBGUk9NIHB1YmxpYy5wYWdnX3RhYl9wMyBXSEVSRSAoKGNfc2Vy aWFsID49IDEpKSBBTkQgKChjX3NlcmlhbCA8PSAzMCkpCisoMTUgcm93cykKKworU0VMRUNUIGFy cmF5X2FnZyhiIG9yZGVyIGJ5IGIpIEZST00gcGFnZ190YWIgV0hFUkUgY19zZXJpYWwgYmV0d2Vl biAxIGFuZCAzMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheV9h Z2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgezEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDE2LDE3 LDE4LDE5LDIwLDIxLDIyLDIzLDI0LDI1LDI2LDI3LDI4LDI5LDMwfQorKDEgcm93KQogCitBTFRF UiBTRVJWRVIgbG9vcGJhY2sgT1BUSU9OUyAoRFJPUCBmZHdfdHVwbGVfY29zdCk7CiAtLSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CiAtLSBhY2Nlc3MgcmlnaHRzIGFuZCBzdXBlcnVzZXIKIC0tID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZGlm ZiAtLWdpdCBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L29wdGlvbi5jIGIvY29udHJpYi9wb3N0Z3Jl c19mZHcvb3B0aW9uLmMKaW5kZXggNjMwYjMwNDMzOC4uY2M2ZDgwODQ0YiAxMDA2NDQKLS0tIGEv Y29udHJpYi9wb3N0Z3Jlc19mZHcvb3B0aW9uLmMKKysrIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcv b3B0aW9uLmMKQEAgLTEyNiw3ICsxMjYsOCBAQCBwb3N0Z3Jlc19mZHdfdmFsaWRhdG9yKFBHX0ZV TkNUSU9OX0FSR1MpCiAJCQlzdHJjbXAoZGVmLT5kZWZuYW1lLCAiYXN5bmNfY2FwYWJsZSIpID09 IDAgfHwKIAkJCXN0cmNtcChkZWYtPmRlZm5hbWUsICJwYXJhbGxlbF9jb21taXQiKSA9PSAwIHx8 CiAJCQlzdHJjbXAoZGVmLT5kZWZuYW1lLCAicGFyYWxsZWxfYWJvcnQiKSA9PSAwIHx8Ci0JCQlz dHJjbXAoZGVmLT5kZWZuYW1lLCAia2VlcF9jb25uZWN0aW9ucyIpID09IDApCisJCQlzdHJjbXAo ZGVmLT5kZWZuYW1lLCAia2VlcF9jb25uZWN0aW9ucyIpID09IDAgfHwKKwkJCXN0cmNtcChkZWYt PmRlZm5hbWUsICJjaGVja19wYXJ0aWFsX2FnZ3JlZ2F0ZV9zdXBwb3J0IikgPT0gMCkKIAkJewog CQkJLyogdGhlc2UgYWNjZXB0IG9ubHkgYm9vbGVhbiB2YWx1ZXMgKi8KIAkJCSh2b2lkKSBkZWZH ZXRCb29sZWFuKGRlZik7CkBAIC0yNjgsNiArMjY5LDcgQEAgSW5pdFBnRmR3T3B0aW9ucyh2b2lk KQogCQkvKiBiYXRjaF9zaXplIGlzIGF2YWlsYWJsZSBvbiBib3RoIHNlcnZlciBhbmQgdGFibGUg Ki8KIAkJeyJiYXRjaF9zaXplIiwgRm9yZWlnblNlcnZlclJlbGF0aW9uSWQsIGZhbHNlfSwKIAkJ eyJiYXRjaF9zaXplIiwgRm9yZWlnblRhYmxlUmVsYXRpb25JZCwgZmFsc2V9LAorCQl7ImNoZWNr X3BhcnRpYWxfYWdncmVnYXRlX3N1cHBvcnQiLCBGb3JlaWduU2VydmVyUmVsYXRpb25JZCwgZmFs c2V9LAogCQkvKiBhc3luY19jYXBhYmxlIGlzIGF2YWlsYWJsZSBvbiBib3RoIHNlcnZlciBhbmQg dGFibGUgKi8KIAkJeyJhc3luY19jYXBhYmxlIiwgRm9yZWlnblNlcnZlclJlbGF0aW9uSWQsIGZh bHNlfSwKIAkJeyJhc3luY19jYXBhYmxlIiwgRm9yZWlnblRhYmxlUmVsYXRpb25JZCwgZmFsc2V9 LApkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvcG9zdGdyZXNfZmR3LmMgYi9jb250 cmliL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19mZHcuYwppbmRleCAxNDJkY2ZjOTk1Li43Mjc4ZmZj ZjZmIDEwMDY0NAotLS0gYS9jb250cmliL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19mZHcuYworKysg Yi9jb250cmliL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19mZHcuYwpAQCAtMzYsNiArMzYsNyBAQAog I2luY2x1ZGUgIm9wdGltaXplci9wYXRobm9kZS5oIgogI2luY2x1ZGUgIm9wdGltaXplci9wYXRo cy5oIgogI2luY2x1ZGUgIm9wdGltaXplci9wbGFubWFpbi5oIgorI2luY2x1ZGUgIm9wdGltaXpl ci9wbGFubmVyLmgiCiAjaW5jbHVkZSAib3B0aW1pemVyL3ByZXAuaCIKICNpbmNsdWRlICJvcHRp bWl6ZXIvcmVzdHJpY3RpbmZvLmgiCiAjaW5jbHVkZSAib3B0aW1pemVyL3RsaXN0LmgiCkBAIC01 MTksNyArNTIwLDcgQEAgc3RhdGljIGJvb2wgZm9yZWlnbl9qb2luX29rKFBsYW5uZXJJbmZvICpy b290LCBSZWxPcHRJbmZvICpqb2lucmVsLAogCQkJCQkJCUpvaW5UeXBlIGpvaW50eXBlLCBSZWxP cHRJbmZvICpvdXRlcnJlbCwgUmVsT3B0SW5mbyAqaW5uZXJyZWwsCiAJCQkJCQkJSm9pblBhdGhF eHRyYURhdGEgKmV4dHJhKTsKIHN0YXRpYyBib29sIGZvcmVpZ25fZ3JvdXBpbmdfb2soUGxhbm5l ckluZm8gKnJvb3QsIFJlbE9wdEluZm8gKmdyb3VwZWRfcmVsLAotCQkJCQkJCQlOb2RlICpoYXZp bmdRdWFsKTsKKwkJCQkJCQkJR3JvdXBQYXRoRXh0cmFEYXRhICpleHRyYSk7CiBzdGF0aWMgTGlz dCAqZ2V0X3VzZWZ1bF9wYXRoa2V5c19mb3JfcmVsYXRpb24oUGxhbm5lckluZm8gKnJvb3QsCiAJ CQkJCQkJCQkJCSAgUmVsT3B0SW5mbyAqcmVsKTsKIHN0YXRpYyBMaXN0ICpnZXRfdXNlZnVsX2Vj c19mb3JfcmVsYXRpb24oUGxhbm5lckluZm8gKnJvb3QsIFJlbE9wdEluZm8gKnJlbCk7CkBAIC02 NTAsNiArNjUxLDggQEAgcG9zdGdyZXNHZXRGb3JlaWduUmVsU2l6ZShQbGFubmVySW5mbyAqcm9v dCwKIAlmcGluZm8tPmZkd190dXBsZV9jb3N0ID0gREVGQVVMVF9GRFdfVFVQTEVfQ09TVDsKIAlm cGluZm8tPnNoaXBwYWJsZV9leHRlbnNpb25zID0gTklMOwogCWZwaW5mby0+ZmV0Y2hfc2l6ZSA9 IDEwMDsKKwlmcGluZm8tPmNoZWNrX3BhcnRpYWxfYWdncmVnYXRlX3N1cHBvcnQgPSBmYWxzZTsK KwlmcGluZm8tPnJlbW90ZXZlcnNpb24gPSAwOwogCWZwaW5mby0+YXN5bmNfY2FwYWJsZSA9IGZh bHNlOwogCiAJYXBwbHlfc2VydmVyX29wdGlvbnMoZnBpbmZvKTsKQEAgLTY2MSw3ICs2NjQsNyBA QCBwb3N0Z3Jlc0dldEZvcmVpZ25SZWxTaXplKFBsYW5uZXJJbmZvICpyb290LAogCSAqIHNob3Vs ZCBtYXRjaCB3aGF0IEV4ZWNDaGVja1Blcm1pc3Npb25zKCkgZG9lcy4gIElmIHdlIGZhaWwgZHVl IHRvIGxhY2sKIAkgKiBvZiBwZXJtaXNzaW9ucywgdGhlIHF1ZXJ5IHdvdWxkIGhhdmUgZmFpbGVk IGF0IHJ1bnRpbWUgYW55d2F5LgogCSAqLwotCWlmIChmcGluZm8tPnVzZV9yZW1vdGVfZXN0aW1h dGUpCisJaWYgKGZwaW5mby0+dXNlX3JlbW90ZV9lc3RpbWF0ZSB8fCBmcGluZm8tPmNoZWNrX3Bh cnRpYWxfYWdncmVnYXRlX3N1cHBvcnQpCiAJewogCQlPaWQJCQl1c2VyaWQ7CiAKQEAgLTYwMzEs OSArNjAzNCwxMCBAQCBmb3JlaWduX2pvaW5fb2soUGxhbm5lckluZm8gKnJvb3QsIFJlbE9wdElu Zm8gKmpvaW5yZWwsIEpvaW5UeXBlIGpvaW50eXBlLAogCWZwaW5mby0+cHVzaGRvd25fc2FmZSA9 IHRydWU7CiAKIAkvKiBHZXQgdXNlciBtYXBwaW5nICovCi0JaWYgKGZwaW5mby0+dXNlX3JlbW90 ZV9lc3RpbWF0ZSkKKwlpZiAoZnBpbmZvLT51c2VfcmVtb3RlX2VzdGltYXRlIHx8IGZwaW5mby0+ Y2hlY2tfcGFydGlhbF9hZ2dyZWdhdGVfc3VwcG9ydCkKIAl7Ci0JCWlmIChmcGluZm9fby0+dXNl X3JlbW90ZV9lc3RpbWF0ZSkKKwkJaWYgKGZwaW5mb19vLT51c2VfcmVtb3RlX2VzdGltYXRlIHx8 CisJCQlmcGluZm9fby0+Y2hlY2tfcGFydGlhbF9hZ2dyZWdhdGVfc3VwcG9ydCkKIAkJCWZwaW5m by0+dXNlciA9IGZwaW5mb19vLT51c2VyOwogCQllbHNlCiAJCQlmcGluZm8tPnVzZXIgPSBmcGlu Zm9faS0+dXNlcjsKQEAgLTYyMTUsNiArNjIxOSw4IEBAIGFwcGx5X3NlcnZlcl9vcHRpb25zKFBn RmR3UmVsYXRpb25JbmZvICpmcGluZm8pCiAJCQkJRXh0cmFjdEV4dGVuc2lvbkxpc3QoZGVmR2V0 U3RyaW5nKGRlZiksIGZhbHNlKTsKIAkJZWxzZSBpZiAoc3RyY21wKGRlZi0+ZGVmbmFtZSwgImZl dGNoX3NpemUiKSA9PSAwKQogCQkJKHZvaWQpIHBhcnNlX2ludChkZWZHZXRTdHJpbmcoZGVmKSwg JmZwaW5mby0+ZmV0Y2hfc2l6ZSwgMCwgTlVMTCk7CisJCWVsc2UgaWYgKHN0cmNtcChkZWYtPmRl Zm5hbWUsICJjaGVja19wYXJ0aWFsX2FnZ3JlZ2F0ZV9zdXBwb3J0IikgPT0gMCkKKwkJCWZwaW5m by0+Y2hlY2tfcGFydGlhbF9hZ2dyZWdhdGVfc3VwcG9ydCA9IGRlZkdldEJvb2xlYW4oZGVmKTsK IAkJZWxzZSBpZiAoc3RyY21wKGRlZi0+ZGVmbmFtZSwgImFzeW5jX2NhcGFibGUiKSA9PSAwKQog CQkJZnBpbmZvLT5hc3luY19jYXBhYmxlID0gZGVmR2V0Qm9vbGVhbihkZWYpOwogCX0KQEAgLTYy NzQsNiArNjI4MCw4IEBAIG1lcmdlX2Zkd19vcHRpb25zKFBnRmR3UmVsYXRpb25JbmZvICpmcGlu Zm8sCiAJZnBpbmZvLT5zaGlwcGFibGVfZXh0ZW5zaW9ucyA9IGZwaW5mb19vLT5zaGlwcGFibGVf ZXh0ZW5zaW9uczsKIAlmcGluZm8tPnVzZV9yZW1vdGVfZXN0aW1hdGUgPSBmcGluZm9fby0+dXNl X3JlbW90ZV9lc3RpbWF0ZTsKIAlmcGluZm8tPmZldGNoX3NpemUgPSBmcGluZm9fby0+ZmV0Y2hf c2l6ZTsKKwlmcGluZm8tPmNoZWNrX3BhcnRpYWxfYWdncmVnYXRlX3N1cHBvcnQgPSBmcGluZm9f by0+Y2hlY2tfcGFydGlhbF9hZ2dyZWdhdGVfc3VwcG9ydDsKKwlmcGluZm8tPnJlbW90ZXZlcnNp b24gPSBmcGluZm9fby0+cmVtb3RldmVyc2lvbjsKIAlmcGluZm8tPmFzeW5jX2NhcGFibGUgPSBm cGluZm9fby0+YXN5bmNfY2FwYWJsZTsKIAogCS8qIE1lcmdlIHRoZSB0YWJsZSBsZXZlbCBvcHRp b25zIGZyb20gZWl0aGVyIHNpZGUgb2YgdGhlIGpvaW4uICovCkBAIC02NDU2LDcgKzY0NjQsNyBA QCBwb3N0Z3Jlc0dldEZvcmVpZ25Kb2luUGF0aHMoUGxhbm5lckluZm8gKnJvb3QsCiAgKi8KIHN0 YXRpYyBib29sCiBmb3JlaWduX2dyb3VwaW5nX29rKFBsYW5uZXJJbmZvICpyb290LCBSZWxPcHRJ bmZvICpncm91cGVkX3JlbCwKLQkJCQkJTm9kZSAqaGF2aW5nUXVhbCkKKwkJCQkJR3JvdXBQYXRo RXh0cmFEYXRhICpleHRyYSkKIHsKIAlRdWVyeQkgICAqcXVlcnkgPSByb290LT5wYXJzZTsKIAlQ Z0Zkd1JlbGF0aW9uSW5mbyAqZnBpbmZvID0gKFBnRmR3UmVsYXRpb25JbmZvICopIGdyb3VwZWRf cmVsLT5mZHdfcHJpdmF0ZTsKQEAgLTY0NjUsMTEgKzY0NzMsMTYgQEAgZm9yZWlnbl9ncm91cGlu Z19vayhQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqZ3JvdXBlZF9yZWwsCiAJTGlzdENl bGwgICAqbGM7CiAJaW50CQkJaTsKIAlMaXN0CSAgICp0bGlzdCA9IE5JTDsKKwlib29sCQlwYXJ0 aWFsID0gZXh0cmEtPnBhdHlwZSA9PSBQQVJUSVRJT05XSVNFX0FHR1JFR0FURV9QQVJUSUFMOwog CiAJLyogV2UgY3VycmVudGx5IGRvbid0IHN1cHBvcnQgcHVzaGluZyBHcm91cGluZyBTZXRzLiAq LwogCWlmIChxdWVyeS0+Z3JvdXBpbmdTZXRzKQogCQlyZXR1cm4gZmFsc2U7CiAKKwkvKiBJdCBp cyB1bnNhZmUgdG8gcHVzaCBIQVZJTkcgc3RhdGVtZW50cyB3aXRoIHBhcnRpYWwgYWdncmVnYXRl cyAqLworCWlmICgoZXh0cmEtPnBhdHlwZSA9PSBQQVJUSVRJT05XSVNFX0FHR1JFR0FURV9QQVJU SUFMKSAmJiBleHRyYS0+aGF2aW5nUXVhbCkKKwkJcmV0dXJuIGZhbHNlOworCiAJLyogR2V0IHRo ZSBmcGluZm8gb2YgdGhlIHVuZGVybHlpbmcgc2NhbiByZWxhdGlvbi4gKi8KIAlvZnBpbmZvID0g KFBnRmR3UmVsYXRpb25JbmZvICopIGZwaW5mby0+b3V0ZXJyZWwtPmZkd19wcml2YXRlOwogCkBA IC02NDk4LDYgKzY1MTEsMTIgQEAgZm9yZWlnbl9ncm91cGluZ19vayhQbGFubmVySW5mbyAqcm9v dCwgUmVsT3B0SW5mbyAqZ3JvdXBlZF9yZWwsCiAJICogYSBub2RlLCBhcyBsb25nIGFzIGl0J3Mg bm90IGF0IHRvcCBsZXZlbDsgdGhlbiBubyBtYXRjaCBpcyBwb3NzaWJsZS4KIAkgKi8KIAlpID0g MDsKKwlmcGluZm8tPmdyb3VwX2NsYXVzZSA9IHF1ZXJ5LT5ncm91cENsYXVzZTsKKwlpZiAocGFy dGlhbCkKKwl7CisJCWZwaW5mby0+Z3JvdXBfY2xhdXNlID0gZXh0cmEtPmdyb3VwQ2xhdXNlUGFy dGlhbDsKKwkJZ3JvdXBpbmdfdGFyZ2V0ID0gZXh0cmEtPnBhcnRpYWxfdGFyZ2V0OworCX0KIAlm b3JlYWNoKGxjLCBncm91cGluZ190YXJnZXQtPmV4cHJzKQogCXsKIAkJRXhwcgkgICAqZXhwciA9 IChFeHByICopIGxmaXJzdChsYyk7CkBAIC02NTA5LDcgKzY1MjgsNyBAQCBmb3JlaWduX2dyb3Vw aW5nX29rKFBsYW5uZXJJbmZvICpyb290LCBSZWxPcHRJbmZvICpncm91cGVkX3JlbCwKIAkJICog Y2hlY2sgdGhlIHdob2xlIEdST1VQIEJZIGNsYXVzZSBub3QganVzdCBwcm9jZXNzZWRfZ3JvdXBD bGF1c2UsCiAJCSAqIGJlY2F1c2Ugd2Ugd2lsbCBzaGlwIGFsbCBvZiBpdCwgY2YuIGFwcGVuZEdy b3VwQnlDbGF1c2UuCiAJCSAqLwotCQlpZiAoc2dyZWYgJiYgZ2V0X3NvcnRncm91cHJlZl9jbGF1 c2Vfbm9lcnIoc2dyZWYsIHF1ZXJ5LT5ncm91cENsYXVzZSkpCisJCWlmIChzZ3JlZiAmJiBnZXRf c29ydGdyb3VwcmVmX2NsYXVzZV9ub2VycihzZ3JlZiwgZnBpbmZvLT5ncm91cF9jbGF1c2UpKQog CQl7CiAJCQlUYXJnZXRFbnRyeSAqdGxlOwogCkBAIC02NTk1LDkgKzY2MTQsOSBAQCBmb3JlaWdu X2dyb3VwaW5nX29rKFBsYW5uZXJJbmZvICpyb290LCBSZWxPcHRJbmZvICpncm91cGVkX3JlbCwK IAkgKiBDbGFzc2lmeSB0aGUgcHVzaGFibGUgYW5kIG5vbi1wdXNoYWJsZSBIQVZJTkcgY2xhdXNl cyBhbmQgc2F2ZSB0aGVtIGluCiAJICogcmVtb3RlX2NvbmRzIGFuZCBsb2NhbF9jb25kcyBvZiB0 aGUgZ3JvdXBlZCByZWwncyBmcGluZm8uCiAJICovCi0JaWYgKGhhdmluZ1F1YWwpCisJaWYgKGV4 dHJhLT5oYXZpbmdRdWFsKQogCXsKLQkJZm9yZWFjaChsYywgKExpc3QgKikgaGF2aW5nUXVhbCkK KwkJZm9yZWFjaChsYywgKExpc3QgKikgZXh0cmEtPmhhdmluZ1F1YWwpCiAJCXsKIAkJCUV4cHIJ ICAgKmV4cHIgPSAoRXhwciAqKSBsZmlyc3QobGMpOwogCQkJUmVzdHJpY3RJbmZvICpyaW5mbzsK QEAgLTY2MTcsNyArNjYzNiw3IEBAIGZvcmVpZ25fZ3JvdXBpbmdfb2soUGxhbm5lckluZm8gKnJv b3QsIFJlbE9wdEluZm8gKmdyb3VwZWRfcmVsLAogCQkJCQkJCQkJICBncm91cGVkX3JlbC0+cmVs aWRzLAogCQkJCQkJCQkJICBOVUxMLAogCQkJCQkJCQkJICBOVUxMKTsKLQkJCWlmIChpc19mb3Jl aWduX2V4cHIocm9vdCwgZ3JvdXBlZF9yZWwsIGV4cHIpKQorCQkJaWYgKGlzX2ZvcmVpZ25fZXhw cihyb290LCBncm91cGVkX3JlbCwgZXhwcikgJiYgIXBhcnRpYWwpCiAJCQkJZnBpbmZvLT5yZW1v dGVfY29uZHMgPSBsYXBwZW5kKGZwaW5mby0+cmVtb3RlX2NvbmRzLCByaW5mbyk7CiAJCQllbHNl CiAJCQkJZnBpbmZvLT5sb2NhbF9jb25kcyA9IGxhcHBlbmQoZnBpbmZvLT5sb2NhbF9jb25kcywg cmluZm8pOwpAQCAtNjcxMSw2ICs2NzMwLDcgQEAgcG9zdGdyZXNHZXRGb3JlaWduVXBwZXJQYXRo cyhQbGFubmVySW5mbyAqcm9vdCwgVXBwZXJSZWxhdGlvbktpbmQgc3RhZ2UsCiAKIAkvKiBJZ25v cmUgc3RhZ2VzIHdlIGRvbid0IHN1cHBvcnQ7IGFuZCBza2lwIGFueSBkdXBsaWNhdGUgY2FsbHMu ICovCiAJaWYgKChzdGFnZSAhPSBVUFBFUlJFTF9HUk9VUF9BR0cgJiYKKwkJIHN0YWdlICE9IFVQ UEVSUkVMX1BBUlRJQUxfR1JPVVBfQUdHICYmCiAJCSBzdGFnZSAhPSBVUFBFUlJFTF9PUkRFUkVE ICYmCiAJCSBzdGFnZSAhPSBVUFBFUlJFTF9GSU5BTCkgfHwKIAkJb3V0cHV0X3JlbC0+ZmR3X3By aXZhdGUpCkBAIC02NzI3LDYgKzY3NDcsMTAgQEAgcG9zdGdyZXNHZXRGb3JlaWduVXBwZXJQYXRo cyhQbGFubmVySW5mbyAqcm9vdCwgVXBwZXJSZWxhdGlvbktpbmQgc3RhZ2UsCiAJCQlhZGRfZm9y ZWlnbl9ncm91cGluZ19wYXRocyhyb290LCBpbnB1dF9yZWwsIG91dHB1dF9yZWwsCiAJCQkJCQkJ CQkgICAoR3JvdXBQYXRoRXh0cmFEYXRhICopIGV4dHJhKTsKIAkJCWJyZWFrOworCQljYXNlIFVQ UEVSUkVMX1BBUlRJQUxfR1JPVVBfQUdHOgorCQkJYWRkX2ZvcmVpZ25fZ3JvdXBpbmdfcGF0aHMo cm9vdCwgaW5wdXRfcmVsLCBvdXRwdXRfcmVsLAorCQkJCQkJCQkJICAgKEdyb3VwUGF0aEV4dHJh RGF0YSAqKSBleHRyYSk7CisJCQlicmVhazsKIAkJY2FzZSBVUFBFUlJFTF9PUkRFUkVEOgogCQkJ YWRkX2ZvcmVpZ25fb3JkZXJlZF9wYXRocyhyb290LCBpbnB1dF9yZWwsIG91dHB1dF9yZWwpOwog CQkJYnJlYWs7CkBAIC02NzY3LDcgKzY3OTEsOCBAQCBhZGRfZm9yZWlnbl9ncm91cGluZ19wYXRo cyhQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqaW5wdXRfcmVsLAogCQlyZXR1cm47CiAK IAlBc3NlcnQoZXh0cmEtPnBhdHlwZSA9PSBQQVJUSVRJT05XSVNFX0FHR1JFR0FURV9OT05FIHx8 Ci0JCSAgIGV4dHJhLT5wYXR5cGUgPT0gUEFSVElUSU9OV0lTRV9BR0dSRUdBVEVfRlVMTCk7CisJ CSAgIGV4dHJhLT5wYXR5cGUgPT0gUEFSVElUSU9OV0lTRV9BR0dSRUdBVEVfRlVMTCB8fAorCQkg ICBleHRyYS0+cGF0eXBlID09IFBBUlRJVElPTldJU0VfQUdHUkVHQVRFX1BBUlRJQUwpOwogCiAJ Lyogc2F2ZSB0aGUgaW5wdXRfcmVsIGFzIG91dGVycmVsIGluIGZwaW5mbyAqLwogCWZwaW5mby0+ b3V0ZXJyZWwgPSBpbnB1dF9yZWw7CkBAIC02Nzg3LDcgKzY4MTIsNyBAQCBhZGRfZm9yZWlnbl9n cm91cGluZ19wYXRocyhQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqaW5wdXRfcmVsLAog CSAqIFVzZSBIQVZJTkcgcXVhbCBmcm9tIGV4dHJhLiBJbiBjYXNlIG9mIGNoaWxkIHBhcnRpdGlv biwgaXQgd2lsbCBoYXZlCiAJICogdHJhbnNsYXRlZCBWYXJzLgogCSAqLwotCWlmICghZm9yZWln bl9ncm91cGluZ19vayhyb290LCBncm91cGVkX3JlbCwgZXh0cmEtPmhhdmluZ1F1YWwpKQorCWlm ICghZm9yZWlnbl9ncm91cGluZ19vayhyb290LCBncm91cGVkX3JlbCwgZXh0cmEpKQogCQlyZXR1 cm47CiAKIAkvKgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvcG9zdGdyZXNfZmR3 LmggYi9jb250cmliL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19mZHcuaAppbmRleCAzN2MxNTc1YWY2 Li5kY2YxNjQxNjNlIDEwMDY0NAotLS0gYS9jb250cmliL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19m ZHcuaAorKysgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19mZHcuaApAQCAtODYsNiAr ODYsMTUgQEAgdHlwZWRlZiBzdHJ1Y3QgUGdGZHdSZWxhdGlvbkluZm8KIAlGb3JlaWduU2VydmVy ICpzZXJ2ZXI7CiAJVXNlck1hcHBpbmcgKnVzZXI7CQkJLyogb25seSBzZXQgaW4gdXNlX3JlbW90 ZV9lc3RpbWF0ZSBtb2RlICovCiAKKwkvKiBmb3IgcGFydGlhbCBhZ2dyZWdhdGUgcHVzaGRvd24g Ki8KKwlib29sCQljaGVja19wYXJ0aWFsX2FnZ3JlZ2F0ZV9zdXBwb3J0OworCisJLyoKKwkgKiBJ ZiByZW1vdGV2ZXJzaW9uIGlzIHplcm8sIGl0IG1lYW5zIHRoZSByZW1vdGUgc2VydmVyIHZlcnNp b24gaGFzIG5vdAorCSAqIGJlZW4gYWNxdWlyZWQuCisJICovCisJaW50CQkJcmVtb3RldmVyc2lv bjsKKwogCWludAkJCWZldGNoX3NpemU7CQkvKiBmZXRjaCBzaXplIGZvciB0aGlzIHJlbW90ZSB0 YWJsZSAqLwogCiAJLyoKQEAgLTExMCw2ICsxMTksNyBAQCB0eXBlZGVmIHN0cnVjdCBQZ0Zkd1Jl bGF0aW9uSW5mbwogCiAJLyogR3JvdXBpbmcgaW5mb3JtYXRpb24gKi8KIAlMaXN0CSAgICpncm91 cGVkX3RsaXN0OworCUxpc3QJICAgKmdyb3VwX2NsYXVzZTsKIAogCS8qIFN1YnF1ZXJ5IGluZm9y bWF0aW9uICovCiAJYm9vbAkJbWFrZV9vdXRlcnJlbF9zdWJxdWVyeTsgLyogZG8gd2UgZGVwYXJz ZSBvdXRlcnJlbCBhcyBhCmRpZmYgLS1naXQgYS9jb250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9z dGdyZXNfZmR3LnNxbCBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3Fs CmluZGV4IDgxMmU3NjQ2ZTEuLjliZTRkNTFmN2YgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcG9zdGdy ZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3FsCisrKyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3Nx bC9wb3N0Z3Jlc19mZHcuc3FsCkBAIC0zMTE3LDE2ICszMTE3LDMxIEBAIFJFU0VUIGVuYWJsZV9w YXJ0aXRpb253aXNlX2pvaW47CiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSB0ZXN0IHBhcnRpdGlvbndpc2Ug YWdncmVnYXRlcwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotCi1DUkVBVEUgVEFCTEUgcGFnZ190YWIgKGEgaW50 LCBiIGludCwgYyB0ZXh0KSBQQVJUSVRJT04gQlkgUkFOR0UoYSk7CitBTFRFUiBTRVJWRVIgbG9v cGJhY2sgT1BUSU9OUyAoQUREIGZkd190dXBsZV9jb3N0ICcwLjEnKTsKKworQ1JFQVRFIFRZUEUg bW9vZCBBUyBlbnVtICgnc2FkJywgJ29rJywgJ2hhcHB5Jyk7CitBTFRFUiBFWFRFTlNJT04gcG9z dGdyZXNfZmR3IEFERCBUWVBFIG1vb2Q7CisKK0NSRUFURSBUQUJMRSBwYWdnX3RhYiAoYSBpbnQs IGIgaW50LCBjIHRleHQsIGNfc2VyaWFsIGludDQsCisJCQkJCWNfaW50NGFycmF5IF9pbnQ0LCBj X2ludGVydmFsIGludGVydmFsLAorCQkJCQljX21vbmV5IG1vbmV5LCBjXzFjIHRleHQsIGNfMWIg Ynl0ZWEsCisJCQkJCWNfYml0IGJpdCgyKSwgY18xb3IzaW50MiBpbnQyLAorCQkJCQljXzFvcjNp bnQ0IGludDQsIGNfMW9yM2ludDggaW50OCwKKwkJCQkJY19ib29sIGJvb2wsIGNfZW51bSBtb29k LCBjX3BnX2xzbiBwZ19sc24sCisJCQkJCWNfdGlkIHRpZCwgY19pbnQ0cmFuZ2UgaW50NHJhbmdl LAorCQkJCQljX2ludDRtdWx0aXJhbmdlIGludDRtdWx0aXJhbmdlLAorCQkJCQljX3RpbWUgdGlt ZSwgY190aW1ldHogdGltZXR6LAorCQkJCQljX3RpbWVzdGFtcCB0aW1lc3RhbXAsIGNfdGltZXN0 YW1wdHogdGltZXN0YW1wdHosCisJCQkJCWNfeGlkOCB4aWQ4KQorCVBBUlRJVElPTiBCWSBSQU5H RShhKTsKIAogQ1JFQVRFIFRBQkxFIHBhZ2dfdGFiX3AxIChMSUtFIHBhZ2dfdGFiKTsKIENSRUFU RSBUQUJMRSBwYWdnX3RhYl9wMiAoTElLRSBwYWdnX3RhYik7CiBDUkVBVEUgVEFCTEUgcGFnZ190 YWJfcDMgKExJS0UgcGFnZ190YWIpOwogCi1JTlNFUlQgSU5UTyBwYWdnX3RhYl9wMSBTRUxFQ1Qg aSAlIDMwLCBpICUgNTAsIHRvX2NoYXIoaS8zMCwgJ0ZNMDAwMCcpIEZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsIDMwMDApIGkgV0hFUkUgKGkgJSAzMCkgPCAxMDsKLUlOU0VSVCBJTlRPIHBhZ2dfdGFi X3AyIFNFTEVDVCBpICUgMzAsIGkgJSA1MCwgdG9fY2hhcihpLzMwLCAnRk0wMDAwJykgRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwgMzAwMCkgaSBXSEVSRSAoaSAlIDMwKSA8IDIwIGFuZCAoaSAlIDMw KSA+PSAxMDsKLUlOU0VSVCBJTlRPIHBhZ2dfdGFiX3AzIFNFTEVDVCBpICUgMzAsIGkgJSA1MCwg dG9fY2hhcihpLzMwLCAnRk0wMDAwJykgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzAwMCkgaSBX SEVSRSAoaSAlIDMwKSA8IDMwIGFuZCAoaSAlIDMwKSA+PSAyMDsKK0lOU0VSVCBJTlRPIHBhZ2df dGFiX3AxIFNFTEVDVCBpICUgMzAsIGkgJSA1MCwgdG9fY2hhcihpLzMwLCAnRk0wMDAwJyksIGks IGFycmF5WyhpICUgMiksIDBdLCAoKGkgJSAyKSB8fCAnIHNlY29uZHMnKTo6aW50ZXJ2YWwsIChp ICUgMik6Om1vbmV5LCAoKGkgLSAxKSAlIDEwKTo6dGV4dCwgKCgoaSAtIDEpICUgMTApOjp0ZXh0 KTo6Ynl0ZWEsIGNhc2Ugd2hlbiAoaSAlIDIpID0gMCB0aGVuIEInMDEnIGVsc2UgQicxMScgZW5k LCBjYXNlIHdoZW4gKGkgJSAyKSA9IDAgdGhlbiAxIGVsc2UgMyBlbmQsIGNhc2Ugd2hlbiAoaSAl IDIpID0gMCB0aGVuIDEgZWxzZSAzIGVuZCwgY2FzZSB3aGVuIChpICUgMikgPSAwIHRoZW4gMSBl bHNlIDMgZW5kLCBjYXNlIHdoZW4gKGkgJSAyKSA9IDAgdGhlbiB0cnVlIGVsc2UgZmFsc2UgZW5k LCAoY2FzZSB3aGVuIChpICUgMikgPSAwIHRoZW4gJ3NhZCcgZWxzZSAnaGFwcHknIGVuZCk6Om1v b2QsICgnMC8nIHx8IGkpOjpwZ19sc24sICgnKDAsJyB8fCBpIHx8ICcpJyk6OnRpZCwgaW50NHJh bmdlKDAsIGkpLCBpbnQ0bXVsdGlyYW5nZShpbnQ0cmFuZ2UoMCwgaSksIGludDRyYW5nZSgxMDAs IDEwMCArIGkpKSwgJzAwOjAwOjAwJzo6dGltZSArIChpIHx8ICcgc2Vjb25kcycpOjppbnRlcnZh bCwgJzAwOjAwOjAwJzo6dGltZXR6ICsgKGkgfHwgJyBzZWNvbmRzJyk6OmludGVydmFsLCAnMjAw MC0wMS0wMSc6OnRpbWVzdGFtcCArIChpIHx8ICcgc2Vjb25kcycpOjppbnRlcnZhbCwgJzIwMDAt MDEtMDEnOjp0aW1lc3RhbXB0eiArIChpIHx8ICcgc2Vjb25kcycpOjppbnRlcnZhbCwgKChpICUg MTApOjp0ZXh0KTo6eGlkOCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMDAwKSBpIFdIRVJFIChp ICUgMzApIDwgMTA7CitJTlNFUlQgSU5UTyBwYWdnX3RhYl9wMiBTRUxFQ1QgaSAlIDMwLCBpICUg NTAsIHRvX2NoYXIoaS8zMCwgJ0ZNMDAwMCcpLCBpLCBhcnJheVsoaSAlIDIpLCAwXSwgKChpICUg MikgfHwgJyBzZWNvbmRzJyk6OmludGVydmFsLCAoaSAlIDIpOjptb25leSwgKChpIC0gMSkgJSAx MCk6OnRleHQsICgoKGkgLSAxKSAlIDEwKTo6dGV4dCk6OmJ5dGVhLCBjYXNlIHdoZW4gKGkgJSAy KSA9IDAgdGhlbiBCJzAxJyBlbHNlIEInMTEnIGVuZCwgY2FzZSB3aGVuIChpICUgMikgPSAwIHRo ZW4gMSBlbHNlIDMgZW5kLCBjYXNlIHdoZW4gKGkgJSAyKSA9IDAgdGhlbiAxIGVsc2UgMyBlbmQs IGNhc2Ugd2hlbiAoaSAlIDIpID0gMCB0aGVuIDEgZWxzZSAzIGVuZCwgY2FzZSB3aGVuIChpICUg MikgPSAwIHRoZW4gdHJ1ZSBlbHNlIGZhbHNlIGVuZCwgKGNhc2Ugd2hlbiAoaSAlIDIpID0gMCB0 aGVuICdzYWQnIGVsc2UgJ2hhcHB5JyBlbmQpOjptb29kLCAoJzAvJyB8fCBpKTo6cGdfbHNuLCAo JygwLCcgfHwgaSB8fCAnKScpOjp0aWQsIGludDRyYW5nZSgwLCBpKSwgaW50NG11bHRpcmFuZ2Uo aW50NHJhbmdlKDAsIGkpLCBpbnQ0cmFuZ2UoMTAwLCAxMDAgKyBpKSksICcwMDowMDowMCc6OnRp bWUgKyAoaSB8fCAnIHNlY29uZHMnKTo6aW50ZXJ2YWwsICcwMDowMDowMCc6OnRpbWV0eiArIChp IHx8ICcgc2Vjb25kcycpOjppbnRlcnZhbCwgJzIwMDAtMDEtMDEnOjp0aW1lc3RhbXAgKyAoaSB8 fCAnIHNlY29uZHMnKTo6aW50ZXJ2YWwsICcyMDAwLTAxLTAxJzo6dGltZXN0YW1wdHogKyAoaSB8 fCAnIHNlY29uZHMnKTo6aW50ZXJ2YWwsICgoaSAlIDEwKTo6dGV4dCk6OnhpZDggRlJPTSBnZW5l cmF0ZV9zZXJpZXMoMSwgMzAwMCkgaSBXSEVSRSAoaSAlIDMwKSA8IDIwIGFuZCAoaSAlIDMwKSA+ PSAxMDsKK0lOU0VSVCBJTlRPIHBhZ2dfdGFiX3AzIFNFTEVDVCBpICUgMzAsIGkgJSA1MCwgdG9f Y2hhcihpLzMwLCAnRk0wMDAwJyksIGksIGFycmF5WyhpICUgMiksIDBdLCAoKGkgJSAyKSB8fCAn IHNlY29uZHMnKTo6aW50ZXJ2YWwsIChpICUgMik6Om1vbmV5LCAoKGkgLSAxKSAlIDEwKTo6dGV4 dCwgKCgoaSAtIDEpICUgMTApOjp0ZXh0KTo6Ynl0ZWEsIGNhc2Ugd2hlbiAoaSAlIDIpID0gMCB0 aGVuIEInMDEnIGVsc2UgQicxMScgZW5kLCBjYXNlIHdoZW4gKGkgJSAyKSA9IDAgdGhlbiAxIGVs c2UgMyBlbmQsIGNhc2Ugd2hlbiAoaSAlIDIpID0gMCB0aGVuIDEgZWxzZSAzIGVuZCwgY2FzZSB3 aGVuIChpICUgMikgPSAwIHRoZW4gMSBlbHNlIDMgZW5kLCBjYXNlIHdoZW4gKGkgJSAyKSA9IDAg dGhlbiB0cnVlIGVsc2UgZmFsc2UgZW5kLCAoY2FzZSB3aGVuIChpICUgMikgPSAwIHRoZW4gJ3Nh ZCcgZWxzZSAnaGFwcHknIGVuZCk6Om1vb2QsICgnMC8nIHx8IGkpOjpwZ19sc24sICgnKDAsJyB8 fCBpIHx8ICcpJyk6OnRpZCwgaW50NHJhbmdlKDAsIGkpLCBpbnQ0bXVsdGlyYW5nZShpbnQ0cmFu Z2UoMCwgaSksIGludDRyYW5nZSgxMDAsIDEwMCArIGkpKSwgJzAwOjAwOjAwJzo6dGltZSArIChp IHx8ICcgc2Vjb25kcycpOjppbnRlcnZhbCwgJzAwOjAwOjAwJzo6dGltZXR6ICsgKGkgfHwgJyBz ZWNvbmRzJyk6OmludGVydmFsLCAnMjAwMC0wMS0wMSc6OnRpbWVzdGFtcCArIChpIHx8ICcgc2Vj b25kcycpOjppbnRlcnZhbCwgJzIwMDAtMDEtMDEnOjp0aW1lc3RhbXB0eiArIChpIHx8ICcgc2Vj b25kcycpOjppbnRlcnZhbCwgKChpICUgMTApOjp0ZXh0KTo6eGlkOCBGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCAzMDAwKSBpIFdIRVJFIChpICUgMzApIDwgMzAgYW5kIChpICUgMzApID49IDIwOwog CiAtLSBDcmVhdGUgZm9yZWlnbiBwYXJ0aXRpb25zCiBDUkVBVEUgRk9SRUlHTiBUQUJMRSBmcGFn Z190YWJfcDEgUEFSVElUSU9OIE9GIHBhZ2dfdGFiIEZPUiBWQUxVRVMgRlJPTSAoMCkgVE8gKDEw KSBTRVJWRVIgbG9vcGJhY2sgT1BUSU9OUyAodGFibGVfbmFtZSAncGFnZ190YWJfcDEnKTsKQEAg LTMxMzQsOSArMzE0OSwxMyBAQCBDUkVBVEUgRk9SRUlHTiBUQUJMRSBmcGFnZ190YWJfcDIgUEFS VElUSU9OIE9GIHBhZ2dfdGFiIEZPUiBWQUxVRVMgRlJPTSAoMTApIFRPCiBDUkVBVEUgRk9SRUlH TiBUQUJMRSBmcGFnZ190YWJfcDMgUEFSVElUSU9OIE9GIHBhZ2dfdGFiIEZPUiBWQUxVRVMgRlJP TSAoMjApIFRPICgzMCkgU0VSVkVSIGxvb3BiYWNrIE9QVElPTlMgKHRhYmxlX25hbWUgJ3BhZ2df dGFiX3AzJyk7CiAKIEFOQUxZWkUgcGFnZ190YWI7CitBTkFMWVpFIHBhZ2dfdGFiX3AxOworQU5B TFlaRSBwYWdnX3RhYl9wMjsKK0FOQUxZWkUgcGFnZ190YWJfcDM7CiBBTkFMWVpFIGZwYWdnX3Rh Yl9wMTsKIEFOQUxZWkUgZnBhZ2dfdGFiX3AyOwogQU5BTFlaRSBmcGFnZ190YWJfcDM7CitTRVQg ZXh0cmFfZmxvYXRfZGlnaXRzID0gMDsKIAogLS0gV2hlbiBHUk9VUCBCWSBjbGF1c2UgbWF0Y2hl cyB3aXRoIFBBUlRJVElPTiBLRVkuCiAtLSBQbGFuIHdpdGggcGFydGl0aW9ud2lzZSBhZ2dyZWdh dGVzIGlzIGRpc2FibGVkCkBAIC0zMTU2LDkgKzMxNzUsMTMxIEBAIEVYUExBSU4gKFZFUkJPU0Us IENPU1RTIE9GRikKIFNFTEVDVCBhLCBjb3VudCh0MSkgRlJPTSBwYWdnX3RhYiB0MSBHUk9VUCBC WSBhIEhBVklORyBhdmcoYikgPCAyMiBPUkRFUiBCWSAxOwogU0VMRUNUIGEsIGNvdW50KHQxKSBG Uk9NIHBhZ2dfdGFiIHQxIEdST1VQIEJZIGEgSEFWSU5HIGF2ZyhiKSA8IDIyIE9SREVSIEJZIDE7 CiAKLS0tIFdoZW4gR1JPVVAgQlkgY2xhdXNlIGRvZXMgbm90IG1hdGNoIHdpdGggUEFSVElUSU9O IEtFWS4KLUVYUExBSU4gKENPU1RTIE9GRikKKy0tIFBhcnRpYWwgYWdncmVnYXRlcyBhcmUgc2Fm ZSB0byBwdXNoIGRvd24gd2hlbiB0aGVyZSBpcyBhIEhBVklORyBjbGF1c2UKK0VYUExBSU4gKFZF UkJPU0UsIENPU1RTIE9GRikKIFNFTEVDVCBiLCBhdmcoYSksIG1heChhKSwgY291bnQoKikgRlJP TSBwYWdnX3RhYiBHUk9VUCBCWSBiIEhBVklORyBzdW0oYSkgPCA3MDAgT1JERVIgQlkgMTsKK1NF TEVDVCBiLCBhdmcoYSksIG1heChhKSwgY291bnQoKikgRlJPTSBwYWdnX3RhYiBHUk9VUCBCWSBi IEhBVklORyBzdW0oYSkgPCA3MDAgT1JERVIgQlkgMTsKKworLS0gUGFydGlhbCBhZ2dyZWdhdGVz IGFyZSBzYWZlIHRvIHB1c2ggZG93biB3aXRob3V0IGhhdmluZyBjbGF1c2UKK0VYUExBSU4gKFZF UkJPU0UsIENPU1RTIE9GRikKK1NFTEVDVCBiLCBhdmcoYSksIG1heChhKSwgY291bnQoKikgRlJP TSBwYWdnX3RhYiBHUk9VUCBCWSBiIE9SREVSIEJZIDE7CitTRUxFQ1QgYiwgYXZnKGEpLCBtYXgo YSksIGNvdW50KCopIEZST00gcGFnZ190YWIgR1JPVVAgQlkgYiBPUkRFUiBCWSAxOworCistLSBQ YXJ0aWFsIGFnZ3JlZ2F0ZXMgYXJlIHNhZmUgdG8gcHVzaCBkb3duIGV2ZW4gaWYgd2UgbmVlZCBi b3RoIHZhcmlhYmxlIGFuZCB2YXJpYWJsZS1iYXNlZCBleHByZXNzaW9uCitFWFBMQUlOIChWRVJC T1NFLCBDT1NUUyBPRkYpCitTRUxFQ1QgYXZnKGEpLCBtYXgoYSksIGNvdW50KCopLCAoYi8yKTo6 bnVtZXJpYyBGUk9NIHBhZ2dfdGFiIEdST1VQIEJZIGIvMiBPUkRFUiBCWSA0OworU0VMRUNUIGF2 ZyhhKSwgbWF4KGEpLCBjb3VudCgqKSwgKGIvMik6Om51bWVyaWMgRlJPTSBwYWdnX3RhYiBHUk9V UCBCWSBiLzIgT1JERVIgQlkgNDsKKworLS0gUGFydGlhbCBhZ2dyZWdhdGVzIGFyZSBzYWZlIHRv IHB1c2ggZG93biBmb3IgYWxsIGJ1aWx0LWluIGFnZ3JlZ2F0ZXMKK0VYUExBSU4gKFZFUkJPU0Us IENPU1RTIE9GRikKK1NFTEVDVCAvKiBhZ2dyZWdhdGUgPD4gcGFydGlhbCBhZ2dyZWdhdGUgKi8K KyAgICBhcnJheV9hZ2coY19pbnQ0YXJyYXkpLCBhcnJheV9hZ2coYiksCisgICAgYXZnKGI6Omlu dDIpLCBhdmcoYjo6aW50NCksIGF2ZyhiOjppbnQ4KSwgYXZnKGNfaW50ZXJ2YWwpLCBhdmcoYjo6 ZmxvYXQ0KSwgYXZnKGI6OmZsb2F0OCksIGF2ZyhiOjpudW1lcmljKSwKKyAgICBjb3JyKGI6OmZs b2F0OCwgKGIgKiBiKTo6ZmxvYXQ4KSwKKyAgICBjb3Zhcl9wb3AoYjo6ZmxvYXQ4LCAoYiAqIGIp OjpmbG9hdDgpLAorICAgIGNvdmFyX3NhbXAoYjo6ZmxvYXQ4LCAoYiAqIGIpOjpmbG9hdDgpLAor ICAgIHJlZ3JfYXZneCgoMiAqIGIpOjpmbG9hdDgsIGI6OmZsb2F0OCksCisgICAgcmVncl9hdmd5 KCgyICogYik6OmZsb2F0OCwgYjo6ZmxvYXQ4KSwKKyAgICByZWdyX2ludGVyY2VwdCgoMiAqIGIg KyAzKTo6ZmxvYXQ4LCBiOjpmbG9hdDgpLAorICAgIHJlZ3JfcjIoKGIgKiBiKTo6ZmxvYXQ4LCBi OjpmbG9hdDgpLAorICAgIHJlZ3Jfc2xvcGUoKDIgKiBiICsgMyk6OmZsb2F0OCwgYjo6ZmxvYXQ4 KSwKKyAgICByZWdyX3N4eCgoMiAqIGIgKyAzKTo6ZmxvYXQ4LCBiOjpmbG9hdDgpLAorICAgIHJl Z3Jfc3h5KChiICogYik6OmZsb2F0OCwgYjo6ZmxvYXQ4KSwKKyAgICByZWdyX3N5eSgoMiAqIGIg KyAzKTo6ZmxvYXQ4LCBiOjpmbG9hdDgpLAorICAgIHN0ZGRldihiOjpmbG9hdDQpLCBzdGRkZXYo Yjo6ZmxvYXQ4KSwgc3RkZGV2KGI6OmludDIpLCBzdGRkZXYoYjo6aW50NCksIHN0ZGRldihiOjpp bnQ4KSwgc3RkZGV2KGI6Om51bWVyaWMpLAorICAgIHN0ZGRldl9wb3AoYjo6ZmxvYXQ0KSwgc3Rk ZGV2X3BvcChiOjpmbG9hdDgpLCBzdGRkZXZfcG9wKGI6OmludDIpLCBzdGRkZXZfcG9wKGI6Omlu dDQpLCBzdGRkZXZfcG9wKGI6OmludDgpLCBzdGRkZXZfcG9wKGI6Om51bWVyaWMpLAorICAgIHN0 ZGRldl9zYW1wKGI6OmZsb2F0NCksIHN0ZGRldl9zYW1wKGI6OmZsb2F0OCksIHN0ZGRldl9zYW1w KGI6OmludDIpLCBzdGRkZXZfc2FtcChiOjppbnQ0KSwgc3RkZGV2X3NhbXAoYjo6aW50OCksIHN0 ZGRldl9zYW1wKGI6Om51bWVyaWMpLAorICAgIHN0cmluZ19hZ2coY18xYywgJywnKSwgc3RyaW5n X2FnZyhjXzFiLCAnLCcpLAorICAgIHN1bShiOjppbnQ4KSwgc3VtKGI6Om51bWVyaWMpLAorICAg IHZhcmlhbmNlKGI6OmZsb2F0NCksIHZhcmlhbmNlKGI6OmZsb2F0OCksIHZhcmlhbmNlKGI6Omlu dDIpLCB2YXJpYW5jZShiOjppbnQ0KSwgdmFyaWFuY2UoYjo6aW50OCksIHZhcmlhbmNlKGI6Om51 bWVyaWMpLAorICAgIHZhcl9wb3AoYjo6ZmxvYXQ0KSwgdmFyX3BvcChiOjpmbG9hdDgpLCB2YXJf cG9wKGI6OmludDIpLCB2YXJfcG9wKGI6OmludDQpLCB2YXJfcG9wKGI6OmludDgpLCB2YXJfcG9w KGI6Om51bWVyaWMpLAorICAgIHZhcl9zYW1wKGI6OmZsb2F0NCksIHZhcl9zYW1wKGI6OmZsb2F0 OCksIHZhcl9zYW1wKGI6OmludDIpLCB2YXJfc2FtcChiOjppbnQ0KSwgdmFyX3NhbXAoYjo6aW50 OCksIHZhcl9zYW1wKGI6Om51bWVyaWMpLAorICAgIC8qIGFnZ3JlZ2F0ZSA9IHBhcnRpYWwgYWdn cmVnYXRlICovCisgICAgYW55X3ZhbHVlKGIgKiAwKSwKKyAgICBiaXRfYW5kKGNfYml0KSwgYml0 X2FuZChjXzFvcjNpbnQyKSwgYml0X2FuZChjXzFvcjNpbnQ0KSwgYml0X2FuZChjXzFvcjNpbnQ4 KSwKKyAgICBiaXRfb3IoY19iaXQpLCBiaXRfb3IoY18xb3IzaW50MiksIGJpdF9vcihjXzFvcjNp bnQ0KSwgYml0X29yKGNfMW9yM2ludDgpLAorICAgIGJpdF94b3IoY19iaXQpLCBiaXRfeG9yKGNf MW9yM2ludDIpLCBiaXRfeG9yKGNfMW9yM2ludDQpLCBiaXRfeG9yKGNfMW9yM2ludDgpLAorICAg IGJvb2xfYW5kKGNfYm9vbCksCisgICAgYm9vbF9vcihjX2Jvb2wpLAorICAgIGNvdW50KGIpLCBj b3VudCgqKSwKKyAgICBldmVyeShjX2Jvb2wpLAorICAgIG1heChjX2ludDRhcnJheSksIG1heChj X2VudW0pLCBtYXgoY18xYzo6Y2hhcigxKSksIG1heCgnMjAwMC0wMS0wMSc6OmRhdGUgKyBiKSwg bWF4KCcwLjAuMC4wJzo6aW5ldCArIGIpLCBtYXgoYjo6ZmxvYXQ0KSwgbWF4KGI6OmZsb2F0OCks IG1heChiOjppbnQyKSwgbWF4KGI6OmludDQpLCBtYXgoYjo6aW50OCksIG1heChjX2ludGVydmFs KSwgbWF4KGNfbW9uZXkpLCBtYXgoYjo6bnVtZXJpYyksIG1heChiOjpvaWQpLCBtYXgoY19wZ19s c24pLCBtYXgoY190aWQpLCBtYXgoY18xYyksIG1heChjX3RpbWUpLCBtYXgoY190aW1ldHopLCBt YXgoY190aW1lc3RhbXApLCBtYXgoY190aW1lc3RhbXB0eiksIG1heChjX3hpZDgpLAorICAgIG1p bihjX2ludDRhcnJheSksIG1pbihjX2VudW0pLCBtaW4oY18xYzo6Y2hhcigxKSksIG1pbignMjAw MC0wMS0wMSc6OmRhdGUgKyBiKSwgbWluKCcwLjAuMC4wJzo6aW5ldCArIGIpLCBtaW4oYjo6Zmxv YXQ0KSwgbWluKGI6OmZsb2F0OCksIG1pbihiOjppbnQyKSwgbWluKGI6OmludDQpLCBtaW4oYjo6 aW50OCksIG1pbihjX2ludGVydmFsKSwgbWluKGNfbW9uZXkpLCBtaW4oYjo6bnVtZXJpYyksIG1p bihiOjpvaWQpLCBtaW4oY19wZ19sc24pLCBtaW4oY190aWQpLCBtaW4oY18xYyksIG1pbihjX3Rp bWUpLCBtaW4oY190aW1ldHopLCBtaW4oY190aW1lc3RhbXApLCBtaW4oY190aW1lc3RhbXB0eiks IG1pbihjX3hpZDgpLAorICAgIHJhbmdlX2ludGVyc2VjdF9hZ2coY19pbnQ0cmFuZ2UpLCByYW5n ZV9pbnRlcnNlY3RfYWdnKGNfaW50NG11bHRpcmFuZ2UpLAorICAgIHJlZ3JfY291bnQoKDIgKiBi ICsgMyk6OmZsb2F0OCwgYjo6ZmxvYXQ4KSwKKyAgICBzdW0oYjo6ZmxvYXQ0KSwgc3VtKGI6OmZs b2F0OCksIHN1bShiOjppbnQyKSwgc3VtKGI6OmludDQpLAlzdW0oY19pbnRlcnZhbCksIHN1bShj X21vbmV5KQorICBGUk9NIHBhZ2dfdGFiIFdIRVJFIGNfc2VyaWFsIGJldHdlZW4gMSBhbmQgMzA7 CisKK1NFTEVDVCAvKiBhZ2dyZWdhdGUgPD4gcGFydGlhbCBhZ2dyZWdhdGUgKi8KKyAgICBhcnJh eV9hZ2coY19pbnQ0YXJyYXkpLCBhcnJheV9hZ2coYiksCisgICAgYXZnKGI6OmludDIpLCBhdmco Yjo6aW50NCksIGF2ZyhiOjppbnQ4KSwgYXZnKGNfaW50ZXJ2YWwpLAorICAgIGF2ZyhiOjpmbG9h dDQpLCBhdmcoYjo6ZmxvYXQ4KSwKKyAgICBjb3JyKGI6OmZsb2F0OCwgKGIgKiBiKTo6ZmxvYXQ4 KSwKKyAgICBjb3Zhcl9wb3AoYjo6ZmxvYXQ4LCAoYiAqIGIpOjpmbG9hdDgpLAorICAgIGNvdmFy X3NhbXAoYjo6ZmxvYXQ4LCAoYiAqIGIpOjpmbG9hdDgpLAorICAgIHJlZ3JfYXZneCgoMiAqIGIp OjpmbG9hdDgsIGI6OmZsb2F0OCksCisgICAgcmVncl9hdmd5KCgyICogYik6OmZsb2F0OCwgYjo6 ZmxvYXQ4KSwKKyAgICByZWdyX2ludGVyY2VwdCgoMiAqIGIgKyAzKTo6ZmxvYXQ4LCBiOjpmbG9h dDgpLAorICAgIHJlZ3JfcjIoKGIgKiBiKTo6ZmxvYXQ4LCBiOjpmbG9hdDgpLAorICAgIHJlZ3Jf c2xvcGUoKDIgKiBiICsgMyk6OmZsb2F0OCwgYjo6ZmxvYXQ4KSwKKyAgICByZWdyX3N4eCgoMiAq IGIgKyAzKTo6ZmxvYXQ4LCBiOjpmbG9hdDgpLAorICAgIHJlZ3Jfc3h5KChiICogYik6OmZsb2F0 OCwgYjo6ZmxvYXQ4KSwKKyAgICByZWdyX3N5eSgoMiAqIGIgKyAzKTo6ZmxvYXQ4LCBiOjpmbG9h dDgpLAorICAgIHN0ZGRldihiOjpmbG9hdDQpLCBzdGRkZXYoYjo6ZmxvYXQ4KSwgc3RkZGV2KGI6 OmludDIpLCBzdGRkZXYoYjo6aW50NCksIHN0ZGRldihiOjppbnQ4KSwgc3RkZGV2KGI6Om51bWVy aWMpLAorICAgIHN0ZGRldl9wb3AoYjo6ZmxvYXQ0KSwgc3RkZGV2X3BvcChiOjpmbG9hdDgpLCBz dGRkZXZfcG9wKGI6OmludDIpLCBzdGRkZXZfcG9wKGI6OmludDQpLCBzdGRkZXZfcG9wKGI6Omlu dDgpLCBzdGRkZXZfcG9wKGI6Om51bWVyaWMpLAorICAgIHN0ZGRldl9zYW1wKGI6OmZsb2F0NCks IHN0ZGRldl9zYW1wKGI6OmZsb2F0OCksIHN0ZGRldl9zYW1wKGI6OmludDIpLCBzdGRkZXZfc2Ft cChiOjppbnQ0KSwgc3RkZGV2X3NhbXAoYjo6aW50OCksIHN0ZGRldl9zYW1wKGI6Om51bWVyaWMp LAorICAgIHN0cmluZ19hZ2coY18xYywgJywnKSwgc3RyaW5nX2FnZyhjXzFiLCAnLCcpLAorICAg IHN1bShiOjppbnQ4KSwgc3VtKGI6Om51bWVyaWMpLAorICAgIHZhcmlhbmNlKGI6OmZsb2F0NCks IHZhcmlhbmNlKGI6OmZsb2F0OCksIHZhcmlhbmNlKGI6OmludDIpLCB2YXJpYW5jZShiOjppbnQ0 KSwgdmFyaWFuY2UoYjo6aW50OCksIHZhcmlhbmNlKGI6Om51bWVyaWMpLAorICAgIHZhcl9wb3Ao Yjo6ZmxvYXQ0KSwgdmFyX3BvcChiOjpmbG9hdDgpLCB2YXJfcG9wKGI6OmludDIpLCB2YXJfcG9w KGI6OmludDQpLCB2YXJfcG9wKGI6OmludDgpLCB2YXJfcG9wKGI6Om51bWVyaWMpLAorICAgIHZh cl9zYW1wKGI6OmZsb2F0NCksIHZhcl9zYW1wKGI6OmZsb2F0OCksIHZhcl9zYW1wKGI6OmludDIp LCB2YXJfc2FtcChiOjppbnQ0KSwgdmFyX3NhbXAoYjo6aW50OCksIHZhcl9zYW1wKGI6Om51bWVy aWMpLAorICAgIC8qIGFnZ3JlZ2F0ZSA9IHBhcnRpYWwgYWdncmVnYXRlICovCisgICAgYW55X3Zh bHVlKGIgKiAwKSwKKyAgICBiaXRfYW5kKGNfYml0KSwgYml0X2FuZChjXzFvcjNpbnQyKSwgYml0 X2FuZChjXzFvcjNpbnQ0KSwgYml0X2FuZChjXzFvcjNpbnQ4KSwKKyAgICBiaXRfb3IoY19iaXQp LCBiaXRfb3IoY18xb3IzaW50MiksIGJpdF9vcihjXzFvcjNpbnQ0KSwgYml0X29yKGNfMW9yM2lu dDgpLAorICAgIGJpdF94b3IoY19iaXQpLCBiaXRfeG9yKGNfMW9yM2ludDIpLCBiaXRfeG9yKGNf MW9yM2ludDQpLCBiaXRfeG9yKGNfMW9yM2ludDgpLAorICAgIGJvb2xfYW5kKGNfYm9vbCksCisg ICAgYm9vbF9vcihjX2Jvb2wpLAorICAgIGNvdW50KGIpLCBjb3VudCgqKSwKKyAgICBldmVyeShj X2Jvb2wpLAorICAgIG1heChjX2ludDRhcnJheSksIG1heChjX2VudW0pLCBtYXgoY18xYzo6Y2hh cigxKSksIG1heCgnMjAwMC0wMS0wMSc6OmRhdGUgKyBiKSwgbWF4KCcwLjAuMC4wJzo6aW5ldCAr IGIpLCBtYXgoYjo6ZmxvYXQ0KSwgbWF4KGI6OmZsb2F0OCksIG1heChiOjppbnQyKSwgbWF4KGI6 OmludDQpLCBtYXgoYjo6aW50OCksIG1heChjX2ludGVydmFsKSwgbWF4KGNfbW9uZXkpLCBtYXgo Yjo6bnVtZXJpYyksIG1heChiOjpvaWQpLCBtYXgoY19wZ19sc24pLCBtYXgoY190aWQpLCBtYXgo Y18xYyksIG1heChjX3RpbWUpLCBtYXgoY190aW1ldHopLCBtYXgoY190aW1lc3RhbXApLCBtYXgo Y190aW1lc3RhbXB0eiksIG1heChjX3hpZDgpLAorICAgIG1pbihjX2ludDRhcnJheSksIG1pbihj X2VudW0pLCBtaW4oY18xYzo6Y2hhcigxKSksIG1pbignMjAwMC0wMS0wMSc6OmRhdGUgKyBiKSwg bWluKCcwLjAuMC4wJzo6aW5ldCArIGIpLCBtaW4oYjo6ZmxvYXQ0KSwgbWluKGI6OmZsb2F0OCks IG1pbihiOjppbnQyKSwgbWluKGI6OmludDQpLCBtaW4oYjo6aW50OCksIG1pbihjX2ludGVydmFs KSwgbWluKGNfbW9uZXkpLCBtaW4oYjo6bnVtZXJpYyksIG1pbihiOjpvaWQpLCBtaW4oY19wZ19s c24pLCBtaW4oY190aWQpLCBtaW4oY18xYyksIG1pbihjX3RpbWUpLCBtaW4oY190aW1ldHopLCBt aW4oY190aW1lc3RhbXApLCBtaW4oY190aW1lc3RhbXB0eiksIG1pbihjX3hpZDgpLAorICAgIHJh bmdlX2ludGVyc2VjdF9hZ2coY19pbnQ0cmFuZ2UpLCByYW5nZV9pbnRlcnNlY3RfYWdnKGNfaW50 NG11bHRpcmFuZ2UpLAorICAgIHJlZ3JfY291bnQoKDIgKiBiICsgMyk6OmZsb2F0OCwgYjo6Zmxv YXQ4KSwKKyAgICBzdW0oYjo6ZmxvYXQ0KSwgc3VtKGI6OmZsb2F0OCksIHN1bShiOjppbnQyKSwg c3VtKGI6OmludDQpLAlzdW0oY19pbnRlcnZhbCksIHN1bShjX21vbmV5KQorICBGUk9NIHBhZ2df dGFiIFdIRVJFIGNfc2VyaWFsIGJldHdlZW4gMSBhbmQgMzA7CisKKy0tIFRlc3RzIGZvciBiYWNr d2FyZCBjb21wYXRpYmlsaXR5CitBTFRFUiBTRVJWRVIgbG9vcGJhY2sgT1BUSU9OUyAoQUREIGNo ZWNrX3BhcnRpYWxfYWdncmVnYXRlX3N1cHBvcnQgJ2ZhbHNlJyk7CitFWFBMQUlOIChWRVJCT1NF LCBDT1NUUyBPRkYpCitTRUxFQ1QgYiwgYXZnKGEpLCBtYXgoYSksIGNvdW50KCopIEZST00gcGFn Z190YWIgR1JPVVAgQlkgYiBPUkRFUiBCWSAxOworU0VMRUNUIGIsIGF2ZyhhKSwgbWF4KGEpLCBj b3VudCgqKSBGUk9NIHBhZ2dfdGFiIEdST1VQIEJZIGIgT1JERVIgQlkgMTsKKworQUxURVIgU0VS VkVSIGxvb3BiYWNrIE9QVElPTlMgKFNFVCBjaGVja19wYXJ0aWFsX2FnZ3JlZ2F0ZV9zdXBwb3J0 ICd0cnVlJyk7CitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpCitTRUxFQ1QgYiwgYXZnKGEp LCBtYXgoYSksIGNvdW50KCopIEZST00gcGFnZ190YWIgR1JPVVAgQlkgYiBPUkRFUiBCWSAxOwor U0VMRUNUIGIsIGF2ZyhhKSwgbWF4KGEpLCBjb3VudCgqKSBGUk9NIHBhZ2dfdGFiIEdST1VQIEJZ IGIgT1JERVIgQlkgMTsKKworQUxURVIgU0VSVkVSIGxvb3BiYWNrIE9QVElPTlMgKFNFVCBmZHdf dHVwbGVfY29zdCAnMS4wJyk7CitTRVQgZW5hYmxlX3BhcnRpdGlvbndpc2Vfam9pbj1vbjsKK0VY UExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikKK1NFTEVDVCBhdmcodDEuYiksIGF2Zyh0MS5iOjpp bnQ4KSBGUk9NIHBhZ2dfdGFiIHQxIEpPSU4gcGFnZ190YWIgdDIgVVNJTkcoYSk7CitTRUxFQ1Qg YXZnKHQxLmIpLCBhdmcodDEuYjo6aW50OCkgRlJPTSBwYWdnX3RhYiB0MSBKT0lOIHBhZ2dfdGFi IHQyIFVTSU5HKGEpOworUkVTRVQgZW5hYmxlX3BhcnRpdGlvbndpc2Vfam9pbjsKK0FMVEVSIFNF UlZFUiBsb29wYmFjayBPUFRJT05TIChTRVQgZmR3X3R1cGxlX2Nvc3QgJzAuMScpOworCitBTFRF UiBTRVJWRVIgbG9vcGJhY2sgT1BUSU9OUyAoRFJPUCBjaGVja19wYXJ0aWFsX2FnZ3JlZ2F0ZV9z dXBwb3J0KTsKKworLS0gSXQgaXMgdW5zYWZlIHRvIHB1c2ggZG93biBwYXJ0aWFsIGFnZ3JlZ2F0 ZXMgd2hpY2ggY29udGFpbiBESVNUSU5DVCBjbGF1c2VzCitFWFBMQUlOIChWRVJCT1NFLCBDT1NU UyBPRkYpCitTRUxFQ1QgbWF4KGEpLCBjb3VudChkaXN0aW5jdCBiKSBGUk9NIHBhZ2dfdGFiOwor U0VMRUNUIG1heChhKSwgY291bnQoZGlzdGluY3QgYikgRlJPTSBwYWdnX3RhYjsKKworLS0gSXQg aXMgdW5zYWZlIHRvIHB1c2ggZG93biBwYXJ0aWFsIGFnZ3JlZ2F0ZXMgd2hpY2ggY29udGFpbiBP UkRFUiBCWSBjbGF1c2VzCitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCBhcnJh eV9hZ2coYiBvcmRlciBieSBiKSBGUk9NIHBhZ2dfdGFiIFdIRVJFIGNfc2VyaWFsIGJldHdlZW4g MSBhbmQgMzA7CitTRUxFQ1QgYXJyYXlfYWdnKGIgb3JkZXIgYnkgYikgRlJPTSBwYWdnX3RhYiBX SEVSRSBjX3NlcmlhbCBiZXR3ZWVuIDEgYW5kIDMwOworCitBTFRFUiBTRVJWRVIgbG9vcGJhY2sg T1BUSU9OUyAoRFJPUCBmZHdfdHVwbGVfY29zdCk7CiAKIC0tID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIGFjY2Vz cyByaWdodHMgYW5kIHN1cGVydXNlcgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv bm9kZUFnZy5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUFnZy5jCmluZGV4IGRiZDU2NjFk MTcuLjY5ZGVkZWU0YWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVBZ2cu YworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlQWdnLmMKQEAgLTEwNzksNyArMTA3OSw4 IEBAIGZpbmFsaXplX2FnZ3JlZ2F0ZShBZ2dTdGF0ZSAqYWdnc3RhdGUsCiAJLyoKIAkgKiBBcHBs eSB0aGUgYWdnJ3MgZmluYWxmbiBpZiBvbmUgaXMgcHJvdmlkZWQsIGVsc2UgcmV0dXJuIHRyYW5z VmFsdWUuCiAJICovCi0JaWYgKE9pZElzVmFsaWQocGVyYWdnLT5maW5hbGZuX29pZCkpCisJaWYg KE9pZElzVmFsaWQocGVyYWdnLT5maW5hbGZuX29pZCkgJiYKKwkJKHBlcmFnZy0+YWdncmVmLT5h Z2dfcGFydGlhbCA9PSBmYWxzZSkpCiAJewogCQlpbnQJCQludW1GaW5hbEFyZ3MgPSBwZXJhZ2ct Pm51bUZpbmFsQXJnczsKIApAQCAtMTEyNSw2ICsxMTI2LDQyIEBAIGZpbmFsaXplX2FnZ3JlZ2F0 ZShBZ2dTdGF0ZSAqYWdnc3RhdGUsCiAJCX0KIAkJYWdnc3RhdGUtPmN1cnBlcmFnZyA9IE5VTEw7 CiAJfQorCWVsc2UgaWYgKHBlcmFnZy0+YWdncmVmLT5hZ2dfcGFydGlhbAorCQkJJiYgKHBlcmFn Zy0+YWdncmVmLT5hZ2d0cmFuc3R5cGUgPT0gSU5URVJOQUxPSUQpCisJCQkmJiBPaWRJc1ZhbGlk KHBlcmFnZy0+c2VyaWFsZm5fb2lkKSkKKwl7CisJCS8qIHNldCB1cCBhZ2dzdGF0ZS0+Y3VycGVy YWdnIGZvciBBZ2dHZXRBZ2dyZWYoKSAqLworCQlhZ2dzdGF0ZS0+Y3VycGVyYWdnID0gcGVyYWdn OworCisJCUluaXRGdW5jdGlvbkNhbGxJbmZvRGF0YSgqZmNpbmZvLCAmcGVyYWdnLT5zZXJpYWxm biwgMSwKKwkJCQkJCQkJIEludmFsaWRPaWQsICh2b2lkICopIGFnZ3N0YXRlLCBOVUxMKTsKKwor CQkvKiBGaWxsIGluIHRoZSB0cmFuc2l0aW9uIHN0YXRlIHZhbHVlICovCisJCWZjaW5mby0+YXJn c1swXS52YWx1ZSA9CisJCQlNYWtlRXhwYW5kZWRPYmplY3RSZWFkT25seShwZXJncm91cHN0YXRl LT50cmFuc1ZhbHVlLAorCQkJCQkJCQkJICAgcGVyZ3JvdXBzdGF0ZS0+dHJhbnNWYWx1ZUlzTnVs bCwKKwkJCQkJCQkJCSAgIHBlcnRyYW5zLT50cmFuc3R5cGVMZW4pOworCQlmY2luZm8tPmFyZ3Nb MF0uaXNudWxsID0gcGVyZ3JvdXBzdGF0ZS0+dHJhbnNWYWx1ZUlzTnVsbDsKKwkJYW55bnVsbCB8 PSBwZXJncm91cHN0YXRlLT50cmFuc1ZhbHVlSXNOdWxsOworCisJCWlmIChmY2luZm8tPmZsaW5m by0+Zm5fc3RyaWN0ICYmIGFueW51bGwpCisJCXsKKwkJCS8qIGRvbid0IGNhbGwgYSBzdHJpY3Qg ZnVuY3Rpb24gd2l0aCBOVUxMIGlucHV0cyAqLworCQkJKnJlc3VsdFZhbCA9IChEYXR1bSkgMDsK KwkJCSpyZXN1bHRJc051bGwgPSB0cnVlOworCQl9CisJCWVsc2UKKwkJeworCQkJRGF0dW0JCXJl c3VsdDsKKworCQkJcmVzdWx0ID0gRnVuY3Rpb25DYWxsSW52b2tlKGZjaW5mbyk7CisJCQkqcmVz dWx0SXNOdWxsID0gZmNpbmZvLT5pc251bGw7CisJCQkqcmVzdWx0VmFsID0gTWFrZUV4cGFuZGVk T2JqZWN0UmVhZE9ubHkocmVzdWx0LAorCQkJCQkJCQkJCQkJCWZjaW5mby0+aXNudWxsLAorCQkJ CQkJCQkJCQkJCXBlcmFnZy0+cmVzdWx0dHlwZUxlbik7CisJCX0KKwkJYWdnc3RhdGUtPmN1cnBl cmFnZyA9IE5VTEw7CisJfQogCWVsc2UKIAl7CiAJCSpyZXN1bHRWYWwgPQpAQCAtMzY2Myw3ICsz NzAwLDcgQEAgRXhlY0luaXRBZ2coQWdnICpub2RlLCBFU3RhdGUgKmVzdGF0ZSwgaW50IGVmbGFn cykKIAkJT2lkCQkJc2VyaWFsZm5fb2lkLAogCQkJCQlkZXNlcmlhbGZuX29pZDsKIAkJT2lkCQkJ YWdnT3duZXI7Ci0JCUV4cHIJICAgKmZpbmFsZm5leHByOworCQlFeHByCSAgICpmaW5hbGZuZXhw ciwgKnNlcmlhbGZuZXhwcjsKIAkJT2lkCQkJYWdndHJhbnN0eXBlOwogCiAJCS8qIFBsYW5uZXIg c2hvdWxkIGhhdmUgYXNzaWduZWQgYWdncmVnYXRlIHRvIGNvcnJlY3QgbGV2ZWwgKi8KQEAgLTM4 MjAsNiArMzg1NywxNyBAQCBFeGVjSW5pdEFnZyhBZ2cgKm5vZGUsIEVTdGF0ZSAqZXN0YXRlLCBp bnQgZWZsYWdzKQogCQkJZm1ncl9pbmZvKGZpbmFsZm5fb2lkLCAmcGVyYWdnLT5maW5hbGZuKTsK IAkJCWZtZ3JfaW5mb19zZXRfZXhwcigoTm9kZSAqKSBmaW5hbGZuZXhwciwgJnBlcmFnZy0+Zmlu YWxmbik7CiAJCX0KKwkJLyoKKwkJICogYnVpbGQgZXhwcmVzc2lvbiB0cmVlcyBmb3IgdGhlIHNl cmlhbGZuLCBpZiBpdCBleGlzdHMgYW5kIGlzIHJlcXVpcmVkLgorCQkgKi8KKwkJaWYgKE9pZElz VmFsaWQoYWdnZm9ybS0+YWdnc2VyaWFsZm4pICYmIHBlcmFnZy0+YWdncmVmLT5hZ2dfcGFydGlh bCkKKwkJeworCQkJYnVpbGRfYWdncmVnYXRlX3NlcmlhbGZuX2V4cHIoYWdnZm9ybS0+YWdnc2Vy aWFsZm4sCisJCQkJCQkJCQkJICZzZXJpYWxmbmV4cHIpOworCQkJcGVyYWdnLT5zZXJpYWxmbl9v aWQgPSBhZ2dmb3JtLT5hZ2dzZXJpYWxmbjsKKwkJCWZtZ3JfaW5mbyhhZ2dmb3JtLT5hZ2dzZXJp YWxmbiwgJnBlcmFnZy0+c2VyaWFsZm4pOworCQkJZm1ncl9pbmZvX3NldF9leHByKChOb2RlICop IHNlcmlhbGZuZXhwciwgJnBlcmFnZy0+c2VyaWFsZm4pOworCQl9CiAKIAkJLyogZ2V0IGluZm8g YWJvdXQgdGhlIG91dHB1dCB2YWx1ZSdzIGRhdGF0eXBlICovCiAJCWdldF90eXBsZW5ieXZhbChh Z2dyZWYtPmFnZ3R5cGUsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9tYWtlZnVuY3Mu YyBiL3NyYy9iYWNrZW5kL25vZGVzL21ha2VmdW5jcy5jCmluZGV4IGEwMjMzMmExZWMuLmFhYzM1 YjlkOWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL21ha2VmdW5jcy5jCisrKyBiL3Ny Yy9iYWNrZW5kL25vZGVzL21ha2VmdW5jcy5jCkBAIC01OTcsNiArNTk3LDcgQEAgbWFrZUZ1bmND YWxsKExpc3QgKm5hbWUsIExpc3QgKmFyZ3MsIENvZXJjaW9uRm9ybSBmdW5jZm9ybWF0LCBpbnQg bG9jYXRpb24pCiAJbi0+YWdnX3dpdGhpbl9ncm91cCA9IGZhbHNlOwogCW4tPmFnZ19zdGFyID0g ZmFsc2U7CiAJbi0+YWdnX2Rpc3RpbmN0ID0gZmFsc2U7CisJbi0+YWdnX3BhcnRpYWwgPSBmYWxz ZTsKIAluLT5mdW5jX3ZhcmlhZGljID0gZmFsc2U7CiAJbi0+ZnVuY2Zvcm1hdCA9IGZ1bmNmb3Jt YXQ7CiAJbi0+bG9jYXRpb24gPSBsb2NhdGlvbjsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29w dGltaXplci9wbGFuL3BsYW5uZXIuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5u ZXIuYwppbmRleCBiZTRlMTgyODY5Li5kYWVkMTg3ZWI2IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3Bs YW4vcGxhbm5lci5jCkBAIC0yMDgsNyArMjA4LDcgQEAgc3RhdGljIFBhdGhUYXJnZXQgKm1ha2Vf Z3JvdXBfaW5wdXRfdGFyZ2V0KFBsYW5uZXJJbmZvICpyb290LAogCQkJCQkJCQkJCSAgIFBhdGhU YXJnZXQgKmZpbmFsX3RhcmdldCk7CiBzdGF0aWMgUGF0aFRhcmdldCAqbWFrZV9wYXJ0aWFsX2dy b3VwaW5nX3RhcmdldChQbGFubmVySW5mbyAqcm9vdCwKIAkJCQkJCQkJCQkJCVBhdGhUYXJnZXQg Kmdyb3VwaW5nX3RhcmdldCwKLQkJCQkJCQkJCQkJCU5vZGUgKmhhdmluZ1F1YWwpOworCQkJCQkJ CQkJCQkJR3JvdXBQYXRoRXh0cmFEYXRhICpleHRyYSk7CiBzdGF0aWMgTGlzdCAqcG9zdHByb2Nl c3Nfc2V0b3BfdGxpc3QoTGlzdCAqbmV3X3RsaXN0LCBMaXN0ICpvcmlnX3RsaXN0KTsKIHN0YXRp YyB2b2lkIG9wdGltaXplX3dpbmRvd19jbGF1c2VzKFBsYW5uZXJJbmZvICpyb290LAogCQkJCQkJ CQkJV2luZG93RnVuY0xpc3RzICp3Zmxpc3RzKTsKQEAgLTUzMzksNiArNTMzOSw5OSBAQCBtYWtl X2dyb3VwX2lucHV0X3RhcmdldChQbGFubmVySW5mbyAqcm9vdCwgUGF0aFRhcmdldCAqZmluYWxf dGFyZ2V0KQogCXJldHVybiBzZXRfcGF0aHRhcmdldF9jb3N0X3dpZHRoKHJvb3QsIGlucHV0X3Rh cmdldCk7CiB9CiAKKy8qCisgKiBzZXRHcm91cENsYXVzZVBhcnRpYWwKKyAqCSAgR2VuZXJhdGUg YSBncm91cENsYXVzZSBhbmQgYSBwYXRodGFyZ2V0IGZvciBwYXJ0aWFsIGFnZ3JlZ2F0ZQorICoJ ICBwdXNoZG93biBieSBGRFcgYW5kIHNldCB0aGVtIHRvIEdyb3VwUGF0aEV4dHJhRGF0YS4KKyAq Lworc3RhdGljIHZvaWQKK3NldEdyb3VwQ2xhdXNlUGFydGlhbChQYXRoVGFyZ2V0ICpwYXJ0aWFs X3RhcmdldCwgTGlzdCAqbm9uX2dyb3VwX2V4cHJzLAorCQkJCQkgIExpc3QgKmdyb3VwQ2xhdXNl LCBHcm91cFBhdGhFeHRyYURhdGEgKmV4dHJhKQoreworCWludAkJCWV4cHJubywKKwkJCQlyZWZu bzsKKwlMaXN0Q2VsbCAgICpsYzsKKwlJbmRleAkJbWF4UmVmID0gMDsKKwlMaXN0CSAgICpleHBy c19wcm9jZXNzZWQgPSBOSUw7CisJaW50CQkJZXhwcnNfbnVtID0gMDsKKworCWZvcmVhY2gobGMs IGdyb3VwQ2xhdXNlKQorCXsKKwkJU29ydEdyb3VwQ2xhdXNlICpzZ2MgPSAoU29ydEdyb3VwQ2xh dXNlICopIGxmaXJzdChsYyk7CisKKwkJaWYgKHNnYy0+dGxlU29ydEdyb3VwUmVmID4gbWF4UmVm KQorCQkJbWF4UmVmID0gc2djLT50bGVTb3J0R3JvdXBSZWY7CisJfQorCW1heFJlZisrOworCisJ ZXh0cmEtPmdyb3VwQ2xhdXNlUGFydGlhbCA9IGxpc3RfY29weV9kZWVwKGdyb3VwQ2xhdXNlKTsK KwlleHRyYS0+cGFydGlhbF90YXJnZXQgPSBjb3B5X3BhdGh0YXJnZXQocGFydGlhbF90YXJnZXQp OworCisJaWYgKHBhcnRpYWxfdGFyZ2V0LT5leHBycykKKwkJZXhwcnNfbnVtID0gcGFydGlhbF90 YXJnZXQtPmV4cHJzLT5sZW5ndGg7CisKKwlmb3JlYWNoKGxjLCBub25fZ3JvdXBfZXhwcnMpCisJ eworCQlFeHByCSAgICpleHByID0gKEV4cHIgKikgbGZpcnN0KGxjKTsKKworCQlyZWZubyA9IC0x OworCQlpZiAobGlzdF9tZW1iZXIoZXhwcnNfcHJvY2Vzc2VkLCBleHByKSB8fAorCQkJKCFJc0Eo ZXhwciwgVmFyKSAmJiAhSXNBKGV4cHIsIFBsYWNlSG9sZGVyVmFyKSkpCisJCQljb250aW51ZTsK KwkJZXhwcnNfcHJvY2Vzc2VkID0gbGFwcGVuZChleHByc19wcm9jZXNzZWQsIGV4cHIpOworCQlm b3IgKGV4cHJubyA9IDA7IGV4cHJubyA8IGV4cHJzX251bTsgZXhwcm5vKyspCisJCXsKKwkJCUV4 cHIJICAgKnRhcmdldF9leHByID0gKEV4cHIgKikgbGlzdF9udGgocGFydGlhbF90YXJnZXQtPmV4 cHJzLCBleHBybm8pOworCisJCQlpZiAoZXF1YWwodGFyZ2V0X2V4cHIsIGV4cHIpKQorCQkJewor CQkJCXJlZm5vID0gZXhwcm5vOworCQkJCWJyZWFrOworCQkJfQorCQl9CisJCWlmIChyZWZubyA8 IDApCisJCXsKKwkJCVNvcnRHcm91cENsYXVzZSAqZ3JwY2wgPSBtYWtlTm9kZShTb3J0R3JvdXBD bGF1c2UpOworCisJCQlncnBjbC0+dGxlU29ydEdyb3VwUmVmID0gbWF4UmVmKys7CisJCQlleHRy YS0+Z3JvdXBDbGF1c2VQYXJ0aWFsID0gbGFwcGVuZChleHRyYS0+Z3JvdXBDbGF1c2VQYXJ0aWFs LCBncnBjbCk7CisJCQlhZGRfY29sdW1uX3RvX3BhdGh0YXJnZXQoZXh0cmEtPnBhcnRpYWxfdGFy Z2V0LCBleHByLCBncnBjbC0+dGxlU29ydEdyb3VwUmVmKTsKKwkJfQorCX0KK30KKworLyoKKyAq IGFkanVzdEFnZ3JlZkZvclBhcnRpYWwKKyAqIEFkanVzdCBBZ2dyZWZzIHRvIHB1dCB0aGVtIGlu IHBhcnRpYWwgbW9kZQorICovCitzdGF0aWMgdm9pZAorYWRqdXN0QWdncmVmRm9yUGFydGlhbChM aXN0ICpleHBycykKK3sKKwlMaXN0Q2VsbCAgICpsYzsKKworCWZvcmVhY2gobGMsIGV4cHJzKQor CXsKKwkJQWdncmVmCSAgICphZ2dyZWYgPSAoQWdncmVmICopIGxmaXJzdChsYyk7CisKKwkJaWYg KElzQShhZ2dyZWYsIEFnZ3JlZikpCisJCXsKKwkJCUFnZ3JlZgkgICAqbmV3YWdncmVmOworCisJ CQkvKgorCQkJICogV2Ugc2hvdWxkbid0IG5lZWQgdG8gY29weSB0aGUgc3Vic3RydWN0dXJlIG9m IHRoZSBBZ2dyZWYgbm9kZSwKKwkJCSAqIGJ1dCBmbGF0LWNvcHkgdGhlIG5vZGUgaXRzZWxmIHRv IGF2b2lkIGRhbWFnaW5nIG90aGVyIHRyZWVzLgorCQkJICovCisJCQluZXdhZ2dyZWYgPSBtYWtl Tm9kZShBZ2dyZWYpOworCQkJbWVtY3B5KG5ld2FnZ3JlZiwgYWdncmVmLCBzaXplb2YoQWdncmVm KSk7CisKKwkJCS8qIEZvciBub3csIGFzc3VtZSBzZXJpYWxpemF0aW9uIGlzIHJlcXVpcmVkICov CisJCQltYXJrX3BhcnRpYWxfYWdncmVmKG5ld2FnZ3JlZiwgQUdHU1BMSVRfSU5JVElBTF9TRVJJ QUwpOworCisJCQlsZmlyc3QobGMpID0gbmV3YWdncmVmOworCQl9CisJfQorfQorCiAvKgogICog bWFrZV9wYXJ0aWFsX2dyb3VwaW5nX3RhcmdldAogICoJICBHZW5lcmF0ZSBhcHByb3ByaWF0ZSBQ YXRoVGFyZ2V0IGZvciBvdXRwdXQgb2YgcGFydGlhbCBhZ2dyZWdhdGUKQEAgLTUzNTQsMTEgKzU0 NDcsMTUgQEAgbWFrZV9ncm91cF9pbnB1dF90YXJnZXQoUGxhbm5lckluZm8gKnJvb3QsIFBhdGhU YXJnZXQgKmZpbmFsX3RhcmdldCkKICAqCiAgKiBncm91cGluZ190YXJnZXQgaXMgdGhlIHRsaXN0 IHRvIGJlIGVtaXR0ZWQgYnkgdGhlIHRvcG1vc3QgYWdncmVnYXRpb24gc3RlcC4KICAqIGhhdmlu Z1F1YWwgcmVwcmVzZW50cyB0aGUgSEFWSU5HIGNsYXVzZS4KKyAqCisgKiBNb2RpZmllZCBQYXRo VGFyZ2V0IGNhbm5vdCBiZSB1c2VkIGJ5IEZEVyBhcy1pcyB0byBkZXBhcnNlIHRoaXMgc3RhdGVt ZW50LgorICogU28sIGJlZm9yZSBtb2RpZnlpbmcgUGF0aFRhcmdldCwgc2V0R3JvdXBDbGF1c2VQ YXJ0aWFsIGdlbmVyYXRlcworICogYW5vdGhlciBQYXRodGFyZ2V0IGFuZCBhbm90aGVyIGxpc3Qg b2YgU29ydEdyb3VwQ2xhdXNlcy4KICAqLwogc3RhdGljIFBhdGhUYXJnZXQgKgogbWFrZV9wYXJ0 aWFsX2dyb3VwaW5nX3RhcmdldChQbGFubmVySW5mbyAqcm9vdCwKIAkJCQkJCQkgUGF0aFRhcmdl dCAqZ3JvdXBpbmdfdGFyZ2V0LAotCQkJCQkJCSBOb2RlICpoYXZpbmdRdWFsKQorCQkJCQkJCSBH cm91cFBhdGhFeHRyYURhdGEgKmV4dHJhKQogewogCVBhdGhUYXJnZXQgKnBhcnRpYWxfdGFyZ2V0 OwogCUxpc3QJICAgKm5vbl9ncm91cF9jb2xzOwpAQCAtNTQwMCw4ICs1NDk3LDggQEAgbWFrZV9w YXJ0aWFsX2dyb3VwaW5nX3RhcmdldChQbGFubmVySW5mbyAqcm9vdCwKIAkvKgogCSAqIElmIHRo ZXJlJ3MgYSBIQVZJTkcgY2xhdXNlLCB3ZSdsbCBuZWVkIHRoZSBWYXJzL0FnZ3JlZnMgaXQgdXNl cywgdG9vLgogCSAqLwotCWlmIChoYXZpbmdRdWFsKQotCQlub25fZ3JvdXBfY29scyA9IGxhcHBl bmQobm9uX2dyb3VwX2NvbHMsIGhhdmluZ1F1YWwpOworCWlmIChleHRyYS0+aGF2aW5nUXVhbCkK KwkJbm9uX2dyb3VwX2NvbHMgPSBsYXBwZW5kKG5vbl9ncm91cF9jb2xzLCBleHRyYS0+aGF2aW5n UXVhbCk7CiAKIAkvKgogCSAqIFB1bGwgb3V0IGFsbCB0aGUgVmFycywgUGxhY2VIb2xkZXJWYXJz LCBhbmQgQWdncmVmcyBtZW50aW9uZWQgaW4KQEAgLTU0MTQsMzUgKzU1MTEsMTcgQEAgbWFrZV9w YXJ0aWFsX2dyb3VwaW5nX3RhcmdldChQbGFubmVySW5mbyAqcm9vdCwKIAkJCQkJCQkJCSAgUFZD X0lOQ0xVREVfQUdHUkVHQVRFUyB8CiAJCQkJCQkJCQkgIFBWQ19SRUNVUlNFX1dJTkRPV0ZVTkNT IHwKIAkJCQkJCQkJCSAgUFZDX0lOQ0xVREVfUExBQ0VIT0xERVJTKTsKLQorCXNldEdyb3VwQ2xh dXNlUGFydGlhbChwYXJ0aWFsX3RhcmdldCwgbm9uX2dyb3VwX2V4cHJzLCByb290LT5wYXJzZS0+ Z3JvdXBDbGF1c2UsIGV4dHJhKTsKIAlhZGRfbmV3X2NvbHVtbnNfdG9fcGF0aHRhcmdldChwYXJ0 aWFsX3RhcmdldCwgbm9uX2dyb3VwX2V4cHJzKTsKKwlhZGRfbmV3X2NvbHVtbnNfdG9fcGF0aHRh cmdldChleHRyYS0+cGFydGlhbF90YXJnZXQsIG5vbl9ncm91cF9leHBycyk7CiAKIAkvKgogCSAq IEFkanVzdCBBZ2dyZWZzIHRvIHB1dCB0aGVtIGluIHBhcnRpYWwgbW9kZS4gIEF0IHRoaXMgcG9p bnQgYWxsIEFnZ3JlZnMKIAkgKiBhcmUgYXQgdGhlIHRvcCBsZXZlbCBvZiB0aGUgdGFyZ2V0IGxp c3QsIHNvIHdlIGNhbiBqdXN0IHNjYW4gdGhlIGxpc3QKIAkgKiByYXRoZXIgdGhhbiByZWN1cnNp bmcgdGhyb3VnaCB0aGUgZXhwcmVzc2lvbiB0cmVlcy4KIAkgKi8KLQlmb3JlYWNoKGxjLCBwYXJ0 aWFsX3RhcmdldC0+ZXhwcnMpCi0JewotCQlBZ2dyZWYJICAgKmFnZ3JlZiA9IChBZ2dyZWYgKikg bGZpcnN0KGxjKTsKLQotCQlpZiAoSXNBKGFnZ3JlZiwgQWdncmVmKSkKLQkJewotCQkJQWdncmVm CSAgICpuZXdhZ2dyZWY7Ci0KLQkJCS8qCi0JCQkgKiBXZSBzaG91bGRuJ3QgbmVlZCB0byBjb3B5 IHRoZSBzdWJzdHJ1Y3R1cmUgb2YgdGhlIEFnZ3JlZiBub2RlLAotCQkJICogYnV0IGZsYXQtY29w eSB0aGUgbm9kZSBpdHNlbGYgdG8gYXZvaWQgZGFtYWdpbmcgb3RoZXIgdHJlZXMuCi0JCQkgKi8K LQkJCW5ld2FnZ3JlZiA9IG1ha2VOb2RlKEFnZ3JlZik7Ci0JCQltZW1jcHkobmV3YWdncmVmLCBh Z2dyZWYsIHNpemVvZihBZ2dyZWYpKTsKLQotCQkJLyogRm9yIG5vdywgYXNzdW1lIHNlcmlhbGl6 YXRpb24gaXMgcmVxdWlyZWQgKi8KLQkJCW1hcmtfcGFydGlhbF9hZ2dyZWYobmV3YWdncmVmLCBB R0dTUExJVF9JTklUSUFMX1NFUklBTCk7Ci0KLQkJCWxmaXJzdChsYykgPSBuZXdhZ2dyZWY7Ci0J CX0KLQl9CisJYWRqdXN0QWdncmVmRm9yUGFydGlhbChwYXJ0aWFsX3RhcmdldC0+ZXhwcnMpOwor CWFkanVzdEFnZ3JlZkZvclBhcnRpYWwoZXh0cmEtPnBhcnRpYWxfdGFyZ2V0LT5leHBycyk7CiAK IAkvKiBjbGVhbiB1cCBjcnVmdCAqLwogCWxpc3RfZnJlZShub25fZ3JvdXBfZXhwcnMpOwpAQCAt NzA5NSw3ICs3MTc0LDcgQEAgY3JlYXRlX3BhcnRpYWxfZ3JvdXBpbmdfcGF0aHMoUGxhbm5lcklu Zm8gKnJvb3QsCiAJICovCiAJcGFydGlhbGx5X2dyb3VwZWRfcmVsLT5yZWx0YXJnZXQgPQogCQlt YWtlX3BhcnRpYWxfZ3JvdXBpbmdfdGFyZ2V0KHJvb3QsIGdyb3VwZWRfcmVsLT5yZWx0YXJnZXQs Ci0JCQkJCQkJCQkgZXh0cmEtPmhhdmluZ1F1YWwpOworCQkJCQkJCQkJIGV4dHJhKTsKIAogCWlm ICghZXh0cmEtPnBhcnRpYWxfY29zdHNfc2V0KQogCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L29wdGltaXplci9wbGFuL3NldHJlZnMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Nl dHJlZnMuYwppbmRleCAyMmExZmEyOWYzLi4wYmJhMjdkMDZiIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVy L3BsYW4vc2V0cmVmcy5jCkBAIC0yNTU3LDYgKzI1NTcsNyBAQCBjb252ZXJ0X2NvbWJpbmluZ19h Z2dyZWZzKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCiAJCXBhcmVudF9hZ2cgPSBjb3B5T2Jq ZWN0KGNoaWxkX2FnZyk7CiAJCWNoaWxkX2FnZy0+YXJncyA9IG9yaWdfYWdnLT5hcmdzOwogCQlj aGlsZF9hZ2ctPmFnZ2ZpbHRlciA9IG9yaWdfYWdnLT5hZ2dmaWx0ZXI7CisJCWNoaWxkX2FnZy0+ YWdnX3BhcnRpYWwgPSBmYWxzZTsKIAogCQkvKgogCQkgKiBOb3csIHNldCB1cCBjaGlsZF9hZ2cg dG8gcmVwcmVzZW50IHRoZSBmaXJzdCBwaGFzZSBvZiBwYXJ0aWFsCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwYWdnLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIv cHJlcC9wcmVwYWdnLmMKaW5kZXggMTI3ZjI1YmIyZi4uNmNkZDc5MWY0YSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcGFnZy5jCisrKyBiL3NyYy9iYWNrZW5kL29w dGltaXplci9wcmVwL3ByZXBhZ2cuYwpAQCAtNDEyLDYgKzQxMiw3IEBAIGZpbmRfY29tcGF0aWJs ZV9hZ2coUGxhbm5lckluZm8gKnJvb3QsIEFnZ3JlZiAqbmV3YWdnLAogCQkvKiBhbGwgb2YgdGhl IGZvbGxvd2luZyBtdXN0IGJlIHRoZSBzYW1lIG9yIGl0J3Mgbm8gbWF0Y2ggKi8KIAkJaWYgKG5l d2FnZy0+aW5wdXRjb2xsaWQgIT0gZXhpc3RpbmdSZWYtPmlucHV0Y29sbGlkIHx8CiAJCQluZXdh Z2ctPmFnZ3RyYW5zdHlwZSAhPSBleGlzdGluZ1JlZi0+YWdndHJhbnN0eXBlIHx8CisJCQluZXdh Z2ctPmFnZ19wYXJ0aWFsICE9IGV4aXN0aW5nUmVmLT5hZ2dfcGFydGlhbCB8fAogCQkJbmV3YWdn LT5hZ2dzdGFyICE9IGV4aXN0aW5nUmVmLT5hZ2dzdGFyIHx8CiAJCQluZXdhZ2ctPmFnZ3Zhcmlh ZGljICE9IGV4aXN0aW5nUmVmLT5hZ2d2YXJpYWRpYyB8fAogCQkJbmV3YWdnLT5hZ2draW5kICE9 IGV4aXN0aW5nUmVmLT5hZ2draW5kIHx8CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIv Z3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCAxMzBmN2ZjN2MzLi5mZDZl NzUwNmM5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTc0NCw3ICs3NDQsNyBAQCBzdGF0aWMgTm9kZSAqbWFr ZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAq cXVlcnkpOwogCU9SREVSIE9SRElOQUxJVFkgT1RIRVJTIE9VVF9QIE9VVEVSX1AKIAlPVkVSIE9W RVJMQVBTIE9WRVJMQVkgT1ZFUlJJRElORyBPV05FRCBPV05FUgogCi0JUEFSQUxMRUwgUEFSQU1F VEVSIFBBUlNFUiBQQVJUSUFMIFBBUlRJVElPTiBQQVNTSU5HIFBBU1NXT1JECisJUEFSQUxMRUwg UEFSQU1FVEVSIFBBUlNFUiBQQVJUSUFMIFBBUlRJQUxfQUdHUkVHQVRFIFBBUlRJVElPTiBQQVNT SU5HIFBBU1NXT1JECiAJUExBQ0lORyBQTEFOUyBQT0xJQ1kKIAlQT1NJVElPTiBQUkVDRURJTkcg UFJFQ0lTSU9OIFBSRVNFUlZFIFBSRVBBUkUgUFJFUEFSRUQgUFJJTUFSWQogCVBSSU9SIFBSSVZJ TEVHRVMgUFJPQ0VEVVJBTCBQUk9DRURVUkUgUFJPQ0VEVVJFUyBQUk9HUkFNIFBVQkxJQ0FUSU9O CkBAIC0xNTI5Nyw2ICsxNTI5NywyNiBAQCBmdW5jX2FwcGxpY2F0aW9uOiBmdW5jX25hbWUgJygn ICcpJwogCQkJCQluLT5hZ2dfZGlzdGluY3QgPSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICopIG47 CiAJCQkJfQorCQkJfCBmdW5jX25hbWUgJygnIFBBUlRJQUxfQUdHUkVHQVRFIGZ1bmNfYXJnX2xp c3Qgb3B0X3NvcnRfY2xhdXNlICcpJworCQkJCXsKKwkJCQkJRnVuY0NhbGwgICAqbiA9IG1ha2VG dW5jQ2FsbCgkMSwgJDQsCisJCQkJCQkJCQkJCQkgQ09FUkNFX0VYUExJQ0lUX0NBTEwsCisJCQkJ CQkJCQkJCQkgQDEpOworCisJCQkJCW4tPmFnZ19vcmRlciA9ICQ1OworCQkJCQluLT5hZ2dfcGFy dGlhbCA9IHRydWU7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCQl8IGZ1bmNfbmFt ZSAnKCcgUEFSVElBTF9BR0dSRUdBVEUgJyonICcpJworCQkJCXsKKwkJCQkJRnVuY0NhbGwgICAq biA9IG1ha2VGdW5jQ2FsbCgkMSwgTklMLAorCQkJCQkJCQkJCQkJIENPRVJDRV9FWFBMSUNJVF9D QUxMLAorCQkJCQkJCQkJCQkJIEAxKTsKKworCQkJCQluLT5hZ2dfc3RhciA9IHRydWU7CisJCQkJ CW4tPmFnZ19wYXJ0aWFsID0gdHJ1ZTsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KIAkJ CXwgZnVuY19uYW1lICcoJyAnKicgJyknCiAJCQkJewogCQkJCQkvKgpAQCAtMTUzNTIsNiArMTUz NzIsMTEgQEAgZnVuY19leHByOiBmdW5jX2FwcGxpY2F0aW9uIHdpdGhpbl9ncm91cF9jbGF1c2Ug ZmlsdGVyX2NsYXVzZSBvdmVyX2NsYXVzZQogCQkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5U QVhfRVJST1IpLAogCQkJCQkJCQkJIGVycm1zZygiY2Fubm90IHVzZSBESVNUSU5DVCB3aXRoIFdJ VEhJTiBHUk9VUCIpLAogCQkJCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihAMikpKTsKKwkJCQkJ CWlmIChuLT5hZ2dfcGFydGlhbCkKKwkJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkJKGVy cmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkJCQkJIGVycm1zZygiY2Fubm90IHVz ZSBQQVJUSUFMX0FHR1JFR0FURSB3aXRoIFdJVEhJTiBHUk9VUCIpLAorCQkJCQkJCQkJIHBhcnNl cl9lcnJwb3NpdGlvbihAMikpKTsKIAkJCQkJCWlmIChuLT5mdW5jX3ZhcmlhZGljKQogCQkJCQkJ CWVyZXBvcnQoRVJST1IsCiAJCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiks CkBAIC0xNzYxOCw2ICsxNzY0Myw3IEBAIHJlc2VydmVkX2tleXdvcmQ6CiAJCQl8IE9OTFkKIAkJ CXwgT1IKIAkJCXwgT1JERVIKKwkJCXwgUEFSVElBTF9BR0dSRUdBVEUKIAkJCXwgUExBQ0lORwog CQkJfCBQUklNQVJZCiAJCQl8IFJFRkVSRU5DRVMKQEAgLTE3OTI0LDYgKzE3OTUwLDcgQEAgYmFy ZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBQQVJBTUVURVIKIAkJCXwgUEFSU0VSCiAJCQl8IFBBUlRJ QUwKKwkJCXwgUEFSVElBTF9BR0dSRUdBVEUKIAkJCXwgUEFSVElUSU9OCiAJCQl8IFBBU1NJTkcK IAkJCXwgUEFTU1dPUkQKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cu YyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwppbmRleCA5ZDE1MWE4ODBiLi40MzJk MThiYzQ3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKKysrIGIv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCkBAIC0xMDEsOCArMTAxLDggQEAgc3RhdGlj IE5vZGUgKm1ha2VfYWdnX2FyZyhPaWQgYXJndHlwZSwgT2lkIGFyZ2NvbGxhdGlvbik7CiAgKiBw c3RhdGUgbGV2ZWwuCiAgKi8KIHZvaWQKLXRyYW5zZm9ybUFnZ3JlZ2F0ZUNhbGwoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBBZ2dyZWYgKmFnZywKLQkJCQkJICAgTGlzdCAqYXJncywgTGlzdCAqYWdnb3Jk ZXIsIGJvb2wgYWdnX2Rpc3RpbmN0KQordHJhbnNmb3JtQWdncmVnYXRlQ2FsbChQYXJzZVN0YXRl ICpwc3RhdGUsIEFnZ3JlZiAqYWdnLCBMaXN0ICphcmdzLAorCQkJCQkgICBMaXN0ICphZ2dvcmRl ciwgYm9vbCBhZ2dfZGlzdGluY3QsIGJvb2wgYWdnX3BhcnRpYWwpCiB7CiAJTGlzdAkgICAqYXJn dHlwZXMgPSBOSUw7CiAJTGlzdAkgICAqdGxpc3QgPSBOSUw7CkBAIC0xNDcsOCArMTQ3LDggQEAg dHJhbnNmb3JtQWdncmVnYXRlQ2FsbChQYXJzZVN0YXRlICpwc3RhdGUsIEFnZ3JlZiAqYWdnLAog CQkJCQkJCQkJCSB0b3JkZXIsIHRsaXN0LCBzb3J0YnkpOwogCQl9CiAKLQkJLyogTmV2ZXIgYW55 IERJU1RJTkNUIGluIGFuIG9yZGVyZWQtc2V0IGFnZyAqLwotCQlBc3NlcnQoIWFnZ19kaXN0aW5j dCk7CisJCS8qIE5ldmVyIGFueSBESVNUSU5DVCBhbmQgUEFSVElBTF9BR0cgaW4gYW4gb3JkZXJl ZC1zZXQgYWdnICovCisJCUFzc2VydCghYWdnX2Rpc3RpbmN0IHx8ICFhZ2dfcGFydGlhbCk7CiAJ fQogCWVsc2UKIAl7CkBAIC0yMjIsNiArMjIyLDIyIEBAIHRyYW5zZm9ybUFnZ3JlZ2F0ZUNhbGwo UGFyc2VTdGF0ZSAqcHN0YXRlLCBBZ2dyZWYgKmFnZywKIAlhZ2ctPmFyZ3MgPSB0bGlzdDsKIAlh Z2ctPmFnZ29yZGVyID0gdG9yZGVyOwogCWFnZy0+YWdnZGlzdGluY3QgPSB0ZGlzdGluY3Q7CisJ YWdnLT5hZ2dfcGFydGlhbCA9IGFnZ19wYXJ0aWFsOworCWlmKGFnZy0+YWdnX3BhcnRpYWwpewor CQlIZWFwVHVwbGUJYWdndHVwOworCQlGb3JtX3BnX2FnZ3JlZ2F0ZSBhZ2dmb3JtOworCisJCWFn Z3R1cCA9IFNlYXJjaFN5c0NhY2hlMShBR0dGTk9JRCwgT2JqZWN0SWRHZXREYXR1bShhZ2ctPmFn Z2Zub2lkKSk7CisJCWlmICghSGVhcFR1cGxlSXNWYWxpZChhZ2d0dXApKQorCQkJZWxvZyhFUlJP UiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGFnZ3JlZ2F0ZSAldSIsIGFnZy0+YWdnZm5vaWQp OworCQlhZ2dmb3JtID0gKEZvcm1fcGdfYWdncmVnYXRlKSBHRVRTVFJVQ1QoYWdndHVwKTsKKwkJ UmVsZWFzZVN5c0NhY2hlKGFnZ3R1cCk7CisJCWlmKGFnZ2Zvcm0tPmFnZ3RyYW5zdHlwZSA9PSBJ TlRFUk5BTE9JRCl7CisJCQlhZ2ctPmFnZ3R5cGUgPSBCWVRFQU9JRDsKKwkJfSBlbHNlIHsKKwkJ CWFnZy0+YWdndHlwZSA9IGFnZ2Zvcm0tPmFnZ3RyYW5zdHlwZTsKKwkJfQorCX0KIAogCS8qCiAJ ICogTm93IGJ1aWxkIHRoZSBhZ2dhcmd0eXBlcyBsaXN0IHdpdGggdGhlIHR5cGUgT0lEcyBvZiB0 aGUgZGlyZWN0IGFuZApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NsYXVz ZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NsYXVzZS5jCmluZGV4IDRiNTAyNzhmZDAu LjZiMjRmMDQ3ZjggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jbGF1c2Uu YworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY2xhdXNlLmMKQEAgLTU0Myw2ICs1NDMs NyBAQCB0cmFuc2Zvcm1SYW5nZUZ1bmN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUmFuZ2VGdW5j dGlvbiAqcikKIAkJCQlmYy0+b3ZlciA9PSBOVUxMICYmCiAJCQkJIWZjLT5hZ2dfc3RhciAmJgog CQkJCSFmYy0+YWdnX2Rpc3RpbmN0ICYmCisJCQkJIWZjLT5hZ2dfcGFydGlhbCAmJgogCQkJCSFm Yy0+ZnVuY192YXJpYWRpYyAmJgogCQkJCWNvbGRlZmxpc3QgPT0gTklMKQogCQkJewpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9leHByLmMKaW5kZXggOTMwMGM3YjlhYi4uM2MzNGRmNDhiYiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfZXhwci5jCkBAIC0zNzc2LDcgKzM3NzYsOCBAQCB0cmFuc2Zvcm1Kc29uQWdnQ29uc3Ry dWN0b3IoUGFyc2VTdGF0ZSAqcHN0YXRlLCBKc29uQWdnQ29uc3RydWN0b3IgKmFnZ19jdG9yLAog CQlhZ2dyZWYtPmFnZ3RyYW5zbm8gPSAtMTsKIAkJYWdncmVmLT5sb2NhdGlvbiA9IGFnZ19jdG9y LT5sb2NhdGlvbjsKIAotCQl0cmFuc2Zvcm1BZ2dyZWdhdGVDYWxsKHBzdGF0ZSwgYWdncmVmLCBh cmdzLCBhZ2dfY3Rvci0+YWdnX29yZGVyLCBmYWxzZSk7CisJCXRyYW5zZm9ybUFnZ3JlZ2F0ZUNh bGwocHN0YXRlLCBhZ2dyZWYsIGFyZ3MsIGFnZ19jdG9yLT5hZ2dfb3JkZXIsIGZhbHNlLAorCQkJ CQkJCSAgIGZhbHNlKTsKIAogCQlub2RlID0gKE5vZGUgKikgYWdncmVmOwogCX0KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfZnVuYy5jCmluZGV4IGZkYjNlNmRmMzMuLjBjMzBhZmIxYzcgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX2Z1bmMuYwpAQCAtOTcsNiArOTcsNyBAQCBQYXJzZUZ1bmNPckNvbHVtbihQYXJzZVN0YXRl ICpwc3RhdGUsIExpc3QgKmZ1bmNuYW1lLCBMaXN0ICpmYXJncywKIAlib29sCQlhZ2dfd2l0aGlu X2dyb3VwID0gKGZuID8gZm4tPmFnZ193aXRoaW5fZ3JvdXAgOiBmYWxzZSk7CiAJYm9vbAkJYWdn X3N0YXIgPSAoZm4gPyBmbi0+YWdnX3N0YXIgOiBmYWxzZSk7CiAJYm9vbAkJYWdnX2Rpc3RpbmN0 ID0gKGZuID8gZm4tPmFnZ19kaXN0aW5jdCA6IGZhbHNlKTsKKwlib29sCQlhZ2dfcGFydGlhbCA9 IChmbiA/IGZuLT5hZ2dfcGFydGlhbCA6IGZhbHNlKTsKIAlib29sCQlmdW5jX3ZhcmlhZGljID0g KGZuID8gZm4tPmZ1bmNfdmFyaWFkaWMgOiBmYWxzZSk7CiAJQ29lcmNpb25Gb3JtIGZ1bmNmb3Jt YXQgPSAoZm4gPyBmbi0+ZnVuY2Zvcm1hdCA6IENPRVJDRV9FWFBMSUNJVF9DQUxMKTsKIAlib29s CQljb3VsZF9iZV9wcm9qZWN0aW9uOwpAQCAtMjIyLDcgKzIyMyw4IEBAIFBhcnNlRnVuY09yQ29s dW1uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqZnVuY25hbWUsIExpc3QgKmZhcmdzLAogCSAq LwogCWNvdWxkX2JlX3Byb2plY3Rpb24gPSAobmFyZ3MgPT0gMSAmJiAhcHJvY19jYWxsICYmCiAJ CQkJCQkgICBhZ2dfb3JkZXIgPT0gTklMICYmIGFnZ19maWx0ZXIgPT0gTlVMTCAmJgotCQkJCQkJ ICAgIWFnZ19zdGFyICYmICFhZ2dfZGlzdGluY3QgJiYgb3ZlciA9PSBOVUxMICYmCisJCQkJCQkg ICAhYWdnX3N0YXIgJiYgIWFnZ19kaXN0aW5jdCAmJgorCQkJCQkJICAgIWFnZ19wYXJ0aWFsICYm IG92ZXIgPT0gTlVMTCAmJgogCQkJCQkJICAgIWZ1bmNfdmFyaWFkaWMgJiYgYXJnbmFtZXMgPT0g TklMICYmCiAJCQkJCQkgICBsaXN0X2xlbmd0aChmdW5jbmFtZSkgPT0gMSAmJgogCQkJCQkJICAg KGFjdHVhbF9hcmdfdHlwZXNbMF0gPT0gUkVDT1JET0lEIHx8CkBAIC0zMjIsNiArMzI0LDEyIEBA IFBhcnNlRnVuY09yQ29sdW1uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqZnVuY25hbWUsIExp c3QgKmZhcmdzLAogCQkJCQkgZXJybXNnKCJESVNUSU5DVCBzcGVjaWZpZWQsIGJ1dCAlcyBpcyBu b3QgYW4gYWdncmVnYXRlIGZ1bmN0aW9uIiwKIAkJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKGZ1bmNu YW1lKSksCiAJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikpKTsKKwkJ aWYgKGFnZ19wYXJ0aWFsKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09E RV9XUk9OR19PQkpFQ1RfVFlQRSksCisJCQkJCSBlcnJtc2coIlBBUlRJQUxfQUdHUkVHQVRFIHNw ZWNpZmllZCwgYnV0ICVzIGlzIG5vdCBhbiBhZ2dyZWdhdGUgZnVuY3Rpb24iLAorCQkJCQkJCU5h bWVMaXN0VG9TdHJpbmcoZnVuY25hbWUpKSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3Rh dGUsIGxvY2F0aW9uKSkpOwogCQlpZiAoYWdnX3dpdGhpbl9ncm91cCkKIAkJCWVyZXBvcnQoRVJS T1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLApAQCAtMzkyLDYg KzQwMCw4IEBAIFBhcnNlRnVuY09yQ29sdW1uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqZnVu Y25hbWUsIExpc3QgKmZhcmdzLAogCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxv Y2F0aW9uKSkpOwogCQkJLyogZ3JhbS55IHJlamVjdHMgRElTVElOQ1QgKyBXSVRISU4gR1JPVVAg Ki8KIAkJCUFzc2VydCghYWdnX2Rpc3RpbmN0KTsKKwkJCS8qIGdyYW0ueSByZWplY3RzIFBBUlRJ QUxfQUdHUkVHQVRFICovCisJCQlBc3NlcnQoIWFnZ19wYXJ0aWFsKTsKIAkJCS8qIGdyYW0ueSBy ZWplY3RzIFZBUklBRElDICsgV0lUSElOIEdST1VQICovCiAJCQlBc3NlcnQoIWZ1bmNfdmFyaWFk aWMpOwogCkBAIC04MTQsNyArODI0LDggQEAgUGFyc2VGdW5jT3JDb2x1bW4oUGFyc2VTdGF0ZSAq cHN0YXRlLCBMaXN0ICpmdW5jbmFtZSwgTGlzdCAqZmFyZ3MsCiAJCQkJCSBwYXJzZXJfZXJycG9z aXRpb24ocHN0YXRlLCBsb2NhdGlvbikpKTsKIAogCQkvKiBwYXJzZV9hZ2cuYyBkb2VzIGFkZGl0 aW9uYWwgYWdncmVnYXRlLXNwZWNpZmljIHByb2Nlc3NpbmcgKi8KLQkJdHJhbnNmb3JtQWdncmVn YXRlQ2FsbChwc3RhdGUsIGFnZ3JlZiwgZmFyZ3MsIGFnZ19vcmRlciwgYWdnX2Rpc3RpbmN0KTsK KwkJdHJhbnNmb3JtQWdncmVnYXRlQ2FsbChwc3RhdGUsIGFnZ3JlZiwgZmFyZ3MsIGFnZ19vcmRl ciwgYWdnX2Rpc3RpbmN0LAorCQkJCQkJCSAgIGFnZ19wYXJ0aWFsKTsKIAogCQlyZXR2YWwgPSAo Tm9kZSAqKSBhZ2dyZWY7CiAJfQpAQCAtODQ1LDYgKzg1NiwxNSBAQCBQYXJzZUZ1bmNPckNvbHVt bihQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKmZ1bmNuYW1lLCBMaXN0ICpmYXJncywKIAkJCQkJ IGVycm1zZygiRElTVElOQ1QgaXMgbm90IGltcGxlbWVudGVkIGZvciB3aW5kb3cgZnVuY3Rpb25z IiksCiAJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikpKTsKIAorCQkv KgorCQkgKiBwYXJ0aWFsIGFnZ3JlZ2F0ZXMgbm90IGFsbG93ZWQgaW4gd2luZG93cyB5ZXQKKwkJ ICovCisJCWlmIChhZ2dfcGFydGlhbCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2Rl KEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJIGVycm1zZygiUEFSVElBTF9B R0dSRUdBVEUgaXMgbm90IGltcGxlbWVudGVkIGZvciB3aW5kb3cgZnVuY3Rpb25zIiksCisJCQkJ CSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikpKTsKKwogCQkvKgogCQkgKiBS ZWplY3QgYXR0ZW1wdCB0byBjYWxsIGEgcGFyYW1ldGVybGVzcyBhZ2dyZWdhdGUgd2l0aG91dCAo KikKIAkJICogc3ludGF4LiAgVGhpcyBpcyBtZXJlIHBlZGFudHJ5IGJ1dCBzb21lIGZvbGtzIGlu c2lzdGVkIC4uLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCmluZGV4IGE5MjhhOGM1NWQuLjIx MjY1Y2U0ZGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwor KysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKQEAgLTEwMTIzLDcgKzEwMTIz LDggQEAgZ2V0X2FnZ19leHByX2hlbHBlcihBZ2dyZWYgKmFnZ3JlZiwgZGVwYXJzZV9jb250ZXh0 ICpjb250ZXh0LAogCiAJLyogUHJpbnQgdGhlIGFnZ3JlZ2F0ZSBuYW1lLCBzY2hlbWEtcXVhbGlm aWVkIGlmIG5lZWRlZCAqLwogCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAiJXMoJXMiLCBmdW5jbmFt ZSwKLQkJCQkJIChhZ2dyZWYtPmFnZ2Rpc3RpbmN0ICE9IE5JTCkgPyAiRElTVElOQ1QgIiA6ICIi KTsKKwkJCQkJIChhZ2dyZWYtPmFnZ2Rpc3RpbmN0ICE9IE5JTCkgPyAiRElTVElOQ1QgIiA6CisJ CQkJCSBhZ2dyZWYtPmFnZ19wYXJ0aWFsID8gIlBBUlRJQUxfQUdHUkVHQVRFICIgOiAiIik7CiAK IAlpZiAoQUdHS0lORF9JU19PUkRFUkVEX1NFVChhZ2dyZWYtPmFnZ2tpbmQpKQogCXsKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL25vZGVBZ2cuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1 dG9yL25vZGVBZ2cuaAppbmRleCA2ODQ3NzlhNmEzLi4wNzkzNjBjMTUzIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9leGVjdXRvci9ub2RlQWdnLmgKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3Iv bm9kZUFnZy5oCkBAIC0yMDYsNiArMjA2LDE1IEBAIHR5cGVkZWYgc3RydWN0IEFnZ1N0YXRlUGVy QWdnRGF0YQogCSAqLwogCUZtZ3JJbmZvCWZpbmFsZm47CiAKKwkvKiBPcHRpb25hbCBPaWQgb2Yg c2VyaWFsIGZ1bmN0aW9uIChtYXkgYmUgSW52YWxpZE9pZCkgKi8KKwlPaWQJCQlzZXJpYWxmbl9v aWQ7CisKKwkvKgorCSAqIGZtZ3IgbG9va3VwIGRhdGEgZm9yIHNlcmlhbCBmdW5jdGlvbiAtLS0g b25seSB2YWxpZCB3aGVuIHNlcmlhbGZuX29pZCBpcworCSAqIG5vdCBJbnZhbGlkT2lkLgorCSAq LworCUZtZ3JJbmZvCXNlcmlhbGZuOworCiAJLyoKIAkgKiBOdW1iZXIgb2YgYXJndW1lbnRzIHRv IHBhc3MgdG8gdGhlIGZpbmFsZm4uICBUaGlzIGlzIGFsd2F5cyBhdCBsZWFzdCAxCiAJICogKHRo ZSB0cmFuc2l0aW9uIHN0YXRlIHZhbHVlKSBwbHVzIGFueSBvcmRlcmVkLXNldCBkaXJlY3QgYXJn cy4gSWYgdGhlCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9z cmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggNDc2ZDU1ZGQyNC4uY2YwZDViYzJh OCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9p bmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtNDIxLDYgKzQyMSw3IEBAIHR5cGVkZWYgc3Ry dWN0IEZ1bmNDYWxsCiAJYm9vbAkJYWdnX3dpdGhpbl9ncm91cDsJLyogT1JERVIgQlkgYXBwZWFy ZWQgaW4gV0lUSElOIEdST1VQICovCiAJYm9vbAkJYWdnX3N0YXI7CQkvKiBhcmd1bWVudCB3YXMg cmVhbGx5ICcqJyAqLwogCWJvb2wJCWFnZ19kaXN0aW5jdDsJLyogYXJndW1lbnRzIHdlcmUgbGFi ZWxlZCBESVNUSU5DVCAqLworCWJvb2wJCWFnZ19wYXJ0aWFsOwkvKiBhcmd1bWVudHMgd2VyZSBs YWJlbGVkIFBBUlRJQUxfQUdHUkVHQVRFICovCiAJYm9vbAkJZnVuY192YXJpYWRpYzsJLyogbGFz dCBhcmd1bWVudCB3YXMgbGFiZWxlZCBWQVJJQURJQyAqLwogCUNvZXJjaW9uRm9ybSBmdW5jZm9y bWF0OwkvKiBob3cgdG8gZGlzcGxheSB0aGlzIG5vZGUgKi8KIAlpbnQJCQlsb2NhdGlvbjsJCS8q IHRva2VuIGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3duICovCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9ub2Rlcy9wYXRobm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oCmlu ZGV4IDUzNDY5MmJlZTEuLmMyOWU5MWYxNDQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVz L3BhdGhub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oCkBAIC0zMjU4 LDYgKzMyNTgsOSBAQCB0eXBlZGVmIGVudW0KICAqIGhhdmluZ1F1YWwgZ2l2ZXMgbGlzdCBvZiBx dWFscyB0byBiZSBhcHBsaWVkIGFmdGVyIGFnZ3JlZ2F0aW9uLgogICogdGFyZ2V0TGlzdCBnaXZl cyBsaXN0IG9mIGNvbHVtbnMgdG8gYmUgcHJvamVjdGVkLgogICogcGF0eXBlIGlzIHRoZSB0eXBl IG9mIHBhcnRpdGlvbndpc2UgYWdncmVnYXRpb24gdGhhdCBpcyBiZWluZyBwZXJmb3JtZWQuCisg KiBncm91cENsYXVzZVBhcnRpYWwgaXMgTGlzdCBvZiBTb3J0R3JvdXBDbGF1c2VzIGZvciBwYXJ0 aWFsIGFnZ3JlZ2F0ZQorICogCQlwdXNoZG93biBieSBGRFcKKyAqIHBhcnRpYWxfdGFyZ2V0IGlz IFBhdGhUYXJnZXQgZm9yIHBhcnRpYWwgYWdncmVnYXRlIHB1c2hkb3duIGJ5IEZEVwogICovCiB0 eXBlZGVmIHN0cnVjdAogewpAQCAtMzI3Miw2ICszMjc1LDggQEAgdHlwZWRlZiBzdHJ1Y3QKIAlO b2RlCSAgICpoYXZpbmdRdWFsOwogCUxpc3QJICAgKnRhcmdldExpc3Q7CiAJUGFydGl0aW9ud2lz ZUFnZ3JlZ2F0ZVR5cGUgcGF0eXBlOworCUxpc3QJICAgKmdyb3VwQ2xhdXNlUGFydGlhbDsKKwlQ YXRoVGFyZ2V0ICpwYXJ0aWFsX3RhcmdldDsKIH0gR3JvdXBQYXRoRXh0cmFEYXRhOwogCiAvKgpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggYi9zcmMvaW5jbHVkZS9u b2Rlcy9wcmltbm9kZXMuaAppbmRleCA0YTE1NDYwNmQyLi43Y2NiZGM0NGYzIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9w cmltbm9kZXMuaApAQCAtNDU5LDYgKzQ1OSw5IEBAIHR5cGVkZWYgc3RydWN0IEFnZ3JlZgogCS8q IERJU1RJTkNUIChsaXN0IG9mIFNvcnRHcm91cENsYXVzZSkgKi8KIAlMaXN0CSAgICphZ2dkaXN0 aW5jdDsKIAorCS8qIHRydWUgaWYgdGhlcmUgaXMgUEFSVElBTF9BR0dSRUdBVEUga2V5d29yZCAq LworCWJvb2wgICAgICAgIGFnZ19wYXJ0aWFsOworCiAJLyogRklMVEVSIGV4cHJlc3Npb24sIGlm IGFueSAqLwogCUV4cHIJICAgKmFnZ2ZpbHRlcjsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv cGFyc2VyL2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCmluZGV4IDIzMzFh Y2FjMDkuLjk0MjA4MWE1YWQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3Qu aAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKQEAgLTMyMyw2ICszMjMsNyBAQCBQ R19LRVlXT1JEKCJwYXJhbGxlbCIsIFBBUkFMTEVMLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVf TEFCRUwpCiBQR19LRVlXT1JEKCJwYXJhbWV0ZXIiLCBQQVJBTUVURVIsIFVOUkVTRVJWRURfS0VZ V09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInBhcnNlciIsIFBBUlNFUiwgVU5SRVNFUlZF RF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgicGFydGlhbCIsIFBBUlRJQUwsIFVO UkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoInBhcnRpYWxfYWdncmVn YXRlIiwgUEFSVElBTF9BR0dSRUdBVEUsIFJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQ R19LRVlXT1JEKCJwYXJ0aXRpb24iLCBQQVJUSVRJT04sIFVOUkVTRVJWRURfS0VZV09SRCwgQkFS RV9MQUJFTCkKIFBHX0tFWVdPUkQoInBhc3NpbmciLCBQQVNTSU5HLCBVTlJFU0VSVkVEX0tFWVdP UkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJwYXNzd29yZCIsIFBBU1NXT1JELCBVTlJFU0VS VkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIv cGFyc2VfYWdnLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfYWdnLmgKaW5kZXggNGRmOWIz N2U2ZC4uNThjYmFkNzUyNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2Fn Zy5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9hZ2cuaApAQCAtMTcsNyArMTcsNyBA QAogCiBleHRlcm4gdm9pZCB0cmFuc2Zvcm1BZ2dyZWdhdGVDYWxsKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgQWdncmVmICphZ2csCiAJCQkJCQkJCSAgIExpc3QgKmFyZ3MsIExpc3QgKmFnZ29yZGVyLAot CQkJCQkJCQkgICBib29sIGFnZ19kaXN0aW5jdCk7CisJCQkJCQkJCSAgIGJvb2wgYWdnX2Rpc3Rp bmN0LCBib29sIGFnZ19wYXJ0aWFsKTsKIAogZXh0ZXJuIE5vZGUgKnRyYW5zZm9ybUdyb3VwaW5n RnVuYyhQYXJzZVN0YXRlICpwc3RhdGUsIEdyb3VwaW5nRnVuYyAqcCk7CiAKLS0gCjIuMzkuMwoK --_002_TYAPR01MB5514F0CBD9CD4F84A261198195562TYAPR01MB5514jpnp_--