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 E51973858D1E for ; Tue, 21 Feb 2023 06:36:54 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E51973858D1E 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=1676961415; x=1708497415; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=XI0YHXNv//tbZSMhuBxzFgqv/yAYs4BGYJrDW+RFapc=; b=jvgvmcNHW4qTn+HUkQ7S5TH/+Tc+aWiWWaLA58po6HfmTN6hqLNdCKXV udKgsSk0uIxzN2T/pkY/DDRtTsjcXNToEfmV4b1yGv8XC71zgdj9b6nrE Ynewa4FesRUtOY31AYUMayaxPXcQaVRUc/jaLgmTPRWgDfoABiHHin1Rd gW4SlSYhejI2Gg8cvCsOLzzJkBhubVEZoRi5/6rPxCdMz5mjo6m4T+z+k HtSLaE9gbY/MDu+4Oynfqp9zpu1H8aNHBvdagGcv6kj4Sf7dqs2nb1vMp +3+v4iRqjgXnurIU9CHgXUOnn82ZU1dKqyANkle3OAN3GJmT9UXp3tLP8 g==; X-IronPort-AV: E=McAfee;i="6500,9779,10627"; a="418781578" X-IronPort-AV: E=Sophos;i="5.97,314,1669104000"; d="scan'208";a="418781578" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Feb 2023 22:36:53 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10627"; a="735351895" X-IronPort-AV: E=Sophos;i="5.97,314,1669104000"; d="scan'208";a="735351895" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by fmsmga008.fm.intel.com with ESMTP; 20 Feb 2023 22:36:52 -0800 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) 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.16; Mon, 20 Feb 2023 22:36:52 -0800 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) 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.2507.16; Mon, 20 Feb 2023 22:36:51 -0800 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.16 via Frontend Transport; Mon, 20 Feb 2023 22:36:51 -0800 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.176) 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.16; Mon, 20 Feb 2023 22:36:51 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VqyTLRiY5ivnt1URnGJMKs6ofg53YnD8BAx0NNgjF2bOta9pcnNdkCnoZZ5yiWo5IkbXz53s2vFdVRNv7d0aA5rm4W7UAKBIIs6ppDqfMez+rPO9CUDWDvR6KdUU6nJXFDcemo4kqfG/sR//HahWHqDXdzdR6ScoOCCMqGG+yA17uggb5IYQNWz2/jWXZ+IqfPpmHZiNUUaRphwd7NUFGnuer6FewrUJ0f/xAZR8jgLZIOz2DZlleHrp7tKcj6eHCWjdbLHJWb51/Ew7ReTxdPNiCwAzOm+LCeOKriGR4uSL0JmeQ+9IaJa2AwTbIvrXdA1Z6SU6/hHRjPilG8Jlog== 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=XI0YHXNv//tbZSMhuBxzFgqv/yAYs4BGYJrDW+RFapc=; b=CVoEig1rh2lkk5pct0uy2UrHXBBGURi8R9ePmUyrOsgDzQP8Qgdm24UC3FoYLbWCsgmyK0VC4qTMGHeCr67SRHNT5X3foCeEjN5i6y5msIGaZtsYSiKb+AjN9Gpzg2FE4pmcm8RNkY5JDLrG5WwrdksmUuNcoJ5PawYC34JHAKZD6U8pv5dIzqPxvxLeJwFAy4qBffGSS7tEoPWZmmFGeiOlcchjXY22ZcIsJl6LKbDR3N7ONsUwNP/ZLRX0VwQmcsEUh4TDIEszY3Qfq+pkLsFpZsswZEnGmDT7JVWa+OvM8mnsvq8oxCt1heoCh+gyohKXzylckne5tAgodReR+g== 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 MW5PR11MB5908.namprd11.prod.outlook.com (2603:10b6:303:194::10) by SJ0PR11MB7703.namprd11.prod.outlook.com (2603:10b6:a03:4e6::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6111.19; Tue, 21 Feb 2023 06:36:49 +0000 Received: from MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::7ad:494f:ca70:719]) by MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::7ad:494f:ca70:719%8]) with mapi id 15.20.6111.021; Tue, 21 Feb 2023 06:36:48 +0000 From: "Li, Pan2" To: "richard.sandiford@arm.com" , juzhe.zhong CC: "incarnation.p.lee@outlook.com" , "gcc-patches@gcc.gnu.org" , "kito.cheng@sifive.com" , Richard Biener Subject: RE: [PATCH] RISC-V: Bugfix for rvv bool mode precision adjustment Thread-Topic: [PATCH] RISC-V: Bugfix for rvv bool mode precision adjustment Thread-Index: AQHZQiBGH7RnpggGdk6ss2W0Gmyulq7RsL4AgAEQAoCAABCucIAGJ8JQ Date: Tue, 21 Feb 2023 06:36:48 +0000 Message-ID: References: <9800822AA73B1E3D+5F679DFB-633A-446F-BB7F-59ADEEE67E50@rivai.ai> 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: MW5PR11MB5908:EE_|SJ0PR11MB7703:EE_ x-ms-office365-filtering-correlation-id: 3f2fe91a-7bbe-42b4-9cc4-08db13d6024c x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: dZE2DrFU83SlOJeWamPgNGHds6ymPc6zPf3rbfBvJpBZw7WKuOY8NznnRlBC/fHuNpaJsw1k2m+JuItF2XtnJ4rwdW+2uHBHcX6/H98qTeY7B6OEbAQuHgVxdYwg+p0y8fiogGpMZHhKzngf/sDvaE3SBgOuwTTdIH/6EjhxXZGB8cN65yCT/69BMybpGUSNcT0IA5151CFCw1R4A+v2QUUeU3N/Ej/1B1Y4lh9t2/43ZxApjldUqQFb7oswmsX5ak/H2rzsQbxxbMmdrx52Ms7Lh++9NBiQxNsmfkhyEGBu1gNLIXJHEvv2QTU173jaojiJ5fT9TDLMcQLQtR92gVghRdIcanLNAn0C80zfBZ5KSl9QwdohGnJV542t2TjNEchz+cqVbLf2zaDG9KAzci6b39zoDWg5dwIeLp51BR1UloL3hJRq/YQnQlveKSElmwM6jbAQK+LN4U0+ZkhJYrM3BYfiC/LDvrP8SLEwZNbIMjgoTBJEEajjwhyWBZ7Gi3vWwbK582SWOPx7kbIy2sGZPqXAkYrHqeiNBUeuNBOT8TodaO3NbvPcMiF6k2AvhvA41gbidz1n/MEiYNAlcOsCNwYrquHLjDEx4DJ7iyq4eULkhe1CUrWw+aRwfgeFk6VY1PdKNi7rvXyI/x+vq0BvEx005qopifvs2+MizAFnUmLXngsjjXKx8X5deVyR x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW5PR11MB5908.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(376002)(346002)(136003)(39860400002)(396003)(366004)(451199018)(186003)(8936002)(26005)(53546011)(84970400001)(8676002)(66446008)(55016003)(66946007)(66476007)(66556008)(4326008)(64756008)(76116006)(83380400001)(7696005)(6506007)(9686003)(5660300002)(52536014)(71200400001)(478600001)(45080400002)(110136005)(54906003)(41300700001)(86362001)(38100700002)(82960400001)(122000001)(316002)(30864003)(38070700005)(33656002)(2906002)(579004)(559001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Ykxrc0k0cG5QbDVSaElLS0p6cE1lV3NnZWpSK1h0ZllUcFE1NURiMTNqZXJm?= =?utf-8?B?c2F2WWFENWtMQVRnQVRsL2p5V1JLKzhwTS9KdHk4UDZjaUx2RldOVElFeG95?= =?utf-8?B?a3dTaTJVdTFkTXFjT0hza3NYekR5bm55Z1FtNXN2cmxBV0ZLcHJncmdHZUZU?= =?utf-8?B?dkRlYmNvbks5eHovVVVpNUxjdlI3azV1NVJNK0NkOHQxdDZSWGIxcDBOVTRm?= =?utf-8?B?b0kzZDBOVUZrQS9WZ3BYV2lRQW1ValplZ1lOZjlHRnU0OVRxSWtCM3d5bms0?= =?utf-8?B?TEVoUnFjR05lYlljc2pEOU9tbWw5QlREUEZCMzNKRExWVUcyaG1ZV3doN1V1?= =?utf-8?B?dTByYlBqWlNVbExFTmxxdDdQaDNqZkplcEVWaFZBU3Bob0lZdk9xOFpTQ0RZ?= =?utf-8?B?WHdZNHJaQTZGTU1EdDFEZVh5S2xld3dQazByaDQ5L2J1bForTUJuS0JlcXUx?= =?utf-8?B?QUxkeTFHQllLdENydVdDMGhiUnlEWmF6M1pQeFJid2lOT1ZOY3UwSlFCVHo2?= =?utf-8?B?MEZJMHVrcHhSNXRjT3d4elpYVDBuUUxrSUFRRWVScXBPbW9PYmlSblQrbk00?= =?utf-8?B?SDh3d2VLU2ZUZ0VGNWFDalI2aEdLaDRsUmRDOURsc0NBc0VBR1RRNmlCM0NP?= =?utf-8?B?WGozS0hnZVR0Z0ZrT0RnSmJyL201ZE1zU0lCdXJTdE9NdkNxRkwyMkVZTU1G?= =?utf-8?B?dUdHU2R4Ymh6dWhkcmRhZ0pPV1RnK0NNZTVZSFEyR0pUOEFjS3Niclk3ZHlz?= =?utf-8?B?MGFocmp4WDB5UldJVStzVjJadTQvdTVzMWhCdlNYSGtzZHQ3Z3ovblRJUThk?= =?utf-8?B?ZVdzU3hxdkJyYnNQYjZrNGUwNFJRT3JwL0liVEFudVd0UzlUeDc0a1UyMWMy?= =?utf-8?B?Q1ptdVRMUXRVdm9HWWlHcDdXZzdBY0lDamtteEhuTi9CZU1IRHNwZzVuaUVo?= =?utf-8?B?eEpvajM3azlFTXpXbjlOQUsxMGx3dVU3ZlhTVDlrbjNqODF4N09EU2t0d2ly?= =?utf-8?B?S3g0bHJtRmlkMTJUQUx4Y1FCQTZHdW1EaVpBQjVNQk5Va3hvOVVSbVAzRVpj?= =?utf-8?B?amVYS0hOeEhTTjQxTS9LaHJKdjF4Y1g2QnRNRGhrY2VyNjM2TXhNQU5wbzEx?= =?utf-8?B?d20vSnVLNklKSWZiS2JyV0ltd2gzems1U2QyMVdEcFl1MkhIWkZXRFA3UUhF?= =?utf-8?B?eWhpSWc4MnZqaTNEdjlpUHJmNC9FMVlCQlM3aWF1UWg3TDZrbnVRbkRNUVB1?= =?utf-8?B?L1BQUStGc0lEb3B6bExoei9XUnY5WkwwSUpwa1dGZHhib2N1N2hyVWk5c1dn?= =?utf-8?B?bjlna3pGZWhybGNIOEpuUjdGamhyaXBxUFFwWE9VQVVOWGhMV2JhNjVVSWt1?= =?utf-8?B?RE8veEVhZmNSQjNORzFQOW9vZUxnOGdLc3FEVWV2TExZTXQ3RjZ0TjRSdjRH?= =?utf-8?B?VnYyQ2NaU2FuMHd6VlRoNk9pWUZ2emsyaFRpLzBTWUlHRmpoS0FwNElvR1hu?= =?utf-8?B?RkFKTlRVaEQveVVqQVYwaStueEo3T3o3UU8rRFlKSlZOdDhrcDZ4RnEyOGpI?= =?utf-8?B?WHViZDNXMFBwVXBlV0wzRWxzN2FQOGZNTi9tdkNwN1QwL2JId3diQ0JleXBo?= =?utf-8?B?Z2RqU3hqYUR4bFB5alBZK1R4VDVGakJpaXd0cGlXZm5yaVhnK2xEKysyVmFp?= =?utf-8?B?NVlvMWcremJJUVBmZUd0dk4ya2pyeWVreEVZOWppaVlTSzN1TVNtUlc2cUhm?= =?utf-8?B?U0JEV3FwMGJMY2RoU1VMZHN3WVVycEVUaDlDTWhKUmQ4eUR2cm44RnlVUUVF?= =?utf-8?B?Y29oUVcxVGdCVUM3TW9pT04rby8zSlF6V0VEMmNERVlBWElzVkhFQTdGMzBX?= =?utf-8?B?SncvaGEwRUtPb1FJTUNoQXpoY1AzT3ZUVjZPTFhhNkFkaFVOMFNuckg1NFR6?= =?utf-8?B?MElpWTgvY0xtbkhqRHUxSXpSc2xzRXpVWmNmNW1RdXhkWEpHQjFlYVoxd1Jp?= =?utf-8?B?dTlsYzhMZnkvS0kyV2VRYjJMVXBxNWtiV3FZbnBBSC9vbGlJeGNBaVNlNHNt?= =?utf-8?B?OFR1Q0FZZW8zUENTclZjRzEza000dk1iMlh0YUpSaFNDaU5ZL0lrdnUwaEpm?= =?utf-8?Q?JK/E=3D?= 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: MW5PR11MB5908.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3f2fe91a-7bbe-42b4-9cc4-08db13d6024c X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Feb 2023 06:36:48.5249 (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: T33NtZoBtV3qx8k+SJCX0P+H7VszuVcnBX7tSBZzoCO0CASLkMZUAAw1zunnmXa9ozbyUWeaOk2f3t2InoTQsg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB7703 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-8.5 required=5.0 tests=BAYES_00,BODY_8BITS,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,SCC_10_SHORT_WORD_LINES,SCC_20_SHORT_WORD_LINES,SCC_35_SHORT_WORD_LINES,SCC_5_SHORT_WORD_LINES,SPF_HELO_NONE,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: SGksDQoNCktpbmRseSByZW1pbmRlciBmb3IgdGhpcyBQUi4NCg0KUGFuDQoNCi0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBMaSwgUGFuMiANClNlbnQ6IEZyaWRheSwgRmVicnVhcnkg MTcsIDIwMjMgNDozOSBQTQ0KVG86IHJpY2hhcmQuc2FuZGlmb3JkQGFybS5jb207IGp1emhlLnpo b25nIDxqdXpoZS56aG9uZ0ByaXZhaS5haT4NCkNjOiBpbmNhcm5hdGlvbi5wLmxlZUBvdXRsb29r LmNvbTsgZ2NjLXBhdGNoZXNAZ2NjLmdudS5vcmc7IGtpdG8uY2hlbmdAc2lmaXZlLmNvbTsgUmlj aGFyZCBCaWVuZXIgPHJndWVudGhlckBzdXNlLmRlPg0KU3ViamVjdDogUkU6IFtQQVRDSF0gUklT Qy1WOiBCdWdmaXggZm9yIHJ2diBib29sIG1vZGUgcHJlY2lzaW9uIGFkanVzdG1lbnQNCg0KQ29v bCwgdGhhbmsgeW91IQ0KDQpIaSBSaWNoYXJkIFMsDQoNCkNvdWxkIHlvdSBwbGVhc2UgaGVscCB0 byBkbyBtZSBhIGZldmVyIGZvciB0aGlzIGNoYW5nZSB3aGVuIHlvdSBmcmVlPyBUaGFuayB5b3Uh DQoNClBhbg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogUmljaGFyZCBCaWVu ZXIgPHJndWVudGhlckBzdXNlLmRlPg0KU2VudDogRnJpZGF5LCBGZWJydWFyeSAxNywgMjAyMyAz OjM2IFBNDQpUbzoganV6aGUuemhvbmcgPGp1emhlLnpob25nQHJpdmFpLmFpPg0KQ2M6IGluY2Fy bmF0aW9uLnAubGVlQG91dGxvb2suY29tOyBnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZzsga2l0by5j aGVuZ0BzaWZpdmUuY29tOyBMaSwgUGFuMiA8cGFuMi5saUBpbnRlbC5jb20+OyByaWNoYXJkLnNh bmRpZm9yZEBhcm0uY29tDQpTdWJqZWN0OiBSZTogW1BBVENIXSBSSVNDLVY6IEJ1Z2ZpeCBmb3Ig cnZ2IGJvb2wgbW9kZSBwcmVjaXNpb24gYWRqdXN0bWVudA0KDQpPbiBUaHUsIDE2IEZlYiAyMDIz LCBqdXpoZS56aG9uZyB3cm90ZToNCg0KPiBUaGFua3MgZm9yIHRoZSBncmVhdCB3b3JrIHRvIGZp eCB0aGlzIGlzc3VlIGZvciBydnYuSGnvvIxyaWNoYXJkLiBUaGlzIA0KPiBpcyB0aGUgcGF0Y2gg dG8gZGlmZmVyZW50aWF0ZSBtYXNrIG1vZGUgb2Ygc2FtZSBieXRlc2l6ZS4gQWRqdXN0IHRoZSAN Cj4gcHJlY2lzaW9uIGNvcnJlY3RseSBhY2NvcmRpbmcgdG8gcnZ2IGlzYS4gV291bGQgeW91IG1p bmQgaGVscGluZyB1cyANCj4gd2l0aCB0aGlzIHBhdGNoIO+8nw0KPiBTaW5jZSBpdOKAmHMgdmVy eSBpbXBvcnRhbnQgZm9yIHJ2diBzdXBwb3J0IGluIGdjYw0KDQpJZiBhZGp1c3RpbmcgdGhlIHBy ZWNpc2lvbiB3b3JrcyBmaW5lIHRoZW4gSSBzdXBwb3NlIHRoZSBwYXRjaCBsb29rcyByZWFzb25h YmxlLiAgSSdsbCBkZWZlciB0byBSaWNoYXJkIFMuIHRob3VnaCBzaW5jZSBoZSdzIHRoZSBvbmUg a25vd2luZyB0aGUgbW9kZSBzdHVmZiBiZXR0ZXIuICBJJ2QgaGF2ZSBpbnRlZ3JhdGVkIHRoZSBw cmVjaXNpb24gYWRqdXN0bWVudCB3aXRoIHRoZSBBREpVU1RfTklURVIgaG9vayBzaW5jZSB0aGF0 IGlzIGFsc28gZG9jdW1lbnRlZCB0byBhZGp1c3QgdGhlIHByZWNpc2lvbiBidHcuDQoNClJpY2hh cmQuDQoNCj4gVGhhbmtzLg0KPiAtLS0tIFJlcGxpZWQgTWVzc2FnZSAtLS0tDQo+IEZyb20NCj4g aW5jYXJuYXRpb24ucC5sZWVAb3V0bG9vay5jb208aW5jYXJuYXRpb24ucC5sZWVAb3V0bG9vay5j b20+DQo+IERhdGUNCj4gMDIvMTYvMjAyMyAyMzoxMg0KPiBUbw0KPiBnY2MtcGF0Y2hlc0BnY2Mu Z251Lm9yZzxnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZz4NCj4gQ2MNCj4ganV6aGUuemhvbmdAcml2 YWkuYWk8anV6aGUuemhvbmdAcml2YWkuYWk+LA0KPiBraXRvLmNoZW5nQHNpZml2ZS5jb208a2l0 by5jaGVuZ0BzaWZpdmUuY29tPiwNCj4gcmd1ZW50aGVyQHN1c2UuZGU8cmd1ZW50aGVyQHN1c2Uu ZGU+LA0KPiBwYW4yLmxpQGludGVsLmNvbTxwYW4yLmxpQGludGVsLmNvbT4NCj4gU3ViamVjdA0K PiBbUEFUQ0hdIFJJU0MtVjogQnVnZml4IGZvciBydnYgYm9vbCBtb2RlIHByZWNpc2lvbiBhZGp1 c3RtZW50DQo+IEZyb206IFBhbiBMaSA8cGFuMi5saUBpbnRlbC5jb20+DQo+IA0KPiDCoMKgwqBG aXggdGhlIGJ1ZyBvZiB0aGUgcnZ2IGJvb2wgbW9kZSBwcmVjaXNpb24gd2l0aCB0aGUgYWRqdXN0 bWVudC4NCj4gwqDCoMKgVGhlIGJpdHMgc2l6ZSBvZiB2Ym9vbCpfdCB3aWxsIGJlIGFkanVzdGVk IHRvDQo+IMKgwqDCoFsxLCAyLCA0LCA4LCAxNiwgMzIsIDY0XSBhY2NvcmRpbmcgdG8gdGhlIHJ2 diBzcGVjIDEuMCBpc2EuIFRoZQ0KPiDCoMKgwqBhZGp1c3RlZCBtb2RlIHByZWNpc29uIG9mIHZi b29sKl90IHdpbGwgaGVscCB1bmRlcmx5aW5nIHBhc3MgdG8NCj4gwqDCoMKgbWFrZSB0aGUgcmln aHQgZGVjaXNpb24gZm9yIGJvdGggdGhlIGNvcnJlY3RuZXNzIGFuZCBvcHRpbWl6YXRpb24uDQo+ IA0KPiDCoMKgwqBHaXZlbiBiZWxvdyBzYW1wbGUgY29kZToNCj4gwqDCoMKgdm9pZCB0ZXN0XzEo aW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkNCj4gwqDCoMKgew0K PiDCoMKgwqAgwqB2Ym9vbDhfdCB2MiA9ICoodmJvb2w4X3QqKWluOw0KPiDCoMKgwqAgwqB2Ym9v bDE2X3QgdjUgPSAqKHZib29sMTZfdCopaW47DQo+IMKgwqDCoCDCoCoodmJvb2wxNl90Kikob3V0 ICsgMjAwKSA9IHY1Ow0KPiDCoMKgwqAgwqAqKHZib29sOF90Kikob3V0ICsgMTAwKSA9IHYyOw0K PiDCoMKgwqB9DQo+IA0KPiDCoMKgwqBCZWZvcmUgdGhlIHByZWNpc2lvbiBhZGp1c3RtZW50Og0K PiDCoMKgwqBhZGRpIMKgwqDCoGE0LGExLDEwMA0KPiDCoMKgwqB2c2V0dmxpIGE1LHplcm8sZTgs bTEsdGEsbWENCj4gwqDCoMKgYWRkaSDCoMKgwqBhMSxhMSwyMDANCj4gwqDCoMKgdmxtLnYgwqDC oHYyNCwwKGEwKQ0KPiDCoMKgwqB2c20udiDCoMKgdjI0LDAoYTQpDQo+IMKgwqDCoC8vIE5lZWQg b25lIHZzZXR2bGkgYW5kIHZsbS52IGZvciBjb3JyZWN0bmVzcyBoZXJlLg0KPiDCoMKgwqB2c20u diDCoMKgdjI0LDAoYTEpDQo+IA0KPiDCoMKgwqBBZnRlciB0aGUgcHJlY2lzaW9uIGFkanVzdG1l bnQ6DQo+IMKgwqDCoGNzcnIgwqDCoMKgdDAsdmxlbmINCj4gwqDCoMKgc2xsaSDCoMKgwqB0MSx0 MCwxDQo+IMKgwqDCoGNzcnIgwqDCoMKgYTMsdmxlbmINCj4gwqDCoMKgc3ViIMKgwqDCoMKgc3As c3AsdDENCj4gwqDCoMKgc2xsaSDCoMKgwqBhNCxhMywxDQo+IMKgwqDCoGFkZCDCoMKgwqDCoGE0 LGE0LHNwDQo+IMKgwqDCoHN1YiDCoMKgwqDCoGEzLGE0LGEzDQo+IMKgwqDCoHZzZXR2bGkgYTUs emVybyxlOCxtMSx0YSxtYQ0KPiDCoMKgwqBhZGRpIMKgwqDCoGEyLGExLDIwMA0KPiDCoMKgwqB2 bG0udiDCoMKgdjI0LDAoYTApDQo+IMKgwqDCoHZzbS52IMKgwqB2MjQsMChhMykNCj4gwqDCoMKg YWRkaSDCoMKgwqBhMSxhMSwxMDANCj4gwqDCoMKgdnNldHZsaSBhNCx6ZXJvLGU4LG1mMix0YSxt YQ0KPiDCoMKgwqBjc3JyIMKgwqDCoHQwLHZsZW5iDQo+IMKgwqDCoHZsbS52IMKgwqB2MjUsMChh MykNCj4gwqDCoMKgdnNtLnYgwqDCoHYyNSwwKGEyKQ0KPiDCoMKgwqBzbGxpIMKgwqDCoHQxLHQw LDENCj4gwqDCoMKgdnNldHZsaSBhNSx6ZXJvLGU4LG0xLHRhLG1hDQo+IMKgwqDCoHZzbS52IMKg wqB2MjQsMChhMSkNCj4gwqDCoMKgYWRkIMKgwqDCoMKgc3Asc3AsdDENCj4gwqDCoMKganIgwqDC oMKgwqDCoHJhDQo+IA0KPiDCoMKgwqBIb3dldmVyLCB0aGVyZSBtYXkgYmUgc29tZSBvcHRpbWl6 YXRpb24gb3Bwb3J0dW5hdGVzIGFmdGVyDQo+IMKgwqDCoHRoZSBtb2RlIHByZWNpc2lvbiBhZGp1 c3RtZW50LiBJdCBjYW4gYmUgdG9rZW4gY2FyZSBvZiBpbg0KPiDCoMKgwqB0aGUgUklTQy1WIGJh Y2tlbmQgaW4gdGhlIHVuZGVybHlpbmcgc2VwYXJ0ZWQgUFIocykuDQo+IA0KPiDCoMKgwqBQUiAx MDgxODUNCj4gwqDCoMKgUFIgMTA4NjU0DQo+IA0KPiBnY2MvQ2hhbmdlTG9nOg0KPiANCj4gwqDC oMKgKiBjb25maWcvcmlzY3YvcmlzY3YtbW9kZXMuZGVmIChBREpVU1RfUFJFQ0lTSU9OKToNCj4g wqDCoMKgKiBjb25maWcvcmlzY3YvcmlzY3YuY2MgKHJpc2N2X3ZfYWRqdXN0X3ByZWNpc2lvbik6 DQo+IMKgwqDCoCogY29uZmlnL3Jpc2N2L3Jpc2N2LmggKHJpc2N2X3ZfYWRqdXN0X3ByZWNpc2lv bik6DQo+IMKgwqDCoCogZ2VubW9kZXMuY2MgKEFESlVTVF9QUkVDSVNJT04pOg0KPiDCoMKgwqAo ZW1pdF9tb2RlX2FkanVzdG1lbnRzKToNCj4gDQo+IGdjYy90ZXN0c3VpdGUvQ2hhbmdlTG9nOg0K PiANCj4gwqDCoMKgKiBnY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTEuYzogTmV3IHRlc3QuDQo+ IMKgwqDCoCogZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS0yLmM6IE5ldyB0ZXN0Lg0KPiDCoMKg wqAqIGdjYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtMy5jOiBOZXcgdGVzdC4NCj4gwqDCoMKgKiBn Y2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTQuYzogTmV3IHRlc3QuDQo+IMKgwqDCoCogZ2NjLnRh cmdldC9yaXNjdi9wcjEwODE4NS01LmM6IE5ldyB0ZXN0Lg0KPiDCoMKgwqAqIGdjYy50YXJnZXQv cmlzY3YvcHIxMDgxODUtNi5jOiBOZXcgdGVzdC4NCj4gwqDCoMKgKiBnY2MudGFyZ2V0L3Jpc2N2 L3ByMTA4MTg1LTcuYzogTmV3IHRlc3QuDQo+IMKgwqDCoCogZ2NjLnRhcmdldC9yaXNjdi9wcjEw ODE4NS04LmM6IE5ldyB0ZXN0Lg0KPiANCj4gU2lnbmVkLW9mZi1ieTogUGFuIExpIDxwYW4yLmxp QGludGVsLmNvbT4NCj4gLS0tDQo+IGdjYy9jb25maWcvcmlzY3YvcmlzY3YtbW9kZXMuZGVmIMKg wqDCoMKgwqDCoMKgwqDCoMKgwqB8IMKgOCArKysgDQo+IGdjYy9jb25maWcvcmlzY3YvcmlzY3Yu Y2MgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfCAxMiArKysrIA0KPiBnY2Mv Y29uZmlnL3Jpc2N2L3Jpc2N2LmggwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqB8IMKgMSArIGdjYy9nZW5tb2Rlcy5jYw0KPiB8IDI1ICsrKysrKy0gZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTEuYyB8IDY4DQo+ICsrKysrKysrKysrKysrKysrKyBn Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtMi5jIHwgNjggDQo+ICsrKysr KysrKysrKysrKysrKyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtMy5j IHwgNjggDQo+ICsrKysrKysrKysrKysrKysrKyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcHIxMDgxODUtNC5jIHwgNjggDQo+ICsrKysrKysrKysrKysrKysrKyBnY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtNS5jIHwgNjggDQo+ICsrKysrKysrKysrKysrKysr KyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtNi5jIHwgNjggDQo+ICsr KysrKysrKysrKysrKysrKyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUt Ny5jIHwgNjggDQo+ICsrKysrKysrKysrKysrKysrKyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcHIxMDgxODUtOC5jIHwgNzcNCj4gKysrKysrKysrKysrKysrKysrKysrDQo+IDEyIGZp bGVzIGNoYW5nZWQsIDU5OCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pIGNyZWF0ZSBtb2Rl IDEwMDY0NCANCj4gZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTEuYw0K PiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4 MTg1LTIuYw0KPiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3ByMTA4MTg1LTMuYw0KPiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTQuYw0KPiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTUuYw0KPiBjcmVhdGUgbW9kZSAxMDA2NDQg Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTYuYw0KPiBjcmVhdGUgbW9k ZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTcuYw0KPiBj cmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1 LTguYw0KPiANCj4gZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtbW9kZXMuZGVm DQo+IGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1tb2Rlcy5kZWYNCj4gaW5kZXggZDUzMDVlZmE4 YTYuLjExMGJkZGNlODUxIDEwMDY0NA0KPiAtLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LW1v ZGVzLmRlZg0KPiArKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LW1vZGVzLmRlZg0KPiBAQCAt NzIsNiArNzIsMTQgQEAgQURKVVNUX0JZVEVTSVpFIChWTngxNkJJLCByaXNjdl92ZWN0b3JfY2h1 bmtzICogDQo+IHJpc2N2X2J5dGVzX3Blcl92ZWN0b3JfY2h1bmspOyBBREpVU1RfQllURVNJWkUg KFZOeDMyQkksIA0KPiByaXNjdl92ZWN0b3JfY2h1bmtzICogcmlzY3ZfYnl0ZXNfcGVyX3ZlY3Rv cl9jaHVuayk7IEFESlVTVF9CWVRFU0laRSANCj4gKFZOeDY0QkksIHJpc2N2X3ZfYWRqdXN0X251 bml0cyAoVk54NjRCSW1vZGUsIDgpKTsNCj4gDQo+ICtBREpVU1RfUFJFQ0lTSU9OIChWTngxQkks IHJpc2N2X3ZfYWRqdXN0X3ByZWNpc2lvbiAoVk54MUJJbW9kZSwgMSkpOyANCj4gK0FESlVTVF9Q UkVDSVNJT04gKFZOeDJCSSwgcmlzY3Zfdl9hZGp1c3RfcHJlY2lzaW9uIChWTngyQkltb2RlLCAy KSk7IA0KPiArQURKVVNUX1BSRUNJU0lPTiAoVk54NEJJLCByaXNjdl92X2FkanVzdF9wcmVjaXNp b24gKFZOeDRCSW1vZGUsIDQpKTsgDQo+ICtBREpVU1RfUFJFQ0lTSU9OIChWTng4QkksIHJpc2N2 X3ZfYWRqdXN0X3ByZWNpc2lvbiAoVk54OEJJbW9kZSwgOCkpOyANCj4gK0FESlVTVF9QUkVDSVNJ T04gKFZOeDE2QkksIHJpc2N2X3ZfYWRqdXN0X3ByZWNpc2lvbiAoVk54MTZCSW1vZGUsIA0KPiAr MTYpKTsgQURKVVNUX1BSRUNJU0lPTiAoVk54MzJCSSwgcmlzY3Zfdl9hZGp1c3RfcHJlY2lzaW9u IA0KPiArKFZOeDMyQkltb2RlLCAzMikpOyBBREpVU1RfUFJFQ0lTSU9OIChWTng2NEJJLCANCj4g K3Jpc2N2X3ZfYWRqdXN0X3ByZWNpc2lvbiAoVk54NjRCSW1vZGUsIDY0KSk7DQo+ICsNCj4gLyoN Cj4gwqDCoMKgfCBNb2RlIMKgwqDCoMKgwqDCoMKgfCBNSU5fVkxFTj0zMiB8IE1JTl9WTEVOPTMy IHwgTUlOX1ZMRU49NjQgfA0KPiBNSU5fVkxFTj02NCB8DQo+IMKgwqDCoHwgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgfCBMTVVMIMKgwqDCoMKgwqDCoMKgfCBTRVcvTE1VTCDCoMKgwqB8IExNVUwg wqDCoMKgwqDCoMKgwqB8IFNFVy9MTVVMDQo+IHwgZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlz Y3YvcmlzY3YuY2MgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LmNjDQo+IGluZGV4IGRlM2UxZjkw M2M3Li5jYmU2NmMwZTM1YiAxMDA2NDQNCj4gLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5j Yw0KPiArKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LmNjDQo+IEBAIC0xMDAzLDYgKzEwMDMs MTggQEAgcmlzY3Zfdl9hZGp1c3RfbnVuaXRzIChtYWNoaW5lX21vZGUgbW9kZSwgaW50DQo+IHNj YWxlKQ0KPiDCoMKgcmV0dXJuIHNjYWxlOw0KPiB9DQo+IA0KPiArLyogQ2FsbCBmcm9tIEFESlVT VF9QUkVDSVNJT04gaW4gcmlzY3YtbW9kZXMuZGVmLiDCoFJldHVybiB0aGUgY29ycmVjdA0KPiAr IMKgwqBQUkVDSVNJT04gc2l6ZSBmb3IgY29ycmVzcG9uZGluZyBtYWNoaW5lX21vZGUuIMKgKi8N Cj4gKw0KPiArcG9seV9pbnQ2NA0KPiArcmlzY3Zfdl9hZGp1c3RfcHJlY2lzaW9uIChtYWNoaW5l X21vZGUgbW9kZSwgaW50IHNjYWxlKSB7DQo+ICsgwqBpZiAocmlzY3Zfdl9leHRfdmVjdG9yX21v ZGVfcCAobW9kZSkpDQo+ICsgwqDCoMKgcmV0dXJuIHJpc2N2X3ZlY3Rvcl9jaHVua3MgKiBzY2Fs ZTsNCj4gKw0KPiArIMKgcmV0dXJuIHNjYWxlOw0KPiArfQ0KPiArDQo+IC8qIFJldHVybiB0cnVl IGlmIFggaXMgYSB2YWxpZCBhZGRyZXNzIGZvciBtYWNoaW5lIG1vZGUgTU9ERS4gwqBJZiBpdCAN Cj4gaXMsDQo+IMKgwqDCoGZpbGwgaW4gSU5GTyBhcHByb3ByaWF0ZWx5LiDCoFNUUklDVF9QIGlz IHRydWUgaWYgUkVHX09LX1NUUklDVCBpcyANCj4gaW4NCj4gwqDCoMKgZWZmZWN0LiDCoCovDQo+ IGRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LmggYi9nY2MvY29uZmlnL3Jpc2N2 L3Jpc2N2LmggaW5kZXggDQo+IDViYzdmMmY0NjdkLi4xNWI5MzE3YThjZSAxMDA2NDQNCj4gLS0t IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5oDQo+ICsrKyBiL2djYy9jb25maWcvcmlzY3Yvcmlz Y3YuaA0KPiBAQCAtMTAyNSw2ICsxMDI1LDcgQEAgZXh0ZXJuIHVuc2lnbmVkIHJpc2N2X3N0YWNr X2JvdW5kYXJ5OyBleHRlcm4gDQo+IHVuc2lnbmVkIHJpc2N2X2J5dGVzX3Blcl92ZWN0b3JfY2h1 bms7IGV4dGVybiBwb2x5X3VpbnQxNiANCj4gcmlzY3ZfdmVjdG9yX2NodW5rczsgZXh0ZXJuIHBv bHlfaW50NjQgcmlzY3Zfdl9hZGp1c3RfbnVuaXRzIChlbnVtIA0KPiBtYWNoaW5lX21vZGUsIGlu dCk7DQo+ICtleHRlcm4gcG9seV9pbnQ2NCByaXNjdl92X2FkanVzdF9wcmVjaXNpb24gKGVudW0g bWFjaGluZV9tb2RlLCBpbnQpOw0KPiAvKiBUaGUgbnVtYmVyIG9mIGJpdHMgYW5kIGJ5dGVzIGlu IGEgUlZWIHZlY3Rvci4gwqAqLyAjZGVmaW5lIA0KPiBCSVRTX1BFUl9SSVNDVl9WRUNUT1IgKHBv bHlfdWludDE2IChyaXNjdl92ZWN0b3JfY2h1bmtzICogDQo+IHJpc2N2X2J5dGVzX3Blcl92ZWN0 b3JfY2h1bmsgKiA4KSkgI2RlZmluZSBCWVRFU19QRVJfUklTQ1ZfVkVDVE9SDQo+IChwb2x5X3Vp bnQxNiAocmlzY3ZfdmVjdG9yX2NodW5rcyAqDQo+IHJpc2N2X2J5dGVzX3Blcl92ZWN0b3JfY2h1 bmspKQ0KPiBkaWZmIC0tZ2l0IGEvZ2NjL2dlbm1vZGVzLmNjIGIvZ2NjL2dlbm1vZGVzLmNjIGlu ZGV4DQo+IDJkNDE4ZjA5YWFiLi4xMmY0ZTYzMzVlNiAxMDA2NDQNCj4gLS0tIGEvZ2NjL2dlbm1v ZGVzLmNjDQo+ICsrKyBiL2djYy9nZW5tb2Rlcy5jYw0KPiBAQCAtMTE0LDYgKzExNCw3IEBAIHN0 YXRpYyBzdHJ1Y3QgbW9kZV9hZGp1c3QgKmFkal9hbGlnbm1lbnQ7IHN0YXRpYyANCj4gc3RydWN0 IG1vZGVfYWRqdXN0ICphZGpfZm9ybWF0OyBzdGF0aWMgc3RydWN0IG1vZGVfYWRqdXN0ICphZGpf aWJpdDsgDQo+IHN0YXRpYyBzdHJ1Y3QgbW9kZV9hZGp1c3QgKmFkal9mYml0Ow0KPiArc3RhdGlj IHN0cnVjdCBtb2RlX2FkanVzdCAqYWRqX3ByZWNpc2lvbjsNCj4gDQo+IC8qIE1vZGUgY2xhc3Mg b3BlcmF0aW9ucy4gwqAqLw0KPiBzdGF0aWMgZW51bSBtb2RlX2NsYXNzDQo+IEBAIC04MTksNiAr ODIwLDcgQEAgbWFrZV92ZWN0b3JfbW9kZSAoZW51bSBtb2RlX2NsYXNzIGJjbGFzcywgI2RlZmlu ZSANCj4gQURKVVNUX05VTklUUyhNLCBYKSDCoMKgwqBfQUREX0FESlVTVCAobnVuaXRzLCBNLCBY LCBSQU5ET00sIFJBTkRPTSkgDQo+ICNkZWZpbmUgQURKVVNUX0JZVEVTSVpFKE0sIFgpIMKgX0FE RF9BREpVU1QgKGJ5dGVzaXplLCBNLCBYLCBSQU5ET00sDQo+IFJBTkRPTSkgI2RlZmluZSBBREpV U1RfQUxJR05NRU5UKE0sIFgpIF9BRERfQURKVVNUIChhbGlnbm1lbnQsIE0sIFgsIA0KPiBSQU5E T00sIFJBTkRPTSkNCj4gKyNkZWZpbmUgQURKVVNUX1BSRUNJU0lPTihNLCBYKSBfQUREX0FESlVT VCAocHJlY2lzaW9uLCBNLCBYLCBSQU5ET00sDQo+IFJBTkRPTSkNCj4gI2RlZmluZSBBREpVU1Rf RkxPQVRfRk9STUFUKE0sIFgpIMKgwqDCoF9BRERfQURKVVNUIChmb3JtYXQsIE0sIFgsIEZMT0FU LA0KPiBGTE9BVCkNCj4gI2RlZmluZSBBREpVU1RfSUJJVChNLCBYKSDCoF9BRERfQURKVVNUIChp Yml0LCBNLCBYLCBBQ0NVTSwgVUFDQ1VNKSANCj4gI2RlZmluZSBBREpVU1RfRkJJVChNLCBYKSDC oF9BRERfQURKVVNUIChmYml0LCBNLCBYLCBGUkFDVCwgVUFDQ1VNKSBAQA0KPiAtMTgyOSw3ICsx ODMxLDE1IEBAIGVtaXRfbW9kZV9hZGp1c3RtZW50cyAodm9pZCkNCj4gwqDCoMKgIMKgwqDCoMKg wqAiIChtb2RlX3ByZWNpc2lvbltFXyVzbW9kZV0sIG1vZGVfbnVuaXRzW0VfJXNtb2RlXSk7XG4i LA0KPiDCoMKgwqAgwqDCoMKgwqDCoG0tPm5hbWUsIG0tPm5hbWUpOw0KPiDCoMKgwqDCoMKgwqBw cmludGYgKCIgwqDCoMKgbW9kZV9wcmVjaXNpb25bRV8lc21vZGVdID0gcHMgKiBvbGRfZmFjdG9y O1xuIiwNCj4gbS0+bmFtZSk7DQo+IC0gwqDCoMKgwqDCoHByaW50ZiAoIiDCoMKgwqBtb2RlX3Np emVbRV8lc21vZGVdID0gZXhhY3RfZGl2IA0KPiAobW9kZV9wcmVjaXNpb25bRV8lc21vZGVdLCIN Cj4gKyDCoMKgwqDCoMKgLyogTm9ybWFsaXplIHRoZSBzaXplIHRvIDEgaWYgcHJlY2lzb24gaXMg bGVzcyB0aGFuIEJJVFNfUEVSX1VOSVQuDQo+IMKgKi8NCj4gKyDCoMKgwqDCoMKgcHJpbnRmICgi IMKgwqDCoHBvbHlfdWludDE2IHNpemVfb25lID0gIg0KPiArIMKgwqDCoCDCoMKgwqDCoMKgIm1v ZGVfcHJlY2lzaW9uW0VfJXNtb2RlXS5pc19jb25zdGFudCAoKVxuIiwgbS0+bmFtZSk7DQo+ICsg wqDCoMKgwqDCoHByaW50ZiAoIiDCoMKgwqDCoMKgPyBwb2x5X3VpbnQxNiAoMSwgMCkgOiBwb2x5 X3VpbnQxNiAoMSwgMSk7XG4iKTsNCj4gKyDCoMKgwqDCoMKgcHJpbnRmICgiIMKgwqDCoGlmIChr bm93bl9sdCAobW9kZV9wcmVjaXNpb25bRV8lc21vZGVdLCAiDQo+ICsgwqDCoMKgIMKgwqDCoMKg wqAic2l6ZV9vbmUgKiBCSVRTX1BFUl9VTklUKSlcbiIsIG0tPm5hbWUpOw0KPiArIMKgwqDCoMKg wqBwcmludGYgKCIgwqDCoMKgwqDCoG1vZGVfc2l6ZVtFXyVzbW9kZV0gPSBzaXplX29uZTtcbiIs IG0tPm5hbWUpOw0KPiArIMKgwqDCoMKgwqBwcmludGYgKCIgwqDCoMKgZWxzZVxuIik7DQo+ICsg wqDCoMKgwqDCoHByaW50ZiAoIiDCoMKgwqDCoMKgbW9kZV9zaXplW0VfJXNtb2RlXSA9IGV4YWN0 X2Rpdg0KPiAobW9kZV9wcmVjaXNpb25bRV8lc21vZGVdLCINCj4gwqDCoMKgIMKgwqDCoMKgwqAi IEJJVFNfUEVSX1VOSVQpO1xuIiwgbS0+bmFtZSwgbS0+bmFtZSk7DQo+IMKgwqDCoMKgwqDCoHBy aW50ZiAoIiDCoMKgwqBtb2RlX251bml0c1tFXyVzbW9kZV0gPSBwcztcbiIsIG0tPm5hbWUpOw0K PiDCoMKgwqDCoMKgwqBwcmludGYgKCIgwqDCoMKgYWRqdXN0X21vZGVfbWFzayAoRV8lc21vZGUp O1xuIiwgbS0+bmFtZSk7IEBADQo+IC0xOTYzLDYgKzE5NzMsMTkgQEAgZW1pdF9tb2RlX2FkanVz dG1lbnRzICh2b2lkKQ0KPiDCoMKgwqDCoHByaW50ZiAoIlxuIMKgLyogJXM6JWQgKi9cbiDCoFJF QUxfTU9ERV9GT1JNQVQgKEVfJXNtb2RlKSA9ICVzO1xuIiwNCj4gwqDCoMKgIMKgwqDCoGEtPmZp bGUsIGEtPmxpbmUsIGEtPm1vZGUtPm5hbWUsIGEtPmFkanVzdG1lbnQpOw0KPiANCj4gKyDCoC8q IEFkanVzdCBwcmVjaXNpb24gdG8gdGhlIGFjdHVhbCBiaXRzIHNpemUuIMKgKi8NCj4gKyDCoGZv ciAoYSA9IGFkal9wcmVjaXNpb247IGE7IGEgPSBhLT5uZXh0KQ0KPiArIMKgwqDCoHN3aXRjaCAo YS0+bW9kZS0+Y2wpDQo+ICsgwqDCoMKgwqDCoHsNCj4gKyDCoMKgwqBjYXNlIE1PREVfVkVDVE9S X0JPT0w6DQo+ICsgwqDCoMKgIMKgcHJpbnRmICgiXG4gwqAvKiAlczolZC4gwqAqL1xuIMKgcHMg PSAlcztcbiIsIGEtPmZpbGUsIGEtPmxpbmUsDQo+ICsgwqDCoMKgIMKgwqDCoCDCoGEtPmFkanVz dG1lbnQpOw0KPiArIMKgwqDCoCDCoHByaW50ZiAoIiDCoG1vZGVfcHJlY2lzaW9uW0VfJXNtb2Rl XSA9IHBzO1xuIiwgYS0+bW9kZS0+bmFtZSk7DQo+ICsgwqDCoMKgIMKgYnJlYWs7DQo+ICsgwqDC oMKgZGVmYXVsdDoNCj4gKyDCoMKgwqAgwqBicmVhazsNCj4gKyDCoMKgwqDCoMKgfQ0KPiArDQo+ IMKgwqBwdXRzICgifSIpOw0KPiB9DQo+IA0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTEuYw0KPiBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9wcjEwODE4NS0xLmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAw MDAwMDAwMDAuLmU3MDk2MGM1YjZkDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTEuYw0KPiBAQCAtMCwwICsxLDY4IEBADQo+ ICsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KPiArLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2 NGdjdiAtbWFiaT1scDY0IC1PMyIgfSAqLw0KPiArDQo+ICsjaW5jbHVkZSAicmlzY3ZfdmVjdG9y LmgiDQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2wxX3RoZW5fdmJvb2wyKGludDhfdCAqIHJl c3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIA0KPiArew0KPiArIMKgwqDCoHZib29s MV90IHYxID0gKih2Ym9vbDFfdCopaW47DQo+ICsgwqDCoMKgdmJvb2wyX3QgdjIgPSAqKHZib29s Ml90KilpbjsNCj4gKw0KPiArIMKgwqDCoCoodmJvb2wxX3QqKShvdXQgKyAxMDApID0gdjE7DQo+ ICsgwqDCoMKgKih2Ym9vbDJfdCopKG91dCArIDIwMCkgPSB2MjsNCj4gK30NCj4gKw0KPiArdm9p ZA0KPiArdGVzdF92Ym9vbDFfdGhlbl92Ym9vbDQoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhf dCAqIHJlc3RyaWN0IG91dCkgDQo+ICt7DQo+ICsgwqDCoMKgdmJvb2wxX3QgdjEgPSAqKHZib29s MV90KilpbjsNCj4gKyDCoMKgwqB2Ym9vbDRfdCB2MiA9ICoodmJvb2w0X3QqKWluOw0KPiArDQo+ ICsgwqDCoMKgKih2Ym9vbDFfdCopKG91dCArIDEwMCkgPSB2MTsNCj4gKyDCoMKgwqAqKHZib29s NF90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0X3Zib29s MV90aGVuX3Zib29sOChpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0 KSANCj4gK3sNCj4gKyDCoMKgwqB2Ym9vbDFfdCB2MSA9ICoodmJvb2wxX3QqKWluOw0KPiArIMKg wqDCoHZib29sOF90IHYyID0gKih2Ym9vbDhfdCopaW47DQo+ICsNCj4gKyDCoMKgwqAqKHZib29s MV90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiArIMKgwqDCoCoodmJvb2w4X3QqKShvdXQgKyAyMDAp ID0gdjI7DQo+ICt9DQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2wxX3RoZW5fdmJvb2wxNihp bnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSANCj4gK3sNCj4gKyDC oMKgwqB2Ym9vbDFfdCB2MSA9ICoodmJvb2wxX3QqKWluOw0KPiArIMKgwqDCoHZib29sMTZfdCB2 MiA9ICoodmJvb2wxNl90KilpbjsNCj4gKw0KPiArIMKgwqDCoCoodmJvb2wxX3QqKShvdXQgKyAx MDApID0gdjE7DQo+ICsgwqDCoMKgKih2Ym9vbDE2X3QqKShvdXQgKyAyMDApID0gdjI7DQo+ICt9 DQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2wxX3RoZW5fdmJvb2wzMihpbnQ4X3QgKiByZXN0 cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSANCj4gK3sNCj4gKyDCoMKgwqB2Ym9vbDFf dCB2MSA9ICoodmJvb2wxX3QqKWluOw0KPiArIMKgwqDCoHZib29sMzJfdCB2MiA9ICoodmJvb2wz Ml90KilpbjsNCj4gKw0KPiArIMKgwqDCoCoodmJvb2wxX3QqKShvdXQgKyAxMDApID0gdjE7DQo+ ICsgwqDCoMKgKih2Ym9vbDMyX3QqKShvdXQgKyAyMDApID0gdjI7DQo+ICt9DQo+ICsNCj4gK3Zv aWQNCj4gK3Rlc3RfdmJvb2wxX3RoZW5fdmJvb2w2NChpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50 OF90ICogcmVzdHJpY3Qgb3V0KSANCj4gK3sNCj4gKyDCoMKgwqB2Ym9vbDFfdCB2MSA9ICoodmJv b2wxX3QqKWluOw0KPiArIMKgwqDCoHZib29sNjRfdCB2MiA9ICoodmJvb2w2NF90KilpbjsNCj4g Kw0KPiArIMKgwqDCoCoodmJvb2wxX3QqKShvdXQgKyAxMDApID0gdjE7DQo+ICsgwqDCoMKgKih2 Ym9vbDY0X3QqKShvdXQgKyAyMDApID0gdjI7DQo+ICt9DQo+ICsNCj4gKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcw0KPiB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8s XHMqZTgsXHMqbTgsXHMqdGEsXHMqbWF9IDYgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMNCj4ge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4 LFxzKm00LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzDQo+IHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccypt Mixccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcw0KPiB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTEsXHMq dGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMNCj4ge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm1mMixccyp0YSxc cyptYX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcw0K PiB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWY0LFxzKnRhLFxzKm1h fSAxIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzDQo+IHt2 c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptZjgsXHMqdGEsXHMqbWF9IDEg fSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgDQo+ICt7dmxt XC52XHMrdlswLTldKyxccyowXChbYS14XVswLTldK1wpfQ0KPiAxMiB9IH0gKi8NCj4gKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyANCj4gK3t2c21cLnZccyt2WzAtOV0rLFxz KjBcKFthLXhdWzAtOV0rXCl9DQo+IDE4IH0gfSAqLw0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTIuYw0KPiBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9wcjEwODE4NS0yLmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5k ZXggMDAwMDAwMDAwMDAuLmRjYzdhNjQ0YTg4DQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTIuYw0KPiBAQCAtMCwwICsxLDY4 IEBADQo+ICsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KPiArLyogeyBkZy1vcHRpb25zICItbWFy Y2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyIgfSAqLw0KPiArDQo+ICsjaW5jbHVkZSAicmlzY3Zf dmVjdG9yLmgiDQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2wyX3RoZW5fdmJvb2wxKGludDhf dCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIA0KPiArew0KPiArIMKgwqDC oHZib29sMl90IHYxID0gKih2Ym9vbDJfdCopaW47DQo+ICsgwqDCoMKgdmJvb2wxX3QgdjIgPSAq KHZib29sMV90KilpbjsNCj4gKw0KPiArIMKgwqDCoCoodmJvb2wyX3QqKShvdXQgKyAxMDApID0g djE7DQo+ICsgwqDCoMKgKih2Ym9vbDFfdCopKG91dCArIDIwMCkgPSB2MjsNCj4gK30NCj4gKw0K PiArdm9pZA0KPiArdGVzdF92Ym9vbDJfdGhlbl92Ym9vbDQoaW50OF90ICogcmVzdHJpY3QgaW4s IGludDhfdCAqIHJlc3RyaWN0IG91dCkgDQo+ICt7DQo+ICsgwqDCoMKgdmJvb2wyX3QgdjEgPSAq KHZib29sMl90KilpbjsNCj4gKyDCoMKgwqB2Ym9vbDRfdCB2MiA9ICoodmJvb2w0X3QqKWluOw0K PiArDQo+ICsgwqDCoMKgKih2Ym9vbDJfdCopKG91dCArIDEwMCkgPSB2MTsNCj4gKyDCoMKgwqAq KHZib29sNF90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0 X3Zib29sMl90aGVuX3Zib29sOChpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJp Y3Qgb3V0KSANCj4gK3sNCj4gKyDCoMKgwqB2Ym9vbDJfdCB2MSA9ICoodmJvb2wyX3QqKWluOw0K PiArIMKgwqDCoHZib29sOF90IHYyID0gKih2Ym9vbDhfdCopaW47DQo+ICsNCj4gKyDCoMKgwqAq KHZib29sMl90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiArIMKgwqDCoCoodmJvb2w4X3QqKShvdXQg KyAyMDApID0gdjI7DQo+ICt9DQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2wyX3RoZW5fdmJv b2wxNihpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSANCj4gK3sN Cj4gKyDCoMKgwqB2Ym9vbDJfdCB2MSA9ICoodmJvb2wyX3QqKWluOw0KPiArIMKgwqDCoHZib29s MTZfdCB2MiA9ICoodmJvb2wxNl90KilpbjsNCj4gKw0KPiArIMKgwqDCoCoodmJvb2wyX3QqKShv dXQgKyAxMDApID0gdjE7DQo+ICsgwqDCoMKgKih2Ym9vbDE2X3QqKShvdXQgKyAyMDApID0gdjI7 DQo+ICt9DQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2wyX3RoZW5fdmJvb2wzMihpbnQ4X3Qg KiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSANCj4gK3sNCj4gKyDCoMKgwqB2 Ym9vbDJfdCB2MSA9ICoodmJvb2wyX3QqKWluOw0KPiArIMKgwqDCoHZib29sMzJfdCB2MiA9ICoo dmJvb2wzMl90KilpbjsNCj4gKw0KPiArIMKgwqDCoCoodmJvb2wyX3QqKShvdXQgKyAxMDApID0g djE7DQo+ICsgwqDCoMKgKih2Ym9vbDMyX3QqKShvdXQgKyAyMDApID0gdjI7DQo+ICt9DQo+ICsN Cj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2wyX3RoZW5fdmJvb2w2NChpbnQ4X3QgKiByZXN0cmljdCBp biwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSANCj4gK3sNCj4gKyDCoMKgwqB2Ym9vbDJfdCB2MSA9 ICoodmJvb2wyX3QqKWluOw0KPiArIMKgwqDCoHZib29sNjRfdCB2MiA9ICoodmJvb2w2NF90Kilp bjsNCj4gKw0KPiArIMKgwqDCoCoodmJvb2wyX3QqKShvdXQgKyAxMDApID0gdjE7DQo+ICsgwqDC oMKgKih2Ym9vbDY0X3QqKShvdXQgKyAyMDApID0gdjI7DQo+ICt9DQo+ICsNCj4gKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcw0KPiB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxz Knplcm8sXHMqZTgsXHMqbTQsXHMqdGEsXHMqbWF9IDYgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMNCj4ge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJv LFxzKmU4LFxzKm0yLFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzDQo+IHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccypl OCxccyptMSxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcw0KPiB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMq bTgsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMNCj4ge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm1mMixc cyp0YSxccyptYX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcw0KPiB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWY0LFxzKnRh LFxzKm1hfSAxIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz DQo+IHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptZjgsXHMqdGEsXHMq bWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgDQo+ ICt7dmxtXC52XHMrdlswLTldKyxccyowXChbYS14XVswLTldK1wpfQ0KPiAxMiB9IH0gKi8NCj4g Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyANCj4gK3t2c21cLnZccyt2WzAt OV0rLFxzKjBcKFthLXhdWzAtOV0rXCl9DQo+IDE3IH0gfSAqLw0KPiBkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTMuYw0KPiBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS0zLmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQN Cj4gaW5kZXggMDAwMDAwMDAwMDAuLjNhZjA1MTNlMDA2DQo+IC0tLSAvZGV2L251bGwNCj4gKysr IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTMuYw0KPiBAQCAtMCww ICsxLDY4IEBADQo+ICsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KPiArLyogeyBkZy1vcHRpb25z ICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyIgfSAqLw0KPiArDQo+ICsjaW5jbHVkZSAi cmlzY3ZfdmVjdG9yLmgiDQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2w0X3RoZW5fdmJvb2wx KGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIA0KPiArew0KPiAr IMKgwqDCoHZib29sNF90IHYxID0gKih2Ym9vbDRfdCopaW47DQo+ICsgwqDCoMKgdmJvb2wxX3Qg djIgPSAqKHZib29sMV90KilpbjsNCj4gKw0KPiArIMKgwqDCoCoodmJvb2w0X3QqKShvdXQgKyAx MDApID0gdjE7DQo+ICsgwqDCoMKgKih2Ym9vbDFfdCopKG91dCArIDIwMCkgPSB2MjsNCj4gK30N Cj4gKw0KPiArdm9pZA0KPiArdGVzdF92Ym9vbDRfdGhlbl92Ym9vbDIoaW50OF90ICogcmVzdHJp Y3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgDQo+ICt7DQo+ICsgwqDCoMKgdmJvb2w0X3Qg djEgPSAqKHZib29sNF90KilpbjsNCj4gKyDCoMKgwqB2Ym9vbDJfdCB2MiA9ICoodmJvb2wyX3Qq KWluOw0KPiArDQo+ICsgwqDCoMKgKih2Ym9vbDRfdCopKG91dCArIDEwMCkgPSB2MTsNCj4gKyDC oMKgwqAqKHZib29sMl90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ICt2b2lkDQo+ ICt0ZXN0X3Zib29sNF90aGVuX3Zib29sOChpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICog cmVzdHJpY3Qgb3V0KSANCj4gK3sNCj4gKyDCoMKgwqB2Ym9vbDRfdCB2MSA9ICoodmJvb2w0X3Qq KWluOw0KPiArIMKgwqDCoHZib29sOF90IHYyID0gKih2Ym9vbDhfdCopaW47DQo+ICsNCj4gKyDC oMKgwqAqKHZib29sNF90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiArIMKgwqDCoCoodmJvb2w4X3Qq KShvdXQgKyAyMDApID0gdjI7DQo+ICt9DQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2w0X3Ro ZW5fdmJvb2wxNihpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSAN Cj4gK3sNCj4gKyDCoMKgwqB2Ym9vbDRfdCB2MSA9ICoodmJvb2w0X3QqKWluOw0KPiArIMKgwqDC oHZib29sMTZfdCB2MiA9ICoodmJvb2wxNl90KilpbjsNCj4gKw0KPiArIMKgwqDCoCoodmJvb2w0 X3QqKShvdXQgKyAxMDApID0gdjE7DQo+ICsgwqDCoMKgKih2Ym9vbDE2X3QqKShvdXQgKyAyMDAp ID0gdjI7DQo+ICt9DQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2w0X3RoZW5fdmJvb2wzMihp bnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSANCj4gK3sNCj4gKyDC oMKgwqB2Ym9vbDRfdCB2MSA9ICoodmJvb2w0X3QqKWluOw0KPiArIMKgwqDCoHZib29sMzJfdCB2 MiA9ICoodmJvb2wzMl90KilpbjsNCj4gKw0KPiArIMKgwqDCoCoodmJvb2w0X3QqKShvdXQgKyAx MDApID0gdjE7DQo+ICsgwqDCoMKgKih2Ym9vbDMyX3QqKShvdXQgKyAyMDApID0gdjI7DQo+ICt9 DQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2w0X3RoZW5fdmJvb2w2NChpbnQ4X3QgKiByZXN0 cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSANCj4gK3sNCj4gKyDCoMKgwqB2Ym9vbDRf dCB2MSA9ICoodmJvb2w0X3QqKWluOw0KPiArIMKgwqDCoHZib29sNjRfdCB2MiA9ICoodmJvb2w2 NF90KilpbjsNCj4gKw0KPiArIMKgwqDCoCoodmJvb2w0X3QqKShvdXQgKyAxMDApID0gdjE7DQo+ ICsgwqDCoMKgKih2Ym9vbDY0X3QqKShvdXQgKyAyMDApID0gdjI7DQo+ICt9DQo+ICsNCj4gKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcw0KPiB7dnNldHZsaVxzK1thLXhdWzAt OV0rLFxzKnplcm8sXHMqZTgsXHMqbTIsXHMqdGEsXHMqbWF9IDYgfSB9ICovDQo+ICsvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMNCj4ge3ZzZXR2bGlccytbYS14XVswLTldKyxc cyp6ZXJvLFxzKmU4LFxzKm04LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPiArLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzDQo+IHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVy byxccyplOCxccyptNCxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcw0KPiB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMq ZTgsXHMqbTEsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMNCj4ge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxz Km1mMixccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcw0KPiB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWY0 LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzDQo+IHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptZjgsXHMq dGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMgDQo+ICt7dmxtXC52XHMrdlswLTldKyxccyowXChbYS14XVswLTldK1wpfQ0KPiAxMiB9IH0g Ki8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyANCj4gK3t2c21cLnZc cyt2WzAtOV0rLFxzKjBcKFthLXhdWzAtOV0rXCl9DQo+IDE2IH0gfSAqLw0KPiBkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTQuYw0KPiBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS00LmMNCj4gbmV3IGZpbGUgbW9kZSAx MDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAuLmVhM2MzNjBkNzU2DQo+IC0tLSAvZGV2L251bGwN Cj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTQuYw0KPiBA QCAtMCwwICsxLDY4IEBADQo+ICsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KPiArLyogeyBkZy1v cHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyIgfSAqLw0KPiArDQo+ICsjaW5j bHVkZSAicmlzY3ZfdmVjdG9yLmgiDQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2w4X3RoZW5f dmJvb2wxKGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIA0KPiAr ew0KPiArIMKgwqDCoHZib29sOF90IHYxID0gKih2Ym9vbDhfdCopaW47DQo+ICsgwqDCoMKgdmJv b2wxX3QgdjIgPSAqKHZib29sMV90KilpbjsNCj4gKw0KPiArIMKgwqDCoCoodmJvb2w4X3QqKShv dXQgKyAxMDApID0gdjE7DQo+ICsgwqDCoMKgKih2Ym9vbDFfdCopKG91dCArIDIwMCkgPSB2MjsN Cj4gK30NCj4gKw0KPiArdm9pZA0KPiArdGVzdF92Ym9vbDhfdGhlbl92Ym9vbDIoaW50OF90ICog cmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgDQo+ICt7DQo+ICsgwqDCoMKgdmJv b2w4X3QgdjEgPSAqKHZib29sOF90KilpbjsNCj4gKyDCoMKgwqB2Ym9vbDJfdCB2MiA9ICoodmJv b2wyX3QqKWluOw0KPiArDQo+ICsgwqDCoMKgKih2Ym9vbDhfdCopKG91dCArIDEwMCkgPSB2MTsN Cj4gKyDCoMKgwqAqKHZib29sMl90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ICt2 b2lkDQo+ICt0ZXN0X3Zib29sOF90aGVuX3Zib29sNChpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50 OF90ICogcmVzdHJpY3Qgb3V0KSANCj4gK3sNCj4gKyDCoMKgwqB2Ym9vbDhfdCB2MSA9ICoodmJv b2w4X3QqKWluOw0KPiArIMKgwqDCoHZib29sNF90IHYyID0gKih2Ym9vbDRfdCopaW47DQo+ICsN Cj4gKyDCoMKgwqAqKHZib29sOF90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiArIMKgwqDCoCoodmJv b2w0X3QqKShvdXQgKyAyMDApID0gdjI7DQo+ICt9DQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJv b2w4X3RoZW5fdmJvb2wxNihpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qg b3V0KSANCj4gK3sNCj4gKyDCoMKgwqB2Ym9vbDhfdCB2MSA9ICoodmJvb2w4X3QqKWluOw0KPiAr IMKgwqDCoHZib29sMTZfdCB2MiA9ICoodmJvb2wxNl90KilpbjsNCj4gKw0KPiArIMKgwqDCoCoo dmJvb2w4X3QqKShvdXQgKyAxMDApID0gdjE7DQo+ICsgwqDCoMKgKih2Ym9vbDE2X3QqKShvdXQg KyAyMDApID0gdjI7DQo+ICt9DQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2w4X3RoZW5fdmJv b2wzMihpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSANCj4gK3sN Cj4gKyDCoMKgwqB2Ym9vbDhfdCB2MSA9ICoodmJvb2w4X3QqKWluOw0KPiArIMKgwqDCoHZib29s MzJfdCB2MiA9ICoodmJvb2wzMl90KilpbjsNCj4gKw0KPiArIMKgwqDCoCoodmJvb2w4X3QqKShv dXQgKyAxMDApID0gdjE7DQo+ICsgwqDCoMKgKih2Ym9vbDMyX3QqKShvdXQgKyAyMDApID0gdjI7 DQo+ICt9DQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2w4X3RoZW5fdmJvb2w2NChpbnQ4X3Qg KiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSANCj4gK3sNCj4gKyDCoMKgwqB2 Ym9vbDhfdCB2MSA9ICoodmJvb2w4X3QqKWluOw0KPiArIMKgwqDCoHZib29sNjRfdCB2MiA9ICoo dmJvb2w2NF90KilpbjsNCj4gKw0KPiArIMKgwqDCoCoodmJvb2w4X3QqKShvdXQgKyAxMDApID0g djE7DQo+ICsgwqDCoMKgKih2Ym9vbDY0X3QqKShvdXQgKyAyMDApID0gdjI7DQo+ICt9DQo+ICsN Cj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcw0KPiB7dnNldHZsaVxzK1th LXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTEsXHMqdGEsXHMqbWF9IDYgfSB9ICovDQo+ICsv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMNCj4ge3ZzZXR2bGlccytbYS14XVsw LTldKyxccyp6ZXJvLFxzKmU4LFxzKm0yLFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPiArLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzDQo+IHt2c2V0dmxpXHMrW2EteF1bMC05XSss XHMqemVybyxccyplOCxccyptOCxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcw0KPiB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnpl cm8sXHMqZTgsXHMqbTQsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMNCj4ge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxz KmU4LFxzKm1mMixccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcw0KPiB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgs XHMqbWY0LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzDQo+IHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccypt ZjgsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMgDQo+ICt7dmxtXC52XHMrdlswLTldKyxccyowXChbYS14XVswLTldK1wpfQ0KPiAx MiB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyANCj4gK3t2 c21cLnZccyt2WzAtOV0rLFxzKjBcKFthLXhdWzAtOV0rXCl9DQo+IDE1IH0gfSAqLw0KPiBkaWZm IC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTUuYw0KPiBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS01LmMNCj4gbmV3IGZpbGUg bW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAuLjlmYzY1OWQyNDAyDQo+IC0tLSAvZGV2 L251bGwNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTUu Yw0KPiBAQCAtMCwwICsxLDY4IEBADQo+ICsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KPiArLyog eyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyIgfSAqLw0KPiArDQo+ ICsjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2wx Nl90aGVuX3Zib29sMShpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0 KSANCj4gK3sNCj4gKyDCoMKgwqB2Ym9vbDE2X3QgdjEgPSAqKHZib29sMTZfdCopaW47DQo+ICsg wqDCoMKgdmJvb2wxX3QgdjIgPSAqKHZib29sMV90KilpbjsNCj4gKw0KPiArIMKgwqDCoCoodmJv b2wxNl90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiArIMKgwqDCoCoodmJvb2wxX3QqKShvdXQgKyAy MDApID0gdjI7DQo+ICt9DQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2wxNl90aGVuX3Zib29s MihpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSANCj4gK3sNCj4g KyDCoMKgwqB2Ym9vbDE2X3QgdjEgPSAqKHZib29sMTZfdCopaW47DQo+ICsgwqDCoMKgdmJvb2wy X3QgdjIgPSAqKHZib29sMl90KilpbjsNCj4gKw0KPiArIMKgwqDCoCoodmJvb2wxNl90Kikob3V0 ICsgMTAwKSA9IHYxOw0KPiArIMKgwqDCoCoodmJvb2wyX3QqKShvdXQgKyAyMDApID0gdjI7DQo+ ICt9DQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2wxNl90aGVuX3Zib29sNChpbnQ4X3QgKiBy ZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSANCj4gK3sNCj4gKyDCoMKgwqB2Ym9v bDE2X3QgdjEgPSAqKHZib29sMTZfdCopaW47DQo+ICsgwqDCoMKgdmJvb2w0X3QgdjIgPSAqKHZi b29sNF90KilpbjsNCj4gKw0KPiArIMKgwqDCoCoodmJvb2wxNl90Kikob3V0ICsgMTAwKSA9IHYx Ow0KPiArIMKgwqDCoCoodmJvb2w0X3QqKShvdXQgKyAyMDApID0gdjI7DQo+ICt9DQo+ICsNCj4g K3ZvaWQNCj4gK3Rlc3RfdmJvb2wxNl90aGVuX3Zib29sOChpbnQ4X3QgKiByZXN0cmljdCBpbiwg aW50OF90ICogcmVzdHJpY3Qgb3V0KSANCj4gK3sNCj4gKyDCoMKgwqB2Ym9vbDE2X3QgdjEgPSAq KHZib29sMTZfdCopaW47DQo+ICsgwqDCoMKgdmJvb2w4X3QgdjIgPSAqKHZib29sOF90KilpbjsN Cj4gKw0KPiArIMKgwqDCoCoodmJvb2wxNl90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiArIMKgwqDC oCoodmJvb2w4X3QqKShvdXQgKyAyMDApID0gdjI7DQo+ICt9DQo+ICsNCj4gK3ZvaWQNCj4gK3Rl c3RfdmJvb2wxNl90aGVuX3Zib29sMzIoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJl c3RyaWN0DQo+ICtvdXQpIHsNCj4gKyDCoMKgwqB2Ym9vbDE2X3QgdjEgPSAqKHZib29sMTZfdCop aW47DQo+ICsgwqDCoMKgdmJvb2wzMl90IHYyID0gKih2Ym9vbDMyX3QqKWluOw0KPiArDQo+ICsg wqDCoMKgKih2Ym9vbDE2X3QqKShvdXQgKyAxMDApID0gdjE7DQo+ICsgwqDCoMKgKih2Ym9vbDMy X3QqKShvdXQgKyAyMDApID0gdjI7DQo+ICt9DQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2wx Nl90aGVuX3Zib29sNjQoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0DQo+ ICtvdXQpIHsNCj4gKyDCoMKgwqB2Ym9vbDE2X3QgdjEgPSAqKHZib29sMTZfdCopaW47DQo+ICsg wqDCoMKgdmJvb2w2NF90IHYyID0gKih2Ym9vbDY0X3QqKWluOw0KPiArDQo+ICsgwqDCoMKgKih2 Ym9vbDE2X3QqKShvdXQgKyAxMDApID0gdjE7DQo+ICsgwqDCoMKgKih2Ym9vbDY0X3QqKShvdXQg KyAyMDApID0gdjI7DQo+ICt9DQo+ICsNCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcw0KPiB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWYyLFxz KnRhLFxzKm1hfSA2IH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzDQo+IHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptMixccyp0YSxc cyptYX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcw0K PiB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTgsXHMqdGEsXHMqbWF9 IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMNCj4ge3Zz ZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm00LFxzKnRhLFxzKm1hfSAxIH0g fSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzDQo+IHt2c2V0dmxp XHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptMSxccyp0YSxccyptYX0gMSB9IH0gKi8N Cj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcw0KPiB7dnNldHZsaVxzK1th LXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWY0LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPiAr LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzDQo+IHt2c2V0dmxpXHMrW2EteF1b MC05XSssXHMqemVybyxccyplOCxccyptZjgsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgDQo+ICt7dmxtXC52XHMrdlswLTldKyxc cyowXChbYS14XVswLTldK1wpfQ0KPiAxMiB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyANCj4gK3t2c21cLnZccyt2WzAtOV0rLFxzKjBcKFthLXhdWzAtOV0r XCl9DQo+IDE0IH0gfSAqLw0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3ByMTA4MTg1LTYuYw0KPiBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9w cjEwODE4NS02LmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAu Ljk4Mjc1ZTUyNjdkDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTYuYw0KPiBAQCAtMCwwICsxLDY4IEBADQo+ICsvKiB7IGRn LWRvIGNvbXBpbGUgfSAqLw0KPiArLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFi aT1scDY0IC1PMyIgfSAqLw0KPiArDQo+ICsjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQo+ICsN Cj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2wzMl90aGVuX3Zib29sMShpbnQ4X3QgKiByZXN0cmljdCBp biwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSANCj4gK3sNCj4gKyDCoMKgwqB2Ym9vbDMyX3QgdjEg PSAqKHZib29sMzJfdCopaW47DQo+ICsgwqDCoMKgdmJvb2wxX3QgdjIgPSAqKHZib29sMV90Kilp bjsNCj4gKw0KPiArIMKgwqDCoCoodmJvb2wzMl90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiArIMKg wqDCoCoodmJvb2wxX3QqKShvdXQgKyAyMDApID0gdjI7DQo+ICt9DQo+ICsNCj4gK3ZvaWQNCj4g K3Rlc3RfdmJvb2wzMl90aGVuX3Zib29sMihpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICog cmVzdHJpY3Qgb3V0KSANCj4gK3sNCj4gKyDCoMKgwqB2Ym9vbDMyX3QgdjEgPSAqKHZib29sMzJf dCopaW47DQo+ICsgwqDCoMKgdmJvb2wyX3QgdjIgPSAqKHZib29sMl90KilpbjsNCj4gKw0KPiAr IMKgwqDCoCoodmJvb2wzMl90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiArIMKgwqDCoCoodmJvb2wy X3QqKShvdXQgKyAyMDApID0gdjI7DQo+ICt9DQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2wz Ml90aGVuX3Zib29sNChpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0 KSANCj4gK3sNCj4gKyDCoMKgwqB2Ym9vbDMyX3QgdjEgPSAqKHZib29sMzJfdCopaW47DQo+ICsg wqDCoMKgdmJvb2w0X3QgdjIgPSAqKHZib29sNF90KilpbjsNCj4gKw0KPiArIMKgwqDCoCoodmJv b2wzMl90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiArIMKgwqDCoCoodmJvb2w0X3QqKShvdXQgKyAy MDApID0gdjI7DQo+ICt9DQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2wzMl90aGVuX3Zib29s OChpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSANCj4gK3sNCj4g KyDCoMKgwqB2Ym9vbDMyX3QgdjEgPSAqKHZib29sMzJfdCopaW47DQo+ICsgwqDCoMKgdmJvb2w4 X3QgdjIgPSAqKHZib29sOF90KilpbjsNCj4gKw0KPiArIMKgwqDCoCoodmJvb2wzMl90Kikob3V0 ICsgMTAwKSA9IHYxOw0KPiArIMKgwqDCoCoodmJvb2w4X3QqKShvdXQgKyAyMDApID0gdjI7DQo+ ICt9DQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2wzMl90aGVuX3Zib29sMTYoaW50OF90ICog cmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0DQo+ICtvdXQpIHsNCj4gKyDCoMKgwqB2Ym9v bDMyX3QgdjEgPSAqKHZib29sMzJfdCopaW47DQo+ICsgwqDCoMKgdmJvb2wxNl90IHYyID0gKih2 Ym9vbDE2X3QqKWluOw0KPiArDQo+ICsgwqDCoMKgKih2Ym9vbDMyX3QqKShvdXQgKyAxMDApID0g djE7DQo+ICsgwqDCoMKgKih2Ym9vbDE2X3QqKShvdXQgKyAyMDApID0gdjI7DQo+ICt9DQo+ICsN Cj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2wzMl90aGVuX3Zib29sNjQoaW50OF90ICogcmVzdHJpY3Qg aW4sIGludDhfdCAqIHJlc3RyaWN0DQo+ICtvdXQpIHsNCj4gKyDCoMKgwqB2Ym9vbDMyX3QgdjEg PSAqKHZib29sMzJfdCopaW47DQo+ICsgwqDCoMKgdmJvb2w2NF90IHYyID0gKih2Ym9vbDY0X3Qq KWluOw0KPiArDQo+ICsgwqDCoMKgKih2Ym9vbDMyX3QqKShvdXQgKyAxMDApID0gdjE7DQo+ICsg wqDCoMKgKih2Ym9vbDY0X3QqKShvdXQgKyAyMDApID0gdjI7DQo+ICt9DQo+ICsNCj4gKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcw0KPiB7dnNldHZsaVxzK1thLXhdWzAtOV0r LFxzKnplcm8sXHMqZTgsXHMqbWY0LFxzKnRhLFxzKm1hfSA2IH0gfSAqLw0KPiArLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzDQo+IHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMq emVybyxccyplOCxccyptOCxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcw0KPiB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8s XHMqZTgsXHMqbTQsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMNCj4ge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4 LFxzKm0yLFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzDQo+IHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccypt MSxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcw0KPiB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWYyLFxz KnRhLFxzKm1hfSAxIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzDQo+IHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptZjgsXHMqdGEs XHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg DQo+ICt7dmxtXC52XHMrdlswLTldKyxccyowXChbYS14XVswLTldK1wpfQ0KPiAxMiB9IH0gKi8N Cj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyANCj4gK3t2c21cLnZccyt2 WzAtOV0rLFxzKjBcKFthLXhdWzAtOV0rXCl9DQo+IDEzIH0gfSAqLw0KPiBkaWZmIC0tZ2l0IGEv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTcuYw0KPiBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS03LmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2 NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAuLjhmNmYwYjExZjA5DQo+IC0tLSAvZGV2L251bGwNCj4g KysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTcuYw0KPiBAQCAt MCwwICsxLDY4IEBADQo+ICsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KPiArLyogeyBkZy1vcHRp b25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyIgfSAqLw0KPiArDQo+ICsjaW5jbHVk ZSAicmlzY3ZfdmVjdG9yLmgiDQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2w2NF90aGVuX3Zi b29sMShpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSANCj4gK3sN Cj4gKyDCoMKgwqB2Ym9vbDY0X3QgdjEgPSAqKHZib29sNjRfdCopaW47DQo+ICsgwqDCoMKgdmJv b2wxX3QgdjIgPSAqKHZib29sMV90KilpbjsNCj4gKw0KPiArIMKgwqDCoCoodmJvb2w2NF90Kiko b3V0ICsgMTAwKSA9IHYxOw0KPiArIMKgwqDCoCoodmJvb2wxX3QqKShvdXQgKyAyMDApID0gdjI7 DQo+ICt9DQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2w2NF90aGVuX3Zib29sMihpbnQ4X3Qg KiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSANCj4gK3sNCj4gKyDCoMKgwqB2 Ym9vbDY0X3QgdjEgPSAqKHZib29sNjRfdCopaW47DQo+ICsgwqDCoMKgdmJvb2wyX3QgdjIgPSAq KHZib29sMl90KilpbjsNCj4gKw0KPiArIMKgwqDCoCoodmJvb2w2NF90Kikob3V0ICsgMTAwKSA9 IHYxOw0KPiArIMKgwqDCoCoodmJvb2wyX3QqKShvdXQgKyAyMDApID0gdjI7DQo+ICt9DQo+ICsN Cj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2w2NF90aGVuX3Zib29sNChpbnQ4X3QgKiByZXN0cmljdCBp biwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSANCj4gK3sNCj4gKyDCoMKgwqB2Ym9vbDY0X3QgdjEg PSAqKHZib29sNjRfdCopaW47DQo+ICsgwqDCoMKgdmJvb2w0X3QgdjIgPSAqKHZib29sNF90Kilp bjsNCj4gKw0KPiArIMKgwqDCoCoodmJvb2w2NF90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiArIMKg wqDCoCoodmJvb2w0X3QqKShvdXQgKyAyMDApID0gdjI7DQo+ICt9DQo+ICsNCj4gK3ZvaWQNCj4g K3Rlc3RfdmJvb2w2NF90aGVuX3Zib29sOChpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICog cmVzdHJpY3Qgb3V0KSANCj4gK3sNCj4gKyDCoMKgwqB2Ym9vbDY0X3QgdjEgPSAqKHZib29sNjRf dCopaW47DQo+ICsgwqDCoMKgdmJvb2w4X3QgdjIgPSAqKHZib29sOF90KilpbjsNCj4gKw0KPiAr IMKgwqDCoCoodmJvb2w2NF90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiArIMKgwqDCoCoodmJvb2w4 X3QqKShvdXQgKyAyMDApID0gdjI7DQo+ICt9DQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2w2 NF90aGVuX3Zib29sMTYoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0DQo+ ICtvdXQpIHsNCj4gKyDCoMKgwqB2Ym9vbDY0X3QgdjEgPSAqKHZib29sNjRfdCopaW47DQo+ICsg wqDCoMKgdmJvb2wxNl90IHYyID0gKih2Ym9vbDE2X3QqKWluOw0KPiArDQo+ICsgwqDCoMKgKih2 Ym9vbDY0X3QqKShvdXQgKyAxMDApID0gdjE7DQo+ICsgwqDCoMKgKih2Ym9vbDE2X3QqKShvdXQg KyAyMDApID0gdjI7DQo+ICt9DQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2w2NF90aGVuX3Zi b29sMzIoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0DQo+ICtvdXQpIHsN Cj4gKyDCoMKgwqB2Ym9vbDY0X3QgdjEgPSAqKHZib29sNjRfdCopaW47DQo+ICsgwqDCoMKgdmJv b2wzMl90IHYyID0gKih2Ym9vbDMyX3QqKWluOw0KPiArDQo+ICsgwqDCoMKgKih2Ym9vbDY0X3Qq KShvdXQgKyAxMDApID0gdjE7DQo+ICsgwqDCoMKgKih2Ym9vbDMyX3QqKShvdXQgKyAyMDApID0g djI7DQo+ICt9DQo+ICsNCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcw0K PiB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWY4LFxzKnRhLFxzKm1h fSA2IH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzDQo+IHt2 c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptOCxccyp0YSxccyptYX0gMSB9 IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcw0KPiB7dnNldHZs aVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTQsXHMqdGEsXHMqbWF9IDEgfSB9ICov DQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMNCj4ge3ZzZXR2bGlccytb YS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm0yLFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPiAr LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzDQo+IHt2c2V0dmxpXHMrW2EteF1b MC05XSssXHMqemVybyxccyplOCxccyptMSxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcw0KPiB7dnNldHZsaVxzK1thLXhdWzAtOV0r LFxzKnplcm8sXHMqZTgsXHMqbWYyLFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPiArLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzDQo+IHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMq emVybyxccyplOCxccyptZjQsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgDQo+ICt7dmxtXC52XHMrdlswLTldKyxccyowXChbYS14 XVswLTldK1wpfQ0KPiAxMiB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyANCj4gK3t2c21cLnZccyt2WzAtOV0rLFxzKjBcKFthLXhdWzAtOV0rXCl9DQo+IDEy IH0gfSAqLw0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3By MTA4MTg1LTguYw0KPiBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS04 LmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAuLmQ5Njk1OWRk MDY0DQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3ByMTA4MTg1LTguYw0KPiBAQCAtMCwwICsxLDc3IEBADQo+ICsvKiB7IGRnLWRvIGNvbXBp bGUgfSAqLw0KPiArLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1P MyIgfSAqLw0KPiArDQo+ICsjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQo+ICsNCj4gK3ZvaWQN Cj4gK3Rlc3RfdmJvb2wxX3RoZW5fdmJvb2wxKGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3Qg KiByZXN0cmljdCBvdXQpIA0KPiArew0KPiArIMKgwqDCoHZib29sMV90IHYxID0gKih2Ym9vbDFf dCopaW47DQo+ICsgwqDCoMKgdmJvb2wxX3QgdjIgPSAqKHZib29sMV90KilpbjsNCj4gKw0KPiAr IMKgwqDCoCoodmJvb2wxX3QqKShvdXQgKyAxMDApID0gdjE7DQo+ICsgwqDCoMKgKih2Ym9vbDFf dCopKG91dCArIDIwMCkgPSB2MjsNCj4gK30NCj4gKw0KPiArdm9pZA0KPiArdGVzdF92Ym9vbDJf dGhlbl92Ym9vbDIoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkg DQo+ICt7DQo+ICsgwqDCoMKgdmJvb2wyX3QgdjEgPSAqKHZib29sMl90KilpbjsNCj4gKyDCoMKg wqB2Ym9vbDJfdCB2MiA9ICoodmJvb2wyX3QqKWluOw0KPiArDQo+ICsgwqDCoMKgKih2Ym9vbDJf dCopKG91dCArIDEwMCkgPSB2MTsNCj4gKyDCoMKgwqAqKHZib29sMl90Kikob3V0ICsgMjAwKSA9 IHYyOw0KPiArfQ0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0X3Zib29sNF90aGVuX3Zib29sNChpbnQ4 X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSANCj4gK3sNCj4gKyDCoMKg wqB2Ym9vbDRfdCB2MSA9ICoodmJvb2w0X3QqKWluOw0KPiArIMKgwqDCoHZib29sNF90IHYyID0g Kih2Ym9vbDRfdCopaW47DQo+ICsNCj4gKyDCoMKgwqAqKHZib29sNF90Kikob3V0ICsgMTAwKSA9 IHYxOw0KPiArIMKgwqDCoCoodmJvb2w0X3QqKShvdXQgKyAyMDApID0gdjI7DQo+ICt9DQo+ICsN Cj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2w4X3RoZW5fdmJvb2w4KGludDhfdCAqIHJlc3RyaWN0IGlu LCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIA0KPiArew0KPiArIMKgwqDCoHZib29sOF90IHYxID0g Kih2Ym9vbDhfdCopaW47DQo+ICsgwqDCoMKgdmJvb2w4X3QgdjIgPSAqKHZib29sOF90KilpbjsN Cj4gKw0KPiArIMKgwqDCoCoodmJvb2w4X3QqKShvdXQgKyAxMDApID0gdjE7DQo+ICsgwqDCoMKg Kih2Ym9vbDhfdCopKG91dCArIDIwMCkgPSB2MjsNCj4gK30NCj4gKw0KPiArdm9pZA0KPiArdGVz dF92Ym9vbDE2X3RoZW5fdmJvb2wxNihpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVz dHJpY3QNCj4gK291dCkgew0KPiArIMKgwqDCoHZib29sMTZfdCB2MSA9ICoodmJvb2wxNl90Kilp bjsNCj4gKyDCoMKgwqB2Ym9vbDE2X3QgdjIgPSAqKHZib29sMTZfdCopaW47DQo+ICsNCj4gKyDC oMKgwqAqKHZib29sMTZfdCopKG91dCArIDEwMCkgPSB2MTsNCj4gKyDCoMKgwqAqKHZib29sMTZf dCopKG91dCArIDIwMCkgPSB2MjsNCj4gK30NCj4gKw0KPiArdm9pZA0KPiArdGVzdF92Ym9vbDMy X3RoZW5fdmJvb2wzMihpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3QNCj4g K291dCkgew0KPiArIMKgwqDCoHZib29sMzJfdCB2MSA9ICoodmJvb2wzMl90KilpbjsNCj4gKyDC oMKgwqB2Ym9vbDMyX3QgdjIgPSAqKHZib29sMzJfdCopaW47DQo+ICsNCj4gKyDCoMKgwqAqKHZi b29sMzJfdCopKG91dCArIDEwMCkgPSB2MTsNCj4gKyDCoMKgwqAqKHZib29sMzJfdCopKG91dCAr IDIwMCkgPSB2MjsNCj4gK30NCj4gKw0KPiArdm9pZA0KPiArdGVzdF92Ym9vbDY0X3RoZW5fdmJv b2w2NChpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3QNCj4gK291dCkgew0K PiArIMKgwqDCoHZib29sNjRfdCB2MSA9ICoodmJvb2w2NF90KilpbjsNCj4gKyDCoMKgwqB2Ym9v bDY0X3QgdjIgPSAqKHZib29sNjRfdCopaW47DQo+ICsNCj4gKyDCoMKgwqAqKHZib29sNjRfdCop KG91dCArIDEwMCkgPSB2MTsNCj4gKyDCoMKgwqAqKHZib29sNjRfdCopKG91dCArIDIwMCkgPSB2 MjsNCj4gK30NCj4gKw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzDQo+ IHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptOCxccyp0YSxccyptYX0g MSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcw0KPiB7dnNl dHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTQsXHMqdGEsXHMqbWF9IDEgfSB9 ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMNCj4ge3ZzZXR2bGlc cytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm0yLFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0K PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzDQo+IHt2c2V0dmxpXHMrW2Et eF1bMC05XSssXHMqemVybyxccyplOCxccyptMSxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcw0KPiB7dnNldHZsaVxzK1thLXhdWzAt OV0rLFxzKnplcm8sXHMqZTgsXHMqbWYyLFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPiArLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzDQo+IHt2c2V0dmxpXHMrW2EteF1bMC05XSss XHMqemVybyxccyplOCxccyptZjQsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMNCj4ge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6 ZXJvLFxzKmU4LFxzKm1mOCxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyANCj4gK3t2bG1cLnZccyt2WzAtOV0rLFxzKjBcKFthLXhd WzAtOV0rXCl9DQo+IDcgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMgDQo+ICt7dnNtXC52XHMrdlswLTldKyxccyowXChbYS14XVswLTldK1wpfQ0KPiAxNCB9 IH0gKi8NCj4gLS0NCj4gMi4zNC4xDQo+IA0KPiANCj4gDQoNCi0tDQpSaWNoYXJkIEJpZW5lciA8 cmd1ZW50aGVyQHN1c2UuZGU+DQpTVVNFIFNvZnR3YXJlIFNvbHV0aW9ucyBHZXJtYW55IEdtYkgs IEZyYW5rZW5zdHJhc3NlIDE0NiwgOTA0NjEgTnVlcm5iZXJnLCBHZXJtYW55OyBHRjogSXZvIFRv dGV2LCBBbmRyZXcgTXllcnMsIEFuZHJldyBNY0RvbmFsZCwgQm91ZGllbiBNb2VybWFuOyBIUkIg MzY4MDkgKEFHIE51ZXJuYmVyZykNCg==