From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mx.groups.io with SMTP id smtpd.web11.56410.1670351894676463173 for ; Tue, 06 Dec 2022 10:38:14 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=Jdu2s/lI; spf=pass (domain: intel.com, ip: 192.55.52.120, mailfrom: zachary.clark-williams@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1670351894; x=1701887894; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=br+wzuWt5edeYrz7/cgVhMs9kseI62ZVLr5F+2V9cDk=; b=Jdu2s/lI/tCehLiWsk9DAzYyzWZ1iHNJf2UhQ+uXBywJkmMrflITeu8K fiITd3wYToSVzpCw10UOKqgiMDpFDfelwa80rUrsnZm4m71qH7A2ciTgT ZDJt1g5Z2noQBrsVLklGCXotBWfgOoq/ujAZ70WrlLOU9oWQWjUbLeJQ/ 5sU9eSXVMSPz/CZZ5nTY5NCzEkw6LLbbNJIe/ayFpco3m3XIS76eCpJXr TZfbxD/pXigmbmQxh2HUBsmfdUVJNBZgnQqvsFSUNDk+vu+D7gbqqPFTI g7IDmRyfPwCP990iYYT5bY1VINCKPicaGNUa16GcSo1WAa5QR3pto2b8P Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10553"; a="315410299" X-IronPort-AV: E=Sophos;i="5.96,223,1665471600"; d="scan'208";a="315410299" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Dec 2022 10:38:13 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10553"; a="677072869" X-IronPort-AV: E=Sophos;i="5.96,223,1665471600"; d="scan'208";a="677072869" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga008.jf.intel.com with ESMTP; 06 Dec 2022 10:38:13 -0800 Received: from orsmsx602.amr.corp.intel.com (10.22.229.15) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Tue, 6 Dec 2022 10:38:13 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) 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.16 via Frontend Transport; Tue, 6 Dec 2022 10:38:13 -0800 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.172) 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.16; Tue, 6 Dec 2022 10:38:12 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jR+cK1W3WJFZYaBmsiR2cR4r/hYlkbw7c6FV44pyWSMnhgEUhPQDZCBGi4V1B8wuqI56aPgh3JdW7Oq0hUNJql0issfC8Asj8D3iyK/hx1XgQXNp1SaqJe1jnpmW3dVnuxC3LoiwmrxM8pJ9a6/fPtkzubm0Rj2wHzcK6Vwt2olFoX9uPEsFPPy3NFEHJGDybb+mh3js2T6IA/2bfqOhZFq+vnWEzPuVEB9Vle5roV2SbyKc1RLCCoNI/HD/a/BoxwCJ+PeZlSRLfjzj0mVTnYgm12IHwiRdZB2g3m985RYOh87BHUuY4EkIEHhhrc7lyQWcf6YJcAhMkcbjQlHqdw== 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=br+wzuWt5edeYrz7/cgVhMs9kseI62ZVLr5F+2V9cDk=; b=gukFnc8GrlwM8f3nQ4M1Cs7ysf/ooAMBsMj3D/js407qNkz+yJbX9CT7uyDLyEF9mp7Ij8cxc2dMDW7cLWCl+Fz+oV/DF96logvuc/aAFyvwfbDsKq6Nlge17MsDYM45VcVPY05lOhqILwTq9ntStyPPwxAMJvBRFKSh1k4YgVPrbXkA5hLebjDNPsgXjuGmJ76crzrAQ/SpCmNeRriVv4u278YtizGZJKgeRVLvxI6fzbQ/ziDqY+HmdpqvhKDegIP0uTj01AHG2jIpPblK58+pnvRqWZ5UlrBnWz7m6CY5l3dRzlsb5IyHnye0zlcbBmBEJ4Py3pdRDI5euaFV9w== 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 CO6PR11MB5601.namprd11.prod.outlook.com (2603:10b6:303:13d::7) by BL3PR11MB6529.namprd11.prod.outlook.com (2603:10b6:208:38c::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5880.14; Tue, 6 Dec 2022 18:38:09 +0000 Received: from CO6PR11MB5601.namprd11.prod.outlook.com ([fe80::c0cb:1048:4a2a:789a]) by CO6PR11MB5601.namprd11.prod.outlook.com ([fe80::c0cb:1048:4a2a:789a%7]) with mapi id 15.20.5880.014; Tue, 6 Dec 2022 18:38:09 +0000 From: "Clark-williams, Zachary" To: "devel@edk2.groups.io" , "Clark-williams, Zachary" , "Rabeda, Maciej" , "Zimmer, Vincent" , "Luo, Heng" , "Kuo, Scottie" , "Kuo, Ted" , "Dutkiewicz, Michal" , "Wu, Jiaxin" , "Otcheretianski, Andrei" , "Kasbekar, Saloni" , "Kinney, Michael D" CC: "Alappat, Paul" , "Patil, Ajit" Subject: Re: [edk2-devel] [PATCH v4] NetworkPkg/WifiProfileSync: Add WiFi profile sync protocol support Thread-Topic: [edk2-devel] [PATCH v4] NetworkPkg/WifiProfileSync: Add WiFi profile sync protocol support Thread-Index: AQHY6jr1YBx+4nENxEWJqUx5LJQFoa4iq1aAgAGR5jCAAADHwIAEq9RQgAAdggCAAVFMoIAABJAAgAAAR5CAAT0igIAAN+MwgDWcboA= Date: Tue, 6 Dec 2022 18:38:09 +0000 Message-ID: References: <9102518d297546d349e9dcbaf9a87706ec8529e0.1664830666.git.zachary.clark-williams@intel.com> <1723CFBA04C671AE.15522@groups.io> In-Reply-To: <1723CFBA04C671AE.15522@groups.io> 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: CO6PR11MB5601:EE_|BL3PR11MB6529:EE_ x-ms-office365-filtering-correlation-id: cb7ceae5-9c70-4811-c0c3-08dad7b905ea x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Wd3EI4g0B7NMl+KZZi3iVdAyssZmHrmdrNHbhlZYG4OBIO4cai8WoT3NTujR60fMl2jhWiLEsYqnFWrt01+e/Ume4lIBXIXiKkjnHxfrFxwjkRZzQjFXxNnoRMS6K8awHUaqQUpyiy7EmF8+/We2uFtwAe0sJI0huOBigxIc82FQnG7Mk29EzRI6QMTq6cyw9ik6tIM9nvRzWQFSdAB0FqCTyozLxGfm7BNjDtuzNrU457l0JxupQIva/mHuAM3SJBCnYpUDcHDVbcKSsk/ksF2Mz3r5IBNfRwJewXtm+X/M2igh9l0sKay54RZ2U+KDDR9EQ5vw8so804dhRQ5hZ8Rh/e1ILVM4vE/+t+2sgU9en6RBVT6pN6mFOIYrZVy5J2hJOVYv3z54eFOk2TqHONkMdogz8wss/ks2gEcS59MozDPDZE++sJtJ839yEMu6fSyCp8PQOd1BLqza+eqeICYa2N/fR64Yjf9Hda5m8bKQ3D9S/VDR8Bc5rsSVgvOVKwUdKAZaQVGBW0XlYfGZWzgdEl+USLoueysSpkLmvmP09f/w+/AWz+NK1R2xCNk0b9TqHVQzdPkncxdz9T8HMgTKZbKnUVqAID+9BNOqXZhsQReyKpE+Xg7PWEWHkC+BPV3ERNO0KHJn+SbA160JN0MojyBMDo0oOn8wawN81tMhSryXk2pG4wIKEAuVrlUjq05CKWXTyDrLebfZ9sPjJVD1RtwgJcPo12h7hz2mixPdjntyuFRyEEQizPuNzbdVJJKXyepofbuxQV+/csPCecxtIy3H8elpHNa6qDxmZE/OLlFjDNkSlaSPuZRt2y8f x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO6PR11MB5601.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(6029001)(346002)(136003)(366004)(376002)(39860400002)(396003)(451199015)(8676002)(4326008)(6506007)(7696005)(55016003)(110136005)(71200400001)(83380400001)(54906003)(6636002)(33656002)(38100700002)(316002)(5660300002)(26005)(9686003)(30864003)(66476007)(66556008)(66946007)(64756008)(76116006)(19627235002)(66446008)(921005)(38070700005)(2906002)(52536014)(8936002)(186003)(53546011)(82960400001)(41300700001)(66899015)(107886003)(86362001)(966005)(478600001)(122000001)(579004)(559001)(44824005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SXQ1OGFaMTV0cHUvWVBFYktOQk1vQU9CVmtEUzFuSDlWVHlYYVlpaVV4OW1H?= =?utf-8?B?OXhVZEcvZThwTnRIbkQ3Z29uZ0Vzc2NUelhJME1aUDlaMFFxMlJmTTJYbUhO?= =?utf-8?B?Wi9tb0ZvWE0zUFdBeGtLNWNHOXdQN2pnaE5rN1QrQnFabXhqSWNhcnhoWlhl?= =?utf-8?B?KzR2MElPVHRTK01WSGYxelRvNUtBSkwwUkNsRENySWMyNEJCcFpJNlo0eWhT?= =?utf-8?B?Nm1uSm5idlhkVUUvTlREYnhsYmYyeVJNQW9iT3ZoOTlweEdEbEpDNTlUTll2?= =?utf-8?B?djh6UTNFV3RraFBnMEpPTW9acDBxeDVYSW1oS2lIR1RZY1hOZkVSRWcxaVNI?= =?utf-8?B?NFdHSElyUWVua04yeTJKM0tISWFpQnljdjJ4N293dld5VDVRYTZpVXVrSEZ2?= =?utf-8?B?dWhQSDg3Vzl2RHRBMGZxN05vWW9mZ2JQSXI4MENNd284MlpzYm1ZTVZXQTdN?= =?utf-8?B?RFQ5OTd2ZmZGMW02dEhtT0YvdlJoV1pmb240YVg2UWVWOTB1a3NiekQzbWFE?= =?utf-8?B?UnE5MmQxbEZkL250ZTFWeFdHYVBJNXBmMExYcytDS05MZXZmY1MxZlBKQ01M?= =?utf-8?B?aitWdnp3aDFYbTlDZlh1Y21GRW9XbDUxUmUvSnE1b3JnN1crOTBYWjhxWmw4?= =?utf-8?B?bTVybEprRkx3eVp4V005WVRxUEEwOVV2NWtGUlZvZ1ZxWVRKVXFEcVBGZ3Nj?= =?utf-8?B?TnZDNGJMSGxIQnpyM2Y3SkZ6bkUxUFBOc0xmNGRxUFZjdG5rZ2VwVm5mZnFs?= =?utf-8?B?dkg2MEZCdTB6allHbmhtOU50UWxMVWhXdXpyZnpEQ1Y5b1FsajlQb2V0RU9W?= =?utf-8?B?OGpwaXFQS0E4Z1NaUWRoSUplQXpaU0g3TXVtaVcvK0FQUVNWcTR6aTZqSjJY?= =?utf-8?B?eDlNTmtQc1hWWHFiWldvc2hSM25zOHdtVmNaaEhmbTRUT1ExcG1nU3llZGRj?= =?utf-8?B?VmZIM0JpZThUNTBhZ3FFYVBSVWR4ZFl5MU96NUo3TzNSVzdlaURkQi9SK2d2?= =?utf-8?B?V2NrY3owWERMSGRnSHFudk5JS00vOTl4S3d6bno3MWlPNHJqSnlPSHZSSmlN?= =?utf-8?B?dGdaZ3VBOWZxRXhjOU1zUlRTNkI5ekpiZ2F2SGl6MXB1VGt2RnhuM1U4Um9S?= =?utf-8?B?dVdWcjZFdlBidU5vQ21JekZzVHdiWDc3b2NZR0JDZVdaa0w5RnZFR1AweWRR?= =?utf-8?B?MFhyU2o4NnpMSDA3aTNUUURleE5CMk9zTDdocDRzMWxZQ05Qc29BdkJRNzlq?= =?utf-8?B?UVlhcktMdEpJS05qUWM4d2UwcjZQL01Cc3hvNjNyNFVmRkVlWXUxMitBZlFl?= =?utf-8?B?emZOVlhBUlFZekY2QU9JQW1sN0J4SmpEOGNqREdZU2IrUFNub3hMcy9Pb05h?= =?utf-8?B?Q2pGdHFtYUM2bHJvZkhUYkJRUHl4RjgzK1NGYkR2S0gyRGxkSndlVFRScVJw?= =?utf-8?B?aTF5cTllUUNDK0RLMWVzc1ZxdG5Scm9lVzlPQndia1BTVklhZUVhd2FabytD?= =?utf-8?B?eU5WK2NMVUpPRk9TNTVtMDZuNFBPOWNhejFsOUpXN25TZmlWQWVvaFdtMElJ?= =?utf-8?B?UURQZ1NDQXZaZFJ3VXA1MmVzMS9FbmpIS3JyRmp5b3NTVVVPTElhZTl4cUcy?= =?utf-8?B?MGN6OXpBU2haK2h2TDA3azhIU0s1cmZ3dThDcXFKdGpDZTMwdTRYNTdMVEUw?= =?utf-8?B?ZTNCR1FOZ2E1WDUrOHo0RXVDdkt0RHBvUmhMMkJtQnNValVKYmNiaFBDalJJ?= =?utf-8?B?R1NMRXVRdVYzQ28xZGxFQWFTY1VhUDZDNWRPWENuY2NKTjNnTjRSZVFTTDRt?= =?utf-8?B?WjBXQzNTcXVocHJuZEZsMlo5a0RNUlBYRnkvRGxLZXFIMGp2SUZPSWhKRlpy?= =?utf-8?B?YVdGeTh2SDNoRjIzZlV5NlFzMHl4bzJsYnZMV0FCMEJJMGh5OFlXd1diQWor?= =?utf-8?B?NHZaaXhGSWdxdmhvVll0SmxCbWVhcjlNRC9LaWszV09ROFlTUURzcXpMT1M4?= =?utf-8?B?RUt4c3FTYlIvZGZqelBPbW5CYlRVTCtwbFVQU1poYzM1MC9lRzJ4YmlpL0Jh?= =?utf-8?B?clcvbnBUcHMzYnJuUkhCWDVPeDFQRkdpZDNLN0FReWhiTFhIVXlEQlJFWFE1?= =?utf-8?B?WDVueWJ4NE8relZoK0RWT3NZazJ1OGhUUC9NdTBqei83Wm1FK2cvYTJXNHVz?= =?utf-8?Q?fBJpBGDtlhMApruQ5SxB5CU=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO6PR11MB5601.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: cb7ceae5-9c70-4811-c0c3-08dad7b905ea X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Dec 2022 18:38:09.4070 (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: 8eBNqiZALGrFKVt7wCCyqkIIWwV/aIz9noFKeJCaNt6FohM3qZGO/eLiRfMwNEMLu4q1CzA4nLVeHVVwkRRjyvhwS92NzZjzqhXHJzfzlqGNjZVVu967+3IXtFHXgGCS X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR11MB6529 Return-Path: zachary.clark-williams@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGV5IE1hY2llaiBhbmQgQWxsLA0KDQpJcyB0aGVyZSBhbnkgdXBkYXRlIGluIGFiaWxpdHkgdG8g cmV2aWV3IHRoaXMgcGF0Y2ggZm9yIFdpZmkgUHJvZmlsZSBTeW5jIFByb3RvY29sIGFuZCBXaWZp IENvbm5lY3Rpb24gTWFuYWdlcj8NCg0KVGhhbmsgeW91LA0KWmFjaw0KDQotLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3Jv dXBzLmlvPiBPbiBCZWhhbGYgT2YgQ2xhcmstd2lsbGlhbXMsIFphY2hhcnkNClNlbnQ6IFdlZG5l c2RheSwgTm92ZW1iZXIgMiwgMjAyMiA4OjU4IEFNDQpUbzogUmFiZWRhLCBNYWNpZWogPG1hY2ll ai5yYWJlZGFAaW50ZWwuY29tPjsgWmltbWVyLCBWaW5jZW50IDx2aW5jZW50LnppbW1lckBpbnRl bC5jb20+OyBMdW8sIEhlbmcgPGhlbmcubHVvQGludGVsLmNvbT47IEt1bywgU2NvdHRpZSA8c2Nv dHRpZS5rdW9AaW50ZWwuY29tPjsgS3VvLCBUZWQgPHRlZC5rdW9AaW50ZWwuY29tPjsgRHV0a2ll d2ljeiwgTWljaGFsIDxtaWNoYWwuZHV0a2lld2ljekBpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdy b3Vwcy5pbzsgV3UsIEppYXhpbiA8amlheGluLnd1QGludGVsLmNvbT47IE90Y2hlcmV0aWFuc2tp LCBBbmRyZWkgPGFuZHJlaS5vdGNoZXJldGlhbnNraUBpbnRlbC5jb20+OyBLYXNiZWthciwgU2Fs b25pIDxzYWxvbmkua2FzYmVrYXJAaW50ZWwuY29tPjsgS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hh ZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KQ2M6IEFsYXBwYXQsIFBhdWwgPHBhdWwuYWxhcHBhdEBp bnRlbC5jb20+OyBQYXRpbCwgQWppdCA8YWppdC5wYXRpbEBpbnRlbC5jb20+DQpTdWJqZWN0OiBS ZTogW2VkazItZGV2ZWxdIFtQQVRDSCB2NF0gTmV0d29ya1BrZy9XaWZpUHJvZmlsZVN5bmM6IEFk ZCBXaUZpIHByb2ZpbGUgc3luYyBwcm90b2NvbCBzdXBwb3J0DQoNCkhleSBNYWNpZWosDQoNCkkg Y2FuIHVuZGVyc3RhbmQgdGhhdCBhbmQgYXBwcmVjaWF0ZSB0aGUgYXR0ZW50aW9uIHlvdSBjYW4g c3BhcmUgZm9yIHJldmlld2luZyB0aGlzIGNoYW5nZS4gDQpJZiB0aGVyZSBhcmUgYW55IHBlZXJz IHlvdSBrbm93IHdobyBjYW4vd2lsbCB3YW50IHRvIHJldmlldyBvciBoYXZlIHZhbHVhYmxlIGlu cHV0IG9uIHRoaXMgUFIgcGxlYXNlIGZlZWwgZnJlZSB0byBzZW5kIHRoZW0gYW4gaW52aXRlIHRv IHJldmlldy4NCg0KVGhhbmtzLA0KWmFjaw0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K RnJvbTogUmFiZWRhLCBNYWNpZWogPG1hY2llai5yYWJlZGFAaW50ZWwuY29tPg0KU2VudDogV2Vk bmVzZGF5LCBOb3ZlbWJlciAyLCAyMDIyIDU6MzUgQU0NClRvOiBDbGFyay13aWxsaWFtcywgWmFj aGFyeSA8emFjaGFyeS5jbGFyay13aWxsaWFtc0BpbnRlbC5jb20+OyBaaW1tZXIsIFZpbmNlbnQg PHZpbmNlbnQuemltbWVyQGludGVsLmNvbT47IEx1bywgSGVuZyA8aGVuZy5sdW9AaW50ZWwuY29t PjsgS3VvLCBTY290dGllIDxzY290dGllLmt1b0BpbnRlbC5jb20+OyBLdW8sIFRlZCA8dGVkLmt1 b0BpbnRlbC5jb20+OyBEdXRraWV3aWN6LCBNaWNoYWwgPG1pY2hhbC5kdXRraWV3aWN6QGludGVs LmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBXdSwgSmlheGluIDxqaWF4aW4ud3VAaW50ZWwu Y29tPjsgT3RjaGVyZXRpYW5za2ksIEFuZHJlaSA8YW5kcmVpLm90Y2hlcmV0aWFuc2tpQGludGVs LmNvbT47IEthc2Jla2FyLCBTYWxvbmkgPHNhbG9uaS5rYXNiZWthckBpbnRlbC5jb20+OyBLaW5u ZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQpDYzogQWxhcHBhdCwg UGF1bCA8cGF1bC5hbGFwcGF0QGludGVsLmNvbT47IFBhdGlsLCBBaml0IDxhaml0LnBhdGlsQGlu dGVsLmNvbT4NClN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENIIHY0XSBOZXR3b3JrUGtn L1dpZmlQcm9maWxlU3luYzogQWRkIFdpRmkgcHJvZmlsZSBzeW5jIHByb3RvY29sIHN1cHBvcnQN Cg0KQEtpbm5leSwgTWljaGFlbCBEDQpXaXRoIHRoZSBhbW91bnQgb2Ygd29yayBhcm91bmQgSVBV cywgSSBjYW4gaGFyZGx5IHNwYXJlIHRpbWUgKG1heWJlIDJoL3dlZWsgb24gYXZlcmFnZSAtIGlu Y2x1ZGluZyBjb2RlKS4NCk15IHRpbWUgZm9yIEVESzIgaXMgY3VycmVudGx5IGZ1bGx5IGFsbG9j YXRlZCB0bzoNCjEuIGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRrMi1zdGFnaW5nL3Ry ZWUvSHR0cFByb3h5IChAS2FzYmVrYXIsIFNhbG9uaSkgMi4gTlZNZS1vRiBib290IHByb3RvdHlw ZSB1bmRlciBudm1lLm9yZyB1bWJyZWxsYSAoQFppbW1lciwgVmluY2VudCkNCg0KQENsYXJrLXdp bGxpYW1zLCBaYWNoYXJ5DQpZb3VyIHBhdGNoIGlzIG5vbi10cml2aWFsIGFuZCByZXF1aXJlcyB1 bmRlcnN0YW5kaW5nIG9uIG15IHNpZGUuIEJhc2VkIG9uIHRoYXQgYW5kIHRoZSBhYm92ZSwgdGhp cyB3aWxsIHRha2UgdGltZS4NCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IENs YXJrLXdpbGxpYW1zLCBaYWNoYXJ5IDx6YWNoYXJ5LmNsYXJrLXdpbGxpYW1zQGludGVsLmNvbT4N ClNlbnQ6IFR1ZXNkYXksIE5vdmVtYmVyIDEsIDIwMjIgNjo0MSBQTQ0KVG86IFppbW1lciwgVmlu Y2VudCA8dmluY2VudC56aW1tZXJAaW50ZWwuY29tPjsgUmFiZWRhLCBNYWNpZWogPG1hY2llai5y YWJlZGFAaW50ZWwuY29tPjsgTHVvLCBIZW5nIDxoZW5nLmx1b0BpbnRlbC5jb20+OyBLdW8sIFNj b3R0aWUgPHNjb3R0aWUua3VvQGludGVsLmNvbT47IEt1bywgVGVkIDx0ZWQua3VvQGludGVsLmNv bT47IER1dGtpZXdpY3osIE1pY2hhbCA8bWljaGFsLmR1dGtpZXdpY3pAaW50ZWwuY29tPjsgZGV2 ZWxAZWRrMi5ncm91cHMuaW87IFd1LCBKaWF4aW4gPGppYXhpbi53dUBpbnRlbC5jb20+OyBPdGNo ZXJldGlhbnNraSwgQW5kcmVpIDxhbmRyZWkub3RjaGVyZXRpYW5za2lAaW50ZWwuY29tPg0KQ2M6 IEFsYXBwYXQsIFBhdWwgPHBhdWwuYWxhcHBhdEBpbnRlbC5jb20+OyBLYXNiZWthciwgU2Fsb25p IDxzYWxvbmkua2FzYmVrYXJAaW50ZWwuY29tPjsgUGF0aWwsIEFqaXQgPGFqaXQucGF0aWxAaW50 ZWwuY29tPg0KU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggdjRdIE5ldHdvcmtQa2cv V2lmaVByb2ZpbGVTeW5jOiBBZGQgV2lGaSBwcm9maWxlIHN5bmMgcHJvdG9jb2wgc3VwcG9ydA0K DQpHcmVhdCB0aGFuayB5b3UgVmluY2VudCwgSSB3aWxsIGFkZCB0aGVtIHRvIHRoZSBwcm90b2Nv bCBoZWFkZXIgZmlsZSBhbmQgc2VuZCBhbiB1cGRhdGVkIHBhdGNoIHRvZGF5Lg0KDQotLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogWmltbWVyLCBWaW5jZW50IDx2aW5jZW50LnppbW1l ckBpbnRlbC5jb20+DQpTZW50OiBUdWVzZGF5LCBOb3ZlbWJlciAxLCAyMDIyIDEwOjM5IEFNDQpU bzogQ2xhcmstd2lsbGlhbXMsIFphY2hhcnkgPHphY2hhcnkuY2xhcmstd2lsbGlhbXNAaW50ZWwu Y29tPjsgUmFiZWRhLCBNYWNpZWogPG1hY2llai5yYWJlZGFAaW50ZWwuY29tPjsgTHVvLCBIZW5n IDxoZW5nLmx1b0BpbnRlbC5jb20+OyBLdW8sIFNjb3R0aWUgPHNjb3R0aWUua3VvQGludGVsLmNv bT47IEt1bywgVGVkIDx0ZWQua3VvQGludGVsLmNvbT47IER1dGtpZXdpY3osIE1pY2hhbCA8bWlj aGFsLmR1dGtpZXdpY3pAaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW87IFd1LCBKaWF4 aW4gPGppYXhpbi53dUBpbnRlbC5jb20+OyBPdGNoZXJldGlhbnNraSwgQW5kcmVpIDxhbmRyZWku b3RjaGVyZXRpYW5za2lAaW50ZWwuY29tPg0KQ2M6IEFsYXBwYXQsIFBhdWwgPHBhdWwuYWxhcHBh dEBpbnRlbC5jb20+OyBLYXNiZWthciwgU2Fsb25pIDxzYWxvbmkua2FzYmVrYXJAaW50ZWwuY29t PjsgUGF0aWwsIEFqaXQgPGFqaXQucGF0aWxAaW50ZWwuY29tPg0KU3ViamVjdDogUkU6IFtlZGsy LWRldmVsXSBbUEFUQ0ggdjRdIE5ldHdvcmtQa2cvV2lmaVByb2ZpbGVTeW5jOiBBZGQgV2lGaSBw cm9maWxlIHN5bmMgcHJvdG9jb2wgc3VwcG9ydA0KDQpUaGF0J3MgZ3JlYXQNCklmIHRoZXNlIGxp bmtzIGFyZSBub3QgYWxyZWFkeSBpbiB0aGUgLmggZmlsZXMgb2YgdGhlIHBhdGNoIEknZCBhZGQg dGhlbS4NClR5cGljYWxseSB0aGUgdWVmaSBuZXR3b3JraW5nIGNvZGUgbGV2ZXJhZ2VzIHVlZmkg c3BlYyBvciBpZXRmIHJmYydzIG9yIG90aGVyIHB1YmxpYyBjb2xsYXRlcmFsLiAgTGV0dGluZyBm b2xrcyBrbm93IHRoZSBiYWNrZ3JvdW5kIG9mIHRoZXNlIGludGVyZmFjZXMgd2l0aCBhIHJlZmVy ZW5jZSBzaG91bGQgaGVscCBjb25zdW1lcnMgSU1ITyBWaW5jZW50DQoNCi0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQpGcm9tOiBDbGFyay13aWxsaWFtcywgWmFjaGFyeSA8emFjaGFyeS5jbGFy ay13aWxsaWFtc0BpbnRlbC5jb20+DQpTZW50OiBUdWVzZGF5LCBOb3ZlbWJlciAxLCAyMDIyIDEw OjM1IEFNDQpUbzogWmltbWVyLCBWaW5jZW50IDx2aW5jZW50LnppbW1lckBpbnRlbC5jb20+OyBS YWJlZGEsIE1hY2llaiA8bWFjaWVqLnJhYmVkYUBpbnRlbC5jb20+OyBMdW8sIEhlbmcgPGhlbmcu bHVvQGludGVsLmNvbT47IEt1bywgU2NvdHRpZSA8c2NvdHRpZS5rdW9AaW50ZWwuY29tPjsgS3Vv LCBUZWQgPHRlZC5rdW9AaW50ZWwuY29tPjsgRHV0a2lld2ljeiwgTWljaGFsIDxtaWNoYWwuZHV0 a2lld2ljekBpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgV3UsIEppYXhpbiA8amlh eGluLnd1QGludGVsLmNvbT47IE90Y2hlcmV0aWFuc2tpLCBBbmRyZWkgPGFuZHJlaS5vdGNoZXJl dGlhbnNraUBpbnRlbC5jb20+DQpDYzogQWxhcHBhdCwgUGF1bCA8cGF1bC5hbGFwcGF0QGludGVs LmNvbT47IEthc2Jla2FyLCBTYWxvbmkgPHNhbG9uaS5rYXNiZWthckBpbnRlbC5jb20+OyBQYXRp bCwgQWppdCA8YWppdC5wYXRpbEBpbnRlbC5jb20+DQpTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxd IFtQQVRDSCB2NF0gTmV0d29ya1BrZy9XaWZpUHJvZmlsZVN5bmM6IEFkZCBXaUZpIHByb2ZpbGUg c3luYyBwcm90b2NvbCBzdXBwb3J0DQoNCkhleSBWaW5jZW50LA0KDQpUaGUgZG9jdW1lbnRhdGlv biBmb3IgZGVzY3JpYmluZyB0aGUgZmVhdHVyZXMgaW4gdGhlIFBSIGRlc2NyaXB0aW9uIGNhbiBi ZSBmb3VuZCBpbiB0aGUgQ1NNRSBkb2N1bWVudGF0aW9uIGZvdW5kIG9uIHRoZSBwdWJsaWMgYWNj ZXNzaWJsZSBpbnRlbCBsaW5rIGJlbG93Lg0KDQpPQ1IgLSBodHRwczovL3NvZnR3YXJlLmludGVs LmNvbS9zaXRlcy9tYW5hZ2VhYmlsaXR5L0FNVF9JbXBsZW1lbnRhdGlvbl9hbmRfUmVmZXJlbmNl X0d1aWRlL2RlZmF1bHQuaHRtP3R1cmw9V29yZERvY3VtZW50cyUyRm9uZWNsaWNrcmVjb3Zlcnku aHRtDQoNCktWTSAtIGh0dHBzOi8vc29mdHdhcmUuaW50ZWwuY29tL3NpdGVzL21hbmFnZWFiaWxp dHkvQU1UX0ltcGxlbWVudGF0aW9uX2FuZF9SZWZlcmVuY2VfR3VpZGUvZGVmYXVsdC5odG0/dHVy bD1Xb3JkRG9jdW1lbnRzJTJGb25lY2xpY2tyZWNvdmVyeS5odG0NCg0KVGhhbmtzLA0KWmFjaw0K DQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogWmltbWVyLCBWaW5jZW50IDx2aW5j ZW50LnppbW1lckBpbnRlbC5jb20+DQpTZW50OiBNb25kYXksIE9jdG9iZXIgMzEsIDIwMjIgMjox NiBQTQ0KVG86IENsYXJrLXdpbGxpYW1zLCBaYWNoYXJ5IDx6YWNoYXJ5LmNsYXJrLXdpbGxpYW1z QGludGVsLmNvbT4NClN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENIIHY0XSBOZXR3b3Jr UGtnL1dpZmlQcm9maWxlU3luYzogQWRkIFdpRmkgcHJvZmlsZSBzeW5jIHByb3RvY29sIHN1cHBv cnQNCg0KUXVpY2sgcXVlc3Rpb24NCg0KQXJlIHRoZSBmZWF0dXJlcyBkZXNjcmliZWQgaW4gIiBF bmFibGVzIEtWTSBhbmQgT25lIENsaWNrIFJlY292ZXJ5IFdMQU4gY2FwYWJpbGl0eSB3aXRoIFdp RmkgUHJvZmlsZSBTeW5jIGZlYXR1cmUgYW5kIHByb3RvY29sLiBBZGRpbmcgV2lGaVByb2ZpbGVT eW5jUHJvdG9jb2wsIHdoaWNoIHN1cHBvcnRzIHRoZSBwcm9maWxlc3luYyBkcml2ZXIgb3BlcmF0 aW9ucyBmb3IgdHJhbnNmZXJyaW5nIFdpRmkgcHJvZmlsZXMgZnJvbSBBTVQgdG8gdGhlIFN1cHBs aWNhbnQuIFdpRmlDb25uZWN0aW9uTWFuYWdlciB3aWxsIGNoZWNrIGZvciB0aGUgV2lmaVByb2Zp bGVTeW5jUHJvdG9jb2wgYW5kIGlmIGZvdW5kIHdpbGwgb3BlcmF0ZSBvbiB0aGUgcHJlbWlzZSBv ZiBhIE9uZSBDbGljayBSZWNvdmVyeSwgb3IgS1ZNIGZsb3cgd2l0aCBhIFdpZmkgcHJvZmlsZSBw cm92aWRlZCBieSBBTVQuIiBpbiBhIHB1YmxpYyBkb2N1bWVudD8gIFRoaW5ncyBsaWtlIGNvbmNl cHQgb2YgcHJvZmlsZSBzeW5jPyAgSSdtIGd1ZXNzaW5nIHRoZXkgYXJlIHNpbmNlIExpbnV4IHBy b2JhYmx5IGRvZXMgdGhlIHNhbWUgaW4gdGhlIGludGVsIGl3bCBkcml2ZXI/DQoNClZpbmNlbnQN Cg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlv IDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mIENsYXJrLXdpbGxpYW1zLCBaYWNo YXJ5DQpTZW50OiBNb25kYXksIE9jdG9iZXIgMzEsIDIwMjIgMTI6MzEgUE0NClRvOiBLaW5uZXks IE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBSYWJlZGEsIE1hY2llaiA8 bWFjaWVqLnJhYmVkYUBpbnRlbC5jb20+OyBMdW8sIEhlbmcgPGhlbmcubHVvQGludGVsLmNvbT47 IEt1bywgU2NvdHRpZSA8c2NvdHRpZS5rdW9AaW50ZWwuY29tPjsgS3VvLCBUZWQgPHRlZC5rdW9A aW50ZWwuY29tPjsgRHV0a2lld2ljeiwgTWljaGFsIDxtaWNoYWwuZHV0a2lld2ljekBpbnRlbC5j b20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgJ0Z1LCBTaXl1YW4nIDxzaXl1YW4uZnVAaW50ZWwu Y29tPjsgV3UsIEppYXhpbiA8amlheGluLnd1QGludGVsLmNvbT47IE90Y2hlcmV0aWFuc2tpLCBB bmRyZWkgPGFuZHJlaS5vdGNoZXJldGlhbnNraUBpbnRlbC5jb20+DQpDYzogQWxhcHBhdCwgUGF1 bCA8cGF1bC5hbGFwcGF0QGludGVsLmNvbT47IEthc2Jla2FyLCBTYWxvbmkgPHNhbG9uaS5rYXNi ZWthckBpbnRlbC5jb20+OyBQYXRpbCwgQWppdCA8YWppdC5wYXRpbEBpbnRlbC5jb20+DQpTdWJq ZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCB2NF0gTmV0d29ya1BrZy9XaWZpUHJvZmlsZVN5 bmM6IEFkZCBXaUZpIHByb2ZpbGUgc3luYyBwcm90b2NvbCBzdXBwb3J0DQoNCisrIHZpc2liaWxp dHkNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IENsYXJrLXdpbGxpYW1zLCBa YWNoYXJ5DQpTZW50OiBGcmlkYXksIE9jdG9iZXIgMjgsIDIwMjIgMToxMyBQTQ0KVG86IEtpbm5l eSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IFJhYmVkYSwgTWFjaWVq IDxtYWNpZWoucmFiZWRhQGludGVsLmNvbT47IEx1bywgSGVuZyA8aGVuZy5sdW9AaW50ZWwuY29t PjsgS3VvLCBTY290dGllIDxzY290dGllLmt1b0BpbnRlbC5jb20+OyBLdW8sIFRlZCA8dGVkLmt1 b0BpbnRlbC5jb20+OyBEdXRraWV3aWN6LCBNaWNoYWwgPG1pY2hhbC5kdXRraWV3aWN6QGludGVs LmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBGdSwgU2l5dWFuIDxzaXl1YW4uZnVAaW50ZWwu Y29tPjsgV3UsIEppYXhpbiA8amlheGluLnd1QGludGVsLmNvbT47IE90Y2hlcmV0aWFuc2tpLCBB bmRyZWkgPGFuZHJlaS5vdGNoZXJldGlhbnNraUBpbnRlbC5jb20+DQpTdWJqZWN0OiBSRTogW1BB VENIIHY0XSBOZXR3b3JrUGtnL1dpZmlQcm9maWxlU3luYzogQWRkIFdpRmkgcHJvZmlsZSBzeW5j IHByb3RvY29sIHN1cHBvcnQNCg0KKytNb3JlIGZvciByZXZpZXdhbCENCg0KLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCkZyb206IENsYXJrLXdpbGxpYW1zLCBaYWNoYXJ5DQpTZW50OiBGcmlk YXksIE9jdG9iZXIgMjgsIDIwMjIgMToxMCBQTQ0KVG86IEtpbm5leSwgTWljaGFlbCBEIDxtaWNo YWVsLmQua2lubmV5QGludGVsLmNvbT47IFJhYmVkYSwgTWFjaWVqIDxtYWNpZWoucmFiZWRhQGlu dGVsLmNvbT47IEx1bywgSGVuZyA8aGVuZy5sdW9AaW50ZWwuY29tPjsgS3VvLCBTY290dGllIDxz Y290dGllLmt1b0BpbnRlbC5jb20+OyBLdW8sIFRlZCA8dGVkLmt1b0BpbnRlbC5jb20+OyBEdXRr aWV3aWN6LCBNaWNoYWwgPG1pY2hhbC5kdXRraWV3aWN6QGludGVsLmNvbT47IGRldmVsQGVkazIu Z3JvdXBzLmlvDQpTdWJqZWN0OiBSRTogW1BBVENIIHY0XSBOZXR3b3JrUGtnL1dpZmlQcm9maWxl U3luYzogQWRkIFdpRmkgcHJvZmlsZSBzeW5jIHByb3RvY29sIHN1cHBvcnQNCg0KVGhhbmtzIGZv ciB0aGUgZm9yd2FyZCBNaWtlIQ0KDQpNYWNpZWogYW5kIEFsbCwgDQoNCklmIHlvdSBjb3VsZCBw bGVhc2UgcmV2aWV3IHRoZSBQUiBiZWxvdy4gSSB3b3VsZCBsaWtlIHRvIGdldCB0aGlzIHJldmll dyBjb21wbGV0ZWQgd2l0aGluIHRoZSB3ZWVrLg0KDQpUaGFua3MsDQpaYWNrDQoNCi0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtp bm5leUBpbnRlbC5jb20+DQpTZW50OiBUaHVyc2RheSwgT2N0b2JlciAyNywgMjAyMiAxOjA5IFBN DQpUbzogUmFiZWRhLCBNYWNpZWogPG1hY2llai5yYWJlZGFAaW50ZWwuY29tPjsgS2lubmV5LCBN aWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgQ2xhcmstd2lsbGlhbXMsIFph Y2hhcnkgPHphY2hhcnkuY2xhcmstd2lsbGlhbXNAaW50ZWwuY29tPg0KU3ViamVjdDogRlc6IFtQ QVRDSCB2NF0gTmV0d29ya1BrZy9XaWZpUHJvZmlsZVN5bmM6IEFkZCBXaUZpIHByb2ZpbGUgc3lu YyBwcm90b2NvbCBzdXBwb3J0DQoNCkhpIE1hY2llaiwNCg0KQ2FuIHlvdSBwbGVhc2UgaGVscCBy ZXZpZXcgdGhlc2UgTmV0d29ya1BrZyBjaGFuZ2VzLg0KDQpJIGFtIG5vdCBzdXJlIGlmIHlvdSBt b25pdG9yIHlvdXIgbGludXguaW50ZWwuY29tIGFjY291bnQgYXMgY2xvc2VseSBhcyB5b3VyIGlu dGVsLmNvbSBhY2NvdW50Lg0KDQpUaGFua3MsDQoNCk1pa2UNCg0KLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCkZyb206IENsYXJrLXdpbGxpYW1zLCBaYWNoYXJ5IDx6YWNoYXJ5LmNsYXJrLXdp bGxpYW1zQGludGVsLmNvbT4NClNlbnQ6IFRodXJzZGF5LCBPY3RvYmVyIDI3LCAyMDIyIDEyOjMz IFBNDQpUbzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0K U3ViamVjdDogRlc6IFtQQVRDSCB2NF0gTmV0d29ya1BrZy9XaWZpUHJvZmlsZVN5bmM6IEFkZCBX aUZpIHByb2ZpbGUgc3luYyBwcm90b2NvbCBzdXBwb3J0DQoNCkhleSBNaWtlLA0KDQpJJ20gc3Ry dWdnbGluZyB0byBnZXQgYW55IGZlZWRiYWNrIG9uIHRoaXMgUFIuIERvIHlvdSBoYXZlIGFueSBz dWdnZXN0aW9ucyB0byBnZXQgYmV0dGVyIHZpc2liaWxpdHkgYW5kIHJlc3BvbnNlcyBzbyBJIGNh biBnZXQgdGhpcyBtaXZpbmc/DQoNClRoYW5rcywNClphY2sNCg0KLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCkZyb206IENsYXJrLXdpbGxpYW1zLCBaYWNoYXJ5IDx6YWNoYXJ5LmNsYXJrLXdp bGxpYW1zQGludGVsLmNvbT4NClNlbnQ6IFRodXJzZGF5LCBPY3RvYmVyIDI3LCAyMDIyIDEyOjMx IFBNDQpUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCkNjOiBaYWNoYXJ5IENsYXJrLVdpbGxpYW1z IDx6Y2xhcmt3MTEyQGdtYWlsLmNvbT47IE1hY2llaiBSYWJlZGEgPG1hY2llai5yYWJlZGFAbGlu dXguaW50ZWwuY29tPjsgRnUgU2l5dWFuIDxzaXl1YW4uZnVAaW50ZWwuY29tPjsgV3UsIEppYXhp biA8amlheGluLnd1QGludGVsLmNvbT47IE90Y2hlcmV0aWFuc2tpLCBBbmRyZWkgPGFuZHJlaS5v dGNoZXJldGlhbnNraUBpbnRlbC5jb20+OyBDbGFyay13aWxsaWFtcywgWmFjaGFyeSA8emFjaGFy eS5jbGFyay13aWxsaWFtc0BpbnRlbC5jb20+DQpTdWJqZWN0OiBbUEFUQ0ggdjRdIE5ldHdvcmtQ a2cvV2lmaVByb2ZpbGVTeW5jOiBBZGQgV2lGaSBwcm9maWxlIHN5bmMgcHJvdG9jb2wgc3VwcG9y dA0KDQpGcm9tOiBaYWNoYXJ5IENsYXJrLVdpbGxpYW1zIDx6Y2xhcmt3MTEyQGdtYWlsLmNvbT4N Cg0KUkVGOiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTM4 NDUNCg0KRW5hYmxlcyBLVk0gYW5kIE9uZSBDbGljayBSZWNvdmVyeSBXTEFOIGNhcGFiaWxpdHkg d2l0aCBXaUZpIFByb2ZpbGUgU3luYyBmZWF0dXJlIGFuZCBwcm90b2NvbC4gQWRkaW5nIFdpRmlQ cm9maWxlU3luY1Byb3RvY29sLCB3aGljaCBzdXBwb3J0cyB0aGUgcHJvZmlsZXN5bmMgZHJpdmVy IG9wZXJhdGlvbnMgZm9yIHRyYW5zZmVycmluZyBXaUZpIHByb2ZpbGVzIGZyb20gQU1UIHRvIHRo ZSBTdXBwbGljYW50LiBXaUZpQ29ubmVjdGlvbk1hbmFnZXIgd2lsbCBjaGVjayBmb3IgdGhlIFdp ZmlQcm9maWxlU3luY1Byb3RvY29sIGFuZCBpZiBmb3VuZCB3aWxsIG9wZXJhdGUgb24gdGhlIHBy ZW1pc2Ugb2YgYSBPbmUgQ2xpY2sgUmVjb3ZlcnksIG9yIEtWTSBmbG93IHdpdGggYSBXaWZpIHBy b2ZpbGUgcHJvdmlkZWQgYnkgQU1ULg0KDQpDYzogTWFjaWVqIFJhYmVkYSA8bWFjaWVqLnJhYmVk YUBsaW51eC5pbnRlbC5jb20+DQpDYzogRnUgU2l5dWFuIDxzaXl1YW4uZnVAaW50ZWwuY29tPg0K Q2M6IFd1IEppYXhpbiA8amlheGluLnd1QGludGVsLmNvbT4NCkNjOiBBbmRyZWkgT3RjaGVyZXRp YW5za2kgPGFuZHJlaS5vdGNoZXJldGlhbnNraUBpbnRlbC5jb20+DQoNClNpZ25lZC1vZmYtYnk6 IFphY2hhcnkgQ2xhcmstV2lsbGlhbXMgPHphY2hhcnkuY2xhcmstd2lsbGlhbXNAaW50ZWwuY29t Pg0KLS0tDQogLi4uL1Byb3RvY29sL1dpRmlQcm9maWxlU3luY1Byb3RvY29sLmggICAgICAgIHwg IDgzICsrKysrKysrDQogTmV0d29ya1BrZy9OZXR3b3JrUGtnLmRlYyAgICAgICAgICAgICAgICAg ICAgIHwgICAzICsNCiAuLi4vV2lmaUNvbm5lY3Rpb25NYW5hZ2VyRHhlLmluZiAgICAgICAgICAg ICAgfCAgIDMgKy0NCiAuLi4vV2lmaUNvbm5lY3Rpb25NZ3JDb25maWdOVkRhdGFTdHJ1Y3QuaCAg ICAgfCAgIDIgKy0NCiAuLi4vV2lmaUNvbm5lY3Rpb25NZ3JEcml2ZXIuYyAgICAgICAgICAgICAg ICAgfCAxMjYgKysrKysrKystLS0tDQogLi4uL1dpZmlDb25uZWN0aW9uTWdyRHhlLmggICAgICAg ICAgICAgICAgICAgIHwgICA0ICstDQogLi4uL1dpZmlDb25uZWN0aW9uTWdySW1wbC5jICAgICAg ICAgICAgICAgICAgIHwgMTkzICsrKysrKysrKysrKysrKystLQ0KIC4uLi9XaWZpQ29ubmVjdGlv bk1nck1pc2MuYyAgICAgICAgICAgICAgICAgICB8ICAxMyArKw0KIDggZmlsZXMgY2hhbmdlZCwg MzY3IGluc2VydGlvbnMoKyksIDYwIGRlbGV0aW9ucygtKSAgY3JlYXRlIG1vZGUgMTAwNjQ0IE5l dHdvcmtQa2cvSW5jbHVkZS9Qcm90b2NvbC9XaUZpUHJvZmlsZVN5bmNQcm90b2NvbC5oDQoNCmRp ZmYgLS1naXQgYS9OZXR3b3JrUGtnL0luY2x1ZGUvUHJvdG9jb2wvV2lGaVByb2ZpbGVTeW5jUHJv dG9jb2wuaCBiL05ldHdvcmtQa2cvSW5jbHVkZS9Qcm90b2NvbC9XaUZpUHJvZmlsZVN5bmNQcm90 b2NvbC5oDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMC4uZTM2ZGFjZWFi Zg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvTmV0d29ya1BrZy9JbmNsdWRlL1Byb3RvY29sL1dpRmlQ cm9maWxlU3luY1Byb3RvY29sLmgNCkBAIC0wLDAgKzEsODMgQEANCisvKiogQGZpbGUNCisgIFdp RmkgcHJvZmlsZSBzeW5jIHByb3RvY29sLiBTdXBwb3J0cyBPbmUgQ2xpY2sgUmVjb3Zlcnkgb3Ig S1ZNIE9TIA0KK3JlY292ZXJ5DQorICBib290IGZsb3cgb3ZlciBXaUZpLg0KKw0KKyAgQ29weXJp Z2h0IChjKSAyMDIyLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+ DQorDQorICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudCAqKi8N CisNCisjaWZuZGVmIFdJRklfUFJPRklMRV9TWU5DX1BST1RPQ09MX0hfDQorI2RlZmluZSBXSUZJ X1BST0ZJTEVfU1lOQ19QUk9UT0NPTF9IXw0KKw0KKyNpbmNsdWRlIDxXaWZpQ29ubmVjdGlvbk1h bmFnZXJEeGUvV2lmaUNvbm5lY3Rpb25NZ3JDb25maWcuaD4NCisNCisvLw0KKy8vICBXaUZpIFBy b2ZpbGUgU3luYyBQcm90b2NvbCBHVUlEIHZhcmlhYmxlLg0KKy8vDQorZXh0ZXJuIEVGSV9HVUlE ICBnRWZpV2lGaVByb2ZpbGVTeW5jUHJvdG9jb2xHdWlkOw0KKw0KKy8qKg0KKyAgVXNlZCBieSB0 aGUgV2lGaSBjb25uZWN0aW9uIG1hbmFnZXIgdG8gZ2V0IHRoZSBXaUZpIHByb2ZpbGUgdGhhdCBB TVQgDQorc2hhcmVkDQorICBhbmQgd2FzIHN0b3JlZCBpbiBXaUZpIHByb2ZpbGUgcHJvdG9jb2wu IEFsaWducyB0aGUgQU1UIFdpRmkgcHJvZmlsZSANCitkYXRhIHRvDQorICB0aGUgV2lGaSBjb25u ZWN0aW9uIG1hbmFnZXIgcHJvZmlsZSBzdHJ1Y3R1cmUgZm8gY29ubmVjdGlvbiB1c2UuDQorDQor ICBAcGFyYW1baW4sIG91dF0gIFdjbVByb2ZpbGUgICAgICAgV2lGaSBDb25uZWN0aW9uIE1hbmFn ZXIgcHJvZmlsZSBzdHJ1Y3R1cmUNCisgIEBwYXJhbVtpbiwgb3V0XSAgTWFjQWRkcmVzcyAgICAg ICBNQUMgYWRkcmVzcyBmcm9tIEFNVCBzYXZlZCB0byBOaUMgTUFDIGFkZHJlc3MNCisNCisgIEBy ZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICAgICBTdG9yZWQgV2lGaSBwcm9maWxlIGNvbnZl cnRlZCBhbmQgcmV0dXJuZWQgc3VjY2VmdWxseQ0KKyAgQHJldHZhbCBFRklfVU5TVVBQT1JURUQg ICAgICAgICAgIFByb2ZpbGUgcHJvdG9jb2wgc2hhcmluZyBub3Qgc3VwcG9ydGVkIG9yIGVuYWJs ZWQNCisgIEByZXR2YWwgRUZJX05PVF9GT1VORCAgICAgICAgICAgICBObyBwcm9maWxlcyB0byBy ZXR1cm5lZA0KKyAgQHJldHZhbCBPdGhlcnMgICAgICAgICAgICAgICAgICAgIEVycm9yIE9jY3Vy cmVkDQorKiovDQordHlwZWRlZg0KK0VGSV9TVEFUVVMNCisoRUZJQVBJICpXSUZJX1BST0ZJTEVf R0VUKSgNCisgIElOIE9VVCAgV0lGSV9NR1JfTkVUV09SS19QUk9GSUxFICAqUHJvZmlsZSwNCisg IElOIE9VVCAgRUZJXzgwMjExX01BQ19BRERSRVNTICAgICBNYWNBZGRyZXNzDQorICApOw0KKw0K Ky8qKg0KKyAgU2F2ZXMgdGhlIFdpRmkgY29ubmVjdGlvbiBzdGF0dXMgcmVjaWV2ZWQgYnkgdGhl IA0KK1dpRmlDb25uZWN0aW9uTWFuYWdlciB3aGVuDQorICBpbiBhIEtWTSBPUiBPbmUgQ2xpY2sg UmVjb3ZlcnkgV0xBTiByZWNvdmVyeSBmbG93LiBJbnB1dCBhcw0KKyAgRUZJXzgwMjExX0NPTk5F Q1RfTkVUV09SS19SRVNVTFRfQ09ERSB0aGVuIGNvbnZlcnRlZCBhbmQgc3RvcmVkIGFzIEVGSV9T VEFUVVMgdHlwZS4NCisNCisgIEBwYXJhbVtpbl0gQ29ubmVjdGlvblN0YXR1cyAgICAgV2lGaSBj b25uZWN0aW9uIGF0dGVtcHQgcmVzdWx0cw0KKyoqLw0KK3R5cGVkZWYNCitWT0lEDQorKEVGSUFQ SSAqV0lGSV9TRVRfQ09OTkVDVF9TVEFURSkoDQorICBJTiAgRUZJXzgwMjExX0NPTk5FQ1RfTkVU V09SS19SRVNVTFRfQ09ERSBDb25uZWN0aW9uU3RhdHVzDQorICApOw0KKw0KKy8qKg0KKyAgUmV0 cmlldmVzIHRoZSBzdG9yZWQgV2lGaSBjb25uZWN0aW9uIHN0YXR1cyB3aGVuIGluIGVpdGhlciBL Vk0gT1IgT25lIA0KK0NsaWNrDQorICBSZWNvdmVyeSBXTEFOIHJlY292ZXJ5IGZsb3cuDQorDQor ICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICAgICAgV2lGaSBjb25uZWN0aW9uIGNvbXBs ZXRlZCBzdWNjZXNmdWxseQ0KKyAgQHJldHZhbCBPdGhlcnMgICAgICAgICAgICAgICAgICAgIENv bm5lY3Rpb24gZmFpbHVyZSBvY2N1cnJlZA0KKyoqLw0KK3R5cGVkZWYNCitFRklfU1RBVFVTDQor KEVGSUFQSSAqV0lGSV9HRVRfQ09OTkVDVF9TVEFURSkoDQorICBWT0lEDQorICApOw0KKw0KKy8v DQorLy8gIFdpRmkgUHJvZmlsZSBTeW5jIFByb3RvY29sIHN0cnVjdHVyZS4NCisvLw0KK3R5cGVk ZWYgc3RydWN0IHsNCisgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgUmV2aXNpb247DQorICBX SUZJX1NFVF9DT05ORUNUX1NUQVRFICAgIFdpZmlQcm9maWxlU3luY1NldENvbm5lY3RTdGF0ZTsN CisgIFdJRklfR0VUX0NPTk5FQ1RfU1RBVEUgICAgV2lmaVByb2ZpbGVTeW5jR2V0Q29ubmVjdFN0 YXRlOw0KKyAgV0lGSV9QUk9GSUxFX0dFVCAgICAgICAgICBXaWZpUHJvZmlsZVN5bmNHZXRQcm9m aWxlOw0KK30gRUZJX1dJRklfUFJPRklMRV9TWU5DX1BST1RPQ09MOw0KKw0KKy8qKg0KKyAgV2lG aSBQcm9maWxlIFByb3RvY29sIHJldmlzaW9uIG51bWJlci4NCisNCisgIFJldmlzaW9uIDE6ICAg SW5pdGlhbCB2ZXJzaW9uDQorKiovDQorI2RlZmluZSBFRklfV0lGSV9QUk9GSUxFX1NZTkNfUFJP VE9DT0xfUkVWSVNJT04gIDENCisNCisjZW5kaWYgLy8gIFdJRklfUFJPRklMRV9TWU5DX1BST1RP Q09MX0hfDQpkaWZmIC0tZ2l0IGEvTmV0d29ya1BrZy9OZXR3b3JrUGtnLmRlYyBiL05ldHdvcmtQ a2cvTmV0d29ya1BrZy5kZWMgaW5kZXggNWU0M2ViZjhjNS4uNTNmYjM0YzRhMCAxMDA2NDQNCi0t LSBhL05ldHdvcmtQa2cvTmV0d29ya1BrZy5kZWMNCisrKyBiL05ldHdvcmtQa2cvTmV0d29ya1Br Zy5kZWMNCkBAIC05MSw2ICs5MSw5IEBADQogICAjIyBJbmNsdWRlL1Byb3RvY29sL0h0dHBDYWxs YmFjay5oDQogICBnRWRraWlIdHRwQ2FsbGJhY2tQcm90b2NvbEd1aWQgID0gezB4NjExMTE0ZjEs IDB4YTM3YiwgMHg0NDY4LCB7MHhhNCwgMHgzNiwgMHg1YiwgMHhkZCwgMHhhMSwgMHg2YSwgMHhh MiwgMHg0MH19DQogDQorICAjIyBJbmNsdWRlL1Byb3RvY29sL1dpRmlQcm9maWxlU3luY1Byb3Rv Y29sLmgNCisgIGdFZmlXaUZpUHJvZmlsZVN5bmNQcm90b2NvbEd1aWQgPSB7MHgzOTlhMmI4YSwg MHhjMjY3LCAweDQ0YWEsIHsweDlhLCANCisgMHhiNCwgMHgzMCwgMHg1OCwgMHg4YywgMHhkMiwg MHgyZCwgMHhjY319DQorDQogW1BjZHNGaXhlZEF0QnVpbGRdDQogICAjIyBUaGUgbWF4IGF0dGVt cHQgbnVtYmVyIHdpbGwgYmUgY3JlYXRlZCBieSBpU0NTSSBkcml2ZXIuDQogICAjIEBQcm9tcHQg TWF4IGF0dGVtcHQgbnVtYmVyLg0KZGlmZiAtLWdpdCBhL05ldHdvcmtQa2cvV2lmaUNvbm5lY3Rp b25NYW5hZ2VyRHhlL1dpZmlDb25uZWN0aW9uTWFuYWdlckR4ZS5pbmYgYi9OZXR3b3JrUGtnL1dp ZmlDb25uZWN0aW9uTWFuYWdlckR4ZS9XaWZpQ29ubmVjdGlvbk1hbmFnZXJEeGUuaW5mDQppbmRl eCA0Mzk0YjZmNGJiLi43ZTM2MDE2Y2Y4IDEwMDY0NA0KLS0tIGEvTmV0d29ya1BrZy9XaWZpQ29u bmVjdGlvbk1hbmFnZXJEeGUvV2lmaUNvbm5lY3Rpb25NYW5hZ2VyRHhlLmluZg0KKysrIGIvTmV0 d29ya1BrZy9XaWZpQ29ubmVjdGlvbk1hbmFnZXJEeGUvV2lmaUNvbm5lY3Rpb25NYW5hZ2VyRHhl LmluZg0KQEAgLTksNyArOSw3IEBADQogIyAgMikuIFdQQTIgUGVyc29uYWwgTmV0d29yaw0KICMg IDMpLiBFQVAgTmV0d29ya3MgKEVBUC1UTFMsIEVBUC1UVExTL01TQ0hBUHYyIGFuZCBQRUFQdjAv TVNDSEFQdjIpICAjIC0jICBDb3B5cmlnaHQgKGMpIDIwMTksIEludGVsIENvcnBvcmF0aW9uLiBB bGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCisjICBDb3B5cmlnaHQgKGMpIDIwMTkgLSAyMDIyLCBJ bnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyANCityZXNlcnZlZC48QlI+DQogIw0KICMgIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50ICAjIEBAIC03MSw2ICs3 MSw3IEBADQogICBnRWZpQWRhcHRlckluZm9ybWF0aW9uUHJvdG9jb2xHdWlkICAgICAgICAgICAg IyMgU09NRVRJTUVTX0NPTlNVTUVTDQogICBnRWZpU3VwcGxpY2FudFByb3RvY29sR3VpZCAgICAg ICAgICAgICAgICAgICAgIyMgU09NRVRJTUVTX0NPTlNVTUVTDQogICBnRWZpRWFwQ29uZmlndXJh dGlvblByb3RvY29sR3VpZCAgICAgICAgICAgICAgIyMgU09NRVRJTUVTX0NPTlNVTUVTDQorICBn RWZpV2lGaVByb2ZpbGVTeW5jUHJvdG9jb2xHdWlkICAgICAgICAgICAgICAgIyMgU09NRVRJTUVT X0NPTlNVTUVTDQogDQogW0d1aWRzXQ0KICAgZ1dpZmlDb25maWdHdWlkICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICMjIFBST0RVQ0VTICAjIyBHVUlEDQpkaWZmIC0tZ2l0IGEvTmV0d29y a1BrZy9XaWZpQ29ubmVjdGlvbk1hbmFnZXJEeGUvV2lmaUNvbm5lY3Rpb25NZ3JDb25maWdOVkRh dGFTdHJ1Y3QuaCBiL05ldHdvcmtQa2cvV2lmaUNvbm5lY3Rpb25NYW5hZ2VyRHhlL1dpZmlDb25u ZWN0aW9uTWdyQ29uZmlnTlZEYXRhU3RydWN0LmgNCmluZGV4IGI1NTE4YTc0ZDguLmRjYzRiZjdl MjcgMTAwNjQ0DQotLS0gYS9OZXR3b3JrUGtnL1dpZmlDb25uZWN0aW9uTWFuYWdlckR4ZS9XaWZp Q29ubmVjdGlvbk1nckNvbmZpZ05WRGF0YVN0cnVjdC5oDQorKysgYi9OZXR3b3JrUGtnL1dpZmlD b25uZWN0aW9uTWFuYWdlckR4ZS9XaWZpQ29ubmVjdGlvbk1nckNvbmZpZ05WRGF0YVMNCisrKyB0 cnVjdC5oDQpAQCAtMjUsNyArMjUsNyBAQA0KIA0KICNkZWZpbmUgUEFTU1dPUkRfTUlOX0xFTiAg ICAgICA4DQogI2RlZmluZSBQQVNTV09SRF9NQVhfTEVOICAgICAgIDYzDQotI2RlZmluZSBQQVNT V09SRF9TVE9SQUdFX1NJWkUgIDY0DQorI2RlZmluZSBQQVNTV09SRF9TVE9SQUdFX1NJWkUgIDY1 DQogDQogI2RlZmluZSBFQVBfSURFTlRJVFlfTEVOICAgNjMNCiAjZGVmaW5lIEVBUF9JREVOVElU WV9TSVpFICA2NA0KZGlmZiAtLWdpdCBhL05ldHdvcmtQa2cvV2lmaUNvbm5lY3Rpb25NYW5hZ2Vy RHhlL1dpZmlDb25uZWN0aW9uTWdyRHJpdmVyLmMgYi9OZXR3b3JrUGtnL1dpZmlDb25uZWN0aW9u TWFuYWdlckR4ZS9XaWZpQ29ubmVjdGlvbk1nckRyaXZlci5jDQppbmRleCA2N2EwMWNhMDU4Li45 N2NhN2E5ZjBiIDEwMDY0NA0KLS0tIGEvTmV0d29ya1BrZy9XaWZpQ29ubmVjdGlvbk1hbmFnZXJE eGUvV2lmaUNvbm5lY3Rpb25NZ3JEcml2ZXIuYw0KKysrIGIvTmV0d29ya1BrZy9XaWZpQ29ubmVj dGlvbk1hbmFnZXJEeGUvV2lmaUNvbm5lY3Rpb25NZ3JEcml2ZXIuYw0KQEAgLTEsNyArMSw3IEBA DQogLyoqIEBmaWxlDQogICBUaGUgZHJpdmVyIGJpbmRpbmcgcHJvdG9jb2wgZm9yIHRoZSBXaUZp IENvbm5lY3Rpb24gTWFuYWdlci4NCiANCi0gIENvcHlyaWdodCAoYykgMjAxOSwgSW50ZWwgQ29y cG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KKyAgQ29weXJpZ2h0IChjKSAyMDE5 IC0gMjAyMiwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgDQorIHJlc2VydmVkLjxCUj4N CiANCiAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQogDQpA QCAtMzksNiArMzksMTEgQEAgRUZJX0dVSUQgIG1XaWZpQ29uZmlnTmV0d29ya0xpc3RSZWZyZXNo R3VpZCA9IFdJRklfQ09ORklHX05FVFdPUktfTElTVF9SRUZSRVNIX0cNCiBFRklfR1VJRCAgbVdp ZmlDb25maWdDb25uZWN0Rm9ybVJlZnJlc2hHdWlkID0gV0lGSV9DT05GSUdfQ09OTkVDVF9GT1JN X1JFRlJFU0hfR1VJRDsNCiBFRklfR1VJRCAgbVdpZmlDb25maWdNYWluRm9ybVJlZnJlc2hHdWlk ICAgID0gV0lGSV9DT05GSUdfTUFJTl9GT1JNX1JFRlJFU0hfR1VJRDsNCiANCisvLw0KKy8vIFdp ZmkgY29ubmVjdGlvbiBhdHRlbXB0IGNvdW50ZXIgZm9yIHJldHJpZXMgLy8gZXh0ZXJuIFVJTlQ4 IA0KK21XaWZpQ29ubmVjdGlvbkNvdW50Ow0KKw0KIC8qKg0KICAgVGVzdHMgdG8gc2VlIGlmIHRo aXMgZHJpdmVyIHN1cHBvcnRzIGEgZ2l2ZW4gY29udHJvbGxlci4gSWYgYSBjaGlsZCBkZXZpY2Ug aXMgcHJvdmlkZWQsDQogICBpdCBmdXJ0aGVyIHRlc3RzIHRvIHNlZSBpZiB0aGlzIGRyaXZlciBz dXBwb3J0cyBjcmVhdGluZyBhIGhhbmRsZSBmb3IgdGhlIHNwZWNpZmllZCBjaGlsZCBkZXZpY2Uu DQpAQCAtMTY3LDggKzE3MiwxMCBAQCBXaWZpTWdyRHhlRHJpdmVyQmluZGluZ1N0YXJ0ICgNCiAg IEVGSV9XSVJFTEVTU19NQUNfQ09OTkVDVElPTl9JSV9QUk9UT0NPTCAgKldtcDsNCiAgIEVGSV9T VVBQTElDQU5UX1BST1RPQ09MICAgICAgICAgICAgICAgICAgKlN1cHBsaWNhbnQ7DQogICBFRklf RUFQX0NPTkZJR1VSQVRJT05fUFJPVE9DT0wgICAgICAgICAgICpFYXBDb25maWc7DQorICBFRklf V0lGSV9QUk9GSUxFX1NZTkNfUFJPVE9DT0wgICAgICAgICAgICpXaUZpUHJvZmlsZVN5bmNQcm90 b2NvbDsNCiANCi0gIE5pYyA9IE5VTEw7DQorICBtV2lmaUNvbm5lY3Rpb25Db3VudCA9IDA7DQor ICBOaWMgICAgICAgICAgICAgICAgICA9IE5VTEw7DQogDQogICAvLw0KICAgLy8gT3BlbiBQcm90 b2NvbHMNCkBAIC0yMzYsNDcgKzI0Myw3MyBAQCBXaWZpTWdyRHhlRHJpdmVyQmluZGluZ1N0YXJ0 ICgNCiAgIEluaXRpYWxpemVMaXN0SGVhZCAoJk5pYy0+UHJvZmlsZUxpc3QpOw0KIA0KICAgLy8N Ci0gIC8vIFJlY29yZCB0aGUgTUFDIGFkZHJlc3Mgb2YgdGhlIGluY29taW5nIE5JQy4NCisgIC8v IFdpRmkgcHJvZmlsZSBzeW5jIHByb3RvY29sIGluc3RhbGxhdGlvbiBjaGVjayBmb3IgT1MgcmVj b3ZlcnkgZmxvdy4NCiAgIC8vDQotICBTdGF0dXMgPSBOZXRMaWJHZXRNYWNBZGRyZXNzICgNCi0g ICAgICAgICAgICAgQ29udHJvbGxlckhhbmRsZSwNCi0gICAgICAgICAgICAgKEVGSV9NQUNfQURE UkVTUyAqKSZOaWMtPk1hY0FkZHJlc3MsDQotICAgICAgICAgICAgICZBZGRyZXNzU2l6ZQ0KLSAg ICAgICAgICAgICApOw0KLSAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KLSAgICBnb3RvIEVS Uk9SMjsNCi0gIH0NCi0NCi0gIC8vDQotICAvLyBDcmVhdGUgYW5kIHN0YXJ0IHRoZSB0aW1lciBm b3IgdGhlIHN0YXR1cyBjaGVjaw0KLSAgLy8NCi0gIFN0YXR1cyA9IGdCUy0+Q3JlYXRlRXZlbnQg KA0KLSAgICAgICAgICAgICAgICAgIEVWVF9OT1RJRllfU0lHTkFMIHwgRVZUX1RJTUVSLA0KLSAg ICAgICAgICAgICAgICAgIFRQTF9DQUxMQkFDSywNCi0gICAgICAgICAgICAgICAgICBXaWZpTWdy T25UaW1lclRpY2ssDQotICAgICAgICAgICAgICAgICAgTmljLA0KLSAgICAgICAgICAgICAgICAg ICZOaWMtPlRpY2tUaW1lcg0KKyAgU3RhdHVzID0gZ0JTLT5Mb2NhdGVQcm90b2NvbCAoDQorICAg ICAgICAgICAgICAgICAgJmdFZmlXaUZpUHJvZmlsZVN5bmNQcm90b2NvbEd1aWQsDQorICAgICAg ICAgICAgICAgICAgTlVMTCwNCisgICAgICAgICAgICAgICAgICAoVk9JRCAqKikmV2lGaVByb2Zp bGVTeW5jUHJvdG9jb2wNCiAgICAgICAgICAgICAgICAgICApOw0KLSAgaWYgKEVGSV9FUlJPUiAo U3RhdHVzKSkgew0KLSAgICBnb3RvIEVSUk9SMjsNCi0gIH0NCisgIGlmICghRUZJX0VSUk9SIChT dGF0dXMpKSB7DQorICAgIE5pYy0+Q29ubmVjdFBlbmRpbmdOZXR3b3JrID0gKFdJRklfTUdSX05F VFdPUktfUFJPRklMRSAqKUFsbG9jYXRlWmVyb1Bvb2wgKHNpemVvZiAoV0lGSV9NR1JfTkVUV09S S19QUk9GSUxFKSk7DQorICAgIGlmIChOaWMtPkNvbm5lY3RQZW5kaW5nTmV0d29yayA9PSBOVUxM KSB7DQorICAgICAgU3RhdHVzID0gRUZJX09VVF9PRl9SRVNPVVJDRVM7DQorICAgICAgZ290byBF UlJPUjE7DQorICAgIH0NCiANCi0gIFN0YXR1cyA9IGdCUy0+U2V0VGltZXIgKE5pYy0+VGlja1Rp bWVyLCBUaW1lclBlcmlvZGljLCBFRklfVElNRVJfUEVSSU9EX01JTExJU0VDT05EUyAoNTAwKSk7 DQotICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQotICAgIGdvdG8gRVJST1IzOw0KLSAgfQ0K KyAgICBXaUZpUHJvZmlsZVN5bmNQcm90b2NvbC0+V2lmaVByb2ZpbGVTeW5jR2V0UHJvZmlsZSAo TmljLT5Db25uZWN0UGVuZGluZ05ldHdvcmssIE5pYy0+TWFjQWRkcmVzcyk7DQorICAgIGlmIChO aWMtPkNvbm5lY3RQZW5kaW5nTmV0d29yayAhPSBOVUxMKSB7DQorICAgICAgU3RhdHVzID0gV2lm aU1nckNvbm5lY3RUb05ldHdvcmsgKE5pYywgTmljLT5Db25uZWN0UGVuZGluZ05ldHdvcmspOw0K KyAgICAgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCisgICAgICAgIFdpRmlQcm9maWxlU3lu Y1Byb3RvY29sLT5XaWZpUHJvZmlsZVN5bmNTZXRDb25uZWN0U3RhdGUgKFN0YXR1cyk7DQorICAg ICAgfQ0KKyAgICB9IGVsc2Ugew0KKyAgICAgIGdvdG8gRVJST1IxOw0KKyAgICB9DQorICB9IGVs c2Ugew0KKyAgICAvLw0KKyAgICAvLyBSZWNvcmQgdGhlIE1BQyBhZGRyZXNzIG9mIHRoZSBpbmNv bWluZyBOSUMuDQorICAgIC8vDQorICAgIFN0YXR1cyA9IE5ldExpYkdldE1hY0FkZHJlc3MgKA0K KyAgICAgICAgICAgICAgIENvbnRyb2xsZXJIYW5kbGUsDQorICAgICAgICAgICAgICAgKEVGSV9N QUNfQUREUkVTUyAqKSZOaWMtPk1hY0FkZHJlc3MsDQorICAgICAgICAgICAgICAgJkFkZHJlc3NT aXplDQorICAgICAgICAgICAgICAgKTsNCisgICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0K KyAgICAgIGdvdG8gRVJST1IyOw0KKyAgICB9DQogDQotICBOaWMtPkNvbm5lY3RTdGF0ZSA9IFdp ZmlNZ3JEaXNjb25uZWN0ZWQ7DQotICBOaWMtPlNjYW5TdGF0ZSAgICA9IFdpZmlNZ3JTY2FuRmlu aXNoZWQ7DQorICAgIC8vDQorICAgIC8vIENyZWF0ZSBhbmQgc3RhcnQgdGhlIHRpbWVyIGZvciB0 aGUgc3RhdHVzIGNoZWNrDQorICAgIC8vDQorICAgIFN0YXR1cyA9IGdCUy0+Q3JlYXRlRXZlbnQg KA0KKyAgICAgICAgICAgICAgICAgICAgRVZUX05PVElGWV9TSUdOQUwgfCBFVlRfVElNRVIsDQor ICAgICAgICAgICAgICAgICAgICBUUExfQ0FMTEJBQ0ssDQorICAgICAgICAgICAgICAgICAgICBX aWZpTWdyT25UaW1lclRpY2ssDQorICAgICAgICAgICAgICAgICAgICBOaWMsDQorICAgICAgICAg ICAgICAgICAgICAmTmljLT5UaWNrVGltZXINCisgICAgICAgICAgICAgICAgICAgICk7DQorICAg IGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCisgICAgICBnb3RvIEVSUk9SMjsNCisgICAgfQ0K IA0KLSAgT2xkVHBsID0gZ0JTLT5SYWlzZVRQTCAoVFBMX0NBTExCQUNLKTsNCi0gIEluc2VydFRh aWxMaXN0ICgmbVByaXZhdGUtPk5pY0xpc3QsICZOaWMtPkxpbmspOw0KLSAgTmljLT5OaWNJbmRl eCA9IG1Qcml2YXRlLT5OaWNDb3VudCsrOw0KLSAgaWYgKG1Qcml2YXRlLT5DdXJyZW50TmljID09 IE5VTEwpIHsNCi0gICAgbVByaXZhdGUtPkN1cnJlbnROaWMgPSBOaWM7DQotICB9DQorICAgIFN0 YXR1cyA9IGdCUy0+U2V0VGltZXIgKE5pYy0+VGlja1RpbWVyLCBUaW1lclBlcmlvZGljLCBFRklf VElNRVJfUEVSSU9EX01JTExJU0VDT05EUyAoNTAwKSk7DQorICAgIGlmIChFRklfRVJST1IgKFN0 YXR1cykpIHsNCisgICAgICBnb3RvIEVSUk9SMzsNCisgICAgfQ0KIA0KLSAgZ0JTLT5SZXN0b3Jl VFBMIChPbGRUcGwpOw0KKyAgICBOaWMtPkNvbm5lY3RTdGF0ZSA9IFdpZmlNZ3JEaXNjb25uZWN0 ZWQ7DQorICAgIE5pYy0+U2NhblN0YXRlICAgID0gV2lmaU1nclNjYW5GaW5pc2hlZDsNCisNCisg ICAgT2xkVHBsID0gZ0JTLT5SYWlzZVRQTCAoVFBMX0NBTExCQUNLKTsNCisgICAgSW5zZXJ0VGFp bExpc3QgKCZtUHJpdmF0ZS0+TmljTGlzdCwgJk5pYy0+TGluayk7DQorICAgIE5pYy0+TmljSW5k ZXggPSBtUHJpdmF0ZS0+TmljQ291bnQrKzsNCisgICAgaWYgKG1Qcml2YXRlLT5DdXJyZW50Tmlj ID09IE5VTEwpIHsNCisgICAgICBtUHJpdmF0ZS0+Q3VycmVudE5pYyA9IE5pYzsNCisgICAgfQ0K Kw0KKyAgICBnQlMtPlJlc3RvcmVUUEwgKE9sZFRwbCk7DQorICB9DQogDQogICBTdGF0dXMgPSBn QlMtPkluc3RhbGxQcm90b2NvbEludGVyZmFjZSAoDQogICAgICAgICAgICAgICAgICAgJkNvbnRy b2xsZXJIYW5kbGUsDQpAQCAtMzg1LDEwICs0MTgsMTEgQEAgV2lmaU1nckR4ZURyaXZlckJpbmRp bmdTdG9wICgNCiAgIElOIEVGSV9IQU5ETEUgICAgICAgICAgICAgICAgICAgKkNoaWxkSGFuZGxl QnVmZmVyIE9QVElPTkFMDQogICApDQogew0KLSAgRUZJX1NUQVRVUyAgICAgICAgICAgICAgICAg U3RhdHVzOw0KLSAgRUZJX1RQTCAgICAgICAgICAgICAgICAgICAgT2xkVHBsOw0KLSAgV0lGSV9N R1JfUFJJVkFURV9QUk9UT0NPTCAgKldpZmlNZ3JJZGVudGlmaWVyOw0KLSAgV0lGSV9NR1JfREVW SUNFX0RBVEEgICAgICAgKk5pYzsNCisgIEVGSV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAg U3RhdHVzOw0KKyAgRUZJX1RQTCAgICAgICAgICAgICAgICAgICAgICAgICBPbGRUcGw7DQorICBX SUZJX01HUl9QUklWQVRFX1BST1RPQ09MICAgICAgICpXaWZpTWdySWRlbnRpZmllcjsNCisgIFdJ RklfTUdSX0RFVklDRV9EQVRBICAgICAgICAgICAgKk5pYzsNCisgIEVGSV9XSUZJX1BST0ZJTEVf U1lOQ19QUk9UT0NPTCAgKldpRmlQcm9maWxlU3luY1Byb3RvY29sOw0KIA0KICAgU3RhdHVzID0g Z0JTLT5PcGVuUHJvdG9jb2wgKA0KICAgICAgICAgICAgICAgICAgIENvbnRyb2xsZXJIYW5kbGUs DQpAQCAtNDgxLDcgKzUxNSwxNSBAQCBXaWZpTWdyRHhlRHJpdmVyQmluZGluZ1N0b3AgKA0KICAg Ly8NCiAgIE9sZFRwbCA9IGdCUy0+UmFpc2VUUEwgKFRQTF9DQUxMQkFDSyk7DQogDQotICBSZW1v dmVFbnRyeUxpc3QgKCZOaWMtPkxpbmspOw0KKyAgU3RhdHVzID0gZ0JTLT5Mb2NhdGVQcm90b2Nv bCAoDQorICAgICAgICAgICAgICAgICAgJmdFZmlXaUZpUHJvZmlsZVN5bmNQcm90b2NvbEd1aWQs DQorICAgICAgICAgICAgICAgICAgTlVMTCwNCisgICAgICAgICAgICAgICAgICAoVk9JRCAqKikm V2lGaVByb2ZpbGVTeW5jUHJvdG9jb2wNCisgICAgICAgICAgICAgICAgICApOw0KKyAgaWYgKEVG SV9FUlJPUiAoU3RhdHVzKSkgew0KKyAgICBSZW1vdmVFbnRyeUxpc3QgKCZOaWMtPkxpbmspOw0K KyAgfQ0KKw0KICAgbVByaXZhdGUtPk5pY0NvdW50LS07DQogICBpZiAobVByaXZhdGUtPkN1cnJl bnROaWMgPT0gTmljKSB7DQogICAgIG1Qcml2YXRlLT5DdXJyZW50TmljID0gTlVMTDsNCmRpZmYg LS1naXQgYS9OZXR3b3JrUGtnL1dpZmlDb25uZWN0aW9uTWFuYWdlckR4ZS9XaWZpQ29ubmVjdGlv bk1nckR4ZS5oIGIvTmV0d29ya1BrZy9XaWZpQ29ubmVjdGlvbk1hbmFnZXJEeGUvV2lmaUNvbm5l Y3Rpb25NZ3JEeGUuaA0KaW5kZXggN2IyZTQxZTE1NS4uMDQ3Zjg1ZGJjMiAxMDA2NDQNCi0tLSBh L05ldHdvcmtQa2cvV2lmaUNvbm5lY3Rpb25NYW5hZ2VyRHhlL1dpZmlDb25uZWN0aW9uTWdyRHhl LmgNCisrKyBiL05ldHdvcmtQa2cvV2lmaUNvbm5lY3Rpb25NYW5hZ2VyRHhlL1dpZmlDb25uZWN0 aW9uTWdyRHhlLmgNCkBAIC00Nyw2ICs0Nyw3IEBADQogI2luY2x1ZGUgPFByb3RvY29sL1NpbXBs ZU5ldHdvcmsuaD4NCiAjaW5jbHVkZSA8UHJvdG9jb2wvU2ltcGxlRmlsZVN5c3RlbS5oPg0KICNp bmNsdWRlIDxQcm90b2NvbC9FYXBDb25maWd1cmF0aW9uLmg+DQorI2luY2x1ZGUgPFByb3RvY29s L1dpRmlQcm9maWxlU3luY1Byb3RvY29sLmg+DQogDQogLy8NCiAvLyBQcm9kdWNlZCBQcm90b2Nv bHMNCkBAIC03Myw3ICs3NCw4IEBADQogLy8NCiAjZGVmaW5lIFdJRklfTUdSX0RYRV9WRVJTSU9O ICAweGINCiANCi0jZGVmaW5lIE9VSV9JRUVFXzgwMjExSSAgMHhBQzBGMDANCisjZGVmaW5lIE9V SV9JRUVFXzgwMjExSSAgICAgICAgICAgICAgMHhBQzBGMDANCisjZGVmaW5lIE1BWF9XSUZJX0NP Tk5FVElPTl9BVFRFTVBUUyAgMw0KIA0KIHR5cGVkZWYgZW51bSB7DQogICBJZWVlODAyMTFQYWly d2lzZUNpcGhlclN1aXRlVXNlR3JvdXBDaXBoZXJTdWl0ZSA9IDAsIGRpZmYgLS1naXQgYS9OZXR3 b3JrUGtnL1dpZmlDb25uZWN0aW9uTWFuYWdlckR4ZS9XaWZpQ29ubmVjdGlvbk1nckltcGwuYyBi L05ldHdvcmtQa2cvV2lmaUNvbm5lY3Rpb25NYW5hZ2VyRHhlL1dpZmlDb25uZWN0aW9uTWdySW1w bC5jDQppbmRleCA1OWJhYzQ4YzQyLi5hNzNhYjlmNzEwIDEwMDY0NA0KLS0tIGEvTmV0d29ya1Br Zy9XaWZpQ29ubmVjdGlvbk1hbmFnZXJEeGUvV2lmaUNvbm5lY3Rpb25NZ3JJbXBsLmMNCisrKyBi L05ldHdvcmtQa2cvV2lmaUNvbm5lY3Rpb25NYW5hZ2VyRHhlL1dpZmlDb25uZWN0aW9uTWdySW1w bC5jDQpAQCAtMTksNiArMTksOCBAQCBFRklfRUFQX1RZUEUgIG1FYXBTZWNvbmRBdXRoTWV0aG9k W10gPSB7DQogICBFRklfRUFQX1RZUEVfTVNDSEFQVjINCiB9Ow0KIA0KK1VJTlQ4ICBtV2lmaUNv bm5lY3Rpb25Db3VudCA9IDA7DQorDQogLyoqDQogICBUaGUgY2FsbGJhY2sgZnVuY3Rpb24gZm9y IHNjYW4gb3BlcmF0aW9uLiBUaGlzIGZ1bmN0aW9uIHVwZGF0ZXMgbmV0d29ya3MNCiAgIGFjY29y ZGluZyB0byB0aGUgbGF0ZXN0IHNjYW4gcmVzdWx0LCBhbmQgdHJpZ2dlciBVSSByZWZyZXNoLg0K QEAgLTQyNCwxOCArNDI2LDI2IEBAIFdpZmlNZ3JDb25maWdQYXNzd29yZCAoDQogICAgIHJldHVy biBFRklfTk9UX0ZPVU5EOw0KICAgfQ0KIA0KLSAgQXNjaWlQYXNzd29yZCA9IEFsbG9jYXRlWmVy b1Bvb2wgKChTdHJMZW4gKFByb2ZpbGUtPlBhc3N3b3JkKSArIDEpICogc2l6ZW9mIChVSU5UOCkp Ow0KKyAgaWYgKFN0ckxlbiAoUHJvZmlsZS0+UGFzc3dvcmQpID49IFBBU1NXT1JEX1NUT1JBR0Vf U0laRSkgew0KKyAgICBBU1NFUlQgKEVGSV9JTlZBTElEX1BBUkFNRVRFUik7DQorICAgIHJldHVy biBFRklfSU5WQUxJRF9QQVJBTUVURVI7DQorICB9DQorDQorICBBc2NpaVBhc3N3b3JkID0gQWxs b2NhdGVaZXJvUG9vbCAoKFN0ckxlbiAoUHJvZmlsZS0+UGFzc3dvcmQpICsgMSkgKiANCisgc2l6 ZW9mIChDSEFSOCkpOw0KICAgaWYgKEFzY2lpUGFzc3dvcmQgPT0gTlVMTCkgew0KICAgICByZXR1 cm4gRUZJX09VVF9PRl9SRVNPVVJDRVM7DQogICB9DQogDQotICBVbmljb2RlU3RyVG9Bc2NpaVN0 clMgKFByb2ZpbGUtPlBhc3N3b3JkLCAoQ0hBUjggKilBc2NpaVBhc3N3b3JkLCBQQVNTV09SRF9T VE9SQUdFX1NJWkUpOw0KLSAgU3RhdHVzID0gU3VwcGxpY2FudC0+U2V0RGF0YSAoDQotICAgICAg ICAgICAgICAgICAgICAgICAgIFN1cHBsaWNhbnQsDQotICAgICAgICAgICAgICAgICAgICAgICAg IEVmaVN1cHBsaWNhbnQ4MDIxMVBza1Bhc3N3b3JkLA0KLSAgICAgICAgICAgICAgICAgICAgICAg ICBBc2NpaVBhc3N3b3JkLA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAoU3RyTGVuIChQcm9m aWxlLT5QYXNzd29yZCkgKyAxKSAqIHNpemVvZiAoVUlOVDgpDQotICAgICAgICAgICAgICAgICAg ICAgICAgICk7DQorICBTdGF0dXMgPSBVbmljb2RlU3RyVG9Bc2NpaVN0clMgKFByb2ZpbGUtPlBh c3N3b3JkLCAoQ0hBUjggDQorICopQXNjaWlQYXNzd29yZCwgKFN0ckxlbiAoUHJvZmlsZS0+UGFz c3dvcmQpICsgMSkpOyAgaWYgKCFFRklfRVJST1IgKFN0YXR1cykpIHsNCisgICAgU3RhdHVzID0g U3VwcGxpY2FudC0+U2V0RGF0YSAoDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgU3VwcGxp Y2FudCwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICBFZmlTdXBwbGljYW50ODAyMTFQc2tQ YXNzd29yZCwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICBBc2NpaVBhc3N3b3JkLA0KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIChTdHJMZW4gKFByb2ZpbGUtPlBhc3N3b3JkKSArIDEp ICogc2l6ZW9mIChDSEFSOCkNCisgICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KKyAgfQ0K Kw0KICAgWmVyb01lbSAoQXNjaWlQYXNzd29yZCwgQXNjaWlTdHJMZW4gKChDSEFSOCAqKUFzY2lp UGFzc3dvcmQpICsgMSk7DQogICBGcmVlUG9vbCAoQXNjaWlQYXNzd29yZCk7DQogDQpAQCAtNDY2 LDYgKzQ3Niw3IEBAIFdpZmlNZ3JDb25maWdFYXAgKA0KICAgKQ0KIHsNCiAgIEVGSV9TVEFUVVMg ICAgICAgICAgICAgICAgICAgICAgU3RhdHVzOw0KKyAgRUZJX1dJRklfUFJPRklMRV9TWU5DX1BS T1RPQ09MICAqV2lGaVByb2ZpbGVTeW5jUHJvdG9jb2w7DQogICBFRklfRUFQX0NPTkZJR1VSQVRJ T05fUFJPVE9DT0wgICpFYXBDb25maWc7DQogICBFRklfRUFQX1RZUEUgICAgICAgICAgICAgICAg ICAgIEVhcEF1dGhNZXRob2Q7DQogICBFRklfRUFQX1RZUEUgICAgICAgICAgICAgICAgICAgIEVh cFNlY29uZEF1dGhNZXRob2Q7DQpAQCAtNTY3LDcgKzU3OCwxMyBAQCBXaWZpTWdyQ29uZmlnRWFw ICgNCiAgICAgICByZXR1cm4gRUZJX09VVF9PRl9SRVNPVVJDRVM7DQogICAgIH0NCiANCi0gICAg VW5pY29kZVN0clRvQXNjaWlTdHJTIChQcm9maWxlLT5FYXBJZGVudGl0eSwgSWRlbnRpdHksIElk ZW50aXR5U2l6ZSk7DQorICAgIFN0YXR1cyA9IGdCUy0+TG9jYXRlUHJvdG9jb2wgKCZnRWZpV2lG aVByb2ZpbGVTeW5jUHJvdG9jb2xHdWlkLCBOVUxMLCAoVk9JRCAqKikmV2lGaVByb2ZpbGVTeW5j UHJvdG9jb2wpOw0KKyAgICBpZiAoIUVGSV9FUlJPUiAoU3RhdHVzKSkgew0KKyAgICAgIENvcHlN ZW0gKElkZW50aXR5LCAmUHJvZmlsZS0+RWFwSWRlbnRpdHksIElkZW50aXR5U2l6ZSk7DQorICAg IH0gZWxzZSB7DQorICAgICAgVW5pY29kZVN0clRvQXNjaWlTdHJTIChQcm9maWxlLT5FYXBJZGVu dGl0eSwgSWRlbnRpdHksIElkZW50aXR5U2l6ZSk7DQorICAgIH0NCisNCiAgICAgU3RhdHVzID0g RWFwQ29uZmlnLT5TZXREYXRhICgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgIEVhcENvbmZp ZywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgIEVGSV9FQVBfVFlQRV9JREVOVElUWSwgQEAg LTg5Miw2ICs5MDksMTMzIEBAIFdpZmlNZ3JQcmVwYXJlQ29ubmVjdGlvbiAoDQogICByZXR1cm4g RUZJX1NVQ0NFU1M7DQogfQ0KIA0KKy8qKg0KKyAgV2lsbCByZXNldCBOaUMgZGF0YSwgZ2V0IHBy b2ZpbGUgZnJvbSBwcm9maWxlIHN5bmMgZHJpdmVyLCBhbmQgc2VuZCANCitmb3INCisgIGFub3Ro ZXIgY29ubmVjdGlvbiBhdHRlbXB0LlRoaXMgZnVuY3Rpb24gc2hvdWxkIG5vdCBiZSBjYWxsZWQg bW9yZSANCit0aGFuDQorICAzIHRpbWVzLg0KKw0KKyAgQHBhcmFtW2luXSAgV2lGaVByb2ZpbGVT eW5jUHJvdG9jb2wgIFRoZSB0YXJnZXQgbmV0d29yayBwcm9maWxlIHRvIGNvbm5lY3QuDQorDQor ICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICAgICAgICAgVGhlIG9wZXJhdGlvbiBpcyBj b21wbGV0ZWQuDQorICBAcmV0dmFsIG90aGVyICAgICAgICAgICAgICAgICAgICAgICAgT3BlcmF0 aW9uIGZhaWx1cmUuDQorDQorKiovDQorRUZJX1NUQVRVUw0KK0Nvbm5lY3Rpb25SZXRyeSAoDQor ICBJTiAgIEVGSV9XSUZJX1BST0ZJTEVfU1lOQ19QUk9UT0NPTCAgKldpRmlQcm9maWxlU3luY1By b3RvY29sDQorICApDQorew0KKyAgRUZJX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTdGF0dXM7DQorICBXSUZJX01HUl9ERVZJQ0VfREFUQSAgICAgICAgICAgICAgICAgICAg ICpOaWM7DQorICBFRklfV0lSRUxFU1NfTUFDX0NPTk5FQ1RJT05fSUlfUFJPVE9DT0wgICpXbXA7 DQorICBFRklfU1VQUExJQ0FOVF9QUk9UT0NPTCAgICAgICAgICAgICAgICAgICpTdXBwbGljYW50 Ow0KKyAgRUZJX0VBUF9DT05GSUdVUkFUSU9OX1BST1RPQ09MICAgICAgICAgICAqRWFwQ29uZmln Ow0KKw0KKyAgTmljID0gTlVMTDsNCisNCisgIFN0YXR1cyA9IGdCUy0+TG9jYXRlUHJvdG9jb2wg KA0KKyAgICAgICAgICAgICAgICAgICZnRWZpV2lGaTJQcm90b2NvbEd1aWQsDQorICAgICAgICAg ICAgICAgICAgTlVMTCwNCisgICAgICAgICAgICAgICAgICAoVk9JRCAqKikmV21wDQorICAgICAg ICAgICAgICAgICAgKTsNCisgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCisgICAgcmV0dXJu IFN0YXR1czsNCisgIH0NCisNCisgIFN0YXR1cyA9IGdCUy0+TG9jYXRlUHJvdG9jb2wgKA0KKyAg ICAgICAgICAgICAgICAgICZnRWZpU3VwcGxpY2FudFByb3RvY29sR3VpZCwNCisgICAgICAgICAg ICAgICAgICBOVUxMLA0KKyAgICAgICAgICAgICAgICAgIChWT0lEICoqKSZTdXBwbGljYW50DQor ICAgICAgICAgICAgICAgICAgKTsNCisgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCisgICAg U3VwcGxpY2FudCA9IE5VTEw7DQorICB9DQorDQorICBTdGF0dXMgPSBnQlMtPkxvY2F0ZVByb3Rv Y29sICgNCisgICAgICAgICAgICAgICAgICAmZ0VmaUVhcENvbmZpZ3VyYXRpb25Qcm90b2NvbEd1 aWQsDQorICAgICAgICAgICAgICAgICAgTlVMTCwNCisgICAgICAgICAgICAgICAgICAoVk9JRCAq KikmRWFwQ29uZmlnDQorICAgICAgICAgICAgICAgICAgKTsNCisgIGlmIChFRklfRVJST1IgKFN0 YXR1cykpIHsNCisgICAgRWFwQ29uZmlnID0gTlVMTDsNCisgIH0NCisNCisgIC8vDQorICAvLyBJ bml0aWFsaXplIE5pYyBkZXZpY2UgZGF0YQ0KKyAgLy8NCisgIE5pYyA9IEFsbG9jYXRlWmVyb1Bv b2wgKHNpemVvZiAoV0lGSV9NR1JfREVWSUNFX0RBVEEpKTsgIGlmIChOaWMgPT0NCisgTlVMTCkg ew0KKyAgICBTdGF0dXMgPSBFRklfT1VUX09GX1JFU09VUkNFUzsNCisgICAgcmV0dXJuIFN0YXR1 czsNCisgIH0NCisNCisgIE5pYy0+U2lnbmF0dXJlICAgICAgICAgICA9IFdJRklfTUdSX0RFVklD RV9EQVRBX1NJR05BVFVSRTsNCisgIE5pYy0+UHJpdmF0ZSAgICAgICAgICAgICA9IG1Qcml2YXRl Ow0KKyAgTmljLT5XbXAgICAgICAgICAgICAgICAgID0gV21wOw0KKyAgTmljLT5TdXBwbGljYW50 ICAgICAgICAgID0gU3VwcGxpY2FudDsNCisgIE5pYy0+RWFwQ29uZmlnICAgICAgICAgICA9IEVh cENvbmZpZzsNCisgIE5pYy0+VXNlclNlbGVjdGVkUHJvZmlsZSA9IE5VTEw7DQorICBOaWMtPk9u ZVRpbWVTY2FuUmVxdWVzdCAgPSBGQUxTRTsNCisNCisgIGlmIChOaWMtPlN1cHBsaWNhbnQgIT0g TlVMTCkgew0KKyAgICBTdGF0dXMgPSBXaWZpTWdyR2V0U3VwcG9ydGVkU3VpdGVzIChOaWMpOyAg fQ0KKw0KKyAgaWYgKCFFRklfRVJST1IgKFN0YXR1cykpIHsNCisgICAgSW5pdGlhbGl6ZUxpc3RI ZWFkICgmTmljLT5Qcm9maWxlTGlzdCk7DQorDQorICAgIE5pYy0+Q29ubmVjdFBlbmRpbmdOZXR3 b3JrID0gKFdJRklfTUdSX05FVFdPUktfUFJPRklMRSAqKUFsbG9jYXRlWmVyb1Bvb2wgKHNpemVv ZiAoV0lGSV9NR1JfTkVUV09SS19QUk9GSUxFKSk7DQorICAgIGlmIChOaWMtPkNvbm5lY3RQZW5k aW5nTmV0d29yayA9PSBOVUxMKSB7DQorICAgICAgU3RhdHVzID0gRUZJX09VVF9PRl9SRVNPVVJD RVM7DQorICAgICAgREVCVUcgKChERUJVR19FUlJPUiwgIltXaUZpIENvbm5lY3Rpb24gTWFuYWdl cl0gRmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IgQ29ubmVjdFBlbmRpbmdOZXR3b3JrXG4i KSk7DQorICAgICAgZ290byBFUlJPUjsNCisgICAgfQ0KKw0KKyAgICBTdGF0dXMgPSBXaUZpUHJv ZmlsZVN5bmNQcm90b2NvbC0+V2lmaVByb2ZpbGVTeW5jR2V0UHJvZmlsZSAoTmljLT5Db25uZWN0 UGVuZGluZ05ldHdvcmssIE5pYy0+TWFjQWRkcmVzcyk7DQorICAgIGlmICghRUZJX0VSUk9SIChT dGF0dXMpICYmIChOaWMtPkNvbm5lY3RQZW5kaW5nTmV0d29yayAhPSBOVUxMKSkgew0KKyAgICAg IFN0YXR1cyA9IFdpZmlNZ3JDb25uZWN0VG9OZXR3b3JrIChOaWMsIE5pYy0+Q29ubmVjdFBlbmRp bmdOZXR3b3JrKTsNCisgICAgICBpZiAoIUVGSV9FUlJPUiAoU3RhdHVzKSkgew0KKyAgICAgICAg cmV0dXJuIFN0YXR1czsNCisgICAgICB9DQorICAgIH0gZWxzZSB7DQorICAgICAgREVCVUcgKChE RUJVR19FUlJPUiwgIltXaUZpIENvbm5lY3Rpb24gTWFuYWdlcl0gRmFpbGVkIHRvIGdldCBXaUZp IHByb2ZpbGUgd2l0aCBzdGF0dXMgJXJcbiIsIFN0YXR1cykpOw0KKyAgICB9DQorICB9IGVsc2Ug ew0KKyAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiW1dpRmkgQ29ubmVjdGlvbiBNYW5hZ2VyXSBG YWlsZWQgdG8gZ2V0IA0KKyBTdXBwb3J0ZWQgc3VpdGVzIHdpdGggc3RhdHVzICVyXG4iLCBTdGF0 dXMpKTsgIH0NCisNCisgIGlmIChOaWMtPkNvbm5lY3RQZW5kaW5nTmV0d29yayAhPSBOVUxMKSB7 DQorICAgIGlmIChOaWMtPkNvbm5lY3RQZW5kaW5nTmV0d29yay0+TmV0d29yay5BS01TdWl0ZSAh PSBOVUxMKSB7DQorICAgICAgRnJlZVBvb2wgKE5pYy0+Q29ubmVjdFBlbmRpbmdOZXR3b3JrLT5O ZXR3b3JrLkFLTVN1aXRlKTsNCisgICAgfQ0KKw0KKyAgICBpZiAoTmljLT5Db25uZWN0UGVuZGlu Z05ldHdvcmstPk5ldHdvcmsuQ2lwaGVyU3VpdGUgIT0gTlVMTCkgew0KKyAgICAgIEZyZWVQb29s IChOaWMtPkNvbm5lY3RQZW5kaW5nTmV0d29yay0+TmV0d29yay5DaXBoZXJTdWl0ZSk7DQorICAg IH0NCisNCisgICAgRnJlZVBvb2wgKE5pYy0+Q29ubmVjdFBlbmRpbmdOZXR3b3JrKTsgIH0NCisN CitFUlJPUjoNCisgIGlmIChOaWMtPlN1cHBsaWNhbnQgIT0gTlVMTCkgew0KKyAgICBpZiAoTmlj LT5TdXBwb3J0ZWRTdWl0ZXMuU3VwcG9ydGVkQUtNU3VpdGVzICE9IE5VTEwpIHsNCisgICAgICBG cmVlUG9vbCAoTmljLT5TdXBwb3J0ZWRTdWl0ZXMuU3VwcG9ydGVkQUtNU3VpdGVzKTsNCisgICAg fQ0KKw0KKyAgICBpZiAoTmljLT5TdXBwb3J0ZWRTdWl0ZXMuU3VwcG9ydGVkU3dDaXBoZXJTdWl0 ZXMgIT0gTlVMTCkgew0KKyAgICAgIEZyZWVQb29sIChOaWMtPlN1cHBvcnRlZFN1aXRlcy5TdXBw b3J0ZWRTd0NpcGhlclN1aXRlcyk7DQorICAgIH0NCisNCisgICAgaWYgKE5pYy0+U3VwcG9ydGVk U3VpdGVzLlN1cHBvcnRlZEh3Q2lwaGVyU3VpdGVzICE9IE5VTEwpIHsNCisgICAgICBGcmVlUG9v bCAoTmljLT5TdXBwb3J0ZWRTdWl0ZXMuU3VwcG9ydGVkSHdDaXBoZXJTdWl0ZXMpOw0KKyAgICB9 DQorICB9DQorDQorICBGcmVlUG9vbCAoTmljKTsNCisNCisgIHJldHVybiBTdGF0dXM7DQorfQ0K Kw0KIC8qKg0KICAgVGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBjb25uZWN0IG9wZXJhdGlvbi4N CiANCkBAIC05MDgsMTIgKzEwNTIsMTMgQEAgV2lmaU1nck9uQ29ubmVjdEZpbmlzaGVkICgNCiAg IElOICBWT0lEICAgICAgICpDb250ZXh0DQogICApDQogew0KLSAgRUZJX1NUQVRVUyAgICAgICAg ICAgICAgICAgU3RhdHVzOw0KLSAgV0lGSV9NR1JfTUFDX0NPTkZJR19UT0tFTiAgKkNvbmZpZ1Rv a2VuOw0KLSAgV0lGSV9NR1JfTkVUV09SS19QUk9GSUxFICAgKkNvbm5lY3RlZFByb2ZpbGU7DQot ICBVSU5UOCAgICAgICAgICAgICAgICAgICAgICBTZWN1cml0eVR5cGU7DQotICBVSU5UOCAgICAg ICAgICAgICAgICAgICAgICBTU0lkTGVuOw0KLSAgQ0hBUjggICAgICAgICAgICAgICAgICAgICAg KkFzY2lpU1NJZDsNCisgIEVGSV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgU3RhdHVzOw0K KyAgV0lGSV9NR1JfTUFDX0NPTkZJR19UT0tFTiAgICAgICAqQ29uZmlnVG9rZW47DQorICBXSUZJ X01HUl9ORVRXT1JLX1BST0ZJTEUgICAgICAgICpDb25uZWN0ZWRQcm9maWxlOw0KKyAgVUlOVDgg ICAgICAgICAgICAgICAgICAgICAgICAgICBTZWN1cml0eVR5cGU7DQorICBVSU5UOCAgICAgICAg ICAgICAgICAgICAgICAgICAgIFNTSWRMZW47DQorICBDSEFSOCAgICAgICAgICAgICAgICAgICAg ICAgICAgICpBc2NpaVNTSWQ7DQorICBFRklfV0lGSV9QUk9GSUxFX1NZTkNfUFJPVE9DT0wgICpX aUZpUHJvZmlsZVN5bmNQcm90b2NvbDsNCiANCiAgIEFTU0VSVCAoQ29udGV4dCAhPSBOVUxMKTsN CiANCkBAIC05MjUsNiArMTA3MCwyNCBAQCBXaWZpTWdyT25Db25uZWN0RmluaXNoZWQgKA0KICAg QVNTRVJUIChDb25maWdUb2tlbi0+VHlwZSA9PSBUb2tlblR5cGVDb25uZWN0TmV0d29ya1Rva2Vu KTsNCiANCiAgIEFTU0VSVCAoQ29uZmlnVG9rZW4tPlRva2VuLkNvbm5lY3ROZXR3b3JrVG9rZW4g IT0gTlVMTCk7DQorDQorICBTdGF0dXMgPSBnQlMtPkxvY2F0ZVByb3RvY29sICgmZ0VmaVdpRmlQ cm9maWxlU3luY1Byb3RvY29sR3VpZCwgTlVMTCwgDQorIChWT0lEICoqKSZXaUZpUHJvZmlsZVN5 bmNQcm90b2NvbCk7ICBpZiAoIUVGSV9FUlJPUiAoU3RhdHVzKSkgew0KKyAgICBXaUZpUHJvZmls ZVN5bmNQcm90b2NvbC0+V2lmaVByb2ZpbGVTeW5jU2V0Q29ubmVjdFN0YXRlIChDb25maWdUb2tl bi0+VG9rZW4uQ29ubmVjdE5ldHdvcmtUb2tlbi0+UmVzdWx0Q29kZSk7DQorICAgIGlmICgobVdp ZmlDb25uZWN0aW9uQ291bnQgPCBNQVhfV0lGSV9DT05ORVRJT05fQVRURU1QVFMpICYmDQorICAg ICAgICAoQ29uZmlnVG9rZW4tPlRva2VuLkNvbm5lY3ROZXR3b3JrVG9rZW4tPlJlc3VsdENvZGUg IT0gQ29ubmVjdFN1Y2Nlc3MpKQ0KKyAgICB7DQorICAgICAgbVdpZmlDb25uZWN0aW9uQ291bnQr KzsNCisgICAgICBnQlMtPkNsb3NlRXZlbnQgKEV2ZW50KTsNCisgICAgICBTdGF0dXMgPSBDb25u ZWN0aW9uUmV0cnkgKFdpRmlQcm9maWxlU3luY1Byb3RvY29sKTsNCisgICAgICBpZiAoIUVGSV9F UlJPUiAoU3RhdHVzKSkgew0KKyAgICAgICAgcmV0dXJuOw0KKyAgICAgIH0NCisNCisgICAgICBX aUZpUHJvZmlsZVN5bmNQcm90b2NvbC0+V2lmaVByb2ZpbGVTeW5jU2V0Q29ubmVjdFN0YXRlIChT dGF0dXMpOw0KKyAgICB9DQorICB9DQorDQogICBpZiAoQ29uZmlnVG9rZW4tPlRva2VuLkNvbm5l Y3ROZXR3b3JrVG9rZW4tPlN0YXR1cyAhPSBFRklfU1VDQ0VTUykgew0KICAgICBpZiAoQ29uZmln VG9rZW4tPk5pYy0+T25lVGltZUNvbm5lY3RSZXF1ZXN0KSB7DQogICAgICAgLy8NCmRpZmYgLS1n aXQgYS9OZXR3b3JrUGtnL1dpZmlDb25uZWN0aW9uTWFuYWdlckR4ZS9XaWZpQ29ubmVjdGlvbk1n ck1pc2MuYyBiL05ldHdvcmtQa2cvV2lmaUNvbm5lY3Rpb25NYW5hZ2VyRHhlL1dpZmlDb25uZWN0 aW9uTWdyTWlzYy5jDQppbmRleCA0YWQ1NjQzYzI0Li44N2FkZmM1MDMzIDEwMDY0NA0KLS0tIGEv TmV0d29ya1BrZy9XaWZpQ29ubmVjdGlvbk1hbmFnZXJEeGUvV2lmaUNvbm5lY3Rpb25NZ3JNaXNj LmMNCisrKyBiL05ldHdvcmtQa2cvV2lmaUNvbm5lY3Rpb25NYW5hZ2VyRHhlL1dpZmlDb25uZWN0 aW9uTWdyTWlzYy5jDQpAQCAtNjcyLDEwICs2NzIsMjMgQEAgV2lmaU1nckNsZWFuUHJvZmlsZVNl Y3JldHMgKA0KICAgSU4gIFdJRklfTUdSX05FVFdPUktfUFJPRklMRSAgKlByb2ZpbGUNCiAgICkN CiB7DQorICBFRklfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgIFN0YXR1czsNCisgIEVGSV9X SUZJX1BST0ZJTEVfU1lOQ19QUk9UT0NPTCAgKldpRmlQcm9maWxlU3luY1Byb3RvY29sOw0KKw0K ICAgWmVyb01lbSAoUHJvZmlsZS0+UGFzc3dvcmQsIHNpemVvZiAoQ0hBUjE2KSAqIFBBU1NXT1JE X1NUT1JBR0VfU0laRSk7DQogICBaZXJvTWVtIChQcm9maWxlLT5FYXBQYXNzd29yZCwgc2l6ZW9m IChDSEFSMTYpICogUEFTU1dPUkRfU1RPUkFHRV9TSVpFKTsNCiAgIFplcm9NZW0gKFByb2ZpbGUt PlByaXZhdGVLZXlQYXNzd29yZCwgc2l6ZW9mIChDSEFSMTYpICogUEFTU1dPUkRfU1RPUkFHRV9T SVpFKTsNCiANCisgIC8vDQorICAvLyAgV2hlbiBFRkkgV2lGaSBwcm9maWxlIHN5bmMgcHJvdG9j b2wgaXMgZm91bmQgdGhlIHN5c3RlbSBpcyANCisgcGVyZm9ybWluZyBhIHJlY292ZXJ5IGJvb3Qg aW4gc2VjdXJlICAvLyAgYm9vdCBtb2RlLiBUaGUgcHJvZmlsZSBzeW5jIA0KKyBkcml2ZXIgd2ls bCBtYW5hZ2UgdGhlIENBIGNlcnRpZmljYXRlLCBjbGllbnQgY2VydGlmaWNhdGUsIGFuZCBrZXkg IC8vICBkYXRhLCBjbGVhbmluZyB0aGVtIGF0IGV4aXQgYm9vdCBzZXJ2aWNlcy4NCisgIC8vDQor ICBTdGF0dXMgPSBnQlMtPkxvY2F0ZVByb3RvY29sICgmZ0VmaVdpRmlQcm9maWxlU3luY1Byb3Rv Y29sR3VpZCwgTlVMTCwgDQorIChWT0lEICoqKSZXaUZpUHJvZmlsZVN5bmNQcm90b2NvbCk7ICBp ZiAoIUVGSV9FUlJPUiAoU3RhdHVzKSkgew0KKyAgICByZXR1cm47DQorICB9DQorDQogICBpZiAo UHJvZmlsZS0+Q0FDZXJ0RGF0YSAhPSBOVUxMKSB7DQogICAgIFplcm9NZW0gKFByb2ZpbGUtPkNB Q2VydERhdGEsIFByb2ZpbGUtPkNBQ2VydFNpemUpOw0KICAgICBGcmVlUG9vbCAoUHJvZmlsZS0+ Q0FDZXJ0RGF0YSk7DQotLQ0KMi4zNy4zLndpbmRvd3MuMQ0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN Cg==