From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mx.groups.io with SMTP id smtpd.web11.1727.1682010865470529694 for ; Thu, 20 Apr 2023 10:14:25 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=azWScnAe; spf=pass (domain: intel.com, ip: 134.134.136.65, mailfrom: michael.d.kinney@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1682010865; x=1713546865; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=1ulb6KKl5XEoLJVXrKJcKJK6326XXqOMm9FWbBADj7o=; b=azWScnAemScL4vV8WBuOJOdhQ7Xhe+AlulgU6Bzcegm0rWXrBuGVpjI7 N2m25Q2Hnxl00CcniUIPkLGQPJHEsH5LrPjLAhTaEBOj0f/L7T3MAzY50 v/HsMfTaezLckgPZ4rMn1gPqCO/97jBVbsyXSy5RXjb99XWn0X8ZtnOvy aBKBcp6gS7l8y9VwldulyegjXbPYSkyiMJjltOauNicPBDnW31vg6g8PB gN6QU9k+0obi/j8H0tDY+MYLTwhdyInqRaN0LtRrUXCGcRHQzYIy3JMpq 7zCqgpmz0gUv13SmjJJ6W/8/tZRFj8+QYsWwt6mc69FExttOfP8HZLKbK Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10686"; a="348574850" X-IronPort-AV: E=Sophos;i="5.99,213,1677571200"; d="scan'208";a="348574850" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Apr 2023 09:44:09 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10686"; a="1021623084" X-IronPort-AV: E=Sophos;i="5.99,213,1677571200"; d="scan'208";a="1021623084" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmsmga005.fm.intel.com with ESMTP; 20 Apr 2023 09:44:09 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) 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; Thu, 20 Apr 2023 09:44:08 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Thu, 20 Apr 2023 09:44:08 -0700 Received: from NAM04-MW2-obe.outbound.protection.outlook.com (104.47.73.171) 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.2507.23; Thu, 20 Apr 2023 09:44:08 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jyVK7OKGSm5HPmEltmZq90bC9+169UCmwNkfdeBjA1mAUjRvO0GGQOAsf1DUCLoAOgfObfVYAeCUpi9nclLZ6XDz8VVO77miOT5TuWMh1LzYAnRAmBSLvDpCx9JeNGRd9emtw7HdfNA1vPkySWCxGfdRwXtQVCFj8aEWDWFYnAqo0Kwnuf5O+hhfdFVyJ2+7qygCgpa6hawxaBETda9S1jK1W7nGZSymfGPtyLtS6YTOoslDH9K1lP9tpnEYUpJ8YBlZZPS/FIu0JnncLAJRz2GF2wNo6g03pFVuc1QYhLIegUOk5+oTd9SKsVeUt6PGRrInZw8EpqJUtcMF7bKiCA== 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=1ulb6KKl5XEoLJVXrKJcKJK6326XXqOMm9FWbBADj7o=; b=ltClAy4IdiAf864pf1me5k6FAOqvbV62+g1GoIbkE5hGmKPHnQdAR3NocaKDT1kxZXe22+qFaZWxybOPMT7hjrHfXGKjGn8xOENQdOcbS2N+HiJSo8JvgWBTk+AQ/HHSZZ3qcTlxOM0ESTM7V18pCA45tSclkUjQZVmVHoyYxBMy8pXUiv9/ElQhGErWJxKphfl0xH8NFTBXHaXibd44sh3sEEDfIEY/raP1YsjGTORiJc5VtXWFR2kWkVW0Q6hjwf6KXiZGZ/sXCPQyOTwDc8108cjgLyA3lbaTF7ijWJsHmSFzyA3zzQS4NTSWJhbxlD4nCqYnpsMwro9DIRJjcA== 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 CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by CH3PR11MB7866.namprd11.prod.outlook.com (2603:10b6:610:124::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6319.21; Thu, 20 Apr 2023 16:44:04 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::ba6c:51be:a461:c46f]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::ba6c:51be:a461:c46f%3]) with mapi id 15.20.6319.022; Thu, 20 Apr 2023 16:44:04 +0000 From: "Michael D Kinney" To: "Lin, Benny" , "devel@edk2.groups.io" , Leif Lindholm CC: "Gao, Liming" , "Liu, Zhiguang" , Pedro Falcato , "Kinney, Michael D" Subject: Re: [PATCH v3 2/3] MdePkg: Support FDT library. Thread-Topic: [PATCH v3 2/3] MdePkg: Support FDT library. Thread-Index: AQHZcO5q7fKvBNcZ+0+q116Ir7z5eq8yx5NggAAap4CAAEA2IIAAe/mAgADNp2A= Date: Thu, 20 Apr 2023 16:44:03 +0000 Message-ID: References: <20230417053505.670-1-benny.lin@intel.com> <20230417053505.670-3-benny.lin@intel.com> In-Reply-To: Accept-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: CO1PR11MB4929:EE_|CH3PR11MB7866:EE_ x-ms-office365-filtering-correlation-id: 4d8e8389-3e88-46ad-bfbe-08db41be737a x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: YpTBQn7zdjQ0IGim5xnIkcjAdA2ihu80QtH1cT57TkB2V6DR5vTkxuINSWEThm4abLFHvYUMhPzh8HDexhW6HuzJPr3rfRdje5QoJmbxv17CRcZFELNr2DRMYRIaa5RT0NCl+Hrn40g+TjIk0YEOPaoqQHlP536+RcT/KbnuCWSPM02N+Dl1miAk8EgSiAl2R5vcTzqz0VjZuySMWt43G/Je8MQuj89TDFFSo5vl8tv4dM6mSEPnNXboT+NqeUVOllUKBpgG66Smb2X0yMc4ameY1xGDYsXbJ6MYr5poAIJZHBfVqfnwoq67+gbL6Ew13/TIp8QHZObGPpghsgCHRSOrRnEiiQVWFnIep4GQl5OAoW0gLJ6WDoE/ta9UwwKBAqH8vZJlNd4NbvUWbTSNeT5GotDdfkZZt6MWW7MMPTki7Yq279UUUMACBDYVlKxl/3L03pZtGvX3srS6ww8Oj/25EtPX6tb/Oy+b0/iyFRNzagM5U5TY6OgcK2ndq37CdUN34GnqWFsAM5XBXLnuX1CrlPFNpAinv4dKFijuPKMOgVLRIImEhAn0OBNPWoYQGsITWxDvZvT5quzsiSFv150Kh/wlOjVeqvnC19iQs762NG3THWSHGBWBP2YtVDfjK8krIbFPKQuUq8FiysHpdw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4929.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(136003)(376002)(396003)(366004)(39860400002)(346002)(451199021)(66446008)(66556008)(76116006)(19627235002)(316002)(82960400001)(66476007)(64756008)(83380400001)(110136005)(4326008)(7696005)(71200400001)(478600001)(54906003)(45080400002)(8936002)(8676002)(38100700002)(41300700001)(66946007)(122000001)(2906002)(52536014)(30864003)(5660300002)(966005)(26005)(186003)(9686003)(107886003)(6506007)(53546011)(86362001)(38070700005)(33656002)(55016003)(579004)(559001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ekJoeXhJTnQyMEhOWUYxcFNGYmpmcXJvM3dxcTQxejR0VlNlVHRYQlQ4MUVt?= =?utf-8?B?TTBNWkNRb3lvK3Q1WTRyYStwYkVXV0hzTmNIVzA4b3JQV2x3TU50dUhzdDlh?= =?utf-8?B?NkxkVTM3V2kwVnJ3Yjd1MnMzQXVyQWpKVHliRmp6aHBSb3l2MGxLclB1bWZ2?= =?utf-8?B?eVBWMzR0cEI5eWZ1UUhmYlRtbS8xK2ppcVVGd0dveTZWRHFnci9VbnU5dTAr?= =?utf-8?B?YWpmaUJLMzRGYWpna29RZ3FLUEJncXA1alkzU2JPR0U3TXU4MkxIcHdNV1pz?= =?utf-8?B?UmVRQ2RLVHpzR1FhQ0Zqa25OTlVtWmRrVzRFWWNuaGYvVHYxWkljWWxlTjV4?= =?utf-8?B?Y2pKQXRkS0dwTzNHYUN4bDB1YVVRME9SazVTQXdrZW93RjhuTm0yZmh0VERB?= =?utf-8?B?Ty9RS3Q0YmtKbGlRRWZMREpadjVvTVZxQnl2TFMydWVCRVp5YWJXdVF5U3la?= =?utf-8?B?S21hSkNLd3RwOGk1bjVZR2YxWVhPRTlIazJqVlAwM2pnT251QjM2ako2Sk5z?= =?utf-8?B?ekJ1YW1zdHltdTVubmxReVFXYWVVQ3FnQ0I3WE54Z1N1MUJRU3RWUElpaVpJ?= =?utf-8?B?TFpDWEVMZmU4dmFRQmMxZGo4SHlBeHFpYWFFK3U4V3dVazBWQWtTN2swSjFQ?= =?utf-8?B?YjZWdUNtZEdTd212Nkd5TVkvM0N6WnA5dFoyR1dCcmpVRlFQYzFVUEZILzRa?= =?utf-8?B?dHNITzFrdUJtZzVZRHgwUDF2S1lZSVdhVFFIN0pJb042Vkl5S21VR29XMjFD?= =?utf-8?B?NXpWUlFibjlZVmJwbmhuM1RyK3JGdUJjQTFvSXp5QkpOZzE1RnBuZWhNckJM?= =?utf-8?B?ZUtGSWJqUFdFR3UxNVVJMWZZb3JTSFlSeE1STkRGTWtZaVoyTUROWFlMcUht?= =?utf-8?B?OTNoY1gvaDdHWmZVMUdjL0cvNGo3cUxIWjEwZ3VxYldOdGk2UGNsVnNCdUFM?= =?utf-8?B?eTRPd0UxbEZLQU01VXc4N01aOTRtWHo0eklockpjMzRxVFBJZ21hNEdWbmlN?= =?utf-8?B?MHc3dTNpQzNScC9ESm5YL1VXWllBV2UrTy9mVW9qM0ZoS2FkZ0FTS3ZQYXFm?= =?utf-8?B?WEJFSnNOeUprNUlsTFVFWndWTmo4dzlYckJ2dDBRQno2dG1YQlNUWTBOdHds?= =?utf-8?B?VDNEM3YwY0RVZ0RYMUI1SUVBbXRuMGNoTlcxUkt4S2Ezb05icXd5cGo4aWdr?= =?utf-8?B?cnoya0VxMWJBQUZsSkJyOGc2alhWd3hkYUxxbml3eVp2ZmNXcXllbjUwWDV6?= =?utf-8?B?QXJQSWxKV0tLQmE5Tjh0NUxyeCtLcnBqWkZFNSs1U0dGNzA5OFkvaFlYd21F?= =?utf-8?B?anFqSE43aE1zeVhmSXlCMnc5a2tRL2M1L0tSTENuL1pZNnprTjE0MXk4Mzha?= =?utf-8?B?cWI3SHBrYm0xcGlmUVg4TXBtQ2UzKzdvb2dnaXFqaWVBdEhvWm4yNXdnaHNa?= =?utf-8?B?MGxXVjBETkJjbjEveGw4NWI0cHpFemJRZ0pJcGJ5YThlTlZvS3JvTDQ4OVlN?= =?utf-8?B?dzJRMzZ2U0ozWVhDamk0bEVTQnpJQmlrSWpVWU1FcmVDYnY1ZTAxYmsxQTVX?= =?utf-8?B?bS9PeStTLys3NGdYQUpWZ0J0OUVjUkRBeks4T2tPMEZkVWtPa0ludXIzSCtP?= =?utf-8?B?ZkJkMzZuTWNncm9yckxzWDNaTWMzQzdsVURxcTFHUkJldVQ1Z1FuTHVCai9L?= =?utf-8?B?OXl0ci93dE1RZGE4eFFlSWpnRmduZGh5blY3RFBWeCtrZ1JlQll5VDFDb2E2?= =?utf-8?B?d2cvS0hQaDNDT2s5b00zUGwxMlIxQ09XU3hQMmo5SW90WEt6UWYrMTNZalM2?= =?utf-8?B?OTVVVVR2b3lYZ0VSM1dneVRSd0ZIOTVmRm9FLzBDdDUxcVNwRVFvcUw5RVEw?= =?utf-8?B?Rys2Y2kxMlRna21RZ3BkVU5aZDl0cFlPU0F1UzY5S0J5ZHJxb1krTkFtMTJG?= =?utf-8?B?aE1uMGFURWVMQnpMdStIY0FxdGtqRkNHWmUwSmxkaU12YzI4a1ZMbUIycFBS?= =?utf-8?B?M2NVOFhudEttUzhPOG14Snc3ZmVHb0w3bkJocXc5SENaa0l6RDR0YjMxdWlW?= =?utf-8?B?WHdBRmFHTjBPT1N3bTVuSU9Xd01qZkNrZ1RGQURsakwzV1RGUmQrTDRURC94?= =?utf-8?B?b2FKMUhQcXJxRnNmaXdFUjVqbjl1L0s1RjE2d2Z2RmRudnlzL002dkJ4REdz?= =?utf-8?B?dmc9PQ==?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4929.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4d8e8389-3e88-46ad-bfbe-08db41be737a X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Apr 2023 16:44:03.9534 (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: Sk9QMEKEhV74OnDlMel3/1sPm3/pvlZ0d5ThoSu9SudluRXb3AhWSKF2nyVSCvDjaKs0+5rt37i9hLhUIl5/9WqJBPONdIQW0iAo7eLlHjI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR11MB7866 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTGVpZiwNCg0KV2hhdCBpcyB5b3VyIG9waW5pb24gb24gRkRUIGJlaW5nIGJpZyBlbmRpYW4u DQoNCkRvIHdlIHdhbnQgdGhlIGxpYiB0byBoZWxwIHdpdGggdGhhdCBhc3BlY3QsIG9yIGxlYXZl IGl0IHVwIHRvIHRoZSBjb25zdW1lciBvZiB0aGUgbGliIHRvIA0KY29udmVydCBhcyBuZWVkZWQ/ ICBTZWVtcyBsaWtlIGFuIGFyZWEgdGhhdCBjb3VsZCBiZSB2ZXJ5IGVycm9yIHByb25lIGlmIHdl IGFyZSBub3QNCmNhcmVmdWwuDQoNCk1pa2UNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KPiBGcm9tOiBMaW4sIEJlbm55IDxiZW5ueS5saW5AaW50ZWwuY29tPg0KPiBTZW50OiBXZWRu ZXNkYXksIEFwcmlsIDE5LCAyMDIzIDk6MjUgUE0NCj4gVG86IEtpbm5leSwgTWljaGFlbCBEIDxt aWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+IENjOiBH YW8sIExpbWluZyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsgTGl1LCBaaGlndWFuZyA8emhp Z3VhbmcubGl1QGludGVsLmNvbT47IFBlZHJvIEZhbGNhdG8gPHBlZHJvLmZhbGNhdG9AZ21haWwu Y29tPg0KPiBTdWJqZWN0OiBSRTogW1BBVENIIHYzIDIvM10gTWRlUGtnOiBTdXBwb3J0IEZEVCBs aWJyYXJ5Lg0KPiANCj4gDQo+IA0KPiA+LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPkZy b206IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPlNl bnQ6IFRodXJzZGF5LCBBcHJpbCAyMCwgMjAyMyA1OjA0IEFNDQo+ID5UbzogTGluLCBCZW5ueSA8 YmVubnkubGluQGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID5DYzogR2FvLCBM aW1pbmcgPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IExpdSwgWmhpZ3VhbmcgPHpoaWd1YW5n LmxpdUBpbnRlbC5jb20+OyBQZWRybyBGYWxjYXRvIDxwZWRyby5mYWxjYXRvQGdtYWlsLmNvbT47 IEtpbm5leSwNCj4gTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPlN1 YmplY3Q6IFJFOiBbUEFUQ0ggdjMgMi8zXSBNZGVQa2c6IFN1cHBvcnQgRkRUIGxpYnJhcnkuDQo+ ID4NCj4gPlJlc3BvbnNlcyBiZWxvdw0KPiA+DQo+ID5NaWtlDQo+ID4NCj4gPj4gLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogTGluLCBCZW5ueSA8YmVubnkubGluQGludGVs LmNvbT4NCj4gPj4gU2VudDogV2VkbmVzZGF5LCBBcHJpbCAxOSwgMjAyMyAxMDoxMiBBTQ0KPiA+ PiBUbzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsNCj4g Pj4gZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPj4gQ2M6IEdhbywgTGltaW5nIDxnYW9saW1pbmdA Ynlvc29mdC5jb20uY24+OyBMaXUsIFpoaWd1YW5nDQo+ID4+IDx6aGlndWFuZy5saXVAaW50ZWwu Y29tPjsgUGVkcm8gRmFsY2F0byA8cGVkcm8uZmFsY2F0b0BnbWFpbC5jb20+DQo+ID4+IFN1Ympl Y3Q6IFJFOiBbUEFUQ0ggdjMgMi8zXSBNZGVQa2c6IFN1cHBvcnQgRkRUIGxpYnJhcnkuDQo+ID4+ DQo+ID4+IFBsZWFzZSBmaW5kIG15IGZlZWRiYWNrIGJlbG93Lg0KPiA+PiBXZSBjYW4gcmVtb3Zl IEZEVF9SRVNFUlZFX0VOVFJZIGJ1dCBrZWVwIEZEVF9OT0RFX0hFQURFUiwgd2hhdCBkbyB5b3Ug dGhpbms/DQo+ID4+DQo+ID4+IFFRUQ0KPiA+PiBCZW5ueQ0KPiA+Pg0KPiA+PiA+LS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gPkZyb206IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVs LmQua2lubmV5QGludGVsLmNvbT4NCj4gPj4gPlNlbnQ6IFdlZG5lc2RheSwgQXByaWwgMTksIDIw MjMgMTE6NTQgUE0NCj4gPj4gPlRvOiBMaW4sIEJlbm55IDxiZW5ueS5saW5AaW50ZWwuY29tPjsg ZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPj4gPkNjOiBHYW8sIExpbWluZyA8Z2FvbGltaW5nQGJ5 b3NvZnQuY29tLmNuPjsgTGl1LCBaaGlndWFuZw0KPiA+PiA+PHpoaWd1YW5nLmxpdUBpbnRlbC5j b20+OyBQZWRybyBGYWxjYXRvIDxwZWRyby5mYWxjYXRvQGdtYWlsLmNvbT47DQo+ID4+ID5LaW5u ZXksDQo+ID4+IE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ID4+ID5T dWJqZWN0OiBSRTogW1BBVENIIHYzIDIvM10gTWRlUGtnOiBTdXBwb3J0IEZEVCBsaWJyYXJ5Lg0K PiA+PiA+DQo+ID4+ID5BIGZldyBjb21tZW50cyBiZWxvdy4NCj4gPj4gPg0KPiA+PiA+TWlrZQ0K PiA+PiA+DQo+ID4+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+ID4+IEZyb206 IExpbiwgQmVubnkgPGJlbm55LmxpbkBpbnRlbC5jb20+DQo+ID4+ID4+IFNlbnQ6IFN1bmRheSwg QXByaWwgMTYsIDIwMjMgMTA6MzUgUE0NCj4gPj4gPj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlv DQo+ID4+ID4+IENjOiBMaW4sIEJlbm55IDxiZW5ueS5saW5AaW50ZWwuY29tPjsgS2lubmV5LCBN aWNoYWVsIEQNCj4gPj4gPj4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgR2FvLCBMaW1p bmcNCj4gPj4gPj4gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IExpdSwgWmhpZ3VhbmcgPHpo aWd1YW5nLmxpdUBpbnRlbC5jb20+Ow0KPiA+PiA+PiBQZWRybyBGYWxjYXRvIDxwZWRyby5mYWxj YXRvQGdtYWlsLmNvbT4NCj4gPj4gPj4gU3ViamVjdDogW1BBVENIIHYzIDIvM10gTWRlUGtnOiBT dXBwb3J0IEZEVCBsaWJyYXJ5Lg0KPiA+PiA+Pg0KPiA+PiA+PiBGcm9tOiBCZW5ueSBMaW4gPGJl bm55LmxpbkBpbnRlbC5jb20+DQo+ID4+ID4+DQo+ID4+ID4+IFJFRjogaHR0cHM6Ly9idWd6aWxs YS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD00MzkyDQo+ID4+ID4+IEFkZCBGRFQgc3Vw cG9ydCBpbiBFREsyIGJ5IHN1Ym1vZHVsZSAzcmQgcGFydHkgbGliZmR0DQo+ID4+ID4+IChodHRw czovL2dpdGh1Yi5jb20vZGV2aWNldHJlZS1vcmcvcHlsaWJmZHQvdHJlZS9tYWluL2xpYmZkdCkN Cj4gPj4gPj4gYW5kIHJlZmVyIHRvIExpYmNMaWIgaW1wbGVtZW50YXRpb24gYnkgUGVkcm8uDQo+ ID4+ID4+DQo+ID4+ID4+IENjOiBNaWNoYWVsIEQgS2lubmV5IDxtaWNoYWVsLmQua2lubmV5QGlu dGVsLmNvbT4NCj4gPj4gPj4gQ2M6IExpbWluZyBHYW8gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5j bj4NCj4gPj4gPj4gQ2M6IFpoaWd1YW5nIExpdSA8emhpZ3VhbmcubGl1QGludGVsLmNvbT4NCj4g Pj4gPj4gQWNrZWQtYnk6IFBlZHJvIEZhbGNhdG8gPHBlZHJvLmZhbGNhdG9AZ21haWwuY29tPg0K PiA+PiA+PiBTaWduZWQtb2ZmLWJ5OiBCZW5ueSBMaW4gPGJlbm55LmxpbkBpbnRlbC5jb20+DQo+ ID4+ID4+IC0tLQ0KPiA+PiA+PiAgTWRlUGtnL0luY2x1ZGUvTGlicmFyeS9GZHRMaWIuaCAgICAg ICAgICAgfCAzMTQgKysrKysrKysrKysrKysrKysrKysNCj4gPj4gPj4gIE1kZVBrZy9MaWJyYXJ5 L0Jhc2VGZHRMaWIvQmFzZUZkdExpYi5pbmYgIHwgIDYyICsrKysNCj4gPj4gPj4gTWRlUGtnL0xp YnJhcnkvQmFzZUZkdExpYi9CYXNlRmR0TGliLnVuaSAgfCAgMTQgKw0KPiA+PiA+PiAgTWRlUGtn L0xpYnJhcnkvQmFzZUZkdExpYi9GZHRMaWIuYyAgICAgICAgfCAzMDEgKysrKysrKysrKysrKysr KysrKw0KPiA+PiA+PiAgTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9MaWJGZHRTdXBwb3J0Lmgg fCAgOTkgKysrKysrDQo+ID4+ID4+IE1kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvTGliRmR0V3Jh cHBlci5jIHwgMTczICsrKysrKysrKysrDQo+ID4+ID4+ICBNZGVQa2cvTGlicmFyeS9CYXNlRmR0 TGliL2xpbWl0cy5oICAgICAgICB8ICAxMCArDQo+ID4+ID4+ICBNZGVQa2cvTGlicmFyeS9CYXNl RmR0TGliL3N0ZGJvb2wuaCAgICAgICB8ICAxMCArDQo+ID4+ID4+ICBNZGVQa2cvTGlicmFyeS9C YXNlRmR0TGliL3N0ZGRlZi5oICAgICAgICB8ICAxMCArDQo+ID4+ID4+ICBNZGVQa2cvTGlicmFy eS9CYXNlRmR0TGliL3N0ZGludC5oICAgICAgICB8ICAxMCArDQo+ID4+ID4+ICBNZGVQa2cvTGli cmFyeS9CYXNlRmR0TGliL3N0ZGxpYi5oICAgICAgICB8ICAxMCArDQo+ID4+ID4+ICBNZGVQa2cv TGlicmFyeS9CYXNlRmR0TGliL3N0cmluZy5oICAgICAgICB8ICAxMCArDQo+ID4+ID4+ICBNZGVQ a2cvTWRlUGtnLmNpLnlhbWwgICAgICAgICAgICAgICAgICAgICB8ICAxNyArLQ0KPiA+PiA+PiAg TWRlUGtnL01kZVBrZy5kZWMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKw0KPiA+PiA+ PiAgTWRlUGtnL01kZVBrZy5kc2MgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKw0KPiA+ PiA+PiAgMTUgZmlsZXMgY2hhbmdlZCwgMTA0MyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygt KQ0KPiA+PiA+Pg0KPiA+PiA+PiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0luY2x1ZGUvTGlicmFyeS9G ZHRMaWIuaA0KPiA+PiA+PiBiL01kZVBrZy9JbmNsdWRlL0xpYnJhcnkvRmR0TGliLmggbmV3IGZp bGUgbW9kZSAxMDA2NDQgaW5kZXgNCj4gPj4gPj4gMDAwMDAwMDAwMC4uZDU5Yjc0OWMyNQ0KPiA+ PiA+PiAtLS0gL2Rldi9udWxsDQo+ID4+ID4+ICsrKyBiL01kZVBrZy9JbmNsdWRlL0xpYnJhcnkv RmR0TGliLmgNCj4gPj4gPj4gQEAgLTAsMCArMSwzMTQgQEANCj4gPj4gPj4gKy8qKiBAZmlsZQ0K PiA+PiA+Pg0KPiA+PiA+PiArICBGbGF0dGVuZWQgRGV2aWNlIFRyZWUgTGlicmFyeS4NCj4gPj4g Pj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArICBDb3B5cmlnaHQgKGMpIDIwMjMsIElu dGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPj4gPj4NCj4gPj4g Pj4gKyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPj4g Pj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArKiovDQo+ID4+ID4+DQo+ID4+ID4+ICsN Cj4gPj4gPj4NCj4gPj4gPj4gKyNpZm5kZWYgRkRUX0xJQl9IXw0KPiA+PiA+Pg0KPiA+PiA+PiAr I2RlZmluZSBGRFRfTElCX0hfDQo+ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4g Ky8vLw0KPiA+PiA+Pg0KPiA+PiA+PiArLy8vIEZsYXR0ZW5lZCBEZXZpY2UgVHJlZSBkZWZpbml0 aW9uDQo+ID4+ID4+DQo+ID4+ID4+ICsvLy8NCj4gPj4gPj4NCj4gPj4gPj4gK3R5cGVkZWYgc3Ry dWN0IHsNCj4gPj4gPj4NCj4gPj4gPj4gKyAgVUlOVDMyICAgIE1hZ2ljOyAgICAgICAgICAgICAg IC8qIG1hZ2ljIHdvcmQgRkRUX01BR0lDICovDQo+ID4+ID4+DQo+ID4+ID4+ICsgIFVJTlQzMiAg ICBUb3RhbFNpemU7ICAgICAgICAgICAvKiB0b3RhbCBzaXplIG9mIERUIGJsb2NrICovDQo+ID4+ ID4+DQo+ID4+ID4+ICsgIFVJTlQzMiAgICBPZmZzZXREdFN0cnVjdDsgICAgICAvKiBvZmZzZXQg dG8gc3RydWN0dXJlICovDQo+ID4+ID4+DQo+ID4+ID4+ICsgIFVJTlQzMiAgICBPZmZzZXREdFN0 cmluZ3M7ICAgICAvKiBvZmZzZXQgdG8gc3RyaW5ncyAqLw0KPiA+PiA+Pg0KPiA+PiA+PiArICBV SU5UMzIgICAgT2Zmc2V0TWVtUnN2bWFwOyAgICAgLyogb2Zmc2V0IHRvIG1lbW9yeSByZXNlcnZl IG1hcCAqLw0KPiA+PiA+Pg0KPiA+PiA+PiArICBVSU5UMzIgICAgVmVyc2lvbjsgICAgICAgICAg ICAgLyogZm9ybWF0IHZlcnNpb24gKi8NCj4gPj4gPj4NCj4gPj4gPj4gKyAgVUlOVDMyICAgIExh c3RDb21wVmVyc2lvbjsgICAgIC8qIGxhc3QgY29tcGF0aWJsZSB2ZXJzaW9uICovDQo+ID4+ID4+ DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gKyAgLyogdmVyc2lvbiAyIGZpZWxkcyBiZWxv dyAqLw0KPiA+PiA+Pg0KPiA+PiA+PiArICBVSU5UMzIgICAgQm9vdENwdWlkUGh5czsgICAgICAg LyogV2hpY2ggcGh5c2ljYWwgQ1BVIGlkIHdlJ3JlDQo+ID4+ID4+DQo+ID4+ID4+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib290aW5nIG9uICovDQo+ID4+ID4+DQo+ID4+ ID4+ICsgIC8qIHZlcnNpb24gMyBmaWVsZHMgYmVsb3cgKi8NCj4gPj4gPj4NCj4gPj4gPj4gKyAg VUlOVDMyICAgIFNpemVEdFN0cmluZ3M7ICAgICAgIC8qIHNpemUgb2YgdGhlIHN0cmluZ3MgYmxv Y2sgKi8NCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArICAvKiB2ZXJzaW9u IDE3IGZpZWxkcyBiZWxvdyAqLw0KPiA+PiA+Pg0KPiA+PiA+PiArICBVSU5UMzIgICAgU2l6ZUR0 U3RydWN0OyAgICAgICAgLyogc2l6ZSBvZiB0aGUgc3RydWN0dXJlIGJsb2NrICovDQo+ID4+ID4+ DQo+ID4+ID4+ICt9IEZEVF9IRUFERVI7DQo+ID4+ID4NCj4gPj4gPkkgc2VlIHRoZSBtYWNyb3Mg YmVsb3cgdXNlIFN3YXBCeXRlczMyKCkgb24gYWxsIHRoZSBmaWVsZHMgZnJvbSB0aGlzDQo+ID4+ ID5zdHJ1Y3R1cmUuICBEb2VzIHRoaXMgbWVhbiB0aGlzIHN0cnVjdHVyZSBpcyBiaWcgPmVuZGlh bj8gIElmDQo+ID4+IHRoYXQgaXMgdGhlIGNhc2UsIHRoZW4gdGhlIGRlc2NyaXB0aW9uIG9mIHRo aXMgc3RydWN0dXJlIGFuZCBhbGwNCj4gPj4gaW5kaXZpZHVhbCBmaWVsZHMgbXVzdCBtYWtlIHRo YXQgdmVyeSBjbGVhciA+c28gYW55IGNvbnN1bWVyIG9mIHRoZQ0KPiA+PiBzdHJ1Y3R1cmUga25v d3MgaXQgZG9lcyBub3QgZm9sbG93IHRoZSBkZWZhdWx0IGVuZGlhbm5lc3Mgb2YgVUVGSS9QSSBh bmQgdGhhdCBjb25zdW1lcnMgPm11c3QgZWl0aGVyIHVzZSB0aGUgbWFjcm9zIG9yIGNvbnN1bWVy cw0KPiBtdXN0IHVzZSBTd2FwQnl0ZXMzMigpIG9uIHRoZWlyIG93biB3aGVuIHVzaW5nIHRoaXMg c3RydWN0dXJlIGRpcmVjdGx5Lg0KPiA+Pg0KPiA+PiBZZXMsIGl0J3MgYmlnIGVuZGlhbi4gSSB3 aWxsIGNvbXBsZXRlIG1vcmUgZGVzY3JpcHRpb25zIGluIHBhdGNoIHY0Lg0KPiA+DQo+ID5Xb3Vs ZCBpdCBiZSBzaW1wbGVyIGlmIHdlIGhhdmUgYSBsaWIgc2VydmljZSB0aGF0IGNvbnZlcnRzIHRo ZSBlbnRpcmUgaGVhZGVyIGZyb20gYmlnIGVuZGlhbiB0byBsaXR0bGUgZW5kaWFuLg0KPiA+VGhh dCB3YXksIHRoZSBjb25zdW1lciBjYW4gdXNlIHRoZSBGRFRfSEVBREVSIGRpcmVjdGx5IHdpdGhv dXQgYW55IG9mIHRoZSBtYWNyb3M/DQo+ID4NCj4gPkFsc28sIGlzIHRoZSByZXN0IG9mIHRoZSBG RFQgYmxvYiBhbHNvIGJpZyBlbmRpYW4/DQo+IA0KPiBGRFQgYmxvYiBmb3JtYXQgaXMgYmluYXJ5 IGVuY29kaW5nIG9mIEZEVCBkYXRhIHdpdGggYmlnIGVuZGlhbi4gSW4gYWRkaXRpb24sIHRoZSBj b25zdW1lciB3aWxsIHNldCBvciBnZXQgRkRUIGRhdGEgd2l0aCBGRFQgYmxvYi4gV2UNCj4gY2Fu IGNvbXBsZXRlIG1vcmUgZGVzY3JpcHRpb25zIHRvIHdhcm4gY29uc3VtZXJzIHRvIGJlIGNhcmVm dWwgaWYganVzdCB1c2UgaGVhZGVyIHN0cnVjdCBmb3IgbWFwcGluZyBhbmQgZ2V0L3NldCBGRFQg ZGF0YSB3aXRoIEZEVA0KPiBibG9iLg0KPiANCj4gRm9yIHByb3ZpZGUgbGliIHNlcnZpY2VzIHRo YXQgY29udmVydHMgYmV0d2VlbiBiaWcgZW5kaWFuIGFuZCBsaXR0bGUgZW5kaWFuLCB3ZSBjYW4g cHJvdmlkZSBhIGdldCBoZWFkZXIgZnVuY3Rpb24gdG8gY29udmVydCBiZXR3ZWVuDQo+IGJpZyBl bmRpYW4gYW5kIGxpdHRsZSBlbmRpYW4uIEhvd2V2ZXIsIHdlIGFsc28gbmVlZCB0byBjb25zaWRl ciB0aGUgcHJvcGVydHkgdmFsdWUgZm9yIHNldHRpbmcgYW5kIGdldHRpbmcgdGhlbiB3ZSBjYW4g Y29udmVydCBpbg0KPiB3cmFwcGVyIGZ1bmN0aW9ucy4NCj4gDQo+IEZvciBleGFtcGxlLA0KPiAN Cj4gSU5UMzINCj4gRUZJQVBJDQo+IEZkdFNldFByb3AgKA0KPiAgIElOIFZPSUQgICAgICAgICAq RmR0LA0KPiAgIElOIElOVDMyICAgICAgICBOb2RlT2Zmc2V0LA0KPiAgIElOIENPTlNUIENIQVI4 ICAqTmFtZSwNCj4gICBJTiBDT05TVCBWT0lEICAgKlZhbHVlLA0KPiAgIElOIFVJTlQzMiAgICAg ICBMZW5ndGgNCj4gICApDQo+IHsNCj4gICByZXR1cm4gZmR0X3NldHByb3AgKEZkdCwgTm9kZU9m ZnNldCwgTmFtZSwgVmFsdWUsIChpbnQpTGVuZ3RoKTsNCj4gfQ0KPiANCj4gTW9yZSBmdW5jdGlv bnMgZm9yIHZhcmlvdXMgYnl0ZSB3aWR0aC4NCj4gSU5UMzINCj4gRUZJQVBJDQo+IEZkdFNldFBy b3AxNiAoDQo+ICAgSU4gVk9JRCAgICAgICAgICpGZHQsDQo+ICAgSU4gSU5UMzIgICAgICAgIE5v ZGVPZmZzZXQsDQo+ICAgSU4gQ09OU1QgQ0hBUjggICpOYW1lLA0KPiAgIElOIENPTlNUIFVJTlQx NiAgICpWYWx1ZSwNCj4gICBJTiBVSU5UMzIgICAgICAgTGVuZ3RoDQo+ICAgKQ0KPiB7DQo+ICAg cmV0dXJuIGZkdF9zZXRwcm9wIChGZHQsIE5vZGVPZmZzZXQsIE5hbWUsIFN3YXBCeXRlczE2KFZh bHVlKSwgKGludClMZW5ndGgpOw0KPiB9DQo+IA0KPiBJTlQzMg0KPiBFRklBUEkNCj4gRmR0U2V0 UHJvcDMyICgNCj4gICBJTiBWT0lEICAgICAgICAgKkZkdCwNCj4gICBJTiBJTlQzMiAgICAgICAg Tm9kZU9mZnNldCwNCj4gICBJTiBDT05TVCBDSEFSOCAgKk5hbWUsDQo+ICAgSU4gQ09OU1QgVUlO VDMyICAgKlZhbHVlLA0KPiAgIElOIFVJTlQzMiAgICAgICBMZW5ndGgNCj4gICApDQo+IHsNCj4g ICByZXR1cm4gZmR0X3NldHByb3AgKEZkdCwgTm9kZU9mZnNldCwgTmFtZSwgU3dhcEJ5dGVzMzIo VmFsdWUpLCAoaW50KUxlbmd0aCk7DQo+IH0NCj4gDQo+ID4+DQo+ID4+ID4+DQo+ID4+ID4+ICsN Cj4gPj4gPj4NCj4gPj4gPj4gK3R5cGVkZWYgc3RydWN0IHsNCj4gPj4gPj4NCj4gPj4gPj4gKyAg VUlOVDY0ICAgIEFkZHJlc3M7DQo+ID4+ID4+DQo+ID4+ID4+ICsgIFVJTlQ2NCAgICBTaXplOw0K PiA+PiA+Pg0KPiA+PiA+PiArfSBGRFRfUkVTRVJWRV9FTlRSWTsNCj4gPj4gPg0KPiA+PiA+DQo+ ID4+ID5JIGRvIG5vdCBzZWUgdGhpcyB0eXBlIHVzZWQgYW55d2hlcmUgaW4gdGhlIGxpYiBjbGFz cyBvciB0aGUgbGliIGluc3RhbmNlLg0KPiA+PiA+Q2FuIGl0IGJlIHJlbW92ZWQ/DQo+ID4+DQo+ ID4+IEkgdGhpbmsgd2UgY2FuIHJlbW92ZSBpdCBiZWNhdXNlIGl0IG1pZ2h0IGJlIG5vdCB1c2Vk IGZvciBmdXJ0aGVyIHVzYWdlIG9mIEZEVCBzdXBwb3J0Lg0KPiA+Pg0KPiA+PiA+DQo+ID4+ID4+ DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gK3R5cGVkZWYgc3RydWN0IHsNCj4gPj4gPj4N Cj4gPj4gPj4gKyAgVUlOVDMyICAgIFRhZzsNCj4gPj4gPj4NCj4gPj4gPj4gKyAgQ0hBUjggICAg IE5hbWVbXTsNCj4gPj4gPj4NCj4gPj4gPj4gK30gRkRUX05PREVfSEVBREVSOw0KPiA+PiA+DQo+ ID4+ID4NCj4gPj4gPkkgZG8gbm90IHNlZSB0aGlzIHR5cGUgdXNlZCBhbnl3aGVyZSBpbiB0aGUg bGliIGNsYXNzIG9yIHRoZSBsaWIgaW5zdGFuY2UuDQo+ID4+ID5DYW4gaXQgYmUgcmVtb3ZlZD8N Cj4gPj4NCj4gPj4gV2hlbiB3ZSBuZWVkIHJldHJpZXZlIGEgbm9kZSBmcm9tIGEgRkRUIGJsb2Is IHdlIHdpbGwgZ2V0IGEgbm9kZQ0KPiA+PiBvZmZzZXQgdGhlbiB3ZSBjb3VsZCB1c2UgdGhlIHN0 cnVjdCB0byBtYXAgdGhlIG5vZGUgY29udGVudC4gSXQncyB2ZXJ5IHVzZWZ1bC4NCj4gPg0KPiA+ UGxlYXNlIGFkZCBhIGNvbW1lbnQgaGVhZGVyIGZvciB0aGlzIHN0cnVjdHVyZSBhbmQgZGVzY3Jp YmUgdGhlIHVzYWdlIGFzIGl0IHJlbGF0ZWQgdG8gdGhlIHJlc3Qgb2YgdGhlIEZkdExpYiA+c2Vy dmljZXMuDQo+IA0KPiBJIHdpbGwgYWRkIGRlc2NyaXB0aW9ucyBmb3IgdGhlIHVzYWdlIGFuZCBy ZW1vdmUgRkRUX1JFU0VSVkVfRU5UUlkgaW4gcGF0Y2ggdjQuDQo+IA0KPiA+DQo+ID4+DQo+ID4+ ID4NCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArdHlwZWRlZiBzdHJ1Y3Qg ew0KPiA+PiA+Pg0KPiA+PiA+PiArICBVSU5UMzIgICAgVGFnOw0KPiA+PiA+Pg0KPiA+PiA+PiAr ICBVSU5UMzIgICAgTGVuZ3RoOw0KPiA+PiA+Pg0KPiA+PiA+PiArICBVSU5UMzIgICAgTmFtZU9m ZnNldDsNCj4gPj4gPj4NCj4gPj4gPj4gKyAgQ0hBUjggICAgIERhdGFbXTsNCj4gPj4gPj4NCj4g Pj4gPj4gK30gRkRUX1BST1BFUlRZOw0KPiA+PiA+Pg0KPiA+PiA+PiArDQo+ID4+ID4+DQo+ID4+ ID4+ICsjZGVmaW5lIEZEVF9HRVRfSEVBREVSKEZkdCwgRmllbGQpICBTd2FwQnl0ZXMzMigoKENP TlNUIEZEVF9IRUFERVINCj4gPj4gPj4gKyopKEZkdCkpLT5GaWVsZCkNCj4gPj4gPj4NCj4gPj4g Pj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArI2RlZmluZSBGRFRfTUFHSUMoRmR0KSAgICAgICAgICAg ICAgKEZEVF9HRVRfSEVBREVSKEZkdCwgTWFnaWMpKQ0KPiA+PiA+Pg0KPiA+PiA+PiArI2RlZmlu ZSBGRFRfVE9UQUxfU0laRShGZHQpICAgICAgICAgKEZEVF9HRVRfSEVBREVSKEZkdCwgVG90YWxT aXplKSkNCj4gPj4gPj4NCj4gPj4gPj4gKyNkZWZpbmUgRkRUX09GRlNFVF9EVF9TVFJVQ1QoRmR0 KSAgIChGRFRfR0VUX0hFQURFUihGZHQsIE9mZnNldER0U3RydWN0KSkNCj4gPj4gPj4NCj4gPj4g Pj4gKyNkZWZpbmUgRkRUX09GRlNFVF9EVF9TVFJJTkdTKEZkdCkgIChGRFRfR0VUX0hFQURFUihG ZHQsDQo+ID4+ID4+ICtPZmZzZXREdFN0cmluZ3MpKQ0KPiA+PiA+Pg0KPiA+PiA+PiArI2RlZmlu ZSBGRFRfT0ZGU0VUX01FTV9SU1ZNQVAoRmR0KSAgKEZEVF9HRVRfSEVBREVSKEZkdCwNCj4gPj4g Pj4gK09mZnNldE1lbVJzdm1hcCkpDQo+ID4+ID4+DQo+ID4+ID4+ICsjZGVmaW5lIEZEVF9WRVJT SU9OKEZkdCkgICAgICAgICAgICAoRkRUX0dFVF9IRUFERVIoRmR0LCBWZXJzaW9uKSkNCj4gPj4g Pj4NCj4gPj4gPj4gKyNkZWZpbmUgRkRUX0xBU1RfQ09NUF9WRVJTSU9OKEZkdCkgIChGRFRfR0VU X0hFQURFUihGZHQsDQo+ID4+ID4+ICtMYXN0Q29tcFZlcnNpb24pKQ0KPiA+PiA+Pg0KPiA+PiA+ PiArI2RlZmluZSBGRFRfQk9PVF9DUFVJRF9QSFlTKEZkdCkgICAgKEZEVF9HRVRfSEVBREVSKEZk dCwgQm9vdENwdWlkUGh5cykpDQo+ID4+ID4+DQo+ID4+ID4+ICsjZGVmaW5lIEZEVF9TSVpFX0RU X1NUUklOR1MoRmR0KSAgICAoRkRUX0dFVF9IRUFERVIoRmR0LCBTaXplRHRTdHJpbmdzKSkNCj4g Pj4gPj4NCj4gPj4gPj4gKyNkZWZpbmUgRkRUX1NJWkVfRFRfU1RSVUNUKEZkdCkgICAgIChGRFRf R0VUX0hFQURFUihGZHQsIFNpemVEdFN0cnVjdCkpDQo+ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4g Pj4NCj4gPj4gPj4gKy8qKg0KPiA+PiA+Pg0KPiA+PiA+PiArICBWZXJpZnkgdGhlIGhlYWRlciBv ZiB0aGUgRmxhdHRlbmVkIERldmljZSBUcmVlDQo+ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4N Cj4gPj4gPj4gKyAgQHBhcmFtW2luXSBGZHQgICAgICAgICAgICBUaGUgcG9pbnRlciB0byBGRFQg YmxvYi4NCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArICBAcmV0dXJuIFpl cm8gZm9yIHN1Y2Nlc3NmdWxseSwgb3RoZXJ3aXNlIGZhaWxlZC4NCj4gPj4gPj4NCj4gPj4gPj4g Kw0KPiA+PiA+Pg0KPiA+PiA+PiArKiovDQo+ID4+ID4+DQo+ID4+ID4+ICtJTlQzMg0KPiA+PiA+ Pg0KPiA+PiA+PiArRUZJQVBJDQo+ID4+ID4+DQo+ID4+ID4+ICtGZHRDaGVja0hlYWRlciAoDQo+ ID4+ID4+DQo+ID4+ID4+ICsgIElOIENPTlNUIFZPSUQgICpGZHQNCj4gPj4gPj4NCj4gPj4gPj4g KyAgKTsNCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArLyoqDQo+ID4+ID4+ DQo+ID4+ID4+ICsgIENyZWF0ZSBhIGVtcHR5IEZsYXR0ZW5lZCBEZXZpY2UgVHJlZS4NCj4gPj4g Pj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArICBAcGFyYW1baW5dIEJ1ZmZlciAgICAg ICAgIFRoZSBwb2ludGVyIHRvIGFsbG9jYXRlIGEgcG9vbCBmb3IgRkRUIGJsb2IuDQo+ID4+ID4+ DQo+ID4+ID4+ICsgIEBwYXJhbVtpbl0gQnVmZmVyU2l6ZSAgICAgVGhlIEJ1ZmZlclNpemUgdG8g dGhlIHBvb2wgc2l6ZS4NCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArICBA cmV0dXJuIFplcm8gZm9yIHN1Y2Nlc3NmdWxseSwgb3RoZXJ3aXNlIGZhaWxlZC4NCj4gPj4gPj4N Cj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArKiovDQo+ID4+ID4+DQo+ID4+ID4+ICtSRVRV Uk5fU1RBVFVTDQo+ID4+ID4+DQo+ID4+ID4+ICtFRklBUEkNCj4gPj4gPj4NCj4gPj4gPj4gK0Zk dENyZWF0ZUVtcHR5VHJlZSAoDQo+ID4+ID4+DQo+ID4+ID4+ICsgIElOIFZPSUQgICAqQnVmZmVy LA0KPiA+PiA+Pg0KPiA+PiA+PiArICBJTiBVSU5UTiAgQnVmZmVyU2l6ZQ0KPiA+PiA+Pg0KPiA+ PiA+PiArICApOw0KPiA+PiA+Pg0KPiA+PiA+PiArDQo+ID4+ID4+DQo+ID4+ID4+ICsvKioNCj4g Pj4gPj4NCj4gPj4gPj4gKyAgUmV0dXJucyBhIG9mZnNldCBvZiBuZXh0IG5vZGUgZnJvbSB0aGUg Z2l2ZW4gbm9kZS4NCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArICBAcGFy YW1baW5dIEZkdCAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPiA+PiA+Pg0K PiA+PiA+PiArICBAcGFyYW1baW5dIE9mZnNldCAgICAgICAgIFRoZSBvZmZzZXQgdG8gcHJldmlv dXMgbm9kZS4NCj4gPj4gPj4NCj4gPj4gPj4gKyAgQHBhcmFtW2luXSBEZXB0aCAgICAgICAgICBU aGUgZGVwdGggdG8gdGhlIGxldmVsIG9mIHRyZWUgaGllcmFyY2h5Lg0KPiA+PiA+Pg0KPiA+PiA+ PiArDQo+ID4+ID4+DQo+ID4+ID4+ICsgIEByZXR1cm4gVGhlIG9mZnNldCB0byBuZXh0IG5vZGUg b2Zmc2V0Lg0KPiA+PiA+Pg0KPiA+PiA+PiArDQo+ID4+ID4+DQo+ID4+ID4+ICsqKi8NCj4gPj4g Pj4NCj4gPj4gPj4gK0lOVDMyDQo+ID4+ID4+DQo+ID4+ID4+ICtFRklBUEkNCj4gPj4gPj4NCj4g Pj4gPj4gK0ZkdE5leHROb2RlICgNCj4gPj4gPj4NCj4gPj4gPj4gKyAgSU4gQ09OU1QgVk9JRCAg KkZkdCwNCj4gPj4gPj4NCj4gPj4gPj4gKyAgSU4gSU5UMzIgICAgICAgT2Zmc2V0LA0KPiA+PiA+ Pg0KPiA+PiA+PiArICBJTiBJTlQzMiAgICAgICAqRGVwdGgNCj4gPj4gPj4NCj4gPj4gPj4gKyAg KTsNCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArLyoqDQo+ID4+ID4+DQo+ ID4+ID4+ICsgIFJldHVybnMgYSBvZmZzZXQgb2YgZmlyc3Qgbm9kZSB1bmRlciB0aGUgZ2l2ZW4g bm9kZS4NCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArICBAcGFyYW1baW5d IEZkdCAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPiA+PiA+Pg0KPiA+PiA+ PiArICBAcGFyYW1baW5dIE9mZnNldCAgICAgICAgIFRoZSBvZmZzZXQgdG8gcHJldmlvdXMgbm9k ZS4NCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArICBAcmV0dXJuIFRoZSBv ZmZzZXQgdG8gbmV4dCBub2RlIG9mZnNldC4NCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0K PiA+PiA+PiArKiovDQo+ID4+ID4+DQo+ID4+ID4+ICtJTlQzMg0KPiA+PiA+Pg0KPiA+PiA+PiAr RUZJQVBJDQo+ID4+ID4+DQo+ID4+ID4+ICtGZHRGaXJzdFN1Ym5vZGUgKA0KPiA+PiA+Pg0KPiA+ PiA+PiArICBJTiBDT05TVCBWT0lEICAqRmR0LA0KPiA+PiA+Pg0KPiA+PiA+PiArICBJTiBJTlQz MiAgICAgICBPZmZzZXQNCj4gPj4gPj4NCj4gPj4gPj4gKyAgKTsNCj4gPj4gPj4NCj4gPj4gPj4g Kw0KPiA+PiA+Pg0KPiA+PiA+PiArLyoqDQo+ID4+ID4+DQo+ID4+ID4+ICsgIFJldHVybnMgYSBv ZmZzZXQgb2YgbmV4dCBub2RlIGZyb20gdGhlIGdpdmVuIG5vZGUuDQo+ID4+ID4+DQo+ID4+ID4+ ICsNCj4gPj4gPj4NCj4gPj4gPj4gKyAgQHBhcmFtW2luXSBGZHQgICAgICAgICAgICBUaGUgcG9p bnRlciB0byBGRFQgYmxvYi4NCj4gPj4gPj4NCj4gPj4gPj4gKyAgQHBhcmFtW2luXSBPZmZzZXQg ICAgICAgICBUaGUgb2Zmc2V0IHRvIHByZXZpb3VzIG5vZGUuDQo+ID4+ID4+DQo+ID4+ID4+ICsN Cj4gPj4gPj4NCj4gPj4gPj4gKyAgQHJldHVybiBUaGUgb2Zmc2V0IHRvIG5leHQgbm9kZSBvZmZz ZXQuDQo+ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gKyoqLw0KPiA+PiA+Pg0K PiA+PiA+PiArSU5UMzINCj4gPj4gPj4NCj4gPj4gPj4gK0VGSUFQSQ0KPiA+PiA+Pg0KPiA+PiA+ PiArRmR0TmV4dFN1Ym5vZGUgKA0KPiA+PiA+Pg0KPiA+PiA+PiArICBJTiBDT05TVCBWT0lEICAq RmR0LA0KPiA+PiA+Pg0KPiA+PiA+PiArICBJTiBJTlQzMiAgICAgICBPZmZzZXQNCj4gPj4gPj4N Cj4gPj4gPj4gKyAgKTsNCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArLyoq DQo+ID4+ID4+DQo+ID4+ID4+ICsgIFJldHVybnMgYSBvZmZzZXQgb2YgZmlyc3Qgbm9kZSB3aGlj aCBpbmNsdWRlcyB0aGUgZ2l2ZW4gbmFtZS4NCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0K PiA+PiA+PiArICBAcGFyYW1baW5dIEZkdCAgICAgICAgICAgICBUaGUgcG9pbnRlciB0byBGRFQg YmxvYi4NCj4gPj4gPj4NCj4gPj4gPj4gKyAgQHBhcmFtW2luXSBQYXJlbnRPZmZzZXQgICAgVGhl IG9mZnNldCB0byB0aGUgbm9kZSB3aGljaCBzdGFydCBmaW5kIHVuZGVyLg0KPiA+PiA+Pg0KPiA+ PiA+PiArICBAcGFyYW1baW5dIE5hbWUgICAgICAgICAgICBUaGUgbmFtZSB0byBzZWFyY2ggdGhl IG5vZGUgd2l0aCB0aGUgbmFtZS4NCj4gPj4gPj4NCj4gPj4gPj4gKyAgQHBhcmFtW2luXSBOYW1l TGVuZ3RoICAgICAgVGhlIGxlbmd0aCBvZiB0aGUgbmFtZSB0byBjaGVjayBvbmx5Lg0KPiA+PiA+ Pg0KPiA+PiA+PiArDQo+ID4+ID4+DQo+ID4+ID4+ICsgIEByZXR1cm4gVGhlIG9mZnNldCB0byBu b2RlIG9mZnNldCB3aXRoIGdpdmVuIG5vZGUgbmFtZS4NCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+ PiA+Pg0KPiA+PiA+PiArKiovDQo+ID4+ID4+DQo+ID4+ID4+ICtJTlQzMg0KPiA+PiA+Pg0KPiA+ PiA+PiArRUZJQVBJDQo+ID4+ID4+DQo+ID4+ID4+ICtGZHRTdWJub2RlT2Zmc2V0TmFtZUxlbiAo DQo+ID4+ID4+DQo+ID4+ID4+ICsgIElOIENPTlNUIFZPSUQgICAqRmR0LA0KPiA+PiA+Pg0KPiA+ PiA+PiArICBJTiBJTlQzMiAgICAgICAgUGFyZW50T2Zmc2V0LA0KPiA+PiA+Pg0KPiA+PiA+PiAr ICBJTiBDT05TVCBDSEFSOCAgKk5hbWUsDQo+ID4+ID4+DQo+ID4+ID4+ICsgIElOIElOVDMyICAg ICAgICBOYW1lTGVuZ3RoDQo+ID4+ID4+DQo+ID4+ID4+ICsgICk7DQo+ID4+ID4+DQo+ID4+ID4+ ICsNCj4gPj4gPj4NCj4gPj4gPj4gKy8qKg0KPiA+PiA+Pg0KPiA+PiA+PiArICBSZXR1cm5zIGEg b2Zmc2V0IG9mIGZpcnN0IG5vZGUgd2hpY2ggaW5jbHVkZXMgdGhlIGdpdmVuIHByb3BlcnR5IG5h bWUgYW5kIHZhbHVlLg0KPiA+PiA+Pg0KPiA+PiA+PiArDQo+ID4+ID4+DQo+ID4+ID4+ICsgIEBw YXJhbVtpbl0gRmR0ICAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPiA+PiA+ Pg0KPiA+PiA+PiArICBAcGFyYW1baW5dIFN0YXJ0T2Zmc2V0ICAgICBUaGUgb2Zmc2V0IHRvIHRo ZSBzdGFydGluZyBub2RlIHRvIGZpbmQuDQo+ID4+ID4+DQo+ID4+ID4+ICsgIEBwYXJhbVtpbl0g UHJvcGVydHlOYW1lICAgIFRoZSBwcm9wZXJ0eSBuYW1lIHRvIHNlYXJjaCB0aGUgbm9kZSBpbmNs dWRpbmcgdGhlIG5hbWVkIHByb3BlcnR5Lg0KPiA+PiA+Pg0KPiA+PiA+PiArICBAcGFyYW1baW5d IFByb3BlcnR5VmFsdWUgICBUaGUgcHJvcGVydHkgdmFsdWUgdG8gY2hlY2sgdGhlIHNhbWUgcHJv cGVydHkgdmFsdWUuDQo+ID4+ID4+DQo+ID4+ID4+ICsgIEBwYXJhbVtpbl0gUHJvcGVydHlMZW5n dGggIFRoZSBsZW5ndGggb2YgdGhlIHZhbHVlIGluIFByb3BlcnRWYWx1ZS4NCj4gPj4gPj4NCj4g Pj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArICBAcmV0dXJuIFRoZSBvZmZzZXQgdG8gbm9kZSBv ZmZzZXQgd2l0aCBnaXZlbiBwcm9wZXJ0eS4NCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0K PiA+PiA+PiArKiovDQo+ID4+ID4+DQo+ID4+ID4+ICtJTlQzMg0KPiA+PiA+Pg0KPiA+PiA+PiAr RUZJQVBJDQo+ID4+ID4+DQo+ID4+ID4+ICtGZHROb2RlT2Zmc2V0QnlQcm9wVmFsdWUgKA0KPiA+ PiA+Pg0KPiA+PiA+PiArICBJTiBDT05TVCBWT0lEICAgKkZkdCwNCj4gPj4gPj4NCj4gPj4gPj4g KyAgSU4gSU5UMzIgICAgICAgIFN0YXJ0T2Zmc2V0LA0KPiA+PiA+Pg0KPiA+PiA+PiArICBJTiBD T05TVCBDSEFSOCAgKlByb3BlcnR5TmFtZSwNCj4gPj4gPj4NCj4gPj4gPj4gKyAgSU4gQ09OU1Qg Vk9JRCAgICpQcm9wZXJ0eVZhbHVlLA0KPiA+PiA+Pg0KPiA+PiA+PiArICBJTiBJTlQzMiAgICAg ICAgUHJvcGVydHlMZW5ndGgNCj4gPj4gPj4NCj4gPj4gPj4gKyAgKTsNCj4gPj4gPj4NCj4gPj4g Pj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArLyoqDQo+ID4+ID4+DQo+ID4+ID4+ICsgIFJldHVybnMg YSBwcm9wZXJ0eSB3aXRoIHRoZSBnaXZlbiBuYW1lIGZyb20gdGhlIGdpdmVuIG5vZGUuDQo+ID4+ ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gKyAgQHBhcmFtW2luXSBGZHQgICAgICAg ICAgICBUaGUgcG9pbnRlciB0byBGRFQgYmxvYi4NCj4gPj4gPj4NCj4gPj4gPj4gKyAgQHBhcmFt W2luXSBOb2RlT2Zmc2V0ICAgICBUaGUgb2Zmc2V0IHRvIHRoZSBnaXZlbiBub2RlLg0KPiA+PiA+ Pg0KPiA+PiA+PiArICBAcGFyYW1baW5dIE5hbWUgICAgICAgICAgIFRoZSBuYW1lIHRvIHRoZSBw cm9wZXJ0eSB3aGljaCBuZWVkIGJlIHNlYXJjaGVkDQo+ID4+ID4+DQo+ID4+ID4+ICsgIEBwYXJh bVtpbl0gTGVuZ3RoICAgICAgICAgVGhlIGxlbmd0aCB0byB0aGUgc2l6ZSBvZiB0aGUgcHJvcGVy dHkgZm91bmQuDQo+ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gKyAgQHJldHVy biBUaGUgcHJvcGVydHkgdG8gdGhlIHN0cnVjdHVyZSBvZiB0aGUgZm91bmQgcHJvcGVydHkuDQo+ ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gKyoqLw0KPiA+PiA+Pg0KPiA+PiA+ PiArQ09OU1QgRkRUX1BST1BFUlRZICoNCj4gPj4gPj4NCj4gPj4gPj4gK0VGSUFQSQ0KPiA+PiA+ Pg0KPiA+PiA+PiArRmR0R2V0UHJvcGVydHkgKA0KPiA+PiA+Pg0KPiA+PiA+PiArICBJTiBDT05T VCBWT0lEICAgKkZkdCwNCj4gPj4gPj4NCj4gPj4gPj4gKyAgSU4gSU5UMzIgICAgICAgIE5vZGVP ZmZzZXQsDQo+ID4+ID4+DQo+ID4+ID4+ICsgIElOIENPTlNUIENIQVI4ICAqTmFtZSwNCj4gPj4g Pj4NCj4gPj4gPj4gKyAgSU4gSU5UMzIgICAgICAgICpMZW5ndGgNCj4gPj4gPj4NCj4gPj4gPj4g KyAgKTsNCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArLyoqDQo+ID4+ID4+ DQo+ID4+ID4+ICsgIFJldHVybnMgYSBvZmZzZXQgb2YgZmlyc3QgcHJvcGVydHkgaW4gdGhlIGdp dmVuIG5vZGUuDQo+ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gKyAgQHBhcmFt W2luXSBGZHQgICAgICAgICAgICBUaGUgcG9pbnRlciB0byBGRFQgYmxvYi4NCj4gPj4gPj4NCj4g Pj4gPj4gKyAgQHBhcmFtW2luXSBPZmZzZXQgICAgICAgICBUaGUgb2Zmc2V0IHRvIHRoZSBub2Rl IHdoaWNoIG5lZWQgYmUgc2VhcmNoZWQuDQo+ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4g Pj4gPj4gKyAgQHJldHVybiBUaGUgb2Zmc2V0IHRvIGZpcnN0IHByb3BlcnR5IG9mZnNldCBpbiB0 aGUgZ2l2ZW4gbm9kZS4NCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArKiov DQo+ID4+ID4+DQo+ID4+ID4+ICtJTlQzMg0KPiA+PiA+Pg0KPiA+PiA+PiArRUZJQVBJDQo+ID4+ ID4+DQo+ID4+ID4+ICtGZHRGaXJzdFByb3BlcnR5T2Zmc2V0ICgNCj4gPj4gPj4NCj4gPj4gPj4g KyAgSU4gQ09OU1QgVk9JRCAgKkZkdCwNCj4gPj4gPj4NCj4gPj4gPj4gKyAgSU4gSU5UMzIgICAg ICAgTm9kZU9mZnNldA0KPiA+PiA+Pg0KPiA+PiA+PiArICApOw0KPiA+PiA+Pg0KPiA+PiA+PiAr DQo+ID4+ID4+DQo+ID4+ID4+ICsvKioNCj4gPj4gPj4NCj4gPj4gPj4gKyAgUmV0dXJucyBhIG9m ZnNldCBvZiBuZXh0IHByb3BlcnR5IGZyb20gdGhlIGdpdmVuIHByb3BlcnR5Lg0KPiA+PiA+Pg0K PiA+PiA+PiArDQo+ID4+ID4+DQo+ID4+ID4+ICsgIEBwYXJhbVtpbl0gRmR0ICAgICAgICAgICAg VGhlIHBvaW50ZXIgdG8gRkRUIGJsb2IuDQo+ID4+ID4+DQo+ID4+ID4+ICsgIEBwYXJhbVtpbl0g T2Zmc2V0ICAgICAgICAgVGhlIG9mZnNldCB0byBwcmV2aW91cyBwcm9wZXJ0eS4NCj4gPj4gPj4N Cj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArICBAcmV0dXJuIFRoZSBvZmZzZXQgdG8gbmV4 dCBwcm9wZXJ0eSBvZmZzZXQuDQo+ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4g KyoqLw0KPiA+PiA+Pg0KPiA+PiA+PiArSU5UMzINCj4gPj4gPj4NCj4gPj4gPj4gK0VGSUFQSQ0K PiA+PiA+Pg0KPiA+PiA+PiArRmR0TmV4dFByb3BlcnR5T2Zmc2V0ICgNCj4gPj4gPj4NCj4gPj4g Pj4gKyAgSU4gQ09OU1QgVk9JRCAgKkZkdCwNCj4gPj4gPj4NCj4gPj4gPj4gKyAgSU4gSU5UMzIg ICAgICAgT2Zmc2V0DQo+ID4+ID4+DQo+ID4+ID4+ICsgICk7DQo+ID4+ID4+DQo+ID4+ID4+ICsN Cj4gPj4gPj4NCj4gPj4gPj4gKy8qKg0KPiA+PiA+Pg0KPiA+PiA+PiArICBSZXR1cm5zIGEgcHJv cGVydHkgZnJvbSB0aGUgZ2l2ZW4gb2Zmc2V0IG9mIHRoZSBwcm9wZXJ0eS4NCj4gPj4gPj4NCj4g Pj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArICBAcGFyYW1baW5dIEZkdCAgICAgICAgICAgIFRo ZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPiA+PiA+Pg0KPiA+PiA+PiArICBAcGFyYW1baW5dIE9m ZnNldCAgICAgICAgIFRoZSBvZmZzZXQgdG8gdGhlIGdpdmVuIG9mZnNldCBvZiB0aGUgcHJvcGVy dHkuDQo+ID4+ID4+DQo+ID4+ID4+ICsgIEBwYXJhbVtpbl0gTGVuZ3RoICAgICAgICAgVGhlIGxl bmd0aCB0byB0aGUgc2l6ZSBvZiB0aGUgcHJvcGVydHkgZm91bmQuDQo+ID4+ID4+DQo+ID4+ID4+ ICsNCj4gPj4gPj4NCj4gPj4gPj4gKyAgQHJldHVybiBUaGUgcHJvcGVydHkgdG8gdGhlIHN0cnVj dHVyZSBvZiB0aGUgZ2l2ZW4gcHJvcGVydHkgb2Zmc2V0Lg0KPiA+PiA+Pg0KPiA+PiA+PiArDQo+ ID4+ID4+DQo+ID4+ID4+ICsqKi8NCj4gPj4gPj4NCj4gPj4gPj4gK0NPTlNUIEZEVF9QUk9QRVJU WSAqDQo+ID4+ID4+DQo+ID4+ID4+ICtFRklBUEkNCj4gPj4gPj4NCj4gPj4gPj4gK0ZkdEdldFBy b3BlcnR5QnlPZmZzZXQgKA0KPiA+PiA+Pg0KPiA+PiA+PiArICBJTiBDT05TVCBWT0lEICAqRmR0 LA0KPiA+PiA+Pg0KPiA+PiA+PiArICBJTiBJTlQzMiAgICAgICBPZmZzZXQsDQo+ID4+ID4+DQo+ ID4+ID4+ICsgIElOIElOVDMyICAgICAgICpMZW5ndGgNCj4gPj4gPj4NCj4gPj4gPj4gKyAgKTsN Cj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArLyoqDQo+ID4+ID4+DQo+ID4+ ID4+ICsgIFJldHVybnMgYSBzdHJpbmcgYnkgdGhlIGdpdmVuIHN0cmluZyBvZmZzZXQuDQo+ID4+ ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gKyAgQHBhcmFtW2luXSBGZHQgICAgICAg ICAgICBUaGUgcG9pbnRlciB0byBGRFQgYmxvYi4NCj4gPj4gPj4NCj4gPj4gPj4gKyAgQHBhcmFt W2luXSBTdHJPZmZzZXQgICAgICBUaGUgb2Zmc2V0IHRvIHRoZSBsb2NhdGlvbiBpbiB0aGUgc3Ry aW5ncyBibG9jayBvZiBGRFQuDQo+ID4+ID4+DQo+ID4+ID4+ICsgIEBwYXJhbVtpbl0gTGVuZ3Ro ICAgICAgICAgVGhlIGxlbmd0aCB0byB0aGUgc2l6ZSBvZiBzdHJpbmcgd2hpY2ggbmVlZCBiZSBy ZXRyaWV2ZWQuDQo+ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gKyAgQHJldHVy biBUaGUgc3RyaW5nIHRvIHRoZSBnaXZlbiBzdHJpbmcgb2Zmc2V0Lg0KPiA+PiA+Pg0KPiA+PiA+ PiArDQo+ID4+ID4+DQo+ID4+ID4+ICsqKi8NCj4gPj4gPj4NCj4gPj4gPj4gK0NPTlNUIENIQVI4 ICoNCj4gPj4gPj4NCj4gPj4gPj4gK0VGSUFQSQ0KPiA+PiA+Pg0KPiA+PiA+PiArRmR0R2V0U3Ry aW5nICgNCj4gPj4gPj4NCj4gPj4gPj4gKyAgSU4gQ09OU1QgVk9JRCAgKkZkdCwNCj4gPj4gPj4N Cj4gPj4gPj4gKyAgSU4gSU5UMzIgICAgICAgU3RyT2Zmc2V0LA0KPiA+PiA+Pg0KPiA+PiA+PiAr ICBJTiBJTlQzMiAgICAgICAqTGVuZ3RoICAgICAgICBPUFRJT05BTA0KPiA+PiA+Pg0KPiA+PiA+ PiArICApOw0KPiA+PiA+Pg0KPiA+PiA+PiArDQo+ID4+ID4+DQo+ID4+ID4+ICsvKioNCj4gPj4g Pj4NCj4gPj4gPj4gKyAgQWRkIGEgbmV3IG5vZGUgdG8gdGhlIEZEVC4NCj4gPj4gPj4NCj4gPj4g Pj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArICBAcGFyYW1baW5dIEZkdCAgICAgICAgICAgIFRoZSBw b2ludGVyIHRvIEZEVCBibG9iLg0KPiA+PiA+Pg0KPiA+PiA+PiArICBAcGFyYW1baW5dIFBhcmVu dE9mZnNldCAgIFRoZSBvZmZzZXQgdG8gdGhlIG5vZGUgb2Zmc2V0IHdoaWNoIHdhbnQgdG8gYWRk IGluLg0KPiA+PiA+Pg0KPiA+PiA+PiArICBAcGFyYW1baW5dIE5hbWUgICAgICAgICAgIFRoZSBu YW1lIHRvIG5hbWUgdGhlIG5vZGUuDQo+ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4g Pj4gKyAgQHJldHVybiAgVGhlIG9mZnNldCB0byB0aGUgbmV3IG5vZGUuDQo+ID4+ID4+DQo+ID4+ ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gKyoqLw0KPiA+PiA+Pg0KPiA+PiA+PiArSU5UMzINCj4g Pj4gPj4NCj4gPj4gPj4gK0VGSUFQSQ0KPiA+PiA+Pg0KPiA+PiA+PiArRmR0QWRkU3Vibm9kZSAo DQo+ID4+ID4+DQo+ID4+ID4+ICsgIElOIFZPSUQgICAgICAgICAqRmR0LA0KPiA+PiA+Pg0KPiA+ PiA+PiArICBJTiBJTlQzMiAgICAgICAgUGFyZW50T2Zmc2V0LA0KPiA+PiA+Pg0KPiA+PiA+PiAr ICBJTiBDT05TVCBDSEFSOCAgKk5hbWUNCj4gPj4gPj4NCj4gPj4gPj4gKyAgKTsNCj4gPj4gPj4N Cj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArLyoqDQo+ID4+ID4+DQo+ID4+ID4+ICsgIEFk ZCBvciBtb2RpZnkgYSBwcm9wZXJ0eSBpbiB0aGUgZ2l2ZW4gbm9kZS4NCj4gPj4gPj4NCj4gPj4g Pj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArICBAcGFyYW1baW5dIEZkdCAgICAgICAgICAgIFRoZSBw b2ludGVyIHRvIEZEVCBibG9iLg0KPiA+PiA+Pg0KPiA+PiA+PiArICBAcGFyYW1baW5dIE5vZGVP ZmZzZXQgICAgIFRoZSBvZmZzZXQgdG8gdGhlIG5vZGUgb2Zmc2V0IHdoaWNoIHdhbnQgdG8gYWRk IGluLg0KPiA+PiA+Pg0KPiA+PiA+PiArICBAcGFyYW1baW5dIE5hbWUgICAgICAgICAgIFRoZSBu YW1lIHRvIG5hbWUgdGhlIHByb3BlcnR5Lg0KPiA+PiA+Pg0KPiA+PiA+PiArICBAcGFyYW1baW5d IFZhbHVlICAgICAgICAgIFRoZSB2YWx1ZSB0byB0aGUgcHJvcGVydHkgdmFsdWUuDQo+ID4+ID4+ DQo+ID4+ID4+ICsgIEBwYXJhbVtpbl0gTGVuZ3RoICAgICAgICAgVGhlIGxlbmd0aCB0byB0aGUg c2l6ZSBvZiB0aGUgcHJvcGVydHkuDQo+ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4g Pj4gKyAgQHJldHVybiAgWmVybyBmb3Igc3VjY2Vzc2Z1bGx5LCBvdGhlcndpc2UgZmFpbGVkLg0K PiA+PiA+Pg0KPiA+PiA+PiArDQo+ID4+ID4+DQo+ID4+ID4+ICsqKi8NCj4gPj4gPj4NCj4gPj4g Pj4gK0lOVDMyDQo+ID4+ID4+DQo+ID4+ID4+ICtFRklBUEkNCj4gPj4gPj4NCj4gPj4gPj4gK0Zk dFNldFByb3AgKA0KPiA+PiA+Pg0KPiA+PiA+PiArICBJTiBWT0lEICAgICAgICAgKkZkdCwNCj4g Pj4gPj4NCj4gPj4gPj4gKyAgSU4gSU5UMzIgICAgICAgIE5vZGVPZmZzZXQsDQo+ID4+ID4+DQo+ ID4+ID4+ICsgIElOIENPTlNUIENIQVI4ICAqTmFtZSwNCj4gPj4gPj4NCj4gPj4gPj4gKyAgSU4g Q09OU1QgVk9JRCAgICpWYWx1ZSwNCj4gPj4gPj4NCj4gPj4gPj4gKyAgSU4gVUlOVDMyICAgICAg IExlbmd0aA0KPiA+PiA+Pg0KPiA+PiA+PiArICApOw0KPiA+PiA+Pg0KPiA+PiA+PiArDQo+ID4+ ID4+DQo+ID4+ID4+ICsjZW5kaWYgLyogRkRUX0xJQl9IXyAqLw0KPiA+PiA+Pg0KPiA+PiA+PiBk aWZmIC0tZ2l0IGEvTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9CYXNlRmR0TGliLmluZg0KPiA+ PiA+PiBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvQmFzZUZkdExpYi5pbmYNCj4gPj4gPj4g bmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPj4gPj4gaW5kZXggMDAwMDAwMDAwMC4uNzMwZTU2OGZm Ng0KPiA+PiA+PiAtLS0gL2Rldi9udWxsDQo+ID4+ID4+ICsrKyBiL01kZVBrZy9MaWJyYXJ5L0Jh c2VGZHRMaWIvQmFzZUZkdExpYi5pbmYNCj4gPj4gPj4gQEAgLTAsMCArMSw2MiBAQA0KPiA+PiA+ PiArIyMgQGZpbGUNCj4gPj4gPj4NCj4gPj4gPj4gKyMgRmxhdHRlbmVkIERldmljZSBUcmVlIExp YnJhcnkuDQo+ID4+ID4+DQo+ID4+ID4+ICsjDQo+ID4+ID4+DQo+ID4+ID4+ICsjIENvcHlyaWdo dCAoYykgMjAyMywgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0K PiA+PiA+Pg0KPiA+PiA+PiArIw0KPiA+PiA+Pg0KPiA+PiA+PiArIyAgU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPj4gPj4NCj4gPj4gPj4gKyMNCj4gPj4g Pj4NCj4gPj4gPj4gKyMNCj4gPj4gPj4NCj4gPj4gPj4gKyMjDQo+ID4+ID4+DQo+ID4+ID4+ICsN Cj4gPj4gPj4NCj4gPj4gPj4gK1tEZWZpbmVzXQ0KPiA+PiA+Pg0KPiA+PiA+PiArICBJTkZfVkVS U0lPTiAgICAgICAgICAgICAgICAgICAgPSAweDAwMDEwMDFCDQo+ID4+ID4+DQo+ID4+ID4+ICsg IEJBU0VfTkFNRSAgICAgICAgICAgICAgICAgICAgICA9IEJhc2VGZHRMaWINCj4gPj4gPj4NCj4g Pj4gPj4gKyAgTU9EVUxFX1VOSV9GSUxFICAgICAgICAgICAgICAgID0gQmFzZUZkdExpYi51bmkN Cj4gPj4gPj4NCj4gPj4gPj4gKyAgRklMRV9HVUlEICAgICAgICAgICAgICAgICAgICAgID0gQzY0 RENCMDEtQjAzNy00RkY2LTlDRjMtRThDRUMyMDZERTA0DQo+ID4+ID4+DQo+ID4+ID4+ICsgIE1P RFVMRV9UWVBFICAgICAgICAgICAgICAgICAgICA9IEJBU0UNCj4gPj4gPj4NCj4gPj4gPj4gKyAg VkVSU0lPTl9TVFJJTkcgICAgICAgICAgICAgICAgID0gMS4wDQo+ID4+ID4+DQo+ID4+ID4+ICsg IExJQlJBUllfQ0xBU1MgICAgICAgICAgICAgICAgICA9IEZkdExpYg0KPiA+PiA+Pg0KPiA+PiA+ PiArDQo+ID4+ID4+DQo+ID4+ID4+ICsgIERFRklORSBGRFRfTElCX1BBVEggICAgICAgICAgICA9 IGxpYmZkdC9saWJmZHQNCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArIw0K PiA+PiA+Pg0KPiA+PiA+PiArIyAgVkFMSURfQVJDSElURUNUVVJFUyAgICAgICAgICAgPSBJQTMy IFg2NA0KPiA+PiA+Pg0KPiA+PiA+PiArIw0KPiA+PiA+Pg0KPiA+PiA+PiArDQo+ID4+ID4+DQo+ ID4+ID4+ICtbU291cmNlc10NCj4gPj4gPj4NCj4gPj4gPj4gKyAgRmR0TGliLmMNCj4gPj4gPj4N Cj4gPj4gPj4gKyAgTGliRmR0V3JhcHBlci5jDQo+ID4+ID4+DQo+ID4+ID4+ICsgICMgaGVhZGVy IFdyYXBwZXIgZmlsZXMNCj4gPj4gPj4NCj4gPj4gPj4gKyAgbGltaXRzLmgNCj4gPj4gPj4NCj4g Pj4gPj4gKyAgc3RkYm9vbC5oDQo+ID4+ID4+DQo+ID4+ID4+ICsgIHN0ZGRlZi5oDQo+ID4+ID4+ DQo+ID4+ID4+ICsgIHN0ZGludC5oDQo+ID4+ID4+DQo+ID4+ID4+ICsgIHN0ZGxpYi5oDQo+ID4+ ID4+DQo+ID4+ID4+ICsgIHN0cmluZy5oDQo+ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4g Pj4gPj4gKyAgJChGRFRfTElCX1BBVEgpL2ZkdC5jDQo+ID4+ID4+DQo+ID4+ID4+ICsgICQoRkRU X0xJQl9QQVRIKS9mZHQuaA0KPiA+PiA+Pg0KPiA+PiA+PiArICAkKEZEVF9MSUJfUEFUSCkvZmR0 X2FkZHJlc3Nlcy5jDQo+ID4+ID4+DQo+ID4+ID4+ICsgICQoRkRUX0xJQl9QQVRIKS9mZHRfY2hl Y2suYw0KPiA+PiA+Pg0KPiA+PiA+PiArICAkKEZEVF9MSUJfUEFUSCkvZmR0X2VtcHR5X3RyZWUu Yw0KPiA+PiA+Pg0KPiA+PiA+PiArICAkKEZEVF9MSUJfUEFUSCkvZmR0X292ZXJsYXkuYw0KPiA+ PiA+Pg0KPiA+PiA+PiArICAkKEZEVF9MSUJfUEFUSCkvZmR0X3JvLmMNCj4gPj4gPj4NCj4gPj4g Pj4gKyAgJChGRFRfTElCX1BBVEgpL2ZkdF9ydy5jDQo+ID4+ID4+DQo+ID4+ID4+ICsgICQoRkRU X0xJQl9QQVRIKS9mZHRfc3RyZXJyb3IuYw0KPiA+PiA+Pg0KPiA+PiA+PiArICAkKEZEVF9MSUJf UEFUSCkvZmR0X3N3LmMNCj4gPj4gPj4NCj4gPj4gPj4gKyAgJChGRFRfTElCX1BBVEgpL2ZkdF93 aXAuYw0KPiA+PiA+Pg0KPiA+PiA+PiArICAkKEZEVF9MSUJfUEFUSCkvbGliZmR0LmgNCj4gPj4g Pj4NCj4gPj4gPj4gKyAgJChGRFRfTElCX1BBVEgpL2xpYmZkdF9lbnYuaA0KPiA+PiA+Pg0KPiA+ PiA+PiArICAkKEZEVF9MSUJfUEFUSCkvbGliZmR0X2ludGVybmFsLmgNCj4gPj4gPj4NCj4gPj4g Pj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArW1BhY2thZ2VzXQ0KPiA+PiA+Pg0KPiA+PiA+PiArICBN ZGVQa2cvTWRlUGtnLmRlYw0KPiA+PiA+Pg0KPiA+PiA+PiArDQo+ID4+ID4+DQo+ID4+ID4+ICtb TGlicmFyeUNsYXNzZXNdDQo+ID4+ID4+DQo+ID4+ID4+ICsgIEJhc2VMaWINCj4gPj4gPj4NCj4g Pj4gPj4gKyAgQmFzZU1lbW9yeUxpYg0KPiA+PiA+Pg0KPiA+PiA+PiArDQo+ID4+ID4+DQo+ID4+ ID4+ICtbQnVpbGRPcHRpb25zXQ0KPiA+PiA+Pg0KPiA+PiA+PiArICBNU0ZUOipfKl9JQTMyX0ND X0ZMQUdTID0gL3dkNDE0NiAvd2Q0MjQ1DQo+ID4+ID4+DQo+ID4+ID4+ICsgIE1TRlQ6Kl8qX1g2 NF9DQ19GTEFHUyAgPSAvd2Q0MTQ2IC93ZDQyNDQgL3dkNDI0NSAvd2Q0MjY3DQo+ID4+ID4+DQo+ ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L0Jh c2VGZHRMaWIvQmFzZUZkdExpYi51bmkNCj4gPj4gPj4gYi9NZGVQa2cvTGlicmFyeS9CYXNlRmR0 TGliL0Jhc2VGZHRMaWIudW5pDQo+ID4+ID4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4+ID4+ IGluZGV4IDAwMDAwMDAwMDAuLjNmN2U0NWVhNmYNCj4gPj4gPj4gLS0tIC9kZXYvbnVsbA0KPiA+ PiA+PiArKysgYi9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL0Jhc2VGZHRMaWIudW5pDQo+ID4+ ID4+IEBAIC0wLDAgKzEsMTQgQEANCj4gPj4gPj4gKy8vIC8qKiBAZmlsZQ0KPiA+PiA+Pg0KPiA+ PiA+PiArLy8gRmxhdHRlbmVkIERldmljZSBUcmVlIExpYnJhcnkuDQo+ID4+ID4+DQo+ID4+ID4+ ICsvLw0KPiA+PiA+Pg0KPiA+PiA+PiArLy8gQ29weXJpZ2h0IChjKSAyMDIzLCBJbnRlbCBDb3Jw b3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4+ID4+DQo+ID4+ID4+ICsvLw0K PiA+PiA+Pg0KPiA+PiA+PiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVz ZS1QYXRlbnQNCj4gPj4gPj4NCj4gPj4gPj4gKy8vDQo+ID4+ID4+DQo+ID4+ID4+ICsvLyAqKi8N Cj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArDQo+ID4+ID4+DQo+ID4+ID4+ ICsjc3RyaW5nIFNUUl9NT0RVTEVfQUJTVFJBQ1QgICAgICAgICAgICAgI2xhbmd1YWdlIGVuLVVT ICJJbnN0YW5jZSBvZiBGRFQgTGlicmFyeSINCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0K PiA+PiA+PiArI3N0cmluZyBTVFJfTU9EVUxFX0RFU0NSSVBUSU9OICAgICAgICAgICNsYW5ndWFn ZSBlbi1VUyAiVGhpcyBtb2R1bGUgcHJvdmlkZXMgRkRUIExpYnJhcnkgaW1wbGVtZW50YXRpb24u Ig0KPiA+PiA+Pg0KPiA+PiA+PiArDQo+ID4+ID4+DQo+ID4+ID4+IGRpZmYgLS1naXQgYS9NZGVQ a2cvTGlicmFyeS9CYXNlRmR0TGliL0ZkdExpYi5jDQo+ID4+ID4+IGIvTWRlUGtnL0xpYnJhcnkv QmFzZUZkdExpYi9GZHRMaWIuYw0KPiA+PiA+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+PiA+ PiBpbmRleCAwMDAwMDAwMDAwLi4yMDBhNDk2YzdlDQo+ID4+ID4+IC0tLSAvZGV2L251bGwNCj4g Pj4gPj4gKysrIGIvTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9GZHRMaWIuYw0KPiA+PiA+PiBA QCAtMCwwICsxLDMwMSBAQA0KPiA+PiA+PiArLyoqIEBmaWxlDQo+ID4+ID4+DQo+ID4+ID4+ICsg IEZsYXR0ZW5lZCBEZXZpY2UgVHJlZSBMaWJyYXJ5Lg0KPiA+PiA+Pg0KPiA+PiA+PiArDQo+ID4+ ID4+DQo+ID4+ID4+ICsgIENvcHlyaWdodCAoYykgMjAyMywgSW50ZWwgQ29ycG9yYXRpb24uIEFs bCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+PiA+Pg0KPiA+PiA+PiArICBTUERYLUxpY2Vuc2Ut SWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+PiA+Pg0KPiA+PiA+PiArDQo+ID4+ ID4+DQo+ID4+ID4+ICsqKi8NCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiAr I2luY2x1ZGUgPGxpYmZkdC9saWJmZHQvbGliZmR0Lmg+DQo+ID4+ID4+DQo+ID4+ID4+ICsNCj4g Pj4gPj4NCj4gPj4gPj4gKy8qKg0KPiA+PiA+Pg0KPiA+PiA+PiArICBWZXJpZnkgdGhlIGhlYWRl ciBvZiB0aGUgRmxhdHRlbmVkIERldmljZSBUcmVlDQo+ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4g Pj4NCj4gPj4gPj4gKyAgQHBhcmFtW2luXSBGZHQgICAgICAgICAgICBUaGUgcG9pbnRlciB0byBG RFQgYmxvYi4NCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArICBAcmV0dXJu IFplcm8gZm9yIHN1Y2Nlc3NmdWxseSwgb3RoZXJ3aXNlIGZhaWxlZC4NCj4gPj4gPj4NCj4gPj4g Pj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArKiovDQo+ID4+ID4+DQo+ID4+ID4+ICtJTlQzMg0KPiA+ PiA+Pg0KPiA+PiA+PiArRUZJQVBJDQo+ID4+ID4+DQo+ID4+ID4+ICtGZHRDaGVja0hlYWRlciAo DQo+ID4+ID4+DQo+ID4+ID4+ICsgIElOIENPTlNUIFZPSUQgICpGZHQNCj4gPj4gPj4NCj4gPj4g Pj4gKyAgKQ0KPiA+PiA+Pg0KPiA+PiA+PiArew0KPiA+PiA+Pg0KPiA+PiA+PiArICByZXR1cm4g ZmR0X2NoZWNrX2hlYWRlcihGZHQpOw0KPiA+PiA+Pg0KPiA+PiA+PiArfQ0KPiA+PiA+Pg0KPiA+ PiA+PiArDQo+ID4+ID4+DQo+ID4+ID4+ICsvKioNCj4gPj4gPj4NCj4gPj4gPj4gKyAgQ3JlYXRl IGEgZW1wdHkgRmxhdHRlbmVkIERldmljZSBUcmVlLg0KPiA+PiA+Pg0KPiA+PiA+PiArDQo+ID4+ ID4+DQo+ID4+ID4+ICsgIEBwYXJhbVtpbl0gQnVmZmVyICAgICAgICAgVGhlIHBvaW50ZXIgdG8g YWxsb2NhdGUgYSBwb29sIGZvciBGRFQgYmxvYi4NCj4gPj4gPj4NCj4gPj4gPj4gKyAgQHBhcmFt W2luXSBCdWZmZXJTaXplICAgICBUaGUgQnVmZmVyU2l6ZSB0byB0aGUgcG9vbCBzaXplLg0KPiA+ PiA+Pg0KPiA+PiA+PiArDQo+ID4+ID4+DQo+ID4+ID4+ICsgIEByZXR1cm4gWmVybyBmb3Igc3Vj Y2Vzc2Z1bGx5LCBvdGhlcndpc2UgZmFpbGVkLg0KPiA+PiA+Pg0KPiA+PiA+PiArDQo+ID4+ID4+ DQo+ID4+ID4+ICsqKi8NCj4gPj4gPj4NCj4gPj4gPj4gK0lOVDMyDQo+ID4+ID4+DQo+ID4+ID4+ ICtFRklBUEkNCj4gPj4gPj4NCj4gPj4gPj4gK0ZkdENyZWF0ZUVtcHR5VHJlZSAoDQo+ID4+ID4+ DQo+ID4+ID4+ICsgIElOIFZPSUQgICAgKkJ1ZmZlciwNCj4gPj4gPj4NCj4gPj4gPj4gKyAgSU4g VUlOVDMyICBCdWZmZXJTaXplDQo+ID4+ID4+DQo+ID4+ID4+ICsgICkNCj4gPj4gPj4NCj4gPj4g Pj4gK3sNCj4gPj4gPj4NCj4gPj4gPj4gKyAgcmV0dXJuIGZkdF9jcmVhdGVfZW1wdHlfdHJlZSAo QnVmZmVyLCAoaW50KUJ1ZmZlclNpemUpOw0KPiA+PiA+Pg0KPiA+PiA+PiArfQ0KPiA+PiA+Pg0K PiA+PiA+PiArDQo+ID4+ID4+DQo+ID4+ID4+ICsvKioNCj4gPj4gPj4NCj4gPj4gPj4gKyAgUmV0 dXJucyBhIG9mZnNldCBvZiBuZXh0IG5vZGUgZnJvbSB0aGUgZ2l2ZW4gbm9kZS4NCj4gPj4gPj4N Cj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArICBAcGFyYW1baW5dIEZkdCAgICAgICAgICAg IFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPiA+PiA+Pg0KPiA+PiA+PiArICBAcGFyYW1baW5d IE9mZnNldCAgICAgICAgIFRoZSBvZmZzZXQgdG8gcHJldmlvdXMgbm9kZS4NCj4gPj4gPj4NCj4g Pj4gPj4gKyAgQHBhcmFtW2luXSBEZXB0aCAgICAgICAgICBUaGUgZGVwdGggdG8gdGhlIGxldmVs IG9mIHRyZWUgaGllcmFyY2h5Lg0KPiA+PiA+Pg0KPiA+PiA+PiArDQo+ID4+ID4+DQo+ID4+ID4+ ICsgIEByZXR1cm4gVGhlIG9mZnNldCB0byBuZXh0IG5vZGUgb2Zmc2V0Lg0KPiA+PiA+Pg0KPiA+ PiA+PiArDQo+ID4+ID4+DQo+ID4+ID4+ICsqKi8NCj4gPj4gPj4NCj4gPj4gPj4gK0lOVDMyDQo+ ID4+ID4+DQo+ID4+ID4+ICtFRklBUEkNCj4gPj4gPj4NCj4gPj4gPj4gK0ZkdE5leHROb2RlICgN Cj4gPj4gPj4NCj4gPj4gPj4gKyAgSU4gQ09OU1QgVk9JRCAgKkZkdCwNCj4gPj4gPj4NCj4gPj4g Pj4gKyAgSU4gSU5UMzIgICAgICAgT2Zmc2V0LA0KPiA+PiA+Pg0KPiA+PiA+PiArICBJTiBJTlQz MiAgICAgICAqRGVwdGgNCj4gPj4gPj4NCj4gPj4gPj4gKyAgKQ0KPiA+PiA+Pg0KPiA+PiA+PiAr ew0KPiA+PiA+Pg0KPiA+PiA+PiArICByZXR1cm4gZmR0X25leHRfbm9kZSAoRmR0LCBPZmZzZXQs IERlcHRoKTsNCj4gPj4gPj4NCj4gPj4gPj4gK30NCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+ Pg0KPiA+PiA+PiArLyoqDQo+ID4+ID4+DQo+ID4+ID4+ICsgIFJldHVybnMgYSBvZmZzZXQgb2Yg Zmlyc3Qgbm9kZSB1bmRlciB0aGUgZ2l2ZW4gbm9kZS4NCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+ PiA+Pg0KPiA+PiA+PiArICBAcGFyYW1baW5dIEZkdCAgICAgICAgICAgIFRoZSBwb2ludGVyIHRv IEZEVCBibG9iLg0KPiA+PiA+Pg0KPiA+PiA+PiArICBAcGFyYW1baW5dIE9mZnNldCAgICAgICAg IFRoZSBvZmZzZXQgdG8gcHJldmlvdXMgbm9kZS4NCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+ Pg0KPiA+PiA+PiArICBAcmV0dXJuIFRoZSBvZmZzZXQgdG8gbmV4dCBub2RlIG9mZnNldC4NCj4g Pj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArKiovDQo+ID4+ID4+DQo+ID4+ID4+ ICtJTlQzMg0KPiA+PiA+Pg0KPiA+PiA+PiArRUZJQVBJDQo+ID4+ID4+DQo+ID4+ID4+ICtGZHRG aXJzdFN1Ym5vZGUgKA0KPiA+PiA+Pg0KPiA+PiA+PiArICBJTiBDT05TVCBWT0lEICAqRmR0LA0K PiA+PiA+Pg0KPiA+PiA+PiArICBJTiBJTlQzMiAgICAgICBPZmZzZXQNCj4gPj4gPj4NCj4gPj4g Pj4gKyAgKQ0KPiA+PiA+Pg0KPiA+PiA+PiArew0KPiA+PiA+Pg0KPiA+PiA+PiArICByZXR1cm4g ZmR0X2ZpcnN0X3N1Ym5vZGUgKEZkdCwgT2Zmc2V0KTsNCj4gPj4gPj4NCj4gPj4gPj4gK30NCj4g Pj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArLyoqDQo+ID4+ID4+DQo+ID4+ID4+ ICsgIFJldHVybnMgYSBvZmZzZXQgb2YgbmV4dCBub2RlIGZyb20gdGhlIGdpdmVuIG5vZGUuDQo+ ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gKyAgQHBhcmFtW2luXSBGZHQgICAg ICAgICAgICBUaGUgcG9pbnRlciB0byBGRFQgYmxvYi4NCj4gPj4gPj4NCj4gPj4gPj4gKyAgQHBh cmFtW2luXSBPZmZzZXQgICAgICAgICBUaGUgb2Zmc2V0IHRvIHByZXZpb3VzIG5vZGUuDQo+ID4+ ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gKyAgQHJldHVybiBUaGUgb2Zmc2V0IHRv IG5leHQgbm9kZSBvZmZzZXQuDQo+ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4g KyoqLw0KPiA+PiA+Pg0KPiA+PiA+PiArSU5UMzINCj4gPj4gPj4NCj4gPj4gPj4gK0VGSUFQSQ0K PiA+PiA+Pg0KPiA+PiA+PiArRmR0TmV4dFN1Ym5vZGUgKA0KPiA+PiA+Pg0KPiA+PiA+PiArICBJ TiBDT05TVCBWT0lEICAqRmR0LA0KPiA+PiA+Pg0KPiA+PiA+PiArICBJTiBJTlQzMiAgICAgICBP ZmZzZXQNCj4gPj4gPj4NCj4gPj4gPj4gKyAgKQ0KPiA+PiA+Pg0KPiA+PiA+PiArew0KPiA+PiA+ Pg0KPiA+PiA+PiArICByZXR1cm4gZmR0X25leHRfc3Vibm9kZSAoRmR0LCBPZmZzZXQpOw0KPiA+ PiA+Pg0KPiA+PiA+PiArfQ0KPiA+PiA+Pg0KPiA+PiA+PiArDQo+ID4+ID4+DQo+ID4+ID4+ICsv KioNCj4gPj4gPj4NCj4gPj4gPj4gKyAgUmV0dXJucyBhIG9mZnNldCBvZiBmaXJzdCBub2RlIHdo aWNoIGluY2x1ZGVzIHRoZSBnaXZlbiBuYW1lLg0KPiA+PiA+Pg0KPiA+PiA+PiArDQo+ID4+ID4+ DQo+ID4+ID4+ICsgIEBwYXJhbVtpbl0gRmR0ICAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZE VCBibG9iLg0KPiA+PiA+Pg0KPiA+PiA+PiArICBAcGFyYW1baW5dIFBhcmVudE9mZnNldCAgICBU aGUgb2Zmc2V0IHRvIHRoZSBub2RlIHdoaWNoIHN0YXJ0IGZpbmQgdW5kZXIuDQo+ID4+ID4+DQo+ ID4+ID4+ICsgIEBwYXJhbVtpbl0gTmFtZSAgICAgICAgICAgIFRoZSBuYW1lIHRvIHNlYXJjaCB0 aGUgbm9kZSB3aXRoIHRoZSBuYW1lLg0KPiA+PiA+Pg0KPiA+PiA+PiArICBAcGFyYW1baW5dIE5h bWVMZW5ndGggICAgICBUaGUgbGVuZ3RoIG9mIHRoZSBuYW1lIHRvIGNoZWNrIG9ubHkuDQo+ID4+ ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gKyAgQHJldHVybiBUaGUgb2Zmc2V0IHRv IG5vZGUgb2Zmc2V0IHdpdGggZ2l2ZW4gbm9kZSBuYW1lLg0KPiA+PiA+Pg0KPiA+PiA+PiArDQo+ ID4+ID4+DQo+ID4+ID4+ICsqKi8NCj4gPj4gPj4NCj4gPj4gPj4gK0lOVDMyDQo+ID4+ID4+DQo+ ID4+ID4+ICtFRklBUEkNCj4gPj4gPj4NCj4gPj4gPj4gK0ZkdFN1Ym5vZGVPZmZzZXROYW1lTGVu ICgNCj4gPj4gPj4NCj4gPj4gPj4gKyAgSU4gQ09OU1QgVk9JRCAgICpGZHQsDQo+ID4+ID4+DQo+ ID4+ID4+ICsgIElOIElOVDMyICAgICAgICBQYXJlbnRPZmZzZXQsDQo+ID4+ID4+DQo+ID4+ID4+ ICsgIElOIENPTlNUIENIQVI4ICAqTmFtZSwNCj4gPj4gPj4NCj4gPj4gPj4gKyAgSU4gSU5UMzIg ICAgICAgIE5hbWVMZW5ndGgNCj4gPj4gPj4NCj4gPj4gPj4gKyAgKQ0KPiA+PiA+Pg0KPiA+PiA+ PiArew0KPiA+PiA+Pg0KPiA+PiA+PiArICByZXR1cm4gZmR0X3N1Ym5vZGVfb2Zmc2V0X25hbWVs ZW4gKEZkdCwgUGFyZW50T2Zmc2V0LCBOYW1lLA0KPiA+PiA+PiArIE5hbWVMZW5ndGgpOw0KPiA+ PiA+Pg0KPiA+PiA+PiArfQ0KPiA+PiA+Pg0KPiA+PiA+PiArDQo+ID4+ID4+DQo+ID4+ID4+ICsv KioNCj4gPj4gPj4NCj4gPj4gPj4gKyAgUmV0dXJucyBhIG9mZnNldCBvZiBmaXJzdCBub2RlIHdo aWNoIGluY2x1ZGVzIHRoZSBnaXZlbiBwcm9wZXJ0eSBuYW1lIGFuZCB2YWx1ZS4NCj4gPj4gPj4N Cj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArICBAcGFyYW1baW5dIEZkdCAgICAgICAgICAg ICBUaGUgcG9pbnRlciB0byBGRFQgYmxvYi4NCj4gPj4gPj4NCj4gPj4gPj4gKyAgQHBhcmFtW2lu XSBTdGFydE9mZnNldCAgICAgVGhlIG9mZnNldCB0byB0aGUgc3RhcnRpbmcgbm9kZSB0byBmaW5k Lg0KPiA+PiA+Pg0KPiA+PiA+PiArICBAcGFyYW1baW5dIFByb3BlcnR5TmFtZSAgICBUaGUgcHJv cGVydHkgbmFtZSB0byBzZWFyY2ggdGhlIG5vZGUgaW5jbHVkaW5nIHRoZSBuYW1lZCBwcm9wZXJ0 eS4NCj4gPj4gPj4NCj4gPj4gPj4gKyAgQHBhcmFtW2luXSBQcm9wZXJ0eVZhbHVlICAgVGhlIHBy b3BlcnR5IHZhbHVlIHRvIGNoZWNrIHRoZSBzYW1lIHByb3BlcnR5IHZhbHVlLg0KPiA+PiA+Pg0K PiA+PiA+PiArICBAcGFyYW1baW5dIFByb3BlcnR5TGVuZ3RoICBUaGUgbGVuZ3RoIG9mIHRoZSB2 YWx1ZSBpbiBQcm9wZXJ0VmFsdWUuDQo+ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4g Pj4gKyAgQHJldHVybiBUaGUgb2Zmc2V0IHRvIG5vZGUgb2Zmc2V0IHdpdGggZ2l2ZW4gcHJvcGVy dHkuDQo+ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gKyoqLw0KPiA+PiA+Pg0K PiA+PiA+PiArSU5UMzINCj4gPj4gPj4NCj4gPj4gPj4gK0VGSUFQSQ0KPiA+PiA+Pg0KPiA+PiA+ PiArRmR0Tm9kZU9mZnNldEJ5UHJvcFZhbHVlICgNCj4gPj4gPj4NCj4gPj4gPj4gKyAgSU4gQ09O U1QgVk9JRCAgICpGZHQsDQo+ID4+ID4+DQo+ID4+ID4+ICsgIElOIElOVDMyICAgICAgICBTdGFy dE9mZnNldCwNCj4gPj4gPj4NCj4gPj4gPj4gKyAgSU4gQ09OU1QgQ0hBUjggICpQcm9wZXJ0eU5h bWUsDQo+ID4+ID4+DQo+ID4+ID4+ICsgIElOIENPTlNUIFZPSUQgICAqUHJvcGVydHlWYWx1ZSwN Cj4gPj4gPj4NCj4gPj4gPj4gKyAgSU4gSU5UMzIgICAgICAgIFByb3BlcnR5TGVuZ3RoDQo+ID4+ ID4+DQo+ID4+ID4+ICsgICkNCj4gPj4gPj4NCj4gPj4gPj4gK3sNCj4gPj4gPj4NCj4gPj4gPj4g KyAgcmV0dXJuIGZkdF9ub2RlX29mZnNldF9ieV9wcm9wX3ZhbHVlIChGZHQsIFN0YXJ0T2Zmc2V0 LA0KPiA+PiA+PiArIFByb3BlcnR5TmFtZSwgUHJvcGVydHlWYWx1ZSwgUHJvcGVydHlMZW5ndGgp Ow0KPiA+PiA+Pg0KPiA+PiA+PiArfQ0KPiA+PiA+Pg0KPiA+PiA+PiArDQo+ID4+ID4+DQo+ID4+ ID4+ICsvKioNCj4gPj4gPj4NCj4gPj4gPj4gKyAgUmV0dXJucyBhIHByb3BlcnR5IHdpdGggdGhl IGdpdmVuIG5hbWUgZnJvbSB0aGUgZ2l2ZW4gbm9kZS4NCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+ PiA+Pg0KPiA+PiA+PiArICBAcGFyYW1baW5dIEZkdCAgICAgICAgICAgIFRoZSBwb2ludGVyIHRv IEZEVCBibG9iLg0KPiA+PiA+Pg0KPiA+PiA+PiArICBAcGFyYW1baW5dIE5vZGVPZmZzZXQgICAg IFRoZSBvZmZzZXQgdG8gdGhlIGdpdmVuIG5vZGUuDQo+ID4+ID4+DQo+ID4+ID4+ICsgIEBwYXJh bVtpbl0gTmFtZSAgICAgICAgICAgVGhlIG5hbWUgdG8gdGhlIHByb3BlcnR5IHdoaWNoIG5lZWQg YmUgc2VhcmNoZWQNCj4gPj4gPj4NCj4gPj4gPj4gKyAgQHBhcmFtW2luXSBMZW5ndGggICAgICAg ICBUaGUgbGVuZ3RoIHRvIHRoZSBzaXplIG9mIHRoZSBwcm9wZXJ0eSBmb3VuZC4NCj4gPj4gPj4N Cj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArICBAcmV0dXJuIFRoZSBwcm9wZXJ0eSB0byB0 aGUgc3RydWN0dXJlIG9mIHRoZSBmb3VuZCBwcm9wZXJ0eS4NCj4gPj4gPj4NCj4gPj4gPj4gKw0K PiA+PiA+Pg0KPiA+PiA+PiArKiovDQo+ID4+ID4+DQo+ID4+ID4+ICtDT05TVCBzdHJ1Y3QgZmR0 X3Byb3BlcnR5ICoNCj4gPj4gPj4NCj4gPj4gPj4gK0VGSUFQSQ0KPiA+PiA+Pg0KPiA+PiA+PiAr RmR0R2V0UHJvcGVydHkgKA0KPiA+PiA+Pg0KPiA+PiA+PiArICBJTiBDT05TVCBWT0lEICAgKkZk dCwNCj4gPj4gPj4NCj4gPj4gPj4gKyAgSU4gSU5UMzIgICAgICAgIE5vZGVPZmZzZXQsDQo+ID4+ ID4+DQo+ID4+ID4+ICsgIElOIENPTlNUIENIQVI4ICAqTmFtZSwNCj4gPj4gPj4NCj4gPj4gPj4g KyAgSU4gSU5UMzIgICAgICAgICpMZW5ndGgNCj4gPj4gPj4NCj4gPj4gPj4gKyAgKQ0KPiA+PiA+ Pg0KPiA+PiA+PiArew0KPiA+PiA+Pg0KPiA+PiA+PiArICByZXR1cm4gZmR0X2dldF9wcm9wZXJ0 eSAoRmR0LCBOb2RlT2Zmc2V0LCBOYW1lLCBMZW5ndGgpOw0KPiA+PiA+Pg0KPiA+PiA+PiArfQ0K PiA+PiA+Pg0KPiA+PiA+PiArDQo+ID4+ID4+DQo+ID4+ID4+ICsvKioNCj4gPj4gPj4NCj4gPj4g Pj4gKyAgUmV0dXJucyBhIG9mZnNldCBvZiBmaXJzdCBwcm9wZXJ0eSBpbiB0aGUgZ2l2ZW4gbm9k ZS4NCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArICBAcGFyYW1baW5dIEZk dCAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPiA+PiA+Pg0KPiA+PiA+PiAr ICBAcGFyYW1baW5dIE5vZGVPZmZzZXQgICAgIFRoZSBvZmZzZXQgdG8gdGhlIG5vZGUgd2hpY2gg bmVlZCBiZSBzZWFyY2hlZC4NCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiAr ICBAcmV0dXJuIFRoZSBvZmZzZXQgdG8gZmlyc3QgcHJvcGVydHkgb2Zmc2V0IGluIHRoZSBnaXZl biBub2RlLg0KPiA+PiA+Pg0KPiA+PiA+PiArDQo+ID4+ID4+DQo+ID4+ID4+ICsqKi8NCj4gPj4g Pj4NCj4gPj4gPj4gK0lOVDMyDQo+ID4+ID4+DQo+ID4+ID4+ICtFRklBUEkNCj4gPj4gPj4NCj4g Pj4gPj4gK0ZkdEZpcnN0UHJvcGVydHlPZmZzZXQgKA0KPiA+PiA+Pg0KPiA+PiA+PiArICBJTiBD T05TVCBWT0lEICAqRmR0LA0KPiA+PiA+Pg0KPiA+PiA+PiArICBJTiBJTlQzMiAgICAgICBOb2Rl T2Zmc2V0DQo+ID4+ID4+DQo+ID4+ID4+ICsgICkNCj4gPj4gPj4NCj4gPj4gPj4gK3sNCj4gPj4g Pj4NCj4gPj4gPj4gKyAgcmV0dXJuIGZkdF9maXJzdF9wcm9wZXJ0eV9vZmZzZXQgKEZkdCwgTm9k ZU9mZnNldCk7DQo+ID4+ID4+DQo+ID4+ID4+ICt9DQo+ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4g Pj4NCj4gPj4gPj4gKy8qKg0KPiA+PiA+Pg0KPiA+PiA+PiArICBSZXR1cm5zIGEgb2Zmc2V0IG9m IG5leHQgcHJvcGVydHkgZnJvbSB0aGUgZ2l2ZW4gcHJvcGVydHkuDQo+ID4+ID4+DQo+ID4+ID4+ ICsNCj4gPj4gPj4NCj4gPj4gPj4gKyAgQHBhcmFtW2luXSBGZHQgICAgICAgICAgICBUaGUgcG9p bnRlciB0byBGRFQgYmxvYi4NCj4gPj4gPj4NCj4gPj4gPj4gKyAgQHBhcmFtW2luXSBPZmZzZXQg ICAgICAgICBUaGUgb2Zmc2V0IHRvIHByZXZpb3VzIHByb3BlcnR5Lg0KPiA+PiA+Pg0KPiA+PiA+ PiArDQo+ID4+ID4+DQo+ID4+ID4+ICsgIEByZXR1cm4gVGhlIG9mZnNldCB0byBuZXh0IHByb3Bl cnR5IG9mZnNldC4NCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArKiovDQo+ ID4+ID4+DQo+ID4+ID4+ICtJTlQzMg0KPiA+PiA+Pg0KPiA+PiA+PiArRUZJQVBJDQo+ID4+ID4+ DQo+ID4+ID4+ICtGZHROZXh0UHJvcGVydHlPZmZzZXQgKA0KPiA+PiA+Pg0KPiA+PiA+PiArICBJ TiBDT05TVCBWT0lEICAqRmR0LA0KPiA+PiA+Pg0KPiA+PiA+PiArICBJTiBJTlQzMiAgICAgICBP ZmZzZXQNCj4gPj4gPj4NCj4gPj4gPj4gKyAgKQ0KPiA+PiA+Pg0KPiA+PiA+PiArew0KPiA+PiA+ Pg0KPiA+PiA+PiArICByZXR1cm4gZmR0X25leHRfcHJvcGVydHlfb2Zmc2V0IChGZHQsIE9mZnNl dCk7DQo+ID4+ID4+DQo+ID4+ID4+ICt9DQo+ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4g Pj4gPj4gKy8qKg0KPiA+PiA+Pg0KPiA+PiA+PiArICBSZXR1cm5zIGEgcHJvcGVydHkgZnJvbSB0 aGUgZ2l2ZW4gb2Zmc2V0IG9mIHRoZSBwcm9wZXJ0eS4NCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+ PiA+Pg0KPiA+PiA+PiArICBAcGFyYW1baW5dIEZkdCAgICAgICAgICAgIFRoZSBwb2ludGVyIHRv IEZEVCBibG9iLg0KPiA+PiA+Pg0KPiA+PiA+PiArICBAcGFyYW1baW5dIE9mZnNldCAgICAgICAg IFRoZSBvZmZzZXQgdG8gdGhlIGdpdmVuIG9mZnNldCBvZiB0aGUgcHJvcGVydHkuDQo+ID4+ID4+ DQo+ID4+ID4+ICsgIEBwYXJhbVtpbl0gTGVuZ3RoICAgICAgICAgVGhlIGxlbmd0aCB0byB0aGUg c2l6ZSBvZiB0aGUgcHJvcGVydHkgZm91bmQuDQo+ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4N Cj4gPj4gPj4gKyAgQHJldHVybiBUaGUgcHJvcGVydHkgdG8gdGhlIHN0cnVjdHVyZSBvZiB0aGUg Z2l2ZW4gcHJvcGVydHkgb2Zmc2V0Lg0KPiA+PiA+Pg0KPiA+PiA+PiArDQo+ID4+ID4+DQo+ID4+ ID4+ICsqKi8NCj4gPj4gPj4NCj4gPj4gPj4gK0NPTlNUIHN0cnVjdCBmZHRfcHJvcGVydHkgKg0K PiA+PiA+Pg0KPiA+PiA+PiArRUZJQVBJDQo+ID4+ID4+DQo+ID4+ID4+ICtGZHRHZXRQcm9wZXJ0 eUJ5T2Zmc2V0ICgNCj4gPj4gPj4NCj4gPj4gPj4gKyAgSU4gQ09OU1QgVk9JRCAgKkZkdCwNCj4g Pj4gPj4NCj4gPj4gPj4gKyAgSU4gSU5UMzIgICAgICAgT2Zmc2V0LA0KPiA+PiA+Pg0KPiA+PiA+ PiArICBJTiBJTlQzMiAgICAgICAqTGVuZ3RoDQo+ID4+ID4+DQo+ID4+ID4+ICsgICkNCj4gPj4g Pj4NCj4gPj4gPj4gK3sNCj4gPj4gPj4NCj4gPj4gPj4gKyAgcmV0dXJuIGZkdF9nZXRfcHJvcGVy dHlfYnlfb2Zmc2V0IChGZHQsIE9mZnNldCwgTGVuZ3RoKTsNCj4gPj4gPj4NCj4gPj4gPj4gK30N Cj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArLyoqDQo+ID4+ID4+DQo+ID4+ ID4+ICsgIFJldHVybnMgYSBzdHJpbmcgYnkgdGhlIGdpdmVuIHN0cmluZyBvZmZzZXQuDQo+ID4+ ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gKyAgQHBhcmFtW2luXSBGZHQgICAgICAg ICAgICBUaGUgcG9pbnRlciB0byBGRFQgYmxvYi4NCj4gPj4gPj4NCj4gPj4gPj4gKyAgQHBhcmFt W2luXSBTdHJPZmZzZXQgICAgICBUaGUgb2Zmc2V0IHRvIHRoZSBsb2NhdGlvbiBpbiB0aGUgc3Ry aW5ncyBibG9jayBvZiBGRFQuDQo+ID4+ID4+DQo+ID4+ID4+ICsgIEBwYXJhbVtpbl0gTGVuZ3Ro ICAgICAgICAgVGhlIGxlbmd0aCB0byB0aGUgc2l6ZSBvZiBzdHJpbmcgd2hpY2ggbmVlZCBiZSBy ZXRyaWV2ZWQuDQo+ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gKyAgQHJldHVy biBUaGUgc3RyaW5nIHRvIHRoZSBnaXZlbiBzdHJpbmcgb2Zmc2V0Lg0KPiA+PiA+Pg0KPiA+PiA+ PiArDQo+ID4+ID4+DQo+ID4+ID4+ICsqKi8NCj4gPj4gPj4NCj4gPj4gPj4gK0NPTlNUIENIQVI4 ICoNCj4gPj4gPj4NCj4gPj4gPj4gK0VGSUFQSQ0KPiA+PiA+Pg0KPiA+PiA+PiArRmR0R2V0U3Ry aW5nICgNCj4gPj4gPj4NCj4gPj4gPj4gKyAgSU4gQ09OU1QgVk9JRCAgKkZkdCwNCj4gPj4gPj4N Cj4gPj4gPj4gKyAgSU4gSU5UMzIgICAgICAgU3RyT2Zmc2V0LA0KPiA+PiA+Pg0KPiA+PiA+PiAr ICBJTiBJTlQzMiAgICAgICAqTGVuZ3RoICAgICAgICBPUFRJT05BTA0KPiA+PiA+Pg0KPiA+PiA+ PiArICApDQo+ID4+ID4+DQo+ID4+ID4+ICt7DQo+ID4+ID4+DQo+ID4+ID4+ICsgIHJldHVybiBm ZHRfZ2V0X3N0cmluZyAoRmR0LCBTdHJPZmZzZXQsIExlbmd0aCk7DQo+ID4+ID4+DQo+ID4+ID4+ ICt9DQo+ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gKy8qKg0KPiA+PiA+Pg0K PiA+PiA+PiArICBBZGQgYSBuZXcgbm9kZSB0byB0aGUgRkRULg0KPiA+PiA+Pg0KPiA+PiA+PiAr DQo+ID4+ID4+DQo+ID4+ID4+ICsgIEBwYXJhbVtpbl0gRmR0ICAgICAgICAgICAgVGhlIHBvaW50 ZXIgdG8gRkRUIGJsb2IuDQo+ID4+ID4+DQo+ID4+ID4+ICsgIEBwYXJhbVtpbl0gUGFyZW50T2Zm c2V0ICAgVGhlIG9mZnNldCB0byB0aGUgbm9kZSBvZmZzZXQgd2hpY2ggd2FudCB0byBhZGQgaW4u DQo+ID4+ID4+DQo+ID4+ID4+ICsgIEBwYXJhbVtpbl0gTmFtZSAgICAgICAgICAgVGhlIG5hbWUg dG8gbmFtZSB0aGUgbm9kZS4NCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiAr ICBAcmV0dXJuICBUaGUgb2Zmc2V0IHRvIHRoZSBuZXcgbm9kZS4NCj4gPj4gPj4NCj4gPj4gPj4g Kw0KPiA+PiA+Pg0KPiA+PiA+PiArKiovDQo+ID4+ID4+DQo+ID4+ID4+ICtJTlQzMg0KPiA+PiA+ Pg0KPiA+PiA+PiArRUZJQVBJDQo+ID4+ID4+DQo+ID4+ID4+ICtGZHRBZGRTdWJub2RlICgNCj4g Pj4gPj4NCj4gPj4gPj4gKyAgSU4gVk9JRCAgICAgICAgICpGZHQsDQo+ID4+ID4+DQo+ID4+ID4+ ICsgIElOIElOVDMyICAgICAgICBQYXJlbnRPZmZzZXQsDQo+ID4+ID4+DQo+ID4+ID4+ICsgIElO IENPTlNUIENIQVI4ICAqTmFtZQ0KPiA+PiA+Pg0KPiA+PiA+PiArICApDQo+ID4+ID4+DQo+ID4+ ID4+ICt7DQo+ID4+ID4+DQo+ID4+ID4+ICsgIHJldHVybiBmZHRfYWRkX3N1Ym5vZGUgKEZkdCwg UGFyZW50T2Zmc2V0LCBOYW1lKTsNCj4gPj4gPj4NCj4gPj4gPj4gK30NCj4gPj4gPj4NCj4gPj4g Pj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArLyoqDQo+ID4+ID4+DQo+ID4+ID4+ICsgIEFkZCBvciBt b2RpZnkgYSBwcm9wZXJ0eSBpbiB0aGUgZ2l2ZW4gbm9kZS4NCj4gPj4gPj4NCj4gPj4gPj4gKw0K PiA+PiA+Pg0KPiA+PiA+PiArICBAcGFyYW1baW5dIEZkdCAgICAgICAgICAgIFRoZSBwb2ludGVy IHRvIEZEVCBibG9iLg0KPiA+PiA+Pg0KPiA+PiA+PiArICBAcGFyYW1baW5dIE5vZGVPZmZzZXQg ICAgIFRoZSBvZmZzZXQgdG8gdGhlIG5vZGUgb2Zmc2V0IHdoaWNoIHdhbnQgdG8gYWRkIGluLg0K PiA+PiA+Pg0KPiA+PiA+PiArICBAcGFyYW1baW5dIE5hbWUgICAgICAgICAgIFRoZSBuYW1lIHRv IG5hbWUgdGhlIHByb3BlcnR5Lg0KPiA+PiA+Pg0KPiA+PiA+PiArICBAcGFyYW1baW5dIFZhbHVl ICAgICAgICAgIFRoZSB2YWx1ZSB0byB0aGUgcHJvcGVydHkgdmFsdWUuDQo+ID4+ID4+DQo+ID4+ ID4+ICsgIEBwYXJhbVtpbl0gTGVuZ3RoICAgICAgICAgVGhlIGxlbmd0aCB0byB0aGUgc2l6ZSBv ZiB0aGUgcHJvcGVydHkuDQo+ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gKyAg QHJldHVybiAgWmVybyBmb3Igc3VjY2Vzc2Z1bGx5LCBvdGhlcndpc2UgZmFpbGVkLg0KPiA+PiA+ Pg0KPiA+PiA+PiArDQo+ID4+ID4+DQo+ID4+ID4+ICsqKi8NCj4gPj4gPj4NCj4gPj4gPj4gK0lO VDMyDQo+ID4+ID4+DQo+ID4+ID4+ICtFRklBUEkNCj4gPj4gPj4NCj4gPj4gPj4gK0ZkdFNldFBy b3AgKA0KPiA+PiA+Pg0KPiA+PiA+PiArICBJTiBWT0lEICAgICAgICAgKkZkdCwNCj4gPj4gPj4N Cj4gPj4gPj4gKyAgSU4gSU5UMzIgICAgICAgIE5vZGVPZmZzZXQsDQo+ID4+ID4+DQo+ID4+ID4+ ICsgIElOIENPTlNUIENIQVI4ICAqTmFtZSwNCj4gPj4gPj4NCj4gPj4gPj4gKyAgSU4gQ09OU1Qg Vk9JRCAgICpWYWx1ZSwNCj4gPj4gPj4NCj4gPj4gPj4gKyAgSU4gVUlOVDMyICAgICAgIExlbmd0 aA0KPiA+PiA+Pg0KPiA+PiA+PiArICApDQo+ID4+ID4+DQo+ID4+ID4+ICt7DQo+ID4+ID4+DQo+ ID4+ID4+ICsgIHJldHVybiBmZHRfc2V0cHJvcCAoRmR0LCBOb2RlT2Zmc2V0LCBOYW1lLCBWYWx1 ZSwgKGludClMZW5ndGgpOw0KPiA+PiA+Pg0KPiA+PiA+PiArfQ0KPiA+PiA+Pg0KPiA+PiA+PiBk aWZmIC0tZ2l0IGEvTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9MaWJGZHRTdXBwb3J0LmgNCj4g Pj4gPj4gYi9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL0xpYkZkdFN1cHBvcnQuaA0KPiA+PiA+ PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+PiA+PiBpbmRleCAwMDAwMDAwMDAwLi5lNzM4ZjRk ZWQ0DQo+ID4+ID4+IC0tLSAvZGV2L251bGwNCj4gPj4gPj4gKysrIGIvTWRlUGtnL0xpYnJhcnkv QmFzZUZkdExpYi9MaWJGZHRTdXBwb3J0LmgNCj4gPj4gPj4gQEAgLTAsMCArMSw5OSBAQA0KPiA+ PiA+PiArLyoqIEBmaWxlDQo+ID4+ID4+DQo+ID4+ID4+ICsgIFJvb3QgaW5jbHVkZSBmaWxlIG9m IEMgcnVudGltZSBsaWJyYXJ5IHRvIHN1cHBvcnQgYnVpbGRpbmcgdGhlDQo+ID4+ID4+ICsgdGhp cmQtcGFydHkNCj4gPj4gPj4NCj4gPj4gPj4gKyAgbGliZmR0IGxpYnJhcnkuDQo+ID4+ID4+DQo+ ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gKyAgQ29weXJpZ2h0IChjKSAyMDIzLCBJbnRlbCBD b3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4+ID4+DQo+ID4+ID4+ICsg IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4+ID4+DQo+ ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gKyoqLw0KPiA+PiA+Pg0KPiA+PiA+PiArDQo+ID4+ ID4+DQo+ID4+ID4+ICsjaWZuZGVmIEZEVF9MSUJfU1VQUE9SVF9IXw0KPiA+PiA+Pg0KPiA+PiA+ PiArI2RlZmluZSBGRFRfTElCX1NVUFBPUlRfSF8NCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+ Pg0KPiA+PiA+PiArI2luY2x1ZGUgPEJhc2UuaD4NCj4gPj4gPj4NCj4gPj4gPj4gKyNpbmNsdWRl IDxMaWJyYXJ5L0Jhc2VMaWIuaD4NCj4gPj4gPj4NCj4gPj4gPj4gKyNpbmNsdWRlIDxMaWJyYXJ5 L0Jhc2VNZW1vcnlMaWIuaD4NCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiAr dHlwZWRlZiBVSU5UOCAgICB1aW50OF90Ow0KPiA+PiA+Pg0KPiA+PiA+PiArdHlwZWRlZiBVSU5U MTYgICB1aW50MTZfdDsNCj4gPj4gPj4NCj4gPj4gPj4gK3R5cGVkZWYgSU5UMzIgICAgaW50MzJf dDsNCj4gPj4gPj4NCj4gPj4gPj4gK3R5cGVkZWYgVUlOVDMyICAgdWludDMyX3Q7DQo+ID4+ID4+ DQo+ID4+ID4+ICt0eXBlZGVmIFVJTlQ2NCAgIHVpbnQ2NF90Ow0KPiA+PiA+Pg0KPiA+PiA+PiAr dHlwZWRlZiBVSU5UTiAgICB1aW50cHRyX3Q7DQo+ID4+ID4+DQo+ID4+ID4+ICt0eXBlZGVmIFVJ TlROICAgIHNpemVfdDsNCj4gPj4gPj4NCj4gPj4gPj4gK3R5cGVkZWYgQk9PTEVBTiAgYm9vbDsN Cj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArI2RlZmluZSB0cnVlICAgKDEg PT0gMSkNCj4gPj4gPj4NCj4gPj4gPj4gKyNkZWZpbmUgZmFsc2UgICgxID09IDApDQo+ID4+ID4+ DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gKy8vDQo+ID4+ID4+DQo+ID4+ID4+ICsvLyBE ZWZpbml0aW9ucyBmb3IgZ2xvYmFsIGNvbnN0YW50cyB1c2VkIGJ5IGxpYmZkdCBsaWJyYXJ5DQo+ ID4+ID4+ICtyb3V0aW5lcw0KPiA+PiA+Pg0KPiA+PiA+PiArLy8NCj4gPj4gPj4NCj4gPj4gPj4g KyNkZWZpbmUgSU5UX01BWCAgICAgICAgICAweDdGRkZGRkZGICAgICAgLyogTWF4aW11bSAoc2ln bmVkKSBpbnQgdmFsdWUgKi8NCj4gPj4gPj4NCj4gPj4gPj4gKyNkZWZpbmUgSU5UMzJfTUFYICAg ICAgICAweDdGRkZGRkZGICAgICAgLyogTWF4aW11bSAoc2lnbmVkKSBpbnQzMiB2YWx1ZSAqLw0K PiA+PiA+Pg0KPiA+PiA+PiArI2RlZmluZSBVSU5UMzJfTUFYICAgICAgIDB4RkZGRkZGRkYgICAg ICAvKiBNYXhpbXVtIHVuc2lnbmVkIGludDMyIHZhbHVlICovDQo+ID4+ID4+DQo+ID4+ID4+ICsN Cj4gPj4gPj4NCj4gPj4gPj4gKy8vDQo+ID4+ID4+DQo+ID4+ID4+ICsvLyBGdW5jdGlvbiBwcm90 b3R5cGVzIG9mIGxpYmZkdCBMaWJyYXJ5IHJvdXRpbmVzDQo+ID4+ID4+DQo+ID4+ID4+ICsvLw0K PiA+PiA+Pg0KPiA+PiA+PiArdm9pZCAqDQo+ID4+ID4+DQo+ID4+ID4+ICttZW1zZXQgICAgICgN Cj4gPj4gPj4NCj4gPj4gPj4gKyAgdm9pZCAqLA0KPiA+PiA+Pg0KPiA+PiA+PiArICBpbnQsDQo+ ID4+ID4+DQo+ID4+ID4+ICsgIHNpemVfdA0KPiA+PiA+Pg0KPiA+PiA+PiArICApOw0KPiA+PiA+ Pg0KPiA+PiA+PiArDQo+ID4+ID4+DQo+ID4+ID4+ICtpbnQNCj4gPj4gPj4NCj4gPj4gPj4gK21l bWNtcCAgICAgICgNCj4gPj4gPj4NCj4gPj4gPj4gKyAgY29uc3Qgdm9pZCAqLA0KPiA+PiA+Pg0K PiA+PiA+PiArICBjb25zdCB2b2lkICosDQo+ID4+ID4+DQo+ID4+ID4+ICsgIHNpemVfdA0KPiA+ PiA+Pg0KPiA+PiA+PiArICApOw0KPiA+PiA+Pg0KPiA+PiA+PiArDQo+ID4+ID4+DQo+ID4+ID4+ ICtpbnQNCj4gPj4gPj4NCj4gPj4gPj4gK3N0cmNtcCAgICAgICgNCj4gPj4gPj4NCj4gPj4gPj4g KyAgY29uc3QgY2hhciAqLA0KPiA+PiA+Pg0KPiA+PiA+PiArICBjb25zdCBjaGFyICoNCj4gPj4g Pj4NCj4gPj4gPj4gKyAgKTsNCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiAr Y2hhciAqDQo+ID4+ID4+DQo+ID4+ID4+ICtzdHJjaHIgICAgICgNCj4gPj4gPj4NCj4gPj4gPj4g KyAgY29uc3QgY2hhciAqLA0KPiA+PiA+Pg0KPiA+PiA+PiArICBpbnQNCj4gPj4gPj4NCj4gPj4g Pj4gKyAgKTsNCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArY2hhciAqDQo+ ID4+ID4+DQo+ID4+ID4+ICtzdHJyY2hyICAgICgNCj4gPj4gPj4NCj4gPj4gPj4gKyAgY29uc3Qg Y2hhciAqLA0KPiA+PiA+Pg0KPiA+PiA+PiArICBpbnQNCj4gPj4gPj4NCj4gPj4gPj4gKyAgKTsN Cj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArdW5zaWduZWQgbG9uZw0KPiA+ PiA+Pg0KPiA+PiA+PiArc3RydG91bCAgICAgKA0KPiA+PiA+Pg0KPiA+PiA+PiArICBjb25zdCBj aGFyICosDQo+ID4+ID4+DQo+ID4+ID4+ICsgIGNoYXIgKiosDQo+ID4+ID4+DQo+ID4+ID4+ICsg IGludA0KPiA+PiA+Pg0KPiA+PiA+PiArICApOw0KPiA+PiA+Pg0KPiA+PiA+PiArDQo+ID4+ID4+ DQo+ID4+ID4+ICtjaGFyICoNCj4gPj4gPj4NCj4gPj4gPj4gK3N0cmNweSAoDQo+ID4+ID4+DQo+ ID4+ID4+ICsgIGNoYXIgICAgICAgICpzdHJEZXN0LA0KPiA+PiA+Pg0KPiA+PiA+PiArICBjb25z dCBjaGFyICAqc3RyU291cmNlDQo+ID4+ID4+DQo+ID4+ID4+ICsgICk7DQo+ID4+ID4+DQo+ID4+ ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gKy8vDQo+ID4+ID4+DQo+ID4+ID4+ICsvLyBNYWNyb3Mg dGhhdCBkaXJlY3RseSBtYXAgZnVuY3Rpb25zIHRvIEJhc2VMaWIsIEJhc2VNZW1vcnlMaWIsDQo+ ID4+ID4+ICthbmQgRGVidWdMaWIgZnVuY3Rpb25zDQo+ID4+ID4+DQo+ID4+ID4+ICsvLw0KPiA+ PiA+Pg0KPiA+PiA+PiArI2RlZmluZSBtZW1jcHkoZGVzdCwgc291cmNlLCBjb3VudCkgICAgICAg ICBDb3B5TWVtKGRlc3Qsc291cmNlLCAoVUlOVE4pKGNvdW50KSkNCj4gPj4gPj4NCj4gPj4gPj4g KyNkZWZpbmUgbWVtc2V0KGRlc3QsIGNoLCBjb3VudCkgICAgICAgICAgICAgU2V0TWVtKGRlc3Qs IChVSU5UTikoY291bnQpLChVSU5UOCkoY2gpKQ0KPiA+PiA+Pg0KPiA+PiA+PiArI2RlZmluZSBt ZW1jaHIoYnVmLCBjaCwgY291bnQpICAgICAgICAgICAgICBTY2FuTWVtOChidWYsIChVSU5UTiko Y291bnQpLChVSU5UOCljaCkNCj4gPj4gPj4NCj4gPj4gPj4gKyNkZWZpbmUgbWVtY21wKGJ1ZjEs IGJ1ZjIsIGNvdW50KSAgICAgICAgICAgKGludCkoQ29tcGFyZU1lbShidWYxLCBidWYyLCAoVUlO VE4pKGNvdW50KSkpDQo+ID4+ID4+DQo+ID4+ID4+ICsjZGVmaW5lIG1lbW1vdmUoZGVzdCwgc291 cmNlLCBjb3VudCkgICAgICAgIENvcHlNZW0oZGVzdCwgc291cmNlLCAoVUlOVE4pKGNvdW50KSkN Cj4gPj4gPj4NCj4gPj4gPj4gKyNkZWZpbmUgc3RybGVuKHN0cikgICAgICAgICAgICAgICAgICAg ICAgICAgKHNpemVfdCkoQXNjaWlTdHJMZW4oc3RyKSkNCj4gPj4gPj4NCj4gPj4gPj4gKyNkZWZp bmUgc3RybmxlbihzdHIsIGNvdW50KSAgICAgICAgICAgICAgICAgKHNpemVfdCkoQXNjaWlTdHJu TGVuUyhzdHIsIGNvdW50KSkNCj4gPj4gPj4NCj4gPj4gPj4gKyNkZWZpbmUgc3RybmNweShzdHJE ZXN0LCBzdHJTb3VyY2UsIGNvdW50KSAgQXNjaWlTdHJuQ3B5UyhzdHJEZXN0LA0KPiA+PiA+PiAr TUFYX1NUUklOR19TSVpFLCBzdHJTb3VyY2UsIChVSU5UTiljb3VudCkNCj4gPj4gPj4NCj4gPj4g Pj4gKyNkZWZpbmUgc3RyY2F0KHN0ckRlc3QsIHN0clNvdXJjZSkgICAgICAgICAgQXNjaWlTdHJD YXRTKHN0ckRlc3QsIE1BWF9TVFJJTkdfU0laRSwgc3RyU291cmNlKQ0KPiA+PiA+Pg0KPiA+PiA+ PiArI2RlZmluZSBzdHJjbXAoc3RyaW5nMSwgc3RyaW5nMiwgY291bnQpICAgICAoaW50KShBc2Np aVN0ckNtcChzdHJpbmcxLCBzdHJpbmcyKSkNCj4gPj4gPj4NCj4gPj4gPj4gKyNkZWZpbmUgc3Ry bmNtcChzdHJpbmcxLCBzdHJpbmcyLCBjb3VudCkgICAgKGludCkoQXNjaWlTdHJuQ21wKHN0cmlu ZzEsIHN0cmluZzIsIChVSU5UTikoY291bnQpKSkNCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+ Pg0KPiA+PiA+PiArI2VuZGlmIC8qIEZEVF9MSUJfU1VQUE9SVF9IXyAqLw0KPiA+PiA+Pg0KPiA+ PiA+PiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9MaWJGZHRXcmFwcGVy LmMNCj4gPj4gPj4gYi9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL0xpYkZkdFdyYXBwZXIuYw0K PiA+PiA+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+PiA+PiBpbmRleCAwMDAwMDAwMDAwLi43 NzJiYmE0ODM5DQo+ID4+ID4+IC0tLSAvZGV2L251bGwNCj4gPj4gPj4gKysrIGIvTWRlUGtnL0xp YnJhcnkvQmFzZUZkdExpYi9MaWJGZHRXcmFwcGVyLmMNCj4gPj4gPj4gQEAgLTAsMCArMSwxNzMg QEANCj4gPj4gPj4gKy8qKiBAZmlsZQ0KPiA+PiA+Pg0KPiA+PiA+PiArICBJU08gQyBpbXBsZW1l bnRhdGlvbnMgb2Ygc3RyY2hyLCBzdHJyY2hyIGFuZCBzdHJ0b3VsLg0KPiA+PiA+Pg0KPiA+PiA+ PiArDQo+ID4+ID4+DQo+ID4+ID4+ICsgIENvcHlyaWdodCAoYykgMjAyMywgSW50ZWwgQ29ycG9y YXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+PiA+Pg0KPiA+PiA+PiArICBDb3B5 cmlnaHQgKGMpIDIwMjMgUGVkcm8gRmFsY2F0byBBbGwgcmlnaHRzIHJlc2VydmVkLg0KPiA+PiA+ Pg0KPiA+PiA+PiArICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVu dA0KPiA+PiA+Pg0KPiA+PiA+PiArDQo+ID4+ID4+DQo+ID4+ID4+ICsqKi8NCj4gPj4gPj4NCj4g Pj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArI2luY2x1ZGUgPEJhc2UuaD4NCj4gPj4gPj4NCj4g Pj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArI2RlZmluZSBVTE9OR19NQVggICAgICAgIDB4RkZG RkZGRkYgICAgICAvKiBNYXhpbXVtIHVuc2lnbmVkIGxvbmcgdmFsdWUgKi8NCj4gPj4gPj4NCj4g Pj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArLy8gVmVyeSBxdWljayBub3RlczoNCj4gPj4gPj4N Cj4gPj4gPj4gKy8vIFdlIG9ubHkgZ28gdGhyb3VnaCB0aGUgc3RyaW5nIG9uY2UgZm9yIGJvdGgg ZnVuY3Rpb25zDQo+ID4+ID4+DQo+ID4+ID4+ICsvLyBUaGV5IGFyZSBtaW5pbWFsIGltcGxlbWVu dGF0aW9ucyAobm90IHNwZWVkIG9wdGltaXplZCkgb2YgSVNPIEMNCj4gPj4gPj4gK3NlbWFudGlj cw0KPiA+PiA+Pg0KPiA+PiA+PiArLy8gc3RyY2hyIGFuZCBzdHJyY2hyIGFsc28gaW5jbHVkZSB0 aGUgbnVsbCB0ZXJtaW5hdG9yIGFzIHBhcnQgb2YNCj4gPj4gPj4gK3RoZSBzdHJpbmcNCj4gPj4g Pj4NCj4gPj4gPj4gKy8vIHNvIHRoZSBjb2RlIGdldHMgYSBiaXQgY2x1bmt5IHRvIGhhbmRsZSB0 aGF0IGNhc2Ugc3BlY2lmaWNhbGx5Lg0KPiA+PiA+Pg0KPiA+PiA+PiArDQo+ID4+ID4+DQo+ID4+ ID4+ICtjaGFyICoNCj4gPj4gPj4NCj4gPj4gPj4gK3N0cmNociAoDQo+ID4+ID4+DQo+ID4+ID4+ ICsgIGNvbnN0IGNoYXIgICpTdHIsDQo+ID4+ID4+DQo+ID4+ID4+ICsgIGludCAgICAgICAgIENo YXINCj4gPj4gPj4NCj4gPj4gPj4gKyAgKQ0KPiA+PiA+Pg0KPiA+PiA+PiArew0KPiA+PiA+Pg0K PiA+PiA+PiArICBjaGFyICAqUzsNCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+ PiArICBTID0gKGNoYXIgKilTdHI7DQo+ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4g Pj4gKyAgZm9yICggOyA7IFMrKykgew0KPiA+PiA+Pg0KPiA+PiA+PiArICAgIGlmICgqUyA9PSBD aGFyKSB7DQo+ID4+ID4+DQo+ID4+ID4+ICsgICAgICByZXR1cm4gUzsNCj4gPj4gPj4NCj4gPj4g Pj4gKyAgICB9DQo+ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gKyAgICBpZiAo KlMgPT0gJ1wwJykgew0KPiA+PiA+Pg0KPiA+PiA+PiArICAgICAgcmV0dXJuIE5VTEw7DQo+ID4+ ID4+DQo+ID4+ID4+ICsgICAgfQ0KPiA+PiA+Pg0KPiA+PiA+PiArICB9DQo+ID4+ID4+DQo+ID4+ ID4+ICt9DQo+ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gK2NoYXIgKg0KPiA+ PiA+Pg0KPiA+PiA+PiArc3RycmNociAoDQo+ID4+ID4+DQo+ID4+ID4+ICsgIGNvbnN0IGNoYXIg ICpTdHIsDQo+ID4+ID4+DQo+ID4+ID4+ICsgIGludCAgICAgICAgIENoYXINCj4gPj4gPj4NCj4g Pj4gPj4gKyAgKQ0KPiA+PiA+Pg0KPiA+PiA+PiArew0KPiA+PiA+Pg0KPiA+PiA+PiArICBjaGFy ICAqUywgKmxhc3Q7DQo+ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gKyAgUyAg ICA9IChjaGFyICopU3RyOw0KPiA+PiA+Pg0KPiA+PiA+PiArICBsYXN0ID0gTlVMTDsNCj4gPj4g Pj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArICBmb3IgKCA7IDsgUysrKSB7DQo+ID4+ ID4+DQo+ID4+ID4+ICsgICAgaWYgKCpTID09IENoYXIpIHsNCj4gPj4gPj4NCj4gPj4gPj4gKyAg ICAgIGxhc3QgPSBTOw0KPiA+PiA+Pg0KPiA+PiA+PiArICAgIH0NCj4gPj4gPj4NCj4gPj4gPj4g Kw0KPiA+PiA+Pg0KPiA+PiA+PiArICAgIGlmICgqUyA9PSAnXDAnKSB7DQo+ID4+ID4+DQo+ID4+ ID4+ICsgICAgICByZXR1cm4gbGFzdDsNCj4gPj4gPj4NCj4gPj4gPj4gKyAgICB9DQo+ID4+ID4+ DQo+ID4+ID4+ICsgIH0NCj4gPj4gPj4NCj4gPj4gPj4gK30NCj4gPj4gPj4NCj4gPj4gPj4gKw0K PiA+PiA+Pg0KPiA+PiA+PiArU1RBVElDDQo+ID4+ID4+DQo+ID4+ID4+ICtpbnQNCj4gPj4gPj4N Cj4gPj4gPj4gK19faXNzcGFjZSAoDQo+ID4+ID4+DQo+ID4+ID4+ICsgIGludCAgY2gNCj4gPj4g Pj4NCj4gPj4gPj4gKyAgKQ0KPiA+PiA+Pg0KPiA+PiA+PiArew0KPiA+PiA+Pg0KPiA+PiA+PiAr ICAvLyBiYXNpYyBBU0NJSSBjdHlwZS5oOmlzc3BhY2UoKS4gTm90IGVmZmljaWVudA0KPiA+PiA+ Pg0KPiA+PiA+PiArICByZXR1cm4gY2ggPT0gJ1xyJyB8fCBjaCA9PSAnXG4nIHx8IGNoID09ICcg JyB8fCBjaCA9PSAnXHQnIHx8IGNoDQo+ID4+ID4+ICsgPT0gJ1x2JyB8fCBjaCA9PSAnXGYnOw0K PiA+PiA+Pg0KPiA+PiA+PiArfQ0KPiA+PiA+Pg0KPiA+PiA+PiArDQo+ID4+ID4+DQo+ID4+ID4+ ICt1bnNpZ25lZCBsb25nDQo+ID4+ID4+DQo+ID4+ID4+ICtzdHJ0b3VsICgNCj4gPj4gPj4NCj4g Pj4gPj4gKyAgY29uc3QgY2hhciAgKk5wdHIsDQo+ID4+ID4+DQo+ID4+ID4+ICsgIGNoYXIgICAg ICAgICoqRW5kUHRyLA0KPiA+PiA+Pg0KPiA+PiA+PiArICBpbnQgICAgICAgICBCYXNlDQo+ID4+ ID4+DQo+ID4+ID4+ICsgICkNCj4gPj4gPj4NCj4gPj4gPj4gK3sNCj4gPj4gPj4NCj4gPj4gPj4g KyAgQk9PTEVBTiAgICAgICAgTmVnYXRlOw0KPiA+PiA+Pg0KPiA+PiA+PiArICBCT09MRUFOICAg ICAgICBPdmVyZmxvdzsNCj4gPj4gPj4NCj4gPj4gPj4gKyAgdW5zaWduZWQgbG9uZyAgVmFsOw0K PiA+PiA+Pg0KPiA+PiA+PiArDQo+ID4+ID4+DQo+ID4+ID4+ICsgIE5lZ2F0ZSAgID0gRkFMU0U7 DQo+ID4+ID4+DQo+ID4+ID4+ICsgIE92ZXJmbG93ID0gRkFMU0U7DQo+ID4+ID4+DQo+ID4+ID4+ ICsgIFZhbCAgICAgID0gMDsNCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiAr ICAvLyBSZWplY3QgYmFkIG51bWVyaWMgYmFzZXMNCj4gPj4gPj4NCj4gPj4gPj4gKyAgaWYgKChC YXNlIDwgMCkgfHwgKEJhc2UgPT0gMSkgfHwgKEJhc2UgPiAzNikpIHsNCj4gPj4gPj4NCj4gPj4g Pj4gKyAgICByZXR1cm4gMDsNCj4gPj4gPj4NCj4gPj4gPj4gKyAgfQ0KPiA+PiA+Pg0KPiA+PiA+ PiArDQo+ID4+ID4+DQo+ID4+ID4+ICsgIC8vIFNraXAgd2hpdGVzcGFjZQ0KPiA+PiA+Pg0KPiA+ PiA+PiArICB3aGlsZSAoX19pc3NwYWNlICgqTnB0cikpIHsNCj4gPj4gPj4NCj4gPj4gPj4gKyAg ICBOcHRyKys7DQo+ID4+ID4+DQo+ID4+ID4+ICsgIH0NCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+ PiA+Pg0KPiA+PiA+PiArICAvLyBDaGVjayBmb3IgKyBvciAtIHByZWZpeGVzDQo+ID4+ID4+DQo+ ID4+ID4+ICsgIGlmICgqTnB0ciA9PSAnLScpIHsNCj4gPj4gPj4NCj4gPj4gPj4gKyAgICBOZWdh dGUgPSBUUlVFOw0KPiA+PiA+Pg0KPiA+PiA+PiArICAgIE5wdHIrKzsNCj4gPj4gPj4NCj4gPj4g Pj4gKyAgfSBlbHNlIGlmICgqTnB0ciA9PSAnKycpIHsNCj4gPj4gPj4NCj4gPj4gPj4gKyAgICBO cHRyKys7DQo+ID4+ID4+DQo+ID4+ID4+ICsgIH0NCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+ Pg0KPiA+PiA+PiArICAvLyBDb25zdW1lIHRoZSBzdGFydCwgYXV0b2RldGVjdGluZyBiYXNlIGlm IG5lZWRlZA0KPiA+PiA+Pg0KPiA+PiA+PiArICBpZiAoKE5wdHJbMF0gPT0gJzAnKSAmJiAoKE5w dHJbMV0gPT0gJ3gnKSB8fCAoTnB0clsxXSA9PSAnWCcpKQ0KPiA+PiA+PiArICYmICgoQmFzZSA9 PSAwKSB8fCAoQmFzZSA9PSAxNikpKSB7DQo+ID4+ID4+DQo+ID4+ID4+ICsgICAgLy8gSGV4DQo+ ID4+ID4+DQo+ID4+ID4+ICsgICAgTnB0ciArPSAyOw0KPiA+PiA+Pg0KPiA+PiA+PiArICAgIEJh c2UgID0gMTY7DQo+ID4+ID4+DQo+ID4+ID4+ICsgIH0gZWxzZSBpZiAoKE5wdHJbMF0gPT0gJzAn KSAmJiAoKE5wdHJbMV0gPT0gJ2InKSB8fCAoTnB0clsxXSA9PQ0KPiA+PiA+PiArICdCJykpICYm ICgoQmFzZSA9PSAwKSB8fCAoQmFzZSA9PSAyKSkpIHsNCj4gPj4gPj4NCj4gPj4gPj4gKyAgICAv LyBCaW5hcnkgKHN0YW5kYXJkIHBlbmRpbmcgQzIzKQ0KPiA+PiA+Pg0KPiA+PiA+PiArICAgIE5w dHIgKz0gMjsNCj4gPj4gPj4NCj4gPj4gPj4gKyAgICBCYXNlICA9IDI7DQo+ID4+ID4+DQo+ID4+ ID4+ICsgIH0gZWxzZSBpZiAoKE5wdHJbMF0gPT0gJzAnKSAmJiAoKEJhc2UgPT0gMCkgfHwgKEJh c2UgPT0gOCkpKSB7DQo+ID4+ID4+DQo+ID4+ID4+ICsgICAgLy8gT2N0YWwNCj4gPj4gPj4NCj4g Pj4gPj4gKyAgICBOcHRyKys7DQo+ID4+ID4+DQo+ID4+ID4+ICsgICAgQmFzZSA9IDg7DQo+ID4+ ID4+DQo+ID4+ID4+ICsgIH0gZWxzZSB7DQo+ID4+ID4+DQo+ID4+ID4+ICsgICAgaWYgKEJhc2Ug PT0gMCkgew0KPiA+PiA+Pg0KPiA+PiA+PiArICAgICAgLy8gQXNzdW1lIGRlY2ltYWwNCj4gPj4g Pj4NCj4gPj4gPj4gKyAgICAgIEJhc2UgPSAxMDsNCj4gPj4gPj4NCj4gPj4gPj4gKyAgICB9DQo+ ID4+ID4+DQo+ID4+ID4+ICsgIH0NCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+ PiArICB3aGlsZSAoVFJVRSkgew0KPiA+PiA+Pg0KPiA+PiA+PiArICAgIGludCAgICAgICAgICAg IERpZ2l0Ow0KPiA+PiA+Pg0KPiA+PiA+PiArICAgIGNoYXIgICAgICAgICAgIEM7DQo+ID4+ID4+ DQo+ID4+ID4+ICsgICAgdW5zaWduZWQgbG9uZyAgTmV3VmFsOw0KPiA+PiA+Pg0KPiA+PiA+PiAr DQo+ID4+ID4+DQo+ID4+ID4+ICsgICAgQyAgICAgPSAqTnB0cjsNCj4gPj4gPj4NCj4gPj4gPj4g KyAgICBEaWdpdCA9IC0xOw0KPiA+PiA+Pg0KPiA+PiA+PiArDQo+ID4+ID4+DQo+ID4+ID4+ICsg ICAgaWYgKChDID49ICcwJykgJiYgKEMgPD0gJzknKSkgew0KPiA+PiA+Pg0KPiA+PiA+PiArICAg ICAgRGlnaXQgPSBDIC0gJzAnOw0KPiA+PiA+Pg0KPiA+PiA+PiArICAgIH0gZWxzZSBpZiAoKEMg Pj0gJ2EnKSAmJiAoQyA8PSAneicpKSB7DQo+ID4+ID4+DQo+ID4+ID4+ICsgICAgICBEaWdpdCA9 IEMgLSAnYScgKyAxMDsNCj4gPj4gPj4NCj4gPj4gPj4gKyAgICB9IGVsc2UgaWYgKChDID49ICdB JykgJiYgKEMgPD0gJ1onKSkgew0KPiA+PiA+Pg0KPiA+PiA+PiArICAgICAgRGlnaXQgPSBDIC0g J0EnICsgMTA7DQo+ID4+ID4+DQo+ID4+ID4+ICsgICAgfQ0KPiA+PiA+Pg0KPiA+PiA+PiArDQo+ ID4+ID4+DQo+ID4+ID4+ICsgICAgaWYgKChEaWdpdCA9PSAtMSkgfHwgKERpZ2l0ID49IEJhc2Up KSB7DQo+ID4+ID4+DQo+ID4+ID4+ICsgICAgICAvLyBOb3RlIHRoYXQgdGhpcyBjYXNlIGFsc28g aGFuZGxlcyB0aGUgXDANCj4gPj4gPj4NCj4gPj4gPj4gKyAgICAgIGlmIChFbmRQdHIpIHsNCj4g Pj4gPj4NCj4gPj4gPj4gKyAgICAgICAgKkVuZFB0ciA9IChjaGFyICopTnB0cjsNCj4gPj4gPj4N Cj4gPj4gPj4gKyAgICAgIH0NCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiAr ICAgICAgYnJlYWs7DQo+ID4+ID4+DQo+ID4+ID4+ICsgICAgfQ0KPiA+PiA+Pg0KPiA+PiA+PiAr DQo+ID4+ID4+DQo+ID4+ID4+ICsgICAgTmV3VmFsID0gVmFsICogQmFzZSArIERpZ2l0Ow0KPiA+ PiA+Pg0KPiA+PiA+PiArDQo+ID4+ID4+DQo+ID4+ID4+ICsgICAgaWYgKE5ld1ZhbCA8IFZhbCkg ew0KPiA+PiA+Pg0KPiA+PiA+PiArICAgICAgLy8gT3ZlcmZsb3cNCj4gPj4gPj4NCj4gPj4gPj4g KyAgICAgIE92ZXJmbG93ID0gVFJVRTsNCj4gPj4gPj4NCj4gPj4gPj4gKyAgICB9DQo+ID4+ID4+ DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gKyAgICBWYWwgPSBOZXdWYWw7DQo+ID4+ID4+ DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gKyAgICBOcHRyKys7DQo+ID4+ID4+DQo+ID4+ ID4+ICsgIH0NCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArICBpZiAoTmVn YXRlKSB7DQo+ID4+ID4+DQo+ID4+ID4+ICsgICAgVmFsID0gLVZhbDsNCj4gPj4gPj4NCj4gPj4g Pj4gKyAgfQ0KPiA+PiA+Pg0KPiA+PiA+PiArDQo+ID4+ID4+DQo+ID4+ID4+ICsgIGlmIChPdmVy Zmxvdykgew0KPiA+PiA+Pg0KPiA+PiA+PiArICAgIFZhbCA9IFVMT05HX01BWDsNCj4gPj4gPj4N Cj4gPj4gPj4gKyAgfQ0KPiA+PiA+Pg0KPiA+PiA+PiArDQo+ID4+ID4+DQo+ID4+ID4+ICsgIC8v IFRPRE86IFdlJ3JlIGxhY2tpbmcgZXJybm8gaGVyZS4NCj4gPj4gPj4NCj4gPj4gPj4gKyAgcmV0 dXJuIFZhbDsNCj4gPj4gPj4NCj4gPj4gPj4gK30NCj4gPj4gPj4NCj4gPj4gPj4gZGlmZiAtLWdp dCBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvbGltaXRzLmgNCj4gPj4gPj4gYi9NZGVQa2cv TGlicmFyeS9CYXNlRmR0TGliL2xpbWl0cy5oDQo+ID4+ID4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQo+ID4+ID4+IGluZGV4IDAwMDAwMDAwMDAuLmY2Y2Y4ZDU3MDINCj4gPj4gPj4gLS0tIC9kZXYv bnVsbA0KPiA+PiA+PiArKysgYi9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL2xpbWl0cy5oDQo+ ID4+ID4+IEBAIC0wLDAgKzEsMTAgQEANCj4gPj4gPj4gKy8qKiBAZmlsZQ0KPiA+PiA+Pg0KPiA+ PiA+PiArICBJbmNsdWRlIGZpbGUgdG8gc3VwcG9ydCBidWlsZGluZyB0aGUgdGhpcmQtcGFydHkg bGliZmR0IGxpYnJhcnkuDQo+ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gK0Nv cHlyaWdodCAoYykgMjAyMywgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQu PEJSPg0KPiA+PiA+Pg0KPiA+PiA+PiArU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNs YXVzZS1QYXRlbnQNCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArKiovDQo+ ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gKyNpbmNsdWRlIDxMaWJGZHRTdXBw b3J0Lmg+DQo+ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gZGlmZiAtLWdpdCBh L01kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvc3RkYm9vbC5oDQo+ID4+ID4+IGIvTWRlUGtnL0xp YnJhcnkvQmFzZUZkdExpYi9zdGRib29sLmgNCj4gPj4gPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQN Cj4gPj4gPj4gaW5kZXggMDAwMDAwMDAwMC4uZjZjZjhkNTcwMg0KPiA+PiA+PiAtLS0gL2Rldi9u dWxsDQo+ID4+ID4+ICsrKyBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvc3RkYm9vbC5oDQo+ ID4+ID4+IEBAIC0wLDAgKzEsMTAgQEANCj4gPj4gPj4gKy8qKiBAZmlsZQ0KPiA+PiA+Pg0KPiA+ PiA+PiArICBJbmNsdWRlIGZpbGUgdG8gc3VwcG9ydCBidWlsZGluZyB0aGUgdGhpcmQtcGFydHkg bGliZmR0IGxpYnJhcnkuDQo+ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gK0Nv cHlyaWdodCAoYykgMjAyMywgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQu PEJSPg0KPiA+PiA+Pg0KPiA+PiA+PiArU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNs YXVzZS1QYXRlbnQNCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArKiovDQo+ ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gKyNpbmNsdWRlIDxMaWJGZHRTdXBw b3J0Lmg+DQo+ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gZGlmZiAtLWdpdCBh L01kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvc3RkZGVmLmgNCj4gPj4gPj4gYi9NZGVQa2cvTGli cmFyeS9CYXNlRmR0TGliL3N0ZGRlZi5oDQo+ID4+ID4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ ID4+ID4+IGluZGV4IDAwMDAwMDAwMDAuLmY2Y2Y4ZDU3MDINCj4gPj4gPj4gLS0tIC9kZXYvbnVs bA0KPiA+PiA+PiArKysgYi9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL3N0ZGRlZi5oDQo+ID4+ ID4+IEBAIC0wLDAgKzEsMTAgQEANCj4gPj4gPj4gKy8qKiBAZmlsZQ0KPiA+PiA+Pg0KPiA+PiA+ PiArICBJbmNsdWRlIGZpbGUgdG8gc3VwcG9ydCBidWlsZGluZyB0aGUgdGhpcmQtcGFydHkgbGli ZmR0IGxpYnJhcnkuDQo+ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gK0NvcHly aWdodCAoYykgMjAyMywgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJS Pg0KPiA+PiA+Pg0KPiA+PiA+PiArU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVz ZS1QYXRlbnQNCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArKiovDQo+ID4+ ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gKyNpbmNsdWRlIDxMaWJGZHRTdXBwb3J0 Lmg+DQo+ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gZGlmZiAtLWdpdCBhL01k ZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvc3RkaW50LmgNCj4gPj4gPj4gYi9NZGVQa2cvTGlicmFy eS9CYXNlRmR0TGliL3N0ZGludC5oDQo+ID4+ID4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4+ ID4+IGluZGV4IDAwMDAwMDAwMDAuLmY2Y2Y4ZDU3MDINCj4gPj4gPj4gLS0tIC9kZXYvbnVsbA0K PiA+PiA+PiArKysgYi9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL3N0ZGludC5oDQo+ID4+ID4+ IEBAIC0wLDAgKzEsMTAgQEANCj4gPj4gPj4gKy8qKiBAZmlsZQ0KPiA+PiA+Pg0KPiA+PiA+PiAr ICBJbmNsdWRlIGZpbGUgdG8gc3VwcG9ydCBidWlsZGluZyB0aGUgdGhpcmQtcGFydHkgbGliZmR0 IGxpYnJhcnkuDQo+ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gK0NvcHlyaWdo dCAoYykgMjAyMywgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0K PiA+PiA+Pg0KPiA+PiA+PiArU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1Q YXRlbnQNCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArKiovDQo+ID4+ID4+ DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gKyNpbmNsdWRlIDxMaWJGZHRTdXBwb3J0Lmg+ DQo+ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gZGlmZiAtLWdpdCBhL01kZVBr Zy9MaWJyYXJ5L0Jhc2VGZHRMaWIvc3RkbGliLmgNCj4gPj4gPj4gYi9NZGVQa2cvTGlicmFyeS9C YXNlRmR0TGliL3N0ZGxpYi5oDQo+ID4+ID4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4+ID4+ IGluZGV4IDAwMDAwMDAwMDAuLmY2Y2Y4ZDU3MDINCj4gPj4gPj4gLS0tIC9kZXYvbnVsbA0KPiA+ PiA+PiArKysgYi9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL3N0ZGxpYi5oDQo+ID4+ID4+IEBA IC0wLDAgKzEsMTAgQEANCj4gPj4gPj4gKy8qKiBAZmlsZQ0KPiA+PiA+Pg0KPiA+PiA+PiArICBJ bmNsdWRlIGZpbGUgdG8gc3VwcG9ydCBidWlsZGluZyB0aGUgdGhpcmQtcGFydHkgbGliZmR0IGxp YnJhcnkuDQo+ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gK0NvcHlyaWdodCAo YykgMjAyMywgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ PiA+Pg0KPiA+PiA+PiArU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRl bnQNCj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArKiovDQo+ID4+ID4+DQo+ ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gKyNpbmNsdWRlIDxMaWJGZHRTdXBwb3J0Lmg+DQo+ ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gZGlmZiAtLWdpdCBhL01kZVBrZy9M aWJyYXJ5L0Jhc2VGZHRMaWIvc3RyaW5nLmgNCj4gPj4gPj4gYi9NZGVQa2cvTGlicmFyeS9CYXNl RmR0TGliL3N0cmluZy5oDQo+ID4+ID4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4+ID4+IGlu ZGV4IDAwMDAwMDAwMDAuLmY2Y2Y4ZDU3MDINCj4gPj4gPj4gLS0tIC9kZXYvbnVsbA0KPiA+PiA+ PiArKysgYi9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL3N0cmluZy5oDQo+ID4+ID4+IEBAIC0w LDAgKzEsMTAgQEANCj4gPj4gPj4gKy8qKiBAZmlsZQ0KPiA+PiA+Pg0KPiA+PiA+PiArICBJbmNs dWRlIGZpbGUgdG8gc3VwcG9ydCBidWlsZGluZyB0aGUgdGhpcmQtcGFydHkgbGliZmR0IGxpYnJh cnkuDQo+ID4+ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gK0NvcHlyaWdodCAoYykg MjAyMywgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+PiA+ Pg0KPiA+PiA+PiArU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQN Cj4gPj4gPj4NCj4gPj4gPj4gKw0KPiA+PiA+Pg0KPiA+PiA+PiArKiovDQo+ID4+ID4+DQo+ID4+ ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gKyNpbmNsdWRlIDxMaWJGZHRTdXBwb3J0Lmg+DQo+ID4+ ID4+DQo+ID4+ID4+ICsNCj4gPj4gPj4NCj4gPj4gPj4gZGlmZiAtLWdpdCBhL01kZVBrZy9NZGVQ a2cuY2kueWFtbCBiL01kZVBrZy9NZGVQa2cuY2kueWFtbCBpbmRleA0KPiA+PiA+PiA2YmE4NWVi ZTYxLi5mMDM5ZGFjY2RiIDEwMDY0NA0KPiA+PiA+PiAtLS0gYS9NZGVQa2cvTWRlUGtnLmNpLnlh bWwNCj4gPj4gPj4gKysrIGIvTWRlUGtnL01kZVBrZy5jaS55YW1sDQo+ID4+ID4+IEBAIC0yLDcg KzIsNyBAQA0KPiA+PiA+PiAgIyBDSSBjb25maWd1cmF0aW9uIGZvciBNZGVQa2cNCj4gPj4gPj4N Cj4gPj4gPj4gICMNCj4gPj4gPj4NCj4gPj4gPj4gICMgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQg Q29ycG9yYXRpb24NCj4gPj4gPj4NCj4gPj4gPj4gLSMgQ29weXJpZ2h0IChjKSAyMDIwLCBJbnRl bCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4+ID4+DQo+ID4+ID4+ ICsjIENvcHlyaWdodCAoYykgMjAyMywgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVz ZXJ2ZWQuPEJSPg0KPiA+PiA+Pg0KPiA+PiA+PiAgIyBDb3B5cmlnaHQgKGMpIDIwMjEsIEFybSBM aW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPj4gPj4NCj4gPj4gPj4gICMgQ29w eXJpZ2h0IChjKSAyMDIzLCBMb29uZ3NvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uIExpbWl0ZWQu IEFsbA0KPiA+PiA+PiByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+PiA+Pg0KPiA+PiA+PiAgIyBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+PiA+Pg0KPiA+ PiA+PiBAQCAtNjcsNyArNjcsOCBAQA0KPiA+PiA+PiAgICAgICAgICAgICAgIkluY2x1ZGUvTGli cmFyeS9QY2RMaWIuaCIsDQo+ID4+ID4+DQo+ID4+ID4+ICAgICAgICAgICAgICAiSW5jbHVkZS9M aWJyYXJ5L1NhZmVJbnRMaWIuaCIsDQo+ID4+ID4+DQo+ID4+ID4+ICAgICAgICAgICAgICAiSW5j bHVkZS9Qcm90b2NvbC9EZWJ1Z1N1cHBvcnQuaCIsDQo+ID4+ID4+DQo+ID4+ID4+IC0gICAgICAg ICAgICAiVGVzdC9Vbml0VGVzdC9MaWJyYXJ5L0Jhc2VTYWZlSW50TGliL1Rlc3RCYXNlU2FmZUlu dExpYi5jIg0KPiA+PiA+Pg0KPiA+PiA+PiArDQo+ID4+ID4+ICsgIlRlc3QvVW5pdFRlc3QvTGli cmFyeS9CYXNlU2FmZUludExpYi9UZXN0QmFzZVNhZmVJbnRMaWIuYyIsDQo+ID4+ID4+DQo+ID4+ ID4+ICsgICAgICAgICAgICAiTGlicmFyeS9CYXNlRmR0TGliIg0KPiA+PiA+Pg0KPiA+PiA+PiAg ICAgICAgICBdDQo+ID4+ID4+DQo+ID4+ID4+ICAgICAgfSwNCj4gPj4gPj4NCj4gPj4gPj4gICAg ICAjIyBvcHRpb25zIGRlZmluZWQgY2kvUGx1Z2luL0NvbXBpbGVyUGx1Z2luDQo+ID4+ID4+DQo+ ID4+ID4+IEBAIC0xNjQsNSArMTY1LDE3IEBADQo+ID4+ID4+ICAgICAgICAgICJFeHRlbmRXb3Jk cyI6IFtdLCAgICAgICAgICAgIyB3b3JkcyB0byBleHRlbmQgdG8gdGhlIGRpY3Rpb25hcnkgZm9y IHRoaXMgcGFja2FnZQ0KPiA+PiA+Pg0KPiA+PiA+PiAgICAgICAgICAiSWdub3JlU3RhbmRhcmRQ YXRocyI6IFtdLCAgICMgU3RhbmRhcmQgUGx1Z2luIGRlZmluZWQgcGF0aHMgdGhhdCBzaG91bGQg YmUgaWdub3JlDQo+ID4+ID4+DQo+ID4+ID4+ICAgICAgICAgICJBZGRpdGlvbmFsSW5jbHVkZVBh dGhzIjogW10gIyBBZGRpdGlvbmFsIHBhdGhzIHRvIHNwZWxsDQo+ID4+ID4+IGNoZWNrICh3aWxk Y2FyZHMgc3VwcG9ydGVkKQ0KPiA+PiA+Pg0KPiA+PiA+PiArICAgIH0sDQo+ID4+ID4+DQo+ID4+ ID4+ICsgICAgIyBvcHRpb25zIGRlZmluZWQgaW4gLnB5dG9vbC9QbHVnaW4vVW5jcnVzdGlmeUNo ZWNrDQo+ID4+ID4+DQo+ID4+ID4+ICsgICAgIlVuY3J1c3RpZnlDaGVjayI6IHsNCj4gPj4gPj4N Cj4gPj4gPj4gKyAgICAgICAgIklnbm9yZUZpbGVzIjogWw0KPiA+PiA+Pg0KPiA+PiA+PiArICAg ICAgICAgICAgIkxpYnJhcnkvQmFzZUZkdExpYi9saWJmZHQiLA0KPiA+PiA+Pg0KPiA+PiA+PiAr ICAgICAgICAgICAgIkxpYnJhcnkvQmFzZUZkdExpYi9saW1pdHMuaCIsDQo+ID4+ID4+DQo+ID4+ ID4+ICsgICAgICAgICAgICAiTGlicmFyeS9CYXNlRmR0TGliL3N0ZGJvb2wuaCIsDQo+ID4+ID4+ DQo+ID4+ID4+ICsgICAgICAgICAgICAiTGlicmFyeS9CYXNlRmR0TGliL3N0ZGRlZi5oIiwNCj4g Pj4gPj4NCj4gPj4gPj4gKyAgICAgICAgICAgICJMaWJyYXJ5L0Jhc2VGZHRMaWIvc3RkaW50Lmgi LA0KPiA+PiA+Pg0KPiA+PiA+PiArICAgICAgICAgICAgIkxpYnJhcnkvQmFzZUZkdExpYi9zdGRs aWIuaCIsDQo+ID4+ID4+DQo+ID4+ID4+ICsgICAgICAgICAgICAiTGlicmFyeS9CYXNlRmR0TGli L3N0cmluZy5oIg0KPiA+PiA+Pg0KPiA+PiA+PiArICAgICAgICBdDQo+ID4+ID4+DQo+ID4+ID4+ ICAgICAgfQ0KPiA+PiA+Pg0KPiA+PiA+PiAgfQ0KPiA+PiA+Pg0KPiA+PiA+PiBkaWZmIC0tZ2l0 IGEvTWRlUGtnL01kZVBrZy5kZWMgYi9NZGVQa2cvTWRlUGtnLmRlYyBpbmRleA0KPiA+PiA+PiBl NzAxODJiZjdmLi45ODA0YTdhNmJkIDEwMDY0NA0KPiA+PiA+PiAtLS0gYS9NZGVQa2cvTWRlUGtn LmRlYw0KPiA+PiA+PiArKysgYi9NZGVQa2cvTWRlUGtnLmRlYw0KPiA+PiA+PiBAQCAtMjg5LDYg KzI4OSwxMCBAQA0KPiA+PiA+PiAgICAjDQo+ID4+ID4+DQo+ID4+ID4+ICAgIEFybVRybmdMaWJ8 SW5jbHVkZS9MaWJyYXJ5L0FybVRybmdMaWIuaA0KPiA+PiA+Pg0KPiA+PiA+Pg0KPiA+PiA+Pg0K PiA+PiA+PiArICAjIyAgQGxpYnJhcnljbGFzcyAgUHJvdmlkZXMgQVBJcyBmb3IgdGhpcmQtcGFy dHkgbGlicmFyeSBsaWJmZHQuDQo+ID4+ID4+DQo+ID4+ID4+ICsgICMNCj4gPj4gPj4NCj4gPj4g Pj4gKyAgRmR0TGlifEluY2x1ZGUvTGlicmFyeS9GZHRMaWIuaA0KPiA+PiA+Pg0KPiA+PiA+PiAr DQo+ID4+ID4+DQo+ID4+ID4+ICBbTGlicmFyeUNsYXNzZXMuSUEzMiwgTGlicmFyeUNsYXNzZXMu WDY0LCBMaWJyYXJ5Q2xhc3Nlcy5BQVJDSDY0XQ0KPiA+PiA+Pg0KPiA+PiA+PiAgICAjIyAgQGxp YnJhcnljbGFzcyAgUHJvdmlkZXMgc2VydmljZXMgdG8gZ2VuZXJhdGUgcmFuZG9tIG51bWJlci4N Cj4gPj4gPj4NCj4gPj4gPj4gICAgIw0KPiA+PiA+Pg0KPiA+PiA+PiBkaWZmIC0tZ2l0IGEvTWRl UGtnL01kZVBrZy5kc2MgYi9NZGVQa2cvTWRlUGtnLmRzYyBpbmRleA0KPiA+PiA+PiAxNTJjMDI5 OTFhLi5iMzhjODYzODEyIDEwMDY0NA0KPiA+PiA+PiAtLS0gYS9NZGVQa2cvTWRlUGtnLmRzYw0K PiA+PiA+PiArKysgYi9NZGVQa2cvTWRlUGtnLmRzYw0KPiA+PiA+PiBAQCAtMTM3LDYgKzEzNyw3 IEBADQo+ID4+ID4+DQo+ID4+ID4+IE1kZVBrZy9MaWJyYXJ5L1NtbUNwdVJlbmRlenZvdXNMaWJO dWxsL1NtbUNwdVJlbmRlenZvdXNMaWJOdWxsLmluZg0KPiA+PiA+Pg0KPiA+PiA+Pg0KPiA+PiA+ Pg0KPiA+PiA+PiAgICBNZGVQa2cvTGlicmFyeS9KZWRlY0plcDEwNkxpYi9KZWRlY0plcDEwNkxp Yi5pbmYNCj4gPj4gPj4NCj4gPj4gPj4gKyAgTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9CYXNl RmR0TGliLmluZg0KPiA+PiA+Pg0KPiA+PiA+Pg0KPiA+PiA+Pg0KPiA+PiA+PiAgW0NvbXBvbmVu dHMuSUEzMiwgQ29tcG9uZW50cy5YNjQsIENvbXBvbmVudHMuQVJNLA0KPiA+PiA+PiBDb21wb25l bnRzLkFBUkNINjRdDQo+ID4+ID4+DQo+ID4+ID4+ICAgICMNCj4gPj4gPj4NCj4gPj4gPj4gLS0N Cj4gPj4gPj4gMi4zOS4xLndpbmRvd3MuMQ0KPiA+DQo+ID4NCg==