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.web10.1446.1654909762822788607 for ; Fri, 10 Jun 2022 18:09:23 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=nspQoM9u; spf=pass (domain: intel.com, ip: 134.134.136.65, mailfrom: jiewen.yao@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654909762; x=1686445762; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=Ete7DdpEbTS6vDTQ8OF28aoZtovSPnGO/yOhf7AsaFI=; b=nspQoM9ubf6vPx9o+X8Y1tPxDDpYfopE2+gqxmPUgbxHUCb7Jxb4EwiC pTiqy+XIHQk6Owo+SqB+/6P+cUVX9AgWXrbBHAVaKf3BvXnAYVnlID7c3 aqzanrSjW09Htf4+klV4VfCeGJ9bAsdrrPyChd2rQrbszLYrUI8N7Cdhd rKuFUEyJUW9l5raPbOSz+ZmM7bH9DR0jt7sn4/IMwjdhpmsrvRpbyhE48 9T6/A7Wohr2lwrr+qMnG0oCHB5ZkEVg6bkNvud9TUlufM6s45hgmybdEJ nKSjT+r0qaaA3Ouqqk7YCQZCzkldI5KNCWOybXtLdh/8HqUBRVnaQAnMe A==; X-IronPort-AV: E=McAfee;i="6400,9594,10374"; a="278923304" X-IronPort-AV: E=Sophos;i="5.91,292,1647327600"; d="scan'208";a="278923304" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jun 2022 18:09:21 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,292,1647327600"; d="scan'208";a="638429107" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmsmga008.fm.intel.com with ESMTP; 10 Jun 2022 18:09:20 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) 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.2308.27; Fri, 10 Jun 2022 18:09:20 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Fri, 10 Jun 2022 18:09:20 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.170) 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.2308.27; Fri, 10 Jun 2022 18:09:20 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SSQ0IhTMadPiWUuusHfLuo1G1mxbJPzXc0vKtdKD6QgIjN0i9Tak0OYk+OgqiYO+e8MLPyzqWfLcIrTzruNq5oaw1G1b/kx3hcdZdZgJWSjxJfrSr6/+eB9iSeWszjG+tsGRna+rtzVBDtggFlbKnrFyjTuTbKq4usy6LkuwqedEaQOGj0PF76RtZ2Np3Sc5daZZ27fuXNz7MJ5/ijNXmFcZdpy9z1oZfEFqoS14x0iplo/yxrfb7ofgvwPJwqnvca+s5eCRm4Y/FvLxkKR2HqZtQRX9XD+h6eMdbhxNKQL74tHS+7cosrNj07tPuuvOIqoln8DmDhL96iBzjchB3w== 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=Ete7DdpEbTS6vDTQ8OF28aoZtovSPnGO/yOhf7AsaFI=; b=eJ9gwkU1FUF5IdAdNAS50a2K5N3HT0A3OxwCLHrc7V7h3Md0DUsyETwfwNErQEVGSOABrrJrh4IiGNA0u8uckddQXscMj0lLtcGPtDs5aZWIu6hikS+ukXA5zBlX58fs4iAZCjOAlZwdKls7dl+CNDzXbW3fpMwQTXbFxiT9sYJzmaMoCCOUIpjIXktG0Au2nfbHmW4LWfShlcfoAcik1za+UQH3ChZ3duS/L4J4AFpxJU8CLnwSRM3XIOAzbuDdt7FCTILDQOda1phQSKMsUhujaXCqev005EIozv4E92kshewH6+eR/s6rqERrdDV0HsIgL08SjYChbb+zw/inWA== 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 MW4PR11MB5872.namprd11.prod.outlook.com (2603:10b6:303:169::14) by SA2PR11MB4812.namprd11.prod.outlook.com (2603:10b6:806:f8::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5332.14; Sat, 11 Jun 2022 01:09:17 +0000 Received: from MW4PR11MB5872.namprd11.prod.outlook.com ([fe80::24ae:1cd3:3192:4c7e]) by MW4PR11MB5872.namprd11.prod.outlook.com ([fe80::24ae:1cd3:3192:4c7e%7]) with mapi id 15.20.5332.013; Sat, 11 Jun 2022 01:09:16 +0000 From: "Yao, Jiewen" To: "Desimone, Nathaniel L" , "devel@edk2.groups.io" , "michael.kubacki@outlook.com" CC: "Wang, Jian J" , "Gao, Liming" , "Kinney, Michael D" , "Oram, Isaac W" , "Chiu, Chasel" , "Cheng, Gao" , "Zhang, Di" , "Bu, Daocheng" , "Kubacki, Michael" Subject: Re: [edk2-devel] [PATCH V1 1/1] MdeModulePkg: Add Definition of EDKII_PEI_VARIABLE_PPI Thread-Topic: [edk2-devel] [PATCH V1 1/1] MdeModulePkg: Add Definition of EDKII_PEI_VARIABLE_PPI Thread-Index: AQHYfG3sZEbk8NCZDkuVgN7CL4D0Dq1H6Q8ggAFFzwCAADV8gA== Date: Sat, 11 Jun 2022 01:09:16 +0000 Message-ID: References: <20220610011705.5148-1-nathaniel.l.desimone@intel.com> <20220610011705.5148-2-nathaniel.l.desimone@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.6.500.17 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 299e9e6a-65b9-4586-8e0e-08da4b4701a5 x-ms-traffictypediagnostic: SA2PR11MB4812:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: R35Jz7q7NitBWQ9/oci+WcVrw+Qdh/BwFk1UzpbKiVrWaHU5FayjmSZldHjKPiDgymf9M1xB7Fegve/ZOWhbmF8ZEt40BSqqT6h89D9mY3klse/kirn1dG0w3uBxFDa0CC05xesptIfN9jCadBvtTCQzLiwGarq3WZpOPP7SrbexF26/u8MJ/J05OV0bzkbnCkZQ70iZez4ZaJgYcyRVvWmg3jAx4hMRs6xE6nPqLLux9GrajlpOHUZDP9R/znc9aXW9IdIveHO4bczFvi0aiy1Prg6ViIQj4Sujk6dKZcitARfxXRsA38MJ64056hIqYGb1s/SsbITpi4+U+HI844f2WvHVixZaI9yG5n95ET3dEGPxBcJJGZcvpqe4mXQRsmWDAUwBv3wMH5EYBJFGbLtyNv7sw6BMy3QOXbZexg2bBrSwXBgwD0IlEj7GjHcGZe47yWGhhfhrMBwwl7tN5OhRakLnmlv0lv3aJc70x5o4M473+xAjkFXzBZLnGqUQJy88ril/Fj223Ve49YFj79/rrbX5BqDPTBoDD0a4l0KuHy6IfP6mGFX7GkoAfEknW15FQ/AmdMC51pAX9jMLALlfIkYVgqdjlRnLMWNmmCB3hNrPXGsAExKYZx04EoX59SNB+wqFNSO5xpATe0ypVzF9QEKzkD2E2M87DkttbcaUBiLzj71q0j6PFWbG+hQ+fdS/uLjJDMclWX3NsnuOBWRjn1YyXO/bjwIDhGukDvar7gRUrP7Js7nuIe/+UzHCSmxc2NLk7dsEZ7s9AubzN6knFxNhiPzQcZ2iEE+LuTemIKWWr04lf897mZR840toZWBJpL8thgtKWqx0n3eRTw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR11MB5872.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(366004)(76116006)(55016003)(38070700005)(186003)(30864003)(33656002)(6506007)(83380400001)(82960400001)(7696005)(52536014)(53546011)(316002)(966005)(122000001)(19627235002)(26005)(9686003)(508600001)(2906002)(71200400001)(45080400002)(38100700002)(5660300002)(110136005)(8936002)(4326008)(66946007)(8676002)(66556008)(66476007)(66446008)(64756008)(86362001)(54906003)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?K3VLblFFT1pxNlJMTE80bmlvVEs1NjJ5bDZZUnNZTXRiUllyUElrcG05V3Nx?= =?utf-8?B?cWM4RHJ2cWhVcFhZQTNDa2g0SjNRTXhPaUF3V1NDRGZaQmRiT0NmRUtOeU5B?= =?utf-8?B?NUx3aEdkUmwvc21tK05naFFJZDJYblMwTWJQV0hadm0zVTQzZ2FFZlhKcWx4?= =?utf-8?B?eVE3SW8yZ0VocXNtSnNNSHZ6QXZBQmVKd1c2NG1zK3FpWDJ4UkN0OHpjSDJS?= =?utf-8?B?ckFHUDI0M0FEVGFJODF1bXFFMDFWSXNLa0JmKzlJTTBFYTNlUVdQMWtlSUlF?= =?utf-8?B?QjdWeWVmdEJhOVorWkxVUEdlTDN5Z3J0S3pUVUhBNlF2SWs3amo4ZGQva1pB?= =?utf-8?B?YjIvQXJ6Q1hHb20rUWNFOFViK1Z5azR4QVdRaDVKZTRkTkR6NVBOL3JvTVRh?= =?utf-8?B?YlVKU2p3eTV1ZS9qUUdWQ3MwNVdUdGpPcXhNYXdVbUlkeklTamdjYlhFelRN?= =?utf-8?B?MDJZbzNqUUZSTUpaYjdqZ3dHYllTWkw2RG5sSkJSNFUrUHk3ZmRqQVAxNjJX?= =?utf-8?B?dlVueUtHbkwwWGlxSFYzZWZoM0NCWUE5MCtaN09YdnJQSW9wamdCSHRvYU1I?= =?utf-8?B?WTJVOVJTTkh4TWt1NXVFR0paV1V4YVNXZWNIb1IxbytTUmM5ZnNBVnd1Skwv?= =?utf-8?B?NG80WUxiYkNqM0lsSHpWb2k0enJCbUx0MGpSVmRMVmh3N1c0MFp2NDVHRDE4?= =?utf-8?B?aGg1Q3V0SklPUUYrclNJSUNnWklaN1E3WG15MFpWN3YrQldSVlM0V3V5Wk9Y?= =?utf-8?B?TGgrZGRKUVZCTGEwemswU1hqMnRyRmw0TS9iRXQwSGR3aHNCbGxhSnl2UlNr?= =?utf-8?B?RE5TSWI0eUw0QWhtbVpyckwwOXliZkYrNlB4MVJIZ1hsbHUxTTl3UllxSzZp?= =?utf-8?B?YWFzbk80blFncGp4UElpbHcxcStTTEFud1dkaXZTbU1MQzBqaWlPRzlFc25i?= =?utf-8?B?R1VDSlE0VkY2cTlzSy93bFVkMDVYbGI4aDRYa3RHSzI5RkpLNzVtekFINERK?= =?utf-8?B?dUk3eTROSnpUN3ZvY1lwcC9uYTlHaXI5U1c3cHZlcGtHNnVsMmxLZXI0QnFX?= =?utf-8?B?OFJSS1pPRSttVm5qS2tWdjNtZWdPY3ZCMThNR0U4QXFPVlk2cUpWbVowcGg0?= =?utf-8?B?cHNZMGZuZ0t6TWg1SG5lcFVBdWVwdHU5a0JqcWQ4dUNOM1E5OVRPbFEvaUlH?= =?utf-8?B?bU83SHJpUTFmLzJMSWlPR0tucFZmYnhsbHFtSWM4UGNDTitYOUVGZmhQeWM0?= =?utf-8?B?ODZDVVFZMktaZzMrLzE1SytPeGkrZEFHNjJzUSs3THpRRmhURVpRbzhHSWlX?= =?utf-8?B?alArVWV1YzdudFdLUnZUQWhCVTZqTTd2ZjBYQlgzK0p4MTVoRU9lWG9pbzh3?= =?utf-8?B?SFNMVHc5NFhISE5aMk9xN1gzUXVqVWZIbnBRR0E4ckR1S1NaQzJYUDlsMnVC?= =?utf-8?B?MXVxdXFvblJLT0l0cDYwSGFBOGp1WkpVOVk2NDBmbTlCYUVOVkhwSEx5bk13?= =?utf-8?B?NEFxMEc0elZwNDZ2NkgwV3p2ckN6Z3Q4a015TE5EZ0ZMME1mdTBiaFFZbnpY?= =?utf-8?B?a0FaYlNyT1FGSGZHT2tBNDB0YXNaUktXdldJTmJ3ckVWVENjTkN3Q0NPd2Nk?= =?utf-8?B?amg1SEoxRitsRm9iVHFqMi9BMG5EME90ZCs1RDBFbDlZVHF6V2tRZmN1REJr?= =?utf-8?B?UlUyMmVCN3VpV2Y0R0lhZVhsWXpRc2x2Zk15K0ZKUmNvcUZQY2cwWnV2Qis5?= =?utf-8?B?dmdZcFVUcEZtNk4xbEdaU1h4Nzd3Y2RVS3dnTkNDZGF4Y3ZlK1NGa2JCcjZD?= =?utf-8?B?dEQ3MzNHVThVaXNWcDhoQk95TjJOZXBhNzcvSC9YUlRFYTNLWWw3VHRFV1FB?= =?utf-8?B?dHRwQmd3cERNK0MxV2tjWnp2a2t2blBoTjV1WCsyNnRQdFl0c3VoWVA3RUFm?= =?utf-8?B?TmFkYlJkQ2dJZW5aT1czK1E3eXdsekxnNjZhMkVwcHZtdHZ0aGx6NnBNOTFT?= =?utf-8?B?ZFgyNnVRYmFaeWpuRWdKUW0xdlFnVUlNWHJUcU9JODI1ZWNpd3JhMzliT2dL?= =?utf-8?B?Ullnc0dSd2NYaEwvSDVyZ0Z2eEZPdmxMVGlZUGQ3aVJXZmhZQndySVIxSFhS?= =?utf-8?B?cHB2bDdOOTRVeWpMN2VldjFRQ0lOcSs4NTZrS0t0MmZkNUNuUWJxS0FmdVZP?= =?utf-8?B?WlUvTUdLU04raWh3Z01CeUxUZGRFNnZVV21McXpkNW93VUFsN3hWcmtCTXJM?= =?utf-8?B?Vkt2NG5MWnBKWmMrWVJNbHg1M3E0cFVUZ0t6YjFHUll6aVZBVWZrNHpUVlZW?= =?utf-8?B?NUNwMW9kVFQxVEZlNlpqU3Z5QnlIS3VTQnE0emZwZEdheHdYbkNEdz09?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW4PR11MB5872.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 299e9e6a-65b9-4586-8e0e-08da4b4701a5 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Jun 2022 01:09:16.8579 (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: iYVQ11pL59+gdfENQClshykfJdGrCktf9rJj85ZFqY0f9gXfgb71s8IGJy1ADUyfgTz/XuYOM2RASySath0RYw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR11MB4812 Return-Path: jiewen.yao@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhhbmtzIGZvciB0aGUgcmVzcG9uc2UuDQoNCjEpIFdoeSB3ZSBuZWVkICJlbmFibGUgVUVGSSB2 YXJpYWJsZSB3cml0ZSBiZWZvcmUgcGVybWFuZW50IG1lbW9yeSBpcyBhdmFpbGFibGUiPw0KDQoy KSBJZiB0aGUgaW1wbGVtZW50YXRpb24gaXMgbm90IHJlYWR5LCBJIGRvIGhhdmUgY29uY2VybiB0 byBhZGQgaXQgc28gZWFybHkgaW4gRURLSUkuDQpJZiBJIGRvbuKAmXQgaGF2ZSBhIGJpZyBwaWN0 dXJlLCBJIGFtIG5vdCBzdXJlIGhvdyB0byByZXZpZXcgdGhlIGNvbXBsZXRlbmVzcy4NCg0KQ2Fu IHdlIHB1dCBpdCB0byBFREtJSS1zdGFnaW5nIChodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3Jl L2VkazItc3RhZ2luZykgZm9yIGEgbW9tZW50Pw0KSSBkb27igJl0IHNlZSB0aGUgbmVlZCB0byBh ZGQgdGhlIGludGVyZmFjZSBub3cgZm9yIHdvcmstaW4tcHJvZ3Jlc3MgZmVhdHVyZSwgc2luY2Ug dGhlcmUgaXMgbm8gY29uc3VtZXIgYW5kIG5vIHByb2R1Y2VyLg0KDQpBbm90aGVyIHJlYXNvbiBp cyB0aGF0IEkgaGFwcGVuIHRvIGtub3cgb3RoZXIgZmVhdHVyZSAoaW4gRURLSUkgc3RhZ2UpIGlz IGltcGFjdGluZyB2YXJpYWJsZSBkcml2ZXIuDQpodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3Jl L2VkazItc3RhZ2luZy90cmVlL1Byb3RlY3RlZFZhcmlhYmxlL2xpYnMNCg0KUGxlYXNlIGRvIGNv bnNpZGVyIHRoYXQgYXMgd2VsbCAtIGhvdyB0byB3cml0ZSBhIHByb3RlY3RlZCB2YXJpYWJsZSBp biBQRUkgcGhhc2UuDQoNClRoYW5rIHlvdQ0KWWFvIEppZXdlbg0KDQo+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+IEZyb206IERlc2ltb25lLCBOYXRoYW5pZWwgTCA8bmF0aGFuaWVsLmwu ZGVzaW1vbmVAaW50ZWwuY29tPg0KPiBTZW50OiBTYXR1cmRheSwgSnVuZSAxMSwgMjAyMiA1OjQ5 IEFNDQo+IFRvOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBkZXZlbEBlZGsy Lmdyb3Vwcy5pbzsNCj4gbWljaGFlbC5rdWJhY2tpQG91dGxvb2suY29tDQo+IENjOiBXYW5nLCBK aWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT47IEdhbywgTGltaW5nDQo+IDxnYW9saW1pbmdA Ynlvc29mdC5jb20uY24+OyBLaW5uZXksIE1pY2hhZWwgRA0KPiA8bWljaGFlbC5kLmtpbm5leUBp bnRlbC5jb20+OyBPcmFtLCBJc2FhYyBXIDxpc2FhYy53Lm9yYW1AaW50ZWwuY29tPjsNCj4gQ2hp dSwgQ2hhc2VsIDxjaGFzZWwuY2hpdUBpbnRlbC5jb20+OyBDaGVuZywgR2FvIDxnYW8uY2hlbmdA aW50ZWwuY29tPjsNCj4gWmhhbmcsIERpIDxkaS56aGFuZ0BpbnRlbC5jb20+OyBCdSwgRGFvY2hl bmcgPGRhb2NoZW5nLmJ1QGludGVsLmNvbT47DQo+IEt1YmFja2ksIE1pY2hhZWwgPG1pY2hhZWwu a3ViYWNraUBtaWNyb3NvZnQuY29tPg0KPiBTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRD SCBWMSAxLzFdIE1kZU1vZHVsZVBrZzogQWRkIERlZmluaXRpb24gb2YNCj4gRURLSUlfUEVJX1ZB UklBQkxFX1BQSQ0KPiANCj4gSGkgSmlld2VuLA0KPiANCj4gVGhhbmtzIGZvciB0aGUgZmVlZGJh Y2ssIHBlciB5b3VyIHF1ZXN0aW9uczoNCj4gDQo+IDEuIFRoZSBwcmltYXJ5IHVzZSBjYXNlIGZv ciB0aGlzIGlzIHRvIGVuYWJsZSBVRUZJIHZhcmlhYmxlIHdyaXRlcyBiZWZvcmUNCj4gcGVybWFu ZW50IG1lbW9yeSBpcyBhdmFpbGFibGUuDQo+IDIuIFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBhIHdv cmsgaW4gcHJvZ3Jlc3MuIFdlIHdpbGwgcHJvdmlkZSBpdCBzaG9ydGx5LiBBcyB0aGlzDQo+IHdp bGwgYmUgYSByYXRoZXIgbGFyZ2UgcGF0Y2ggc2V0LCBJIHdvdWxkIGxpa2UgdG8gZ2V0IHRoaXMg cGllY2UgaW4gcGxhY2UgYmVmb3JlaGFuZA0KPiBzbyB0aGF0IHRoZSByZXZpZXdlcnMgY2FuIGZv Y3VzIG9uIHRoZSBpbXBsZW1lbnRhdGlvbiBzZXBhcmF0ZSBmcm9tIHRoZSBBUEkNCj4gZGVmaW5p dGlvbi4NCj4gMy4gTm8gaW1wYWN0IHRvIHNlY3VyZSBib290LiBXZSBhcmUgbm90IGdvaW5nIHRv IHN1cHBvcnQgd3JpdGluZyB0bw0KPiBhdXRoZW50aWNhdGVkIHZhcmlhYmxlcyBpbiBQRUkuIEFz IG1lbnRpb25lZCBpbiB0aGUgY29tbWVudHMsIGlmIGEgUEVJTSB3aXNoZXMNCj4gdG8gdXBkYXRl IGFueSBvZiB0aGUgYXV0aGVudGljYXRlZCB2YXJpYWJsZXMgaXQgbXVzdCB1c2UgdGhlIGV4aXN0 aW5nIEhPQg0KPiBtZWNoYW5pc20gdG8gaGF2ZSBhIGxhdGVyIERYRSBwaGFzZSBwZXJmb3JtIHRo ZSB1cGRhdGUuDQo+IDQuIFdpdGggcmVnYXJkIHRvIGF0b21pY2l0eSwgd2UgaGF2ZSBhIGNvbXBs ZXRlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBmYXVsdA0KPiB0b2xlcmFudCB3cml0ZSBzZXJ2aWNl cyBvcGVyYXRpb25hbCBpbiBQcmUtTWVtb3J5IFBFSS4NCj4gNS4gR29vZCBwb2ludCBvbiB0aGUg UzMgcmVzdW1lLCB3ZSB3aWxsIG5lZWQgdG8gYWRkIGFuIFNNSSB0byBoYXZlIHRoZSB2YXJpYWJs ZQ0KPiBzZXJ2aWNlcyByZS1pbml0aWFsaXplIHRoZSBtTnZWYXJpYWJsZUNhY2hlLg0KPiANCj4g SG9wZSB0aGF0IGhlbHBzLA0KPiBOYXRlDQo+IA0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KPiBGcm9tOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+DQo+IFNlbnQ6IEZy aWRheSwgSnVuZSAxMCwgMjAyMiA5OjU2IEFNDQo+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsg bWljaGFlbC5rdWJhY2tpQG91dGxvb2suY29tOyBEZXNpbW9uZSwNCj4gTmF0aGFuaWVsIEwgPG5h dGhhbmllbC5sLmRlc2ltb25lQGludGVsLmNvbT4NCj4gQ2M6IFdhbmcsIEppYW4gSiA8amlhbi5q LndhbmdAaW50ZWwuY29tPjsgR2FvLCBMaW1pbmcNCj4gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5j bj47IEtpbm5leSwgTWljaGFlbCBEDQo+IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IE9y YW0sIElzYWFjIFcgPGlzYWFjLncub3JhbUBpbnRlbC5jb20+Ow0KPiBDaGl1LCBDaGFzZWwgPGNo YXNlbC5jaGl1QGludGVsLmNvbT47IENoZW5nLCBHYW8gPGdhby5jaGVuZ0BpbnRlbC5jb20+Ow0K PiBaaGFuZywgRGkgPGRpLnpoYW5nQGludGVsLmNvbT47IEJ1LCBEYW9jaGVuZyA8ZGFvY2hlbmcu YnVAaW50ZWwuY29tPjsNCj4gS3ViYWNraSwgTWljaGFlbCA8bWljaGFlbC5rdWJhY2tpQG1pY3Jv c29mdC5jb20+DQo+IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENIIFYxIDEvMV0gTWRl TW9kdWxlUGtnOiBBZGQgRGVmaW5pdGlvbiBvZg0KPiBFREtJSV9QRUlfVkFSSUFCTEVfUFBJDQo+ IA0KPiBIaQ0KPiANCj4gSSBhbSBjdXJpb3VzIHdoeSB3ZSBuZWVkIHRoaXMgaW50ZXJmYWNlLiBX aHkgd2UgbmVlZCB3cml0ZSB2YXJpYWJsZSBjYXBhYmlsaXR5DQo+IGluIFBFSSBwaGFzZT8NCj4g DQo+IFdoZXJlIGlzIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzPyBJIHByZWZlciB0byBzZWUg YW4gaW1wbGVtZW50YXRpb24NCj4gc3VibWl0dGVkIHRvZ2V0aGVyIHdpdGggaGVhZGVyIGZpbGUu DQo+IEZvciBleGFtcGxlLCB3aGF0IGlzIHRoZSBpbXBhY3QgdG8gc2VjdXJlIGJvb3QgcmVsYXRl ZCBmZWF0dXJlLCBob3cgdG8gd3JpdGUNCj4gYXV0aCB2YXJpYWJsZSBpbiBQRUksIGhvdyBQRUkg d3JpdGUgdmFyaWFibGUgY293b3JrIHdpdGggU01NIHZlcnNpb24gaW4gUzMNCj4gcmVzdW1lIHBo YXNlLCBob3cgdG8gc3VwcG9ydCB2YXJpYWJsZSBhdG9taWNpdHksIGV0Yy4NCj4gDQo+IFRoYW5r IHlvdQ0KPiBZYW8gSmlld2VuDQo+IA0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KPiA+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4g T24gQmVoYWxmIE9mIE1pY2hhZWwNCj4gPiBLdWJhY2tpDQo+ID4gU2VudDogRnJpZGF5LCBKdW5l IDEwLCAyMDIyIDEwOjAwIEFNDQo+ID4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBEZXNpbW9u ZSwgTmF0aGFuaWVsIEwNCj4gPiA8bmF0aGFuaWVsLmwuZGVzaW1vbmVAaW50ZWwuY29tPg0KPiA+ IENjOiBXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT47IEdhbywgTGltaW5nDQo+ ID4gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IEtpbm5leSwgTWljaGFlbCBEDQo+ID4gPG1p Y2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgT3JhbSwgSXNhYWMgVyA8aXNhYWMudy5vcmFtQGlu dGVsLmNvbT47DQo+ID4gQ2hpdSwgQ2hhc2VsIDxjaGFzZWwuY2hpdUBpbnRlbC5jb20+OyBDaGVu ZywgR2FvDQo+ID4gPGdhby5jaGVuZ0BpbnRlbC5jb20+OyBaaGFuZywgRGkgPGRpLnpoYW5nQGlu dGVsLmNvbT47IEJ1LCBEYW9jaGVuZw0KPiA+IDxkYW9jaGVuZy5idUBpbnRlbC5jb20+OyBLdWJh Y2tpLCBNaWNoYWVsDQo+ID4gPG1pY2hhZWwua3ViYWNraUBtaWNyb3NvZnQuY29tPg0KPiA+IFN1 YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIIFYxIDEvMV0gTWRlTW9kdWxlUGtnOiBBZGQg RGVmaW5pdGlvbg0KPiA+IG9mIEVES0lJX1BFSV9WQVJJQUJMRV9QUEkNCj4gPg0KPiA+IElzIHRo aXMgY2hhbmdlIGp1c3QgYWRkaW5nIHRoZSBpbnRlcmZhY2UgdG8gVGlhbm9jb3JlIG9yIGlzIHRo ZXJlDQo+ID4gYWRkaXRpb25hbCBpbXBsZW1lbnRhdGlvbiBwbGFubmVkIGFzIHdlbGw/DQo+ID4N Cj4gPiAtLS0NCj4gPg0KPiA+IEkgdGhvdWdodCB3ZSB3ZXJlIGZvbGxvd2luZyB0aGlzIGNvbnZl bnRpb24gbm93Og0KPiA+DQo+ID4gIiNpZm5kZWYgX19QRUlfVkFSSUFCTEVfUFBJX0hfIiAtPiAi I2lmbmRlZiBQRUlfVkFSSUFCTEVfUFBJX0hfIg0KPiA+DQo+ID4gU29tZSBvdGhlciBjb21tZW50 cyBhcmUgaW5saW5lLg0KPiA+DQo+ID4gUmVnYXJkcywNCj4gPiBNaWNoYWVsDQo+ID4NCj4gPiBP biA2LzkvMjAyMiA5OjE3IFBNLCBOYXRlIERlU2ltb25lIHdyb3RlOg0KPiA+ID4gQWRkcyBkZWZp bml0aW9uIG9mIEVES0lJX1BFSV9WQVJJQUJMRV9QUEksIGEgcHJlLWN1cnNvciB0byBlbmFibGlu Zw0KPiA+ID4gdmFyaWFibGUgd3JpdGVzIGluIHRoZSBQRUkgZW52aXJvbm1lbnQuDQo+ID4gPg0K PiA+ID4gQ2M6IEppYW4gSiBXYW5nIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+DQo+ID4gPiBDYzog TGltaW5nIEdhbyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPg0KPiA+ID4gQ2M6IE1pY2hhZWwg RCBLaW5uZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+ID4gQ2M6IElzYWFjIE9y YW0gPGlzYWFjLncub3JhbUBpbnRlbC5jb20+DQo+ID4gPiBDYzogQ2hhc2VsIENoaXUgPGNoYXNl bC5jaGl1QGludGVsLmNvbT4NCj4gPiA+IENjOiBHYW8gQ2hlbmcgPGdhby5jaGVuZ0BpbnRlbC5j b20+DQo+ID4gPiBDYzogRGkgWmhhbmcgPGRpLnpoYW5nQGludGVsLmNvbT4NCj4gPiA+IENjOiBE YW9jaGVuZyBCdSA8ZGFvY2hlbmcuYnVAaW50ZWwuY29tPg0KPiA+ID4gQ2M6IE1pY2hhZWwgS3Vi YWNraSA8bWljaGFlbC5rdWJhY2tpQG1pY3Jvc29mdC5jb20+DQo+ID4gPiBTaWduZWQtb2ZmLWJ5 OiBOYXRlIERlU2ltb25lIDxuYXRoYW5pZWwubC5kZXNpbW9uZUBpbnRlbC5jb20+DQo+ID4gPiAt LS0NCj4gPiA+ICAgTWRlTW9kdWxlUGtnL0luY2x1ZGUvUHBpL1ZhcmlhYmxlLmggfCAxODkNCj4g PiArKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ID4gPiAgIE1kZU1vZHVsZVBrZy9NZGVN b2R1bGVQa2cuZGVjICAgICAgIHwgICAzICsNCj4gPiA+ICAgMiBmaWxlcyBjaGFuZ2VkLCAxOTIg aW5zZXJ0aW9ucygrKQ0KPiA+ID4gICBjcmVhdGUgbW9kZSAxMDA2NDQgTWRlTW9kdWxlUGtnL0lu Y2x1ZGUvUHBpL1ZhcmlhYmxlLmgNCj4gPiA+DQo+ID4gPiBkaWZmIC0tZ2l0IGEvTWRlTW9kdWxl UGtnL0luY2x1ZGUvUHBpL1ZhcmlhYmxlLmgNCj4gPiBiL01kZU1vZHVsZVBrZy9JbmNsdWRlL1Bw aS9WYXJpYWJsZS5oDQo+ID4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+ID4gaW5kZXggMDAw MDAwMDAwMC4uOTdkYzdjZWVmYQ0KPiA+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ID4gKysrIGIvTWRl TW9kdWxlUGtnL0luY2x1ZGUvUHBpL1ZhcmlhYmxlLmgNCj4gPiA+IEBAIC0wLDAgKzEsMTg5IEBA DQo+ID4gPiArLyoqIEBmaWxlDQo+ID4gPiArICBFREtJSSBQRUkgVmFyaWFibGUgUHJvdG9jb2wg cHJvdmlkZXMgYW4gaW1wbGVtZW50YXRpb24gb2YNCj4gPiA+ICt2YXJpYWJsZXMNCj4gPg0KPiA+ IFtNS10gV2FzICJFREtJSSBQRUkgVmFyaWFibGUgUFBJIiBpbnRlbmRlZD8NCj4gPg0KPiA+ID4g KyAgaW50ZW5kZWQgZm9yIHVzZSBhcyBhIG1lYW5zIHRvIHN0b3JlIGRhdGEgaW4gdGhlIFBFSSBl bnZpcm9ubWVudC4NCj4gPiA+ICsNCj4gPiA+ICsgIENvcHlyaWdodCAoYykgMjAyMiwgSW50ZWwg Q29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ID4gKyAgU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPiA+ICsNCj4gPiA+ICsqKi8N Cj4gPiA+ICsNCj4gPiA+ICsjaWZuZGVmIF9fUEVJX1ZBUklBQkxFX1BQSV9IXw0KPiA+ID4gKyNk ZWZpbmUgX19QRUlfVkFSSUFCTEVfUFBJX0hfDQo+ID4gPiArDQo+ID4gPiArI2RlZmluZSBFREtJ SV9QRUlfVkFSSUFCTEVfUFBJX0dVSUQgXA0KPiA+ID4gKyAgeyBcDQo+ID4gPiArICAgIDB4ZTdi MmNkMDQsIDB4NGIxNCwgMHg0NGMyLCB7IDB4YjcsIDB4NDgsIDB4Y2UsIDB4YWYsIDB4MmIsDQo+ ID4gPiArMHg2NiwgMHg0YSwNCj4gPiAweGIwIH0gXA0KPiA+ID4gKyAgfQ0KPiA+ID4gKw0KPiA+ ID4gK3R5cGVkZWYgc3RydWN0IF9FREtJSV9QRUlfVkFSSUFCTEVfUFBJIEVES0lJX1BFSV9WQVJJ QUJMRV9QUEk7DQo+ID4gPiArDQo+ID4gPiArLyoqDQo+ID4gPiArICBUaGlzIHNlcnZpY2UgcmV0 cmlldmVzIGEgdmFyaWFibGUncyB2YWx1ZSB1c2luZyBpdHMgbmFtZSBhbmQgR1VJRC4NCj4gPiA+ ICsNCj4gPiA+ICsgIFJlYWQgdGhlIHNwZWNpZmllZCB2YXJpYWJsZSBmcm9tIHRoZSBVRUZJIHZh cmlhYmxlIHN0b3JlLiBJZiB0aGUNCj4gPiA+ICsgRGF0YSAgYnVmZmVyIGlzIHRvbyBzbWFsbCB0 byBob2xkIHRoZSBjb250ZW50cyBvZiB0aGUgdmFyaWFibGUsDQo+ID4gPiArIHRoZSBlcnJvciBF RklfQlVGRkVSX1RPT19TTUFMTCBpcyByZXR1cm5lZCBhbmQgRGF0YVNpemUgaXMgc2V0IHRvDQo+ ID4gPiArIHRoZSAgcmVxdWlyZWQgYnVmZmVyIHNpemUgdG8gb2J0YWluIHRoZSBkYXRhLg0KPiA+ ID4gKw0KPiA+ID4gKyAgQHBhcmFtW2luXSAgICAgICAgVGhpcyAgICAgICAgICAgICAgQSBwb2lu dGVyIHRvIHRoaXMgaW5zdGFuY2Ugb2YgdGhlDQo+ID4gRURLSUlfUEVJX1ZBUklBQkxFX1BQSS4N Cj4gPiA+ICsgIEBwYXJhbVtpbl0gICAgICAgIFZhcmlhYmxlTmFtZSAgICAgIEEgcG9pbnRlciB0 byBhIG51bGwtdGVybWluYXRlZCBzdHJpbmcgdGhhdA0KPiA+IGlzIHRoZSB2YXJpYWJsZSdzIG5h bWUuDQo+ID4gPiArICBAcGFyYW1baW5dICAgICAgICBWYXJpYWJsZUd1aWQgICAgICBBIHBvaW50 ZXIgdG8gYW4gRUZJX0dVSUQgdGhhdCBpcyB0aGUNCj4gPiB2YXJpYWJsZSdzIEdVSUQuIFRoZSBj b21iaW5hdGlvbiBvZg0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgVmFyaWFibGVHdWlkIGFuZCBWYXJpYWJsZU5hbWUgbXVzdCBiZSB1bmlxdWUuDQo+ID4gPiAr ICBAcGFyYW1bb3V0XSAgICAgICBBdHRyaWJ1dGVzICAgICAgICBJZiBub24tTlVMTCwgb24gcmV0 dXJuLCBwb2ludHMgdG8gdGhlDQo+ID4gdmFyaWFibGUncyBhdHRyaWJ1dGVzLg0KPiA+ID4gKyAg QHBhcmFtW2luLCBvdXRdICAgRGF0YVNpemUgICAgICAgICAgT24gZW50cnksIHBvaW50cyB0byB0 aGUgc2l6ZSBpbiBieXRlcyBvZiB0aGUNCj4gPiBEYXRhIGJ1ZmZlci4NCj4gPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uIHJldHVybiwgcG9pbnRzIHRvIHRoZSBz aXplIG9mIHRoZSBkYXRhIHJldHVybmVkIGluDQo+IERhdGEuDQo+ID4gPiArICBAcGFyYW1bb3V0 XSAgICAgICBEYXRhICAgICAgICAgICAgICBQb2ludHMgdG8gdGhlIGJ1ZmZlciB3aGljaCB3aWxs IGhvbGQgdGhlDQo+ID4gcmV0dXJuZWQgdmFyaWFibGUgdmFsdWUuDQo+ID4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXkgYmUgTlVMTCB3aXRoIGEgemVybw0KPiA+ ID4gKyBEYXRhU2l6ZSBpbiBvcmRlciB0byBkZXRlcm1pbmUNCj4gPiB0aGUgc2l6ZSBvZiB0aGUN Cj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlciBuZWVk ZWQuDQo+ID4gPiArDQo+ID4gPiArICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICAgICAg ICBUaGUgdmFyaWFibGUgd2FzIHJlYWQgc3VjY2Vzc2Z1bGx5Lg0KPiA+ID4gKyAgQHJldHZhbCBF RklfTk9UX0ZPVU5EICAgICAgICAgICAgICAgVGhlIHZhcmlhYmxlIHdhcyBub3QgZm91bmQuDQo+ ID4gPiArICBAcmV0dmFsIEVGSV9CVUZGRVJfVE9PX1NNQUxMICAgICAgICBUaGUgRGF0YVNpemUg aXMgdG9vIHNtYWxsIGZvciB0aGUNCj4gPiByZXN1bHRpbmcgZGF0YS4NCj4gPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGFTaXplIGlzIHVwZGF0ZWQgd2l0aCB0 aGUgc2l6ZSByZXF1aXJlZCBmb3INCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUuDQo+ID4gPiArICBAcmV0dmFsIEVGSV9J TlZBTElEX1BBUkFNRVRFUiAgICAgICBWYXJpYWJsZU5hbWUsIFZhcmlhYmxlR3VpZCwNCj4gPiBE YXRhU2l6ZSBvciBEYXRhIGlzIE5VTEwuDQo+ID4gPiArICBAcmV0dmFsIEVGSV9ERVZJQ0VfRVJS T1IgICAgICAgICAgICBUaGUgdmFyaWFibGUgY291bGQgbm90IGJlIHJldHJpZXZlZA0KPiA+IGJl Y2F1c2Ugb2YgYSBkZXZpY2UgZXJyb3IuDQo+ID4gPiArDQo+ID4gPiArKiovDQo+ID4gPiArdHlw ZWRlZg0KPiA+ID4gK0VGSV9TVEFUVVMNCj4gPiA+ICsoRUZJQVBJICpFREtJSV9QRUlfR0VUX1ZB UklBQkxFKSgNCj4gPiA+ICsgIElOIENPTlNUICBFREtJSV9QRUlfVkFSSUFCTEVfUFBJICAgICpU aGlzLA0KPiA+ID4gKyAgSU4gQ09OU1QgIENIQVIxNiAgICAgICAgICAgICAgICAgICAgKlZhcmlh YmxlTmFtZSwNCj4gPiA+ICsgIElOIENPTlNUICBFRklfR1VJRCAgICAgICAgICAgICAgICAgICpW YXJpYWJsZUd1aWQsDQo+ID4gPiArICBPVVQgICAgICAgVUlOVDMyICAgICAgICAgICAgICAgICAg ICAqQXR0cmlidXRlcywNCj4gPg0KPiA+IFtNS10gQmFzZWQgb24gdGhlIGRlc2NyaXB0aW9uLCBB dHRyaWJ1dGVzIHNob3VsZCBiZSBtYXJrZWQgIk9QVElPTkFMIi4NCj4gPg0KPiA+ID4gKyAgSU4g T1VUICAgIFVJTlROICAgICAgICAgICAgICAgICAgICAgKkRhdGFTaXplLA0KPiA+ID4gKyAgT1VU ICAgICAgIFZPSUQgICAgICAgICAgICAgICAgICAgICAgKkRhdGEgT1BUSU9OQUwNCj4gPiA+ICsg ICk7DQo+ID4gPiArDQo+ID4gPiArLyoqDQo+ID4gPiArICBSZXR1cm4gdGhlIG5leHQgdmFyaWFi bGUgbmFtZSBhbmQgR1VJRC4NCj4gPiA+ICsNCj4gPiA+ICsgIFRoaXMgZnVuY3Rpb24gaXMgY2Fs bGVkIG11bHRpcGxlIHRpbWVzIHRvIHJldHJpZXZlIHRoZQ0KPiA+ID4gKyBWYXJpYWJsZU5hbWUg IGFuZCBWYXJpYWJsZUd1aWQgb2YgYWxsIHZhcmlhYmxlcyBjdXJyZW50bHkgYXZhaWxhYmxlIGlu IHRoZQ0KPiBzeXN0ZW0uDQo+ID4gPiArICBPbiBlYWNoIGNhbGwsIHRoZSBwcmV2aW91cyByZXN1 bHRzIGFyZSBwYXNzZWQgaW50byB0aGUgaW50ZXJmYWNlLA0KPiA+ID4gKyBhbmQsIG9uIHJldHVy biwgdGhlIGludGVyZmFjZSByZXR1cm5zIHRoZSBkYXRhIGZvciB0aGUgbmV4dA0KPiA+ID4gKyBp bnRlcmZhY2UuIFdoZW4gdGhlIGVudGlyZSB2YXJpYWJsZSBsaXN0IGhhcyBiZWVuIHJldHVybmVk LA0KPiA+ID4gKyBFRklfTk9UX0ZPVU5EIGlzIHJldHVybmVkLg0KPiA+ID4gKw0KPiA+DQo+ID4g W01LXSBJIGtub3cgb3RoZXIgZGVzY3JpcHRpb25zIGRvbid0IHVzdWFsbHkgaGF2ZSBpdCBidXQg aXQgd291bGQgYmUNCj4gPiBuaWNlIHRvIGRlc2NyaWJlIHRoZSBpbml0aWFsIGNhbGxpbmcgdmFs dWVzIGV4cGVjdGVkLg0KPiA+DQo+ID4gPiArICBAcGFyYW1baW5dICAgICAgICBUaGlzICAgICAg ICAgICAgICBBIHBvaW50ZXIgdG8gdGhpcyBpbnN0YW5jZSBvZiB0aGUNCj4gPiBFREtJSV9QRUlf VkFSSUFCTEVfUFBJLg0KPiA+ID4gKyAgQHBhcmFtW2luLCBvdXRdICAgVmFyaWFibGVOYW1lU2l6 ZSAgT24gZW50cnksIHBvaW50cyB0byB0aGUgc2l6ZSBvZiB0aGUNCj4gPiBidWZmZXIgcG9pbnRl ZCB0byBieSBWYXJpYWJsZU5hbWUuDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBPbiByZXR1cm4sIHRoZSBzaXplIG9mIHRoZSB2YXJpYWJsZSBuYW1lIGJ1ZmZl ci4NCj4gPiA+ICsgIEBwYXJhbVtpbiwgb3V0XSAgIFZhcmlhYmxlTmFtZSAgICAgIE9uIGVudHJ5 LCBhIHBvaW50ZXIgdG8gYSBudWxsLQ0KPiB0ZXJtaW5hdGVkDQo+ID4gc3RyaW5nIHRoYXQgaXMg dGhlIHZhcmlhYmxlJ3MgbmFtZS4NCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE9uIHJldHVybiwgcG9pbnRzIHRvIHRoZSBuZXh0DQo+ID4gPiArIHZhcmlhYmxl J3MgbnVsbC10ZXJtaW5hdGVkDQo+ID4gbmFtZSBzdHJpbmcuDQo+ID4gPiArICBAcGFyYW1baW4s IG91dF0gICBWYXJpYWJsZUd1aWQgICAgICBPbiBlbnRyeSwgYSBwb2ludGVyIHRvIGFuIEVGSV9H VUlEIHRoYXQNCj4gaXMNCj4gPiB0aGUgdmFyaWFibGUncyBHVUlELg0KPiA+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT24gcmV0dXJuLCBhIHBvaW50ZXIgdG8gdGhl IG5leHQgdmFyaWFibGUncyBHVUlELg0KPiA+ID4gKw0KPiA+ID4gKyAgQHJldHZhbCBFRklfU1VD Q0VTUyAgICAgICAgICAgICAgICAgVGhlIHZhcmlhYmxlIHdhcyByZWFkIHN1Y2Nlc3NmdWxseS4N Cj4gPiA+ICsgIEByZXR2YWwgRUZJX05PVF9GT1VORCAgICAgICAgICAgICAgIFRoZSB2YXJpYWJs ZSBjb3VsZCBub3QgYmUgZm91bmQuDQo+ID4gPiArICBAcmV0dmFsIEVGSV9CVUZGRVJfVE9PX1NN QUxMICAgICAgICBUaGUgVmFyaWFibGVOYW1lU2l6ZSBpcyB0b28gc21hbGwNCj4gZm9yDQo+ID4g dGhlIHJlc3VsdGluZw0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZGF0YS4gVmFyaWFibGVOYW1lU2l6ZSBpcyB1cGRhdGVkIHdpdGggdGhlIHNpemUNCj4gPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkIGZvciB0aGUg c3BlY2lmaWVkIHZhcmlhYmxlLg0KPiA+ID4gKyAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVU RVIgICAgICAgVmFyaWFibGVOYW1lLCBWYXJpYWJsZUd1aWQgb3INCj4gPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlTmFtZVNpemUgaXMgTlVMTC4NCj4g PiA+ICsgIEByZXR2YWwgRUZJX0RFVklDRV9FUlJPUiAgICAgICAgICAgIFRoZSB2YXJpYWJsZSBj b3VsZCBub3QgYmUgcmV0cmlldmVkDQo+ID4gYmVjYXVzZSBvZiBhIGRldmljZSBlcnJvci4NCj4g PiA+ICsNCj4gPiA+ICsqKi8NCj4gPiA+ICt0eXBlZGVmDQo+ID4gPiArRUZJX1NUQVRVUw0KPiA+ ID4gKyhFRklBUEkgKkVES0lJX1BFSV9HRVRfTkVYVF9WQVJJQUJMRV9OQU1FKSgNCj4gPiA+ICsg IElOIENPTlNUICBFREtJSV9QRUlfVkFSSUFCTEVfUFBJICAgICpUaGlzLA0KPiA+ID4gKyAgSU4g T1VUICAgIFVJTlROICAgICAgICAgICAgICAgICAgICAgKlZhcmlhYmxlTmFtZVNpemUsDQo+ID4g PiArICBJTiBPVVQgICAgQ0hBUjE2ICAgICAgICAgICAgICAgICAgICAqVmFyaWFibGVOYW1lLA0K PiA+ID4gKyAgSU4gT1VUICAgIEVGSV9HVUlEICAgICAgICAgICAgICAgICAgKlZhcmlhYmxlR3Vp ZA0KPiA+ID4gKyAgKTsNCj4gPiA+ICsNCj4gPiA+ICsvKioNCj4gPiA+ICsgIFNldHMgdGhlIHZh bHVlIG9mIGEgdmFyaWFibGUuDQo+ID4gPiArDQo+ID4gPiArICBAcGFyYW1baW5dICAgICAgICBU aGlzICAgICAgICAgICAgICBBIHBvaW50ZXIgdG8gdGhpcyBpbnN0YW5jZSBvZiB0aGUNCj4gPiBF REtJSV9QRUlfVkFSSUFCTEVfUFBJLg0KPiA+ID4gKyAgQHBhcmFtW2luXSAgICAgICAgVmFyaWFi bGVOYW1lICAgICAgQSBOdWxsLXRlcm1pbmF0ZWQgc3RyaW5nIHRoYXQgaXMgdGhlIG5hbWUNCj4g PiBvZiB0aGUgdmVuZG9yJ3MgdmFyaWFibGUuDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBFYWNoIFZhcmlhYmxlTmFtZSBpcyB1bmlxdWUgZm9yIGVhY2ggVmVu ZG9yR3VpZC4NCj4gPiBWYXJpYWJsZU5hbWUgbXVzdA0KPiA+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29udGFpbiAxIG9yIG1vcmUgY2hhcmFjdGVycy4NCj4gPiA+ ICsgSWYgVmFyaWFibGVOYW1lIGlzIGFuDQo+ID4gZW1wdHkgc3RyaW5nLA0KPiA+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbiBFRklfSU5WQUxJRF9QQVJBTUVU RVIgaXMgcmV0dXJuZWQuDQo+ID4gPiArICBAcGFyYW1baW5dICAgICAgICBWZW5kb3JHdWlkICAg ICAgICBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgdmVuZG9yLg0KPiA+ID4gKyAgQHBhcmFt W2luXSAgICAgICAgQXR0cmlidXRlcyAgICAgICAgQXR0cmlidXRlcyBiaXRtYXNrIHRvIHNldCBm b3IgdGhlIHZhcmlhYmxlLg0KPiA+ID4gKyAgQHBhcmFtW2luXSAgICAgICAgRGF0YVNpemUgICAg ICAgICAgVGhlIHNpemUgaW4gYnl0ZXMgb2YgdGhlIERhdGEgYnVmZmVyLiBVbmxlc3MNCj4gPiB0 aGUgRUZJX1ZBUklBQkxFX0FQUEVORF9XUklURQ0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGlzIHNldCwgYSBzaXplIG9mDQo+ID4gPiArIHpl cm8gY2F1c2VzIHRoZSB2YXJpYWJsZSB0byBiZQ0KPiA+IGRlbGV0ZWQuIFdoZW4gdGhlDQo+ID4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFRklfVkFSSUFCTEVfQVBQ RU5EX1dSSVRFDQo+ID4gPiArIGF0dHJpYnV0ZSBpcyBzZXQsIHRoZW4gYQ0KPiA+IFNldFZhcmlh YmxlKCkgY2FsbCB3aXRoIGENCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIERhdGFTaXplIG9mIHplcm8gd2lsbCBub3QNCj4gPiA+ICsgY2F1c2UgYW55IGNoYW5n ZSB0byB0aGUNCj4gPiB2YXJpYWJsZSB2YWx1ZS4NCj4gPiA+ICsgIEBwYXJhbVtpbl0gICAgICAg IERhdGEgICAgICAgICAgICAgIFRoZSBjb250ZW50cyBmb3IgdGhlIHZhcmlhYmxlLg0KPiA+ID4g Kw0KPiA+ID4gKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgICAgICAgVGhlIGZpcm13 YXJlIGhhcyBzdWNjZXNzZnVsbHkgc3RvcmVkIHRoZQ0KPiA+IHZhcmlhYmxlIGFuZCBpdHMgZGF0 YSBhcw0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5l ZCBieSB0aGUgQXR0cmlidXRlcy4NCj4gPiA+ICsgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1F VEVSICAgICAgIEFuIGludmFsaWQgY29tYmluYXRpb24gb2YgYXR0cmlidXRlDQo+ID4gYml0cywg bmFtZSwgYW5kIEdVSUQgd2FzIHN1cHBsaWVkLCBvciB0aGUNCj4gPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIERhdGFTaXplIGV4Y2VlZHMgdGhlIG1heGltdW0gYWxs b3dlZC4NCj4gPiA+ICsgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSICAgICAgIFZhcmlh YmxlTmFtZSBpcyBhbiBlbXB0eSBzdHJpbmcuDQo+ID4gPiArICBAcmV0dmFsIEVGSV9PVVRfT0Zf UkVTT1VSQ0VTICAgICAgICBOb3QgZW5vdWdoIHN0b3JhZ2UgaXMgYXZhaWxhYmxlIHRvDQo+ID4g aG9sZCB0aGUgdmFyaWFibGUgYW5kIGl0cyBkYXRhLg0KPiA+ID4gKyAgQHJldHZhbCBFRklfREVW SUNFX0VSUk9SICAgICAgICAgICAgVGhlIHZhcmlhYmxlIGNvdWxkIG5vdCBiZSByZXRyaWV2ZWQg ZHVlDQo+ID4gdG8gYSBoYXJkd2FyZSBlcnJvci4NCj4gPiA+ICsgIEByZXR2YWwgRUZJX1dSSVRF X1BST1RFQ1RFRCAgICAgICAgIFRoZSB2YXJpYWJsZSBpbiBxdWVzdGlvbiBpcyByZWFkLW9ubHku DQo+ID4gPiArICBAcmV0dmFsIEVGSV9XUklURV9QUk9URUNURUQgICAgICAgICBUaGUgdmFyaWFi bGUgaW4gcXVlc3Rpb24gY2Fubm90IGJlDQo+ID4gZGVsZXRlZC4NCj4gPiA+ICsgIEByZXR2YWwg RUZJX1NFQ1VSSVRZX1ZJT0xBVElPTiAgICAgIFRoZSB2YXJpYWJsZSBjb3VsZCBub3QgYmUgd3Jp dHRlbg0KPiBkdWUNCj4gPiB0byBFRklfVkFSSUFCTEVfQVVUSEVOVElDQVRFRF9XUklURV9BQ0NF U1MsDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcg0KPiA+ IEVGSV9WQVJJQUJMRV9USU1FX0JBU0VEX0FVVEhFTlRJQ0FURURfV1JJVEVfQUNDRVNTLCBvcg0K PiA+ID4gKw0KPiA+ID4gKyBFRklfVkFSSUFCTEVfRU5IQU5DRURfQVVUSEVOVElDQVRFRF9BQ0NF U1MNCj4gPiBiZWluZyBzZXQuIFdyaXRpbmcgdG8gYXV0aGVudGljYXRlZA0KPiA+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVzIGlzIG5vdCBzdXBwb3J0 ZWQgaW4gdGhlIFBFSSBlbnZpcm9ubWVudC4NCj4gPiBVcGRhdGVzIHRvIGF1dGhlbnRpY2F0ZWQN Cj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlcyBj YW4gYmUgcmVxdWVzdGVkDQo+ID4gPiArIGR1cmluZyBQRUkgdmlhIHRoZQ0KPiA+IEVGSV9BVVRI RU5USUNBVEVEX1ZBUklBQkxFX0hPQiwgYnV0DQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0aGVzZSB1cGRhdGVzIHdvbid0IGJlDQo+ID4gPiArIHdyaXR0ZW4g dG8gbm9uLXZvbGF0aWxlIHN0b3JhZ2UNCj4gPiB1bnRpbCBsYXRlciBpbiBEWEUuIFNlZQ0KPiA+ ID4gKw0KPiA+ID4gKyBNZGVNb2R1bGVQa2cvSW5jbHVkZS9HdWlkL1ZhcmlhYmxlRm9ybWF0Lmgg Zm9yDQo+ID4gbW9yZSBkZXRhaWxzIG9uDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBFRklfQVVUSEVOVElDQVRFRF9WQVJJQUJMRV9IT0IuDQo+ID4NCj4gPiBb TUtdIEkgZGlkbid0IHNlZSAiRUZJX0FVVEhFTlRJQ0FURURfVkFSSUFCTEVfSE9CIiBtZW50aW9u ZWQgaW4NCj4gPiBWYXJpYWJsZUZvcm1hdC5oLg0KPiA+DQo+ID4gW01LXSBJdCBzZWVtcyB0aGF0 IGlmIGEgY29udHJhY3QgZm9yIHByb2R1Y2luZyBhbmQgdGhlbiBjb25zdW1pbmcgdGhpcw0KPiA+ IEhPQiBpcyBnb2luZyB0byBiZSBkZWZpbmVkIGJldHdlZW4gdGhlIEhPQiBwcm9kdWNlciBhbmQg Y29uc3VtZXINCj4gPiBwaGFzZSwgaXQgc2hvdWxkIGJlIGRlc2NyaWJlZCBpbiBzb21ldGhpbmcg bGlrZSB0aGUgUEkgU3BlYy4NCj4gPg0KPiA+ID4gKyAgQHJldHZhbCBFRklfTk9UX0ZPVU5EICAg ICAgICAgICAgICAgVGhlIHZhcmlhYmxlIHRyeWluZyB0byBiZSB1cGRhdGVkIG9yDQo+ID4gZGVs ZXRlZCB3YXMgbm90IGZvdW5kLg0KPiA+ID4gKw0KPiA+ID4gKyoqLw0KPiA+ID4gK3R5cGVkZWYN Cj4gPiA+ICtFRklfU1RBVFVTDQo+ID4gPiArKEVGSUFQSSAqRURLSUlfUEVJX1NFVF9WQVJJQUJM RSkoDQo+ID4gPiArICBJTiBDT05TVCAgRURLSUlfUEVJX1ZBUklBQkxFX1BQSSAgICAqVGhpcywN Cj4gPiA+ICsgIElOICAgICAgICBDSEFSMTYgICAgICAgICAgICAgICAgICAgICpWYXJpYWJsZU5h bWUsDQo+ID4gPiArICBJTiAgICAgICAgRUZJX0dVSUQgICAgICAgICAgICAgICAgICAqVmVuZG9y R3VpZCwNCj4gPiA+ICsgIElOICAgICAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgIEF0dHJp YnV0ZXMsDQo+ID4gPiArICBJTiAgICAgICAgVUlOVE4gICAgICAgICAgICAgICAgICAgICBEYXRh U2l6ZSwNCj4gPiA+ICsgIElOICAgICAgICBWT0lEICAgICAgICAgICAgICAgICAgICAgICpEYXRh DQo+ID4gPiArICApOw0KPiA+ID4gKw0KPiA+ID4gKy8qKg0KPiA+ID4gKyAgUmV0dXJucyBpbmZv cm1hdGlvbiBhYm91dCB0aGUgVUVGSSB2YXJpYWJsZXMuDQo+ID4gPiArDQo+ID4gPiArICBAcGFy YW1baW5dICAgICAgICBUaGlzICAgICAgICAgICAgICAgICAgICAgICAgICBBIHBvaW50ZXIgdG8g dGhpcyBpbnN0YW5jZSBvZiB0aGUNCj4gPiBFREtJSV9QRUlfVkFSSUFCTEVfUFBJLg0KPiA+ID4g KyAgQHBhcmFtW2luXSAgICAgICAgQXR0cmlidXRlcyAgICAgICAgICAgICAgICAgICAgQXR0cmli dXRlcyBiaXRtYXNrIHRvIHNwZWNpZnkgdGhlIHR5cGUNCj4gPiBvZiB2YXJpYWJsZXMgb24NCj4g PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdo aWNoIHRvIHJldHVybiBpbmZvcm1hdGlvbi4NCj4gPiA+ICsgIEBwYXJhbVtvdXRdICAgICAgIE1h eGltdW1WYXJpYWJsZVN0b3JhZ2VTaXplICAgIE9uIG91dHB1dCB0aGUgbWF4aW11bQ0KPiA+IHNp emUgb2YgdGhlIHN0b3JhZ2Ugc3BhY2UNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGF2YWlsYWJsZSBmb3IgdGhlIEVGSSB2YXJpYWJsZXMg YXNzb2NpYXRlZCB3aXRoDQo+IHRoZQ0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlcyBzcGVjaWZpZWQuDQo+ID4gPiArICBA cGFyYW1bb3V0XSAgICAgICBSZW1haW5pbmdWYXJpYWJsZVN0b3JhZ2VTaXplICBSZXR1cm5zIHRo ZSByZW1haW5pbmcNCj4gc2l6ZQ0KPiA+IG9mIHRoZSBzdG9yYWdlIHNwYWNlDQo+ID4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdmFpbGFibGUg Zm9yIHRoZSBFRkkgdmFyaWFibGVzIGFzc29jaWF0ZWQgd2l0aA0KPiB0aGUNCj4gPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMg c3BlY2lmaWVkLg0KPiA+ID4gKyAgQHBhcmFtW291dF0gICAgICAgTWF4aW11bVZhcmlhYmxlU2l6 ZSAgICAgICAgICAgUmV0dXJucyB0aGUgbWF4aW11bSBzaXplIG9mDQo+ID4gdGhlIGluZGl2aWR1 YWwgRUZJDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB2YXJpYWJsZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBhdHRyaWJ1dGVzDQo+IHNwZWNp ZmllZC4NCj4gPiA+ICsNCj4gPiA+ICsgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFZhbGlkIGFuc3dlciByZXR1cm5lZC4NCj4gPiA+ICsgIEByZXR2YWwg RUZJX0lOVkFMSURfUEFSQU1FVEVSICAgICAgICAgICAgICAgICAgIEFuIGludmFsaWQgY29tYmlu YXRpb24gb2YNCj4gPiBhdHRyaWJ1dGUgYml0cyB3YXMgc3VwcGxpZWQNCj4gPiA+ICsgIEByZXR2 YWwgRUZJX1VOU1VQUE9SVEVEICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBhdHRyaWJ1dGUg aXMgbm90IHN1cHBvcnRlZA0KPiBvbg0KPiA+IHRoaXMgcGxhdGZvcm0sIGFuZCB0aGUNCj4gPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1heGlt dW1WYXJpYWJsZVN0b3JhZ2VTaXplLA0KPiA+ID4gKw0KPiA+ID4gKyBSZW1haW5pbmdWYXJpYWJs ZVN0b3JhZ2VTaXplLA0KPiA+IE1heGltdW1WYXJpYWJsZVNpemUNCj4gPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZSB1bmRlZmluZWQuDQo+ ID4gPiArDQo+ID4gPiArKiovDQo+ID4gPiArdHlwZWRlZg0KPiA+ID4gK0VGSV9TVEFUVVMNCj4g PiA+ICsoRUZJQVBJICpFREtJSV9QRUlfUVVFUllfVkFSSUFCTEVfSU5GTykoDQo+ID4gPiArICBJ TiBDT05TVCAgRURLSUlfUEVJX1ZBUklBQkxFX1BQSSAgICAqVGhpcywNCj4gPiA+ICsgIElOICAg ICAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZXMsDQo+ID4gPiArICBPVVQg ICAgICAgVUlOVDY0ICAgICAgICAgICAgICAgICAgICAqTWF4aW11bVZhcmlhYmxlU3RvcmFnZVNp emUsDQo+ID4gPiArICBPVVQgICAgICAgVUlOVDY0ICAgICAgICAgICAgICAgICAgICAqUmVtYWlu aW5nVmFyaWFibGVTdG9yYWdlU2l6ZSwNCj4gPiA+ICsgIE9VVCAgICAgICBVSU5UNjQgICAgICAg ICAgICAgICAgICAgICpNYXhpbXVtVmFyaWFibGVTaXplDQo+ID4gPiArICApOw0KPiA+ID4gKw0K PiA+ID4gKy8vLw0KPiA+ID4gKy8vLyBQRUkgVmFyaWFibGUgUHJvdG9jb2wgaXMgaW50ZW5kZWQg Zm9yIHVzZSBhcyBhIG1lYW5zDQo+ID4NCj4gPiBbTUtdIFdhcyAiUEVJIFZhcmlhYmxlIFBQSSIg aW50ZW5kZWQ/DQo+ID4NCj4gPiA+ICsvLy8gdG8gc3RvcmUgZGF0YSBpbiB0aGUgUEVJIGVudmly b25tZW50Lg0KPiA+ID4gKy8vLw0KPiA+ID4gK3N0cnVjdCBfRURLSUlfUEVJX1ZBUklBQkxFX1BQ SSB7DQo+ID4gPiArICBFREtJSV9QRUlfR0VUX1ZBUklBQkxFICAgICAgICAgICAgR2V0VmFyaWFi bGU7DQo+ID4gPiArICBFREtJSV9QRUlfR0VUX05FWFRfVkFSSUFCTEVfTkFNRSAgR2V0TmV4dFZh cmlhYmxlTmFtZTsNCj4gPiA+ICsgIEVES0lJX1BFSV9TRVRfVkFSSUFCTEUgICAgICAgICAgICBT ZXRWYXJpYWJsZTsNCj4gPiA+ICsgIEVES0lJX1BFSV9RVUVSWV9WQVJJQUJMRV9JTkZPICAgICBR dWVyeVZhcmlhYmxlSW5mbzsNCj4gPiA+ICt9Ow0KPiA+ID4gKw0KPiA+ID4gK2V4dGVybiBFRklf R1VJRCAgZ0Vka2lpUGVpVmFyaWFibGVQcGlHdWlkOw0KPiA+ID4gKw0KPiA+ID4gKyNlbmRpZg0K PiA+ID4gZGlmZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9NZGVNb2R1bGVQa2cuZGVjDQo+ID4gYi9N ZGVNb2R1bGVQa2cvTWRlTW9kdWxlUGtnLmRlYw0KPiA+ID4gaW5kZXggMmJjYjlmOTQ1My4uNGY0 YzQ4YjgxZiAxMDA2NDQNCj4gPiA+IC0tLSBhL01kZU1vZHVsZVBrZy9NZGVNb2R1bGVQa2cuZGVj DQo+ID4gPiArKysgYi9NZGVNb2R1bGVQa2cvTWRlTW9kdWxlUGtnLmRlYw0KPiA+ID4gQEAgLTUx Myw2ICs1MTMsOSBAQA0KPiA+ID4gICAgIGdFZGtpaVBlaUNhcHN1bGVPbkRpc2tQcGlHdWlkICAg ICAgICAgICAgID0geyAweDcxYTllYTYxLCAweDVhMzUsIDB4NGE1ZCwNCj4gPiB7IDB4YWMsIDB4 ZWYsIDB4OWMsIDB4ZjgsIDB4NmQsIDB4NmQsIDB4NjcsIDB4ZTAgfSB9DQo+ID4gPiAgICAgZ0Vk a2lpUGVpQm9vdEluQ2Fwc3VsZU9uRGlza01vZGVQcGlHdWlkICAgPSB7IDB4YjA4YTExZTQsIDB4 ZTJiNywNCj4gPiAweDRiNzUsIHsgMHhiNSwgMHgxNSwgMHhhZiwgMHg2MSwgMHg2LCAweDY4LCAw eGJmLCAweGQxICB9IH0NCj4gPiA+DQo+ID4gPiArICAjIyBJbmNsdWRlL1BwaS9WYXJpYWJsZS5o DQo+ID4gPiArICBnRWRraWlQZWlWYXJpYWJsZVBwaUd1aWQgICAgICAgICAgICAgICAgICA9IHsg MHhlN2IyY2QwNCwgMHg0YjE0LCAweDQ0YzIsIHsgMHhiNywNCj4gPiAweDQ4LCAweGNlLCAweGFm LCAweDJiLCAweDY2LCAweDRhLCAweGIwIH0gfQ0KPiA+ID4gKw0KPiA+ID4gICBbUHJvdG9jb2xz XQ0KPiA+ID4gICAgICMjIExvYWQgRmlsZSBwcm90b2NvbCBwcm92aWRlcyBjYXBhYmlsaXR5IHRv IGxvYWQgYW5kIHVubG9hZCBFRkkNCj4gPiA+IGltYWdlIGludG8NCj4gPiBtZW1vcnkgYW5kIGV4 ZWN1dGUgaXQuDQo+ID4gPiAgICAgIyAgSW5jbHVkZS9Qcm90b2NvbC9Mb2FkUGUzMkltYWdlLmgN Cj4gPg0KPiA+DQo+ID4gDQo+ID4NCg0K