From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from eggs.gnu.org (eggs.gnu.org [IPv6:2001:470:142:3::10]) by sourceware.org (Postfix) with ESMTPS id D7C71395BC26 for ; Fri, 16 Sep 2022 02:31:21 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org D7C71395BC26 Authentication-Results: sourceware.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=intel.com Received: from mga03.intel.com ([134.134.136.65]:44390) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oZ18P-0004Ed-Rj for gcc-patches@gcc.gnu.org; Thu, 15 Sep 2022 22:31:21 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1663295477; x=1694831477; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=0TLOkQxxNZ2m2Z3pBlLb9oABtm6OyTEnwIIcsu5YG6A=; b=kopJYdGI/8jU93xYGLz82eZl1HG7cxaxULT/kMzUXsKhw4Cm5j97VIm7 PHgbPJLKSZ0xXWD8MvK6JZHM6hPw4tOoj73qSJOlskaoxx9/0dk8bWsPN IXlqDbsl8CGgO1lgRbXRhoFNVSzKzk3WU9AozC/JnNn2z4IOdal1NSlKA HvUKji36PMN16vlfigCSwzhd7varAhlZ44dtnKnbVxECURrBDYCSJbOGZ qr9y0gpr8KhynJaU/rabx4SnhT45OeUxYXxzzlWaGJoSK/8k2z1NTxwNh IO7/TWfSnAsgQ/y3aYF5wxrJYyj+PgOeJx0u7GiMdmMdVNbEvxk+D1ps8 Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10471"; a="300255415" X-IronPort-AV: E=Sophos;i="5.93,319,1654585200"; d="scan'208,223";a="300255415" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Sep 2022 19:30:53 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.93,319,1654585200"; d="scan'208,223";a="650713590" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by orsmga001.jf.intel.com with ESMTP; 15 Sep 2022 19:30:53 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Thu, 15 Sep 2022 19:30:53 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) 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.2375.31; Thu, 15 Sep 2022 19:30:50 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Thu, 15 Sep 2022 19:30:50 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.106) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Thu, 15 Sep 2022 19:30:50 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MaNb9oaWE26BA7y9xPwexcAkoNf/hrSQYouAOZc8K4lqiprO5nildNtVm7UPD/yXHAfCuH/xzrjLe3A5IsJpwdBsGgwbRPkxhkuZBzw9Hlvp3aSJwhEjhnLXaolgyk5shifuG+G971fZnRCOiyPkJs1xQU7fa7+3JF3SI+jX1DvqQhtXu0PcRubK+FUTKzwEHTtJeyxNdK218eUKmiNVmk730zLldMFYcgWqBpk+VeBf3e3ErlZS1H15ALujya2O99d9x42ay3d1Xczj4/29wNSc1JtfxxwHiPCe1BsjHszp8lxOj15rHPI9/MaLJQIVrjPoWW8NxzGcL85S6kxFzQ== 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=6p95fWHfze+Kce9xY6megICIdOlZMoXO+5fgi96aQAo=; b=of4Vh0/NiEtFXlxqweYOJdFgkkykqum0LS+8+GIxulFxWMHO352wm899iJnoesPX3HEjPUo89ZLLlMZtJrJAnemW6nPTghBlmNEpV4PuVnozIgJz+uVNxLYA6d8stVh4B35zP31uWU+fZs1LMWOrizgT6Md55dvC2GSwJR9cOettZGNHhYqVyVaBdgI2esMC43/LT44X0pNhAxGWRlGu/1wqsP4Jlyi1yEI0FOLdiKIxf//2mhveKWODIB7Q5eNS0uIMbD1R7lYFnk2FBfa0pj188y8NxlqpOgeuekjsIs29e67qUah6lgS/MUbNBpsRru/01F3OaIl9TPMAK6lYvA== 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 DM4PR11MB5487.namprd11.prod.outlook.com (2603:10b6:5:39f::22) by SJ1PR11MB6273.namprd11.prod.outlook.com (2603:10b6:a03:458::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5612.22; Fri, 16 Sep 2022 02:30:48 +0000 Received: from DM4PR11MB5487.namprd11.prod.outlook.com ([fe80::1cf5:eb50:5eb:a1c3]) by DM4PR11MB5487.namprd11.prod.outlook.com ([fe80::1cf5:eb50:5eb:a1c3%8]) with mapi id 15.20.5632.016; Fri, 16 Sep 2022 02:30:48 +0000 From: "Kong, Lingling" To: Richard Biener CC: "gcc-patches@gcc.gnu.org" , "Liu, Hongtao" Subject: RE: [PATCH] Enhance final_value_replacement_loop to handle bitop with an invariant induction.[PR105735] Thread-Topic: [PATCH] Enhance final_value_replacement_loop to handle bitop with an invariant induction.[PR105735] Thread-Index: AdiyzcjTCPng9VotSJ+bADYz6wSZJQD8+UWABB8RxqAANQ0lAABYGGWg Date: Fri, 16 Sep 2022 02:30:48 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.6.500.17 dlp-reaction: no-action 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: DM4PR11MB5487:EE_|SJ1PR11MB6273:EE_ x-ms-office365-filtering-correlation-id: 83e39626-56a9-4eda-eee1-08da978b7758 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: H/zhkuzshJXqDArT9eqUbBgMxD4EKZ4p34B1CnukNFvtrS7uf+Ve0VTFa42xMagtNJY8K2iCpUob6Ljw3PXUlRh0VCPO17wyuZ5So8vFzm3vp+av/TUdQQIGwp9H0ax1O7Wz6yoJbUb15cpQV6s2sSoMumB30toAFCfit9lwJJOp/qtSkhJzgSyeDBCF5rSsjhixg/LOqERu0YQmLwkjz1TTj5zAfKgJDfMdJSUDr1UyHX6iJwmKJr6UW6ouli7BJzjUE49iS2ycvVxodt8kh+OPRPTdxq28aE9SkEbfkU6hJE8jBr0E5K6ApES63gzSyC3NdKv8NCXkRHPOtDn0JjOZapUCNET7D5BRKdipawaOxOApdATlKgUA0HdTfnfonvllqJ+R5FNjEekvzVVp+2K74AU6QEI5P6gJuBKD7rPVV1zue6jZqRsD+ex3TkL66KGwjjo54Rlz0vXyXbpqTl1udYCh7BtlaNRer99NXYk29tO8L3C1JlxdcmkuHN4Uwc0o2mBWCm0/k5CMfq2Uxhtj18ryFi8QMX+6erx59ZMsbTg0e3f5WtRye2LgNJOL44Wz3f6tWtSMSkDk5HrI78fUPtmx8wBBnvXU7bK2FPQClZAQp2l+L2x+mCuMfBpZGo65CFHvATugviG/9A4z5tXefTwqbd/ZA+3sWp3/7QZiq+tIbQTwFGeq8bFCd3+u0ZqosBup+eSgBX12Fq+4/iplTNb4zrDaMUkVQmVvjyfq4JbbiNJADEPbfW/pg4N/pOVuBY5mH6b5g8Ve6miaYN75I3fQ6QKNHP4rYy1Pimc= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR11MB5487.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(376002)(346002)(39860400002)(396003)(136003)(366004)(451199015)(54906003)(86362001)(316002)(9686003)(33656002)(76116006)(122000001)(84970400001)(7696005)(4326008)(66946007)(2906002)(52536014)(30864003)(8936002)(82960400001)(26005)(83380400001)(38100700002)(99936003)(38070700005)(55016003)(64756008)(107886003)(6506007)(71200400001)(66446008)(6916009)(186003)(66556008)(8676002)(53546011)(41300700001)(478600001)(66476007)(5660300002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?cjYxQkNadHcydjZ5UDJNYnV1YlZOMjl0eW5wS2hiT2tFYTVLM3loSU41Tll2?= =?utf-8?B?NFdFZEtpUm41NysxZkM2SENKOTd5Z0JMeHduNVNjS0JOaVNucm84M0QybENw?= =?utf-8?B?VkNOb0VWNVc0VmpEd25LcWpEV0w3eTF5dFg4Qjg0YWYxTjM3VTFuMlYzaWhQ?= =?utf-8?B?M0doTnNwNVpyWGlId3JLMThtaDZYa1duU0o1Q0UxWFBGV0xlTWI3aktnQ1Zh?= =?utf-8?B?cWtSSHFLZFUvajdsRXNrRG1VSkZvYTgzVWNuVVo4d0gxekthcTh4YVdkb1VJ?= =?utf-8?B?ODhrZG1ZRWxDRkhvbU5jcGU4TVRJSm5WU3J3eHBLbVMxVkRFckIvSUtUT2lz?= =?utf-8?B?QVlNVEREbFYzUExsY2t1MHV5NG9pTE9ZaVl5dStiSTY1bkI3cVVFRnVlUVhS?= =?utf-8?B?TkdNdzVnbkROekZ2TTVTSVlTTnJxeVg1SFVkcEMvd3N6NTVLNnZYZUpVdkFQ?= =?utf-8?B?L0ExL3BkSTBWZk8rZFJWdDFHVFNwL0QrZWgwRWp6dnRNZnArUmZLbDFiRGdQ?= =?utf-8?B?VXd6T0cvKy9xQkMrRHhndFdUL3dIMkRyWGFFVW8rMGNCNUdkazZ4am90VC9T?= =?utf-8?B?dHpjc2tjcVdOSEVLOERYbjBGWTBWT1hIT0xFbDZzSjFJSnJUOGIvZzdXZE9m?= =?utf-8?B?MFZRRVhnQzhwdHpPLzVOQ0JFTmdwRXlWa1dWMlQybGw5bTVRYkx2U2hYUFNi?= =?utf-8?B?dGhjZlJYdC92MXY5MDFhNi9NdG45a2lITE4vN1FCek9WcXZQdHJBYlhzR0pH?= =?utf-8?B?dVVXOUxHL2VJamlxaCtCTnY0SHBadVJSVllzcWdPQjIzZ2RKTmhnSlFNTU5o?= =?utf-8?B?R24wVk0rYkh1OHJ2aDlrUi8xRlF6UnVZeEREcjRFWC92ZWxoOEJ2b0lmbCtz?= =?utf-8?B?RjlYbWM4Yy9HeGpFbFppeFErNnVXb3lUcmdleFlOY3Z5cVVpeEY0NFlyN3BJ?= =?utf-8?B?YnB3TFZrTHZwOG1VYmwxcmVwUUhhODczS3RENHY1SGFSdGJONEM2a1oxbXZM?= =?utf-8?B?cnFESXhRcjFjMVRuNUE4djdPMFV6SHd5ZkNxcXFlK1hnQ0dRY092bVF6ajBP?= =?utf-8?B?Y1JBWWdmLzd4L2tic3VGeUNPRXZZOWF5MnJmTUloOUsvL3BnY1JUZzFObVRo?= =?utf-8?B?RVVOUDF6TS81VjJXQ3NOWWp4b1RHNTFWUlBBOHdMSUlHMEMxR1EwKzZ6Q1dF?= =?utf-8?B?VUd2OXUyYXNUZ0VJQmJXMjB3VEdvY1NzVWxMUUVwcUJGQldRUTRxSUFXMWJV?= =?utf-8?B?bnNwRHRlMnR6WTlVUmw5bVRxZFAyWWZJa2oyaSs4bUd5MmdEZkEvT1ZLbElK?= =?utf-8?B?SFVVTURBYXZMZlRHVDN3QzBjM1dRTDN5eGxQKzZhcVdZWThTOHIrdUlMdk1K?= =?utf-8?B?RURyYVdxT2RtWFh1L1hKVkszQk5KWDFMMjgvOSsyaGc3YzA5dTZoVWQ5bSsr?= =?utf-8?B?Y2xTL3ZUV1hvZGxsVGRGMklOc2FYZ1lHUjFmYTBiMUFPWmVjYi9sT2M0WGNC?= =?utf-8?B?cXZmcGtkYTVuYnluejh3MHRrb0lNanhyU3ZZcXZSSm9HL2xRYzBFSGZGOGQw?= =?utf-8?B?SnBEbHNxK0pRWUxLZ0t6Rkk4dzhHUUlTQkRob0sydUd0R2Z0T1lkdzBlRzRm?= =?utf-8?B?NmJkdkZvQSt2bDJraHhoSmhqcjlEdXdQN1BJdm9zMXBReEhvb0Z6YTVNbTJt?= =?utf-8?B?TDhFQWM0RWFLbGozamZsdkxJSDhWcDFTdVBHajNLU0NZb1FNWjlhZWprMC82?= =?utf-8?B?VUlvRFQ1UXllcU44M1pGN2lHMFkyVk01OXlwemlrTE1FWHViWEVxZFNuUXR0?= =?utf-8?B?V2hDZWhlK1JtQ21wNFZsdWZCUVdwOC9JT2EwaG9xYmJqUUowbytSRzVyQ2tQ?= =?utf-8?B?Nm5UMGEvZTRneXFNM0EwZytMNVZDZGFiajhjUHBDYVRTSUQ0b21LZ1FqYzEw?= =?utf-8?B?VUVqSlVUNTd0NWpjY0ErQThkSEhTaWsyd1hSMlVTaUoyVkhPdVQvQW5BSkdu?= =?utf-8?B?MjRuSUZxNEhTeTd2dXVLN1VZZVpsd1Buek1pSXNVb2VKb3NaNTNXaGFzamFn?= =?utf-8?B?VGZLeUF1Z2wzV3pHOHByd0N6NDJuUWZrYTQzeVhEbzNXUnloQ0RCYjVTRTlF?= =?utf-8?Q?VaPz39alo6KvXBW+y1NPms93b?= Content-Type: multipart/mixed; boundary="_002_DM4PR11MB54879C9C4354840AEC78FB29EC489DM4PR11MB5487namp_" MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB5487.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 83e39626-56a9-4eda-eee1-08da978b7758 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Sep 2022 02:30:48.4442 (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: FogvkIx5B5+n1WnfLc1t198T/5scQEu53/eG5eEkB8IR08HWfw/31+rRG/LAqVVdat/QYSktzr2ST/QmyuBh7g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ1PR11MB6273 X-OriginatorOrg: intel.com Received-SPF: pass client-ip=134.134.136.65; envelope-from=lingling.kong@intel.com; helo=mga03.intel.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9,DKIMWL_WL_HIGH=-0.001,DKIM_SIGNED=0.1,DKIM_VALID=-0.1,DKIM_VALID_AU=-0.1,DKIM_VALID_EF=-0.1,RCVD_IN_DNSWL_MED=-2.3,SPF_HELO_NONE=0.001,SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Status: No, score=-13.8 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,SPF_HELO_PASS,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --_002_DM4PR11MB54879C9C4354840AEC78FB29EC489DM4PR11MB5487namp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgUmljaGFyZCwNCg0KVGhhbmtzIGFnYWluIGZvciB5b3VyIHJldmlld2luZy4NCg0KPiBZZXMs IHVzZSBlbHNlIGlmIGZvciB0aGUgYml0d2lzZSBpbmR1Y3Rpb24uICBDYW4geW91IGFsc28gbWFr ZSB0aGUgbmV3IGNhc2UNCj4gY29uZGl0aW9uYWwgb24gJ2RlZicNCj4gKHRoZSBjb21wdXRlX292 ZXJhbGxfZWZmZWN0X29mX2lubmVyX2xvb3ApIGJlaW5nIGNocmVjX2RvbnRfa25vdz8gIElmIHRo YXQNCj4gY2FsbCBwcm9kdWNlZCBzb21ldGhpbmcgdXNlZnVsIGl0IHdpbGwgbm90IGJlIG9mIGVp dGhlciBvZiB0aGUgdHdvIHNwZWNpYWwgZm9ybXMuDQo+IFRodXMgbGlrZQ0KPiANCj4gICBpZiAo ZGVmICE9IGNocmVjX2RvbnRfa25vdykNCj4gICAgIC8qIEFscmVhZHkgT0suICAqLw0KPiAgICAg Ow0KPiAgZWxzZSBpZiAoKGJpdGludl9kZWYgPSAuLi4pDQo+ICAgICAuLg0KPiAgZWxzZSBpZiAo dHJlZV9maXRzX3Vod2lfcCAobml0ZXIpDQo+ICAgICAgICAgICAgICAuLi4gYml0d2lzZSBpbmR1 Y3Rpb24gY2FzZS4uLikNCj4gICAgIC4uLg0KPg0KWWVzLCBJIGZpeGVkIGl0IGluIG5ldyBwYXRj aC4gVGhhbmtzLg0KT2sgZm9yIG1hc3RlciA/DQoNClRoYW5rcywNCkxpbmdsaW5nDQoNCj4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogUmljaGFyZCBCaWVuZXIgPHJpY2hhcmQu Z3VlbnRoZXJAZ21haWwuY29tPg0KPiBTZW50OiBXZWRuZXNkYXksIFNlcHRlbWJlciAxNCwgMjAy MiA0OjE2IFBNDQo+IFRvOiBLb25nLCBMaW5nbGluZyA8bGluZ2xpbmcua29uZ0BpbnRlbC5jb20+ DQo+IENjOiBnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZzsgTGl1LCBIb25ndGFvIDxob25ndGFvLmxp dUBpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0hdIEVuaGFuY2UgZmluYWxfdmFsdWVf cmVwbGFjZW1lbnRfbG9vcCB0byBoYW5kbGUgYml0b3ANCj4gd2l0aCBhbiBpbnZhcmlhbnQgaW5k dWN0aW9uLltQUjEwNTczNV0NCj4gDQo+IE9uIFR1ZSwgU2VwIDEzLCAyMDIyIGF0IDk6NTQgQU0g S29uZywgTGluZ2xpbmcgPGxpbmdsaW5nLmtvbmdAaW50ZWwuY29tPg0KPiB3cm90ZToNCj4gPg0K PiA+IEhpIFJpY2hhcmQsDQo+ID4NCj4gPiBUaGFua3MgeW91IHNvIG11Y2ggZm9yIHJldmlld2lu ZyB0aGlzIHBhdGNoLiAgSSByZWFsbHkgYXBwcmVjaWF0ZSBpdC4gRm9yIHRoZXNlDQo+IHJldmll dyBjb21tZW50cywgSSBoYXZlIG1hZGUgc29tZSBjaGFuZ2VzLg0KPiA+DQo+ID4gPiBUaGF0J3Mg YSBzaW5nbGUtc3RtdCBtYXRjaCwgeW91IHNob3VsZG4ndCB1c2UgbWF0Y2gucGQgbWF0Y2hpbmcg Zm9yIHRoaXMuDQo+ID4gPiBJbnN0ZWFkIGp1c3QgZG8NCj4gPiA+DQo+ID4gPiAgIGlmIChpc19n aW1wbGVfYXNzaWduIChzdG10KQ0KPiA+ID4gICAgICAgJiYgKChjb2RlID0gZ2ltcGxlX2Fzc2ln bl9yaHNfY29kZSAoc3RtdCkpLCB0cnVlKQ0KPiA+ID4gICAgICAgJiYgKGNvZGUgPT0gQklUX0FO RF9FWFBSIHx8IGNvZGUgPT0gQklUX0lPUl9FWFBSIHx8IGNvZGUgPT0NCj4gPiA+IEJJVF9YT1Jf RVhQUikpDQo+ID4NCj4gPiBZZXMsIEkgZml4ZWQgaXQgYW5kIGRyb3BwZWQgbW9kaWZpY2F0aW9u IGZvciBtYXRjaC5wZC4NCj4gPg0KPiA+ID4gYW5kIHBpY2sgZ2ltcGxlX2Fzc2lnbl9yaHN7MSwy fSAoc3RtdCkgYXMgdGhlIG9wZXJhbmRzLiAgVGhlIDpjIGluDQo+ID4gPiBiaXRfb3A6YyBpcyBy ZWR1bmRhbnQgYnR3LiAtIHdoaWxlIHRoZSBuYW1lIHN1Z2dlc3RzICJ3aXRoDQo+ID4gPiBpbnZh cmlhbnQiIHlvdSBkb24ndCBhY3R1YWxseSBjaGVjayBmb3IgdGhhdC4gIEJ1dCBhZ2FpbiwgZ2l2 ZW4NCj4gPiA+IGNhbm9uaWNhbGl6YXRpb24gcnVsZXMgdGhlIGludmFyaWFudCB3aWxsIGJlIHJo czIgc28gYWJvdmUgYWRkDQo+ID4gPg0KPiA+ID4gICAgICAgICAmJiBUUkVFX0NPREUgKGdpbXBs ZV9hc3NpZ25fcmhzMiAoc3RtdCkpID09IElOVEVHRVJfQ1NUDQo+ID4NCj4gPiBGb3IgIiB3aXRo IGludmFyaWFudCIsIHRoaXMgbmVlZGVkIG9wMSBpcyBpbnZhcmlhbnQsIGFuZCBJIHVzZWQNCj4g YGV4cHJfaW52YXJpYW50X2luX2xvb3BfcCAobG9vcCwgbWF0Y2hfb3BbMF0pYCBmb3IgY2hlY2su DQo+ID4gQW5kIG9wMiBqdXN0IGJlIFBISSBpcyBvay4gSWYgb3AyIGlzIElOVEVHRVJfQ1NULCBl eGlzdGluZyBnY2MgY2FuIGJlIGRpcmVjdGx5DQo+IG9wdGltaXplZCBhbmQgZG8gbm90IG5lZWQg bW9kaWZpY2F0aW9uLg0KPiA+DQo+ID4gPiB5b3UgcHJvYmFibHkgbmVlZCBkZy1yZXF1aXJlLWVm ZmVjdGl2ZS10YXJnZXQgbG9uZ2xvbmcsIGJ1dCBpcyBpdA0KPiA+ID4gbmVjZXNzYXJ5IHRvIHVz ZSBsb25nIGxvbmcgZm9yIHRoZSB0ZXN0Y2FzZXMgaW4gdGhlIGZpcnN0IHBsYWNlPw0KPiA+ID4g VGhlIElWIHNlZW1zIHRvIGJlIHVudXNlZCwgaWYgaXQgc2hvdWxkIG1hdGNoIHRoZSB2YXJpYWJs ZXMgYml0IHNpemUNCj4gPiA+IHVzZSBzaXplb2YNCj4gPiA+ICh0eXBlKSAqIDgNCj4gPg0KPiA+ IFllcywgSXQgaXMgbm90IG5lY2Vzc2FyeSB0byB1c2UgbG9uZyBsb25nIGZvciB0aGUgdGVzdGNh c2VzLiBJIGNoYW5nZWQgdHlwZSB0bw0KPiB1bnNpZ25lZCBpbnQuDQo+ID4NCj4gPiA+ID4gKyAg aW52ID0gUEhJX0FSR19ERUZfRlJPTV9FREdFIChoZWFkZXJfcGhpLCBsb29wX3ByZWhlYWRlcl9l ZGdlDQo+ID4gPiA+ICsgKGxvb3ApKTsgIHJldHVybiBmb2xkX2J1aWxkMiAoY29kZTEsIHR5cGUs IGludiwgbWF0Y2hfb3BbMF0pOyB9DQo+ID4gPg0KPiA+ID4gVGhlIH0gZ29lcyB0byB0aGUgbmV4 dCBsaW5lLg0KPiA+DQo+ID4gU29ycnksIEl0IG1pZ2h0IGJlIHNvbWV0aGluZyB3cm9uZyB3aXRo IG15IHVzZSBvZiBnY2Mgc2VuZC1lbWFpbCBmb3JtYXQuDQo+ID4NCj4gPiA+ID4gKyAgICAgIHRy ZWUgYml0aW52X2RlZjsNCj4gPiA+ID4gKyAgICAgIGlmICgoYml0aW52X2RlZg0KPiA+ID4NCj4g PiA+IHBsZWFzZSB1c2UgZWxzZSBpZiBoZXJlDQo+ID4NCj4gPiBTb3JyeSwgSWYgdXNlIHRoZSBl bHNlIGlmIGhlcmUsIHRoZXJlIGlzIG5vIGNvcnJlc3BvbmRpbmcgYWJvdmUgaWYuIEknbSBub3Qg c3VyZSBpZg0KPiB5b3UgbWVhbiBjaGFuZ2UgYml0d2lzZSBpbmR1Y3Rpb24gZXhwcmVzc2lvbiBp ZiB0byBlbHNlIGlmLg0KPiANCj4gWWVzLCB1c2UgZWxzZSBpZiBmb3IgdGhlIGJpdHdpc2UgaW5k dWN0aW9uLiAgQ2FuIHlvdSBhbHNvIG1ha2UgdGhlIG5ldyBjYXNlDQo+IGNvbmRpdGlvbmFsIG9u ICdkZWYnDQo+ICh0aGUgY29tcHV0ZV9vdmVyYWxsX2VmZmVjdF9vZl9pbm5lcl9sb29wKSBiZWlu ZyBjaHJlY19kb250X2tub3c/ICBJZiB0aGF0DQo+IGNhbGwgcHJvZHVjZWQgc29tZXRoaW5nIHVz ZWZ1bCBpdCB3aWxsIG5vdCBiZSBvZiBlaXRoZXIgb2YgdGhlIHR3byBzcGVjaWFsIGZvcm1zLg0K PiBUaHVzIGxpa2UNCj4gDQo+ICAgaWYgKGRlZiAhPSBjaHJlY19kb250X2tub3cpDQo+ICAgICAv KiBBbHJlYWR5IE9LLiAgKi8NCj4gICAgIDsNCj4gIGVsc2UgaWYgKChiaXRpbnZfZGVmID0gLi4u KQ0KPiAgICAgLi4NCj4gIGVsc2UgaWYgKHRyZWVfZml0c191aHdpX3AgKG5pdGVyKQ0KPiAgICAg ICAgICAgICAgLi4uIGJpdHdpc2UgaW5kdWN0aW9uIGNhc2UuLi4pDQo+ICAgICAuLi4NCj4gDQo+ ID8NCj4gDQo+IE90aGVyd2lzZSBsb29rcyBPSyBub3cuDQo+IA0KPiBUaGFua3MsDQo+IFJpY2hh cmQuDQo+IA0KPiA+IERvIHlvdSBhZ3JlZSB3aXRoIHRoZXNlIGNoYW5nZXM/ICBUaGFua3MgYWdh aW4gZm9yIHRha2luZyBhIGxvb2suDQo+ID4NCj4gPiBUaGFua3MsDQo+ID4gTGluZ2xpbmcNCj4g Pg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+IEZyb206IFJpY2hhcmQg QmllbmVyIDxyaWNoYXJkLmd1ZW50aGVyQGdtYWlsLmNvbT4NCj4gPiA+IFNlbnQ6IFR1ZXNkYXks IEF1Z3VzdCAyMywgMjAyMiAzOjI3IFBNDQo+ID4gPiBUbzogS29uZywgTGluZ2xpbmcgPGxpbmds aW5nLmtvbmdAaW50ZWwuY29tPg0KPiA+ID4gQ2M6IExpdSwgSG9uZ3RhbyA8aG9uZ3Rhby5saXVA aW50ZWwuY29tPjsgZ2NjLXBhdGNoZXNAZ2NjLmdudS5vcmcNCj4gPiA+IFN1YmplY3Q6IFJlOiBb UEFUQ0hdIEVuaGFuY2UgZmluYWxfdmFsdWVfcmVwbGFjZW1lbnRfbG9vcCB0byBoYW5kbGUNCj4g PiA+IGJpdG9wIHdpdGggYW4gaW52YXJpYW50IGluZHVjdGlvbi5bUFIxMDU3MzVdDQo+ID4gPg0K PiA+ID4gT24gVGh1LCBBdWcgMTgsIDIwMjIgYXQgODo0OCBBTSBLb25nLCBMaW5nbGluZyB2aWEg R2NjLXBhdGNoZXMgPGdjYy0NCj4gPiA+IHBhdGNoZXNAZ2NjLmdudS5vcmc+IHdyb3RlOg0KPiA+ ID4gPg0KPiA+ID4gPiBIaSwNCj4gPiA+ID4NCj4gPiA+ID4gVGhpcyBwYXRjaCBpcyBmb3IgcHIx MDU3MzUvcHIxMDE5OTEuIEl0IHdpbGwgZW5hYmxlIGJlbG93IG9wdGltaXphdGlvbjoNCj4gPiA+ ID4gew0KPiA+ID4gPiAtICBsb25nIHVuc2lnbmVkIGludCBiaXQ7DQo+ID4gPiA+IC0NCj4gPiA+ ID4gLSAgPGJiIDI+IFtsb2NhbCBjb3VudDogMzI1MzQzNzZdOg0KPiA+ID4gPiAtDQo+ID4gPiA+ IC0gIDxiYiAzPiBbbG9jYWwgY291bnQ6IDEwNDEyMDc0NDldOg0KPiA+ID4gPiAtICAjIHRtcF8x MCA9IFBISSA8dG1wXzcoNSksIHRtcF80KEQpKDIpPg0KPiA+ID4gPiAtICAjIGJpdF8xMiA9IFBI SSA8Yml0XzgoNSksIDAoMik+DQo+ID4gPiA+IC0gIHRtcF83ID0gYml0Ml82KEQpICYgdG1wXzEw Ow0KPiA+ID4gPiAtICBiaXRfOCA9IGJpdF8xMiArIDE7DQo+ID4gPiA+IC0gIGlmIChiaXRfOCAh PSAzMikNCj4gPiA+ID4gLSAgICBnb3RvIDxiYiA1PjsgWzk2Ljk3JV0NCj4gPiA+ID4gLSAgZWxz ZQ0KPiA+ID4gPiAtICAgIGdvdG8gPGJiIDQ+OyBbMy4wMyVdDQo+ID4gPiA+IC0NCj4gPiA+ID4g LSAgPGJiIDU+IFtsb2NhbCBjb3VudDogMTAwOTY1ODg2NV06DQo+ID4gPiA+IC0gIGdvdG8gPGJi IDM+OyBbMTAwLjAwJV0NCj4gPiA+ID4gLQ0KPiA+ID4gPiAtICA8YmIgND4gW2xvY2FsIGNvdW50 OiAzMjUzNDM3Nl06DQo+ID4gPiA+IC0gICMgdG1wXzExID0gUEhJIDx0bXBfNygzKT4NCj4gPiA+ ID4gLSAgcmV0dXJuIHRtcF8xMTsNCj4gPiA+ID4gKyAgdG1wXzExID0gdG1wXzQoRCkgJiBiaXQy XzYoRCk7DQo+ID4gPiA+ICsgIHJldHVybiB0bXBfMTE7DQo+ID4gPiA+DQo+ID4gPiA+IH0NCj4g PiA+ID4NCj4gPiA+ID4gT2sgZm9yIG1hc3RlciA/DQo+ID4gPiA+DQo+ID4gPiA+IGdjYy9DaGFu Z2VMb2c6DQo+ID4gPiA+DQo+ID4gPiA+ICAgICAgICAgUFIgbWlkZGxlLWVuZC8xMDU3MzUNCj4g PiA+ID4gICAgICAgICAqIG1hdGNoLnBkIChiaXRvcF93aXRoX2ludl9wKTogTmV3IG1hdGNoLg0K PiA+ID4gPiAgICAgICAgICogdHJlZS1zY2FsYXItZXZvbHV0aW9uLmNjIChnaW1wbGVfYml0b3Bf d2l0aF9pbnZfcCk6IERlY2xhcmUuDQo+ID4gPiA+ICAgICAgICAgKGFuYWx5emVfYW5kX2NvbXB1 dGVfYml0b3Bfd2l0aF9pbnZfZWZmZWN0KTogTmV3IGZ1bmN0aW9uLg0KPiA+ID4gPiAgICAgICAg IChmaW5hbF92YWx1ZV9yZXBsYWNlbWVudF9sb29wKTogRW5oYW5jZWQgdG8gaGFuZGxlIGJpdG9w DQo+ID4gPiA+ICAgICAgICAgd2l0aCBpbnYgaW5kdWN0aW9uLg0KPiA+ID4gPg0KPiA+ID4gPiBn Y2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoNCj4gPiA+ID4NCj4gPiA+ID4gICAgICAgICAqIGdjYy50 YXJnZXQvaTM4Ni9wcjEwNTczNS0xLmM6IE5ldyB0ZXN0Lg0KPiA+ID4gPiAgICAgICAgICogZ2Nj LnRhcmdldC9pMzg2L3ByMTA1NzM1LTIuYzogTmV3IHRlc3QuDQo+ID4gPiA+IC0tLQ0KPiA+ID4g PiAgZ2NjL21hdGNoLnBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKw0KPiA+ ID4gPiAgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHIxMDU3MzUtMS5jIHwgODgNCj4g PiA+ID4gKysrKysrKysrKysrKysrKysrKysrKw0KPiA+ID4gZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2kzODYvcHIxMDU3MzUtMi5jIHwgMjggKysrKysrKw0KPiA+ID4gPiAgZ2NjL3RyZWUtc2Nh bGFyLWV2b2x1dGlvbi5jYyAgICAgICAgICAgICAgIHwgNTkgKysrKysrKysrKysrKysrDQo+ID4g PiA+ICA0IGZpbGVzIGNoYW5nZWQsIDE3OSBpbnNlcnRpb25zKCspICBjcmVhdGUgbW9kZSAxMDA2 NDQNCj4gPiA+ID4gZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHIxMDU3MzUtMS5jDQo+ ID4gPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYv cHIxMDU3MzUtMi5jDQo+ID4gPiA+DQo+ID4gPiA+IGRpZmYgLS1naXQgYS9nY2MvbWF0Y2gucGQg Yi9nY2MvbWF0Y2gucGQgaW5kZXgNCj4gPiA+ID4gNTYyMTM4YTgwMzQuLmNmZTU5M2ViYjAyIDEw MDY0NA0KPiA+ID4gPiAtLS0gYS9nY2MvbWF0Y2gucGQNCj4gPiA+ID4gKysrIGIvZ2NjL21hdGNo LnBkDQo+ID4gPiA+IEBAIC04MDUwLDYgKzgwNTAsMTAgQEAgYW5kLA0KPiA+ID4gPiAgIChiaXRf bm90DQo+ID4gPiA+ICAgIChub3BfY29udmVydDE/IChiaXRfeG9yQDAgKGNvbnZlcnQyPyAobHNo aWZ0IGludGVnZXJfb25lcEAxDQo+ID4gPiA+IEAyKSkNCj4gPiA+ID4gQDMpKSkpDQo+ID4gPiA+ DQo+ID4gPiA+ICsoZm9yIGJpdF9vcCAoYml0X2FuZCBiaXRfaW9yIGJpdF94b3IpICAobWF0Y2gg KGJpdG9wX3dpdGhfaW52X3ANCj4gPiA+ID4gK0AwDQo+ID4gPiA+ICtAMSkNCj4gPiA+ID4gKyAg KGJpdF9vcDpjIEAwIEAxKSkpDQo+ID4gPiA+ICsNCj4gPiA+DQo+ID4gPiBUaGF0J3MgYSBzaW5n bGUtc3RtdCBtYXRjaCwgeW91IHNob3VsZG4ndCB1c2UgbWF0Y2gucGQgbWF0Y2hpbmcgZm9yIHRo aXMuDQo+ID4gPiBJbnN0ZWFkIGp1c3QgZG8NCj4gPiA+DQo+ID4gPiAgIGlmIChpc19naW1wbGVf YXNzaWduIChzdG10KQ0KPiA+ID4gICAgICAgJiYgKChjb2RlID0gZ2ltcGxlX2Fzc2lnbl9yaHNf Y29kZSAoc3RtdCkpLCB0cnVlKQ0KPiA+ID4gICAgICAgJiYgKGNvZGUgPT0gQklUX0FORF9FWFBS IHx8IGNvZGUgPT0gQklUX0lPUl9FWFBSIHx8IGNvZGUgPT0NCj4gPiA+IEJJVF9YT1JfRVhQUikp DQo+ID4gPiAgICAuLg0KPiA+ID4NCj4gPiA+IGFuZCBwaWNrIGdpbXBsZV9hc3NpZ25fcmhzezEs Mn0gKHN0bXQpIGFzIHRoZSBvcGVyYW5kcy4gIFRoZSA6YyBpbg0KPiA+ID4gYml0X29wOmMgaXMg cmVkdW5kYW50IGJ0dy4gLSB3aGlsZSB0aGUgbmFtZSBzdWdnZXN0cyAid2l0aA0KPiA+ID4gaW52 YXJpYW50IiB5b3UgZG9uJ3QgYWN0dWFsbHkgY2hlY2sgZm9yIHRoYXQuICBCdXQgYWdhaW4sIGdp dmVuDQo+ID4gPiBjYW5vbmljYWxpemF0aW9uIHJ1bGVzIHRoZSBpbnZhcmlhbnQgd2lsbCBiZSBy aHMyIHNvIGFib3ZlIGFkZA0KPiA+ID4NCj4gPiA+ICAgICAgICAgJiYgVFJFRV9DT0RFIChnaW1w bGVfYXNzaWduX3JoczIgKHN0bXQpKSA9PSBJTlRFR0VSX0NTVA0KPiA+ID4NCj4gPiA+IGZvciBl eGFtcGxlLg0KPiA+ID4NCj4gPiA+ID4gIC8qIG4gLSAoKChuID4gQzEpID8gbiA6IEMxKSAmIC1D MikgLT4gIG4gJiBDMSBmb3IgdW5zaWduZWQgY2FzZS4NCj4gPiA+ID4gICAgIG4gLSAoKChuID4g QzEpID8gbiA6IEMxKSAmIC1DMikgLT4gIChuIDw9IEMxKSA/IG4gOiAobiAmIEMxKQ0KPiA+ID4g PiBmb3Igc2lnbmVkIGNhc2UuICAqLyAgKHNpbXBsaWZ5IGRpZmYgLS1naXQNCj4gPiA+ID4gYS9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9wcjEwNTczNS0xLmMNCj4gPiA+ID4gYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9wcjEwNTczNS0xLmMNCj4gPiA+ID4gbmV3IGZpbGUg bW9kZSAxMDA2NDQNCj4gPiA+ID4gaW5kZXggMDAwMDAwMDAwMDAuLjhkMjEyM2VkMzUxDQo+ID4g PiA+IC0tLSAvZGV2L251bGwNCj4gPiA+ID4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2kzODYvcHIxMDU3MzUtMS5jDQo+ID4gPiA+IEBAIC0wLDAgKzEsODggQEANCj4gPiA+ID4gKy8q IHsgZGctZG8gY29tcGlsZSB9ICovDQo+ID4gPiA+ICsvKiB7IGRnLW9wdGlvbnMgIi1PMSAtZmR1 bXAtdHJlZS1zY2NwLWRldGFpbHMiIH0gKi8NCj4gPiA+ID4gKy8qIHsgZGctZmluYWwgeyBzY2Fu LXRyZWUtZHVtcC10aW1lcyB7ZmluYWwgdmFsdWUgcmVwbGFjZW1lbnR9IDggInNjY3AiDQo+ID4g PiA+ICt9IH0gKi8NCj4gPiA+ID4gKw0KPiA+ID4gPiArdW5zaWduZWQgbG9uZyBsb25nDQo+ID4g PiA+ICtfX2F0dHJpYnV0ZV9fKChub2lwYSkpDQo+ID4gPiA+ICtmb28gKHVuc2lnbmVkIGxvbmcg bG9uZyB0bXAsIHVuc2lnbmVkIGxvbmcgbG9uZyBiaXQyKSB7DQo+ID4gPg0KPiA+ID4geW91IHBy b2JhYmx5IG5lZWQgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IGxvbmdsb25nLCBidXQgaXMg aXQNCj4gPiA+IG5lY2Vzc2FyeSB0byB1c2UgbG9uZyBsb25nIGZvciB0aGUgdGVzdGNhc2VzIGlu IHRoZSBmaXJzdCBwbGFjZT8NCj4gPiA+IFRoZSBJViBzZWVtcyB0byBiZSB1bnVzZWQsIGlmIGl0 IHNob3VsZCBtYXRjaCB0aGUgdmFyaWFibGVzIGJpdCBzaXplDQo+ID4gPiB1c2Ugc2l6ZW9mDQo+ ID4gPiAodHlwZSkgKiA4DQo+ID4gPg0KPiA+ID4gPiArICBmb3IgKGludCBiaXQgPSAwOyBiaXQg PCA2NDsgYml0KyspDQo+ID4gPiA+ICsgICAgdG1wICY9IGJpdDI7DQo+ID4gPiA+ICsgIHJldHVy biB0bXA7DQo+ID4gPiA+ICt9DQo+ID4gPiA+ICsNCj4gPiA+ID4gK3Vuc2lnbmVkIGxvbmcgbG9u Zw0KPiA+ID4gPiArX19hdHRyaWJ1dGVfXygobm9pcGEpKQ0KPiA+ID4gPiArZm9vMSAodW5zaWdu ZWQgbG9uZyBsb25nIHRtcCwgdW5zaWduZWQgbG9uZyBsb25nIGJpdDIpIHsNCj4gPiA+ID4gKyAg Zm9yIChpbnQgYml0ID0gNjM7IGJpdCA+PSAwOyBiaXQgLT0zKQ0KPiA+ID4gPiArICAgIHRtcCAm PSBiaXQyOw0KPiA+ID4gPiArICByZXR1cm4gdG1wOw0KPiA+ID4gPiArfQ0KPiA+ID4gPiArDQo+ ID4gPiA+ICt1bnNpZ25lZCBsb25nIGxvbmcNCj4gPiA+ID4gK19fYXR0cmlidXRlX18oKG5vaXBh KSkNCj4gPiA+ID4gK2ZvbzIgKHVuc2lnbmVkIGxvbmcgbG9uZyB0bXAsIHVuc2lnbmVkIGxvbmcg bG9uZyBiaXQyKSB7DQo+ID4gPiA+ICsgIGZvciAoaW50IGJpdCA9IDA7IGJpdCA8IDY0OyBiaXQr KykNCj4gPiA+ID4gKyAgICB0bXAgfD0gYml0MjsNCj4gPiA+ID4gKyAgcmV0dXJuIHRtcDsNCj4g PiA+ID4gK30NCj4gPiA+ID4gKw0KPiA+ID4gPiArdW5zaWduZWQgbG9uZyBsb25nDQo+ID4gPiA+ ICtfX2F0dHJpYnV0ZV9fKChub2lwYSkpDQo+ID4gPiA+ICtmb28zICh1bnNpZ25lZCBsb25nIGxv bmcgdG1wLCB1bnNpZ25lZCBsb25nIGxvbmcgYml0Mikgew0KPiA+ID4gPiArICBmb3IgKGludCBi aXQgPSA2MzsgYml0ID49IDA7IGJpdCAtPTMpDQo+ID4gPiA+ICsgICAgdG1wIHw9IGJpdDI7DQo+ ID4gPiA+ICsgIHJldHVybiB0bXA7DQo+ID4gPiA+ICt9DQo+ID4gPiA+ICsNCj4gPiA+ID4gK3Vu c2lnbmVkIGxvbmcgbG9uZw0KPiA+ID4gPiArX19hdHRyaWJ1dGVfXygobm9pcGEpKQ0KPiA+ID4g PiArZm9vNCAodW5zaWduZWQgbG9uZyBsb25nIHRtcCwgdW5zaWduZWQgbG9uZyBsb25nIGJpdDIp IHsNCj4gPiA+ID4gKyAgZm9yIChpbnQgYml0ID0gMDsgYml0IDwgNjQ7IGJpdCsrKQ0KPiA+ID4g PiArICAgIHRtcCBePSBiaXQyOw0KPiA+ID4gPiArICByZXR1cm4gdG1wOw0KPiA+ID4gPiArfQ0K PiA+ID4gPiArDQo+ID4gPiA+ICt1bnNpZ25lZCBsb25nIGxvbmcNCj4gPiA+ID4gK19fYXR0cmli dXRlX18oKG5vaXBhKSkNCj4gPiA+ID4gK2ZvbzUgKHVuc2lnbmVkIGxvbmcgbG9uZyB0bXAsIHVu c2lnbmVkIGxvbmcgbG9uZyBiaXQyKSB7DQo+ID4gPiA+ICsgIGZvciAoaW50IGJpdCA9IDA7IGJp dCA8IDYzOyBiaXQrKykNCj4gPiA+ID4gKyAgICB0bXAgXj0gYml0MjsNCj4gPiA+ID4gKyAgcmV0 dXJuIHRtcDsNCj4gPiA+ID4gK30NCj4gPiA+ID4gKw0KPiA+ID4gPiArdW5zaWduZWQgbG9uZyBs b25nDQo+ID4gPiA+ICtfX2F0dHJpYnV0ZV9fKChub2lwYSkpDQo+ID4gPiA+ICtmICh1bnNpZ25l ZCBsb25nIGxvbmcgdG1wLCBsb25nIGxvbmcgYml0LCB1bnNpZ25lZCBsb25nIGxvbmcNCj4gPiA+ ID4gK2JpdDIpIHsNCj4gPiA+ID4gKyAgdW5zaWduZWQgbG9uZyBsb25nIHJlcyA9IHRtcDsNCj4g PiA+ID4gKyAgZm9yIChsb25nIGxvbmcgaSA9IDA7IGkgPCBiaXQ7IGkrKykNCj4gPiA+ID4gKyAg ICByZXMgJj0gYml0MjsNCj4gPiA+ID4gKyAgcmV0dXJuIHJlczsNCj4gPiA+ID4gK30NCj4gPiA+ ID4gKw0KPiA+ID4gPiArdW5zaWduZWQgbG9uZyBsb25nDQo+ID4gPiA+ICtfX2F0dHJpYnV0ZV9f KChub2lwYSkpDQo+ID4gPiA+ICtmMSAodW5zaWduZWQgbG9uZyBsb25nIHRtcCwgbG9uZyBsb25n IGJpdCwgdW5zaWduZWQgbG9uZyBsb25nDQo+ID4gPiA+ICtiaXQyKSB7DQo+ID4gPiA+ICsgIHVu c2lnbmVkIGxvbmcgbG9uZyByZXMgPSB0bXA7DQo+ID4gPiA+ICsgIGZvciAobG9uZyBsb25nIGkg PSAwOyBpIDwgYml0OyBpKyspDQo+ID4gPiA+ICsgICAgcmVzIHw9IGJpdDI7DQo+ID4gPiA+ICsg IHJldHVybiByZXM7DQo+ID4gPiA+ICt9DQo+ID4gPiA+ICsNCj4gPiA+ID4gK3Vuc2lnbmVkIGxv bmcgbG9uZw0KPiA+ID4gPiArX19hdHRyaWJ1dGVfXygobm9pcGEpKQ0KPiA+ID4gPiArZjIgKHVu c2lnbmVkIGxvbmcgbG9uZyB0bXAsIGxvbmcgbG9uZyBiaXQsIHVuc2lnbmVkIGxvbmcgbG9uZw0K PiA+ID4gPiArYml0Mikgew0KPiA+ID4gPiArICB1bnNpZ25lZCBsb25nIGxvbmcgcmVzID0gdG1w Ow0KPiA+ID4gPiArICBmb3IgKGxvbmcgbG9uZyBpID0gMDsgaSA8IGJpdDsgaSsrKQ0KPiA+ID4g PiArICAgIHJlcyBePSBiaXQyOw0KPiA+ID4gPiArICByZXR1cm4gcmVzOw0KPiA+ID4gPiArfQ0K PiA+ID4gPiArDQo+ID4gPiA+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv aTM4Ni9wcjEwNTczNS0yLmMNCj4gPiA+ID4gYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4 Ni9wcjEwNTczNS0yLmMNCj4gPiA+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiA+ID4gaW5k ZXggMDAwMDAwMDAwMDAuLjc5YzFkMzAwYjFiDQo+ID4gPiA+IC0tLSAvZGV2L251bGwNCj4gPiA+ ID4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHIxMDU3MzUtMi5jDQo+ID4g PiA+IEBAIC0wLDAgKzEsMjggQEANCj4gPiA+ID4gKy8qIHsgZGctZG8gcnVuIH0gKi8NCj4gPiA+ ID4gKy8qIHsgZGctb3B0aW9ucyAiLU8xIiB9ICovDQo+ID4gPiA+ICsNCj4gPiA+ID4gKyNpbmNs dWRlICJwcjEwNTczNS0xLmMiDQo+ID4gPiA+ICsNCj4gPiA+ID4gK2ludCBtYWluKCkNCj4gPiA+ ID4gK3sNCj4gPiA+ID4gKyAgdW5zaWduZWQgbG9uZyBsb25nIHRtcCA9IDB4MTEwMTEwMVVMTDsN Cj4gPiA+ID4gKyAgdW5zaWduZWQgbG9uZyBsb25nIGJpdDIgPSAweDExMTExMTEwMTExMTAxMTFV TEw7DQo+ID4gPiA+ICsgIGlmIChmb28gKHRtcCwgYml0MikgIT0gMHgxMTAwMTAxVUxMKQ0KPiA+ ID4gPiArICAgIF9fYnVpbHRpbl9hYm9ydCAoKTsNCj4gPiA+ID4gKyAgaWYgKGZvbzEgKHRtcCwg Yml0MikgIT0gMHgxMTAwMTAxVUxMKQ0KPiA+ID4gPiArICAgIF9fYnVpbHRpbl9hYm9ydCAoKTsN Cj4gPiA+ID4gKyAgaWYgKGZvbzIgKHRtcCwgYml0MikgIT0gMHgxMTExMTExMDExMTExMTExVUxM KQ0KPiA+ID4gPiArICAgIF9fYnVpbHRpbl9hYm9ydCAoKTsNCj4gPiA+ID4gKyAgaWYgKGZvbzMg KHRtcCwgYml0MikgIT0gMHgxMTExMTExMDExMTExMTExVUxMKQ0KPiA+ID4gPiArICAgIF9fYnVp bHRpbl9hYm9ydCAoKTsNCj4gPiA+ID4gKyAgaWYgKGZvbzQgKHRtcCwgYml0MikgIT0gMHgxMTAx MTAxVUxMKQ0KPiA+ID4gPiArICAgIF9fYnVpbHRpbl9hYm9ydCAoKTsNCj4gPiA+ID4gKyAgaWYg KGZvbzUgKHRtcCwgYml0MikgIT0gMHgxMTExMTExMDEwMDExMDEwVUxMKQ0KPiA+ID4gPiArICAg IF9fYnVpbHRpbl9hYm9ydCAoKTsNCj4gPiA+ID4gKyAgaWYgKGYgKHRtcCwgNjQsIGJpdDIpICE9 IDB4MTEwMDEwMVVMTCkNCj4gPiA+ID4gKyAgICBfX2J1aWx0aW5fYWJvcnQgKCk7DQo+ID4gPiA+ ICsgIGlmIChmMSAodG1wLCA2NCwgYml0MikgIT0gMHgxMTExMTExMDExMTExMTExVUxMKQ0KPiA+ ID4gPiArICAgIF9fYnVpbHRpbl9hYm9ydCAoKTsNCj4gPiA+ID4gKyAgaWYgKGYyICh0bXAsIDY0 LCBiaXQyKSAhPSAweDExMDExMDFVTEwpDQo+ID4gPiA+ICsgICAgX19idWlsdGluX2Fib3J0ICgp Ow0KPiA+ID4gPiArfQ0KPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZ2NjL3RyZWUtc2NhbGFyLWV2b2x1 dGlvbi5jYw0KPiA+ID4gPiBiL2djYy90cmVlLXNjYWxhci1ldm9sdXRpb24uY2MgaW5kZXggZmM1 OWQwMzViMTkuLjgxMjIwZjA4ZDJlDQo+ID4gPiA+IDEwMDY0NA0KPiA+ID4gPiAtLS0gYS9nY2Mv dHJlZS1zY2FsYXItZXZvbHV0aW9uLmNjDQo+ID4gPiA+ICsrKyBiL2djYy90cmVlLXNjYWxhci1l dm9sdXRpb24uY2MNCj4gPiA+ID4gQEAgLTM2MzUsNiArMzYzNSw1MyBAQCBlbnVtIGJpdF9vcF9r aW5kDQo+ID4gPiA+ICAgIHJldHVybiBmb2xkX2J1aWxkMiAoY29kZTEsIHR5cGUsIGludiwgd2lk ZV9pbnRfdG9fdHJlZSAodHlwZSwNCj4gPiA+ID4gYml0cykpOyAgfQ0KPiA+ID4gPg0KPiA+ID4g PiArLyogTWF0Y2gucGQgZnVuY3Rpb24gdG8gbWF0Y2ggYml0b3Agd2l0aCBpbnZhcmlhbnQgZXhw cmVzc2lvbg0KPiA+ID4gPiArICAuaS5lLg0KPiA+ID4gPiArICB0bXBfNyA9IF8wICYgXzE7ICov DQo+ID4gPiA+ICtleHRlcm4gYm9vbCBnaW1wbGVfYml0b3Bfd2l0aF9pbnZfcCAodHJlZSwgdHJl ZSAqLCB0cmVlDQo+ID4gPiA+ICsoKikodHJlZSkpOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsvKiBS ZXR1cm4gdGhlIGluZHVjdGl2ZSBleHByZXNzaW9uIG9mIGJpdG9wIHdpdGggaW52YXJpYW50IGlm IHBvc3NpYmxlLA0KPiA+ID4gPiArICAgb3RoZXJ3aXNlIHJldHVybnMgREVGLiAgKi8NCj4gPiA+ ID4gK3N0YXRpYyB0cmVlDQo+ID4gPiA+ICthbmFseXplX2FuZF9jb21wdXRlX2JpdG9wX3dpdGhf aW52X2VmZmVjdCAoY2xhc3MgbG9vcCogbG9vcCwgdHJlZQ0KPiBwaGlkZWYsDQo+ID4gPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmVlIG5pdGVyKSB7DQo+ ID4gPiA+ICsgIHRyZWUgbWF0Y2hfb3BbMl0saW52Ow0KPiA+ID4gPiArICB0cmVlIHR5cGUgPSBU UkVFX1RZUEUgKHBoaWRlZik7DQo+ID4gPiA+ICsgIGdwaGkqIGhlYWRlcl9waGkgPSBOVUxMOw0K PiA+ID4gPiArICAvKiBtYXRjaCB0aGluZyBsaWtlIG9wMCAobWF0Y2hbMF0pLCBvcDEobWF0Y2hb MV0pLA0KPiA+ID4gPiArcGhpZGVmKFBISURFRikNCj4gPiA+ID4gKw0KPiA+ID4gPiArICAgIG9w MSA9ICBQSEkgPHBoaWRlZiwgaW52Pg0KPiA+ID4gPiArICAgIHBoaWRlZiA9IG9wMCAmIG9wMQ0K PiA+ID4gPiArICAgIGlmIG9wMCBpcyBhbiBpbnZhcmlhbnQsIGl0IGNvdWxkIGNoYW5nZSB0bw0K PiA+ID4gPiArICAgIHBoaWRlZiA9IG9wMCAmIGludi4gICovDQo+ID4gPiA+ICsgIGlmICghZ2lt cGxlX2JpdG9wX3dpdGhfaW52X3AgKHBoaWRlZiwgJm1hdGNoX29wWzBdLCBOVUxMKQ0KPiA+ID4g PiArICAgICAgfHwgVFJFRV9DT0RFIChtYXRjaF9vcFsxXSkgIT0gU1NBX05BTUUNCj4gPiA+ID4g KyAgICAgIHx8ICFleHByX2ludmFyaWFudF9pbl9sb29wX3AgKGxvb3AsIG1hdGNoX29wWzBdKQ0K PiA+ID4gPiArICAgICAgfHwgIShoZWFkZXJfcGhpID0gZHluX2Nhc3QgPGdwaGkgKj4gKFNTQV9O QU1FX0RFRl9TVE1UDQo+ID4gPiAobWF0Y2hfb3BbMV0pKSkNCj4gPiA+ID4gKyAgICAgIHx8IGdp bXBsZV9waGlfbnVtX2FyZ3MgKGhlYWRlcl9waGkpICE9IDIpDQo+ID4gPiA+ICsgICAgcmV0dXJu IE5VTExfVFJFRTsNCj4gPiA+ID4gKw0KPiA+ID4gPiArICBpZiAoUEhJX0FSR19ERUZfRlJPTV9F REdFIChoZWFkZXJfcGhpLCBsb29wX2xhdGNoX2VkZ2UgKGxvb3ApKQ0KPiA+ID4gPiArICE9DQo+ ID4gPiBwaGlkZWYpDQo+ID4gPiA+ICsgICAgcmV0dXJuIE5VTExfVFJFRTsNCj4gPiA+ID4gKw0K PiA+ID4gPiArICBlbnVtIHRyZWVfY29kZSBjb2RlMQ0KPiA+ID4gPiArICAgID0gZ2ltcGxlX2Fz c2lnbl9yaHNfY29kZSAoU1NBX05BTUVfREVGX1NUTVQgKHBoaWRlZikpOw0KPiA+ID4gPiArDQo+ ID4gPiA+ICsgIGlmIChjb2RlMSA9PSBCSVRfWE9SX0VYUFIpDQo+ID4gPiA+ICsgICAgew0KPiA+ ID4gPiArICAgICAgIGlmICghdHJlZV9maXRzX3Vod2lfcCAobml0ZXIpKQ0KPiA+ID4gPiArICAg ICAgIHJldHVybiBOVUxMX1RSRUU7DQo+ID4gPiA+ICsgICAgICAgdW5zaWduZWQgSE9TVF9XSURF X0lOVCBuaXRlcl9udW07DQo+ID4gPiA+ICsgICAgICAgbml0ZXJfbnVtID0gdHJlZV90b191aHdp IChuaXRlcik7DQo+ID4gPiA+ICsgICAgICAgaWYgKG5pdGVyX251bSAlIDIgIT0gMCkNCj4gPiA+ ID4gKyAgICAgICBtYXRjaF9vcFswXSA9ICBidWlsZF96ZXJvX2NzdCAodHlwZSk7DQo+ID4gPiA+ ICsgICAgfQ0KPiA+ID4gPiArDQo+ID4gPiA+ICsgIGludiA9IFBISV9BUkdfREVGX0ZST01fRURH RSAoaGVhZGVyX3BoaSwgbG9vcF9wcmVoZWFkZXJfZWRnZQ0KPiA+ID4gPiArIChsb29wKSk7ICBy ZXR1cm4gZm9sZF9idWlsZDIgKGNvZGUxLCB0eXBlLCBpbnYsIG1hdGNoX29wWzBdKTsgfQ0KPiA+ ID4NCj4gPiA+IFRoZSB9IGdvZXMgdG8gdGhlIG5leHQgbGluZS4NCj4gPiA+DQo+ID4gPiA+ICsN Cj4gPiA+ID4gIC8qIERvIGZpbmFsIHZhbHVlIHJlcGxhY2VtZW50IGZvciBMT09QLCByZXR1cm4g dHJ1ZSBpZiB3ZSBkaWQNCj4gPiA+ID4gYW55dGhpbmcuICAqLw0KPiA+ID4gPg0KPiA+ID4gPiAg Ym9vbA0KPiA+ID4gPiBAQCAtMzY4Nyw2ICszNzM0LDE4IEBAIGZpbmFsX3ZhbHVlX3JlcGxhY2Vt ZW50X2xvb3AgKGNsYXNzIGxvb3ANCj4gKmxvb3ApDQo+ID4gPiA+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZm9sZGVkX2Nhc3RzKTsNCj4gPiA+ID4gICAg ICAgIGRlZiA9IGNvbXB1dGVfb3ZlcmFsbF9lZmZlY3Rfb2ZfaW5uZXJfbG9vcCAoZXhfbG9vcCwg ZGVmKTsNCj4gPiA+ID4NCj4gPiA+ID4gKyAgICAgIC8qIEhhbmRsZSBiaXRvcCB3aXRoIGludmFy aWFudCBpbmR1Y3Rpb24gZXhwcmVzc2lvbi4NCj4gPiA+ID4gKw0KPiA+ID4gPiArICAgICAgIC5p LmUNCj4gPiA+ID4gKyAgICAgICBmb3IgKGludCBpID0wIDtpIDwgMzI7IGkrKykNCj4gPiA+ID4g KyAgICAgICAgIHRtcCAmPSBiaXQyOw0KPiA+ID4gPiArICAgICAgIGlmIGJpdDIgaXMgYW4gaW52 YXJpYW50IGluIGxvb3Agd2hpY2ggY291bGQgc2ltcGxlIHRvDQo+ID4gPiA+ICsgICAgICAgdG1w ICY9IGJpdDIuICAqLw0KPiA+ID4gPiArICAgICAgdHJlZSBiaXRpbnZfZGVmOw0KPiA+ID4gPiAr ICAgICAgaWYgKChiaXRpbnZfZGVmDQo+ID4gPg0KPiA+ID4gcGxlYXNlIHVzZSBlbHNlIGlmIGhl cmUNCj4gPiA+DQo+ID4gPiBvdGhlcndpc2UgbG9va3MgT0suDQo+ID4gPg0KPiA+ID4gPiArICAg ICAgICAgID0gYW5hbHl6ZV9hbmRfY29tcHV0ZV9iaXRvcF93aXRoX2ludl9lZmZlY3QgKGxvb3As IHBoaWRlZiwgbml0ZXIpKSkNCj4gPiA+ID4gKyAgICAgICBkZWYgPSBiaXRpbnZfZGVmOw0KPiA+ ID4gPiArDQo+ID4gPiA+ICAgICAgICAvKiBIYW5kbGUgYml0d2lzZSBpbmR1Y3Rpb24gZXhwcmVz c2lvbi4NCj4gPiA+ID4NCj4gPiA+ID4gICAgICAgICAgLmkuZS4NCj4gPiA+ID4gLS0NCj4gPiA+ ID4gMi4xOC4yDQo+ID4gPiA+DQo= --_002_DM4PR11MB54879C9C4354840AEC78FB29EC489DM4PR11MB5487namp_ Content-Type: application/octet-stream; name="0001-Enhance-final_value_replacement_loop-to-handle-bitop.patch" Content-Description: 0001-Enhance-final_value_replacement_loop-to-handle-bitop.patch Content-Disposition: attachment; filename="0001-Enhance-final_value_replacement_loop-to-handle-bitop.patch"; size=8389; creation-date="Tue, 13 Sep 2022 07:07:27 GMT"; modification-date="Fri, 16 Sep 2022 02:30:47 GMT" Content-Transfer-Encoding: base64 RnJvbSBlYTk5MWJkOTAyMjQxNmFkNjdmNTFkMjI4YmJmYWE5MzQzZGIyNzJkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBrb25nbGluMSA8bGluZ2xpbmcua29uZ0BpbnRlbC5jb20+CkRh dGU6IE1vbiwgMSBBdWcgMjAyMiAxNzo0ODowNSArMDgwMApTdWJqZWN0OiBbUEFUQ0hdIEVuaGFu Y2UgZmluYWxfdmFsdWVfcmVwbGFjZW1lbnRfbG9vcCB0byBoYW5kbGUgYml0b3Agd2l0aCBhbgog aW52YXJpYW50IGluZHVjdGlvbi4KClRoaXMgcGF0Y2ggd2lsbCBlbmFibGUgYmVsb3cgb3B0aW1p emF0aW9uOgoKewotICBsb25nIHVuc2lnbmVkIGludCBiaXQ7Ci0KLSAgPGJiIDI+IFtsb2NhbCBj b3VudDogMzI1MzQzNzZdOgotCi0gIDxiYiAzPiBbbG9jYWwgY291bnQ6IDEwNDEyMDc0NDldOgot ICAjIHRtcF8xMCA9IFBISSA8dG1wXzcoNSksIHRtcF80KEQpKDIpPgotICAjIGJpdF8xMiA9IFBI SSA8Yml0XzgoNSksIDAoMik+Ci0gIHRtcF83ID0gYml0Ml82KEQpICYgdG1wXzEwOwotICBiaXRf OCA9IGJpdF8xMiArIDE7Ci0gIGlmIChiaXRfOCAhPSAzMikKLSAgICBnb3RvIDxiYiA1PjsgWzk2 Ljk3JV0KLSAgZWxzZQotICAgIGdvdG8gPGJiIDQ+OyBbMy4wMyVdCi0KLSAgPGJiIDU+IFtsb2Nh bCBjb3VudDogMTAwOTY1ODg2NV06Ci0gIGdvdG8gPGJiIDM+OyBbMTAwLjAwJV0KLQotICA8YmIg ND4gW2xvY2FsIGNvdW50OiAzMjUzNDM3Nl06Ci0gICMgdG1wXzExID0gUEhJIDx0bXBfNygzKT4K LSAgcmV0dXJuIHRtcF8xMTsKKyAgdG1wXzExID0gdG1wXzQgKEQpICYgYml0Ml82IChEKTsKKyAg cmV0dXJuIHRtcF8xMTsKCn0KCmdjYy9DaGFuZ2VMb2c6CgoJUFIgbWlkZGxlLWVuZC8xMDU3MzUK CSogdHJlZS1zY2FsYXItZXZvbHV0aW9uLmNjCgkoYW5hbHl6ZV9hbmRfY29tcHV0ZV9iaXRvcF93 aXRoX2ludl9lZmZlY3QpOiBOZXcgZnVuY3Rpb24uCgkoZmluYWxfdmFsdWVfcmVwbGFjZW1lbnRf bG9vcCk6IEVuaGFuY2VkIHRvIGhhbmRsZSBiaXRvcAoJd2l0aCBpbnYgaW5kdWN0aW9uLgoKZ2Nj L3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6CgoJKiBnY2MudGFyZ2V0L2kzODYvcHIxMDU3MzUtMS5jOiBO ZXcgdGVzdC4KCSogZ2NjLnRhcmdldC9pMzg2L3ByMTA1NzM1LTIuYzogTmV3IHRlc3QuCi0tLQog Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHIxMDU3MzUtMS5jIHwgODggKysrKysrKysr KysrKysrKysrKysKIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3ByMTA1NzM1LTIuYyB8 IDI4ICsrKysrKysKIGdjYy90cmVlLXNjYWxhci1ldm9sdXRpb24uY2MgICAgICAgICAgICAgICB8 IDkzICsrKysrKysrKysrKysrKysrKystLS0KIDMgZmlsZXMgY2hhbmdlZCwgMTk5IGluc2VydGlv bnMoKyksIDEwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9pMzg2L3ByMTA1NzM1LTEuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3ByMTA1NzM1LTIuYwoKZGlmZiAtLWdpdCBhL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3ByMTA1NzM1LTEuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9pMzg2L3ByMTA1NzM1LTEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uNjlkZTZiMjkxMWEKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvaTM4Ni9wcjEwNTczNS0xLmMKQEAgLTAsMCArMSw4OCBAQAorLyogeyBkZy1kbyBjb21w aWxlIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8xIC1mZHVtcC10cmVlLXNjY3AtZGV0YWlscyIg fSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzIHtmaW5hbCB2YWx1ZSBy ZXBsYWNlbWVudH0gOCAic2NjcCIgfSB9ICovCisKK3Vuc2lnbmVkIGludAorX19hdHRyaWJ1dGVf Xygobm9pcGEpKQorZm9vICh1bnNpZ25lZCBpbnQgdG1wLCB1bnNpZ25lZCBpbnQgYml0MikKK3sK KyAgZm9yIChpbnQgYml0ID0gMDsgYml0IDwgNjQ7IGJpdCsrKQorICAgIHRtcCAmPSBiaXQyOwor ICByZXR1cm4gdG1wOworfQorCit1bnNpZ25lZCBpbnQKK19fYXR0cmlidXRlX18oKG5vaXBhKSkK K2ZvbzEgKHVuc2lnbmVkIGludCB0bXAsIHVuc2lnbmVkIGludCBiaXQyKQoreworICBmb3IgKGlu dCBiaXQgPSA2MzsgYml0ID49IDA7IGJpdCAtPTMpCisgICAgdG1wICY9IGJpdDI7CisgIHJldHVy biB0bXA7Cit9CisKK3Vuc2lnbmVkIGludAorX19hdHRyaWJ1dGVfXygobm9pcGEpKQorZm9vMiAo dW5zaWduZWQgaW50IHRtcCwgdW5zaWduZWQgaW50IGJpdDIpCit7CisgIGZvciAoaW50IGJpdCA9 IDA7IGJpdCA8IDY0OyBiaXQrKykKKyAgICB0bXAgfD0gYml0MjsKKyAgcmV0dXJuIHRtcDsKK30K KwordW5zaWduZWQgaW50CitfX2F0dHJpYnV0ZV9fKChub2lwYSkpCitmb28zICh1bnNpZ25lZCBp bnQgdG1wLCB1bnNpZ25lZCBpbnQgYml0MikKK3sKKyAgZm9yIChpbnQgYml0ID0gNjM7IGJpdCA+ PSAwOyBiaXQgLT0zKQorICAgIHRtcCB8PSBiaXQyOworICByZXR1cm4gdG1wOworfQorCit1bnNp Z25lZCBpbnQKK19fYXR0cmlidXRlX18oKG5vaXBhKSkKK2ZvbzQgKHVuc2lnbmVkIGludCB0bXAs IHVuc2lnbmVkIGludCBiaXQyKQoreworICBmb3IgKGludCBiaXQgPSAwOyBiaXQgPCA2NDsgYml0 KyspCisgICAgdG1wIF49IGJpdDI7CisgIHJldHVybiB0bXA7Cit9CisKK3Vuc2lnbmVkIGludAor X19hdHRyaWJ1dGVfXygobm9pcGEpKQorZm9vNSAodW5zaWduZWQgaW50IHRtcCwgdW5zaWduZWQg aW50IGJpdDIpCit7CisgIGZvciAoaW50IGJpdCA9IDA7IGJpdCA8IDYzOyBiaXQrKykKKyAgICB0 bXAgXj0gYml0MjsKKyAgcmV0dXJuIHRtcDsKK30KKwordW5zaWduZWQgaW50CitfX2F0dHJpYnV0 ZV9fKChub2lwYSkpCitmICh1bnNpZ25lZCBpbnQgdG1wLCBpbnQgYml0LCB1bnNpZ25lZCBpbnQg Yml0MikKK3sKKyAgdW5zaWduZWQgaW50IHJlcyA9IHRtcDsKKyAgZm9yIChpbnQgaSA9IDA7IGkg PCBiaXQ7IGkrKykKKyAgICByZXMgJj0gYml0MjsKKyAgcmV0dXJuIHJlczsKK30KKwordW5zaWdu ZWQgaW50CitfX2F0dHJpYnV0ZV9fKChub2lwYSkpCitmMSAodW5zaWduZWQgaW50IHRtcCwgaW50 IGJpdCwgdW5zaWduZWQgaW50IGJpdDIpCit7CisgIHVuc2lnbmVkIGludCByZXMgPSB0bXA7Cisg IGZvciAoaW50IGkgPSAwOyBpIDwgYml0OyBpKyspCisgICAgcmVzIHw9IGJpdDI7CisgIHJldHVy biByZXM7Cit9CisKK3Vuc2lnbmVkIGludAorX19hdHRyaWJ1dGVfXygobm9pcGEpKQorZjIgKHVu c2lnbmVkIGludCB0bXAsIGludCBiaXQsIHVuc2lnbmVkIGludCBiaXQyKQoreworICB1bnNpZ25l ZCBpbnQgcmVzID0gdG1wOworICBmb3IgKGludCBpID0gMDsgaSA8IGJpdDsgaSsrKQorICAgIHJl cyBePSBiaXQyOworICByZXR1cm4gcmVzOworfQorCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvaTM4Ni9wcjEwNTczNS0yLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv aTM4Ni9wcjEwNTczNS0yLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LjY2Y2M1ZmJhMWU3Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2kzODYvcHIxMDU3MzUtMi5jCkBAIC0wLDAgKzEsMjggQEAKKy8qIHsgZGctZG8gcnVuIH0gKi8K Ky8qIHsgZGctb3B0aW9ucyAiLU8xIiB9ICovCisKKyNpbmNsdWRlICJwcjEwNTczNS0xLmMiCisK K2ludCBtYWluKCkKK3sKKyAgdW5zaWduZWQgaW50IHRtcCA9IDB4MTEwMTsKKyAgdW5zaWduZWQg aW50IGJpdDIgPSAweDExMTEwMTsKKyAgaWYgKGZvbyAodG1wLCBiaXQyKSAhPSAweDExMDEpCisg ICAgX19idWlsdGluX2Fib3J0ICgpOyAKKyAgaWYgKGZvbzEgKHRtcCwgYml0MikgIT0gMHgxMTAx KQorICAgIF9fYnVpbHRpbl9hYm9ydCAoKTsKKyAgaWYgKGZvbzIgKHRtcCwgYml0MikgIT0gMHgx MTExMDEpCisgICAgX19idWlsdGluX2Fib3J0ICgpOworICBpZiAoZm9vMyAodG1wLCBiaXQyKSAh PSAweDExMTEwMSkKKyAgICBfX2J1aWx0aW5fYWJvcnQgKCk7CisgIGlmIChmb280ICh0bXAsIGJp dDIpICE9IDB4MTEwMSkKKyAgICBfX2J1aWx0aW5fYWJvcnQgKCk7CisgIGlmIChmb281ICh0bXAs IGJpdDIpICE9IDB4MTEwMDAwKQorICAgIF9fYnVpbHRpbl9hYm9ydCAoKTsKKyAgaWYgKGYgKHRt cCwgNjQsIGJpdDIpICE9IDB4MTEwMSkKKyAgICBfX2J1aWx0aW5fYWJvcnQgKCk7CisgIGlmIChm MSAodG1wLCA2NCwgYml0MikgIT0gMHgxMTExMDEpCisgICAgX19idWlsdGluX2Fib3J0ICgpOwor ICBpZiAoZjIgKHRtcCwgNjQsIGJpdDIpICE9IDB4MTEwMSkKKyAgICBfX2J1aWx0aW5fYWJvcnQg KCk7Cit9CmRpZmYgLS1naXQgYS9nY2MvdHJlZS1zY2FsYXItZXZvbHV0aW9uLmNjIGIvZ2NjL3Ry ZWUtc2NhbGFyLWV2b2x1dGlvbi5jYwppbmRleCBmYzU5ZDAzNWIxOS4uOWYzMGY3OGNiNWQgMTAw NjQ0Ci0tLSBhL2djYy90cmVlLXNjYWxhci1ldm9sdXRpb24uY2MKKysrIGIvZ2NjL3RyZWUtc2Nh bGFyLWV2b2x1dGlvbi5jYwpAQCAtMzYzNSw2ICszNjM1LDY0IEBAIGVudW0gYml0X29wX2tpbmQK ICAgcmV0dXJuIGZvbGRfYnVpbGQyIChjb2RlMSwgdHlwZSwgaW52LCB3aWRlX2ludF90b190cmVl ICh0eXBlLCBiaXRzKSk7CiB9CiAKKy8qIE1hdGNoLnBkIGZ1bmN0aW9uIHRvIG1hdGNoIGJpdG9w IHdpdGggaW52YXJpYW50IGV4cHJlc3Npb24KKyAgLmkuZS4KKyAgdG1wXzcgPSBfMCAmIF8xOyAq LworZXh0ZXJuIGJvb2wgZ2ltcGxlX2JpdG9wX3dpdGhfaW52X3AgKHRyZWUsIHRyZWUgKiwgdHJl ZSAoKikodHJlZSkpOworCisvKiBSZXR1cm4gdGhlIGluZHVjdGl2ZSBleHByZXNzaW9uIG9mIGJp dG9wIHdpdGggaW52YXJpYW50IGlmIHBvc3NpYmxlLAorICAgb3RoZXJ3aXNlIHJldHVybnMgREVG LiAgKi8KK3N0YXRpYyB0cmVlCithbmFseXplX2FuZF9jb21wdXRlX2JpdG9wX3dpdGhfaW52X2Vm ZmVjdCAoY2xhc3MgbG9vcCogbG9vcCwgdHJlZSBwaGlkZWYsCisJCQkJCSAgIHRyZWUgbml0ZXIp Cit7CisgIHRyZWUgbWF0Y2hfb3BbMl0saW52OworICB0cmVlIHR5cGUgPSBUUkVFX1RZUEUgKHBo aWRlZik7CisgIGdwaGkqIGhlYWRlcl9waGkgPSBOVUxMOworICBlbnVtIHRyZWVfY29kZSBjb2Rl OworICAvKiBtYXRjaCB0aGluZyBsaWtlIG9wMCAobWF0Y2hbMF0pLCBvcDEgKG1hdGNoWzFdKSwg cGhpZGVmIChQSElERUYpCisKKyAgICBvcDEgPSAgUEhJIDxwaGlkZWYsIGludj4KKyAgICBwaGlk ZWYgPSBvcDAgJiBvcDEKKyAgICBpZiBvcDAgaXMgYW4gaW52YXJpYW50LCBpdCBjb3VsZCBjaGFu Z2UgdG8KKyAgICBwaGlkZWYgPSBvcDAgJiBpbnYuICAqLworICBnaW1wbGUgKmRlZjsKKyAgZGVm ID0gU1NBX05BTUVfREVGX1NUTVQgKHBoaWRlZik7CisgIGlmICghKGlzX2dpbXBsZV9hc3NpZ24g KGRlZikKKyAgICAgICYmICgoY29kZSA9IGdpbXBsZV9hc3NpZ25fcmhzX2NvZGUgKGRlZikpLCB0 cnVlKQorICAgICAgJiYgKGNvZGUgPT0gQklUX0FORF9FWFBSIHx8IGNvZGUgPT0gQklUX0lPUl9F WFBSCisJICB8fCBjb2RlID09IEJJVF9YT1JfRVhQUikpKQorICAgIHJldHVybiBOVUxMX1RSRUU7 CisKKyAgbWF0Y2hfb3BbMF0gPSBnaW1wbGVfYXNzaWduX3JoczEgKGRlZik7CisgIG1hdGNoX29w WzFdID0gZ2ltcGxlX2Fzc2lnbl9yaHMyIChkZWYpOworCisgIGlmIChUUkVFX0NPREUgKG1hdGNo X29wWzFdKSAhPSBTU0FfTkFNRQorICAgICAgfHwgIWV4cHJfaW52YXJpYW50X2luX2xvb3BfcCAo bG9vcCwgbWF0Y2hfb3BbMF0pCisgICAgICB8fCAhKGhlYWRlcl9waGkgPSBkeW5fY2FzdCA8Z3Bo aSAqPiAoU1NBX05BTUVfREVGX1NUTVQgKG1hdGNoX29wWzFdKSkpCisgICAgICB8fCBnaW1wbGVf cGhpX251bV9hcmdzIChoZWFkZXJfcGhpKSAhPSAyKQorICAgIHJldHVybiBOVUxMX1RSRUU7CisK KyAgaWYgKFBISV9BUkdfREVGX0ZST01fRURHRSAoaGVhZGVyX3BoaSwgbG9vcF9sYXRjaF9lZGdl IChsb29wKSkgIT0gcGhpZGVmKQorICAgIHJldHVybiBOVUxMX1RSRUU7CisKKyAgZW51bSB0cmVl X2NvZGUgY29kZTEKKyAgICA9IGdpbXBsZV9hc3NpZ25fcmhzX2NvZGUgKGRlZik7CisKKyAgaWYg KGNvZGUxID09IEJJVF9YT1JfRVhQUikKKyAgICB7CisgICAgICAgaWYgKCF0cmVlX2ZpdHNfdWh3 aV9wIChuaXRlcikpCisJcmV0dXJuIE5VTExfVFJFRTsKKyAgICAgICB1bnNpZ25lZCBIT1NUX1dJ REVfSU5UIG5pdGVyX251bTsKKyAgICAgICBuaXRlcl9udW0gPSB0cmVlX3RvX3Vod2kgKG5pdGVy KTsKKyAgICAgICBpZiAobml0ZXJfbnVtICUgMiAhPSAwKQorCW1hdGNoX29wWzBdID0gIGJ1aWxk X3plcm9fY3N0ICh0eXBlKTsKKyAgICB9CisKKyAgaW52ID0gUEhJX0FSR19ERUZfRlJPTV9FREdF IChoZWFkZXJfcGhpLCBsb29wX3ByZWhlYWRlcl9lZGdlIChsb29wKSk7CisgIHJldHVybiBmb2xk X2J1aWxkMiAoY29kZTEsIHR5cGUsIGludiwgbWF0Y2hfb3BbMF0pOworfQorCiAvKiBEbyBmaW5h bCB2YWx1ZSByZXBsYWNlbWVudCBmb3IgTE9PUCwgcmV0dXJuIHRydWUgaWYgd2UgZGlkIGFueXRo aW5nLiAgKi8KIAogYm9vbApAQCAtMzY4NSw3ICszNzQzLDI0IEBAIGZpbmFsX3ZhbHVlX3JlcGxh Y2VtZW50X2xvb3AgKGNsYXNzIGxvb3AgKmxvb3ApCiAgICAgICBib29sIGZvbGRlZF9jYXN0czsK ICAgICAgIGRlZiA9IGFuYWx5emVfc2NhbGFyX2V2b2x1dGlvbl9pbl9sb29wIChleF9sb29wLCBs b29wLCBkZWYsCiAJCQkJCSAgICAgICZmb2xkZWRfY2FzdHMpOwotICAgICAgZGVmID0gY29tcHV0 ZV9vdmVyYWxsX2VmZmVjdF9vZl9pbm5lcl9sb29wIChleF9sb29wLCBkZWYpOworCisgICAgICB0 cmVlIGJpdGludl9kZWYsIGJpdF9kZWY7CisgICAgICB1bnNpZ25lZCBIT1NUX1dJREVfSU5UIG5p dGVyX251bTsKKworICAgICAgaWYgKGRlZiAhPSBjaHJlY19kb250X2tub3cpCisJZGVmID0gY29t cHV0ZV9vdmVyYWxsX2VmZmVjdF9vZl9pbm5lcl9sb29wIChleF9sb29wLCBkZWYpOworCisgICAg ICAvKiBIYW5kbGUgYml0b3Agd2l0aCBpbnZhcmlhbnQgaW5kdWN0aW9uIGV4cHJlc3Npb24uCisK KwkuaS5lCisJZm9yIChpbnQgaSA9MCA7aSA8IDMyOyBpKyspCisJICB0bXAgJj0gYml0MjsKKwlp ZiBiaXQyIGlzIGFuIGludmFyaWFudCBpbiBsb29wIHdoaWNoIGNvdWxkIHNpbXBsZSB0bworCXRt cCAmPSBiaXQyLiAgKi8KKyAgICAgIGVsc2UgaWYgKChiaXRpbnZfZGVmCisJCT0gYW5hbHl6ZV9h bmRfY29tcHV0ZV9iaXRvcF93aXRoX2ludl9lZmZlY3QgKGxvb3AsCisJCQkJCQkJICAgICBwaGlk ZWYsIG5pdGVyKSkpCisJZGVmID0gYml0aW52X2RlZjsKIAogICAgICAgLyogSGFuZGxlIGJpdHdp c2UgaW5kdWN0aW9uIGV4cHJlc3Npb24uCiAKQEAgLTM2OTcsMTUgKzM3NzIsMTMgQEAgZmluYWxf dmFsdWVfcmVwbGFjZW1lbnRfbG9vcCAoY2xhc3MgbG9vcCAqbG9vcCkKIAkgZXhwcmVzc2libGUs IGJ1dCBpbiBmYWN0IGZpbmFsIHZhbHVlIG9mIFJFUyBjYW4gYmUgcmVwbGFjZWQgYnkKIAkgUkVT ICYgQ09OU1RBTlQgd2hlcmUgQ09OU1RBTlQgYWxsIG9uZXMgd2l0aCBiaXQgezAsMyw2LDksLi4u ICw2M30KIAkgYmVpbmcgY2xlYXJlZCwgc2ltaWxhciBmb3IgQklUX0lPUl9FWFBSL0JJVF9YT1Jf RVhQUi4gICovCi0gICAgICB1bnNpZ25lZCBIT1NUX1dJREVfSU5UIG5pdGVyX251bTsKLSAgICAg IHRyZWUgYml0X2RlZjsKLSAgICAgIGlmICh0cmVlX2ZpdHNfdWh3aV9wIChuaXRlcikKLQkgICYm IChuaXRlcl9udW0gPSB0cmVlX3RvX3Vod2kgKG5pdGVyKSkgIT0gMAotCSAgJiYgbml0ZXJfbnVt IDwgVFlQRV9QUkVDSVNJT04gKFRSRUVfVFlQRSAocGhpZGVmKSkKLQkgICYmIChiaXRfZGVmCi0J ICAgICAgPSBhbmFseXplX2FuZF9jb21wdXRlX2JpdHdpc2VfaW5kdWN0aW9uX2VmZmVjdCAobG9v cCwKLQkJCQkJCQkgICAgICBwaGlkZWYsCi0JCQkJCQkJICAgICAgbml0ZXJfbnVtKSkpCisgICAg ICBlbHNlIGlmICh0cmVlX2ZpdHNfdWh3aV9wIChuaXRlcikKKwkgICAgICAgJiYgKG5pdGVyX251 bSA9IHRyZWVfdG9fdWh3aSAobml0ZXIpKSAhPSAwCisJICAgICAgICYmIG5pdGVyX251bSA8IFRZ UEVfUFJFQ0lTSU9OIChUUkVFX1RZUEUgKHBoaWRlZikpCisJICAgICAgICYmIChiaXRfZGVmCisJ CSAgID0gYW5hbHl6ZV9hbmRfY29tcHV0ZV9iaXR3aXNlX2luZHVjdGlvbl9lZmZlY3QgKGxvb3As CisJCQkJCQkJCSAgIHBoaWRlZiwKKwkJCQkJCQkJICAgbml0ZXJfbnVtKSkpCiAJZGVmID0gYml0 X2RlZjsKIAogICAgICAgaWYgKCF0cmVlX2RvZXNfbm90X2NvbnRhaW5fY2hyZWNzIChkZWYpCi0t IAoyLjE4LjIKCg== --_002_DM4PR11MB54879C9C4354840AEC78FB29EC489DM4PR11MB5487namp_--