From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id F3203D2A532 for ; Thu, 4 Dec 2025 20:42:46 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 9CEF010E217; Thu, 4 Dec 2025 20:42:46 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="QZxFIk0H"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.13]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4904910E9C2 for ; Thu, 4 Dec 2025 20:42:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1764880965; x=1796416965; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=ocAp0kfIyKfgOxURDaqC7UzfnOPGHGxa56jZCZcwkVw=; b=QZxFIk0HkMHwEaxz8NfHx/lVN8AaEtkFM5omfLJR6OYn41pKNFdkheMb m/WYYsd23dJeDJV3lczcHFKbq65msX0c8/ed4jOSzbUf4dITlVOxKSugm YKt8cKw9g/s5+cfvVRBJruVEfB7KdGtwTe9n4CauCVpkZmoF5Yi39G9vM QwFHknMy0zjBzImJGIyTXRESjn4lV0ok+XQqRdW36fOyOQTVpGVJvrO0B oJ/S8x2/HyjesKfAKJuP8SlPh5KM/l1zRSeqlV2VNKP6yUNcmhFUGbRnj FY4ywI6S5GQVxNjLyAk5sXa3QzBW8rWe2yVHPGVZTc8rW+jz2VIbTlupe g==; X-CSE-ConnectionGUID: bvDoJ3pbT9eocymbEny7Eg== X-CSE-MsgGUID: ZUdyKA21STOAQ5KjGRM5Yw== X-IronPort-AV: E=McAfee;i="6800,10657,11632"; a="69509867" X-IronPort-AV: E=Sophos;i="6.20,250,1758610800"; d="scan'208";a="69509867" Received: from orviesa002.jf.intel.com ([10.64.159.142]) by fmvoesa107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Dec 2025 12:42:42 -0800 X-CSE-ConnectionGUID: B5LgigCGRNSxwrIKDF/tXw== X-CSE-MsgGUID: P6JAW2m7SVG6ENMqSJknLQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.20,250,1758610800"; d="scan'208";a="225748017" Received: from fmsmsx903.amr.corp.intel.com ([10.18.126.92]) by orviesa002.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Dec 2025 12:42:41 -0800 Received: from FMSMSX903.amr.corp.intel.com (10.18.126.92) by fmsmsx903.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29; Thu, 4 Dec 2025 12:42:41 -0800 Received: from fmsedg901.ED.cps.intel.com (10.1.192.143) by FMSMSX903.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29 via Frontend Transport; Thu, 4 Dec 2025 12:42:41 -0800 Received: from SA9PR02CU001.outbound.protection.outlook.com (40.93.196.55) by edgegateway.intel.com (192.55.55.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29; Thu, 4 Dec 2025 12:42:40 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=p+mph/KC/7hVAxTwYM0n+BGUkw24xvFXP27CYcoYCcRpeQ71Hbi6HaLfXCjWHFfoYiqkfhaey7gRAWWuEKcIw35F3xBP+TDBz12LwkkCac65BvSkillyi3ARO7TBhKBpvyCcoxUMXAfF02+mNtLmGfyHCOtkTWFHF++XMAWRl02nyUUEip6jgfqm3lQ/4TrjTcduxPUqQ/8gDKOkxu7M9qZ1jly4jLZTOlZm9FSorYA2rriXtvssCnyXI/yL5oY+1KPylnSKR3VoWEnX2S5nJZkQXqQlWf5i2Cu91Z6gTMYhGf+UXU3cCbQINTSsiAsyPqzxvdVoCCoKQig720/pJQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ocAp0kfIyKfgOxURDaqC7UzfnOPGHGxa56jZCZcwkVw=; b=erSwhyOWmzix762n0gN5fLVhieOf0QiUVf3dZgXvkrXmZauU5JCbJfGJgouIofeqnitZo3py+VcpMGMfTlw9jnfP+di0PbIf27ijOqr16WhM/DZG4fSTkHbeJVWUn+as6ocJWM3vsK87gFC+rbTl9bhpjIVxabJWUlljdkMzsB6v0hTLC3es9Vv2/Y+oaYRkkbbGf6JCq83uXzH3Symgu6+WQkY9VFBdO+zDl9rmsnD/TLX3QG/iEwoZHtOEjGSr31p/0a3om2e0ongJPnRA9yrgqBRl1IZ0IOlM/NMLqojaUGvaA3a5cW8uGkYROtSzaEwX+8VGopWYYCs4R32wpw== 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 DM8PR11MB5573.namprd11.prod.outlook.com (2603:10b6:8:3b::7) by SJ0PR11MB5166.namprd11.prod.outlook.com (2603:10b6:a03:2d8::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.11; Thu, 4 Dec 2025 20:42:38 +0000 Received: from DM8PR11MB5573.namprd11.prod.outlook.com ([fe80::6a14:6aa3:4339:4415]) by DM8PR11MB5573.namprd11.prod.outlook.com ([fe80::6a14:6aa3:4339:4415%4]) with mapi id 15.20.9366.012; Thu, 4 Dec 2025 20:42:38 +0000 From: "Summers, Stuart" To: "igt-dev@lists.freedesktop.org" , "Vishwanathapura, Niranjana" CC: "Ch, Sai Gowtham" , "Dandamudi, Priyanka" , "kamil.konieczny@linux.intel.com" Subject: Re: [PATCH v2 04/19] tests/intel/xe_exec_multi_queue: Validate exec submissions Thread-Topic: [PATCH v2 04/19] tests/intel/xe_exec_multi_queue: Validate exec submissions Thread-Index: AQHcWpsDLY05DdWR3kKveUBkeTa7nLUSB9UA Date: Thu, 4 Dec 2025 20:42:38 +0000 Message-ID: <0fba937668b0efa646718fa7b032dbd321c7d4e8.camel@intel.com> References: <20251121035715.767226-21-niranjana.vishwanathapura@intel.com> <20251121035715.767226-25-niranjana.vishwanathapura@intel.com> In-Reply-To: <20251121035715.767226-25-niranjana.vishwanathapura@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.44.4-0ubuntu2 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM8PR11MB5573:EE_|SJ0PR11MB5166:EE_ x-ms-office365-filtering-correlation-id: 08991c4d-a607-40c7-1066-08de3375a989 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|38070700021; x-microsoft-antispam-message-info: =?utf-8?B?ckRDRVZrdlNCbFBpYmE3ZHByaVpqakdydXk2TDZDN3hObTBjUjhxaHB6bE1K?= =?utf-8?B?MTdWL2UrbUdyejhhU1dvSlA4dzZBMXVwTXhNV2gyTHRTQms0UzBWRlN0cDBm?= =?utf-8?B?YXZ6dFprVi9DTkw3ZGhTMnRFSEtmZlB0TVphQmpaeTluK0xMRkFjdXpMWE9r?= =?utf-8?B?ekFuZkoxbGxyZEt5ZHlxUEVLVm5xVGVwVUFrS25IdkgxeFRSeDNsU2VmNTFo?= =?utf-8?B?SXozbEJMZ0ZmY0kwZGhQSXNMOTBxVVdzcm9rR0pOMkRvWDR6VjFzY3BOVDQ2?= =?utf-8?B?aWJZc2ptOVUvNk01TUd3T0tTNnhTaVoxMytzRmk0dzVHdHRvZzI2elBteFVl?= =?utf-8?B?OW5GZ1JCcTFJbno4L0QwdGQ3ZEI5SGIvRm5GQmlDQ3JiWERpeW43QzFnMkFS?= =?utf-8?B?UDVOdVNhaFFNeHJiSy9yL2NsSlBST1Z1Z0tWT3ZCcWI0RkZSbCt4SW05MXVx?= =?utf-8?B?Rlc2NTI1L0pxanZrdngyOW1QSVB4QWR1dlVRSWRRRWxXb2JrQXUwL2liZ3g5?= =?utf-8?B?WVY5NGtDdDhoMThWdzlweU1Ib2ZON2NpZURuSFdDNDFGZFRPbkRReEJkMUoy?= =?utf-8?B?TFRydCtFdmJtNTBmc0FyMXdoN2NBQi9DaGdETnZMeWYyVUQxcHNKcGZmNTFt?= =?utf-8?B?aTlyait0cFVKSkwydkJXcDU3VWh2M2xHSWlRaDgwSjBaVXJPWDdEaHNaSzdJ?= =?utf-8?B?VXc1c3U1dVZpckNIYjBYQUM4RUhzWkdyTEREMGVCaDN6YXByZWRXaU02b0hT?= =?utf-8?B?bERHekNCVUd5c1dLOXNrMm1QSUFEbHkwQ3lWNk1DMlNrOGliaXNzMVc2NEpw?= =?utf-8?B?M2VMT2dSRTliaEU1eVdoUVd3MWxncWVkWnQyNERwVzlFLzlRYXo1OW5nZVc4?= =?utf-8?B?UFN6emJmOVB6L3BTeDFVUnptNXFHVUxCWnlTRG81dUZPM3duT0t6WTcwT05k?= =?utf-8?B?d2V0UXZBd1BBVTBMQUovQWZCLzdJV3NxdklkVW9jamtiSGI3TTVsNXB2NGxw?= =?utf-8?B?dnhHQ1BlNEtuc2dyNHN3RXIxVlp5bnptUHdFbmF4YXdNQ2JaNUFTT3NxYWor?= =?utf-8?B?T3VtekI4WmhzNjg3cUE2REIrek5PSmZZWi9BY3ZKYjBoRFYxRWdKMU1UTTNk?= =?utf-8?B?NnNraXc2RUQ3RGRmbUYzaHdZbFBIR2hYL3RnR29sclA0VG5PUWFLbTJTdi9X?= =?utf-8?B?RXRTOUdLVWJPaDRISGFuTXJxK2xyUUxwV0NiVk9CYUFyOVhqYmRGT1dPUWdh?= =?utf-8?B?Ny9jWjVOS0NMTmVHczNJQVdPbkcvRlRZV2xiaHd4Qnl2STh6NFlKMlRSVVdn?= =?utf-8?B?cUF6Q0t6elg3SlRhS0E3bjBOWG5pcUpMOHNMdHVqVGtRTDB3bDVJZHhZNzdD?= =?utf-8?B?eWtScEJGUVhmaEc1VVdXYzZjeFFSZ1VJc09CQUJDMElOcTBBN2lmVThDeUJE?= =?utf-8?B?ZENyL0RGWEZIUU1VY2JvT0VBVWxRT2VjSENKeDJZYWxHc25kMWlXU040cHpu?= =?utf-8?B?OHE4RUh5Y1ZmeHdFY0FnSXlqNE1RS2dnYkhkZm9lSTRIS09QU0hlajRqV1lo?= =?utf-8?B?OHp0THJqTjZYTDRyWVZLcmpPY2VBQThIdGw4d0l6bWgvUGphZGF5U0crRGFs?= =?utf-8?B?Y3UxbEJwYWhGNXFoU2MwNUlybWgzVGgycHQvOWRqVVlueUJrRDRPaERFUGN5?= =?utf-8?B?bStNcHdCeDZ2cFRDUFdZUDRNVGc2NFRpNFBhbFJlN25vS000S0ZxNWQ5ODJ3?= =?utf-8?B?RkU4VURMb3gva3MxMjJ4T3hrejNzeVE1dUI0R2dLYlZnUzNTNUIrdjNaZlFz?= =?utf-8?B?blRoazIycGR5ZGxPTkVwaTZyQ0VXdlZWL2RXY3ZQYUR4dVVPRFd2dEVkQkhu?= =?utf-8?B?ekdiSWJxVDlVSi9GWTQ5TGJUdStEVGhaaXR1RlVYUW9ibmVYMDZiM0lDd1Bl?= =?utf-8?B?dlQvQS8zVzNPWEtZMFpRMUZpM3BxMVgyZ1dvSm5kQnBFcmlCR0Y2WTNpcTU0?= =?utf-8?B?eHkwWWVVajAvdkJBOFJWZlN4dURBVmd4NDh1VXAyWG9uWTFvaDFuMEJ2MWdC?= =?utf-8?Q?Yg9EqY?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM8PR11MB5573.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014)(38070700021); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bVllU3hSdSt6dm8xQWFDaDFHNkQ0VVNaOVcyQ2pkcWdXakNXc3lKRFZTclU0?= =?utf-8?B?SVUyeHRkZlQ2OW93ZGN0MHhJV1Z1U2owODh5d0FqSHFlc2ozTUl6YlRuRnNW?= =?utf-8?B?YlFtdEx5WmhiSjIwY1dFMGtDUWlUL090bzJMNU9NMFMzOExTMllIOVFCQzdJ?= =?utf-8?B?MEdpSHUvOWRkMWlFckJmNTlYREJvU0gwWFlxOXR4KzhOTVJQMTVDUmhqNkJu?= =?utf-8?B?ODUvaDVXaW1BcUpSWmZpUG1uNGNjdnU2K0pzU3hZL0kyc3B0QW01SXRXR0R4?= =?utf-8?B?b3BUL2Z6T3c0MEdubUF4NHJjZld3cEdUbUNiUmZ6dzVpeVlkdHRLRSs4RmJs?= =?utf-8?B?c25UNGdFVVhHYk1BMHVFUWNXdjUzVGFKelBsWHpJOVkwcHYzcjhOQTNQYm02?= =?utf-8?B?eFdUY3dDMVpwMUJBY08veGlNMWNQanh5NkxQdmJWY2tFUnBic3pYb0dGNEJj?= =?utf-8?B?R29LSkwxdnNlbjdlb2pDeEJhSTEvMWgzTG50VytoL0RLNno3QUlvK2E1UllL?= =?utf-8?B?cnlmTTUrSVlXbk9Sd1BVWk9ZTEZHQ3JmT0tqck8vU3NaRVVCTnN5bzdzNG93?= =?utf-8?B?RDBtdGNSWFNyaFhpOHd5NXUzaUsrRkxmY0hFOUh5NVp5Z1RsbEoxa05TNDYw?= =?utf-8?B?M09Td1Z4WDlkUW8wUWt4QkZqRzhNZmUxZndUM3haNEQ2V21DcDIyTjNSQTEz?= =?utf-8?B?OWcyL2xSQnI1aTZyNm5IMUUrc2M4cXhzVUJUdXpMVHdwNEI3YVlsN1crd0ky?= =?utf-8?B?bE9YaTdQUDgvV2x6SHp5aVk2NU1FZHpMVkZzeS9IV1dXRjdja1lmbm14cm5x?= =?utf-8?B?Q3c2MElwdmxydy9yQ0dwd2tJbk5QMFdNM2wzUkdpZk9UNk5WcnFiZ25xdkVr?= =?utf-8?B?cFV3ZkQyWG95Ymt4MGZNTi9pbjF1bkRpNlI4L1hiZVJlT1I1aVVkSi9rOVYx?= =?utf-8?B?a28zOTY3MXZvNnVNQTZnRFpDWklVbjZWaWZodkk0ZysxQkZwTGwyRm5PMC95?= =?utf-8?B?Mk9BVFFadjI2akFQcjViSDVyNThQdmJTOEFEc2svYUlmOFlKSk0rUU5vci9z?= =?utf-8?B?bVI4NlIwWWlZZ05hL3pqR0ZFQy9vZjdXWVZ5QWhVOTk0WlJhR2dSTWtxaisv?= =?utf-8?B?ZitmVnB6L3M2S29RNzI5S3RoYmZZUWp3QkVrUzFCMU10eHRnWVZXVDVqcDBo?= =?utf-8?B?M3ZOMVhPbThKTlZ4RHdnZjk1K0g1Wm92bmUxaFM2akswbk9QUjN3cGtqMGNR?= =?utf-8?B?THpOWDJMNjNqVzB5MEdSYndzM1ZsdnpDOWVVVlhPTE1VbWd0NlM3bC8yTExn?= =?utf-8?B?UCtrZUs1R1lxaE90U3UySFU0RERwdkI0bGx2SHdSYysrTldoTnEraGZQd1o0?= =?utf-8?B?NlF4ejJqSlFOSGJNdzFlaiswa2VFWUdNd0g3aUpHeE5mZUtTbitTTTI0QXNV?= =?utf-8?B?Q214QnBUdXJRUFNGRXArbW02cWtlUVpEUHQ0c1NvSkY2WEtuS05tSlIzWEwx?= =?utf-8?B?bGlVdGZVVGJrSTkvMW9DNGRRTDlxZktHTjY5QTZsZ09BTXQ3ZUhqQ3l2WHpi?= =?utf-8?B?TUd5OFFmbk1GNGJsRGZ6WWN0WlFiMWVmQytRaEdhazZMWFhFVmM0YmVBOGg3?= =?utf-8?B?NEFjQ24wc2lMcE9PU1pORFhSbGV0YlV4Nnd3bEtJMUN3YW9MNlZCQzZHd3dK?= =?utf-8?B?NEdENEttWFVhcWtYejJtTG9jV2NodFcyNjdZZ0tBTnJMLzRENy9wcWNiUkNh?= =?utf-8?B?UmY4ZmlhemN1bEVabHpxYmpiWnVQTkszeVR1TmNRUktQNUZWbWVMQ2NPSCtQ?= =?utf-8?B?SW5aQUdld01KUDRlTlZicmFXS0dkWUluNzM5NmhZZWVCTWtqYTcvekZ2L2My?= =?utf-8?B?bHBySnpuS2Rac2FhSzZJa09SZExiamhzYTZXZVZ6dTdMNFVwZkt3UVhKUldx?= =?utf-8?B?R3RNUFRLeDJDYjNDSURpWEI2eDBleGhvMWkrWlZiYWlBQ3JkSXRITUt4OWN0?= =?utf-8?B?R3V5MXl0U3BQZzJWTXB1WkpxVGRNVnBPZkZac3dBbDNrWXRPckloSUgrd3Zh?= =?utf-8?B?dmU5L2N3blpPR05qSGZhbzZWVWpBYjVidEZ1alNrcnpUdisyNXFXS1k0b3hD?= =?utf-8?B?L3Yxa3dTRStxWE45SkdyS3ZNdXI0a3BhSzBWYUxvOVFFK1dqaEZ1WkdicSto?= =?utf-8?B?M1E9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <05F96B846DB39441A6E2CC57E0B556B3@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM8PR11MB5573.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 08991c4d-a607-40c7-1066-08de3375a989 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Dec 2025 20:42:38.1291 (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: UxTIhVFr6A8cGqj2wN1pNenZdhrRbD7h1HUVo5/navdFgCCqRbjnpsaqtD//QNsoMif5/tqGhTyS4nI34tqn5aKwxrgYfUeWfPZQZTvw03g= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB5166 X-OriginatorOrg: intel.com X-BeenThere: igt-dev@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development mailing list for IGT GPU Tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" T24gVGh1LCAyMDI1LTExLTIwIGF0IDE5OjU3IC0wODAwLCBOaXJhbmphbmEgVmlzaHdhbmF0aGFw dXJhIHdyb3RlOgo+IFZhbGlkYXRlIG11bHRpIHF1ZXVlIGZlYXR1cmUgd2l0aCBkaWZmZXJlbnQg cXVldWUgZ3JvdXAgc2l6ZQo+IGFuZCB3aXRoIGV4ZWNidWYgc3VibWlzc2lvbnMuCj4gCj4gdjI6 IFVzZSBCQVNFX0FERFJFU1MgbWFjcm8gZm9yIGFkZHJlc3MgKFNhaSkKPiAKPiBTaWduZWQtb2Zm LWJ5OiBOaXJhbmphbmEgVmlzaHdhbmF0aGFwdXJhCj4gPG5pcmFuamFuYS52aXNod2FuYXRoYXB1 cmFAaW50ZWwuY29tPgoKUmV2aWV3ZWQtYnk6IFN0dWFydCBTdW1tZXJzIDxzdHVhcnQuc3VtbWVy c0BpbnRlbC5jb20+Cgo+IC0tLQo+IMKgdGVzdHMvaW50ZWwveGVfZXhlY19tdWx0aV9xdWV1ZS5j IHwgMTk5Cj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gwqAxIGZpbGUgY2hhbmdl ZCwgMTk5IGluc2VydGlvbnMoKykKPiAKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvaW50ZWwveGVfZXhl Y19tdWx0aV9xdWV1ZS5jCj4gYi90ZXN0cy9pbnRlbC94ZV9leGVjX211bHRpX3F1ZXVlLmMKPiBp bmRleCAwM2I5MjBkYzguLjk3N2I0ZTdhMCAxMDA2NDQKPiAtLS0gYS90ZXN0cy9pbnRlbC94ZV9l eGVjX211bHRpX3F1ZXVlLmMKPiArKysgYi90ZXN0cy9pbnRlbC94ZV9leGVjX211bHRpX3F1ZXVl LmMKPiBAQCAtMTMsMTYgKzEzLDIxIEBACj4gwqAKPiDCoCNpbmNsdWRlICJpZ3QuaCIKPiDCoCNp bmNsdWRlICJ4ZV9kcm0uaCIKPiArI2luY2x1ZGUgImxpYi9pZ3Rfc3luY29iai5oIgo+IMKgCj4g wqAjaW5jbHVkZSAieGUveGVfaW9jdGwuaCIKPiDCoCNpbmNsdWRlICJ4ZS94ZV9xdWVyeS5oIgo+ IMKgCj4gwqAjZGVmaW5lIE1BWF9OX0VYRUNfUVVFVUVTwqDCoMKgwqDCoMKgNjQKPiDCoAo+ICsj ZGVmaW5lIFVTRVJQVFLCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAoMHgxIDw8IDApCj4gKwo+IMKgI2RlZmluZSBNQVhfSU5TVEFOQ0UgOQo+IMKgCj4gwqAj ZGVmaW5lIFhFX01VTFRJX0dST1VQX1ZBTElEX0ZMQUdTwqDCoCAoRFJNX1hFX01VTFRJX0dST1VQ X0NSRUFURSkKPiDCoAo+ICsjZGVmaW5lIEJBU0VfQUREUkVTU8KgwqDCoDB4MWEwMDAwCj4gKwo+ IMKgc3RhdGljIHZvaWQKPiDCoF9fdGVzdF9zYW5pdHkoaW50IGZkLCBpbnQgZ3QsIGludCBjbGFz cykKPiDCoHsKPiBAQCAtMTQ0LDggKzE0OSwxNzUgQEAgdGVzdF9zYW5pdHkoaW50IGZkLCBpbnQg Z3QsIGludCBjbGFzcykKPiDCoMKgwqDCoMKgwqDCoMKgX190ZXN0X3Nhbml0eShmZCwgZ3QsIGNs YXNzKTsKPiDCoH0KPiDCoAo+ICtzdGF0aWMgdm9pZAo+ICt0ZXN0X2xlZ2FjeV9tb2RlKGludCBm ZCwgc3RydWN0IGRybV94ZV9lbmdpbmVfY2xhc3NfaW5zdGFuY2UgKmVjaSwKPiBpbnQgbnVtX3Bs YWNlbWVudCwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGludCBuX2V4ZWNfcXVl dWVzLCBpbnQgbl9leGVjcywgdW5zaWduZWQgaW50IGZsYWdzKQo+ICt7Cj4gK8KgwqDCoMKgwqDC oMKgc3RydWN0IGRybV94ZV9zeW5jIHN5bmNbMl0gPSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoHsgLmZsYWdzID0gRFJNX1hFX1NZTkNfVFlQRV9TWU5DT0JKIHwKPiBEUk1fWEVf U1lOQ19GTEFHX1NJR05BTCwgfSwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgeyAu ZmxhZ3MgPSBEUk1fWEVfU1lOQ19UWVBFX1NZTkNPQkogfAo+IERSTV9YRV9TWU5DX0ZMQUdfU0lH TkFMLCB9LAo+ICvCoMKgwqDCoMKgwqDCoH07Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCBk cm1feGVfZXhlYyBleGVjID0gewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAubnVt X2JhdGNoX2J1ZmZlciA9IDEsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5udW1f c3luY3MgPSAyLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAuc3luY3MgPSB0b191 c2VyX3BvaW50ZXIoc3luYyksCj4gK8KgwqDCoMKgwqDCoMKgfTsKPiArwqDCoMKgwqDCoMKgwqB1 aW50MzJfdCB2bTsKPiArwqDCoMKgwqDCoMKgwqB1aW50NjRfdCBhZGRyID0gQkFTRV9BRERSRVNT Owo+ICvCoMKgwqDCoMKgwqDCoHVpbnQzMl90IGV4ZWNfcXVldWVzW01BWF9OX0VYRUNfUVVFVUVT XTsKPiArwqDCoMKgwqDCoMKgwqB1aW50MzJfdCBzeW5jb2Jqc1tNQVhfTl9FWEVDX1FVRVVFU107 Cj4gK8KgwqDCoMKgwqDCoMKgdWludDMyX3QgYmluZF9zeW5jb2JqOwo+ICvCoMKgwqDCoMKgwqDC oHNpemVfdCBib19zaXplOwo+ICvCoMKgwqDCoMKgwqDCoHVpbnQzMl90IGJvID0gMDsKPiArwqDC oMKgwqDCoMKgwqBzdHJ1Y3Qgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB1aW50 MzJfdCBiYXRjaFsxNl07Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHVpbnQ2NF90 IHBhZDsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdWludDMyX3QgZGF0YTsKPiAr wqDCoMKgwqDCoMKgwqB9ICpkYXRhOwo+ICvCoMKgwqDCoMKgwqDCoGludCBpLCBiOwo+ICsKPiAr wqDCoMKgwqDCoMKgwqBpZ3RfYXNzZXJ0KG5fZXhlY19xdWV1ZXMgPD0gTUFYX05fRVhFQ19RVUVV RVMpOwo+ICvCoMKgwqDCoMKgwqDCoHZtID0geGVfdm1fY3JlYXRlKGZkLCAwLCAwKTsKPiArwqDC oMKgwqDCoMKgwqBib19zaXplID0geGVfYmJfc2l6ZShmZCwgc2l6ZW9mKCpkYXRhKSAqIG5fZXhl Y3MpOwo+ICsKPiArwqDCoMKgwqDCoMKgwqBpZiAoZmxhZ3MgJiBVU0VSUFRSKSB7Cj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRhdGEgPSBhbGlnbmVkX2FsbG9jKHhlX2dldF9kZWZh dWx0X2FsaWdubWVudChmZCksCj4gYm9fc2l6ZSk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoGlndF9hc3NlcnQoZGF0YSk7Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBtZW1zZXQoZGF0YSwgMCwgYm9fc2l6ZSk7Cj4gK8KgwqDCoMKgwqDCoMKgfSBlbHNlIHsK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYm8gPSB4ZV9ib19jcmVhdGUoZmQsIHZt LCBib19zaXplLAo+IHZyYW1faWZfcG9zc2libGUoZmQsIGVjaVswXS5ndF9pZCksCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAKPiBEUk1fWEVfR0VNX0NSRUFURV9GTEFHX05FRURTX1ZJU0lCTEVfVlJBTSk7Cj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRhdGEgPSB4ZV9ib19tYXAoZmQsIGJvLCBib19zaXpl KTsKPiArwqDCoMKgwqDCoMKgwqB9Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoGZvciAoaSA9IDA7IGkg PCBuX2V4ZWNfcXVldWVzOyBpKyspIHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg c3RydWN0IGRybV94ZV9leHRfc2V0X3Byb3BlcnR5IG11bHRpX3F1ZXVlID0gewo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLmJhc2UubmFtZSA9Cj4gRFJN X1hFX0VYRUNfUVVFVUVfRVhURU5TSU9OX1NFVF9QUk9QRVJUWSwKPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5wcm9wZXJ0eSA9Cj4gRFJNX1hFX0VYRUNf UVVFVUVfU0VUX1BST1BFUlRZX01VTFRJX0dST1VQLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqB9Owo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB1aW50NjRfdCBleHQg PSB0b191c2VyX3BvaW50ZXIoJm11bHRpX3F1ZXVlKTsKPiArCj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoG11bHRpX3F1ZXVlLnZhbHVlID0gaSA/IGV4ZWNfcXVldWVzWzBdIDoKPiBE Uk1fWEVfTVVMVElfR1JPVVBfQ1JFQVRFOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBpZ3RfYXNzZXJ0X2VxKF9feGVfZXhlY19xdWV1ZV9jcmVhdGUoZmQsIHZtLCAxLAo+IG51bV9w bGFjZW1lbnQsIGVjaSwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIGV4dCwKPiAmZXhlY19xdWV1ZXNbaV0pLCAwKTsKPiArCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoHN5bmNvYmpzW2ldID0gc3luY29ial9jcmVhdGUoZmQsIDApOwo+ICvC oMKgwqDCoMKgwqDCoH07Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoGJpbmRfc3luY29iaiA9IHN5bmNv YmpfY3JlYXRlKGZkLCAwKTsKPiArwqDCoMKgwqDCoMKgwqBzeW5jWzBdLmhhbmRsZSA9IGJpbmRf c3luY29iajsKPiArwqDCoMKgwqDCoMKgwqBpZiAoYm8pCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoHhlX3ZtX2JpbmRfYXN5bmMoZmQsIHZtLCAwLCBibywgMCwgYWRkciwgYm9fc2l6 ZSwKPiBzeW5jLCAxKTsKPiArwqDCoMKgwqDCoMKgwqBlbHNlCj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoHhlX3ZtX2JpbmRfdXNlcnB0cl9hc3luYyhmZCwgdm0sIDAsCj4gdG9fdXNl cl9wb2ludGVyKGRhdGEpLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYWRkciwgYm9fc2l6ZSwg c3luYywgMSk7Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoGZvciAoaSA9IDA7IGkgPCBuX2V4ZWNzOyBp KyspIHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdWludDY0X3QgYmF0Y2hfb2Zm c2V0ID0gKGNoYXIgKikmZGF0YVtpXS5iYXRjaCAtCj4gKGNoYXIgKilkYXRhOwo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB1aW50NjRfdCBiYXRjaF9hZGRyID0gYWRkciArIGJhdGNo X29mZnNldDsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdWludDY0X3Qgc2RpX29m ZnNldCA9IChjaGFyICopJmRhdGFbaV0uZGF0YSAtIChjaGFyCj4gKilkYXRhOwo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB1aW50NjRfdCBzZGlfYWRkciA9IGFkZHIgKyBzZGlfb2Zm c2V0Owo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpbnQgZSA9IGkgJSBuX2V4ZWNf cXVldWVzOwo+ICsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYiA9IDA7Cj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRhdGFbaV0uYmF0Y2hbYisrXSA9IE1JX1NUT1JF X0RXT1JEX0lNTV9HRU40Owo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkYXRhW2ld LmJhdGNoW2IrK10gPSBzZGlfYWRkcjsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg ZGF0YVtpXS5iYXRjaFtiKytdID0gc2RpX2FkZHIgPj4gMzI7Cj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoGRhdGFbaV0uYmF0Y2hbYisrXSA9IDB4YzBmZmVlOwo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBkYXRhW2ldLmJhdGNoW2IrK10gPSBNSV9CQVRDSF9CVUZGRVJf RU5EOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZ3RfYXNzZXJ0KGIgPD0gQVJS QVlfU0laRShkYXRhW2ldLmJhdGNoKSk7Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBzeW5jWzBdLmZsYWdzICY9IH5EUk1fWEVfU1lOQ19GTEFHX1NJR05BTDsKPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc3luY1swXS5oYW5kbGUgPSBiaW5kX3N5bmNvYmo7Cj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHN5bmNbMV0uZmxhZ3MgfD0gRFJNX1hFX1NZ TkNfRkxBR19TSUdOQUw7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHN5bmNbMV0u aGFuZGxlID0gc3luY29ianNbZV07Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBleGVjLmV4ZWNfcXVldWVfaWQgPSBleGVjX3F1ZXVlc1tlXTsKPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgZXhlYy5hZGRyZXNzID0gYmF0Y2hfYWRkcjsKPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgaWYgKGUgIT0gaSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoHN5bmNvYmpfcmVzZXQoZmQsICZzeW5jb2Jqc1tlXSwgMSk7 Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB4ZV9leGVjKGZkLCAmZXhlYyk7 Cj4gK8KgwqDCoMKgwqDCoMKgfQo+ICsKPiArwqDCoMKgwqDCoMKgwqBmb3IgKGkgPSAwOyBpIDwg bl9leGVjX3F1ZXVlcyAmJiBpIDwgbl9leGVjczsgaSsrKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBpZ3RfYXNzZXJ0KHN5bmNvYmpfd2FpdChmZCwgJnN5bmNvYmpzW2ldLCAxLAo+ IElOVDY0X01BWCwgMCwgTlVMTCkpOwo+ICsKPiArwqDCoMKgwqDCoMKgwqBpZ3RfYXNzZXJ0KHN5 bmNvYmpfd2FpdChmZCwgJmJpbmRfc3luY29iaiwgMSwgSU5UNjRfTUFYLCAwLAo+IE5VTEwpKTsK PiArwqDCoMKgwqDCoMKgwqBzeW5jWzBdLmZsYWdzIHw9IERSTV9YRV9TWU5DX0ZMQUdfU0lHTkFM Owo+ICvCoMKgwqDCoMKgwqDCoHN5bmNvYmpfcmVzZXQoZmQsICZzeW5jWzBdLmhhbmRsZSwgMSk7 Cj4gK8KgwqDCoMKgwqDCoMKgeGVfdm1fdW5iaW5kX2FzeW5jKGZkLCB2bSwgMCwgMCwgYWRkciwg Ym9fc2l6ZSwgc3luYywgMSk7Cj4gK8KgwqDCoMKgwqDCoMKgaWd0X2Fzc2VydChzeW5jb2JqX3dh aXQoZmQsICZzeW5jWzBdLmhhbmRsZSwgMSzCoElOVDY0X01BWCwgMCwKPiBOVUxMKSk7Cj4gKwo+ ICvCoMKgwqDCoMKgwqDCoGZvciAoaSA9IDA7IGkgPCBuX2V4ZWNzOyBpKyspCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlndF9hc3NlcnRfZXEoZGF0YVtpXS5kYXRhLCAweGMwZmZl ZSk7Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoGZvciAoaSA9IDA7IGkgPCBuX2V4ZWNfcXVldWVzOyBp KyspIHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc3luY29ial9kZXN0cm95KGZk LCBzeW5jb2Jqc1tpXSk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHhlX2V4ZWNf cXVldWVfZGVzdHJveShmZCwgZXhlY19xdWV1ZXNbaV0pOwo+ICvCoMKgwqDCoMKgwqDCoH0KPiAr Cj4gK8KgwqDCoMKgwqDCoMKgaWYgKGJvKSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoG11bm1hcChkYXRhLCBib19zaXplKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgZ2VtX2Nsb3NlKGZkLCBibyk7Cj4gK8KgwqDCoMKgwqDCoMKgfSBlbHNlIHsKPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZnJlZShkYXRhKTsKPiArwqDCoMKgwqDCoMKgwqB9Cj4g Kwo+ICvCoMKgwqDCoMKgwqDCoHN5bmNvYmpfZGVzdHJveShmZCwgYmluZF9zeW5jb2JqKTsKPiAr wqDCoMKgwqDCoMKgwqB4ZV92bV9kZXN0cm95KGZkLCB2bSk7Cj4gK30KPiArCj4gKy8qKgo+ICsg KiBTVUJURVNUOiBvbmUtcXVldWUtJXMKPiArICogRGVzY3JpcHRpb246IFJ1biAlYXJnWzFdIHRl c3Qgd2l0aCBvbmUgZXhlYyBxdWV1ZQo+ICsgKiBUZXN0IGNhdGVnb3J5OiBmdW5jdGlvbmFsaXR5 IHRlc3QKPiArICoKPiArICogU1VCVEVTVDogdHdvLXF1ZXVlcy0lcwo+ICsgKiBEZXNjcmlwdGlv bjogUnVuICVhcmdbMV0gdGVzdCB3aXRoIHR3byBleGVjIHF1ZXVlcwo+ICsgKiBUZXN0IGNhdGVn b3J5OiBmdW5jdGlvbmFsaXR5IHRlc3QKPiArICoKPiArICogU1VCVEVTVDogbWFueS1xdWV1ZXMt JXMKPiArICogRGVzY3JpcHRpb246IFJ1biAlYXJnWzFdIHRlc3Qgd2l0aCBtYW55IGV4ZWMgcXVl dWVzCj4gKyAqIFRlc3QgY2F0ZWdvcnk6IHN0cmVzcyB0ZXN0Cj4gKyAqCj4gKyAqIFNVQlRFU1Q6 IG1heC1xdWV1ZXMtJXMKPiArICogRGVzY3JpcHRpb246IFJ1biAlYXJnWzFdIHRlc3Qgd2l0aCBt YXggZXhlYyBxdWV1ZXMKPiArICogVGVzdCBjYXRlZ29yeTogc3RyZXNzIHRlc3QKPiArICoKPiAr ICogU1VCVEVTVDogbWFueS1leGVjcy0lcwo+ICsgKiBEZXNjcmlwdGlvbjogUnVuICVhcmdbMV0g dGVzdCB3aXRoIG1hbnkgZXhlYyBzdWJtaXNzaW9ucyBwZXIgZXhlYwo+IHF1ZXVlCj4gKyAqIFRl c3QgY2F0ZWdvcnk6IGZ1bmN0aW9uYWxpdHkgdGVzdAo+ICsgKgo+ICsgKiBTVUJURVNUOiBmZXct ZXhlY3MtJXMKPiArICogRGVzY3JpcHRpb246IFJ1biAlYXJnWzFdIHRlc3Qgd2l0aCBleGVjIHN1 Ym1pc3Npb25zIG9ubHkgb24gZmV3Cj4gZXhlYyBxdWV1ZXMKPiArICogVGVzdCBjYXRlZ29yeTog ZnVuY3Rpb25hbGl0eSB0ZXN0Cj4gKyAqCj4gKyAqIGFyZ1sxXToKPiArICoKPiArICogQGJhc2lj OsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgYmFzaWMKPiArICogQHVzZXJwdHI6wqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHVzZXJw dHIKPiArICovCj4gK3N0YXRpYyB2b2lkCj4gK3Rlc3RfZXhlYyhpbnQgZmQsIHN0cnVjdCBkcm1f eGVfZW5naW5lX2NsYXNzX2luc3RhbmNlICplY2ksIGludAo+IG51bV9wbGFjZW1lbnQsCj4gK8Kg wqDCoMKgwqDCoMKgwqAgaW50IG5fZXhlY19xdWV1ZXMsIGludCBuX2V4ZWNzLCB1bnNpZ25lZCBp bnQgZmxhZ3MpCj4gK3sKPiArwqDCoMKgwqDCoMKgwqB0ZXN0X2xlZ2FjeV9tb2RlKGZkLCBlY2ks IG51bV9wbGFjZW1lbnQsIG5fZXhlY19xdWV1ZXMsCj4gbl9leGVjcywgZmxhZ3MpOwo+ICt9Cj4g Kwo+IMKgaWd0X21haW4KPiDCoHsKPiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgZHJtX3hlX2VuZ2lu ZV9jbGFzc19pbnN0YW5jZSAqaHdlOwo+ICvCoMKgwqDCoMKgwqDCoGNvbnN0IHN0cnVjdCBzZWN0 aW9uIHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY29uc3QgY2hhciAqbmFtZTsK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdW5zaWduZWQgaW50IGZsYWdzOwo+ICvC oMKgwqDCoMKgwqDCoH0gc2VjdGlvbnNbXSA9IHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgeyAiYmFzaWMiLCAwIH0sCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHsg InVzZXJwdHIiLCBVU0VSUFRSIH0sCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHsg TlVMTCB9LAo+ICvCoMKgwqDCoMKgwqDCoH07Cj4gwqDCoMKgwqDCoMKgwqDCoGludCBmZCwgZ3Qs IGNsYXNzOwo+IMKgCj4gwqDCoMKgwqDCoMKgwqDCoGlndF9maXh0dXJlIHsKPiBAQCAtMTU4LDYg KzMzMCwzMyBAQCBpZ3RfbWFpbgo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoHhlX2Zvcl9lYWNoX211bHRpX3F1ZXVlX2VuZ2luZV9jbGFzcyhjbGFzcykK PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgdGVzdF9zYW5pdHkoZmQsIGd0LCBjbGFzcyk7Cj4gwqAKPiArwqDCoMKgwqDCoMKg wqBmb3IgKGNvbnN0IHN0cnVjdCBzZWN0aW9uICpzID0gc2VjdGlvbnM7IHMtPm5hbWU7IHMrKykg ewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZ3Rfc3VidGVzdF9mKCJvbmUtcXVl dWUtJXMiLCBzLT5uYW1lKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgeGVfZm9yX2VhY2hfbXVsdGlfcXVldWVfZW5naW5lKGZkLCBod2UpCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg dGVzdF9leGVjKGZkLCBod2UsIDEsIDEsIDEsIHMtCj4gPmZsYWdzKTsKPiArCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlndF9zdWJ0ZXN0X2YoInR3by1xdWV1ZXMtJXMiLCBzLT5u YW1lKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgeGVf Zm9yX2VhY2hfbXVsdGlfcXVldWVfZW5naW5lKGZkLCBod2UpCj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdGVzdF9leGVjKGZk LCBod2UsIDEsIDIsIDIsIHMtCj4gPmZsYWdzKTsKPiArCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoGlndF9zdWJ0ZXN0X2YoIm1hbnktcXVldWVzLSVzIiwgcy0+bmFtZSkKPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHhlX2Zvcl9lYWNoX211 bHRpX3F1ZXVlX2VuZ2luZShmZCwgaHdlKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHRlc3RfZXhlYyhmZCwgaHdlLCAxLCAx NiwgMTYsIHMtCj4gPmZsYWdzKTsKPiArCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oGlndF9zdWJ0ZXN0X2YoIm1heC1xdWV1ZXMtJXMiLCBzLT5uYW1lKQo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgeGVfZm9yX2VhY2hfbXVsdGlfcXVldWVf ZW5naW5lKGZkLCBod2UpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdGVzdF9leGVjKGZkLCBod2UsIDEsCj4gTUFYX05fRVhF Q19RVUVVRVMsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIE1BWF9OX0VYRUNfUVVFVUVTLCBz LQo+ID5mbGFncyk7Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZ3Rfc3Vi dGVzdF9mKCJtYW55LWV4ZWNzLSVzIiwgcy0+bmFtZSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHhlX2Zvcl9lYWNoX211bHRpX3F1ZXVlX2VuZ2luZShm ZCwgaHdlKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoHRlc3RfZXhlYyhmZCwgaHdlLCAxLCAxNiwgNjQsIHMtCj4gPmZsYWdz KTsKPiArCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlndF9zdWJ0ZXN0X2YoImZl dy1leGVjcy0lcyIsIHMtPm5hbWUpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqB4ZV9mb3JfZWFjaF9tdWx0aV9xdWV1ZV9lbmdpbmUoZmQsIGh3ZSkKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqB0ZXN0X2V4ZWMoZmQsIGh3ZSwgMSwgMTYsIDgsIHMtCj4gPmZsYWdzKTsKPiArwqDCoMKg wqDCoMKgwqB9Cj4gKwo+IMKgwqDCoMKgwqDCoMKgwqBpZ3RfZml4dHVyZQo+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgZHJtX2Nsb3NlX2RyaXZlcihmZCk7Cj4gwqB9Cgo=