From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 510504A660 for ; Wed, 3 Apr 2024 03:31:45 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C62BD68CFEC; Wed, 3 Apr 2024 06:31:42 +0300 (EEST) Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.16]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3F9B768CEDD for ; Wed, 3 Apr 2024 06:31:34 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1712115100; x=1743651100; h=from:to:subject:date:message-id:references:in-reply-to: content-id:content-transfer-encoding:mime-version; bh=vVXqFp9yd4BatwVWngjIXT/dsGPBvV0xzfWio5Ggla0=; b=PdduATiR7FpoB2go/e8i5qPxq2tafWt+ustEqSF3kkIg2lpf9ybqlDVl UwuZFTfYsWsnit04txGu7h5Q8WpCRe5L0/GH6GKtSX6JgurRY5voheERU /QCg3xMPvDoKqsj6jWjbOu8JSq+ly2xP3pfg4FfWhrqeW9XiMvlI5y74T HhSQogPbRDcB6vK2LbezSuUNj+R1a13KwmQzKTxDt2fvIu8jXs2ik18cL AK/ASEnVvVjFVImwQ8QHFPZHIjOd0bI7iW7LApzRT2LvWfh5Qx+Yl89SH hqL5OwYkNRmeU25PddsDnyXqdoKlw+kOkyB6tsI6oBViFNM9H7+DT/fYB Q==; X-CSE-ConnectionGUID: FZfXs0FpQ0uN9/JteZVCJQ== X-CSE-MsgGUID: dP9UYmTJTu+CO9i/BPpmNw== X-IronPort-AV: E=McAfee;i="6600,9927,11032"; a="7904424" X-IronPort-AV: E=Sophos;i="6.07,176,1708416000"; d="scan'208";a="7904424" Received: from fmviesa002.fm.intel.com ([10.60.135.142]) by fmvoesa110.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Apr 2024 20:31:32 -0700 X-CSE-ConnectionGUID: 4s4ruyexTzSxleU+f3vnIQ== X-CSE-MsgGUID: u9u/0zp0SHyLx3e/i4Ic5A== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.07,176,1708416000"; d="scan'208";a="41431330" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmviesa002.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 02 Apr 2024 20:31:31 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Tue, 2 Apr 2024 20:31:30 -0700 Received: from orsmsx603.amr.corp.intel.com (10.22.229.16) by ORSMSX612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Tue, 2 Apr 2024 20:31:30 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Tue, 2 Apr 2024 20:31:30 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.168) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Tue, 2 Apr 2024 20:31:29 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Kujk8Wh97wRUeMGhU2cUE7BcVMSlWJQR13iEz434tI8pGIi3kzhgNmdQDb0Gmg7n+2R5MBeLzBjU7P8IgVVp0pptmGVbwa1zzna7DEnC7Zp+fSM+6O6RiU3OWLVys4jk9fF25bznXFnNZKASP4QpqN71nFK4pY3UpA8VbDY/R1s7AuDzQoqFsy7F6IS3Y4Be/1mlMpn2ST5IFMPX9+OvaTF+1OXqCIfX2sSOzwK1IP3zDLnznhqWlOrwVv0cf/2gTifpMHCwwYgmH/c7QVP5ocBVtXA7jIKsR6Fa1kaXFC0BxXmEAeUmSMiNkKwKJ/JRYA7FhKKT5gyUgyM2ikIH8A== 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=vVXqFp9yd4BatwVWngjIXT/dsGPBvV0xzfWio5Ggla0=; b=PEgYVSJhYvfKB+wOySba//o1VO4VT6n6FYSkYTF0thPK2IPzLE40HiQ2goUALxkap2gPhFz9WdocdpSFz1TtXXHL+h6uPGSewrmd5g8zS3maOgsjXYSmr+Yv1eDWJFcbDcZQvirzskLCgAl+6KokWdCzzQTQv76WvzPB1k3Lfu9ekAy4J4RdOzb7JwJTRwREMfn8TVv/2ADI8Q1uyw+08r6hSr97zxAOE3ANpE+bWLEGM4iIJodKe7QrU9hgX5kqvCTGoTMdNW2VMvFAGlHGuP2Pdjl1gljAkRQ8pe7c5jnuMdBVTVxNQXW7Uxd2GuHzU5isdZPTJ65Hn1yOm+P1oQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from PH0PR11MB5030.namprd11.prod.outlook.com (2603:10b6:510:41::5) by IA1PR11MB7387.namprd11.prod.outlook.com (2603:10b6:208:421::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7452.22; Wed, 3 Apr 2024 03:31:22 +0000 Received: from PH0PR11MB5030.namprd11.prod.outlook.com ([fe80::566d:2e2d:1fa3:d511]) by PH0PR11MB5030.namprd11.prod.outlook.com ([fe80::566d:2e2d:1fa3:d511%6]) with mapi id 15.20.7409.031; Wed, 3 Apr 2024 03:31:22 +0000 From: "Wang, Fei W" To: "nuomi2021@gmail.com" , "ffmpeg-devel@ffmpeg.org" Thread-Topic: [FFmpeg-devel] [PATCH v1 7/7] lavc/vaapi_dec: Add VVC decoder Thread-Index: AQHahPwjAGWSM70zTEq9+saWs/JYd7FV5O+A Date: Wed, 3 Apr 2024 03:31:22 +0000 Message-ID: References: <20240328012631.777476-1-fei.w.wang@intel.com> <20240328012631.777476-7-fei.w.wang@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.36.5-0ubuntu1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH0PR11MB5030:EE_|IA1PR11MB7387:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: DZvaCGOp5ULIlzCkGrt54ZQwc5bvB8s/Ll7p+JgeecD5beU2Fuul3ZjaIhWkEmycpqgqcmymj1gn1j8oUitT3ObG+AQJP4mWpnL89Mi83mm9xX7erae3roejdZ4O2OLy4GFSOQcg+/p1UflW3cYvp4i69GhLatMA4ycAX300x715YU5yBHsV8sMnxLx89F/FNaOFG27b+Aubcx4iMXJAQuuK22hCrctMQwcTgZO+GruaGBWE/pqdZCirBp4fai0mUZsqbTJnaQ9Q/2ZYGm/HfeCb+h4OoxVMkisnGtCatpArIrXpES0fnfWE0fl8JVTpGWCeCrAL0cFpxY+UeyElEcNkvkklJtB+by1Kq+gajNis7aeCm3Zz9z+W4XJ6yfEhPSyyDFSjbf3qaa9kWYl+FhqEnh9PDuHw8CjFBojliqKzXaysW6r0as3lEh06HpxngcUur4W4rEyH8Yoa6MUYocNwgnRFEdLvgJObUr1+rZUC5RID20sgo0pcwOEbArrzuo5sTDB/+k5fI9HPwF2MQENfoIMYSWL38nx/1fNy8uy9xDVCRuh3QSy73eedG3QoNfZ1G6naFa36jkveS1mujFAulTGZpmLaQaJlICJ2kVg= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH0PR11MB5030.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(366007)(1800799015)(376005); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?KzdlTHVucFZsd2x2b3RCMHNCeWN6ZUFweXl2a0lhdzlBZGw0ZTFiUFhkallK?= =?utf-8?B?TitWaXdzQ1ZPS08rd3lmNTlXZ216dks1WU1nYlQ3UHc2TEFiTkhtZVpzL2Vz?= =?utf-8?B?RWNzYnIxM0NoODJpWWswV2RNSlFJUjI1SHNlS1YvdXhYRGQ4NTNFWXY2M2Zv?= =?utf-8?B?SkRHSG1oaEtOcTJNVzUzRm8wZHNJU3phdDh4K3l4aXBtblllSVIrNm9CbkFh?= =?utf-8?B?bEtXSjZBR1dqRmhhOC80UUM0emJ4dmQ5TzFZb3NUU1FNbWJkQ0Y5TjJXdk45?= =?utf-8?B?Q1FhMmZhVTJ1YWMvWm5NNElBZ05ZQzhOektLdlErTGg2SHpUOWg0RHRDWjZ5?= =?utf-8?B?eWdIdDd4SHhkV2NqQVhjZWgvaE9BTUdtejBJS1QxeWJyWW5LRVFxdC9uWFhi?= =?utf-8?B?d1RxbU5BZjZEa0g4eDlSYVpDV2RSdEl2MDhOV0hEc1JjOE1DUWtJcmJibDFa?= =?utf-8?B?aFF1R1Q1UHlCYUNjbW1BNENTWEVUQXh4azJnSDJnd3NEeEN5cEs2NTRaMkVL?= =?utf-8?B?WkZYQXZwc1pTaFJkWkd2eVp6MHdGZWhwUVlSUkZhVzlaUnpUTDJoWWRNRFly?= =?utf-8?B?ZWpiS1MwZGZBN3RkcVpUNTUyQTZNcmpVbUhsK0ErTnpVK2tMa1JQcDhrUHBp?= =?utf-8?B?bkg1NWxKcHlGeEl5bDJhdE41MmJuc29FaElJSzBUMWJKOHJPQ2NlSEQyam1X?= =?utf-8?B?OU82WFovTnBnelBrUVVrSHFuZWlVdUVnd2ZGT1FtYys3SGFLM3RydFRlcVEx?= =?utf-8?B?NTBqQTlhV004NVJQeHJGeGF4YUR4MzZNbjlmTWRtS2JBb25mVlNrYXhSZUpx?= =?utf-8?B?ZzA2RDlXS1dLWjVnL241cStLY3VkZ0tMWm9XWmVzTldLb3E4Z3IzWm9WOTZP?= =?utf-8?B?WlpQRGYvVjJWS3hDWmlHbWo1eDVMeDBsaitNYjRHV3FRZEtPMUlUMERYUHhs?= =?utf-8?B?RXVZajQwWm84TVV5M0oxbiszWjM0R1g5S1pSb0N4dWF1S3JBOXZsbzBFYmNm?= =?utf-8?B?cHNTd2lUUUp3eHRKWE55Z2JwaTVwMWlORzZTRUREelJJdU9oQklvaExGcExG?= =?utf-8?B?ZlYrdDJ4dlVWOFJBVmR3cEhSaGYzTlIyUURxdXA2VExOWXhUUmlpS3Bhdndj?= =?utf-8?B?NGlVY0d6OUtyeUVyRVNhdmgrR3V0UGlhWUgzcFVSUEhXcHhRRlQvT09nY3Y2?= =?utf-8?B?WDVkbFhjN3BRNzdpakhBNmc0UmhZMUtOekdJMnNhYk9zQ0xuUXJWcStKaEc4?= =?utf-8?B?Ti9CWEx6NGNteUtTb0VRcDNZM3ZBRzc2bzJoTlUzSVJGeUI0TFllWFhFcmE0?= =?utf-8?B?NlVnOGllZStCak4zcU5JeHFMYWhUejE2TktmRno4MXRIY3UyQ21YeWo2enVR?= =?utf-8?B?U1JOTnV6eFIrcXNVZ2hpUnlOUU1PQTgweTJQSUFTbk5RRFc4b2tZQ1QvWnIy?= =?utf-8?B?ekRRQ0JYWkhLTFRZS09UNUsreHF5c1VoTC9ySG9iSkE1U1FmTmtpU0lzUDdB?= =?utf-8?B?QUJFVlB2Q1BJdUYwRjdTNWNiT0IrSHk1eTNScE5zNllzT1ZzSWMvTzdIMEhu?= =?utf-8?B?SWt6TEFvME9EUjlTNkt4ek5lS3JTVmRxajk3bEdwNm5CZWsyalB3VnpjQ0JC?= =?utf-8?B?WWNWd0F6ZFBhS0hjNUtrZmF2YmpJdEpsMGpLUlJjb0g3dXdtdlBPb1k1NkMw?= =?utf-8?B?VmtxQ2FqQzcwcTEvYnpoR2tHTVY3eGllZ0VPemQxOUVVQWFqN01rNnloSFZ3?= =?utf-8?B?Z0h1cldPUmpIdDhEbjNMTUJsMTNDbStkdG5XQXZDQlhwWmpIMzhkSkpRUkx0?= =?utf-8?B?ZVY5NHVYYXMxWUxpRWY3NUsxSG10VjRORFdpOVF2OTRvQythZWw3TXFGVUhC?= =?utf-8?B?aW1CdTNaSEg4UWhNYnJRdno1dDZXLzZHeTVTaDZRcEQ5YXZuQ2ZpRjcrZ0VS?= =?utf-8?B?WE8xeDhpMmZWcTBVbThsZGxMbkRTdW9zb3dybzZRYjZZOVgxYzFNbzUrUUVM?= =?utf-8?B?RTFTZmpiRzZRbzV6bEZ1N1JpZ2F6cU1MY3JnTTlxdTdrM0pHNG5ST3NuWTVR?= =?utf-8?B?blBUL05rUlFmM3RlaEd1NWRvZzdHckptVFBZbzBrZ2pOZFBWM1VxV1NlRm5J?= =?utf-8?B?aHZVTFdVSFFkdE9PTnowcHBwbWNwV0g3bnFXLzRldG1relpmNmo0NldKTG0v?= =?utf-8?B?dVE9PQ==?= Content-ID: MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB5030.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 21c52540-ebe4-4faf-3e63-08dc538e88bb X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Apr 2024 03:31:22.3839 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: V642LhZ1fiBNQTjBs49h0YQaaGnFe/c+nkpf2npYyU7nu+NnDJ47fzDI8K1GloBTLfU7oydn3v82HoD4pJtAlQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR11MB7387 X-OriginatorOrg: intel.com Subject: Re: [FFmpeg-devel] [PATCH v1 7/7] lavc/vaapi_dec: Add VVC decoder X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: T24gVHVlLCAyMDI0LTA0LTAyIGF0IDIwOjQ4ICswODAwLCBOdW8gTWkgd3JvdGU6DQo+IA0KPiAN Cj4gT24gVGh1LCBNYXIgMjgsIDIwMjQgYXQgOToyN+KAr0FNIDxmZWkudy53YW5nLWF0LWludGVs LmNvbUBmZm1wZWcub3JnPg0KPiB3cm90ZToNCj4gPiBGcm9tOiBGZWkgV2FuZyA8ZmVpLncud2Fu Z0BpbnRlbC5jb20+DQo+ID4gDQo+ID4gU2lnbmVkLW9mZi1ieTogRmVpIFdhbmcgPGZlaS53Lndh bmdAaW50ZWwuY29tPg0KPiA+IC0tLQ0KPiA+ICBDaGFuZ2Vsb2cgICAgICAgICAgICAgICAgIHwg ICA0ICsNCj4gPiAgY29uZmlndXJlICAgICAgICAgICAgICAgICB8ICAgMyArDQo+ID4gIGxpYmF2 Y29kZWMvTWFrZWZpbGUgICAgICAgfCAgIDEgKw0KPiA+ICBsaWJhdmNvZGVjL2h3YWNjZWxzLmgg ICAgIHwgICAxICsNCj4gPiAgbGliYXZjb2RlYy92YWFwaV9kZWNvZGUuYyB8ICAgNyArDQo+ID4g IGxpYmF2Y29kZWMvdmFhcGlfdnZjLmMgICAgfCA2NTcNCj4gPiArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKw0KPiA+ICBsaWJhdmNvZGVjL3ZlcnNpb24uaCAgICAgIHwgICAy ICstDQo+ID4gIGxpYmF2Y29kZWMvdnZjL3Z2Y2RlYy5jICAgfCAgMTUgKy0NCj4gPiAgOCBmaWxl cyBjaGFuZ2VkLCA2ODggaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkNCj4gPiAgY3JlYXRl IG1vZGUgMTAwNjQ0IGxpYmF2Y29kZWMvdmFhcGlfdnZjLmMNCj4gPiANCj4gPiBkaWZmIC0tZ2l0 IGEvQ2hhbmdlbG9nIGIvQ2hhbmdlbG9nDQo+ID4gaW5kZXggZTgzYTAwZTM1Yy4uMzEwOGU2NTU1 OCAxMDA2NDQNCj4gPiAtLS0gYS9DaGFuZ2Vsb2cNCj4gPiArKysgYi9DaGFuZ2Vsb2cNCj4gPiBA QCAtMSw2ICsxLDEwIEBADQo+ID4gIEVudHJpZXMgYXJlIHNvcnRlZCBjaHJvbm9sb2dpY2FsbHkg ZnJvbSBvbGRlc3QgdG8geW91bmdlc3Qgd2l0aGluDQo+ID4gZWFjaCByZWxlYXNlLA0KPiA+ICBy ZWxlYXNlcyBhcmUgc29ydGVkIGZyb20geW91bmdlc3QgdG8gb2xkZXN0Lg0KPiA+IA0KPiA+ICt2 ZXJzaW9uIDxuZXh0PjoNCj4gPiArLSBWVkMgVkFBUEkgZGVjb2Rlcg0KPiA+ICsNCj4gPiArDQo+ ID4gIHZlcnNpb24gNy4wOg0KPiA+ICAtIERYViBEWFQxIGVuY29kZXINCj4gPiAgLSBMRUFEIE1D TVAgZGVjb2Rlcg0KPiA+IGRpZmYgLS1naXQgYS9jb25maWd1cmUgYi9jb25maWd1cmUNCj4gPiBp bmRleCAyYTFkMjIzMTBiLi5kOTAyYzlhZGM4IDEwMDc1NQ0KPiA+IC0tLSBhL2NvbmZpZ3VyZQ0K PiA+ICsrKyBiL2NvbmZpZ3VyZQ0KPiA+IEBAIC0zMjU4LDYgKzMyNTgsOCBAQCB2cDlfdmRwYXVf aHdhY2NlbF9kZXBzPSJ2ZHBhdQ0KPiA+IFZkcFBpY3R1cmVJbmZvVlA5Ig0KPiA+ICB2cDlfdmRw YXVfaHdhY2NlbF9zZWxlY3Q9InZwOV9kZWNvZGVyIg0KPiA+ICB2cDlfdmlkZW90b29sYm94X2h3 YWNjZWxfZGVwcz0idmlkZW90b29sYm94Ig0KPiA+ICB2cDlfdmlkZW90b29sYm94X2h3YWNjZWxf c2VsZWN0PSJ2cDlfZGVjb2RlciINCj4gPiArdnZjX3ZhYXBpX2h3YWNjZWxfZGVwcz0idmFhcGkg VkFQaWN0dXJlUGFyYW1ldGVyQnVmZmVyVlZDIg0KPiA+ICt2dmNfdmFhcGlfaHdhY2NlbF9zZWxl Y3Q9InZ2Y19kZWNvZGVyIg0KPiA+ICB3bXYzX2QzZDExdmFfaHdhY2NlbF9zZWxlY3Q9InZjMV9k M2QxMXZhX2h3YWNjZWwiDQo+ID4gIHdtdjNfZDNkMTF2YTJfaHdhY2NlbF9zZWxlY3Q9InZjMV9k M2QxMXZhMl9od2FjY2VsIg0KPiA+ICB3bXYzX2QzZDEydmFfaHdhY2NlbF9zZWxlY3Q9InZjMV9k M2QxMnZhX2h3YWNjZWwiDQo+ID4gQEAgLTcyNTAsNiArNzI1Miw3IEBAIGlmIGVuYWJsZWQgdmFh cGk7IHRoZW4NCj4gPiAgICAgIGNoZWNrX2NwcF9jb25kaXRpb24gdmFhcGlfMSAidmEvdmEuaCIg IlZBX0NIRUNLX1ZFUlNJT04oMSwgMCwNCj4gPiAwKSINCj4gPiANCj4gPiAgICAgIGNoZWNrX3R5 cGUgInZhL3ZhLmggdmEvdmFfZGVjX2hldmMuaCINCj4gPiAiVkFQaWN0dXJlUGFyYW1ldGVyQnVm ZmVySEVWQyINCj4gPiArICAgIGNoZWNrX3R5cGUgInZhL3ZhLmggdmEvdmFfZGVjX3Z2Yy5oIg0K PiA+ICJWQVBpY3R1cmVQYXJhbWV0ZXJCdWZmZXJWVkMiDQo+ID4gICAgICBjaGVja19zdHJ1Y3Qg InZhL3ZhLmgiICJWQURlY1BpY3R1cmVQYXJhbWV0ZXJCdWZmZXJWUDkiDQo+ID4gYml0X2RlcHRo DQo+ID4gICAgICBjaGVja19zdHJ1Y3QgInZhL3ZhLmgiICJWQURlY1BpY3R1cmVQYXJhbWV0ZXJC dWZmZXJBVjEiDQo+ID4gYml0X2RlcHRoX2lkeA0KPiA+ICAgICAgY2hlY2tfdHlwZSAgICJ2YS92 YS5oIHZhL3ZhX3ZwcC5oIg0KPiA+ICJWQVByb2NGaWx0ZXJQYXJhbWV0ZXJCdWZmZXJIRFJUb25l TWFwcGluZyINCj4gPiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9NYWtlZmlsZSBiL2xpYmF2Y29k ZWMvTWFrZWZpbGUNCj4gPiBpbmRleCA5Y2U2ZDQ0NWMxLi4zNDNiMDM3NjM2IDEwMDY0NA0KPiA+ IC0tLSBhL2xpYmF2Y29kZWMvTWFrZWZpbGUNCj4gPiArKysgYi9saWJhdmNvZGVjL01ha2VmaWxl DQo+ID4gQEAgLTEwNTQsNiArMTA1NCw3IEBAIE9CSlMtJChDT05GSUdfVlA5X1ZBQVBJX0hXQUND RUwpICAgICAgICAgICs9DQo+ID4gdmFhcGlfdnA5Lm8NCj4gPiAgT0JKUy0kKENPTkZJR19WUDlf VkRQQVVfSFdBQ0NFTCkgICAgICAgICAgKz0gdmRwYXVfdnA5Lm8NCj4gPiAgT0JKUy0kKENPTkZJ R19WUDlfVklERU9UT09MQk9YX0hXQUNDRUwpICAgKz0gdmlkZW90b29sYm94X3ZwOS5vDQo+ID4g IE9CSlMtJChDT05GSUdfVlA4X1FTVl9IV0FDQ0VMKSAgICAgICAgICAgICs9IHFzdmRlYy5vDQo+ ID4gK09CSlMtJChDT05GSUdfVlZDX1ZBQVBJX0hXQUNDRUwpICAgICAgICAgICs9IHZhYXBpX3Z2 Yy5vDQo+ID4gDQo+ID4gICMgT2JqZWN0cyBkdXBsaWNhdGVkIGZyb20gb3RoZXIgbGlicmFyaWVz IGZvciBzaGFyZWQgYnVpbGRzDQo+ID4gIFNITElCT0JKUyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICs9IGxvZzJfdGFiLm8gcmV2ZXJzZS5vDQo+ID4gZGlmZiAtLWdpdCBhL2xpYmF2Y29k ZWMvaHdhY2NlbHMuaCBiL2xpYmF2Y29kZWMvaHdhY2NlbHMuaA0KPiA+IGluZGV4IDUxNzFlNGM3 ZDcuLjg4ZDZiOWE5YjUgMTAwNjQ0DQo+ID4gLS0tIGEvbGliYXZjb2RlYy9od2FjY2Vscy5oDQo+ ID4gKysrIGIvbGliYXZjb2RlYy9od2FjY2Vscy5oDQo+ID4gQEAgLTgyLDYgKzgyLDcgQEAgZXh0 ZXJuIGNvbnN0IHN0cnVjdCBGRkhXQWNjZWwNCj4gPiBmZl92cDlfbnZkZWNfaHdhY2NlbDsNCj4g PiAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBGRkhXQWNjZWwgZmZfdnA5X3ZhYXBpX2h3YWNjZWw7DQo+ ID4gIGV4dGVybiBjb25zdCBzdHJ1Y3QgRkZIV0FjY2VsIGZmX3ZwOV92ZHBhdV9od2FjY2VsOw0K PiA+ICBleHRlcm4gY29uc3Qgc3RydWN0IEZGSFdBY2NlbCBmZl92cDlfdmlkZW90b29sYm94X2h3 YWNjZWw7DQo+ID4gK2V4dGVybiBjb25zdCBzdHJ1Y3QgRkZIV0FjY2VsIGZmX3Z2Y192YWFwaV9o d2FjY2VsOw0KPiA+ICBleHRlcm4gY29uc3Qgc3RydWN0IEZGSFdBY2NlbCBmZl93bXYzX2QzZDEx dmFfaHdhY2NlbDsNCj4gPiAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBGRkhXQWNjZWwgZmZfd212M19k M2QxMXZhMl9od2FjY2VsOw0KPiA+ICBleHRlcm4gY29uc3Qgc3RydWN0IEZGSFdBY2NlbCBmZl93 bXYzX2QzZDEydmFfaHdhY2NlbDsNCj4gPiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy92YWFwaV9k ZWNvZGUuYyBiL2xpYmF2Y29kZWMvdmFhcGlfZGVjb2RlLmMNCj4gPiBpbmRleCAxYjE5NzJhMmE5 Li5jZWViMWYxYTEyIDEwMDY0NA0KPiA+IC0tLSBhL2xpYmF2Y29kZWMvdmFhcGlfZGVjb2RlLmMN Cj4gPiArKysgYi9saWJhdmNvZGVjL3ZhYXBpX2RlY29kZS5jDQo+ID4gQEAgLTQ1NSw2ICs0NTUs OSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHsNCj4gPiAgICAgIE1BUChBVjEsICAgICAgICAgQVYx X01BSU4sICAgICAgICBBVjFQcm9maWxlMCksDQo+ID4gICAgICBNQVAoQVYxLCAgICAgICAgIEFW MV9ISUdILCAgICAgICAgQVYxUHJvZmlsZTEpLA0KPiA+ICAjZW5kaWYNCj4gPiArI2lmIFZBX0NI RUNLX1ZFUlNJT04oMSwgMjIsIDApDQo+ID4gKyAgICBNQVAoSDI2NiwgICAgICAgIFZWQ19NQUlO XzEwLCAgICAgVlZDTWFpbjEwKSwNCj4gPiArI2VuZGlmDQo+ID4gDQo+ID4gICN1bmRlZiBNQVAN Cj4gPiAgfTsNCj4gPiBAQCAtNjI3LDYgKzYzMCwxMCBAQCBzdGF0aWMgaW50DQo+ID4gdmFhcGlf ZGVjb2RlX21ha2VfY29uZmlnKEFWQ29kZWNDb250ZXh0ICphdmN0eCwNCj4gPiAgICAgICAgICBj YXNlIEFWX0NPREVDX0lEX1ZQODoNCj4gPiAgICAgICAgICAgICAgZnJhbWVzLT5pbml0aWFsX3Bv b2xfc2l6ZSArPSAzOw0KPiA+ICAgICAgICAgICAgICBicmVhazsNCj4gPiArICAgICAgICBjYXNl IEFWX0NPREVDX0lEX0gyNjY6DQo+ID4gKyAgICAgICAgICAgIC8vIEFkZCBhZGRpdGlvbmFsIDE2 IGZvciBtYXhpbXVtIDE2IGZyYW1lcyBkZWxheSBpbg0KPiA+IHZ2YyBuYXRpdmUgZGVjb2RlLg0K PiA+ICsgICAgICAgICAgICBmcmFtZXMtPmluaXRpYWxfcG9vbF9zaXplICs9IDMyOw0KPiANCj4g T25lIGZyYW1lIG9mIDhrIFlVVjQ0NCwgMTAgYml0cywgaXMgYWJvdXQgMjAwTUIuIFRoaXJ0eS10 d28gZnJhbWVzDQo+IGFtb3VudCB0byBhcHByb3hpbWF0ZWx5IDZHQi5DYW4gd2UgZHluYW1pY2Fs bHkgYWxsb2NhdGUgdGhlIGJ1ZmZlcg0KPiBwb29sPyANCg0KSXQncyBwcm9jZXNzaW5nIGluIG90 aGVyIHRocmVhZDoNCmh0dHBzOi8vcGF0Y2h3b3JrLmZmbXBlZy5vcmcvcHJvamVjdC9mZm1wZWcv bGlzdC8/c2VyaWVzPTExMzE2DQoNCj4gDQo+IFRoZSBzb2Z0d2FyZSBkZWNvZGVyIHJlcXVpcmVz IGEgZGVsYXkgb2YgMTYgZnJhbWVzIHRvIGVuc3VyZSBmdWxsDQo+IHV0aWxpemF0aW9uIG9mIENQ VXMuIEluIHRoZSBmdXR1cmUsIHdlIG1heSBjb25zaWRlciBpbmNyZWFzaW5nIHRoaXMNCj4gdG8g MzIgb3IgZXZlbiA2NCBmcmFtZXMuDQo+IEhvd2V2ZXIsIGZvciBoYXJkd2FyZSBkZWNvZGluZywg Z2l2ZW4gdGhhdCBhbGwgcHJvY2Vzc2luZyBvY2N1cnMgb24NCj4gdGhlIEdQVSwgd2UgZG8gbm90 IHJlcXVpcmUgYW55IGRlbGF5Lg0KDQpUaGUgZGVsYXkgY2FuIGF2b2lkIHN5bmMgaGFyZHdhcmUg dGFzayBpbW1lZGlhdGVseSBvbmNlIGl0IGlzDQpzdWJtaXR0ZWQsIHdoaWNoIGNhbiBhdm9pZCBo YXJkd2FyZSBzd2l0Y2ggdGFza3MgZnJlcXVlbnRseSBhbmQgZHJvcA0KcGVyZm9ybWFuY2UuIElm IHRoZSBudW1iZXIgd2lsbCBpbmNyZWFzZSwgSSdkIHByZWZlciB0byBzZXQgaXQgYXMgYW4NCm9w dGlvbiBhbmQgZGlmZiB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgaGFyZHdhcmUgd2l0aCBzb2Z0d2Fy ZS4NCg0KVGhhbmtzDQpGZWkNCj4gDQo+ID4gKyAgICAgICAgICAgIGJyZWFrOw0KPiA+ICAgICAg ICAgIGRlZmF1bHQ6DQo+ID4gICAgICAgICAgICAgIGZyYW1lcy0+aW5pdGlhbF9wb29sX3NpemUg Kz0gMjsNCj4gPiAgICAgICAgICB9DQo+ID4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvdmFhcGlf dnZjLmMgYi9saWJhdmNvZGVjL3ZhYXBpX3Z2Yy5jDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQN Cj4gPiBpbmRleCAwMDAwMDAwMDAwLi42MTQxMDA1Njg4DQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ ICsrKyBiL2xpYmF2Y29kZWMvdmFhcGlfdnZjLmMNCj4gPiBAQCAtMCwwICsxLDY1NyBAQA0KPiA+ ICsvKg0KPiA+ICsgKiBWVkMgSFcgZGVjb2RlIGFjY2VsZXJhdGlvbiB0aHJvdWdoIFZBIEFQSQ0K PiA+ICsgKg0KPiA+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMjQgSW50ZWwgQ29ycG9yYXRpb24NCj4g PiArICoNCj4gPiArICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgRkZtcGVnLg0KPiA+ICsgKg0KPiA+ ICsgKiBGRm1wZWcgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yDQo+ID4gKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIg R2VuZXJhbCBQdWJsaWMNCj4gPiArICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyDQo+ID4gKyAqIHZlcnNpb24gMi4xIG9mIHRoZSBM aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlcg0KPiA+IHZlcnNpb24uDQo+ID4g KyAqDQo+ID4gKyAqIEZGbXBlZyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLA0KPiA+ICsgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KPiA+ICsgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQo+ID4gR05VDQo+ID4g KyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQo+ID4g KyAqDQo+ID4gKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM ZXNzZXIgR2VuZXJhbA0KPiA+IFB1YmxpYw0KPiA+ICsgKiBMaWNlbnNlIGFsb25nIHdpdGggRkZt cGVnOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQo+ID4gKyAqIEZvdW5kYXRp b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUENCj4g PiAwMjExMC0xMzAxIFVTQQ0KPiA+ICsgKi8NCj4gPiArDQo+ID4gKyNpbmNsdWRlIDx2YS92YS5o Pg0KPiA+ICsjaW5jbHVkZSA8dmEvdmFfZGVjX3Z2Yy5oPg0KPiA+ICsNCj4gPiArI2luY2x1ZGUg InZ2Yy92dmNkZWMuaCINCj4gPiArI2luY2x1ZGUgInZ2Yy92dmNfcmVmcy5oIg0KPiA+ICsjaW5j bHVkZSAiaHdhY2NlbF9pbnRlcm5hbC5oIg0KPiA+ICsjaW5jbHVkZSAidmFhcGlfZGVjb2RlLmgi DQo+ID4gKw0KPiA+ICt0eXBlZGVmIHN0cnVjdCBWQUFQSURlY29kZVBpY3R1cmVWVkMgew0KPiA+ ICsgICAgVkFBUElEZWNvZGVQaWN0dXJlICAgICAgICAgIHBpYzsNCj4gPiArICAgIFZBUGljdHVy ZVBhcmFtZXRlckJ1ZmZlclZWQyBwaWNfcGFyYW07DQo+ID4gKyAgICBWQVNsaWNlUGFyYW1ldGVy QnVmZmVyVlZDICAgc2xpY2VfcGFyYW07DQo+ID4gKyAgICBpbnQgICAgICAgICAgICAgICAgICAg ICAgICAgZGVjb2RlX2lzc3VlZDsNCj4gPiArfSBWQUFQSURlY29kZVBpY3R1cmVWVkM7DQo+ID4g Kw0KPiA+ICtzdGF0aWMgdm9pZCBpbml0X3ZhYXBpX3BpYyhWQVBpY3R1cmVWVkMgKnZhX3BpYykN Cj4gPiArew0KPiA+ICsgICAgdmFfcGljLT5waWN0dXJlX2lkICAgID0gVkFfSU5WQUxJRF9JRDsN Cj4gPiArICAgIHZhX3BpYy0+ZmxhZ3MgICAgICAgICA9IFZBX1BJQ1RVUkVfVlZDX0lOVkFMSUQ7 DQo+ID4gKyAgICB2YV9waWMtPnBpY19vcmRlcl9jbnQgPSAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ ICtzdGF0aWMgdm9pZCBmaWxsX3ZhYXBpX3BpYyhWQVBpY3R1cmVWVkMgKnZhX3BpYywgY29uc3Qg VlZDRnJhbWUNCj4gPiAqcGljKQ0KPiA+ICt7DQo+ID4gKyAgICB2YV9waWMtPnBpY3R1cmVfaWQg ICAgPSBmZl92YWFwaV9nZXRfc3VyZmFjZV9pZChwaWMtPmZyYW1lKTsNCj4gPiArICAgIHZhX3Bp Yy0+cGljX29yZGVyX2NudCA9IHBpYy0+cG9jOw0KPiA+ICsgICAgdmFfcGljLT5mbGFncyAgICAg ICAgID0gMDsNCj4gPiArDQo+ID4gKyAgICBpZiAocGljLT5mbGFncyAmIFZWQ19GUkFNRV9GTEFH X0xPTkdfUkVGKQ0KPiA+ICsgICAgICAgIHZhX3BpYy0+ZmxhZ3MgfD0gVkFfUElDVFVSRV9WVkNf TE9OR19URVJNX1JFRkVSRU5DRTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIHZvaWQgZmls bF92YWFwaV9yZWZlcmVuY2VfZnJhbWVzKGNvbnN0IFZWQ0ZyYW1lQ29udGV4dCAqaCwNCj4gPiBW QVBpY3R1cmVQYXJhbWV0ZXJCdWZmZXJWVkMgKnBwKQ0KPiA+ICt7DQo+ID4gKyAgICBjb25zdCBW VkNGcmFtZSAqY3VycmVudF9waWN0dXJlID0gaC0+cmVmOw0KPiA+ICsgICAgaW50IGksIGo7DQo+ ID4gKw0KPiA+ICsgICAgZm9yIChpID0gMCwgaiA9IDA7IGkgPCBGRl9BUlJBWV9FTEVNUyhwcC0+ UmVmZXJlbmNlRnJhbWVzKTsNCj4gPiBpKyspIHsNCj4gPiArICAgICAgICBjb25zdCBWVkNGcmFt ZSAqZnJhbWUgPSBOVUxMOw0KPiA+ICsNCj4gPiArICAgICAgICB3aGlsZSAoIWZyYW1lICYmIGog PCBGRl9BUlJBWV9FTEVNUyhoLT5EUEIpKSB7DQo+ID4gKyAgICAgICAgICAgIGlmICgoJmgtPkRQ QltqXSAhPSBjdXJyZW50X3BpY3R1cmUgKSAmJg0KPiA+ICsgICAgICAgICAgICAgICAgKGgtPkRQ QltqXS5mbGFncyAmIChWVkNfRlJBTUVfRkxBR19MT05HX1JFRiB8DQo+ID4gVlZDX0ZSQU1FX0ZM QUdfU0hPUlRfUkVGKSkpDQo+ID4gKyAgICAgICAgICAgICAgICBmcmFtZSA9ICZoLT5EUEJbal07 DQo+ID4gKyAgICAgICAgICAgIGorKzsNCj4gPiArICAgICAgICB9DQo+ID4gKw0KPiA+ICsgICAg ICAgIGluaXRfdmFhcGlfcGljKCZwcC0+UmVmZXJlbmNlRnJhbWVzW2ldKTsNCj4gPiArDQo+ID4g KyAgICAgICAgaWYgKGZyYW1lKSB7DQo+ID4gKyAgICAgICAgICAgIFZBQVBJRGVjb2RlUGljdHVy ZVZWQyAqcGljOw0KPiA+ICsgICAgICAgICAgICBmaWxsX3ZhYXBpX3BpYygmcHAtPlJlZmVyZW5j ZUZyYW1lc1tpXSwgZnJhbWUpOw0KPiA+ICsgICAgICAgICAgICBwaWMgPSBmcmFtZS0+aHdhY2Nl bF9waWN0dXJlX3ByaXZhdGU7DQo+ID4gKyAgICAgICAgICAgIGlmICghcGljLT5kZWNvZGVfaXNz dWVkKQ0KPiA+ICsgICAgICAgICAgICAgICBwcC0+UmVmZXJlbmNlRnJhbWVzW2ldLmZsYWdzIHw9 DQo+ID4gVkFfUElDVFVSRV9WVkNfVU5BVkFJTEFCTEVfUkVGRVJFTkNFOw0KPiA+ICsgICAgICAg IH0NCj4gPiArICAgIH0NCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGludCB2YWFwaV92dmNf c3RhcnRfZnJhbWUoQVZDb2RlY0NvbnRleHQgICAgICAgICAgKmF2Y3R4LA0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhdl91bnVzZWQgY29uc3QgdWludDhfdCAqYnVmZmVy LA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdl91bnVzZWQgdWludDMy X3QgICAgICAgc2l6ZSkNCj4gPiArew0KPiA+ICsgICAgY29uc3QgVlZDQ29udGV4dCAgICAgICAg ICAgICAgICAgICAgKmggPSBhdmN0eC0+cHJpdl9kYXRhOw0KPiA+ICsgICAgVlZDRnJhbWVDb250 ZXh0ICAgICAgICAgICAgICAgICAgICAqZmMgPSAmaC0+ZmNzWyhoLT5uYl9mcmFtZXMgDQo+ID4g KyBoLT5uYl9mY3MpICUgaC0+bmJfZmNzXTsNCj4gPiArICAgIGNvbnN0IEgyNjZSYXdTUFMgICAg ICAgICAgICAgICAgICAqc3BzID0gZmMtPnBzLnNwcy0+cjsNCj4gPiArICAgIGNvbnN0IEgyNjZS YXdQUFMgICAgICAgICAgICAgICAgICAqcHBzID0gZmMtPnBzLnBwcy0+cjsNCj4gPiArICAgIGNv bnN0IEgyNjZSYXdQaWN0dXJlSGVhZGVyICAgICAgICAgKnBoID0gZmMtPnBzLnBoLnI7DQo+ID4g KyAgICBWQUFQSURlY29kZVBpY3R1cmVWVkMgICAgICAgICAgICAgKnBpYyA9IGZjLT5yZWYtDQo+ ID4gPmh3YWNjZWxfcGljdHVyZV9wcml2YXRlOw0KPiA+ICsgICAgVkFQaWN0dXJlUGFyYW1ldGVy QnVmZmVyVlZDICpwaWNfcGFyYW0gPSAmcGljLT5waWNfcGFyYW07DQo+ID4gKyAgICB1aW50MTZf dCB0aWxlX2RpbSwgZXhwX3NsaWNlX2hlaWdodF9pbl9jdHVzW1ZWQ19NQVhfU0xJQ0VTXSA9DQo+ ID4gezB9Ow0KPiA+ICsgICAgaW50IGksIGosIGssIGVycjsNCj4gPiArDQo+ID4gKyAgICBwaWMt PnBpYy5vdXRwdXRfc3VyZmFjZSA9IGZmX3ZhYXBpX2dldF9zdXJmYWNlX2lkKGZjLT5yZWYtDQo+ ID4gPmZyYW1lKTsNCj4gPiArDQo+ID4gKyAgICAqcGljX3BhcmFtID0gKFZBUGljdHVyZVBhcmFt ZXRlckJ1ZmZlclZWQykgew0KPiA+ICsgICAgICAgIC5wcHNfcGljX3dpZHRoX2luX2x1bWFfc2Ft cGxlcyAgICAgICAgICAgICAgICAgPSBwcHMtDQo+ID4gPnBwc19waWNfd2lkdGhfaW5fbHVtYV9z YW1wbGVzLA0KPiA+ICsgICAgICAgIC5wcHNfcGljX2hlaWdodF9pbl9sdW1hX3NhbXBsZXMgICAg ICAgICAgICAgICAgPSBwcHMtDQo+ID4gPnBwc19waWNfaGVpZ2h0X2luX2x1bWFfc2FtcGxlcywN Cj4gPiArICAgICAgICAuc3BzX251bV9zdWJwaWNzX21pbnVzMSAgICAgICAgICAgICAgICAgICAg ICAgID0gc3BzLQ0KPiA+ID5zcHNfbnVtX3N1YnBpY3NfbWludXMxLA0KPiA+ICsgICAgICAgIC5z cHNfY2hyb21hX2Zvcm1hdF9pZGMgICAgICAgICAgICAgICAgICAgICAgICAgPSBzcHMtDQo+ID4g PnNwc19jaHJvbWFfZm9ybWF0X2lkYywNCj4gPiArICAgICAgICAuc3BzX2JpdGRlcHRoX21pbnVz OCAgICAgICAgICAgICAgICAgICAgICAgICAgID0gc3BzLQ0KPiA+ID5zcHNfYml0ZGVwdGhfbWlu dXM4LA0KPiA+ICsgICAgICAgIC5zcHNfbG9nMl9jdHVfc2l6ZV9taW51czUgICAgICAgICAgICAg ICAgICAgICAgPSBzcHMtDQo+ID4gPnNwc19sb2cyX2N0dV9zaXplX21pbnVzNSwNCj4gPiArICAg ICAgICAuc3BzX2xvZzJfbWluX2x1bWFfY29kaW5nX2Jsb2NrX3NpemVfbWludXMyICAgID0gc3Bz LQ0KPiA+ID5zcHNfbG9nMl9taW5fbHVtYV9jb2RpbmdfYmxvY2tfc2l6ZV9taW51czIsDQo+ID4g KyAgICAgICAgLnNwc19sb2cyX3RyYW5zZm9ybV9za2lwX21heF9zaXplX21pbnVzMiAgICAgICA9 IHNwcy0NCj4gPiA+c3BzX2xvZzJfdHJhbnNmb3JtX3NraXBfbWF4X3NpemVfbWludXMyLA0KPiA+ ICsgICAgICAgIC5zcHNfc2l4X21pbnVzX21heF9udW1fbWVyZ2VfY2FuZCAgICAgICAgICAgICAg PSBzcHMtDQo+ID4gPnNwc19zaXhfbWludXNfbWF4X251bV9tZXJnZV9jYW5kLA0KPiA+ICsgICAg ICAgIC5zcHNfZml2ZV9taW51c19tYXhfbnVtX3N1YmJsb2NrX21lcmdlX2NhbmQgICAgPSBzcHMt DQo+ID4gPnNwc19maXZlX21pbnVzX21heF9udW1fc3ViYmxvY2tfbWVyZ2VfY2FuZCwNCj4gPiAr ICAgICAgICAuc3BzX21heF9udW1fbWVyZ2VfY2FuZF9taW51c19tYXhfbnVtX2dwbV9jYW5kID0g c3BzLQ0KPiA+ID5zcHNfbWF4X251bV9tZXJnZV9jYW5kX21pbnVzX21heF9udW1fZ3BtX2NhbmQs DQo+ID4gKyAgICAgICAgLnNwc19sb2cyX3BhcmFsbGVsX21lcmdlX2xldmVsX21pbnVzMiAgICAg ICAgICA9IHNwcy0NCj4gPiA+c3BzX2xvZzJfcGFyYWxsZWxfbWVyZ2VfbGV2ZWxfbWludXMyLA0K PiA+ICsgICAgICAgIC5zcHNfbWluX3FwX3ByaW1lX3RzICAgICAgICAgICAgICAgICAgICAgICAg ICAgPSBzcHMtDQo+ID4gPnNwc19taW5fcXBfcHJpbWVfdHMsDQo+ID4gKyAgICAgICAgLnNwc19z aXhfbWludXNfbWF4X251bV9pYmNfbWVyZ2VfY2FuZCAgICAgICAgICA9IHNwcy0NCj4gPiA+c3Bz X3NpeF9taW51c19tYXhfbnVtX2liY19tZXJnZV9jYW5kLA0KPiA+ICsgICAgICAgIC5zcHNfbnVt X2xhZGZfaW50ZXJ2YWxzX21pbnVzMiAgICAgICAgICAgICAgICAgPSBzcHMtDQo+ID4gPnNwc19u dW1fbGFkZl9pbnRlcnZhbHNfbWludXMyLA0KPiA+ICsgICAgICAgIC5zcHNfbGFkZl9sb3dlc3Rf aW50ZXJ2YWxfcXBfb2Zmc2V0ICAgICAgICAgICAgPSBzcHMtDQo+ID4gPnNwc19sYWRmX2xvd2Vz dF9pbnRlcnZhbF9xcF9vZmZzZXQsDQo+ID4gKyAgICAgICAgLnNwc19mbGFncy5iaXRzID0gew0K PiA+ICsgICAgICAgICAgICAuc3BzX3N1YnBpY19pbmZvX3ByZXNlbnRfZmxhZyAgICAgICAgICAg ICAgICAgICAgICAgICANCj4gPiAgICAgICAgID0gc3BzLT5zcHNfc3VicGljX2luZm9fcHJlc2Vu dF9mbGFnLA0KPiA+ICsgICAgICAgICAgICAuc3BzX2luZGVwZW5kZW50X3N1YnBpY3NfZmxhZyAg ICAgICAgICAgICAgICAgICAgICAgICANCj4gPiAgICAgICAgID0gc3BzLT5zcHNfaW5kZXBlbmRl bnRfc3VicGljc19mbGFnLA0KPiA+ICsgICAgICAgICAgICAuc3BzX3N1YnBpY19zYW1lX3NpemVf ZmxhZyAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KPiA+ICAgICAgICAgID0gc3BzLT5zcHNf c3VicGljX3NhbWVfc2l6ZV9mbGFnLA0KPiA+ICsgICAgICAgICAgICAuc3BzX2VudHJvcHlfY29k aW5nX3N5bmNfZW5hYmxlZF9mbGFnICAgICAgICAgICAgICAgICANCj4gPiAgICAgICAgID0gc3Bz LT5zcHNfZW50cm9weV9jb2Rpbmdfc3luY19lbmFibGVkX2ZsYWcsDQo+ID4gKyAgICAgICAgICAg IC5zcHNfcXRidHRfZHVhbF90cmVlX2ludHJhX2ZsYWcgICAgICAgICAgICAgICAgICAgICAgIA0K PiA+ICAgICAgICAgPSBzcHMtPnNwc19xdGJ0dF9kdWFsX3RyZWVfaW50cmFfZmxhZywNCj4gPiAr ICAgICAgICAgICAgLnNwc19tYXhfbHVtYV90cmFuc2Zvcm1fc2l6ZV82NF9mbGFnICAgICAgICAg ICAgICAgICANCj4gPiAgICAgICAgICA9IHNwcy0+c3BzX21heF9sdW1hX3RyYW5zZm9ybV9zaXpl XzY0X2ZsYWcsDQo+ID4gKyAgICAgICAgICAgIC5zcHNfdHJhbnNmb3JtX3NraXBfZW5hYmxlZF9m bGFnICAgICAgICAgICAgICAgICAgICAgDQo+ID4gICAgICAgICAgPSBzcHMtPnNwc190cmFuc2Zv cm1fc2tpcF9lbmFibGVkX2ZsYWcsDQo+ID4gKyAgICAgICAgICAgIC5zcHNfYmRwY21fZW5hYmxl ZF9mbGFnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KPiA+ICAgICAgICAgPSBzcHMt PnNwc19iZHBjbV9lbmFibGVkX2ZsYWcsDQo+ID4gKyAgICAgICAgICAgIC5zcHNfbXRzX2VuYWJs ZWRfZmxhZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KPiA+ICAgICAgICAgPSBz cHMtPnNwc19tdHNfZW5hYmxlZF9mbGFnLA0KPiA+ICsgICAgICAgICAgICAuc3BzX2V4cGxpY2l0 X210c19pbnRyYV9lbmFibGVkX2ZsYWcgICAgICAgICAgICAgICAgIA0KPiA+ICAgICAgICAgID0g c3BzLT5zcHNfZXhwbGljaXRfbXRzX2ludHJhX2VuYWJsZWRfZmxhZywNCj4gPiArICAgICAgICAg ICAgLnNwc19leHBsaWNpdF9tdHNfaW50ZXJfZW5hYmxlZF9mbGFnICAgICAgICAgICAgICAgICAN Cj4gPiAgICAgICAgICA9IHNwcy0+c3BzX2V4cGxpY2l0X210c19pbnRlcl9lbmFibGVkX2ZsYWcs DQo+ID4gKyAgICAgICAgICAgIC5zcHNfbGZuc3RfZW5hYmxlZF9mbGFnICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIA0KPiA+ICAgICAgICAgPSBzcHMtPnNwc19sZm5zdF9lbmFibGVkX2Zs YWcsDQo+ID4gKyAgICAgICAgICAgIC5zcHNfam9pbnRfY2Jjcl9lbmFibGVkX2ZsYWcgICAgICAg ICAgICAgICAgICAgICAgICAgDQo+ID4gICAgICAgICAgPSBzcHMtPnNwc19qb2ludF9jYmNyX2Vu YWJsZWRfZmxhZywNCj4gPiArICAgICAgICAgICAgLnNwc19zYW1lX3FwX3RhYmxlX2Zvcl9jaHJv bWFfZmxhZyAgICAgICAgICAgICAgICAgICANCj4gPiAgICAgICAgICA9IHNwcy0+c3BzX3NhbWVf cXBfdGFibGVfZm9yX2Nocm9tYV9mbGFnLA0KPiA+ICsgICAgICAgICAgICAuc3BzX3Nhb19lbmFi bGVkX2ZsYWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCj4gPiAgICAgICAgID0g c3BzLT5zcHNfc2FvX2VuYWJsZWRfZmxhZywNCj4gPiArICAgICAgICAgICAgLnNwc19hbGZfZW5h YmxlZF9mbGFnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQo+ID4gICAgICAgICA9 IHNwcy0+c3BzX2FsZl9lbmFibGVkX2ZsYWcsDQo+ID4gKyAgICAgICAgICAgIC5zcHNfY2NhbGZf ZW5hYmxlZF9mbGFnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KPiA+ICAgICAgICAg PSBzcHMtPnNwc19hbGZfZW5hYmxlZF9mbGFnLA0KPiA+ICsgICAgICAgICAgICAuc3BzX2xtY3Nf ZW5hYmxlZF9mbGFnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KPiA+ICAgICAgICAg ID0gc3BzLT5zcHNfbG1jc19lbmFibGVkX2ZsYWcsDQo+ID4gKyAgICAgICAgICAgIC5zcHNfc2J0 bXZwX2VuYWJsZWRfZmxhZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQo+ID4gICAgICAg ICAgPSBzcHMtPnNwc19zYnRtdnBfZW5hYmxlZF9mbGFnLA0KPiA+ICsgICAgICAgICAgICAuc3Bz X2FtdnJfZW5hYmxlZF9mbGFnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KPiA+ICAg ICAgICAgID0gc3BzLT5zcHNfYW12cl9lbmFibGVkX2ZsYWcsDQo+ID4gKyAgICAgICAgICAgIC5z cHNfc212ZF9lbmFibGVkX2ZsYWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQo+ID4g ICAgICAgICAgPSBzcHMtPnNwc19zbXZkX2VuYWJsZWRfZmxhZywNCj4gPiArICAgICAgICAgICAg LnNwc19tbXZkX2VuYWJsZWRfZmxhZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCj4g PiAgICAgICAgICA9IHNwcy0+c3BzX21tdmRfZW5hYmxlZF9mbGFnLA0KPiA+ICsgICAgICAgICAg ICAuc3BzX3NidF9lbmFibGVkX2ZsYWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAN Cj4gPiAgICAgICAgID0gc3BzLT5zcHNfc2J0X2VuYWJsZWRfZmxhZywNCj4gPiArICAgICAgICAg ICAgLnNwc19hZmZpbmVfZW5hYmxlZF9mbGFnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAN Cj4gPiAgICAgICAgICA9IHNwcy0+c3BzX2FmZmluZV9lbmFibGVkX2ZsYWcsDQo+ID4gKyAgICAg ICAgICAgIC5zcHNfNnBhcmFtX2FmZmluZV9lbmFibGVkX2ZsYWcgICAgICAgICAgICAgICAgICAg ICAgIA0KPiA+ICAgICAgICAgPSBzcHMtPnNwc182cGFyYW1fYWZmaW5lX2VuYWJsZWRfZmxhZywN Cj4gPiArICAgICAgICAgICAgLnNwc19hZmZpbmVfYW12cl9lbmFibGVkX2ZsYWcgICAgICAgICAg ICAgICAgICAgICAgICAgDQo+ID4gICAgICAgICA9IHNwcy0+c3BzX2FmZmluZV9hbXZyX2VuYWJs ZWRfZmxhZywNCj4gPiArICAgICAgICAgICAgLnNwc19hZmZpbmVfcHJvZl9lbmFibGVkX2ZsYWcg ICAgICAgICAgICAgICAgICAgICAgICAgDQo+ID4gICAgICAgICA9IHNwcy0+c3BzX2FmZmluZV9w cm9mX2VuYWJsZWRfZmxhZywNCj4gPiArICAgICAgICAgICAgLnNwc19iY3dfZW5hYmxlZF9mbGFn ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQo+ID4gICAgICAgICA9IHNwcy0+c3Bz X2Jjd19lbmFibGVkX2ZsYWcsDQo+ID4gKyAgICAgICAgICAgIC5zcHNfY2lpcF9lbmFibGVkX2Zs YWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQo+ID4gICAgICAgICAgPSBzcHMtPnNw c19jaWlwX2VuYWJsZWRfZmxhZywNCj4gPiArICAgICAgICAgICAgLnNwc19ncG1fZW5hYmxlZF9m bGFnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQo+ID4gICAgICAgICA9IHNwcy0+ c3BzX2dwbV9lbmFibGVkX2ZsYWcsDQo+ID4gKyAgICAgICAgICAgIC5zcHNfaXNwX2VuYWJsZWRf ZmxhZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KPiA+ICAgICAgICAgPSBzcHMt PnNwc19pc3BfZW5hYmxlZF9mbGFnLA0KPiA+ICsgICAgICAgICAgICAuc3BzX21ybF9lbmFibGVk X2ZsYWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCj4gPiAgICAgICAgID0gc3Bz LT5zcHNfbXJsX2VuYWJsZWRfZmxhZywNCj4gPiArICAgICAgICAgICAgLnNwc19taXBfZW5hYmxl ZF9mbGFnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQo+ID4gICAgICAgICA9IHNw cy0+c3BzX21pcF9lbmFibGVkX2ZsYWcsDQo+ID4gKyAgICAgICAgICAgIC5zcHNfY2NsbV9lbmFi bGVkX2ZsYWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQo+ID4gICAgICAgICAgPSBz cHMtPnNwc19jY2xtX2VuYWJsZWRfZmxhZywNCj4gPiArICAgICAgICAgICAgLnNwc19jaHJvbWFf aG9yaXpvbnRhbF9jb2xsb2NhdGVkX2ZsYWcgICAgICAgICAgICAgICANCj4gPiAgICAgICAgICA9 IHNwcy0+c3BzX2Nocm9tYV9ob3Jpem9udGFsX2NvbGxvY2F0ZWRfZmxhZywNCj4gPiArICAgICAg ICAgICAgLnNwc19jaHJvbWFfdmVydGljYWxfY29sbG9jYXRlZF9mbGFnICAgICAgICAgICAgICAg ICANCj4gPiAgICAgICAgICA9IHNwcy0+c3BzX2Nocm9tYV92ZXJ0aWNhbF9jb2xsb2NhdGVkX2Zs YWcsDQo+ID4gKyAgICAgICAgICAgIC5zcHNfcGFsZXR0ZV9lbmFibGVkX2ZsYWcgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIA0KPiA+ICAgICAgICAgPSBzcHMtPnNwc19wYWxldHRlX2VuYWJs ZWRfZmxhZywNCj4gPiArICAgICAgICAgICAgLnNwc19hY3RfZW5hYmxlZF9mbGFnICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgDQo+ID4gICAgICAgICA9IHNwcy0+c3BzX2FjdF9lbmFi bGVkX2ZsYWcsDQo+ID4gKyAgICAgICAgICAgIC5zcHNfaWJjX2VuYWJsZWRfZmxhZyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIA0KPiA+ICAgICAgICAgPSBzcHMtPnNwc19pYmNfZW5h YmxlZF9mbGFnLA0KPiA+ICsgICAgICAgICAgICAuc3BzX2xhZGZfZW5hYmxlZF9mbGFnICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIA0KPiA+ICAgICAgICAgID0gc3BzLT5zcHNfbGFkZl9l bmFibGVkX2ZsYWcsDQo+ID4gKyAgICAgICAgICAgIC5zcHNfZXhwbGljaXRfc2NhbGluZ19saXN0 X2VuYWJsZWRfZmxhZyAgICAgICAgICAgICAgIA0KPiA+ICAgICAgICAgPSBzcHMtPnNwc19leHBs aWNpdF9zY2FsaW5nX2xpc3RfZW5hYmxlZF9mbGFnLA0KPiA+ICsgICAgICAgICAgICAuc3BzX3Nj YWxpbmdfbWF0cml4X2Zvcl9sZm5zdF9kaXNhYmxlZF9mbGFnICAgICAgICAgICANCj4gPiAgICAg ICAgID0gc3BzLT5zcHNfc2NhbGluZ19tYXRyaXhfZm9yX2xmbnN0X2Rpc2FibGVkX2ZsYWcsDQo+ ID4gKyAgICAgICAgICAgDQo+ID4gLnNwc19zY2FsaW5nX21hdHJpeF9mb3JfYWx0ZXJuYXRpdmVf Y29sb3VyX3NwYWNlX2Rpc2FibGVkX2ZsYWcgPQ0KPiA+IHNwcy0+c3BzX3NjYWxpbmdfbWF0cml4 X2Zvcl9hbHRlcm5hdGl2ZV9jb2xvdXJfc3BhY2VfZGlzYWJsZWRfZmxhZywNCj4gPiArICAgICAg ICAgICAgLnNwc19zY2FsaW5nX21hdHJpeF9kZXNpZ25hdGVkX2NvbG91cl9zcGFjZV9mbGFnICAg ICANCj4gPiAgICAgICAgICA9IHNwcy0+c3BzX3NjYWxpbmdfbWF0cml4X2Rlc2lnbmF0ZWRfY29s b3VyX3NwYWNlX2ZsYWcsDQo+ID4gKyAgICAgICAgICAgIC5zcHNfdmlydHVhbF9ib3VuZGFyaWVz X2VuYWJsZWRfZmxhZyAgICAgICAgICAgICAgICAgDQo+ID4gICAgICAgICAgPSBzcHMtPnNwc192 aXJ0dWFsX2JvdW5kYXJpZXNfZW5hYmxlZF9mbGFnLA0KPiA+ICsgICAgICAgICAgICAuc3BzX3Zp cnR1YWxfYm91bmRhcmllc19wcmVzZW50X2ZsYWcgICAgICAgICAgICAgICAgIA0KPiA+ICAgICAg ICAgID0gc3BzLT5zcHNfdmlydHVhbF9ib3VuZGFyaWVzX3ByZXNlbnRfZmxhZywNCj4gPiArICAg ICAgICB9LA0KPiA+ICsgICAgICAgIC5OdW1WZXJWaXJ0dWFsQm91bmRhcmllcyAgICAgICAgICAg ICAgID0gc3BzLQ0KPiA+ID5zcHNfdmlydHVhbF9ib3VuZGFyaWVzX3ByZXNlbnRfZmxhZyA/DQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcHMt DQo+ID4gPnNwc19udW1fdmVyX3ZpcnR1YWxfYm91bmRhcmllcyA6DQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaC0NCj4gPiA+cGhfbnVtX3Zl cl92aXJ0dWFsX2JvdW5kYXJpZXMsDQo+ID4gKyAgICAgICAgLk51bUhvclZpcnR1YWxCb3VuZGFy aWVzICAgICAgICAgICAgICAgPSBzcHMtDQo+ID4gPnNwc192aXJ0dWFsX2JvdW5kYXJpZXNfcHJl c2VudF9mbGFnID8NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNwcy0NCj4gPiA+c3BzX251bV9ob3JfdmlydHVhbF9ib3VuZGFyaWVzIDoNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBoLQ0K PiA+ID5waF9udW1faG9yX3ZpcnR1YWxfYm91bmRhcmllcywNCj4gPiArICAgICAgICAucHBzX3Nj YWxpbmdfd2luX2xlZnRfb2Zmc2V0ICAgICAgICAgICA9IHBwcy0NCj4gPiA+cHBzX3NjYWxpbmdf d2luX2xlZnRfb2Zmc2V0LA0KPiA+ICsgICAgICAgIC5wcHNfc2NhbGluZ193aW5fcmlnaHRfb2Zm c2V0ICAgICAgICAgID0gcHBzLQ0KPiA+ID5wcHNfc2NhbGluZ193aW5fcmlnaHRfb2Zmc2V0LA0K PiA+ICsgICAgICAgIC5wcHNfc2NhbGluZ193aW5fdG9wX29mZnNldCAgICAgICAgICAgID0gcHBz LQ0KPiA+ID5wcHNfc2NhbGluZ193aW5fdG9wX29mZnNldCwNCj4gPiArICAgICAgICAucHBzX3Nj YWxpbmdfd2luX2JvdHRvbV9vZmZzZXQgICAgICAgICA9IHBwcy0NCj4gPiA+cHBzX3NjYWxpbmdf d2luX2JvdHRvbV9vZmZzZXQsDQo+ID4gKyAgICAgICAgLnBwc19udW1fZXhwX3RpbGVfY29sdW1u c19taW51czEgICAgICAgPSBwcHMtDQo+ID4gPnBwc19udW1fZXhwX3RpbGVfY29sdW1uc19taW51 czEsDQo+ID4gKyAgICAgICAgLnBwc19udW1fZXhwX3RpbGVfcm93c19taW51czEgICAgICAgICAg PSBwcHMtDQo+ID4gPnBwc19udW1fZXhwX3RpbGVfcm93c19taW51czEsDQo+ID4gKyAgICAgICAg LnBwc19udW1fc2xpY2VzX2luX3BpY19taW51czEgICAgICAgICAgPSBwcHMtDQo+ID4gPnBwc19u dW1fc2xpY2VzX2luX3BpY19taW51czEsDQo+ID4gKyAgICAgICAgLnBwc19waWNfd2lkdGhfbWlu dXNfd3JhcGFyb3VuZF9vZmZzZXQgPSBwcHMtDQo+ID4gPnBwc19waWNfd2lkdGhfbWludXNfd3Jh cGFyb3VuZF9vZmZzZXQsDQo+ID4gKyAgICAgICAgLnBwc19jYl9xcF9vZmZzZXQgICAgICAgICAg ICAgICAgICAgICAgPSBwcHMtDQo+ID4gPnBwc19jYl9xcF9vZmZzZXQsDQo+ID4gKyAgICAgICAg LnBwc19jcl9xcF9vZmZzZXQgICAgICAgICAgICAgICAgICAgICAgPSBwcHMtDQo+ID4gPnBwc19j cl9xcF9vZmZzZXQsDQo+ID4gKyAgICAgICAgLnBwc19qb2ludF9jYmNyX3FwX29mZnNldF92YWx1 ZSAgICAgICAgPSBwcHMtDQo+ID4gPnBwc19qb2ludF9jYmNyX3FwX29mZnNldF92YWx1ZSwNCj4g PiArICAgICAgICAucHBzX2Nocm9tYV9xcF9vZmZzZXRfbGlzdF9sZW5fbWludXMxICA9IHBwcy0N Cj4gPiA+cHBzX2Nocm9tYV9xcF9vZmZzZXRfbGlzdF9sZW5fbWludXMxLA0KPiA+ICsgICAgICAg IC5wcHNfZmxhZ3MuYml0cyA9IHsNCj4gPiArICAgICAgICAgICAgLnBwc19sb29wX2ZpbHRlcl9h Y3Jvc3NfdGlsZXNfZW5hYmxlZF9mbGFnICAgPSBwcHMtDQo+ID4gPnBwc19sb29wX2ZpbHRlcl9h Y3Jvc3NfdGlsZXNfZW5hYmxlZF9mbGFnLA0KPiA+ICsgICAgICAgICAgICAucHBzX3JlY3Rfc2xp Y2VfZmxhZyAgICAgICAgICAgICAgICAgICAgICAgICA9IHBwcy0NCj4gPiA+cHBzX3JlY3Rfc2xp Y2VfZmxhZywNCj4gPiArICAgICAgICAgICAgLnBwc19zaW5nbGVfc2xpY2VfcGVyX3N1YnBpY19m bGFnICAgICAgICAgICAgPSBwcHMtDQo+ID4gPnBwc19zaW5nbGVfc2xpY2VfcGVyX3N1YnBpY19m bGFnLA0KPiA+ICsgICAgICAgICAgICAucHBzX2xvb3BfZmlsdGVyX2Fjcm9zc19zbGljZXNfZW5h YmxlZF9mbGFnICA9IHBwcy0NCj4gPiA+cHBzX2xvb3BfZmlsdGVyX2Fjcm9zc19zbGljZXNfZW5h YmxlZF9mbGFnLA0KPiA+ICsgICAgICAgICAgICAucHBzX3dlaWdodGVkX3ByZWRfZmxhZyAgICAg ICAgICAgICAgICAgICAgICA9IHBwcy0NCj4gPiA+cHBzX3dlaWdodGVkX3ByZWRfZmxhZywNCj4g PiArICAgICAgICAgICAgLnBwc193ZWlnaHRlZF9iaXByZWRfZmxhZyAgICAgICAgICAgICAgICAg ICAgPSBwcHMtDQo+ID4gPnBwc193ZWlnaHRlZF9iaXByZWRfZmxhZywNCj4gPiArICAgICAgICAg ICAgLnBwc19yZWZfd3JhcGFyb3VuZF9lbmFibGVkX2ZsYWcgICAgICAgICAgICAgPSBwcHMtDQo+ ID4gPnBwc19yZWZfd3JhcGFyb3VuZF9lbmFibGVkX2ZsYWcsDQo+ID4gKyAgICAgICAgICAgIC5w cHNfY3VfcXBfZGVsdGFfZW5hYmxlZF9mbGFnICAgICAgICAgICAgICAgID0gcHBzLQ0KPiA+ID5w cHNfY3VfcXBfZGVsdGFfZW5hYmxlZF9mbGFnLA0KPiA+ICsgICAgICAgICAgICAucHBzX2N1X2No cm9tYV9xcF9vZmZzZXRfbGlzdF9lbmFibGVkX2ZsYWcgICA9IHBwcy0NCj4gPiA+cHBzX2N1X2No cm9tYV9xcF9vZmZzZXRfbGlzdF9lbmFibGVkX2ZsYWcsDQo+ID4gKyAgICAgICAgICAgIC5wcHNf ZGVibG9ja2luZ19maWx0ZXJfb3ZlcnJpZGVfZW5hYmxlZF9mbGFnID0gcHBzLQ0KPiA+ID5wcHNf ZGVibG9ja2luZ19maWx0ZXJfb3ZlcnJpZGVfZW5hYmxlZF9mbGFnLA0KPiA+ICsgICAgICAgICAg ICAucHBzX2RlYmxvY2tpbmdfZmlsdGVyX2Rpc2FibGVkX2ZsYWcgICAgICAgICA9IHBwcy0NCj4g PiA+cHBzX2RlYmxvY2tpbmdfZmlsdGVyX2Rpc2FibGVkX2ZsYWcsDQo+ID4gKyAgICAgICAgICAg IC5wcHNfZGJmX2luZm9faW5fcGhfZmxhZyAgICAgICAgICAgICAgICAgICAgID0gcHBzLQ0KPiA+ ID5wcHNfZGJmX2luZm9faW5fcGhfZmxhZywNCj4gPiArICAgICAgICAgICAgLnBwc19zYW9faW5m b19pbl9waF9mbGFnICAgICAgICAgICAgICAgICAgICAgPSBwcHMtDQo+ID4gPnBwc19zYW9faW5m b19pbl9waF9mbGFnLA0KPiA+ICsgICAgICAgICAgICAucHBzX2FsZl9pbmZvX2luX3BoX2ZsYWcg ICAgICAgICAgICAgICAgICAgICA9IHBwcy0NCj4gPiA+cHBzX2FsZl9pbmZvX2luX3BoX2ZsYWcs DQo+ID4gKyAgICAgICAgfSwNCj4gPiArICAgICAgICAucGhfbG1jc19hcHNfaWQgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgID0gcGgtDQo+ID4gPnBoX2xtY3NfYXBzX2lkLA0KPiA+ICsg ICAgICAgIC5waF9zY2FsaW5nX2xpc3RfYXBzX2lkICAgICAgICAgICAgICAgICAgICAgICAgPSBw aC0NCj4gPiA+cGhfc2NhbGluZ19saXN0X2Fwc19pZCwNCj4gPiArICAgICAgICAucGhfbG9nMl9k aWZmX21pbl9xdF9taW5fY2JfaW50cmFfc2xpY2VfbHVtYSAgID0gcGgtDQo+ID4gPnBoX2xvZzJf ZGlmZl9taW5fcXRfbWluX2NiX2ludHJhX3NsaWNlX2x1bWEsDQo+ID4gKyAgICAgICAgLnBoX21h eF9tdHRfaGllcmFyY2h5X2RlcHRoX2ludHJhX3NsaWNlX2x1bWEgICA9IHBoLQ0KPiA+ID5waF9t YXhfbXR0X2hpZXJhcmNoeV9kZXB0aF9pbnRyYV9zbGljZV9sdW1hLA0KPiA+ICsgICAgICAgIC5w aF9sb2cyX2RpZmZfbWF4X2J0X21pbl9xdF9pbnRyYV9zbGljZV9sdW1hICAgPSBwaC0NCj4gPiA+ cGhfbG9nMl9kaWZmX21heF9idF9taW5fcXRfaW50cmFfc2xpY2VfbHVtYSwNCj4gPiArICAgICAg ICAucGhfbG9nMl9kaWZmX21heF90dF9taW5fcXRfaW50cmFfc2xpY2VfbHVtYSAgID0gcGgtDQo+ ID4gPnBoX2xvZzJfZGlmZl9tYXhfdHRfbWluX3F0X2ludHJhX3NsaWNlX2x1bWEsDQo+ID4gKyAg ICAgICAgLnBoX2xvZzJfZGlmZl9taW5fcXRfbWluX2NiX2ludHJhX3NsaWNlX2Nocm9tYSA9IHBo LQ0KPiA+ID5waF9sb2cyX2RpZmZfbWluX3F0X21pbl9jYl9pbnRyYV9zbGljZV9jaHJvbWEsDQo+ ID4gKyAgICAgICAgLnBoX21heF9tdHRfaGllcmFyY2h5X2RlcHRoX2ludHJhX3NsaWNlX2Nocm9t YSA9IHBoLQ0KPiA+ID5waF9tYXhfbXR0X2hpZXJhcmNoeV9kZXB0aF9pbnRyYV9zbGljZV9jaHJv bWEsDQo+ID4gKyAgICAgICAgLnBoX2xvZzJfZGlmZl9tYXhfYnRfbWluX3F0X2ludHJhX3NsaWNl X2Nocm9tYSA9IHBoLQ0KPiA+ID5waF9sb2cyX2RpZmZfbWF4X2J0X21pbl9xdF9pbnRyYV9zbGlj ZV9jaHJvbWEsDQo+ID4gKyAgICAgICAgLnBoX2xvZzJfZGlmZl9tYXhfdHRfbWluX3F0X2ludHJh X3NsaWNlX2Nocm9tYSA9IHBoLQ0KPiA+ID5waF9sb2cyX2RpZmZfbWF4X3R0X21pbl9xdF9pbnRy YV9zbGljZV9jaHJvbWEsDQo+ID4gKyAgICAgICAgLnBoX2N1X3FwX2RlbHRhX3N1YmRpdl9pbnRy YV9zbGljZSAgICAgICAgICAgICA9IHBoLQ0KPiA+ID5waF9jdV9xcF9kZWx0YV9zdWJkaXZfaW50 cmFfc2xpY2UsDQo+ID4gKyAgICAgICAgLnBoX2N1X2Nocm9tYV9xcF9vZmZzZXRfc3ViZGl2X2lu dHJhX3NsaWNlICAgICA9IHBoLQ0KPiA+ID5waF9jdV9jaHJvbWFfcXBfb2Zmc2V0X3N1YmRpdl9p bnRyYV9zbGljZSwNCj4gPiArICAgICAgICAucGhfbG9nMl9kaWZmX21pbl9xdF9taW5fY2JfaW50 ZXJfc2xpY2UgICAgICAgID0gcGgtDQo+ID4gPnBoX2xvZzJfZGlmZl9taW5fcXRfbWluX2NiX2lu dGVyX3NsaWNlLA0KPiA+ICsgICAgICAgIC5waF9tYXhfbXR0X2hpZXJhcmNoeV9kZXB0aF9pbnRl cl9zbGljZSAgICAgICAgPSBwaC0NCj4gPiA+cGhfbWF4X210dF9oaWVyYXJjaHlfZGVwdGhfaW50 ZXJfc2xpY2UsDQo+ID4gKyAgICAgICAgLnBoX2xvZzJfZGlmZl9tYXhfYnRfbWluX3F0X2ludGVy X3NsaWNlICAgICAgICA9IHBoLQ0KPiA+ID5waF9sb2cyX2RpZmZfbWF4X2J0X21pbl9xdF9pbnRl cl9zbGljZSwNCj4gPiArICAgICAgICAucGhfbG9nMl9kaWZmX21heF90dF9taW5fcXRfaW50ZXJf c2xpY2UgICAgICAgID0gcGgtDQo+ID4gPnBoX2xvZzJfZGlmZl9tYXhfdHRfbWluX3F0X2ludGVy X3NsaWNlLA0KPiA+ICsgICAgICAgIC5waF9jdV9xcF9kZWx0YV9zdWJkaXZfaW50ZXJfc2xpY2Ug ICAgICAgICAgICAgPSBwaC0NCj4gPiA+cGhfY3VfcXBfZGVsdGFfc3ViZGl2X2ludGVyX3NsaWNl LA0KPiA+ICsgICAgICAgIC5waF9jdV9jaHJvbWFfcXBfb2Zmc2V0X3N1YmRpdl9pbnRlcl9zbGlj ZSAgICAgPSBwaC0NCj4gPiA+cGhfY3VfY2hyb21hX3FwX29mZnNldF9zdWJkaXZfaW50ZXJfc2xp Y2UsDQo+ID4gKyAgICAgICAgLnBoX2ZsYWdzLmJpdHM9IHsNCj4gPiArICAgICAgICAgICAgLnBo X25vbl9yZWZfcGljX2ZsYWcgICAgICAgICAgICAgICAgICAgPSBwaC0NCj4gPiA+cGhfbm9uX3Jl Zl9waWNfZmxhZywNCj4gPiArICAgICAgICAgICAgLnBoX2FsZl9lbmFibGVkX2ZsYWcgICAgICAg ICAgICAgICAgICAgPSBwaC0NCj4gPiA+cGhfYWxmX2VuYWJsZWRfZmxhZywNCj4gPiArICAgICAg ICAgICAgLnBoX2FsZl9jYl9lbmFibGVkX2ZsYWcgICAgICAgICAgICAgICAgPSBwaC0NCj4gPiA+ cGhfYWxmX2NiX2VuYWJsZWRfZmxhZywNCj4gPiArICAgICAgICAgICAgLnBoX2FsZl9jcl9lbmFi bGVkX2ZsYWcgICAgICAgICAgICAgICAgPSBwaC0NCj4gPiA+cGhfYWxmX2NyX2VuYWJsZWRfZmxh ZywNCj4gPiArICAgICAgICAgICAgLnBoX2FsZl9jY19jYl9lbmFibGVkX2ZsYWcgICAgICAgICAg ICAgPSBwaC0NCj4gPiA+cGhfYWxmX2NjX2NiX2VuYWJsZWRfZmxhZywNCj4gPiArICAgICAgICAg ICAgLnBoX2FsZl9jY19jcl9lbmFibGVkX2ZsYWcgICAgICAgICAgICAgPSBwaC0NCj4gPiA+cGhf YWxmX2NjX2NyX2VuYWJsZWRfZmxhZywNCj4gPiArICAgICAgICAgICAgLnBoX2xtY3NfZW5hYmxl ZF9mbGFnICAgICAgICAgICAgICAgICAgPSBwaC0NCj4gPiA+cGhfbG1jc19lbmFibGVkX2ZsYWcs DQo+ID4gKyAgICAgICAgICAgIC5waF9jaHJvbWFfcmVzaWR1YWxfc2NhbGVfZmxhZyAgICAgICAg ID0gcGgtDQo+ID4gPnBoX2Nocm9tYV9yZXNpZHVhbF9zY2FsZV9mbGFnLA0KPiA+ICsgICAgICAg ICAgICAucGhfZXhwbGljaXRfc2NhbGluZ19saXN0X2VuYWJsZWRfZmxhZyA9IHBoLQ0KPiA+ID5w aF9leHBsaWNpdF9zY2FsaW5nX2xpc3RfZW5hYmxlZF9mbGFnLA0KPiA+ICsgICAgICAgICAgICAu cGhfdmlydHVhbF9ib3VuZGFyaWVzX3ByZXNlbnRfZmxhZyAgICA9IHBoLQ0KPiA+ID5waF92aXJ0 dWFsX2JvdW5kYXJpZXNfcHJlc2VudF9mbGFnLA0KPiA+ICsgICAgICAgICAgICAucGhfdGVtcG9y YWxfbXZwX2VuYWJsZWRfZmxhZyAgICAgICAgICA9IHBoLQ0KPiA+ID5waF90ZW1wb3JhbF9tdnBf ZW5hYmxlZF9mbGFnLA0KPiA+ICsgICAgICAgICAgICAucGhfbW12ZF9mdWxscGVsX29ubHlfZmxh ZyAgICAgICAgICAgICA9IHBoLQ0KPiA+ID5waF9tbXZkX2Z1bGxwZWxfb25seV9mbGFnLA0KPiA+ ICsgICAgICAgICAgICAucGhfbXZkX2wxX3plcm9fZmxhZyAgICAgICAgICAgICAgICAgICA9IHBo LQ0KPiA+ID5waF9tdmRfbDFfemVyb19mbGFnLA0KPiA+ICsgICAgICAgICAgICAucGhfYmRvZl9k aXNhYmxlZF9mbGFnICAgICAgICAgICAgICAgICA9IHBoLQ0KPiA+ID5waF9iZG9mX2Rpc2FibGVk X2ZsYWcsDQo+ID4gKyAgICAgICAgICAgIC5waF9kbXZyX2Rpc2FibGVkX2ZsYWcgICAgICAgICAg ICAgICAgID0gcGgtDQo+ID4gPnBoX2RtdnJfZGlzYWJsZWRfZmxhZywNCj4gPiArICAgICAgICAg ICAgLnBoX3Byb2ZfZGlzYWJsZWRfZmxhZyAgICAgICAgICAgICAgICAgPSBwaC0NCj4gPiA+cGhf cHJvZl9kaXNhYmxlZF9mbGFnLA0KPiA+ICsgICAgICAgICAgICAucGhfam9pbnRfY2Jjcl9zaWdu X2ZsYWcgICAgICAgICAgICAgICA9IHBoLQ0KPiA+ID5waF9qb2ludF9jYmNyX3NpZ25fZmxhZywN Cj4gPiArICAgICAgICAgICAgLnBoX3Nhb19sdW1hX2VuYWJsZWRfZmxhZyAgICAgICAgICAgICAg PSBwaC0NCj4gPiA+cGhfc2FvX2x1bWFfZW5hYmxlZF9mbGFnLA0KPiA+ICsgICAgICAgICAgICAu cGhfc2FvX2Nocm9tYV9lbmFibGVkX2ZsYWcgICAgICAgICAgICA9IHBoLQ0KPiA+ID5waF9zYW9f Y2hyb21hX2VuYWJsZWRfZmxhZywNCj4gPiArICAgICAgICAgICAgLnBoX2RlYmxvY2tpbmdfZmls dGVyX2Rpc2FibGVkX2ZsYWcgICAgPSBwaC0NCj4gPiA+cGhfZGVibG9ja2luZ19maWx0ZXJfZGlz YWJsZWRfZmxhZywNCj4gPiArICAgICAgICB9LA0KPiA+ICsgICAgICAgIC5QaWNNaXNjRmxhZ3Mu ZmllbGRzID0gew0KPiA+ICsgICAgICAgICAgICAuSW50cmFQaWNGbGFnID0gcHBzLT5wcHNfbWl4 ZWRfbmFsdV90eXBlc19pbl9waWNfZmxhZw0KPiA+ID8gMCA6IElTX0lSQVAoaCkgPyAxIDogMCwN Cj4gPiArICAgICAgICB9DQo+ID4gKyAgICB9Ow0KPiA+ICsNCj4gPiArICAgIGZpbGxfdmFhcGlf cGljKCZwaWNfcGFyYW0tPkN1cnJQaWMsIGZjLT5yZWYpOw0KPiA+ICsgICAgZmlsbF92YWFwaV9y ZWZlcmVuY2VfZnJhbWVzKGZjLCBwaWNfcGFyYW0pOw0KPiA+ICsNCj4gPiArICAgIGZvciAoaSA9 IDA7IGkgPCBWVkNfTUFYX1NBTVBMRV9BUlJBWVM7IGkrKykNCj4gPiArICAgICAgICBmb3IgKGog PSAwOyBqIDwgVlZDX01BWF9QT0lOVFNfSU5fUVBfVEFCTEU7IGorKykNCj4gPiArICAgICAgICAg ICAgcGljX3BhcmFtLT5DaHJvbWFRcFRhYmxlW2ldW2pdID0gZmMtPnBzLnNwcy0NCj4gPiA+Y2hy b21hX3FwX3RhYmxlW2ldW2pdOw0KPiA+ICsgICAgZm9yIChpID0gMDsgaSA8IDQ7IGkrKykgew0K PiA+ICsgICAgICAgIHBpY19wYXJhbS0+c3BzX2xhZGZfcXBfb2Zmc2V0W2ldICAgICAgICAgICAg ICA9IHNwcy0NCj4gPiA+c3BzX2xhZGZfcXBfb2Zmc2V0W2ldOw0KPiA+ICsgICAgICAgIHBpY19w YXJhbS0+c3BzX2xhZGZfZGVsdGFfdGhyZXNob2xkX21pbnVzMVtpXSA9IHNwcy0NCj4gPiA+c3Bz X2xhZGZfZGVsdGFfdGhyZXNob2xkX21pbnVzMVtpXTsNCj4gPiArICAgIH0NCj4gPiArDQo+ID4g KyAgICBmb3IgKGkgPSAwOyBpIDwgKHNwcy0+c3BzX3ZpcnR1YWxfYm91bmRhcmllc19wcmVzZW50 X2ZsYWcgPw0KPiA+IHNwcy0+c3BzX251bV92ZXJfdmlydHVhbF9ib3VuZGFyaWVzIDogcGgtDQo+ ID4gPnBoX251bV92ZXJfdmlydHVhbF9ib3VuZGFyaWVzKTsgaSsrKSB7DQo+ID4gKyAgICAgICAg cGljX3BhcmFtLT5WaXJ0dWFsQm91bmRhcnlQb3NYW2ldID0gKHNwcy0NCj4gPiA+c3BzX3ZpcnR1 YWxfYm91bmRhcmllc19wcmVzZW50X2ZsYWcgPw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChzcHMtDQo+ID4gPnNwc192aXJ0dWFsX2JvdW5kYXJ5X3Bv c194X21pbnVzMVsgaSBdICsgMSkgOg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChwaC0NCj4gPiA+cGhfdmlydHVhbF9ib3VuZGFyeV9wb3NfeF9taW51 czFbaV0gKyAxKSkgKiA4Ow0KPiA+ICsgICAgfQ0KPiA+ICsNCj4gPiArICAgIGZvciAoaSA9IDA7 IGkgPCAoc3BzLT5zcHNfdmlydHVhbF9ib3VuZGFyaWVzX3ByZXNlbnRfZmxhZyA/DQo+ID4gc3Bz LT5zcHNfbnVtX2hvcl92aXJ0dWFsX2JvdW5kYXJpZXMgOiBwaC0NCj4gPiA+cGhfbnVtX2hvcl92 aXJ0dWFsX2JvdW5kYXJpZXMpOyBpKyspIHsNCj4gPiArICAgICAgICBwaWNfcGFyYW0tPlZpcnR1 YWxCb3VuZGFyeVBvc1lbaV0gPSAoc3BzLQ0KPiA+ID5zcHNfdmlydHVhbF9ib3VuZGFyaWVzX3By ZXNlbnRfZmxhZyA/DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKHNwcy0NCj4gPiA+c3BzX3ZpcnR1YWxfYm91bmRhcnlfcG9zX3lfbWludXMxWyBpIF0g KyAxKSA6DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KHBoLQ0KPiA+ID5waF92aXJ0dWFsX2JvdW5kYXJ5X3Bvc195X21pbnVzMVtpXSArIDEpKSAqIDg7 DQo+ID4gKyAgICB9DQo+ID4gKw0KPiA+ICsgICAgZm9yIChpID0gMDsgaSA8IDY7IGkrKykgew0K PiA+ICsgICAgICAgIHBpY19wYXJhbS0+cHBzX2NiX3FwX29mZnNldF9saXN0W2ldICAgICAgICAg PSBwcHMtDQo+ID4gPnBwc19jYl9xcF9vZmZzZXRfbGlzdFtpXTsNCj4gPiArICAgICAgICBwaWNf cGFyYW0tPnBwc19jcl9xcF9vZmZzZXRfbGlzdFtpXSAgICAgICAgID0gcHBzLQ0KPiA+ID5wcHNf Y3JfcXBfb2Zmc2V0X2xpc3RbaV07DQo+ID4gKyAgICAgICAgcGljX3BhcmFtLT5wcHNfam9pbnRf Y2Jjcl9xcF9vZmZzZXRfbGlzdFtpXSA9IHBwcy0NCj4gPiA+cHBzX2pvaW50X2NiY3JfcXBfb2Zm c2V0X2xpc3RbaV07DQo+ID4gKyAgICB9DQo+ID4gKw0KPiA+ICsgICAgZXJyID0gZmZfdmFhcGlf ZGVjb2RlX21ha2VfcGFyYW1fYnVmZmVyKGF2Y3R4LCAmcGljLT5waWMsDQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCj4gPiBWQVBpY3R1cmVQYXJhbWV0 ZXJCdWZmZXJUeXBlLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICZwaWMtPnBpY19wYXJhbSwNCj4gPiBzaXplb2YoVkFQaWN0dXJlUGFyYW1ldGVyQnVm ZmVyVlZDKSk7DQo+ID4gKyAgICBpZiAoZXJyIDwgMCkNCj4gPiArICAgICAgICBnb3RvIGZhaWw7 DQo+ID4gKw0KPiA+ICsgICAgZm9yIChpID0gMDsgaSA8PSBzcHMtPnNwc19udW1fc3VicGljc19t aW51czEgJiYgc3BzLQ0KPiA+ID5zcHNfc3VicGljX2luZm9fcHJlc2VudF9mbGFnOyBpKyspIHsN Cj4gPiArICAgICAgICBWQVN1YlBpY1ZWQyBzdWJwaWNfcGFyYW0gPSB7DQo+ID4gKyAgICAgICAg ICAgIC5zcHNfc3VicGljX2N0dV90b3BfbGVmdF94ID0gc3BzLQ0KPiA+ID5zcHNfc3VicGljX2N0 dV90b3BfbGVmdF94W2ldLA0KPiA+ICsgICAgICAgICAgICAuc3BzX3N1YnBpY19jdHVfdG9wX2xl ZnRfeSA9IHNwcy0NCj4gPiA+c3BzX3N1YnBpY19jdHVfdG9wX2xlZnRfeVtpXSwNCj4gPiArICAg ICAgICAgICAgLnNwc19zdWJwaWNfd2lkdGhfbWludXMxICAgPSBzcHMtDQo+ID4gPnNwc19zdWJw aWNfd2lkdGhfbWludXMxW2ldLA0KPiA+ICsgICAgICAgICAgICAuc3BzX3N1YnBpY19oZWlnaHRf bWludXMxICA9IHNwcy0NCj4gPiA+c3BzX3N1YnBpY19oZWlnaHRfbWludXMxW2ldLA0KPiA+ICsg ICAgICAgICAgICAuU3VicGljSWRWYWwgICAgICAgICAgICAgICA9IHBwcy0+c3ViX3BpY19pZF92 YWxbaV0sDQo+ID4gKyAgICAgICAgICAgIC5zdWJwaWNfZmxhZ3MuYml0cyA9IHsNCj4gPiArICAg ICAgICAgICAgICAgIC5zcHNfc3VicGljX3RyZWF0ZWRfYXNfcGljX2ZsYWcgICAgICAgICAgICAg PSBzcHMtDQo+ID4gPnNwc19zdWJwaWNfdHJlYXRlZF9hc19waWNfZmxhZ1tpXSwNCj4gPiArICAg ICAgICAgICAgICAgIC5zcHNfbG9vcF9maWx0ZXJfYWNyb3NzX3N1YnBpY19lbmFibGVkX2ZsYWcg PSBzcHMtDQo+ID4gPnNwc19sb29wX2ZpbHRlcl9hY3Jvc3Nfc3VicGljX2VuYWJsZWRfZmxhZ1tp XSwNCj4gPiArICAgICAgICAgICAgfQ0KPiA+ICsgICAgICAgIH07DQo+ID4gKyAgICAgICAgZXJy ID0gZmZfdmFhcGlfZGVjb2RlX21ha2VfcGFyYW1fYnVmZmVyKGF2Y3R4LCAmcGljLT5waWMsDQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQo+ID4g VkFTdWJQaWNCdWZmZXJUeXBlLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAmc3VicGljX3BhcmFtLA0KPiA+IHNpemVvZihWQVN1YlBpY1ZWQykp Ow0KPiA+ICsgICAgICAgIGlmIChlcnIgPCAwKQ0KPiA+ICsgICAgICAgICAgICBnb3RvIGZhaWw7 DQo+ID4gKyAgICB9DQo+ID4gKw0KPiA+ICsgICAgZm9yIChpID0gMDsgaSA8IFZWQ19NQVhfQUxG X0NPVU5UOyBpKyspIHsNCj4gPiArICAgICAgICBjb25zdCBWVkNBTEYgKmFsZl9saXN0ID0gaC0+ cHMuYWxmX2xpc3RbaV07DQo+ID4gKyAgICAgICAgaWYgKGFsZl9saXN0KSB7DQo+ID4gKyAgICAg ICAgICAgIGNvbnN0IEgyNjZSYXdBUFMgKmFsZiA9IGFsZl9saXN0LT5yOw0KPiA+ICsgICAgICAg ICAgICBWQUFsZkRhdGFWVkMgYWxmX3BhcmFtID0gew0KPiA+ICsgICAgICAgICAgICAgICAgLmFw c19hZGFwdGF0aW9uX3BhcmFtZXRlcl9zZXRfaWQgPSBpLA0KPiA+ICsgICAgICAgICAgICAgICAg LmFsZl9sdW1hX251bV9maWx0ZXJzX3NpZ25hbGxlZF9taW51czEgPSBhbGYtDQo+ID4gPmFsZl9s dW1hX251bV9maWx0ZXJzX3NpZ25hbGxlZF9taW51czEsDQo+ID4gKyAgICAgICAgICAgICAgICAu YWxmX2Nocm9tYV9udW1fYWx0X2ZpbHRlcnNfbWludXMxICAgICA9IGFsZi0NCj4gPiA+YWxmX2No cm9tYV9udW1fYWx0X2ZpbHRlcnNfbWludXMxLA0KPiA+ICsgICAgICAgICAgICAgICAgLmFsZl9j Y19jYl9maWx0ZXJzX3NpZ25hbGxlZF9taW51czEgICAgPSBhbGYtDQo+ID4gPmFsZl9jY19jYl9m aWx0ZXJzX3NpZ25hbGxlZF9taW51czEsDQo+ID4gKyAgICAgICAgICAgICAgICAuYWxmX2NjX2Ny X2ZpbHRlcnNfc2lnbmFsbGVkX21pbnVzMSAgICA9IGFsZi0NCj4gPiA+YWxmX2NjX2NyX2ZpbHRl cnNfc2lnbmFsbGVkX21pbnVzMSwNCj4gPiArICAgICAgICAgICAgICAgIC5hbGZfZmxhZ3MuYml0 cyA9IHsNCj4gPiArICAgICAgICAgICAgICAgICAgICAuYWxmX2x1bWFfZmlsdGVyX3NpZ25hbF9m bGFnICAgPSBhbGYtDQo+ID4gPmFsZl9sdW1hX2ZpbHRlcl9zaWduYWxfZmxhZywNCj4gPiArICAg ICAgICAgICAgICAgICAgICAuYWxmX2Nocm9tYV9maWx0ZXJfc2lnbmFsX2ZsYWcgPSBhbGYtDQo+ ID4gPmFsZl9jaHJvbWFfZmlsdGVyX3NpZ25hbF9mbGFnLA0KPiA+ICsgICAgICAgICAgICAgICAg ICAgIC5hbGZfY2NfY2JfZmlsdGVyX3NpZ25hbF9mbGFnICA9IGFsZi0NCj4gPiA+YWxmX2NjX2Ni X2ZpbHRlcl9zaWduYWxfZmxhZywNCj4gPiArICAgICAgICAgICAgICAgICAgICAuYWxmX2NjX2Ny X2ZpbHRlcl9zaWduYWxfZmxhZyAgPSBhbGYtDQo+ID4gPmFsZl9jY19jcl9maWx0ZXJfc2lnbmFs X2ZsYWcsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgLmFsZl9sdW1hX2NsaXBfZmxhZyAgICAg ICAgICAgID0gYWxmLQ0KPiA+ID5hbGZfbHVtYV9jbGlwX2ZsYWcsDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgLmFsZl9jaHJvbWFfY2xpcF9mbGFnICAgICAgICAgID0gYWxmLQ0KPiA+ID5hbGZf Y2hyb21hX2NsaXBfZmxhZywNCj4gPiArICAgICAgICAgICAgICAgIH0NCj4gPiArICAgICAgICAg ICAgfTsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCAyNTsgaisrKQ0K PiA+ICsgICAgICAgICAgICAgICAgYWxmX3BhcmFtLmFsZl9sdW1hX2NvZWZmX2RlbHRhX2lkeFtq XSA9IGFsZi0NCj4gPiA+YWxmX2x1bWFfY29lZmZfZGVsdGFfaWR4W2pdOw0KPiA+ICsNCj4gPiAr ICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8IDI1OyBqKyspIHsNCj4gPiArICAgICAgICAgICAg ICAgIGZvciAoayA9IDA7IGsgPCAxMjsgaysrKSB7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAg YWxmX3BhcmFtLmZpbHRDb2VmZltqXVtrXSAgICAgICAgID0gYWxmLQ0KPiA+ID5hbGZfbHVtYV9j b2VmZl9hYnNbal1ba10gKiAoMSAtIDIgKiBhbGYtDQo+ID4gPmFsZl9sdW1hX2NvZWZmX3NpZ25b al1ba10pOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgIGFsZl9wYXJhbS5hbGZfbHVtYV9jbGlw X2lkeFtqXVtrXSA9IGFsZi0NCj4gPiA+YWxmX2x1bWFfY2xpcF9pZHhbal1ba107DQo+ID4gKyAg ICAgICAgICAgICAgICB9DQo+ID4gKyAgICAgICAgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgICAg ICAgIGZvciAoaiA9IDA7IGogPCA4OyBqKyspIHsNCj4gPiArICAgICAgICAgICAgICAgIGZvciAo ayA9IDA7IGsgPCA2OyBrKyspIHsNCj4gPiArICAgICAgICAgICAgICAgICAgICBhbGZfcGFyYW0u QWxmQ29lZmZDW2pdW2tdICAgICAgICAgICA9IGFsZi0NCj4gPiA+YWxmX2Nocm9tYV9jb2VmZl9h YnNbal1ba10gKiAoMSAtIDIgKiBhbGYtDQo+ID4gPmFsZl9jaHJvbWFfY29lZmZfc2lnbltqXVtr XSk7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgYWxmX3BhcmFtLmFsZl9jaHJvbWFfY2xpcF9p ZHhbal1ba10gPSBhbGYtDQo+ID4gPmFsZl9jaHJvbWFfY2xpcF9pZHhbal1ba107DQo+ID4gKyAg ICAgICAgICAgICAgICB9DQo+ID4gKyAgICAgICAgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgICAg ICAgIGZvciAoaiA9IDA7IGogPCA0OyBqKyspIHsNCj4gPiArICAgICAgICAgICAgICAgIGZvciAo ayA9IDA7IGsgPCA3OyBrKyspIHsNCj4gPiArICAgICAgICAgICAgICAgICAgICBpZiAoYWxmLT5h bGZfY2NfY2JfbWFwcGVkX2NvZWZmX2Fic1tqXVtrXSkNCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgYWxmX3BhcmFtLkNjQWxmQXBzQ29lZmZDYltqXVtrXSA9ICgxIC0gMiAqDQo+ID4gYWxm LT5hbGZfY2NfY2JfY29lZmZfc2lnbltqXVtrXSkgKiAoMSA8PCAoYWxmLQ0KPiA+ID5hbGZfY2Nf Y2JfbWFwcGVkX2NvZWZmX2Fic1tqXVtrXSAtIDEpKTsNCj4gPiArICAgICAgICAgICAgICAgICAg ICBpZiAoYWxmLT5hbGZfY2NfY3JfbWFwcGVkX2NvZWZmX2Fic1tqXVtrXSkNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgYWxmX3BhcmFtLkNjQWxmQXBzQ29lZmZDcltqXVtrXSA9ICgxIC0g MiAqDQo+ID4gYWxmLT5hbGZfY2NfY3JfY29lZmZfc2lnbltqXVtrXSkgKiAoMSA8PCAoYWxmLQ0K PiA+ID5hbGZfY2NfY3JfbWFwcGVkX2NvZWZmX2Fic1tqXVtrXSAtIDEpKTsNCj4gPiArICAgICAg ICAgICAgICAgIH0NCj4gPiArICAgICAgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgICAgICAg ZXJyID0gZmZfdmFhcGlfZGVjb2RlX21ha2VfcGFyYW1fYnVmZmVyKGF2Y3R4LCAmcGljLQ0KPiA+ ID5waWMsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIA0KPiA+IFZBQWxmQnVmZmVyVHlwZSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhbGZfcGFyYW0sDQo+ID4gc2l6ZW9mKFZB QWxmRGF0YVZWQykpOw0KPiA+ICsgICAgICAgICAgICBpZiAoZXJyIDwgMCkNCj4gPiArICAgICAg ICAgICAgICAgIGdvdG8gZmFpbDsNCj4gPiArICAgICAgICB9DQo+ID4gKyAgICB9DQo+ID4gKw0K PiA+ICsgICAgZm9yIChpID0gMDsgaSA8IFZWQ19NQVhfTE1DU19DT1VOVDsgaSsrKSB7DQo+ID4g KyAgICAgICAgY29uc3QgSDI2NlJhd0FQUyAqbG1jcyA9IGgtPnBzLmxtY3NfbGlzdFtpXTsNCj4g PiArICAgICAgICBpZiAobG1jcykgew0KPiA+ICsgICAgICAgICAgICBWQUxtY3NEYXRhVlZDIGxt Y3NfcGFyYW0gPSB7DQo+ID4gKyAgICAgICAgICAgICAgICAuYXBzX2FkYXB0YXRpb25fcGFyYW1l dGVyX3NldF9pZCA9IGksDQo+ID4gKyAgICAgICAgICAgICAgICAubG1jc19taW5fYmluX2lkeCAg ICAgICAgICAgICAgICA9IGxtY3MtDQo+ID4gPmxtY3NfbWluX2Jpbl9pZHgsDQo+ID4gKyAgICAg ICAgICAgICAgICAubG1jc19kZWx0YV9tYXhfYmluX2lkeCAgICAgICAgICA9IGxtY3MtDQo+ID4g PmxtY3NfZGVsdGFfbWF4X2Jpbl9pZHgsDQo+ID4gKyAgICAgICAgICAgICAgICAubG1jc0RlbHRh Q3JzICAgICAgICAgICAgICAgICAgICA9ICgxIC0gMiAqIGxtY3MtDQo+ID4gPmxtY3NfZGVsdGFf c2lnbl9jcnNfZmxhZykgKiBsbWNzLT5sbWNzX2RlbHRhX2Fic19jcnMsDQo+ID4gKyAgICAgICAg ICAgIH07DQo+ID4gKw0KPiA+ICsgICAgICAgICAgICBmb3IgKGogPSBsbWNzLT5sbWNzX21pbl9i aW5faWR4OyBqIDw9IDE1IC0gbG1jcy0NCj4gPiA+bG1jc19kZWx0YV9tYXhfYmluX2lkeDsgaisr KQ0KPiA+ICsgICAgICAgICAgICAgICAgbG1jc19wYXJhbS5sbWNzRGVsdGFDV1tqXSA9ICgxIC0g MiAqIGxtY3MtDQo+ID4gPmxtY3NfZGVsdGFfc2lnbl9jd19mbGFnW2pdKSAqIGxtY3MtPmxtY3Nf ZGVsdGFfYWJzX2N3W2pdOw0KPiA+ICsNCj4gPiArICAgICAgICAgICAgZXJyID0gZmZfdmFhcGlf ZGVjb2RlX21ha2VfcGFyYW1fYnVmZmVyKGF2Y3R4LCAmcGljLQ0KPiA+ID5waWMsDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KPiA+IFZB TG1jc0J1ZmZlclR5cGUsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAmbG1jc19wYXJhbSwNCj4gPiBzaXplb2YoVkFMbWNzRGF0YVZWQykp Ow0KPiA+ICsgICAgICAgICAgICBpZiAoZXJyIDwgMCkNCj4gPiArICAgICAgICAgICAgICAgIGdv dG8gZmFpbDsNCj4gPiArICAgICAgICB9DQo+ID4gKyAgICB9DQo+ID4gKw0KPiA+ICsgICAgZm9y IChpID0gMDsgaSA8IFZWQ19NQVhfU0xfQ09VTlQ7IGkrKykgew0KPiA+ICsgICAgICAgIGNvbnN0 IFZWQ1NjYWxpbmdMaXN0ICpzbCA9IGgtPnBzLnNjYWxpbmdfbGlzdFtpXTsNCj4gPiArICAgICAg ICBpZiAoc2wpIHsNCj4gPiArICAgICAgICAgICAgaW50IGw7DQo+ID4gKw0KPiA+ICsgICAgICAg ICAgICBWQVNjYWxpbmdMaXN0VlZDIHNsX3BhcmFtID0gew0KPiA+ICsgICAgICAgICAgICAgICAg LmFwc19hZGFwdGF0aW9uX3BhcmFtZXRlcl9zZXRfaWQgPSBpLA0KPiA+ICsgICAgICAgICAgICB9 Ow0KPiA+ICsNCj4gPiArICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8IDE0OyBqKyspDQo+ID4g KyAgICAgICAgICAgICAgICBzbF9wYXJhbS5TY2FsaW5nTWF0cml4RENSZWNbal0gPSBzbC0NCj4g PiA+c2NhbGluZ19tYXRyaXhfZGNfcmVjW2pdOw0KPiA+ICsNCj4gPiArICAgICAgICAgICAgZm9y IChqID0gMDsgaiA8IDI7IGorKykNCj4gPiArICAgICAgICAgICAgICAgIGZvciAoayA9IDA7IGsg PCAyOyBrKyspDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgZm9yIChsID0gMDsgbCA8IDI7IGwr KykNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgc2xfcGFyYW0uU2NhbGluZ01hdHJpeFJl YzJ4MltqXVtrXVtsXSA9DQo+ID4gc2wtPnNjYWxpbmdfbWF0cml4X3JlY1tqXVtsICogMiArIGtd Ow0KPiA+ICsNCj4gPiArICAgICAgICAgICAgZm9yIChqID0gMjsgaiA8IDg7IGorKykNCj4gPiAr ICAgICAgICAgICAgICAgIGZvciAoayA9IDA7IGsgPCA0OyBrKyspDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgZm9yIChsID0gMDsgbCA8IDQ7IGwrKykNCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgc2xfcGFyYW0uU2NhbGluZ01hdHJpeFJlYzR4NFtqIC0gMl1ba11bbF0NCj4gPiA9IHNs LT5zY2FsaW5nX21hdHJpeF9yZWNbal1bbCAqIDQgKyBrXTsNCj4gPiArDQo+ID4gKyAgICAgICAg ICAgIGZvciAoaiA9IDg7IGogPCAyODsgaisrKQ0KPiA+ICsgICAgICAgICAgICAgICAgZm9yIChr ID0gMDsgayA8IDg7IGsrKykNCj4gPiArICAgICAgICAgICAgICAgICAgICBmb3IgKGwgPSAwOyBs IDwgODsgbCsrKQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBzbF9wYXJhbS5TY2FsaW5n TWF0cml4UmVjOHg4W2ogLSA4XVtrXVtsXQ0KPiA+ID0gc2wtPnNjYWxpbmdfbWF0cml4X3JlY1tq XVtsICogOCArIGtdOw0KPiA+ICsNCj4gPiArICAgICAgICAgICAgZXJyID0gZmZfdmFhcGlfZGVj b2RlX21ha2VfcGFyYW1fYnVmZmVyKGF2Y3R4LCAmcGljLQ0KPiA+ID5waWMsDQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KPiA+IFZBSVFN YXRyaXhCdWZmZXJUeXBlLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJnNsX3BhcmFtLA0KPiA+IHNpemVvZihWQVNjYWxpbmdMaXN0VlZD KSk7DQo+ID4gKyAgICAgICAgICAgIGlmIChlcnIgPCAwKQ0KPiA+ICsgICAgICAgICAgICAgICAg Z290byBmYWlsOw0KPiA+ICsgICAgICAgIH0NCj4gPiArICAgIH0NCj4gPiArDQo+ID4gKyAgICBm b3IgKGkgPSAwOyBpIDw9IHBwcy0+cHBzX251bV9leHBfdGlsZV9jb2x1bW5zX21pbnVzMTsgaSsr KSB7DQo+ID4gKyAgICAgICAgdGlsZV9kaW0gPSBwcHMtPnBwc190aWxlX2NvbHVtbl93aWR0aF9t aW51czFbaV07DQo+ID4gKyAgICAgICAgZXJyID0gZmZfdmFhcGlfZGVjb2RlX21ha2VfcGFyYW1f YnVmZmVyKGF2Y3R4LCAmcGljLT5waWMsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFZBVGlsZUJ1ZmZlclR5cGUsDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ0aWxlX2RpbSwNCj4gPiBzaXpl b2YodGlsZV9kaW0pKTsNCj4gPiArICAgICAgICBpZiAoZXJyIDwgMCkNCj4gPiArICAgICAgICAg ICAgZ290byBmYWlsOw0KPiA+ICsgICAgfQ0KPiA+ICsNCj4gPiArICAgIGZvciAoaSA9IDA7IGkg PD0gcHBzLT5wcHNfbnVtX2V4cF90aWxlX3Jvd3NfbWludXMxOyBpKyspIHsNCj4gPiArICAgICAg ICB0aWxlX2RpbSA9IHBwcy0+cHBzX3RpbGVfcm93X2hlaWdodF9taW51czFbaV07DQo+ID4gKyAg ICAgICAgZXJyID0gZmZfdmFhcGlfZGVjb2RlX21ha2VfcGFyYW1fYnVmZmVyKGF2Y3R4LCAmcGlj LT5waWMsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFZBVGlsZUJ1ZmZlclR5cGUsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICZ0aWxlX2RpbSwNCj4gPiBzaXplb2YodGlsZV9kaW0pKTsNCj4g PiArICAgICAgICBpZiAoZXJyIDwgMCkNCj4gPiArICAgICAgICAgICAgZ290byBmYWlsOw0KPiA+ ICsgICAgfQ0KPiA+ICsNCj4gPiArICAgIGlmICghcHBzLT5wcHNfbm9fcGljX3BhcnRpdGlvbl9m bGFnICYmIHBwcy0NCj4gPiA+cHBzX3JlY3Rfc2xpY2VfZmxhZyAmJiAhcHBzLT5wcHNfc2luZ2xl X3NsaWNlX3Blcl9zdWJwaWNfZmxhZykgew0KPiA+ICsgICAgICAgIGZvciAoaSA9IDA7IGkgPD0g cHBzLT5wcHNfbnVtX3NsaWNlc19pbl9waWNfbWludXMxOyBpKyspIHsNCj4gPiArICAgICAgICAg ICAgZm9yIChqID0gMDsgaiA8IHBwcy0+cHBzX251bV9leHBfc2xpY2VzX2luX3RpbGVbaV07DQo+ ID4gaisrKSB7DQo+ID4gKyAgICAgICAgICAgICAgICBleHBfc2xpY2VfaGVpZ2h0X2luX2N0dXNb aSArIGpdID0gcHBzLQ0KPiA+ID5wcHNfZXhwX3NsaWNlX2hlaWdodF9pbl9jdHVzX21pbnVzMVtp XVtqXSArIDE7DQo+ID4gKyAgICAgICAgICAgIH0NCj4gPiArICAgICAgICB9DQo+ID4gKyAgICAg ICAgZm9yIChpID0gMDsgaSA8PSBwcHMtPnBwc19udW1fc2xpY2VzX2luX3BpY19taW51czE7IGkr Kykgew0KPiA+ICsgICAgICAgICAgICBWQVNsaWNlU3RydWN0VlZDIHNzX3BhcmFtID0gew0KPiA+ ICsgICAgICAgICAgICAgICAgLlNsaWNlVG9wTGVmdFRpbGVJZHggICAgICAgICAgICAgID0gcHBz LQ0KPiA+ID5zbGljZV90b3BfbGVmdF90aWxlX2lkeFtpXSwNCj4gPiArICAgICAgICAgICAgICAg IC5wcHNfc2xpY2Vfd2lkdGhfaW5fdGlsZXNfbWludXMxICA9IHBwcy0NCj4gPiA+cHBzX3NsaWNl X3dpZHRoX2luX3RpbGVzX21pbnVzMVtpXSwNCj4gPiArICAgICAgICAgICAgICAgIC5wcHNfc2xp Y2VfaGVpZ2h0X2luX3RpbGVzX21pbnVzMSA9IHBwcy0NCj4gPiA+cHBzX3NsaWNlX2hlaWdodF9p bl90aWxlc19taW51czFbaV0sDQo+ID4gKyAgICAgICAgICAgIH07DQo+ID4gKw0KPiA+ICsgICAg ICAgICAgICBpZiAocHBzLT5wcHNfc2xpY2Vfd2lkdGhfaW5fdGlsZXNfbWludXMxW2ldID4gMCB8 fA0KPiA+IHBwcy0+cHBzX3NsaWNlX2hlaWdodF9pbl90aWxlc19taW51czFbaV0gPiAwKQ0KPiA+ ICsgICAgICAgICAgICAgICAgc3NfcGFyYW0ucHBzX2V4cF9zbGljZV9oZWlnaHRfaW5fY3R1c19t aW51czEgPSAwOw0KPiA+ICsgICAgICAgICAgICBlbHNlIHsNCj4gPiArICAgICAgICAgICAgICAg IGlmIChwcHMtPm51bV9zbGljZXNfaW5fdGlsZVtpXSA9PSAxKQ0KPiA+ICsgICAgICAgICAgICAg ICAgICAgIHNzX3BhcmFtLnBwc19leHBfc2xpY2VfaGVpZ2h0X2luX2N0dXNfbWludXMxID0NCj4g PiBwcHMtPnJvd19oZWlnaHRfdmFsW3Bwcy0+c2xpY2VfdG9wX2xlZnRfdGlsZV9pZHhbaV0gLyBw cHMtDQo+ID4gPm51bV90aWxlX2NvbHVtbnNdIC0gMTsNCj4gPiArICAgICAgICAgICAgICAgIGVs c2UgaWYgKGV4cF9zbGljZV9oZWlnaHRfaW5fY3R1c1tpXSkNCj4gPiArICAgICAgICAgICAgICAg ICAgICBzc19wYXJhbS5wcHNfZXhwX3NsaWNlX2hlaWdodF9pbl9jdHVzX21pbnVzMSA9DQo+ID4g ZXhwX3NsaWNlX2hlaWdodF9pbl9jdHVzW2ldIC0gMTsNCj4gPiArICAgICAgICAgICAgICAgIGVs c2UNCj4gPiArICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsNCj4gPiArICAgICAgICAgICAg fQ0KPiA+ICsNCj4gPiArICAgICAgICAgICAgZXJyID0gZmZfdmFhcGlfZGVjb2RlX21ha2VfcGFy YW1fYnVmZmVyKGF2Y3R4LCAmcGljLQ0KPiA+ID5waWMsDQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KPiA+IFZBU2xpY2VTdHJ1Y3RCdWZm ZXJUeXBlLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJnNzX3BhcmFtLA0KPiA+IHNpemVvZihWQVNsaWNlU3RydWN0VlZDKSk7DQo+ID4g KyAgICAgICAgICAgIGlmIChlcnIgPCAwKQ0KPiA+ICsgICAgICAgICAgICAgICAgZ290byBmYWls Ow0KPiA+ICsgICAgICAgIH0NCj4gPiArICAgIH0NCj4gPiArDQo+ID4gKyAgICByZXR1cm4gMDsN Cj4gPiArDQo+ID4gK2ZhaWw6DQo+ID4gKyAgICBmZl92YWFwaV9kZWNvZGVfY2FuY2VsKGF2Y3R4 LCAmcGljLT5waWMpOw0KPiA+ICsgICAgcmV0dXJuIGVycjsNCj4gPiArfQ0KPiA+ICsNCj4gPiAr c3RhdGljIHVpbnQ4X3QgZ2V0X3JlZl9waWNfaW5kZXgoY29uc3QgVlZDQ29udGV4dCAqaCwgY29u c3QNCj4gPiBWVkNGcmFtZSAqZnJhbWUpDQo+ID4gK3sNCj4gPiArICAgIFZWQ0ZyYW1lQ29udGV4 dCAgICAgICAgICAgICAqZmMgPSAmaC0+ZmNzWyhoLT5uYl9mcmFtZXMgKyBoLQ0KPiA+ID5uYl9m Y3MpICUgaC0+bmJfZmNzXTsNCj4gPiArICAgIFZBQVBJRGVjb2RlUGljdHVyZVZWQyAgICAgICpw aWMgPSBmYy0+cmVmLQ0KPiA+ID5od2FjY2VsX3BpY3R1cmVfcHJpdmF0ZTsNCj4gPiArICAgIFZB UGljdHVyZVBhcmFtZXRlckJ1ZmZlclZWQyAqcHAgPSAoVkFQaWN0dXJlUGFyYW1ldGVyQnVmZmVy VlZDDQo+ID4gKikmcGljLT5waWNfcGFyYW07DQo+ID4gKyAgICB1aW50OF90IGk7DQo+ID4gKw0K PiA+ICsgICAgaWYgKCFmcmFtZSkNCj4gPiArICAgICAgICByZXR1cm4gMHhGRjsNCj4gPiArDQo+ ID4gKyAgICBmb3IgKGkgPSAwOyBpIDwgRkZfQVJSQVlfRUxFTVMocHAtPlJlZmVyZW5jZUZyYW1l cyk7IGkrKykgew0KPiA+ICsgICAgICAgIFZBU3VyZmFjZUlEIHBpZCA9IHBwLT5SZWZlcmVuY2VG cmFtZXNbaV0ucGljdHVyZV9pZDsNCj4gPiArICAgICAgICBpbnQgcG9jID0gcHAtPlJlZmVyZW5j ZUZyYW1lc1tpXS5waWNfb3JkZXJfY250Ow0KPiA+ICsgICAgICAgIGlmIChwaWQgIT0gVkFfSU5W QUxJRF9JRCAmJiBwaWQgPT0NCj4gPiBmZl92YWFwaV9nZXRfc3VyZmFjZV9pZChmcmFtZS0+ZnJh bWUpICYmIHBvYyA9PSBmcmFtZS0+cG9jKQ0KPiA+ICsgICAgICAgICAgICByZXR1cm4gaTsNCj4g PiArICAgIH0NCj4gPiArDQo+ID4gKyAgICByZXR1cm4gMHhGRjsNCj4gPiArfQ0KPiA+ICsNCj4g PiArc3RhdGljIGludCBnZXRfc2xpY2VfZGF0YV9vZmZzZXQoY29uc3QgdWludDhfdCAqYnVmZmVy LCB1aW50MzJfdA0KPiA+IHNpemUsIGNvbnN0IFNsaWNlQ29udGV4dCogc2MpDQo+ID4gK3sNCj4g PiArICAgIGNvbnN0IEgyNjZSYXdTbGljZSAqc2xpY2UgPSBzYy0+cmVmOw0KPiA+ICsgICAgaW50 IG51bV9pZGVudGljYWxfYnl0ZXMgICA9IHNsaWNlLT5kYXRhX3NpemUgPCAzMiA/IHNsaWNlLQ0K PiA+ID5kYXRhX3NpemUgOiAzMjsNCj4gPiArDQo+ID4gKyAgICBmb3IgKGludCBpID0gMDsgaSA8 IHNpemU7IGkrKykgew0KPiA+ICsgICAgICAgIGludCBza2lwX2J5dGVzID0gMDsNCj4gPiArICAg ICAgICBpZiAoaSA+PTIgJiYgYnVmZmVyW2ldID09IDB4MDMgJiYgIWJ1ZmZlcltpIC0gMV0gJiYN Cj4gPiAhYnVmZmVyW2kgLSAyXSkNCj4gPiArICAgICAgICAgICAgY29udGludWU7DQo+ID4gKw0K PiA+ICsgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbnVtX2lkZW50aWNhbF9ieXRlczsgaisr KSB7DQo+ID4gKyAgICAgICAgICAgIGlmIChpID49IDIgJiYgYnVmZmVyW2kgKyBqICsgc2tpcF9i eXRlc10gPT0gMHgwMyAmJg0KPiA+ICFidWZmZXJbaSArIGogKyBza2lwX2J5dGVzIC0gMV0gJiYg IWJ1ZmZlcltpICsgaiArIHNraXBfYnl0ZXMgLSAyXSkNCj4gPiArICAgICAgICAgICAgICAgIHNr aXBfYnl0ZXMrKzsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgIGlmIChidWZmZXJbaSArIGogKyBz a2lwX2J5dGVzXSAhPSBzbGljZS0+ZGF0YVtqXSkNCj4gPiArICAgICAgICAgICAgICAgIGJyZWFr Ow0KPiA+ICsNCj4gPiArICAgICAgICAgICAgaWYgKGogKyAxID09IG51bV9pZGVudGljYWxfYnl0 ZXMpDQo+ID4gKyAgICAgICAgICAgICAgICByZXR1cm4gaTsNCj4gPiArICAgICAgICB9DQo+ID4g KyAgICB9DQo+ID4gKw0KPiA+ICsgICAgcmV0dXJuIDA7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0 YXRpYyBpbnQgdmFhcGlfdnZjX2RlY29kZV9zbGljZShBVkNvZGVjQ29udGV4dCAqYXZjdHgsDQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqYnVm ZmVyLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICAg ICAgIHNpemUpDQo+ID4gK3sNCj4gPiArICAgIGNvbnN0IFZWQ0NvbnRleHQgICAgICAgICAgICAg ICAgICAgICpoID0gYXZjdHgtPnByaXZfZGF0YTsNCj4gPiArICAgIFZWQ0ZyYW1lQ29udGV4dCAg ICAgICAgICAgICAgICAgICAgKmZjID0gJmgtPmZjc1soaC0+bmJfZnJhbWVzIA0KPiA+ICsgaC0+ bmJfZmNzKSAlIGgtPm5iX2Zjc107DQo+ID4gKyAgICBjb25zdCBTbGljZUNvbnRleHQgICAgICAg ICAgICAgICAgICpzYyA9IGZjLT5zbGljZXNbZmMtDQo+ID4gPm5iX3NsaWNlc107DQo+ID4gKyAg ICBjb25zdCBIMjY2UmF3UFBTICAgICAgICAgICAgICAgICAgKnBwcyA9IGZjLT5wcy5wcHMtPnI7 DQo+ID4gKyAgICBjb25zdCBIMjY2UmF3UGljdHVyZUhlYWRlciAgICAgICAgICpwaCA9IGZjLT5w cy5waC5yOw0KPiA+ICsgICAgY29uc3QgSDI2NlJhd1NsaWNlSGVhZGVyICAgICAgICAgICAqc2gg PSBzYy0+c2gucjsNCj4gPiArICAgIFZBQVBJRGVjb2RlUGljdHVyZVZWQyAgICAgICAgICAgICAq cGljID0gZmMtPnJlZi0NCj4gPiA+aHdhY2NlbF9waWN0dXJlX3ByaXZhdGU7DQo+ID4gKyAgICBW QVNsaWNlUGFyYW1ldGVyQnVmZmVyVlZDICpzbGljZV9wYXJhbSA9ICZwaWMtPnNsaWNlX3BhcmFt Ow0KPiA+ICsgICAgaW50IG5iX2xpc3QsIGksIGVycjsNCj4gPiArDQo+ID4gKyAgICAqc2xpY2Vf cGFyYW0gPSAoVkFTbGljZVBhcmFtZXRlckJ1ZmZlclZWQykgew0KPiA+ICsgICAgICAgIC5zbGlj ZV9kYXRhX3NpemUgICAgICAgICAgICAgICAgID0gc2l6ZSwNCj4gPiArICAgICAgICAuc2xpY2Vf ZGF0YV9vZmZzZXQgICAgICAgICAgICAgICA9IDAsDQo+ID4gKyAgICAgICAgLnNsaWNlX2RhdGFf ZmxhZyAgICAgICAgICAgICAgICAgPSBWQV9TTElDRV9EQVRBX0ZMQUdfQUxMLA0KPiA+ICsgICAg ICAgIC5zbGljZV9kYXRhX2J5dGVfb2Zmc2V0ICAgICAgICAgID0NCj4gPiBnZXRfc2xpY2VfZGF0 YV9vZmZzZXQoYnVmZmVyLCBzaXplLCBzYyksDQo+ID4gKyAgICAgICAgLnNoX3N1YnBpY19pZCAg ICAgICAgICAgICAgICAgICAgPSBzaC0+c2hfc3VicGljX2lkLA0KPiA+ICsgICAgICAgIC5zaF9z bGljZV9hZGRyZXNzICAgICAgICAgICAgICAgID0gc2gtPnNoX3NsaWNlX2FkZHJlc3MsDQo+ID4g KyAgICAgICAgLnNoX251bV90aWxlc19pbl9zbGljZV9taW51czEgICAgPSBzaC0NCj4gPiA+c2hf bnVtX3RpbGVzX2luX3NsaWNlX21pbnVzMSwNCj4gPiArICAgICAgICAuc2hfc2xpY2VfdHlwZSAg ICAgICAgICAgICAgICAgICA9IHNoLT5zaF9zbGljZV90eXBlLA0KPiA+ICsgICAgICAgIC5zaF9u dW1fYWxmX2Fwc19pZHNfbHVtYSAgICAgICAgID0gc2gtDQo+ID4gPnNoX251bV9hbGZfYXBzX2lk c19sdW1hLA0KPiA+ICsgICAgICAgIC5zaF9hbGZfYXBzX2lkX2Nocm9tYSAgICAgICAgICAgID0g c2gtDQo+ID4gPnNoX2FsZl9hcHNfaWRfY2hyb21hLA0KPiA+ICsgICAgICAgIC5zaF9hbGZfY2Nf Y2JfYXBzX2lkICAgICAgICAgICAgID0gc2gtDQo+ID4gPnNoX2FsZl9jY19jYl9hcHNfaWQsDQo+ ID4gKyAgICAgICAgLnNoX2FsZl9jY19jcl9hcHNfaWQgICAgICAgICAgICAgPSBzaC0NCj4gPiA+ c2hfYWxmX2NjX2NyX2Fwc19pZCwNCj4gPiArICAgICAgICAuTnVtUmVmSWR4QWN0aXZlWzBdICAg ICAgICAgICAgICA9IHNoLQ0KPiA+ID5udW1fcmVmX2lkeF9hY3RpdmVbMF0sDQo+ID4gKyAgICAg ICAgLk51bVJlZklkeEFjdGl2ZVsxXSAgICAgICAgICAgICAgPSBzaC0NCj4gPiA+bnVtX3JlZl9p ZHhfYWN0aXZlWzFdLA0KPiA+ICsgICAgICAgIC5zaF9jb2xsb2NhdGVkX3JlZl9pZHggICAgICAg ICAgID0gc2gtDQo+ID4gPnNoX2NvbGxvY2F0ZWRfcmVmX2lkeCwNCj4gPiArICAgICAgICAuU2xp Y2VRcFkgICAgICAgICAgICAgICAgICAgICAgICA9IHBwcy0NCj4gPiA+cHBzX3FwX2RlbHRhX2lu Zm9faW5fcGhfZmxhZyA/DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAyNiArIHBwcy0NCj4gPiA+cHBzX2luaXRfcXBfbWludXMyNiArIHBoLT5waF9xcF9k ZWx0YSA6DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAy NiArIHBwcy0NCj4gPiA+cHBzX2luaXRfcXBfbWludXMyNiArIHNoLT5zaF9xcF9kZWx0YSwNCj4g PiArICAgICAgICAuc2hfY2JfcXBfb2Zmc2V0ICAgICAgICAgICAgICAgICA9IHNoLT5zaF9jYl9x cF9vZmZzZXQsDQo+ID4gKyAgICAgICAgLnNoX2NyX3FwX29mZnNldCAgICAgICAgICAgICAgICAg PSBzaC0+c2hfY3JfcXBfb2Zmc2V0LA0KPiA+ICsgICAgICAgIC5zaF9qb2ludF9jYmNyX3FwX29m ZnNldCAgICAgICAgID0gc2gtDQo+ID4gPnNoX2pvaW50X2NiY3JfcXBfb2Zmc2V0LA0KPiA+ICsg ICAgICAgIC5zaF9sdW1hX2JldGFfb2Zmc2V0X2RpdjIgICAgICAgID0gc2gtDQo+ID4gPnNoX2x1 bWFfYmV0YV9vZmZzZXRfZGl2MiwNCj4gPiArICAgICAgICAuc2hfbHVtYV90Y19vZmZzZXRfZGl2 MiAgICAgICAgICA9IHNoLQ0KPiA+ID5zaF9sdW1hX3RjX29mZnNldF9kaXYyLA0KPiA+ICsgICAg ICAgIC5zaF9jYl9iZXRhX29mZnNldF9kaXYyICAgICAgICAgID0gc2gtDQo+ID4gPnNoX2NiX2Jl dGFfb2Zmc2V0X2RpdjIsDQo+ID4gKyAgICAgICAgLnNoX2NiX3RjX29mZnNldF9kaXYyICAgICAg ICAgICAgPSBzaC0NCj4gPiA+c2hfY2JfdGNfb2Zmc2V0X2RpdjIsDQo+ID4gKyAgICAgICAgLnNo X2NyX2JldGFfb2Zmc2V0X2RpdjIgICAgICAgICAgPSBzaC0NCj4gPiA+c2hfY3JfYmV0YV9vZmZz ZXRfZGl2MiwNCj4gPiArICAgICAgICAuc2hfY3JfdGNfb2Zmc2V0X2RpdjIgICAgICAgICAgICA9 IHNoLQ0KPiA+ID5zaF9jcl90Y19vZmZzZXRfZGl2MiwNCj4gPiArICAgICAgICAuV1BJbmZvID0g ew0KPiA+ICsgICAgICAgICAgICAubHVtYV9sb2cyX3dlaWdodF9kZW5vbSAgICAgICAgID0gc2gt DQo+ID4gPnNoX3ByZWRfd2VpZ2h0X3RhYmxlLmx1bWFfbG9nMl93ZWlnaHRfZGVub20sDQo+ID4g KyAgICAgICAgICAgIC5kZWx0YV9jaHJvbWFfbG9nMl93ZWlnaHRfZGVub20gPSBzaC0NCj4gPiA+ c2hfcHJlZF93ZWlnaHRfdGFibGUuZGVsdGFfY2hyb21hX2xvZzJfd2VpZ2h0X2Rlbm9tLA0KPiA+ ICsgICAgICAgICAgICAubnVtX2wwX3dlaWdodHMgICAgICAgICAgICAgICAgID0gc2gtDQo+ID4g PnNoX3ByZWRfd2VpZ2h0X3RhYmxlLm51bV9sMF93ZWlnaHRzLA0KPiA+ICsgICAgICAgICAgICAu bnVtX2wxX3dlaWdodHMgICAgICAgICAgICAgICAgID0gc2gtDQo+ID4gPnNoX3ByZWRfd2VpZ2h0 X3RhYmxlLm51bV9sMV93ZWlnaHRzLA0KPiA+ICsgICAgICAgIH0sDQo+ID4gKyAgICAgICAgLnNo X2ZsYWdzLmJpdHMgPSB7DQo+ID4gKyAgICAgICAgICAgIC5zaF9hbGZfZW5hYmxlZF9mbGFnICAg ICAgICAgICAgICAgICA9IHNoLQ0KPiA+ID5zaF9hbGZfZW5hYmxlZF9mbGFnLA0KPiA+ICsgICAg ICAgICAgICAuc2hfYWxmX2NiX2VuYWJsZWRfZmxhZyAgICAgICAgICAgICAgPSBzaC0NCj4gPiA+ c2hfYWxmX2NiX2VuYWJsZWRfZmxhZywNCj4gPiArICAgICAgICAgICAgLnNoX2FsZl9jcl9lbmFi bGVkX2ZsYWcgICAgICAgICAgICAgID0gc2gtDQo+ID4gPnNoX2FsZl9jcl9lbmFibGVkX2ZsYWcs DQo+ID4gKyAgICAgICAgICAgIC5zaF9hbGZfY2NfY2JfZW5hYmxlZF9mbGFnICAgICAgICAgICA9 IHNoLQ0KPiA+ID5zaF9hbGZfY2NfY2JfZW5hYmxlZF9mbGFnLA0KPiA+ICsgICAgICAgICAgICAu c2hfYWxmX2NjX2NyX2VuYWJsZWRfZmxhZyAgICAgICAgICAgPSBzaC0NCj4gPiA+c2hfYWxmX2Nj X2NyX2VuYWJsZWRfZmxhZywNCj4gPiArICAgICAgICAgICAgLnNoX2xtY3NfdXNlZF9mbGFnICAg ICAgICAgICAgICAgICAgID0gc2gtDQo+ID4gPnNoX2xtY3NfdXNlZF9mbGFnLA0KPiA+ICsgICAg ICAgICAgICAuc2hfZXhwbGljaXRfc2NhbGluZ19saXN0X3VzZWRfZmxhZyAgPSBzaC0NCj4gPiA+ c2hfZXhwbGljaXRfc2NhbGluZ19saXN0X3VzZWRfZmxhZywNCj4gPiArICAgICAgICAgICAgLnNo X2NhYmFjX2luaXRfZmxhZyAgICAgICAgICAgICAgICAgID0gc2gtDQo+ID4gPnNoX2NhYmFjX2lu aXRfZmxhZywNCj4gPiArICAgICAgICAgICAgLnNoX2NvbGxvY2F0ZWRfZnJvbV9sMF9mbGFnICAg ICAgICAgID0gc2gtDQo+ID4gPnNoX2NvbGxvY2F0ZWRfZnJvbV9sMF9mbGFnLA0KPiA+ICsgICAg ICAgICAgICAuc2hfY3VfY2hyb21hX3FwX29mZnNldF9lbmFibGVkX2ZsYWcgPSBzaC0NCj4gPiA+ c2hfY3VfY2hyb21hX3FwX29mZnNldF9lbmFibGVkX2ZsYWcsDQo+ID4gKyAgICAgICAgICAgIC5z aF9zYW9fbHVtYV91c2VkX2ZsYWcgICAgICAgICAgICAgICA9IHNoLQ0KPiA+ID5zaF9zYW9fbHVt YV91c2VkX2ZsYWcsDQo+ID4gKyAgICAgICAgICAgIC5zaF9zYW9fY2hyb21hX3VzZWRfZmxhZyAg ICAgICAgICAgICA9IHNoLQ0KPiA+ID5zaF9zYW9fY2hyb21hX3VzZWRfZmxhZywNCj4gPiArICAg ICAgICAgICAgLnNoX2RlYmxvY2tpbmdfZmlsdGVyX2Rpc2FibGVkX2ZsYWcgID0gc2gtDQo+ID4g PnNoX2RlYmxvY2tpbmdfZmlsdGVyX2Rpc2FibGVkX2ZsYWcsDQo+ID4gKyAgICAgICAgICAgIC5z aF9kZXBfcXVhbnRfdXNlZF9mbGFnICAgICAgICAgICAgICA9IHNoLQ0KPiA+ID5zaF9kZXBfcXVh bnRfdXNlZF9mbGFnLA0KPiA+ICsgICAgICAgICAgICAuc2hfc2lnbl9kYXRhX2hpZGluZ191c2Vk X2ZsYWcgICAgICAgPSBzaC0NCj4gPiA+c2hfc2lnbl9kYXRhX2hpZGluZ191c2VkX2ZsYWcsDQo+ ID4gKyAgICAgICAgICAgIC5zaF90c19yZXNpZHVhbF9jb2RpbmdfZGlzYWJsZWRfZmxhZyA9IHNo LQ0KPiA+ID5zaF90c19yZXNpZHVhbF9jb2RpbmdfZGlzYWJsZWRfZmxhZywNCj4gPiArICAgICAg ICB9LA0KPiA+ICsgICAgfTsNCj4gPiArDQo+ID4gKyAgICBtZW1zZXQoJnNsaWNlX3BhcmFtLT5S ZWZQaWNMaXN0LCAweEZGLCBzaXplb2Yoc2xpY2VfcGFyYW0tDQo+ID4gPlJlZlBpY0xpc3QpKTsN Cj4gPiArDQo+ID4gKyAgICBuYl9saXN0ID0gKHNoLT5zaF9zbGljZV90eXBlID09IFZWQ19TTElD RV9UWVBFX0IpID8NCj4gPiArICAgICAgICAgICAgICAyIDogKHNoLT5zaF9zbGljZV90eXBlID09 IFZWQ19TTElDRV9UWVBFX0kgPyAwIDogMSk7DQo+ID4gKyAgICBmb3IgKGludCBsaXN0X2lkeCA9 IDA7IGxpc3RfaWR4IDwgbmJfbGlzdDsgbGlzdF9pZHgrKykgew0KPiA+ICsgICAgICAgIFJlZlBp Y0xpc3QgKnJwbCA9ICZzYy0+cnBsW2xpc3RfaWR4XTsNCj4gPiArDQo+ID4gKyAgICAgICAgZm9y IChpID0gMDsgaSA8IHJwbC0+bmJfcmVmczsgaSsrKQ0KPiA+ICsgICAgICAgICAgICBzbGljZV9w YXJhbS0+UmVmUGljTGlzdFtsaXN0X2lkeF1baV0gPQ0KPiA+IGdldF9yZWZfcGljX2luZGV4KGgs IHJwbC0+cmVmW2ldKTsNCj4gPiArICAgIH0NCj4gPiArDQo+ID4gKyAgICBmb3IgKGkgPSAwOyBp IDwgNzsgaSsrKQ0KPiA+ICsgICAgICAgIHNsaWNlX3BhcmFtLT5zaF9hbGZfYXBzX2lkX2x1bWFb aV0gPSBzaC0NCj4gPiA+c2hfYWxmX2Fwc19pZF9sdW1hW2ldOw0KPiA+ICsNCj4gPiArICAgIGZv ciAoaSA9IDA7IGkgPCAxNTsgaSsrKSB7DQo+ID4gKyAgICAgICAgc2xpY2VfcGFyYW0tPldQSW5m by5sdW1hX3dlaWdodF9sMF9mbGFnW2ldICAgPSBzaC0NCj4gPiA+c2hfcHJlZF93ZWlnaHRfdGFi bGUubHVtYV93ZWlnaHRfbDBfZmxhZ1tpXTsNCj4gPiArICAgICAgICBzbGljZV9wYXJhbS0+V1BJ bmZvLmNocm9tYV93ZWlnaHRfbDBfZmxhZ1tpXSA9IHNoLQ0KPiA+ID5zaF9wcmVkX3dlaWdodF90 YWJsZS5jaHJvbWFfd2VpZ2h0X2wwX2ZsYWdbaV07DQo+ID4gKyAgICAgICAgc2xpY2VfcGFyYW0t PldQSW5mby5kZWx0YV9sdW1hX3dlaWdodF9sMFtpXSAgPSBzaC0NCj4gPiA+c2hfcHJlZF93ZWln aHRfdGFibGUuZGVsdGFfbHVtYV93ZWlnaHRfbDBbaV07DQo+ID4gKyAgICAgICAgc2xpY2VfcGFy YW0tPldQSW5mby5sdW1hX29mZnNldF9sMFtpXSAgICAgICAgPSBzaC0NCj4gPiA+c2hfcHJlZF93 ZWlnaHRfdGFibGUubHVtYV9vZmZzZXRfbDBbaV07DQo+ID4gKyAgICAgICAgc2xpY2VfcGFyYW0t PldQSW5mby5sdW1hX3dlaWdodF9sMV9mbGFnW2ldICAgPSBzaC0NCj4gPiA+c2hfcHJlZF93ZWln aHRfdGFibGUubHVtYV93ZWlnaHRfbDFfZmxhZ1tpXTsNCj4gPiArICAgICAgICBzbGljZV9wYXJh bS0+V1BJbmZvLmNocm9tYV93ZWlnaHRfbDFfZmxhZ1tpXSA9IHNoLQ0KPiA+ID5zaF9wcmVkX3dl aWdodF90YWJsZS5jaHJvbWFfd2VpZ2h0X2wxX2ZsYWdbaV07DQo+ID4gKyAgICAgICAgc2xpY2Vf cGFyYW0tPldQSW5mby5kZWx0YV9sdW1hX3dlaWdodF9sMVtpXSAgPSBzaC0NCj4gPiA+c2hfcHJl ZF93ZWlnaHRfdGFibGUuZGVsdGFfbHVtYV93ZWlnaHRfbDFbaV07DQo+ID4gKyAgICAgICAgc2xp Y2VfcGFyYW0tPldQSW5mby5sdW1hX29mZnNldF9sMVtpXSAgICAgICAgPSBzaC0NCj4gPiA+c2hf cHJlZF93ZWlnaHRfdGFibGUubHVtYV9vZmZzZXRfbDFbaV07DQo+ID4gKyAgICB9DQo+ID4gKw0K PiA+ICsgICAgZm9yIChpID0gMDsgaSA8IDE1OyBpKyspIHsNCj4gPiArICAgICAgICBmb3IgKGlu dCBqID0gMDsgaiA8IDI7IGorKykgew0KPiA+ICsgICAgICAgICAgICBzbGljZV9wYXJhbS0+V1BJ bmZvLmRlbHRhX2Nocm9tYV93ZWlnaHRfbDBbaV1bal0gPSBzaC0NCj4gPiA+c2hfcHJlZF93ZWln aHRfdGFibGUuZGVsdGFfY2hyb21hX3dlaWdodF9sMFtpXVtqXTsNCj4gPiArICAgICAgICAgICAg c2xpY2VfcGFyYW0tPldQSW5mby5kZWx0YV9jaHJvbWFfb2Zmc2V0X2wwW2ldW2pdID0gc2gtDQo+ ID4gPnNoX3ByZWRfd2VpZ2h0X3RhYmxlLmRlbHRhX2Nocm9tYV9vZmZzZXRfbDBbaV1bal07DQo+ ID4gKyAgICAgICAgICAgIHNsaWNlX3BhcmFtLT5XUEluZm8uZGVsdGFfY2hyb21hX3dlaWdodF9s MVtpXVtqXSA9IHNoLQ0KPiA+ID5zaF9wcmVkX3dlaWdodF90YWJsZS5kZWx0YV9jaHJvbWFfd2Vp Z2h0X2wxW2ldW2pdOw0KPiA+ICsgICAgICAgICAgICBzbGljZV9wYXJhbS0+V1BJbmZvLmRlbHRh X2Nocm9tYV9vZmZzZXRfbDFbaV1bal0gPSBzaC0NCj4gPiA+c2hfcHJlZF93ZWlnaHRfdGFibGUu ZGVsdGFfY2hyb21hX29mZnNldF9sMVtpXVtqXTsNCj4gPiArICAgICAgICB9DQo+ID4gKyAgICB9 DQo+ID4gKw0KPiA+ICsgICAgZXJyID0gZmZfdmFhcGlfZGVjb2RlX21ha2Vfc2xpY2VfYnVmZmVy KGF2Y3R4LCAmcGljLT5waWMsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJnBpYy0+c2xpY2VfcGFyYW0sDQo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICANCj4gPiBzaXplb2YoVkFTbGljZVBhcmFtZXRlckJ1ZmZl clZWQyksDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YnVmZmVyLCBzaXplKTsNCj4gPiArICAgIGlmIChlcnIpIHsNCj4gPiArICAgICAgICBmZl92YWFw aV9kZWNvZGVfY2FuY2VsKGF2Y3R4LCAmcGljLT5waWMpOw0KPiA+ICsgICAgICAgIHJldHVybiBl cnI7DQo+ID4gKyAgICB9DQo+ID4gKw0KPiA+ICsgICAgcmV0dXJuIDA7DQo+ID4gK30NCj4gPiAr DQo+ID4gK3N0YXRpYyBpbnQgdmFhcGlfdnZjX2VuZF9mcmFtZShBVkNvZGVjQ29udGV4dCAqYXZj dHgpDQo+ID4gK3sNCj4gPiArDQo+ID4gKyAgICBjb25zdCBWVkNDb250ZXh0ICAgICAgICAqaCA9 IGF2Y3R4LT5wcml2X2RhdGE7DQo+ID4gKyAgICBWVkNGcmFtZUNvbnRleHQgICAgICAgICpmYyA9 ICZoLT5mY3NbKGgtPm5iX2ZyYW1lcyArIGgtDQo+ID4gPm5iX2ZjcykgJSBoLT5uYl9mY3NdOw0K PiA+ICsgICAgVkFBUElEZWNvZGVQaWN0dXJlVlZDICpwaWMgPSBmYy0+cmVmLT5od2FjY2VsX3Bp Y3R1cmVfcHJpdmF0ZTsNCj4gPiArICAgIGludCByZXQ7DQo+ID4gKw0KPiA+ICsgICAgcmV0ID0g ZmZfdmFhcGlfZGVjb2RlX2lzc3VlKGF2Y3R4LCAmcGljLT5waWMpOw0KPiA+ICsgICAgaWYgKHJl dCA8IDApDQo+ID4gKyAgICAgICAgZ290byBmYWlsOw0KPiA+ICsNCj4gPiArICAgIHBpYy0+ZGVj b2RlX2lzc3VlZCA9IDE7DQo+ID4gKw0KPiA+ICsgICAgcmV0dXJuIDA7DQo+ID4gKw0KPiA+ICtm YWlsOg0KPiA+ICsgICAgZmZfdmFhcGlfZGVjb2RlX2NhbmNlbChhdmN0eCwgJnBpYy0+cGljKTsN Cj4gPiArICAgIHJldHVybiByZXQ7DQo+ID4gK30NCj4gPiArDQo+ID4gK2NvbnN0IEZGSFdBY2Nl bCBmZl92dmNfdmFhcGlfaHdhY2NlbCA9IHsNCj4gPiArICAgIC5wLm5hbWUgICAgICAgICAgICAg ICA9ICJ2dmNfdmFhcGkiLA0KPiA+ICsgICAgLnAudHlwZSAgICAgICAgICAgICAgID0gQVZNRURJ QV9UWVBFX1ZJREVPLA0KPiA+ICsgICAgLnAuaWQgICAgICAgICAgICAgICAgID0gQVZfQ09ERUNf SURfVlZDLA0KPiA+ICsgICAgLnAucGl4X2ZtdCAgICAgICAgICAgID0gQVZfUElYX0ZNVF9WQUFQ SSwNCj4gPiArICAgIC5zdGFydF9mcmFtZSAgICAgICAgICA9ICZ2YWFwaV92dmNfc3RhcnRfZnJh bWUsDQo+ID4gKyAgICAuZW5kX2ZyYW1lICAgICAgICAgICAgPSAmdmFhcGlfdnZjX2VuZF9mcmFt ZSwNCj4gPiArICAgIC5kZWNvZGVfc2xpY2UgICAgICAgICA9ICZ2YWFwaV92dmNfZGVjb2RlX3Ns aWNlLA0KPiA+ICsgICAgLmZyYW1lX3ByaXZfZGF0YV9zaXplID0gc2l6ZW9mKFZBQVBJRGVjb2Rl UGljdHVyZVZWQyksDQo+ID4gKyAgICAuaW5pdCAgICAgICAgICAgICAgICAgPSAmZmZfdmFhcGlf ZGVjb2RlX2luaXQsDQo+ID4gKyAgICAudW5pbml0ICAgICAgICAgICAgICAgPSAmZmZfdmFhcGlf ZGVjb2RlX3VuaW5pdCwNCj4gPiArICAgIC5mcmFtZV9wYXJhbXMgICAgICAgICA9ICZmZl92YWFw aV9jb21tb25fZnJhbWVfcGFyYW1zLA0KPiA+ICsgICAgLnByaXZfZGF0YV9zaXplICAgICAgID0g c2l6ZW9mKFZBQVBJRGVjb2RlQ29udGV4dCksDQo+ID4gKyAgICAuY2Fwc19pbnRlcm5hbCAgICAg ICAgPSBIV0FDQ0VMX0NBUF9BU1lOQ19TQUZFLA0KPiA+ICt9Ow0KPiA+IGRpZmYgLS1naXQgYS9s aWJhdmNvZGVjL3ZlcnNpb24uaCBiL2xpYmF2Y29kZWMvdmVyc2lvbi5oDQo+ID4gaW5kZXggMDY2 MzFmZmE4Yy4uN2FhOTVmYzNmMSAxMDA2NDQNCj4gPiAtLS0gYS9saWJhdmNvZGVjL3ZlcnNpb24u aA0KPiA+ICsrKyBiL2xpYmF2Y29kZWMvdmVyc2lvbi5oDQo+ID4gQEAgLTI5LDcgKzI5LDcgQEAN Cj4gPiANCj4gPiAgI2luY2x1ZGUgInZlcnNpb25fbWFqb3IuaCINCj4gPiANCj4gPiAtI2RlZmlu ZSBMSUJBVkNPREVDX1ZFUlNJT05fTUlOT1IgICA0DQo+ID4gKyNkZWZpbmUgTElCQVZDT0RFQ19W RVJTSU9OX01JTk9SICAgNQ0KPiA+ICAjZGVmaW5lIExJQkFWQ09ERUNfVkVSU0lPTl9NSUNSTyAx MDANCj4gPiANCj4gPiAgI2RlZmluZSBMSUJBVkNPREVDX1ZFUlNJT05fSU5UIA0KPiA+IEFWX1ZF UlNJT05fSU5UKExJQkFWQ09ERUNfVkVSU0lPTl9NQUpPUiwgXA0KPiA+IGRpZmYgLS1naXQgYS9s aWJhdmNvZGVjL3Z2Yy92dmNkZWMuYyBiL2xpYmF2Y29kZWMvdnZjL3Z2Y2RlYy5jDQo+ID4gaW5k ZXggZjJlMjY5Y2U3Ni4uYjIwNGEwYzczYSAxMDA2NDQNCj4gPiAtLS0gYS9saWJhdmNvZGVjL3Z2 Yy92dmNkZWMuYw0KPiA+ICsrKyBiL2xpYmF2Y29kZWMvdnZjL3Z2Y2RlYy5jDQo+ID4gQEAgLTI5 LDYgKzI5LDcgQEANCj4gPiAgI2luY2x1ZGUgImxpYmF2dXRpbC9jcHUuaCINCj4gPiAgI2luY2x1 ZGUgImxpYmF2dXRpbC90aHJlYWQuaCINCj4gPiANCj4gPiArI2luY2x1ZGUgImNvbmZpZ19jb21w b25lbnRzLmgiDQo+ID4gICNpbmNsdWRlICJ2dmNkZWMuaCINCj4gPiAgI2luY2x1ZGUgInZ2Y19j dHUuaCINCj4gPiAgI2luY2x1ZGUgInZ2Y19kYXRhLmgiDQo+ID4gQEAgLTcyNCwxNCArNzI1LDIw IEBAIHN0YXRpYyBpbnQgc2xpY2Vfc3RhcnQoU2xpY2VDb250ZXh0ICpzYywNCj4gPiBWVkNDb250 ZXh0ICpzLCBWVkNGcmFtZUNvbnRleHQgKmZjLA0KPiA+IA0KPiA+ICBzdGF0aWMgZW51bSBBVlBp eGVsRm9ybWF0IGdldF9mb3JtYXQoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LCBjb25zdA0KPiA+IFZW Q1NQUyAqc3BzKQ0KPiA+ICB7DQo+ID4gLSNkZWZpbmUgSFdBQ0NFTF9NQVggMA0KPiA+ICsjZGVm aW5lIEhXQUNDRUxfTUFYIENPTkZJR19WVkNfVkFBUElfSFdBQ0NFTA0KPiA+IA0KPiA+ICAgICAg ZW51bSBBVlBpeGVsRm9ybWF0IHBpeF9mbXRzW0hXQUNDRUxfTUFYICsgMl0sICpmbXQgPSBwaXhf Zm10czsNCj4gPiANCj4gPiAgICAgIHN3aXRjaCAoc3BzLT5waXhfZm10KSB7DQo+ID4gICAgICBj YXNlIEFWX1BJWF9GTVRfWVVWNDIwUDoNCj4gPiArI2lmIENPTkZJR19WVkNfVkFBUElfSFdBQ0NF TA0KPiA+ICsgICAgICAgICpmbXQrKyA9IEFWX1BJWF9GTVRfVkFBUEk7DQo+ID4gKyNlbmRpZg0K PiA+ICAgICAgICAgIGJyZWFrOw0KPiA+ICAgICAgY2FzZSBBVl9QSVhfRk1UX1lVVjQyMFAxMDoN Cj4gPiArI2lmIENPTkZJR19WVkNfVkFBUElfSFdBQ0NFTA0KPiA+ICsgICAgICAgICpmbXQrKyA9 IEFWX1BJWF9GTVRfVkFBUEk7DQo+ID4gKyNlbmRpZg0KPiA+ICAgICAgICAgIGJyZWFrOw0KPiA+ ICAgICAgfQ0KPiA+IA0KPiA+IEBAIC0xMTAwLDQgKzExMDcsMTAgQEAgY29uc3QgRkZDb2RlYyBm Zl92dmNfZGVjb2RlciA9IHsNCj4gPiAgICAgIC5jYXBzX2ludGVybmFsICA9IEZGX0NPREVDX0NB UF9FWFBPUlRTX0NST1BQSU5HIHwNCj4gPiBGRl9DT0RFQ19DQVBfSU5JVF9DTEVBTlVQIHwNCj4g PiAgICAgICAgICAgICAgICAgICAgICAgIEZGX0NPREVDX0NBUF9BVVRPX1RIUkVBRFMsDQo+ID4g ICAgICAucC5wcm9maWxlcyAgICAgPSBOVUxMX0lGX0NPTkZJR19TTUFMTChmZl92dmNfcHJvZmls ZXMpLA0KPiA+ICsgICAgLmh3X2NvbmZpZ3MgICAgID0gKGNvbnN0IEFWQ29kZWNIV0NvbmZpZ0lu dGVybmFsICpjb25zdCBbXSkgew0KPiA+ICsjaWYgQ09ORklHX1ZWQ19WQUFQSV9IV0FDQ0VMDQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgSFdBQ0NFTF9WQUFQSSh2dmMpLA0KPiA+ICsjZW5kaWYN Cj4gPiArICAgIE5VTEwNCj4gPiArICAgIH0sDQo+ID4gIH07DQpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZm bXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWls CmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmli ZSIuCg==