From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by sourceware.org (Postfix) with ESMTPS id DBC573857713 for ; Mon, 12 Jun 2023 02:59:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org DBC573857713 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1686538770; x=1718074770; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=gnIgkJBDqnGm4NS0trWcNntFnLZFzlsvDFtbE5Tlxi0=; b=Xkv6yGlDtBrCMr6KtzQgdGLPMKaZDi71SWcWkUanlYngIX9UbMeCjG7Z K8zK5tdzRWzlO44Ux/JZSqoEv0FZUAv8dYHdHZlGCE+i3/nd0ZQ2d/7wD 8j7pi9c18zXmdu1OOx4uPWxyw9chzg2GMuO5+ceOL393MrT+I8SKhjRIt qyp/MzTT6GOp3o/tIi1P2BRO3qrcyByVw+dtAJzAIAy5l2WkA5KYi+UpJ 3YDImjiBRNI6ORM4nob/kh1eQWgpURIQqE+nZIBM6GH3VRGrt4pcQD5Kk X4/OnvDmmsNf+zfeRYt/wtZLubWUlF6199s7fA3yDQnocleNfG4Gaei5A g==; X-IronPort-AV: E=McAfee;i="6600,9927,10738"; a="444302009" X-IronPort-AV: E=Sophos;i="6.00,235,1681196400"; d="scan'208";a="444302009" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2023 19:59:29 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10738"; a="823801440" X-IronPort-AV: E=Sophos;i="6.00,235,1681196400"; d="scan'208";a="823801440" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmsmga002.fm.intel.com with ESMTP; 11 Jun 2023 19:59:29 -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.23; Sun, 11 Jun 2023 19:59:29 -0700 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) 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.23; Sun, 11 Jun 2023 19:59:28 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) 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.2507.23 via Frontend Transport; Sun, 11 Jun 2023 19:59:28 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.106) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Sun, 11 Jun 2023 19:59:27 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=V707quILEKyn+Ac8r83DJHyVSlNYmOwnvjXdRH8vDpV4BRF/7h2naNZOENiq5VVUJXJ96lqSaUGRvzIQKBd0dtBG9Zxt9F1e3yv42dxrn/CKRmz9fs0vcBtcyespXzI4gws5kW5zRO8WVY36egOYPoT/rfDCjdPi0LDaGywYKT7NKq9x9WwIQYbW3+FiEYATkSLFpQQkGOGnNuOmUmeMNR+ohfLTMjPy9wEf5+7ei1eBIhNhu4q3aowxLpirtx4v9S0ppOJM3AuDqBM1mqqjPE2DythVMZGVliiAB9hHt6TV+khOT50AwzODc+RKxaIdtGjV9UWpAxo2fq4s3MOs+g== 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=gnIgkJBDqnGm4NS0trWcNntFnLZFzlsvDFtbE5Tlxi0=; b=XKChnr+14XVwkHzoHzSwT4K9d1UP++sPWrlqXMBI6sXfw3/tLCrsO0x5H5UQ3WCVZYpajdmNyOypcaMgGnjbwA1MnlOf8BHC2MqVdtBwhCwE87cZfSZvRPzHMHbPc5GMCjg56VgE8msTHXC4xEdsae/6kdM//i5R7jzQ3oUlatEIzurkgVUh8gyG6ti3mb6EzwioSenQf104VkhStfNuKRS5dYgsV8XwmX3U8oz9gzeI21r79QWopwArGDBtCEQtPup0sui+Se7Me9m51NE6xQG+JiY3e22k7txbBEgq9zLhaKB+c0rGEoD1dyUBCTd9ZUAzS86CgDOlPkh7FYAxRA== 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 IA1PR11MB6466.namprd11.prod.outlook.com (2603:10b6:208:3a6::21) by PH0PR11MB7423.namprd11.prod.outlook.com (2603:10b6:510:282::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.38; Mon, 12 Jun 2023 02:59:22 +0000 Received: from IA1PR11MB6466.namprd11.prod.outlook.com ([fe80::e328:3539:3cbf:19bf]) by IA1PR11MB6466.namprd11.prod.outlook.com ([fe80::e328:3539:3cbf:19bf%6]) with mapi id 15.20.6455.030; Mon, 12 Jun 2023 02:59:22 +0000 From: "Wang, Yanzhang" To: Kito Cheng CC: "gcc-patches@gcc.gnu.org" , "juzhe.zhong@rivai.ai" , "kito.cheng@sifive.com" , "Li, Pan2" Subject: RE: [PATCH v4] RISC-V: Add vector psabi checking. Thread-Topic: [PATCH v4] RISC-V: Add vector psabi checking. Thread-Index: AQHZmpfbPlUMNaqs7EGGo/WLr12jX6+COt8AgARBo9A= Date: Mon, 12 Jun 2023 02:59:21 +0000 Message-ID: References: <20230426123743.3210243-1-yanzhang.wang@intel.com> <20230609060117.4083144-1-yanzhang.wang@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: IA1PR11MB6466:EE_|PH0PR11MB7423:EE_ x-ms-office365-filtering-correlation-id: 812f2f8c-d17f-4ce2-aafc-08db6af105ad x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Ejc1+w/abWBJPCuca3k68caOb8kPuRvUI/2exhKt87KVOdBX3ZGMfLqElO/Jq4lSkmcMx439e9yjVOYoG7Mr3vZVFvnNZMLBBPj+/Uni2fTiN77APzKdhlnqKbNLbylpt75ETXFxbmBSecZKodUmyYVun/7VO+dEEBTsI8HFu4S6RrNFzAJZFKuww8B5XTnsLltDG3wgGZRqUxZSXAkFAIaHXg9LplQmAQbE9d1s2b6wVt1KYH75f2acjpvfZ5VQNQFRPDZJnB7ViPnLb2oQ7wfdWHTnEomC21YJECSlzWvUPm7CGDXza+tAJt1Hw71SMw1np+yJvwnBqcpYT8Fg6nMfrrSD3oswS6oxJaUlSWmmu1gvqtKmgzin0qY/dU37I2ai2zW3Pq2mIudOpL8kAh9hTyohgAiLJBDJiRPRLVCCnLN69xoUaWYcgQgfpjShYRPvDhhr1v0BG3gUQPBKY01S+pUIJ4W3Q4ntY3cLPCMGx7uYKy1JwbMvVHEUbjqf4Be3+0J3Jm1ye/YWlgVgNHNTO6UJcfcsIdWy6Vnw1Dqh1kK9eVmpYT9MfqOIhV4OmF2pX0mo72aPKAFUbU6zWYbnHI9x67Vx1MF/1bqrGPE= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR11MB6466.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(39860400002)(366004)(376002)(136003)(346002)(396003)(451199021)(107886003)(26005)(6506007)(53546011)(186003)(84970400001)(9686003)(83380400001)(7696005)(2906002)(54906003)(71200400001)(30864003)(8936002)(82960400001)(8676002)(55016003)(33656002)(478600001)(6916009)(38100700002)(5660300002)(122000001)(86362001)(38070700005)(66476007)(66946007)(4326008)(41300700001)(52536014)(316002)(64756008)(76116006)(66446008)(66556008);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Yy9wSlpBWUI2Wk52MG5pRGJkTVdsTTN4SnArYTJoN0FPc3NlUlBQWnFVSkVG?= =?utf-8?B?RFE5L2JhTjZaOFNaOWNQRkNWQk44NU54TEZVNENOTElsVVovU3NKdE9hd2NY?= =?utf-8?B?OVVxNURBVms5NDViRU9xc1E0VnNNY3ZjdVExUFhpRzZyNjdmZmlzb0s4N0Y2?= =?utf-8?B?UmlNa05SNldMS0FabkpEWHFvdWNzU3NoUFVpY3VGN252ZHh5OFIxNFRSZm1U?= =?utf-8?B?Ni9tWElLbEw4enBubncxaXRuZzFtZ0Nha2Ric3VPK1hKdmhRYm93SEw2WEZY?= =?utf-8?B?TlVJQ01YeHp6SWZGQ1hjRm5LOHloaFA5N2tubjU2ejNyNnBkek1NYzB4ejZo?= =?utf-8?B?UmZIZmFscnVxa1RYSkpwN3dnSlcyMVFwZTRUUHNYWE8vR1RvaXljbnJ3VDNZ?= =?utf-8?B?RVhmUzI5VmN2OVR1cXBBQlVzcjZ1cFhaaU9vMnhITzBmYnZxQ0FQOXBQYWRs?= =?utf-8?B?QkR5TCtXY1ZKaGdUcDFuOEIzRDIrb2lIbzdwbCtaeXcya2NNQkZOTWRRNDVM?= =?utf-8?B?S1JSNHBNRmFFaGMzcTdPT1A0ZzVDd1VCVm8vaHFmVW1QaTZWWXdkZHdmV0hj?= =?utf-8?B?SFEyWUIwa1hWZ2tLZTdiR1BOMktqbzFmamo3TFNLYlZ0cStBMXlxV1IyZE9H?= =?utf-8?B?N3krNFNkTTAwOG1MeC9ZOTJLbFIxTWovcHFSaXhsV1JTU3o0NkhiajB2aUE0?= =?utf-8?B?bEVFcW1WMjViQndGa0V0eVpmV1RhdEdZUmkxUUQ2WlUwRUdacTdmcm9yemk5?= =?utf-8?B?YnE1b3JMU05HR0tyNzE0WXNteUlGZ1VIOTFjQ0x3alJsdWtGNUlkVlhFQ09I?= =?utf-8?B?VDhLMjNoSDRoREtzZUdJZU1iOExTR09hM1FsZGpHZVlRZ011cTZFRUJPeldy?= =?utf-8?B?WlIxU0srUitEbHoxSmhMeUx5NmtoVm5XL2VlejBVMFZla0pEN0hydnpRbmtX?= =?utf-8?B?ZGxBSDdCNmtvR1QrVWt4TWZSVkFqM2R3NE96amVPQlB1U3RQZHhHa3YzSW9x?= =?utf-8?B?RWV0WFhmL3FTejdYSmwzQmk0NHNvaUVBQU1OOGk5b2FKVkJxdUZMWHhUNnJp?= =?utf-8?B?SEQ0YWlRaTFuNTZjZmgrUC9tZjdyb0ZBTUJuYzduQkZCYkI5ekFEU254STBG?= =?utf-8?B?WGM2ZFFjQXBhdXdRc0NzVnBlKzNGQU1CZXZkMXpNUmxkSGNzZWx0OEpJODNs?= =?utf-8?B?OC9taW1iVHlRdFNaRzJpWUpwTXIwMDVIeXdXMWNnbUpidzVDWlhwT0FQMWRa?= =?utf-8?B?cFZpWjExd1kwM2NGZC9uTFd6U1Arc2d4ZWlySlFTK1I5L2NoaTdWNjVvL1Jz?= =?utf-8?B?S3RIOWRwdmxQU1hnVzFKQ0l6T2s5MDdCNHNWWUEyVjlpOWJBVHRxQTQzOHZt?= =?utf-8?B?NG42Q3dRUDFveXovbytxQzNmaVVoR1k4em5QQzZYbFdIZjNua0hCalhiYWlZ?= =?utf-8?B?VGJFeHVvZEE5cC9zSVQ3ODEvUVJOd0tvbmN3LzFSWlRUYkhDbWt3K05oM2to?= =?utf-8?B?RXY2bGw3VGMzdEg2dTVXN0paSzkyd2ZrZm5ydmplcHE2V2VSdXlDMEpDVFl6?= =?utf-8?B?S1VZT3l0OU5JelZBUzJkODA2UUMrVFRPL21QdEtHVjY2T2I0VWdnU0hxYWFt?= =?utf-8?B?ck5CZ2lKL080Q0krSUlseXkxRzh0bE5wL0UyVU4vN2h6YmUxVXR5NVJwYktV?= =?utf-8?B?NDEwbnJjWnFpY1RreUpyT0dtWExuVGdtc3FuRGk4dnNGciswcWZnNzdlSVRQ?= =?utf-8?B?UDIrTE01MjJmajM4Z1JaMGdORmlSR2dXMGt3SnZyeG1BSFdZcjVOdnBPbkV6?= =?utf-8?B?RVptblJuWHQ4VG1tSVUxZ0FzZnVYSGdxbllOSVF3T2dQTjBHMmtpUGJsZDdJ?= =?utf-8?B?YngyZUFqYTFNMFFraFNiaitvSU5YMkNRSUlkckk4c2haRHJhcDFhekVHZkNU?= =?utf-8?B?VG1PdndISDZmNHcySnZVVStuYmRBT3lyNlhMcGNLUEJyNHFqcDRDSm8yYWNa?= =?utf-8?B?QnlHalNnYkpQZGFnNndXKzE4MXl5WmNOenNtOW5YR2dFWGZERWYzY0FUR3k0?= =?utf-8?B?QVh6ckJEMWttTVhsV3hreENQMFEwTVQ3OTlDaStXRWRsdXBHb01ZTkJ3Rk1Z?= =?utf-8?Q?0LtQiHpQpTGqIttHipIbjQ1ZG?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: IA1PR11MB6466.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 812f2f8c-d17f-4ce2-aafc-08db6af105ad X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Jun 2023 02:59:21.7550 (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: 5o+4NC5DHeDxt9FOtQ+OIQPaMpYhzzrSAhvybqczsD7buJI51usNfDn1W9C3Vy8tYI9fDbNSh+RzdUhPayj4rA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB7423 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-11.2 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,LIKELY_SPAM_BODY,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE 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: SSByZXByb2R1Y2UgdGhlIGZhaWx1cmUgdG9vLiBCZWNhdXNlIGl0IHJldHVybnMgZWFybHkgaW4g Z2V0X2FyZ19pbmZvIGZvcg0Kdi1leHQgbW9kZS4gSSdsbCBtb3ZlIHRoZSBjaGVja2luZyB0byB0 aGUgYmVnaW5uaW5nLg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEtp dG8gQ2hlbmcgPGtpdG8uY2hlbmdAZ21haWwuY29tPg0KPiBTZW50OiBGcmlkYXksIEp1bmUgOSwg MjAyMyA1OjUyIFBNDQo+IFRvOiBXYW5nLCBZYW56aGFuZyA8eWFuemhhbmcud2FuZ0BpbnRlbC5j b20+DQo+IENjOiBnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZzsganV6aGUuemhvbmdAcml2YWkuYWk7 IGtpdG8uY2hlbmdAc2lmaXZlLmNvbTsNCj4gTGksIFBhbjIgPHBhbjIubGlAaW50ZWwuY29tPg0K PiBTdWJqZWN0OiBSZTogW1BBVENIIHY0XSBSSVNDLVY6IEFkZCB2ZWN0b3IgcHNhYmkgY2hlY2tp bmcuDQo+IA0KPiBIbW1tLCBJIHN0aWxsIHNhdyBzb21lIGZhaWwgb24gdGVzdHN1aXRlIGFmdGVy IGFwcGx5aW5nIHRoaXMgcGF0Y2gsIG1vc3QNCj4gYXJlIGJlY2F1c2UgdGhlIHRlc3RjYXNlIGhh cyB1c2VkIHZlY3RvciB0eXBlIGFzIGFyZ3VtZW50IG9yIHJldHVybiB2YWx1ZSwNCj4gYnV0IC4u IHZlY3Rvci1hYmktMS5jIHNob3VsZCBub3QgZmFpbCBJIHRoaW5rPw0KPiANCj4gRm9yIG90aGVy IGZhaWxzLCBJIHdvdWxkIHN1Z2dlc3QgeW91IGNvdWxkIGp1c3QgYWRkIC1Xbm8tcHNhYmkgdG8g cnZ2LmV4cA0KPiANCj4gICAgICAgICAgICAgICAgID09PSBnY2M6IFVuZXhwZWN0ZWQgZmFpbHMg Zm9yIHJ2NjRpbWFmZGN2IGxwNjRkIG1lZGxvdyA9PT0NCj4gRkFJTDogZ2NjLnRhcmdldC9yaXNj di92ZWN0b3ItYWJpLTEuYyAgIC1PMCAgICh0ZXN0IGZvciB3YXJuaW5ncywgbGluZSA3KQ0KPiBG QUlMOiBnY2MudGFyZ2V0L3Jpc2N2L3ZlY3Rvci1hYmktMS5jICAgLU8xICAgKHRlc3QgZm9yIHdh cm5pbmdzLCBsaW5lIDcpDQo+IEZBSUw6IGdjYy50YXJnZXQvcmlzY3YvdmVjdG9yLWFiaS0xLmMg ICAtTzIgICAodGVzdCBmb3Igd2FybmluZ3MsIGxpbmUgNykNCj4gRkFJTDogZ2NjLnRhcmdldC9y aXNjdi92ZWN0b3ItYWJpLTEuYyAgIC1PMiAtZmx0bw0KPiAtZm5vLXVzZS1saW5rZXItcGx1Z2lu IC1mbHRvLXBhcnRpdGlvbj1ub25lICAgKHRlc3QgZm9yIHdhcm5pbmdzLCBsaW5lDQo+IDcpDQo+ IEZBSUw6IGdjYy50YXJnZXQvcmlzY3YvdmVjdG9yLWFiaS0xLmMgICAtTzIgLWZsdG8gLWZ1c2Ut bGlua2VyLXBsdWdpbg0KPiAtZm5vLWZhdC1sdG8tb2JqZWN0cyAgICh0ZXN0IGZvciB3YXJuaW5n cywgbGluZSA3KQ0KPiBGQUlMOiBnY2MudGFyZ2V0L3Jpc2N2L3ZlY3Rvci1hYmktMS5jICAgLU8z IC1nICAgKHRlc3QgZm9yIHdhcm5pbmdzLCBsaW5lIDcpDQo+IEZBSUw6IGdjYy50YXJnZXQvcmlz Y3YvdmVjdG9yLWFiaS0xLmMgICAtT3MgICAodGVzdCBmb3Igd2FybmluZ3MsIGxpbmUgNykNCj4g RkFJTDogZ2NjLnRhcmdldC9yaXNjdi92ZWN0b3ItYWJpLTEuYyAgLU9nIC1nICAgKHRlc3QgZm9y IHdhcm5pbmdzLCBsaW5lIDcpDQo+IEZBSUw6IGdjYy50YXJnZXQvcmlzY3YvdmVjdG9yLWFiaS0x LmMgIC1PeiAgICh0ZXN0IGZvciB3YXJuaW5ncywgbGluZSA3KQ0KPiBGQUlMOiBnY2MudGFyZ2V0 L3Jpc2N2L3J2di9iYXNlL2Jpbm9wX3Z4X2NvbnN0cmFpbnQtMTIwLmMgKHRlc3QgZm9yIGV4Y2Vz cw0KPiBlcnJvcnMpDQo+IEZBSUw6IGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvaW50ZWdlcl9j b21wYXJlX2luc25fc2hvcnRjdXQuYyAodGVzdCBmb3INCj4gZXhjZXNzIGVycm9ycykNCj4gRkFJ TDogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9tYXNrX2luc25fc2hvcnRjdXQuYyAodGVzdCBm b3IgZXhjZXNzDQo+IGVycm9ycykNCj4gRkFJTDogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9t aXNjX3ZyZWludGVycHJldF92Ym9vbF92aW50LmMgKHRlc3QgZm9yDQo+IGV4Y2VzcyBlcnJvcnMp DQo+IEZBSUw6IGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvcHIxMTAxMDktMi5jICh0ZXN0IGZv ciBleGNlc3MgZXJyb3JzKQ0KPiBGQUlMOiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL3NjYWxh cl9tb3ZlLTkuYyAodGVzdCBmb3IgZXhjZXNzIGVycm9ycykNCj4gRkFJTDogZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS92bG11bF9leHQtMS5jICh0ZXN0IGZvciBleGNlc3MgZXJyb3JzKQ0KPiBG QUlMOiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL3plcm9fYmFzZV9sb2FkX3N0b3JlX29wdGlt aXphdGlvbi5jDQo+ICh0ZXN0IGZvciBleGNlc3MgZXJyb3JzKQ0KPiBGQUlMOiBnY2MudGFyZ2V0 L3Jpc2N2L3J2di9iYXNlL3p2ZmgtaW50cmluc2ljLmMgKHRlc3QgZm9yIGV4Y2VzcyBlcnJvcnMp DQo+IEZBSUw6IGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvenZmaC1vdmVyLXp2ZmhtaW4uYyAo dGVzdCBmb3IgZXhjZXNzIGVycm9ycykNCj4gRkFJTDogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS96dmZobWluLWludHJpbnNpYy5jICh0ZXN0IGZvciBleGNlc3MgZXJyb3JzKQ0KPiANCj4gICAg ICAgICAgICAgICA9PT09PT09PT0gU3VtbWFyeSBvZiBnY2MgdGVzdHN1aXRlID09PT09PT09PQ0K PiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICMgb2YgdW5leHBlY3RlZCBjYXNlIC8gIyBv ZiB1bmlxdWUgdW5leHBlY3RlZA0KPiBjYXNlDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgZ2NjIHwgICAgICAgICAgZysrIHwgICAgIGdmb3J0cmFuIHwNCj4gcnYzMmlt YWZkYy8gaWxwMzJkLyBtZWRsb3cgfCAgIDIwIC8gICAgMTIgfCAgICAwIC8gICAgIDAgfCAgICAw IC8gICAgIDAgfA0KPiBydjMyaW1hZmRjdi8gaWxwMzJkLyBtZWRsb3cgfCAgIDI1IC8gICAgMTQg fCAgIDIyIC8gICAgMjIgfCAgICAwIC8gICAgIDAgfA0KPiBydjY0aW1hZmRjLyAgbHA2NGQvIG1l ZGxvdyB8ICAgMjAgLyAgICAxMiB8ICAgIDAgLyAgICAgMCB8ICAgIDAgLyAgICAgMCB8DQo+IHJ2 NjRpbWFmZGN2LyAgbHA2NGQvIG1lZGxvdyB8ICAgMjAgLyAgICAxMiB8ICAgMjEgLyAgICAyMSB8 ICAgIDAgLyAgICAgMCB8DQo+IA0KPiBPbiBGcmksIEp1biA5LCAyMDIzIGF0IDI6MDLigK9QTSB5 YW56aGFuZy53YW5nLS0tIHZpYSBHY2MtcGF0Y2hlcyA8Z2NjLQ0KPiBwYXRjaGVzQGdjYy5nbnUu b3JnPiB3cm90ZToNCj4gPg0KPiA+IEZyb206IFlhbnpoYW5nIFdhbmcgPHlhbnpoYW5nLndhbmdA aW50ZWwuY29tPg0KPiA+DQo+ID4gVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgdG8gY2hlY2sgZnVu Y3Rpb24ncyBhcmd1bWVudCBvciByZXR1cm4gaXMNCj4gPiB2ZWN0b3IgdHlwZSBhbmQgdGhyb3cg d2FybmluZyBpZiB5ZXMuDQo+ID4NCj4gPiBUaGVyZSdyZSB0d28gZXhjZXB0aW9ucywNCj4gPiAg IC0gVGhlIHZlY3Rvcl9zaXplIGF0dHJpYnV0ZS4NCj4gPiAgIC0gVGhlIGludHJpbnNpYyBmdW5j dGlvbnMuDQo+ID4NCj4gPiBnY2MvQ2hhbmdlTG9nOg0KPiA+DQo+ID4gICAgICAgICAqIGNvbmZp Zy9yaXNjdi9yaXNjdi1wcm90b3MuaCAocmlzY3ZfaW5pdF9jdW11bGF0aXZlX2FyZ3MpOiBTZXQN Cj4gPiAgICAgICAgICAgd2FybmluZyBmbGFnIGlmIGZ1bmMgaXMgbm90IGJ1aWx0aW4NCj4gPiAg ICAgICAgICogY29uZmlnL3Jpc2N2L3Jpc2N2LmNjDQo+ID4gICAgICAgICAocmlzY3Zfc2NhbGFi bGVfdmVjdG9yX3R5cGVfcCk6IERldGVybWluZSB3aGV0aGVyIHRoZSB0eXBlIGlzDQo+IHNjYWxh YmxlIHZlY3Rvci4NCj4gPiAgICAgICAgIChyaXNjdl9hcmdfaGFzX3ZlY3Rvcik6IERldGVybWlu ZSB3aGV0aGVyIHRoZSBhcmcgaXMgdmVjdG9yIHR5cGUuDQo+ID4gICAgICAgICAocmlzY3ZfcGFz c19pbl92ZWN0b3JfcCk6IENoZWNrIHRoZSB2ZWN0b3IgdHlwZSBwYXJhbSBpcyBwYXNzZWQNCj4g YnkgdmFsdWUuDQo+ID4gICAgICAgICAocmlzY3ZfaW5pdF9jdW11bGF0aXZlX2FyZ3MpOiBUaGUg c2FtZSBhcyBoZWFkZXIuDQo+ID4gICAgICAgICAocmlzY3ZfZ2V0X2FyZ19pbmZvKTogQWRkIHRo ZSBjaGVja2luZy4NCj4gPiAgICAgICAgIChyaXNjdl9mdW5jdGlvbl92YWx1ZSk6IENoZWNrIHRo ZSBmdW5jIHJldHVybiBhbmQgc2V0IHdhcm5pbmcNCj4gZmxhZw0KPiA+ICAgICAgICAgKiBjb25m aWcvcmlzY3YvcmlzY3YuaCAoSU5JVF9DVU1VTEFUSVZFX0FSR1MpOiBBZGQgYSBmbGFnIHRvDQo+ ID4gICAgICAgICAgIGRldGVybWluZSB3aGV0aGVyIHdhcm5pbmcgcHNhYmkgb3Igbm90Lg0KPiA+ DQo+ID4gZ2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6DQo+ID4NCj4gPiAgICAgICAgICogZ2NjLnRh cmdldC9yaXNjdi92ZWN0b3ItYWJpLTEuYzogTmV3IHRlc3QuDQo+ID4gICAgICAgICAqIGdjYy50 YXJnZXQvcmlzY3YvdmVjdG9yLWFiaS0yLmM6IE5ldyB0ZXN0Lg0KPiA+ICAgICAgICAgKiBnY2Mu dGFyZ2V0L3Jpc2N2L3ZlY3Rvci1hYmktMy5jOiBOZXcgdGVzdC4NCj4gPiAgICAgICAgICogZ2Nj LnRhcmdldC9yaXNjdi92ZWN0b3ItYWJpLTQuYzogTmV3IHRlc3QuDQo+ID4gICAgICAgICAqIGdj Yy50YXJnZXQvcmlzY3YvdmVjdG9yLWFiaS01LmM6IE5ldyB0ZXN0Lg0KPiA+ICAgICAgICAgKiBn Y2MudGFyZ2V0L3Jpc2N2L3ZlY3Rvci1hYmktNi5jOiBOZXcgdGVzdC4NCj4gPg0KPiA+IFNpZ25l ZC1vZmYtYnk6IFlhbnpoYW5nIFdhbmcgPHlhbnpoYW5nLndhbmdAaW50ZWwuY29tPg0KPiA+IENv LWF1dGhvcmVkLWJ5OiBLaXRvIENoZW5nIDxraXRvLmNoZW5nQHNpZml2ZS5jb20+DQo+ID4gLS0t DQo+ID4gIGdjYy9jb25maWcvcmlzY3YvcmlzY3YtcHJvdG9zLmggICAgICAgICAgICAgICB8ICAg MiArDQo+ID4gIGdjYy9jb25maWcvcmlzY3YvcmlzY3YuY2MgICAgICAgICAgICAgICAgICAgICB8 IDExMiArKysrKysrKysrKysrKysrKy0NCj4gPiAgZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5oICAg ICAgICAgICAgICAgICAgICAgIHwgICA1ICstDQo+ID4gIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi92ZWN0b3ItYWJpLTEuYyB8ICAxNCArKysNCj4gPiBnY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvdmVjdG9yLWFiaS0yLmMgfCAgMTUgKysrDQo+ID4gZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3ZlY3Rvci1hYmktMy5jIHwgIDE0ICsrKw0KPiA+IGdjYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi92ZWN0b3ItYWJpLTQuYyB8ICAxNiArKysNCj4gPiBnY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvdmVjdG9yLWFiaS01LmMgfCAgMTUgKysrDQo+ID4gZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ZlY3Rvci1hYmktNi5jIHwgIDIwICsrKysNCj4g PiAgOSBmaWxlcyBjaGFuZ2VkLCAyMTEgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkgIGNy ZWF0ZSBtb2RlDQo+ID4gMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi92ZWN0 b3ItYWJpLTEuYw0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3ZlY3Rvci1hYmktMi5jDQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvdmVjdG9yLWFiaS0zLmMNCj4gPiAgY3JlYXRlIG1vZGUg MTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi92ZWN0b3ItYWJpLTQuYw0KPiA+ ICBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ZlY3Rv ci1hYmktNS5jDQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvdmVjdG9yLWFiaS02LmMNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9nY2MvY29uZmln L3Jpc2N2L3Jpc2N2LXByb3Rvcy5oDQo+ID4gYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXByb3Rv cy5oIGluZGV4IGU0MWY2NWEwODk0Li5kOGY0Mjc3ODU2NQ0KPiA+IDEwMDY0NA0KPiA+IC0tLSBh L2djYy9jb25maWcvcmlzY3YvcmlzY3YtcHJvdG9zLmgNCj4gPiArKysgYi9nY2MvY29uZmlnL3Jp c2N2L3Jpc2N2LXByb3Rvcy5oDQo+ID4gQEAgLTIzNSw0ICsyMzUsNiBAQCBleHRlcm4gY29uc3Qg Y2hhciogIHRoX21lbXBhaXJfb3V0cHV0X21vdmUNCj4gPiAocnR4WzRdLCBib29sLCBtYWNoaW5l X21vZGUsIFJUWF9DT0RFKTsgICNlbmRpZg0KPiA+DQo+ID4gK3ZvaWQgcmlzY3ZfaW5pdF9jdW11 bGF0aXZlX2FyZ3MgKENVTVVMQVRJVkVfQVJHUyAqLCB0cmVlLCBydHgsIHRyZWUsDQo+ID4gK2lu dCk7DQo+ID4gKw0KPiA+ICAjZW5kaWYgLyogISBHQ0NfUklTQ1ZfUFJPVE9TX0ggKi8NCj4gPiBk aWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5jYyBiL2djYy9jb25maWcvcmlzY3Yv cmlzY3YuY2MNCj4gPiBpbmRleCA3NmVlZTRhNTVlOS4uMzI4NjY1NmVjYmEgMTAwNjQ0DQo+ID4g LS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5jYw0KPiA+ICsrKyBiL2djYy9jb25maWcvcmlz Y3YvcmlzY3YuY2MNCj4gPiBAQCAtMzcyOCw2ICszNzI4LDk5IEBAIHJpc2N2X3Bhc3NfZnByX3Bh aXIgKG1hY2hpbmVfbW9kZSBtb2RlLCB1bnNpZ25lZA0KPiByZWdubzEsDQo+ID4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBHRU5fSU5UIChvZmZzZXQyKSkpKTsgIH0NCj4gPg0K PiA+ICsvKiBVc2UgdGhlIFRZUEVfU0laRSB0byBkaXN0aW5ndWlzaCB0aGUgdHlwZSB3aXRoIHZl Y3Rvcl9zaXplIGF0dHJpYnV0ZQ0KPiBhbmQNCj4gPiArICAgaW50cmluc2ljIHZlY3RvciB0eXBl LiAgQmVjYXVzZSB3ZSBjYW4ndCBnZXQgdGhlIGRlY2wgZm9yIHRoZQ0KPiA+ICtwYXJhbXMuICAq Lw0KPiA+ICsNCj4gPiArc3RhdGljIGJvb2wNCj4gPiArcmlzY3Zfc2NhbGFibGVfdmVjdG9yX3R5 cGVfcCAoY29uc3RfdHJlZSB0eXBlKSB7DQo+ID4gKyAgdHJlZSBzaXplID0gVFlQRV9TSVpFICh0 eXBlKTsNCj4gPiArICBpZiAoc2l6ZSAmJiBUUkVFX0NPREUgKHNpemUpID09IElOVEVHRVJfQ1NU KQ0KPiA+ICsgICAgcmV0dXJuIGZhbHNlOw0KPiA+ICsNCj4gPiArICAvKiBGb3IgdGhlIGRhdGEg dHlwZSBsaWtlIHZpbnQzMm0xX3QsIHRoZSBzaXplIGNvZGUgaXMNCj4gPiArUE9MWV9JTlRfQ1NU LiAgKi8NCj4gPiArICByZXR1cm4gdHJ1ZTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGJv b2wNCj4gPiArcmlzY3ZfYXJnX2hhc192ZWN0b3IgKGNvbnN0X3RyZWUgdHlwZSkgew0KPiA+ICsg IGJvb2wgaXNfdmVjdG9yID0gZmFsc2U7DQo+ID4gKw0KPiA+ICsgIHN3aXRjaCAoVFJFRV9DT0RF ICh0eXBlKSkNCj4gPiArICAgIHsNCj4gPiArICAgIGNhc2UgUkVDT1JEX1RZUEU6DQo+ID4gKyAg ICAgIGlmICghQ09NUExFVEVfVFlQRV9QICh0eXBlKSkNCj4gPiArICAgICAgIGJyZWFrOw0KPiA+ ICsNCj4gPiArICAgICAgZm9yICh0cmVlIGYgPSBUWVBFX0ZJRUxEUyAodHlwZSk7IGY7IGYgPSBE RUNMX0NIQUlOIChmKSkNCj4gPiArICAgICAgIGlmIChUUkVFX0NPREUgKGYpID09IEZJRUxEX0RF Q0wpDQo+ID4gKyAgICAgICAgIHsNCj4gPiArICAgICAgICAgICB0cmVlIGZpZWxkX3R5cGUgPSBU UkVFX1RZUEUgKGYpOw0KPiA+ICsgICAgICAgICAgIGlmICghVFlQRV9QIChmaWVsZF90eXBlKSkN Cj4gPiArICAgICAgICAgICAgIGJyZWFrOw0KPiA+ICsNCj4gPiArICAgICAgICAgICAvKiBJZ25v cmUgaXQgaWYgaXQncyBmaXhlZCBsZW5ndGggdmVjdG9yLiAgKi8NCj4gPiArICAgICAgICAgICBp ZiAoVkVDVE9SX1RZUEVfUCAoZmllbGRfdHlwZSkpDQo+ID4gKyAgICAgICAgICAgICBpc192ZWN0 b3IgPSByaXNjdl9zY2FsYWJsZV92ZWN0b3JfdHlwZV9wIChmaWVsZF90eXBlKTsNCj4gPiArICAg ICAgICAgICBlbHNlDQo+ID4gKyAgICAgICAgICAgICBpc192ZWN0b3IgPSByaXNjdl9hcmdfaGFz X3ZlY3RvciAoZmllbGRfdHlwZSk7DQo+ID4gKyAgICAgICAgIH0NCj4gPiArDQo+ID4gKyAgICAg IGJyZWFrOw0KPiA+ICsNCj4gPiArICAgIGNhc2UgVkVDVE9SX1RZUEU6DQo+ID4gKyAgICAgIGlz X3ZlY3RvciA9IHJpc2N2X3NjYWxhYmxlX3ZlY3Rvcl90eXBlX3AgKHR5cGUpOw0KPiA+ICsgICAg ICBicmVhazsNCj4gPiArDQo+ID4gKyAgICBkZWZhdWx0Og0KPiA+ICsgICAgICBpc192ZWN0b3Ig PSBmYWxzZTsNCj4gPiArICAgICAgYnJlYWs7DQo+ID4gKyAgICB9DQo+ID4gKw0KPiA+ICsgIHJl dHVybiBpc192ZWN0b3I7DQo+ID4gK30NCj4gPiArDQo+ID4gKy8qIFBhc3MgdGhlIHR5cGUgdG8g Y2hlY2sgd2hldGhlciBpdCdzIGEgdmVjdG9yIHR5cGUgb3IgY29udGFpbnMgdmVjdG9yDQo+IHR5 cGUuDQo+ID4gKyAgIE9ubHkgY2hlY2sgdGhlIHZhbHVlIHR5cGUgYW5kIG5vIGNoZWNraW5nIGZv ciB2ZWN0b3IgcG9pbnRlciB0eXBlLg0KPiA+ICsqLw0KPiA+ICsNCj4gPiArc3RhdGljIHZvaWQN Cj4gPiArcmlzY3ZfcGFzc19pbl92ZWN0b3JfcCAoY29uc3RfdHJlZSB0eXBlKSB7DQo+ID4gKyAg c3RhdGljIGludCB3YXJuZWQgPSAwOw0KPiA+ICsNCj4gPiArICBpZiAodHlwZSAmJiByaXNjdl9h cmdfaGFzX3ZlY3RvciAodHlwZSkgJiYgIXdhcm5lZCkNCj4gPiArICAgIHsNCj4gPiArICAgICAg d2FybmluZyAoT1BUX1dwc2FiaSwgIkFCSSBmb3IgdGhlIHNjYWxhYmxlIHZlY3RvciB0eXBlIGlz DQo+IGN1cnJlbnRseSBpbiAiDQo+ID4gKyAgICAgICAgICAgICAgImV4cGVyaW1lbnRhbCBzdGFn ZSBhbmQgbWF5IGNoYW5nZXMgaW4gdGhlIHVwY29taW5nDQo+IHZlcnNpb24gb2YgIg0KPiA+ICsg ICAgICAgICAgICAgICJHQ0MuIik7DQo+ID4gKyAgICAgIHdhcm5lZCA9IDE7DQo+ID4gKyAgICB9 DQo+ID4gK30NCj4gPiArDQo+ID4gKy8qIEluaXRpYWxpemUgYSB2YXJpYWJsZSBDVU0gb2YgdHlw ZSBDVU1VTEFUSVZFX0FSR1MNCj4gPiArICAgZm9yIGEgY2FsbCB0byBhIGZ1bmN0aW9uIHdob3Nl IGRhdGEgdHlwZSBpcyBGTlRZUEUuDQo+ID4gKyAgIEZvciBhIGxpYnJhcnkgY2FsbCwgRk5UWVBF IGlzIDAuICAqLw0KPiA+ICsNCj4gPiArdm9pZA0KPiA+ICtyaXNjdl9pbml0X2N1bXVsYXRpdmVf YXJncyAoQ1VNVUxBVElWRV9BUkdTICpjdW0sDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgIHRyZWUgZm50eXBlLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICBydHggbGli bmFtZSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJlZSBmbmRlY2wsDQo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjYWxsZXIpIHsNCj4gPiArICBtZW1zZXQg KGN1bSwgMCwgc2l6ZW9mICgqY3VtKSk7DQo+ID4gKw0KPiA+ICsgIGlmIChmbmRlY2wpDQo+ID4g KyAgICB7DQo+ID4gKyAgICAgIGNvbnN0IHRyZWVfZnVuY3Rpb25fZGVjbCAmZm4NCj4gPiArICAg ICAgID0gRlVOQ1RJT05fREVDTF9DSEVDSyAoZm5kZWNsKS0+ZnVuY3Rpb25fZGVjbDsNCj4gPiAr DQo+ID4gKyAgICAgIGlmIChmbi5idWlsdF9pbl9jbGFzcyA9PSBOT1RfQlVJTFRfSU4pDQo+ID4g KyAgICAgICAgIGN1bS0+cnZ2X3BzYWJpX3dhcm5pbmcgPSAxOw0KPiA+ICsgICAgfQ0KPiA+ICt9 DQo+ID4gKw0KPiA+ICAvKiBGaWxsIElORk8gd2l0aCBpbmZvcm1hdGlvbiBhYm91dCBhIHNpbmds ZSBhcmd1bWVudCwgYW5kIHJldHVybiBhbg0KPiA+ICAgICBSVEwgcGF0dGVybiB0byBwYXNzIG9y IHJldHVybiB0aGUgYXJndW1lbnQuICBDVU0gaXMgdGhlIGN1bXVsYXRpdmUNCj4gPiAgICAgc3Rh dGUgZm9yIGVhcmxpZXIgYXJndW1lbnRzLiAgTU9ERSBpcyB0aGUgbW9kZSBvZiB0aGlzIGFyZ3Vt ZW50DQo+ID4gYW5kIEBAIC0zODEyLDYgKzM5MDUsMTIgQEAgcmlzY3ZfZ2V0X2FyZ19pbmZvIChz dHJ1Y3QgcmlzY3ZfYXJnX2luZm8NCj4gKmluZm8sIGNvbnN0IENVTVVMQVRJVkVfQVJHUyAqY3Vt LA0KPiA+ICAgICAgICAgfQ0KPiA+ICAgICAgfQ0KPiA+DQo+ID4gKyAgaWYgKGN1bS0+cnZ2X3Bz YWJpX3dhcm5pbmcpDQo+ID4gKyAgICB7DQo+ID4gKyAgICAgIC8qIE9ubHkgY2hlY2sgZXhpc3Rp bmcgb2YgdmVjdG9yIHR5cGUuICAqLw0KPiA+ICsgICAgICByaXNjdl9wYXNzX2luX3ZlY3Rvcl9w ICh0eXBlKTsNCj4gPiArICAgIH0NCj4gPiArDQo+ID4gICAgLyogV29yayBvdXQgdGhlIHNpemUg b2YgdGhlIGFyZ3VtZW50LiAgKi8NCj4gPiAgICBudW1fYnl0ZXMgPSB0eXBlID8gaW50X3NpemVf aW5fYnl0ZXMgKHR5cGUpIDogR0VUX01PREVfU0laRQ0KPiAobW9kZSkudG9fY29uc3RhbnQgKCk7 DQo+ID4gICAgbnVtX3dvcmRzID0gKG51bV9ieXRlcyArIFVOSVRTX1BFUl9XT1JEIC0gMSkgLyBV TklUU19QRVJfV09SRDsgQEANCj4gPiAtMzg5OSw3ICszOTk4LDE4IEBAIHJpc2N2X2Z1bmN0aW9u X3ZhbHVlIChjb25zdF90cmVlIHR5cGUsIGNvbnN0X3RyZWUNCj4gZnVuYywgbWFjaGluZV9tb2Rl IG1vZGUpDQo+ID4gICAgICB9DQo+ID4NCj4gPiAgICBtZW1zZXQgKCZhcmdzLCAwLCBzaXplb2Yg YXJncyk7DQo+ID4gLSAgcmV0dXJuIHJpc2N2X2dldF9hcmdfaW5mbyAoJmluZm8sICZhcmdzLCBt b2RlLCB0eXBlLCB0cnVlLCB0cnVlKTsNCj4gPiArDQo+ID4gKyAgY29uc3RfdHJlZSBhcmdfdHlw ZSA9IHR5cGU7DQo+ID4gKyAgaWYgKGZ1bmMgJiYgREVDTF9SRVNVTFQgKGZ1bmMpKQ0KPiA+ICsg ICAgew0KPiA+ICsgICAgICBjb25zdCB0cmVlX2Z1bmN0aW9uX2RlY2wgJmZuID0gRlVOQ1RJT05f REVDTF9DSEVDSyAoZnVuYyktDQo+ID5mdW5jdGlvbl9kZWNsOw0KPiA+ICsgICAgICBpZiAoZm4u YnVpbHRfaW5fY2xhc3MgPT0gTk9UX0JVSUxUX0lOKQ0KPiA+ICsgICAgICAgYXJncy5ydnZfcHNh Ymlfd2FybmluZyA9IDE7DQo+ID4gKw0KPiA+ICsgICAgICBhcmdfdHlwZSA9IFRSRUVfVFlQRSAo REVDTF9SRVNVTFQgKGZ1bmMpKTsNCj4gPiArICAgIH0NCj4gPiArDQo+ID4gKyAgcmV0dXJuIHJp c2N2X2dldF9hcmdfaW5mbyAoJmluZm8sICZhcmdzLCBtb2RlLCBhcmdfdHlwZSwgdHJ1ZSwNCj4g PiArIHRydWUpOw0KPiA+ICB9DQo+ID4NCj4gPiAgLyogSW1wbGVtZW50IFRBUkdFVF9QQVNTX0JZ X1JFRkVSRU5DRS4gKi8gZGlmZiAtLWdpdA0KPiA+IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5o IGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5oIGluZGV4DQo+ID4gNjZmYjA3ZDY2NTIuLmNiMTBi NjNlZjEwIDEwMDY0NA0KPiA+IC0tLSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YuaA0KPiA+ICsr KyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YuaA0KPiA+IEBAIC02NzEsNiArNjcxLDggQEAgdHlw ZWRlZiBzdHJ1Y3Qgew0KPiA+DQo+ID4gICAgLyogTnVtYmVyIG9mIGZsb2F0aW5nLXBvaW50IHJl Z2lzdGVycyB1c2VkIHNvIGZhciwgbGlrZXdpc2UuICAqLw0KPiA+ICAgIHVuc2lnbmVkIGludCBu dW1fZnByczsNCj4gPiArDQo+ID4gKyAgaW50IHJ2dl9wc2FiaV93YXJuaW5nOw0KPiA+ICB9IENV TVVMQVRJVkVfQVJHUzsNCj4gPg0KPiA+ICAvKiBJbml0aWFsaXplIGEgdmFyaWFibGUgQ1VNIG9m IHR5cGUgQ1VNVUxBVElWRV9BUkdTIEBAIC02NzgsNyArNjgwLDgNCj4gPiBAQCB0eXBlZGVmIHN0 cnVjdCB7DQo+ID4gICAgIEZvciBhIGxpYnJhcnkgY2FsbCwgRk5UWVBFIGlzIDAuICAqLw0KPiA+ DQo+ID4gICNkZWZpbmUgSU5JVF9DVU1VTEFUSVZFX0FSR1MoQ1VNLCBGTlRZUEUsIExJQk5BTUUs IElORElSRUNULA0KPiA+IE5fTkFNRURfQVJHUykgXA0KPiA+IC0gIG1lbXNldCAoJihDVU0pLCAw LCBzaXplb2YgKENVTSkpDQo+ID4gKyAgcmlzY3ZfaW5pdF9jdW11bGF0aXZlX2FyZ3MgKCYoQ1VN KSwgKEZOVFlQRSksIChMSUJOQU1FKSwgKElORElSRUNUKSwNCj4gXA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgIChOX05BTUVEX0FSR1MpICE9IC0xKQ0KPiA+DQo+ID4gICNkZWZpbmUgRVBJ TE9HVUVfVVNFUyhSRUdOTykgICByaXNjdl9lcGlsb2d1ZV91c2VzIChSRUdOTykNCj4gPg0KPiA+ IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvdmVjdG9yLWFiaS0x LmMNCj4gPiBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi92ZWN0b3ItYWJpLTEuYw0K PiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMDAwMDAuLjk2OWYxNDI3 N2E0DQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi92ZWN0b3ItYWJpLTEuYw0KPiA+IEBAIC0wLDAgKzEsMTQgQEANCj4gPiArLyogeyBk Zy1kbyBjb21waWxlIH0gKi8NCj4gPiArLyogeyBkZy1vcHRpb25zICItTzAgLW1hcmNoPXJ2NjRn Y3YgLW1hYmk9bHA2NGQiIH0gKi8NCj4gPiArDQo+ID4gKyNpbmNsdWRlICJyaXNjdl92ZWN0b3Iu aCINCj4gPiArDQo+ID4gK3ZvaWQNCj4gPiArZnVuICh2aW50MzJtMV90IGEpIHsgfSAvKiB7IGRn LXdhcm5pbmcgInRoZSBzY2FsYWJsZSB2ZWN0b3IgdHlwZSIgfQ0KPiA+ICsqLw0KPiA+ICsNCj4g PiArdm9pZA0KPiA+ICtiYXIgKCkNCj4gPiArew0KPiA+ICsgIHZpbnQzMm0xX3QgYTsNCj4gPiAr ICBmdW4gKGEpOw0KPiA+ICt9DQo+ID4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi92ZWN0b3ItYWJpLTIuYw0KPiA+IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3ZlY3Rvci1hYmktMi5jDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRl eCAwMDAwMDAwMDAwMC4uNjNkOTdkMzBmYzUNCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysrIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ZlY3Rvci1hYmktMi5jDQo+ID4gQEAgLTAs MCArMSwxNSBAQA0KPiA+ICsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KPiA+ICsvKiB7IGRnLW9w dGlvbnMgIi1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjRkIiB9ICovDQo+ID4gKy8qIHsgZGctc2tp cC1pZiAiIiB7ICotKi0qIH0gIHsgIi1mbHRvIiB9IHsgIiIgfSB9ICovDQo+ID4gKw0KPiA+ICsj aW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQo+ID4gKw0KPiA+ICt2aW50MzJtMV90DQo+ID4gK2Z1 biAodmludDMybTFfdCogYSkgeyAgcmV0dXJuICphOyB9ICAvKiB7IGRnLXdhcm5pbmcgInRoZSBz Y2FsYWJsZQ0KPiA+ICt2ZWN0b3IgdHlwZSIgfSAqLw0KPiA+ICsNCj4gPiArdm9pZA0KPiA+ICti YXIgKCkNCj4gPiArew0KPiA+ICsgIHZpbnQzMm0xX3QgYTsNCj4gPiArICBmdW4gKCZhKTsNCj4g PiArfQ0KPiA+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvdmVj dG9yLWFiaS0zLmMNCj4gPiBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi92ZWN0b3It YWJpLTMuYw0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMDAwMDAu LjkwZWNlNjBjYzZmDQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi92ZWN0b3ItYWJpLTMuYw0KPiA+IEBAIC0wLDAgKzEsMTQgQEANCj4g PiArLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCj4gPiArLyogeyBkZy1vcHRpb25zICItbWFyY2g9 cnY2NGdjdiAtbWFiaT1scDY0ZCIgfSAqLw0KPiA+ICsNCj4gPiArI2luY2x1ZGUgInJpc2N2X3Zl Y3Rvci5oIg0KPiA+ICsNCj4gPiArdmludDMybTFfdCoNCj4gPiArZnVuICh2aW50MzJtMV90KiBh KSB7ICByZXR1cm4gYTsgfSAgLyogeyBkZy1ib2d1cyAidGhlIHNjYWxhYmxlDQo+ID4gK3ZlY3Rv ciB0eXBlIiB9ICovDQo+ID4gKw0KPiA+ICt2b2lkDQo+ID4gK2JhciAoKQ0KPiA+ICt7DQo+ID4g KyAgdmludDMybTFfdCBhOw0KPiA+ICsgIGZ1biAoJmEpOw0KPiA+ICt9DQo+ID4gZGlmZiAtLWdp dCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi92ZWN0b3ItYWJpLTQuYw0KPiA+IGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ZlY3Rvci1hYmktNC5jDQo+ID4gbmV3IGZp bGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAwMC4uZWNmNmQ0Y2MyNmINCj4gPiAt LS0gL2Rldi9udWxsDQo+ID4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3Zl Y3Rvci1hYmktNC5jDQo+ID4gQEAgLTAsMCArMSwxNiBAQA0KPiA+ICsvKiB7IGRnLWRvIGNvbXBp bGUgfSAqLw0KPiA+ICsvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjRk IiB9ICovDQo+ID4gKw0KPiA+ICsjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQo+ID4gKw0KPiA+ ICt0eXBlZGVmIGludCB2NHNpIF9fYXR0cmlidXRlX18gKCh2ZWN0b3Jfc2l6ZSAoMTYpKSk7DQo+ ID4gKw0KPiA+ICt2NHNpDQo+ID4gK2Z1biAodjRzaSBhKSB7ICByZXR1cm4gYTsgfSAgLyogeyBk Zy1ib2d1cyAidGhlIHNjYWxhYmxlIHZlY3RvciB0eXBlIg0KPiA+ICt9ICovDQo+ID4gKw0KPiA+ ICt2b2lkDQo+ID4gK2JhciAoKQ0KPiA+ICt7DQo+ID4gKyAgdjRzaSBhOw0KPiA+ICsgIGZ1biAo YSk7DQo+ID4gK30NCj4gPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3ZlY3Rvci1hYmktNS5jDQo+ID4gYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv dmVjdG9yLWFiaS01LmMNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4IDAwMDAw MDAwMDAwLi42MDUzZTA3ODNiNg0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvdmVjdG9yLWFiaS01LmMNCj4gPiBAQCAtMCwwICsxLDE1 IEBADQo+ID4gKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQo+ID4gKy8qIHsgZGctb3B0aW9ucyAi LW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NGQiIH0gKi8NCj4gPiArDQo+ID4gK3R5cGVkZWYgaW50 IHY0c2kgX19hdHRyaWJ1dGVfXyAoKHZlY3Rvcl9zaXplICgxNikpKTsgc3RydWN0IEEgeyBpbnQN Cj4gPiArYTsgdjRzaSBiOyB9Ow0KPiA+ICsNCj4gPiArdm9pZA0KPiA+ICtmdW4gKHN0cnVjdCBB IGEpIHt9IC8qIHsgZGctYm9ndXMgInRoZSBzY2FsYWJsZSB2ZWN0b3IgdHlwZSIgfSAqLw0KPiA+ ICsNCj4gPiArdm9pZA0KPiA+ICtiYXIgKCkNCj4gPiArew0KPiA+ICsgIHN0cnVjdCBBIGE7DQo+ ID4gKyAgZnVuIChhKTsNCj4gPiArfQ0KPiA+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvdmVjdG9yLWFiaS02LmMNCj4gPiBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi92ZWN0b3ItYWJpLTYuYw0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4g aW5kZXggMDAwMDAwMDAwMDAuLjYzYmM0YTg5ODA1DQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsr KyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi92ZWN0b3ItYWJpLTYuYw0KPiA+IEBA IC0wLDAgKzEsMjAgQEANCj4gPiArLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCj4gPiArLyogeyBk Zy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0ZCIgfSAqLyAjaW5jbHVkZQ0KPiA+ ICsicmlzY3ZfdmVjdG9yLmgiDQo+ID4gKw0KPiA+ICt2b2lkDQo+ID4gK2ZvbyhpbnQzMl90ICpp bjEsIGludDMyX3QgKmluMiwgaW50MzJfdCAqaW4zLCBpbnQzMl90ICpvdXQsDQo+ID4gKyAgICBz aXplX3QgbiwgaW50IGNvbmQpIHsNCj4gPiArICBzaXplX3Qgdmw7DQo+ID4gKyAgaWYgKGNvbmQp DQo+ID4gKyAgICB2bCA9IF9fcmlzY3ZfdnNldHZsbWF4X2UzMm0xKCk7DQo+ID4gKyAgZWxzZQ0K PiA+ICsgICAgdmwgPSBfX3Jpc2N2X3ZzZXR2bG1heF9lMTZtZjIoKTsNCj4gPiArICBmb3IgKHNp emVfdCBpID0gMDsgaSA8IG47IGkgKz0gMSkNCj4gPiArICAgIHsNCj4gPiArICAgICAgdmludDMy bTFfdCBhID0gX19yaXNjdl92bGUzMl92X2kzMm0xKGluMSwgdmwpOyAvKiB7IGRnLWJvZ3VzICJ0 aGUNCj4gc2NhbGFibGUgdmVjdG9yIHR5cGUiIH0gKi8NCj4gPiArICAgICAgdmludDMybTFfdCBi ID0gX19yaXNjdl92bGUzMl92X2kzMm0xX3R1KGEsIGluMiwgdmwpOw0KPiA+ICsgICAgICB2aW50 MzJtMV90IGMgPSBfX3Jpc2N2X3ZsZTMyX3ZfaTMybTFfdHUoYiwgaW4zLCB2bCk7DQo+ID4gKyAg ICAgIF9fcmlzY3ZfdnNlMzJfdl9pMzJtMShvdXQsIGMsIHZsKTsNCj4gPiArICAgIH0NCj4gPiAr fQ0KPiA+IC0tDQo+ID4gMi40MC4xDQo+ID4NCg==