From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=40.92.2.14; helo=nam01-sn1-obe.outbound.protection.outlook.com; envelope-from=vanjeff_919@hotmail.com; receiver=edk2-devel@lists.01.org Received: from NAM01-SN1-obe.outbound.protection.outlook.com (mail-oln040092002014.outbound.protection.outlook.com [40.92.2.14]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 098BF202E6182 for ; Fri, 3 Nov 2017 01:17:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=N43DpBItEA0FnprhKlyjGS9yReEA4OulIOTMOdPueYA=; b=lLAYydeb+eb55ThPo2u7uMZqN5zuc4cNTKO4vFu325yi7UEONrmMEaYA+uUoFhS/mMUIxuOksCUO6it+NjORx5T08QiXvGvNE8oTeOgouAISVhMC6YUbNrnQbkkHSQSEsR74J0FxGX8hwP94/iG5AOJUr0S08f1spng1snhOniopBlQcgM8jciGnswG4bY7/BMZr7tg0bS49g1QkKrmUroaceDOHeAozFUS6y1at+bP4hPkmP9PvY2Y/2fy/mhjrTb0fHU34k5YHzgr0JWqv0782Qd5A7wPfFHNCkbo8G9ABpqmHe7v9u1SnKsqIaskNtUpzDDPrtv8po32IH24dnQ== Received: from BN3NAM01FT047.eop-nam01.prod.protection.outlook.com (10.152.66.55) by BN3NAM01HT062.eop-nam01.prod.protection.outlook.com (10.152.66.196) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.20.178.5; Fri, 3 Nov 2017 08:21:23 +0000 Received: from CY1PR19MB0283.namprd19.prod.outlook.com (10.152.66.58) by BN3NAM01FT047.mail.protection.outlook.com (10.152.66.97) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.20.178.5 via Frontend Transport; Fri, 3 Nov 2017 08:21:23 +0000 Received: from CY1PR19MB0283.namprd19.prod.outlook.com ([10.163.54.13]) by CY1PR19MB0283.namprd19.prod.outlook.com ([10.163.54.13]) with mapi id 15.20.0197.017; Fri, 3 Nov 2017 08:21:22 +0000 From: Fan Jeff To: "Yao, Jiewen" , "Kinney, Michael D" , "Wang, Jian J" , "edk2-devel@lists.01.org" CC: "Dong, Eric" , "Zeng, Star" Thread-Topic: [PATCH 3/3] UefiCpuPkg/CpuExceptionHandlerLib: Add stack switch support Thread-Index: AQHTUrSw3pJrU3cRZEmMYx4YdaVISaL+y3RDgADfOwCAAjUBgIAAcILq Date: Fri, 3 Nov 2017 08:21:22 +0000 Message-ID: References: <20171031142412.21680-1-jian.j.wang@intel.com> <20171031142412.21680-4-jian.j.wang@intel.com>, <74D8A39837DF1E4DA445A8C0B3885C503AA0AED6@shsmsx102.ccr.corp.intel.com> , <74D8A39837DF1E4DA445A8C0B3885C503AA0DA30@shsmsx102.ccr.corp.intel.com> In-Reply-To: <74D8A39837DF1E4DA445A8C0B3885C503AA0DA30@shsmsx102.ccr.corp.intel.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=hotmail.com; x-incomingtopheadermarker: OriginalChecksum:D99BAD7A0F5E7A13329C01E024E61932274ACEC3E984F7E7F0747A85A0F1226A; UpperCasedChecksum:21E1BC2222E61FEE5E0278DD53E2021C96AD7B202D4BC89225AA44C95CFA11B4; SizeAsReceived:7686; Count:47 x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [QR2gwognQrsRppXvRDXM/o2QVxnzkFoP] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; BN3NAM01HT062; 7:r4FjHksup40gBdKyWi5zFcOZP9Qle7cu6TX5ooG6KoEdbRTj04VMtef0jCiFOdODPERKPgcgHra6VL7/UdHJXB/prsZGm8JFV3j5Q90YOdh9lh6OiIlc0c9uDn+XxzBjPu3FyMO7GB2MLEPtOsjAy8UsnMF4Zquo//CRMYMQ5QyTw3lfSqB2io5Shj3abxuXOOEAwSjOifjbuRe4ybl7+BkGe8y2vHRu/vDXaOsJ5ZQE0CNmXOD3ZZSL/jdoU3JQ x-incomingheadercount: 47 x-eopattributedmessage: 0 x-ms-office365-filtering-correlation-id: 2f01a32f-6b1a-46b7-c3f0-08d52293de42 x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201702061074)(5061506573)(5061507331)(1603103135)(2017031320274)(2017031324274)(2017031323274)(2017031322404)(1601125374)(1603101448)(1701031045); SRVR:BN3NAM01HT062; x-ms-traffictypediagnostic: BN3NAM01HT062: x-exchange-antispam-report-test: UriScan:(166708455590820)(788757137089)(162533806227266)(130873036417446)(194151415913766)(21748063052155)(228905959029699); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(444000031); SRVR:BN3NAM01HT062; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BN3NAM01HT062; x-forefront-prvs: 0480A51D4A x-forefront-antispam-report: SFV:NSPM; SFS:(7070007)(98901004); DIR:OUT; SFP:1901; SCL:1; SRVR:BN3NAM01HT062; H:CY1PR19MB0283.namprd19.prod.outlook.com; FPR:; SPF:None; LANG:; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: hotmail.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2f01a32f-6b1a-46b7-c3f0-08d52293de42 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Nov 2017 08:21:22.5841 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3NAM01HT062 X-Content-Filtered-By: Mailman/MimeDel 2.1.22 Subject: =?UTF-8?B?562U5aSNOiBbUEFUQ0ggMy8zXSBVZWZpQ3B1UGtnL0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWI6IEFkZCBzdGFjayBzd2l0Y2ggc3VwcG9ydA==?= X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Nov 2017 08:17:32 -0000 Content-Language: zh-CN Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 SmlhbiwNCg0KQ291bGQgeW91IHVzZSBzb21lIGdsb2JhbCB2YXJpYWJsZXMgaW4gaHR0cHM6Ly9n aXRodWIuY29tL3RpYW5vY29yZS9lZGsyL2Jsb2IvbWFzdGVyL1VlZmlDcHVQa2cvTGlicmFyeS9D cHVFeGNlcHRpb25IYW5kbGVyTGliL0R4ZUV4Y2VwdGlvbi5jIHRvIGF2b2lkIGFkZGluZyBuZXcg QVBJPw0KDQpKZWZmDQq3orz+yMs6IFlhbywgSmlld2VuPG1haWx0bzpqaWV3ZW4ueWFvQGludGVs LmNvbT4NCreiy83KsbzkOiAyMDE3xOoxMdTCM8jVIDk6MjQNCsrVvP7IyzogS2lubmV5LCBNaWNo YWVsIEQ8bWFpbHRvOm1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgRmFuIEplZmY8bWFpbHRv OnZhbmplZmZfOTE5QGhvdG1haWwuY29tPjsgV2FuZywgSmlhbiBKPG1haWx0bzpqaWFuLmoud2Fu Z0BpbnRlbC5jb20+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzxtYWlsdG86ZWRrMi1kZXZlbEBs aXN0cy4wMS5vcmc+DQqzrcvNOiBEb25nLCBFcmljPG1haWx0bzplcmljLmRvbmdAaW50ZWwuY29t PjsgWmVuZywgU3RhcjxtYWlsdG86c3Rhci56ZW5nQGludGVsLmNvbT4NCtb3zOI6IFJFOiBbUEFU Q0ggMy8zXSBVZWZpQ3B1UGtnL0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWI6IEFkZCBzdGFjayBzd2l0 Y2ggc3VwcG9ydA0KDQpISSBKaWFuDQpUaGVyZSBpcyBhbm90aGVyIHBvdGVudGlhbCBwcm9ibGVt Lg0KDQpUaGlzIGZlYXR1cmUgaXMgZW5hYmxlZCBpbiBJbml0aWFsaXplQ3B1SW50ZXJydXB0SGFu ZGxlcnMoKS4gSG93ZXZlciwgd2UgZXhwZWN0IHRoaXMgaXMgZW5hYmxlZCBpbiBJbml0aWFsaXpl Q3B1RXhjZXB0aW9uSGFuZGxlcnMoKS4NCg0KSW4gb3JkZXIgdG8gZ2V0IHRoZSBleGNlcHRpb24g c3RhY2sgaW4gSW5pdGlhbGl6ZUNwdUV4Y2VwdGlvbkhhbmRsZXJzKCkuIFdlIGNhbiBoYXZlIDIg d2F5czoNCkEpIExldCBJbml0aWFsaXplQ3B1RXhjZXB0aW9uSGFuZGxlcnMoKSBhbGxvY2F0ZSB0 aGUgZXhjZXB0aW9uIHN0YWNrLg0KQikgTGV0IGNhbGxlciB0byBwYXNzIHRoZSBleGNlcHRpb24g c3RhY2sgdG8gSW5pdGlhbGl6ZUNwdUV4Y2VwdGlvbkhhbmRsZXJzKCkuDQoNCkZvciBBKSwgaXQg aXMgaGFyZCwgYmVjYXVzZSBEeGVDb3JlIGNhbGxzIEluaXRpYWxpemVDcHVFeGNlcHRpb25IYW5k bGVycygpIGVhcmxpZXIgdGhhbiBDb3JlSW5pdGlhbGl6ZU1lbW9yeVNlcnZpY2VzKCkuDQpGb3Ig QiksIEluaXRpYWxpemVDcHVFeGNlcHRpb25IYW5kbGVycygpIGludGVyZmFjZSBkb2VzIG5vdCBj b250YWluIHN1Y2ggaW5mb3JtYXRpb24uIFdlIG1pZ2h0IG5lZWQgYWRkIGEgbmV3IEFQSSB0byBh ZGQgdGhlIGV4Y2VwdGlvbiBzdGFjayBpbmZvcm1hdGlvbiwgc3VjaCBhcyBJbml0aWFsaXplQ3B1 U3dpdGNoU3RhY2tFeGNlcHRpb25IYW5kbGVycyAoKS4NCg0KT25jZSB0aGlzIGZlYXR1cmUgaXMg ZG9uZSwgY2FuIHdlIGNsZWFuIHVwIHRoZSBTTU0gY29kZSB0byB1c2UgdGhlIG5ldyBBUEksIGlu c3RlYWQgb2YgZHVwbGljYXRlIHRoZSBTTU0gY29weSBvZiBleGNlcHRpb24gaGFuZGxlciA/IFRo ZSBleGlzdGluZyBTTU0gY29weSBoYXMgc29tZSBhc3N1bXB0aW9uIG9uIENSNCBhbmQgRlhTQVZF L1JFU1RPUkUsIGFuZCBpdCBicm9rZSBRdWFyayBwbGF0Zm9ybS4NCg0KVGhhbmsgeW91DQpZYW8g Smlld2VuDQoNCg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEtpbm5l eSwgTWljaGFlbCBEDQo+IFNlbnQ6IFdlZG5lc2RheSwgTm92ZW1iZXIgMSwgMjAxNyAxMTo0MyBQ TQ0KPiBUbzogRmFuIEplZmYgPHZhbmplZmZfOTE5QGhvdG1haWwuY29tPjsgWWFvLCBKaWV3ZW4g PGppZXdlbi55YW9AaW50ZWwuY29tPjsNCj4gV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRl bC5jb20+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzsgS2lubmV5LCBNaWNoYWVsDQo+IEQgPG1p Y2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiBDYzogRG9uZywgRXJpYyA8ZXJpYy5kb25nQGlu dGVsLmNvbT47IFplbmcsIFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJF OiBbUEFUQ0ggMy8zXSBVZWZpQ3B1UGtnL0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWI6IEFkZCBzdGFj ayBzd2l0Y2gNCj4gc3VwcG9ydA0KPg0KPiBJIGFncmVlIHRoYXQgYWRkaW5nIEFzbVdyaXRlVHIs IElBMzJfVEFTS19TVEFURV9TRUdNRU5ULA0KPiBJQTMyX1RTU19ERVNDUklQVE9SIHRvIE1kZVBr ZyBCYXNlTGliIGlzIGEgZ29vZCBpZGVhLg0KPg0KPiBNaWtlDQo+DQo+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+IEZyb206IGVkazItZGV2ZWwgW21haWx0bzplZGsyLWRldmVsLWJvdW5j ZXNAbGlzdHMuMDEub3JnXSBPbiBCZWhhbGYgT2YgRmFuDQo+IEplZmYNCj4gU2VudDogVHVlc2Rh eSwgT2N0b2JlciAzMSwgMjAxNyA3OjMzIFBNDQo+IFRvOiBZYW8sIEppZXdlbiA8amlld2VuLnlh b0BpbnRlbC5jb20+OyBXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT47DQo+IGVk azItZGV2ZWxAbGlzdHMuMDEub3JnDQo+IENjOiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5k Lmtpbm5leUBpbnRlbC5jb20+OyBEb25nLCBFcmljDQo+IDxlcmljLmRvbmdAaW50ZWwuY29tPjsg WmVuZywgU3RhciA8c3Rhci56ZW5nQGludGVsLmNvbT4NCj4gU3ViamVjdDogW2VkazJdILTwuLQ6 IFtQQVRDSCAzLzNdIFVlZmlDcHVQa2cvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYjogQWRkDQo+IHN0 YWNrIHN3aXRjaCBzdXBwb3J0DQo+DQo+IFBlciBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5v cmcvc2hvd19idWcuY2dpP2lkPTEwOSwgVFIgc2hvdWxkIGJlIHNldHVwDQo+IChTdWNoIGFzIGlu IER4ZUlwbFBlaW0pIGV2ZW4gdGhvdWdoIE5VTEwgQ3B1IEV4Y2VwdGlvbiBIYW5kbGVyIGluc3Rh bmNlIGlzDQo+IGNob3Nlbi4NCj4NCj4gRm9yIGxvbmcgdGVybSwgSSBhZ3JlZSB3ZSBuZWVkIHRv IG1vdmUgQXNtV3JpdGVUciwNCj4gSUEzMl9UQVNLX1NUQVRFX1NFR01FTlQsIElBMzJfVFNTX0RF U0NSSVBUT1IgdG8gTWRlUGtnKFN1Y2ggYXMgQmFzZUxpYikNCj4gRm9yIHRoaXMgcGF0Y2gsIEkg aGF2ZSBubyBzdHJvbmcgb3Bpbmlvbi4NCj4NCj4NCj4gt6K8/sjLOiBZYW8sIEppZXdlbjxtYWls dG86amlld2VuLnlhb0BpbnRlbC5jb20+DQo+ILeiy83KsbzkOiAyMDE3xOoxMdTCMcjVIDk6NTYN Cj4gytW8/sjLOiBXYW5nLCBKaWFuIEo8bWFpbHRvOmppYW4uai53YW5nQGludGVsLmNvbT47DQo+ IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnPG1haWx0bzplZGsyLWRldmVsQGxpc3RzLjAxLm9yZz4N Cj4gs63LzTogS2lubmV5LCBNaWNoYWVsIEQ8bWFpbHRvOm1pY2hhZWwuZC5raW5uZXlAaW50ZWwu Y29tPjsgRG9uZywNCj4gRXJpYzxtYWlsdG86ZXJpYy5kb25nQGludGVsLmNvbT47IFplbmcsIFN0 YXI8bWFpbHRvOnN0YXIuemVuZ0BpbnRlbC5jb20+DQo+INb3zOI6IFJlOiBbZWRrMl0gW1BBVENI IDMvM10gVWVmaUNwdVBrZy9DcHVFeGNlcHRpb25IYW5kbGVyTGliOiBBZGQgc3RhY2sNCj4gc3dp dGNoIHN1cHBvcnQNCj4NCj4gSGkgSmlhbg0KPiBUaGFua3MgZm9yIHRoZSBwYXRjaC4NCj4NCj4g Q2FuIHdlIG1vdmUgYWxsIElBMzIgZGVmaW5lZCBkYXRhIHN0cnVjdHVyZSBvciBmdW5jdGlvbiB0 byBNZGVQa2c/DQo+IFN1Y2ggYXM6IEFzbVdyaXRlVHIsIElBMzJfVEFTS19TVEFURV9TRUdNRU5U LCBJQTMyX1RTU19ERVNDUklQVE9SDQo+DQo+IEkgYW0gYWxzbyBjdXJpb3VzIHdoeSB3ZSB1c2Ug ZGlmZmVyZW50IHBvbGljeSBmb3Igb3RoZXIgYm9vdCBtb2RlLg0KPiBDYW4gd2UgdXNlIGNvbnNp c3RlbnQgcG9saWN5Pw0KPiA+ICsgIGlmIChQY2RHZXRCb29sIChQY2RDcHVTdGFja0d1YXJkKSkg ew0KPiA+ICsgICAgLy8NCj4gPiArICAgIC8vIFN0YWNrIEd1YXJkIHdvcmtzIHdpdGggdGhlIHN1 cHBvcnQgb2YgcGFnZSB0YWJsZSBlc3RhYmxpc2hlZCBhbmQNCj4gPiArICAgIC8vIG1lbW9yeSBt YW5hZ2VtZW50LiBTbyB3ZSBoYXZlIHRvIGV4Y2x1ZGUgdGhvc2UgYm9vdCBtb2Rlcw0KPiA+IHdp dGhvdXQNCj4gPiArICAgIC8vIHRoZW0uDQo+ID4gKyAgICAvLw0KPiA+ICsgICAgc3dpdGNoIChH ZXRCb290TW9kZUhvYigpKSB7DQo+ID4gKyAgICBjYXNlIEJPT1RfT05fRkxBU0hfVVBEQVRFOg0K PiA+ICsgICAgY2FzZSBCT09UX0lOX1JFQ09WRVJZX01PREU6DQo+ID4gKyAgICBjYXNlIEJPT1Rf T05fUzNfUkVTVU1FOg0KPiA+ICsgICAgICBicmVhazsNCj4gPiArDQo+ID4gKyAgICBkZWZhdWx0 Og0KPiA+ICsgICAgICBBcmNoU2V0dXBFeGNwZXRpb25TdGFjayAoSWR0VGFibGUpOw0KPiA+ICsg ICAgICBicmVhazsNCj4gPiArICAgIH0NCj4gPiArICB9DQo+DQo+DQo+IFRoYW5rIHlvdQ0KPiBZ YW8gSmlld2VuDQo+DQo+DQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9t OiBXYW5nLCBKaWFuIEoNCj4gPiBTZW50OiBUdWVzZGF5LCBPY3RvYmVyIDMxLCAyMDE3IDEwOjI0 IFBNDQo+ID4gVG86IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+ID4gQ2M6IFplbmcsIFN0YXIg PHN0YXIuemVuZ0BpbnRlbC5jb20+OyBEb25nLCBFcmljDQo+ID4gPGVyaWMuZG9uZ0BpbnRlbC5j b20+OyBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBLaW5uZXksDQo+ID4gTWlj aGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiBTdWJqZWN0OiBbUEFUQ0gg My8zXSBVZWZpQ3B1UGtnL0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWI6IEFkZCBzdGFjaw0KPiA+IHN3 aXRjaCBzdXBwb3J0DQo+ID4NCj4gPiBJZiBTdGFjayBHdWFyZCBpcyBlbmFibGVkIGFuZCB0aGVy ZSdzIHJlYWxseSBhIHN0YWNrIG92ZXJmbG93IGhhcHBlbmVkDQo+ID4gZHVyaW5nIGJvb3QsIGEg UGFnZSBGYXVsdCBleGNlcHRpb24gd2lsbCBiZSB0cmlnZ2VyZWQuIEJlY2F1c2UgdGhlDQo+ID4g c3RhY2sgaXMgb3V0IG9mIHVzYWdlLCB0aGUgZXhjZXB0aW9uIGhhbmRsZXIsIHdoaWNoIHNoYXJl cyB0aGUgc3RhY2sNCj4gPiB3aXRoIG5vcm1hbCBVRUZJIGRyaXZlciwgY2Fubm90IGJlIGV4ZWN1 dGVkIGFuZCBjYW5ub3QgZHVtcCB0aGUgcHJvY2Vzc29yDQo+IGluZm9ybWF0aW9uLg0KPiA+DQo+ ID4gV2l0aG91dCB0aG9zZSBpbmZvcm1hdGlvbiwgaXQncyB2ZXJ5IGRpZmZpY3VsdCBmb3IgdGhl IEJJT1MgZGV2ZWxvcGVycw0KPiA+IGxvY2F0ZSB0aGUgcm9vdCBjYXVzZSBvZiBzdGFjayBvdmVy Zmxvdy4gQW5kIHdpdGhvdXQgYSB3b3JrYWJsZSBzdGFjaywNCj4gPiB0aGUgZGV2ZWxvcGVyIGNh bm5vdCBldmVudCB1c2Ugc2luZ2xlIHN0ZXAgdG8gZGVidWcgdGhlIFVFRkkgZHJpdmVyIHdpdGgg SlRBRw0KPiBkZWJ1Z2dlci4NCj4gPg0KPiA+IEluIG9yZGVyIHRvIG1ha2Ugc3VyZSB0aGUgZXhj ZXB0aW9uIGhhbmRsZXIgdG8gZXhlY3V0ZSBub3JtYWxseSBhZnRlcg0KPiA+IHN0YWNrIG92ZXJm bG93LiBXZSBuZWVkIHNlcGFyYXRlIHN0YWNrcyBmb3IgZXhjZXB0aW9uIGhhbmRsZXJzIGluIGNh c2UNCj4gPiBvZiB1bnVzYWJsZSBzdGFjay4NCj4gPg0KPiA+IElBIHByb2Nlc3NvciBhbGxvd3Mg dG8gc3dpdGNoIHRvIGEgbmV3IHN0YWNrIGR1cmluZyBoYW5kbGluZyBpbnRlcnJ1cHQNCj4gPiBh bmQgZXhjZXB0aW9uLiBCdXQgWDY0IGFuZCBJQTMyIHByb3ZpZGVzIGRpZmZlcmVudCB3YXlzIHRv IG1ha2UgaXQuDQo+ID4gWDY0IHByb3ZpZGVzIGludGVycnVwdCBzdGFjayB0YWJsZSAoSVNUKSB0 byBhbGxvdyBtYXhpbXVtIDcgZGlmZmVyZW50DQo+ID4gZXhjZXB0aW9ucyB0byBoYXZlIG5ldyBz dGFjayBmb3IgaXRzIGhhbmRsZXIuIElBMzIgZG9lc24ndCBoYXZlIElTVA0KPiA+IG1lY2hhbmlz bSBhbmQgY2FuIG9ubHkgdXNlIHRhc2sgZ2F0ZSB0byBkbyBpdCBzaW5jZSB0YXNrIHN3aXRjaCBh bGxvd3MNCj4gPiB0byBsb2FkIGEgbmV3IHN0YWNrIHRocm91Z2ggaXRzIHRhc2stc3RhdGUgc2Vn bWVudCAoVFNTKS4NCj4gPg0KPiA+IE5vdGU6IFN0YWNrIHN3aXRjaCBuZWVkcyB0byBhbGxvY2F0 ZSBtZW1vcnkgcGFnZXMgdG8gYmUgbmV3IHN0YWNrcy4gU28gdGhpcw0KPiA+ICAgICAgIGZ1bmN0 aW9uYWxpdHkgd29ya3Mgb25seSBpbiB0aGUgYm9vdCBwaGFzZXMgY2FwYWJsZSBvZiBtZW1vcnkN Cj4gPiAgICAgICBhbGxvY2F0aW9uIChiZXNpZGVzIHRoZSBwYWdpbmcsIGZvciB0aGUgc2FrZSBv ZiBTdGFjayBHdWFyZCkuIEluDQo+ID4gICAgICAgb3RoZXIgd29yZHMsIG9ubHkgRFhFIHBoYXNl IGNhbiBzdXBwb3J0cyBTdGFjayBHdWFyZCB3aXRoIHN0YWNrDQo+IHN3aXRjaC4NCj4gPg0KPiA+ IENjOiBTdGFyIFplbmcgPHN0YXIuemVuZ0BpbnRlbC5jb20+DQo+ID4gQ2M6IEVyaWMgRG9uZyA8 ZXJpYy5kb25nQGludGVsLmNvbT4NCj4gPiBDYzogSmlld2VuIFlhbyA8amlld2VuLnlhb0BpbnRl bC5jb20+DQo+ID4gQ2M6IE1pY2hhZWwgS2lubmV5IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNv bT4NCj4gPiBTdWdnZXN0ZWQtYnk6IEF5ZWxsZXQgV29sbWFuIDxheWVsbGV0LndvbG1hbkBpbnRl bC5jb20+DQo+ID4gQ29udHJpYnV0ZWQtdW5kZXI6IFRpYW5vQ29yZSBDb250cmlidXRpb24gQWdy ZWVtZW50IDEuMQ0KPiA+IFNpZ25lZC1vZmYtYnk6IEppYW4gSiBXYW5nIDxqaWFuLmoud2FuZ0Bp bnRlbC5jb20+DQo+ID4gLS0tDQo+ID4gIC4uLi9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0NwdUV4 Y2VwdGlvbkNvbW1vbi5oICAgIHwgIDIyICsrDQo+ID4gIC4uLi9EeGVDcHVFeGNlcHRpb25IYW5k bGVyTGliLmluZiAgICAgICAgICAgICAgICAgIHwgICA1ICsNCj4gPiAgLi4uL0xpYnJhcnkvQ3B1 RXhjZXB0aW9uSGFuZGxlckxpYi9EeGVFeGNlcHRpb24uYyAgfCAgMTkgKw0KPiA+ICAuLi4vSWEz Mi9BcmNoRXhjZXB0aW9uSGFuZGxlci5jICAgICAgICAgICAgICAgICAgICB8IDEzNSArKysrKysr DQo+ID4gIC4uLi9JYTMyL0FyY2hJbnRlcnJ1cHREZWZzLmggICAgICAgICAgICAgICAgICAgICAg IHwgMTM2ICsrKysrKysNCj4gPiAgLi4uL0lhMzIvRXhjZXB0aW9uVHNzRW50cnlBc20ubmFzbSAg ICAgICAgICAgICAgICAgfCAzOTgNCj4gPiArKysrKysrKysrKysrKysrKysrKysNCj4gPiAgLi4u L1BlaUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuaW5mICAgICAgICAgICAgICAgICAgfCAgIDEgKw0K PiA+ICAuLi4vU2VjUGVpQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5pbmYgICAgICAgICAgICAgICB8 ICAgMyArDQo+ID4gIC4uLi9TbW1DcHVFeGNlcHRpb25IYW5kbGVyTGliLmluZiAgICAgICAgICAg ICAgICAgIHwgICAxICsNCj4gPiAgLi4uL1g2NC9BcmNoRXhjZXB0aW9uSGFuZGxlci5jICAgICAg ICAgICAgICAgICAgICAgfCAxMDggKysrKysrDQo+ID4gIC4uLi9DcHVFeGNlcHRpb25IYW5kbGVy TGliL1g2NC9BcmNoSW50ZXJydXB0RGVmcy5oIHwgIDQwICsrKw0KPiA+ICAuLi4vWDY0L0V4Y2Vw dGlvbkhhbmRsZXJBc20uUyAgICAgICAgICAgICAgICAgICAgICB8ICAxMiArDQo+ID4gIC4uLi9Y NjQvRXhjZXB0aW9uSGFuZGxlckFzbS5hc20gICAgICAgICAgICAgICAgICAgIHwgIDEyICsNCj4g PiAgLi4uL1g2NC9FeGNlcHRpb25IYW5kbGVyQXNtLm5hc20gICAgICAgICAgICAgICAgICAgfCAg MTIgKw0KPiA+ICAxNCBmaWxlcyBjaGFuZ2VkLCA5MDQgaW5zZXJ0aW9ucygrKQ0KPiA+ICBjcmVh dGUgbW9kZSAxMDA2NDQNCj4gPiBVZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxl ckxpYi9JYTMyL0V4Y2VwdGlvblRzc0VudHJ5QXNtLm5hDQo+ID4gc20NCj4gPg0KPiA+IGRpZmYg LS1naXQNCj4gPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0Nw dUV4Y2VwdGlvbkNvbW1vbi5oDQo+ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9u SGFuZGxlckxpYi9DcHVFeGNlcHRpb25Db21tb24uaA0KPiA+IGluZGV4IDc0MGE1ODgyOGIuLmZk NGEyNmE0NTggMTAwNjQ0DQo+ID4gLS0tIGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlv bkhhbmRsZXJMaWIvQ3B1RXhjZXB0aW9uQ29tbW9uLmgNCj4gPiArKysgYi9VZWZpQ3B1UGtnL0xp YnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9DcHVFeGNlcHRpb25Db21tb24uaA0KPiA+IEBA IC0yNSw2ICsyNSw3IEBADQo+ID4gICNpbmNsdWRlIDxMaWJyYXJ5L0Jhc2VNZW1vcnlMaWIuaD4N Cj4gPiAgI2luY2x1ZGUgPExpYnJhcnkvU3luY2hyb25pemF0aW9uTGliLmg+ICAjaW5jbHVkZQ0K PiA+IDxMaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuaD4NCj4gPiArI2luY2x1ZGUgPExp YnJhcnkvTWVtb3J5QWxsb2NhdGlvbkxpYi5oPg0KPiA+DQo+ID4gICNkZWZpbmUgIENQVV9FWENF UFRJT05fTlVNICAgICAgICAgIDMyDQo+ID4gICNkZWZpbmUgIENQVV9JTlRFUlJVUFRfTlVNICAg ICAgICAgMjU2DQo+ID4gQEAgLTI4OCw1ICsyODksMjYgQEAgQ29tbW9uRXhjZXB0aW9uSGFuZGxl cldvcmtlciAoDQo+ID4gICAgSU4gRVhDRVBUSU9OX0hBTkRMRVJfREFUQSAgICAgICpFeGNlcHRp b25IYW5kbGVyRGF0YQ0KPiA+ICAgICk7DQo+ID4NCj4gPiArLyoqDQo+ID4gKyAgTG9hZCBnaXZl biBzZWxlY3RvciBpbnRvIFRSIHJlZ2lzdGVyDQo+ID4gKw0KPiA+ICsgIEBwYXJhbSBTZWxlY3Rv ciAgICAgICAgIFRhc2sgc2VnbWVudCBzZWxlY3Rvcg0KPiA+ICsqKi8NCj4gPiArVk9JRA0KPiA+ ICtBc21Xcml0ZVRyICgNCj4gPiArICBVSU5UMTYgU2VsZWN0b3INCj4gPiArICApOw0KPiA+ICsN Cj4gPiArLyoqDQo+ID4gKyAgU2V0dXAgc2VwYXJhdGUgc3RhY2sgZm9yIHNwZWNpZmljIGV4Y2Vw dGlvbnMuDQo+ID4gKw0KPiA+ICsgIEBwYXJhbVtpbl0gSWR0VGFibGUgICAgICAgIElEVCB0YWJs ZSBiYXNlLg0KPiA+ICsqKi8NCj4gPiArVk9JRA0KPiA+ICtFRklBUEkNCj4gPiArQXJjaFNldHVw RXhjcGV0aW9uU3RhY2sgKA0KPiA+ICsgIElOIElBMzJfSURUX0dBVEVfREVTQ1JJUFRPUiAgICAg ICAgICAgKklkdFRhYmxlDQo+ID4gKyAgKTsNCj4gPiArDQo+ID4gICNlbmRpZg0KPiA+DQo+ID4g ZGlmZiAtLWdpdA0KPiA+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJM aWIvRHhlQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi4NCj4gPiBpbmYNCj4gPiBiL1VlZmlDcHVQa2cv TGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0R4ZUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIu DQo+ID4gaW5mDQo+ID4gaW5kZXggZjRhOGQwMWM4MC4uYjA5OWVmNGRhZCAxMDA2NDQNCj4gPiAt LS0NCj4gPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0R4ZUNw dUV4Y2VwdGlvbkhhbmRsZXJMaWIuDQo+ID4gaW5mDQo+ID4gKysrDQo+ID4gYi9VZWZpQ3B1UGtn L0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9EeGVDcHVFeGNlcHRpb25IYW5kbGVyTGli Lg0KPiA+IGluZg0KPiA+IEBAIC0zMCw2ICszMCw3IEBADQo+ID4gIFtTb3VyY2VzLklhMzJdDQo+ ID4gICAgSWEzMi9FeGNlcHRpb25IYW5kbGVyQXNtLmFzbQ0KPiA+ICAgIElhMzIvRXhjZXB0aW9u SGFuZGxlckFzbS5uYXNtDQo+ID4gKyAgSWEzMi9FeGNlcHRpb25Uc3NFbnRyeUFzbS5uYXNtDQo+ ID4gICAgSWEzMi9FeGNlcHRpb25IYW5kbGVyQXNtLlMNCj4gPiAgICBJYTMyL0FyY2hFeGNlcHRp b25IYW5kbGVyLmMNCj4gPiAgICBJYTMyL0FyY2hJbnRlcnJ1cHREZWZzLmgNCj4gPiBAQCAtNDcs NiArNDgsOSBAQA0KPiA+ICAgIFBlaUR4ZVNtbUNwdUV4Y2VwdGlvbi5jDQo+ID4gICAgRHhlRXhj ZXB0aW9uLmMNCj4gPg0KPiA+ICtbUGNkXQ0KPiA+ICsgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNw YWNlR3VpZC5QY2RDcHVTdGFja0d1YXJkDQo+ID4gKw0KPiA+ICBbUGFja2FnZXNdDQo+ID4gICAg TWRlUGtnL01kZVBrZy5kZWMNCj4gPiAgICBNZGVNb2R1bGVQa2cvTWRlTW9kdWxlUGtnLmRlYw0K PiA+IEBAIC02MSwzICs2NSw0IEBADQo+ID4gICAgUGVDb2ZmR2V0RW50cnlQb2ludExpYg0KPiA+ ICAgIE1lbW9yeUFsbG9jYXRpb25MaWINCj4gPiAgICBEZWJ1Z0xpYg0KPiA+ICsgIEhvYkxpYg0K PiA+IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxp Yi9EeGVFeGNlcHRpb24uYw0KPiA+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhh bmRsZXJMaWIvRHhlRXhjZXB0aW9uLmMNCj4gPiBpbmRleCAzMWZlYmVjOTc2Li5lOWRjZDAwZTAy IDEwMDY0NA0KPiA+IC0tLSBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVy TGliL0R4ZUV4Y2VwdGlvbi5jDQo+ID4gKysrIGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2Vw dGlvbkhhbmRsZXJMaWIvRHhlRXhjZXB0aW9uLmMNCj4gPiBAQCAtMTYsNiArMTYsNyBAQA0KPiA+ ICAjaW5jbHVkZSAiQ3B1RXhjZXB0aW9uQ29tbW9uLmgiDQo+ID4gICNpbmNsdWRlIDxMaWJyYXJ5 L0RlYnVnTGliLmg+DQo+ID4gICNpbmNsdWRlIDxMaWJyYXJ5L01lbW9yeUFsbG9jYXRpb25MaWIu aD4NCj4gPiArI2luY2x1ZGUgPExpYnJhcnkvSG9iTGliLmg+DQo+ID4NCj4gPiAgQ09OU1QgVUlO VE4gICAgbURvRmFyUmV0dXJuRmxhZyAgPSAwOw0KPiA+DQo+ID4gQEAgLTE1NSw2ICsxNTYsMjQg QEAgSW5pdGlhbGl6ZUNwdUludGVycnVwdEhhbmRsZXJzICgNCj4gPg0KPiA+ICAgIFVwZGF0ZUlk dFRhYmxlIChJZHRUYWJsZSwgJlRlbXBsYXRlTWFwLCAmbUV4Y2VwdGlvbkhhbmRsZXJEYXRhKTsN Cj4gPg0KPiA+ICsgIGlmIChQY2RHZXRCb29sIChQY2RDcHVTdGFja0d1YXJkKSkgew0KPiA+ICsg ICAgLy8NCj4gPiArICAgIC8vIFN0YWNrIEd1YXJkIHdvcmtzIHdpdGggdGhlIHN1cHBvcnQgb2Yg cGFnZSB0YWJsZSBlc3RhYmxpc2hlZCBhbmQNCj4gPiArICAgIC8vIG1lbW9yeSBtYW5hZ2VtZW50 LiBTbyB3ZSBoYXZlIHRvIGV4Y2x1ZGUgdGhvc2UgYm9vdCBtb2Rlcw0KPiA+IHdpdGhvdXQNCj4g PiArICAgIC8vIHRoZW0uDQo+ID4gKyAgICAvLw0KPiA+ICsgICAgc3dpdGNoIChHZXRCb290TW9k ZUhvYigpKSB7DQo+ID4gKyAgICBjYXNlIEJPT1RfT05fRkxBU0hfVVBEQVRFOg0KPiA+ICsgICAg Y2FzZSBCT09UX0lOX1JFQ09WRVJZX01PREU6DQo+ID4gKyAgICBjYXNlIEJPT1RfT05fUzNfUkVT VU1FOg0KPiA+ICsgICAgICBicmVhazsNCj4gPiArDQo+ID4gKyAgICBkZWZhdWx0Og0KPiA+ICsg ICAgICBBcmNoU2V0dXBFeGNwZXRpb25TdGFjayAoSWR0VGFibGUpOw0KPiA+ICsgICAgICBicmVh azsNCj4gPiArICAgIH0NCj4gPiArICB9DQo+ID4gKw0KPiA+ICAgIC8vDQo+ID4gICAgLy8gTG9h ZCBJbnRlcnJ1cHQgRGVzY3JpcHRvciBUYWJsZQ0KPiA+ICAgIC8vDQo+ID4gZGlmZiAtLWdpdA0K PiA+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvSWEzMi9BcmNo RXhjZXB0aW9uSGFuZGxlci4NCj4gPiBjDQo+ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhj ZXB0aW9uSGFuZGxlckxpYi9JYTMyL0FyY2hFeGNlcHRpb25IYW5kbGVyLg0KPiA+IGMNCj4gPiBp bmRleCBmMmMzOWViMTkzLi4zZDQxZGY3NWE1IDEwMDY0NA0KPiA+IC0tLQ0KPiA+IGEvVWVmaUNw dVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvSWEzMi9BcmNoRXhjZXB0aW9uSGFu ZGxlci4NCj4gPiBjDQo+ID4gKysrDQo+ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0 aW9uSGFuZGxlckxpYi9JYTMyL0FyY2hFeGNlcHRpb25IYW5kbGVyLg0KPiA+IGMNCj4gPiBAQCAt MTQsNiArMTQsMTkgQEANCj4gPg0KPiA+ICAjaW5jbHVkZSAiQ3B1RXhjZXB0aW9uQ29tbW9uLmgi DQo+ID4NCj4gPiArLy8NCj4gPiArLy8gTGlzdCBvZiBleGNlcHRpb25zIG5lZWRpbmcgc2VwYXJh dGUgc3RhY2sgLy8gU1RBVElDDQo+ID4gK0lBMzJfRVhDRVBUSU9OX1RTX0VOVFJZIG1FeGNlcHRp b25zV2l0aFN0YWNrW10gPSB7DQo+ID4gKyAgezYsICBFeGNlcHRpb25UYXNrU3d0aWNoRW50cnk2 fSwgIC8vI1VEOiBJbnZhbGlkIE9wY29kZSBFeGNlcHRpb24NCj4gPiArICB7OCwgIEV4Y2VwdGlv blRhc2tTd3RpY2hFbnRyeTh9LCAgLy8jREY6IERvdWJsZSBGYXVsdCBFeGNlcHRpb24NCj4gPiAr ICB7MTIsIEV4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeTEyfSwgLy8jU1M6IFN0YWNrIEZhdWx0IEV4 Y2VwdGlvbg0KPiA+ICsgIHsxMywgRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5MTN9LCAvLyNHUDog R2VuZXJhbCBQcm90ZWN0aW9uDQo+ID4gK0V4Y2VwdGlvbg0KPiA+ICsgIHsxNCwgRXhjZXB0aW9u VGFza1N3dGljaEVudHJ5MTR9LCAvLyNQRjogUGFnZS1GYXVsdCBFeGNlcHRpb24NCj4gPiArICB7 MTcsIEV4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeTE3fSwgLy8jQUM6IEFsaWdubWVudCBDaGVjayBF eGNlcHRpb24NCj4gPiArICB7MTgsIEV4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeTE4fSAgLy8jTUM6 IE1hY2hpbmUtQ2hlY2sgRXhjZXB0aW9uIH07DQo+ID4gKw0KPiA+ICAvKioNCj4gPiAgICBSZXR1 cm4gYWRkcmVzcyBtYXAgb2YgZXhjZXB0aW9uIGhhbmRsZXIgdGVtcGxhdGUgc28gdGhhdCBDIGNv ZGUgY2FuDQo+ID4gZ2VuZXJhdGUNCj4gPiAgICBleGNlcHRpb24gdGFibGVzLg0KPiA+IEBAIC0x MDcsNiArMTIwLDEyOCBAQCBBcmNoUmVzdG9yZUV4Y2VwdGlvbkNvbnRleHQgKA0KPiA+ICAgIFN5 c3RlbUNvbnRleHQuU3lzdGVtQ29udGV4dElhMzItPkV4Y2VwdGlvbkRhdGEgPQ0KPiA+IFJlc2Vy dmVkVmVjdG9yc1tFeGNlcHRpb25UeXBlXS5FeGNlcHRpb25EYXRhOw0KPiA+ICB9DQo+ID4NCj4g PiArLyoqDQo+ID4gKyAgU2V0dXAgc2VwYXJhdGUgc3RhY2sgZm9yIHNwZWNpZmljIGV4Y2VwdGlv bnMuDQo+ID4gKw0KPiA+ICsgICBAcGFyYW1baW5dIElkdFRhYmxlICAgICAgICBJRFQgdGFibGUg YmFzZS4NCj4gPiArKiovDQo+ID4gK1ZPSUQNCj4gPiArRUZJQVBJDQo+ID4gK0FyY2hTZXR1cEV4 Y3BldGlvblN0YWNrICgNCj4gPiArICBJTiBJQTMyX0lEVF9HQVRFX0RFU0NSSVBUT1IgICAgICAg ICAgICpJZHRUYWJsZQ0KPiA+ICsgICkNCj4gPiArew0KPiA+ICsgIFZPSUQgICAgICAgICAgICAg ICAgICAgICAgKk5ld0dkdDsNCj4gPiArICBJQTMyX0RFU0NSSVBUT1IgICAgICAgICAgIEdkdERl c2M7DQo+ID4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICBPbGRHZHRTaXplOw0KPiA+ICsg IFRTU19FTlRSSUVTICAgICAgICAgICAgICAgKlRzc0VudHJ5Ow0KPiA+ICsgIElBMzJfVFNTX0RF U0NSSVBUT1IgICAgICAgKlRzc0Rlc2M7DQo+ID4gKyAgSUEzMl9UQVNLX1NUQVRFX1NFR01FTlQg ICAqVHNzOw0KPiA+ICsgIFVJTlROICAgICAgICAgICAgICAgICAgICAgU3RhY2tCYXNlOw0KPiA+ ICsgIFVJTlROICAgICAgICAgICAgICAgICAgICAgU3RhY2tUb3A7DQo+ID4gKyAgVUlOVE4gICAg ICAgICAgICAgICAgICAgICBTdGFja1NpemU7DQo+ID4gKyAgVUlOVE4gICAgICAgICAgICAgICAg ICAgICBJbmRleDsNCj4gPiArICBVSU5UTiAgICAgICAgICAgICAgICAgICAgIFZlY3RvcjsNCj4g PiArICBVSU5UTiAgICAgICAgICAgICAgICAgICAgIFRzc0Jhc2U7DQo+ID4gKw0KPiA+ICsgIC8v DQo+ID4gKyAgLy8gQWxsb2NhdGUgUnVudGltZSBEYXRhIGZvciB0aGUgR0RUICAvLyAgQXNtUmVh ZEdkdHIoJkdkdERlc2MpOw0KPiA+ICsgT2xkR2R0U2l6ZSA9IEdkdERlc2MuTGltaXQgKyAxOyAg TmV3R2R0ID0NCj4gPiArIEFsbG9jYXRlUnVudGltZVplcm9Qb29sKE9sZEdkdFNpemUgKyBzaXpl b2YoVFNTX0VOVFJJRVMpDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KyBJQTMyX0dEVF9BTElHTk1FTlQpOyAgaWYNCj4gKE5ld0dkdA0KPiA+ICsgPT0gTlVMTCkgew0K PiA+ICsgICAgcmV0dXJuOw0KPiA+ICsgIH0NCj4gPiArICBOZXdHZHQgPSBBTElHTl9QT0lOVEVS IChOZXdHZHQsIElBMzJfR0RUX0FMSUdOTUVOVCk7DQo+ID4gKw0KPiA+ICsgIC8vDQo+ID4gKyAg Ly8gSW5pdGlhbGl6ZSBuZXcgR0RUIGVudHJpZXMNCj4gPiArICAvLw0KPiA+ICsgIENvcHlNZW0o TmV3R2R0LCAoVk9JRCAqKUdkdERlc2MuQmFzZSwgT2xkR2R0U2l6ZSk7ICBHZHREZXNjLkJhc2Ug PQ0KPiA+ICsgKFVJTlROKShWT0lEKilOZXdHZHQ7ICBHZHREZXNjLkxpbWl0ID0gKFVJTlQxNiko T2xkR2R0U2l6ZSArDQo+ID4gKyBUU1NfT0ZGU0VUIC0gMSk7DQo+ID4gKw0KPiA+ICsgIC8vDQo+ ID4gKyAgLy8gUmVzZXJ2ZSBzdGF0Y2sgbWVtb3J5IGZvciBnaXZlbiBleGNlcHRpb25zICAvLyAg U3RhY2tTaXplID0NCj4gPiArIEFSUkFZX1NJWkUgKG1FeGNlcHRpb25zV2l0aFN0YWNrKSAqIEVY Q0VQVElPTl9TVEFDS19TSVpFOyAgU3RhY2tTaXplDQo+ID4gKyA9IEVGSV9QQUdFU19UT19TSVpF IChFRklfU0laRV9UT19QQUdFUyAoU3RhY2tTaXplKSk7ICBTdGFja0Jhc2UgPQ0KPiA+ICsgKFVJ TlQ2NCkoVUlOVE4pQWxsb2NhdGVQYWdlcyAoRUZJX1NJWkVfVE9fUEFHRVMNCj4gPiAoU3RhY2tT aXplKSk7DQo+ID4gKyAgaWYgKFN0YWNrQmFzZSA9PSAwKSB7DQo+ID4gKyAgICBGcmVlUG9vbCAo TmV3R2R0KTsNCj4gPiArICAgIHJldHVybjsNCj4gPiArICB9DQo+ID4gKw0KPiA+ICsgIC8vDQo+ ID4gKyAgLy8gRml4dXAgVFNTIGRlc2NyaXB0b3JzIGFuZCBzZWdtZW50cyAgLy8gIFRzc0VudHJ5 ID0gKFZPSUQNCj4gPiArICopKEdkdERlc2MuQmFzZSArIE9sZEdkdFNpemUpOw0KPiA+ICsNCj4g PiArICBUc3NCYXNlID0gKFVJTlROKShWT0lEICopJlRzc0VudHJ5LT5Uc3M7DQo+ID4gKyAgVHNz RW50cnktPlRzc1NlZy5MaW1pdDE1XzAgICAgICAgICAgICA9DQo+ID4gc2l6ZW9mKElBMzJfVEFT S19TVEFURV9TRUdNRU5UKSAtIDE7DQo+ID4gKyAgVHNzRW50cnktPlRzc1NlZy5CYXNlMTVfMCAg ICAgICAgICAgICA9IChVSU5UMTYpVHNzQmFzZTsNCj4gPiArICBUc3NFbnRyeS0+VHNzU2VnLkJh c2UyM18xNiAgICAgICAgICAgID0gKFVJTlQ4KShUc3NCYXNlID4+IDE2KTsNCj4gPiArICBUc3NF bnRyeS0+VHNzU2VnLlR5cGUgICAgICAgICAgICAgICAgID0gSUEzMl9HRFRfVFlQRV9UU1M7DQo+ ID4gKyAgVHNzRW50cnktPlRzc1NlZy5MaW1pdDE5XzE2X2FuZF9mbGFncyA9IDA7DQo+ID4gKyAg VHNzRW50cnktPlRzc1NlZy5CYXNlMzFfMjQgICAgICAgICAgICA9IChVSU5UOCkoVHNzQmFzZSA+ PiAyNCk7DQo+ID4gKw0KPiA+ICsgIFN0YWNrVG9wICA9IFN0YWNrQmFzZSArIFN0YWNrU2l6ZSAt IENQVV9TVEFDS19BTElHTk1FTlQ7ICBTdGFja1RvcA0KPiA+ICsgPSAoVUlOVE4pQUxJR05fUE9J TlRFUiAoU3RhY2tUb3AsIENQVV9TVEFDS19BTElHTk1FTlQpOyAgZm9yIChJbmRleA0KPiA+ICsg PSAwOyBJbmRleCA8IEFSUkFZX1NJWkUgKG1FeGNlcHRpb25zV2l0aFN0YWNrKTsgKytJbmRleCkg ew0KPiA+ICsgICAgLy8NCj4gPiArICAgIC8vIEZpeHVwIFRTUyBkZXNjcmlwdG9yDQo+ID4gKyAg ICAvLw0KPiA+ICsgICAgVHNzQmFzZSA9IChVSU5UTikoVk9JRCAqKSZUc3NFbnRyeS0+RXhjZXB0 aW9uVHNzW0luZGV4XTsNCj4gPiArICAgIFRzc0Rlc2MgPSAmVHNzRW50cnktPkV4Y2VwdGlvblRz c1NlZ1tJbmRleF07DQo+ID4gKw0KPiA+ICsgICAgVHNzRGVzYy0+TGltaXQxNV8wICAgICAgICAg ICAgPSBzaXplb2YoSUEzMl9UQVNLX1NUQVRFX1NFR01FTlQpIC0NCj4gMTsNCj4gPiArICAgIFRz c0Rlc2MtPkJhc2UxNV8wICAgICAgICAgICAgID0gKFVJTlQxNilUc3NCYXNlOw0KPiA+ICsgICAg VHNzRGVzYy0+QmFzZTIzXzE2ICAgICAgICAgICAgPSAoVUlOVDgpKFRzc0Jhc2UgPj4gMTYpOw0K PiA+ICsgICAgVHNzRGVzYy0+VHlwZSAgICAgICAgICAgICAgICAgPSBJQTMyX0dEVF9UWVBFX1RT UzsNCj4gPiArICAgIFRzc0Rlc2MtPkxpbWl0MTlfMTZfYW5kX2ZsYWdzID0gMDsNCj4gPiArICAg IFRzc0Rlc2MtPkJhc2UzMV8yNCAgICAgICAgICAgID0gKFVJTlQ4KShUc3NCYXNlID4+IDI0KTsN Cj4gPiArDQo+ID4gKyAgICAvLw0KPiA+ICsgICAgLy8gRml4dXAgVFNTDQo+ID4gKyAgICAvLw0K PiA+ICsgICAgVHNzID0gJlRzc0VudHJ5LT5FeGNlcHRpb25Uc3NbSW5kZXhdOw0KPiA+ICsgICAg VHNzLT5DUjMgICAgPSBBc21SZWFkQ3IzKCk7DQo+ID4gKyAgICBUc3MtPkVJUCAgICA9IChVSU5U MzIpbUV4Y2VwdGlvbnNXaXRoU3RhY2tbSW5kZXhdLkVudHJ5UG9pbnQ7DQo+ID4gKyAgICBUc3Mt PkVGTEFHUyA9IDB4MjsNCj4gPiArICAgIFRzcy0+RVNQICAgID0gU3RhY2tUb3A7DQo+ID4gKyAg ICBUc3MtPkVTICAgICA9IEFzbVJlYWRFcygpOw0KPiA+ICsgICAgVHNzLT5DUyAgICAgPSBBc21S ZWFkQ3MoKTsNCj4gPiArICAgIFRzcy0+U1MgICAgID0gQXNtUmVhZFNzKCk7DQo+ID4gKyAgICBU c3MtPkRTICAgICA9IEFzbVJlYWREcygpOw0KPiA+ICsgICAgVHNzLT5GUyAgICAgPSBBc21SZWFk RnMoKTsNCj4gPiArICAgIFRzcy0+R1MgICAgID0gQXNtUmVhZEdzKCk7DQo+ID4gKyAgICBTdGFj a1RvcCAgIC09IEVYQ0VQVElPTl9TVEFDS19TSVpFOw0KPiA+ICsNCj4gPiArICAgIC8vDQo+ID4g KyAgICAvLyBDaGFuZ2Ugc3BlY2lmaWVkIGV4Y2VwdGlvbnMgaW4gSURUIHRvIHVzZSBUU1MNCj4g PiArICAgIC8vDQo+ID4gKyAgICBWZWN0b3IgPSBtRXhjZXB0aW9uc1dpdGhTdGFja1tJbmRleF0u VmVjdG9yOw0KPiA+ICsNCj4gPiArICAgIElkdFRhYmxlW1ZlY3Rvcl0uQml0cy5PZmZzZXRMb3cg ID0gMDsNCj4gPiArICAgIElkdFRhYmxlW1ZlY3Rvcl0uQml0cy5TZWxlY3RvciAgID0gT2xkR2R0 U2l6ZSArDQo+ID4gRVhDRVBUSU9OX1RTU19TRUwoSW5kZXgpOw0KPiA+ICsgICAgSWR0VGFibGVb VmVjdG9yXS5CaXRzLlJlc2VydmVkXzAgPSAwOw0KPiA+ICsgICAgSWR0VGFibGVbVmVjdG9yXS5C aXRzLkdhdGVUeXBlICAgPSBJQTMyX0lEVF9HQVRFX1RZUEVfVEFTSzsNCj4gPiArICAgIElkdFRh YmxlW1ZlY3Rvcl0uQml0cy5PZmZzZXRIaWdoID0gMDsgIH0NCj4gPiArDQo+ID4gKyAgLy8NCj4g PiArICAvLyBQdWJsaXNoIHRoZSBjaGFuZ2VzDQo+ID4gKyAgLy8NCj4gPiArICBBc21Xcml0ZUdk dHIoJkdkdERlc2MpOw0KPiA+ICsNCj4gPiArICAvLw0KPiA+ICsgIC8vIExvYWQgdGFzayByZWdp c3Rlcg0KPiA+ICsgIC8vDQo+ID4gKyAgQXNtV3JpdGVUciAoKFVJTlQxNikoT2xkR2R0U2l6ZSAr IFRTU19TRUwpKTsgfQ0KPiA+ICsNCj4gPiAgLyoqDQo+ID4gICAgRGlzcGxheSBwcm9jZXNzb3Ig Y29udGV4dC4NCj4gPg0KPiA+IGRpZmYgLS1naXQNCj4gPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9D cHVFeGNlcHRpb25IYW5kbGVyTGliL0lhMzIvQXJjaEludGVycnVwdERlZnMuaA0KPiA+IGIvVWVm aUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvSWEzMi9BcmNoSW50ZXJydXB0 RGVmcy5oDQo+ID4gaW5kZXggYThkMzU1NmE4MC4uNzdjYzZmOTkxOSAxMDA2NDQNCj4gPiAtLS0N Cj4gPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0lhMzIvQXJj aEludGVycnVwdERlZnMuaA0KPiA+ICsrKyBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRp b25IYW5kbGVyTGliL0lhMzIvQXJjaEludGVycnVwdERlZnMNCj4gPiArKysgLmgNCj4gPiBAQCAt NDEsNCArNDEsMTQwIEBAIHR5cGVkZWYgc3RydWN0IHsNCj4gPiAgICBVSU5UOCAgICAgICBIb29r QWZ0ZXJTdHViSGVhZGVyQ29kZVtIT09LQUZURVJfU1RVQl9TSVpFXTsNCj4gPiAgfSBSRVNFUlZF RF9WRUNUT1JTX0RBVEE7DQo+ID4NCj4gPiArI3ByYWdtYSBwYWNrICgxKQ0KPiA+ICsNCj4gPiAr I2RlZmluZSBFWENFUFRJT05fTElTVF9NQVggICAgICAgICAgNw0KPiA+ICsjZGVmaW5lIEVYQ0VQ VElPTl9TVEFDS19TSVpFICAgICAgICBFRklfUEFHRV9TSVpFDQo+ID4gKyNkZWZpbmUgSUEzMl9H RFRfVFlQRV9UU1MgICAgICAgICAgIDB4ODkNCj4gPiArI2RlZmluZSBJQTMyX0dEVF9BTElHTk1F TlQgICAgICAgICAgOA0KPiA+ICsNCj4gPiArLy8NCj4gPiArLy8gSUEzMiBUU1MgRGVmaW5pdGlv bg0KPiA+ICsvLw0KPiA+ICt0eXBlZGVmIHN0cnVjdCB7DQo+ID4gKyAgVUlOVDE2ICAgIFByZXZp b3VzVGFza0xpbms7IC8vIDAwDQo+ID4gKyAgVUlOVDE2ICAgIFJlc2VydmVkXzI7DQo+ID4gKyAg VUlOVDMyICAgIEVTUDA7ICAgICAgICAgICAgIC8vIDA0DQo+ID4gKyAgVUlOVDE2ICAgIFNTMDsg ICAgICAgICAgICAgIC8vIDA4DQo+ID4gKyAgVUlOVDE2ICAgIFJlc2VydmVkXzEwOw0KPiA+ICsg IFVJTlQzMiAgICBFU1AxOyAgICAgICAgICAgICAvLyAwQw0KPiA+ICsgIFVJTlQxNiAgICBTUzE7 ICAgICAgICAgICAgICAvLyAxMA0KPiA+ICsgIFVJTlQxNiAgICBSZXNlcnZlZF8xODsNCj4gPiAr ICBVSU5UMzIgICAgRVNQMjsgICAgICAgICAgICAgLy8gMTQNCj4gPiArICBVSU5UMTYgICAgU1My OyAgICAgICAgICAgICAgLy8gMTgNCj4gPiArICBVSU5UMTYgICAgUmVzZXJ2ZWRfMjY7DQo+ID4g KyAgVUlOVDMyICAgIENSMzsgICAgICAgICAgICAgIC8vIDFDDQo+ID4gKyAgVUlOVDMyICAgIEVJ UDsgICAgICAgICAgICAgIC8vIDIwDQo+ID4gKyAgVUlOVDMyICAgIEVGTEFHUzsgICAgICAgICAg IC8vIDI0DQo+ID4gKyAgVUlOVDMyICAgIEVBWDsgICAgICAgICAgICAgIC8vIDI4DQo+ID4gKyAg VUlOVDMyICAgIEVDWDsgICAgICAgICAgICAgIC8vIDJDDQo+ID4gKyAgVUlOVDMyICAgIEVEWDsg ICAgICAgICAgICAgIC8vIDMwDQo+ID4gKyAgVUlOVDMyICAgIEVCWDsgICAgICAgICAgICAgIC8v IDM0DQo+ID4gKyAgVUlOVDMyICAgIEVTUDsgICAgICAgICAgICAgIC8vIDM4DQo+ID4gKyAgVUlO VDMyICAgIEVCUDsNCj4gPiArICBVSU5UMzIgICAgRVNJOw0KPiA+ICsgIFVJTlQzMiAgICBFREk7 DQo+ID4gKyAgVUlOVDE2ICAgIEVTOw0KPiA+ICsgIFVJTlQxNiAgICBSZXNlcnZlZF83NDsNCj4g PiArICBVSU5UMTYgICAgQ1M7DQo+ID4gKyAgVUlOVDE2ICAgIFJlc2VydmVkXzc4Ow0KPiA+ICsg IFVJTlQxNiAgICBTUzsNCj4gPiArICBVSU5UMTYgICAgUmVzZXJ2ZWRfODI7DQo+ID4gKyAgVUlO VDE2ICAgIERTOw0KPiA+ICsgIFVJTlQxNiAgICBSZXNlcnZlZF84NjsNCj4gPiArICBVSU5UMTYg ICAgRlM7DQo+ID4gKyAgVUlOVDE2ICAgIFJlc2VydmVkXzkwOw0KPiA+ICsgIFVJTlQxNiAgICBH UzsNCj4gPiArICBVSU5UMTYgICAgUmVzZXJ2ZWRfOTQ7DQo+ID4gKyAgVUlOVDE2ICAgIExEVFNl Z21lbnRTZWxlY3RvcjsNCj4gPiArICBVSU5UMTYgICAgUmVzZXJ2ZWRfOTg7DQo+ID4gKyAgVUlO VDE2ICAgIFQ7DQo+ID4gKyAgVUlOVDE2ICAgIElPTWFwQmFzZUFkZHJlc3M7DQo+ID4gK30gSUEz Ml9UQVNLX1NUQVRFX1NFR01FTlQ7DQo+ID4gKw0KPiA+ICt0eXBlZGVmIHN0cnVjdCB7DQo+ID4g KyAgVUlOVDE2ICAgIExpbWl0MTVfMDsNCj4gPiArICBVSU5UMTYgICAgQmFzZTE1XzA7DQo+ID4g KyAgVUlOVDggICAgIEJhc2UyM18xNjsNCj4gPiArICBVSU5UOCAgICAgVHlwZTsNCj4gPiArICBV SU5UOCAgICAgTGltaXQxOV8xNl9hbmRfZmxhZ3M7DQo+ID4gKyAgVUlOVDggICAgIEJhc2UzMV8y NDsNCj4gPiArfSBJQTMyX1RTU19ERVNDUklQVE9SOw0KPiA+ICsNCj4gPiArdHlwZWRlZiBzdHJ1 Y3Qgew0KPiA+ICsgIElBMzJfVFNTX0RFU0NSSVBUT1IgICAgICAgICAgIFRzc1NlZzsNCj4gPiAr ICBJQTMyX1RTU19ERVNDUklQVE9SDQo+IEV4Y2VwdGlvblRzc1NlZ1tFWENFUFRJT05fTElTVF9N QVhdOw0KPiA+ICsgIElBMzJfVEFTS19TVEFURV9TRUdNRU5UICAgICAgIFRzczsNCj4gPiArICBJ QTMyX1RBU0tfU1RBVEVfU0VHTUVOVCAgICAgICBFeGNlcHRpb25Uc3NbRVhDRVBUSU9OX0xJU1Rf TUFYXTsNCj4gPiArfSBUU1NfRU5UUklFUzsNCj4gPiArDQo+ID4gKyNwcmFnbWEgcGFjayAoKQ0K PiA+ICsNCj4gPiArI2RlZmluZSBUU1NfU0VMICAgICAgICAgICAgICAgT0ZGU0VUX09GIChUU1Nf RU5UUklFUywgVHNzU2VnKQ0KPiA+ICsjZGVmaW5lIEVYQ0VQVElPTl9UU1NfU0VMKG4pICBPRkZT RVRfT0YgKFRTU19FTlRSSUVTLA0KPiA+IEV4Y2VwdGlvblRzc1NlZ1tuXSkNCj4gPiArI2RlZmlu ZSBUU1NfT0ZGU0VUICAgICAgICAgICAgT0ZGU0VUX09GIChUU1NfRU5UUklFUywgVHNzKQ0KPiA+ ICsNCj4gPiArdHlwZWRlZiBWT0lEICgqRVhDRVBUSU9OX0VOVFJZKSAoVk9JRCk7DQo+ID4gKw0K PiA+ICt0eXBlZGVmIHN0cnVjdCB7DQo+ID4gKyAgVUlOVE4gICAgICAgICAgICAgVmVjdG9yOw0K PiA+ICsgIEVYQ0VQVElPTl9FTlRSWSAgIEVudHJ5UG9pbnQ7DQo+ID4gK30gSUEzMl9FWENFUFRJ T05fVFNfRU5UUlk7DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArIEV4Y2VwdGlvbiBoYW5kbGluZyBl bnRyeSB0aHJvdWdoIHRhc2sgZ2F0ZSBmb3IgZXhjZXB0aW9uICNVRC4NCj4gPiArICoqLw0KPiA+ ICtWT0lEDQo+ID4gK0V4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeTYgKA0KPiA+ICsgIFZPSUQNCj4g PiArICApOw0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyBFeGNlcHRpb24gaGFuZGxpbmcgZW50cnkg dGhyb3VnaCB0YXNrIGdhdGUgZm9yIGV4Y2VwdGlvbiAjREYuDQo+ID4gKyAqKi8NCj4gPiArVk9J RA0KPiA+ICtFeGNlcHRpb25UYXNrU3d0aWNoRW50cnk4ICgNCj4gPiArICBWT0lEDQo+ID4gKyAg KTsNCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgRXhjZXB0aW9uIGhhbmRsaW5nIGVudHJ5IHRocm91 Z2ggdGFzayBnYXRlIGZvciBleGNlcHRpb24gI1NTLg0KPiA+ICsgKiovDQo+ID4gK1ZPSUQNCj4g PiArRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5MTIgKA0KPiA+ICsgIFZPSUQNCj4gPiArICApOw0K PiA+ICsNCj4gPiArLyoqDQo+ID4gKyBFeGNlcHRpb24gaGFuZGxpbmcgZW50cnkgdGhyb3VnaCB0 YXNrIGdhdGUgZm9yIGV4Y2VwdGlvbiAjR1AuDQo+ID4gKyAqKi8NCj4gPiArVk9JRA0KPiA+ICtF eGNlcHRpb25UYXNrU3d0aWNoRW50cnkxMyAoDQo+ID4gKyAgVk9JRA0KPiA+ICsgICk7DQo+ID4g Kw0KPiA+ICsvKioNCj4gPiArIEV4Y2VwdGlvbiBoYW5kbGluZyBlbnRyeSB0aHJvdWdoIHRhc2sg Z2F0ZSBmb3IgZXhjZXB0aW9uICNQRi4NCj4gPiArICoqLw0KPiA+ICtWT0lEDQo+ID4gK0V4Y2Vw dGlvblRhc2tTd3RpY2hFbnRyeTE0ICgNCj4gPiArICBWT0lEDQo+ID4gKyAgKTsNCj4gPiArDQo+ ID4gKy8qKg0KPiA+ICsgRXhjZXB0aW9uIGhhbmRsaW5nIGVudHJ5IHRocm91Z2ggdGFzayBnYXRl IGZvciBleGNlcHRpb24gI0FDLg0KPiA+ICsgKiovDQo+ID4gK1ZPSUQNCj4gPiArRXhjZXB0aW9u VGFza1N3dGljaEVudHJ5MTcgKA0KPiA+ICsgIFZPSUQNCj4gPiArICApOw0KPiA+ICsNCj4gPiAr LyoqDQo+ID4gKyBFeGNlcHRpb24gaGFuZGxpbmcgZW50cnkgdGhyb3VnaCB0YXNrIGdhdGUgZm9y IGV4Y2VwdGlvbiAjTUMuDQo+ID4gKyAqKi8NCj4gPiArVk9JRA0KPiA+ICtFeGNlcHRpb25UYXNr U3d0aWNoRW50cnkxOCAoDQo+ID4gKyAgVk9JRA0KPiA+ICsgICk7DQo+ID4gKw0KPiA+ICAjZW5k aWYNCj4gPiBkaWZmIC0tZ2l0DQo+ID4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9u SGFuZGxlckxpYi9JYTMyL0V4Y2VwdGlvblRzc0VudHJ5QXNtLg0KPiA+IG5hcw0KPiA+IG0NCj4g PiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0lhMzIvRXhjZXB0 aW9uVHNzRW50cnlBc20uDQo+ID4gbmFzDQo+ID4gbQ0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQo+ID4gaW5kZXggMDAwMDAwMDAwMC4uZGJmYmNmY2Y1MQ0KPiA+IC0tLSAvZGV2L251bGwNCj4g PiArKysNCj4gPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0lh MzIvRXhjZXB0aW9uVHNzRW50cnlBc20uDQo+ID4gbmFzDQo+ID4gbQ0KPiA+IEBAIC0wLDAgKzEs Mzk4IEBADQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICstLS0tLS0tLS0tIDsgOyBDb3B5cmlnaHQg KGMpIDIwMTcsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzDQo+ID4gK3Jlc2VydmVkLjxC Uj4gOyBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIDsgYXJlDQo+ ID4gK2xpY2Vuc2VkIGFuZCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRp dGlvbnMgb2YgdGhlIEJTRA0KPiA+IExpY2Vuc2UNCj4gPiArOyB3aGljaCBhY2NvbXBhbmllcyB0 aGlzIGRpc3RyaWJ1dGlvbi4gIFRoZSBmdWxsIHRleHQgb2YgdGhlIGxpY2Vuc2UNCj4gPiArbWF5 IGJlIGZvdW5kDQo+ID4gYXQNCj4gPiArOyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMv YnNkLWxpY2Vuc2UucGhwLg0KPiA+ICs7DQo+ID4gKzsgVEhFIFBST0dSQU0gSVMgRElTVFJJQlVU RUQgVU5ERVIgVEhFIEJTRCBMSUNFTlNFIE9OIEFOICJBUyBJUyINCj4gPiArQkFTSVMsIDsgV0lU SE9VVCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSDQo+ ID4gK0VYUFJFU1MNCj4gPiBPUiBJTVBMSUVELg0KPiA+ICs7DQo+ID4gKzsgTW9kdWxlIE5hbWU6 DQo+ID4gKzsNCj4gPiArOyAgIEV4Y2VwdGlvblRzc0VudHJ5QXNtLkFzbQ0KPiA+ICs7DQo+ID4g KzsgQWJzdHJhY3Q6DQo+ID4gKzsNCj4gPiArOyAgIElBMzIgQ1BVIEV4Y2VwdGlvbiBIYW5kbGVy IHdpdGggU2VwYXJhdGUgU3RhY2sNCj4gPiArOw0KPiA+ICs7IE5vdGVzOg0KPiA+ICs7DQo+ID4g KzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KPiA+ICstLS0tLS0tLS0tDQo+ID4gKw0KPiA+ICs7DQo+ID4gKzsgSUEz MiBUU1MgTWVtb3J5IExheW91dCBEZXNjcmlwdGlvbg0KPiA+ICs7DQo+ID4gK3N0cnVjIElBMzJf VFNTDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgcmVzdyAxDQo+ID4gKyAgLkVTUDA6ICAgIHJlc2QgMQ0KPiA+ICsgIC5TUzA6ICAgICBy ZXN3IDENCj4gPiArICAgICAgICAgICAgICAgICAgICByZXN3IDENCj4gPiArICAuRVNQMTogICAg cmVzZCAxDQo+ID4gKyAgLlNTMTogICAgIHJlc3cgMQ0KPiA+ICsgICAgICAgICAgICAgICAgICAg IHJlc3cgMQ0KPiA+ICsgIC5FU1AyOiAgICByZXNkIDENCj4gPiArICAuU1MyOiAgICAgcmVzdyAx DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQo+ID4gKyAgLl9DUjM6ICAgIHJlc2Qg MQ0KPiA+ICsgIC5FSVA6ICAgICByZXNkIDENCj4gPiArICAuRUZMQUdTOiAgcmVzZCAxDQo+ID4g KyAgLl9FQVg6ICAgIHJlc2QgMQ0KPiA+ICsgIC5fRUNYOiAgICByZXNkIDENCj4gPiArICAuX0VE WDogICAgcmVzZCAxDQo+ID4gKyAgLl9FQlg6ICAgIHJlc2QgMQ0KPiA+ICsgIC5fRVNQOiAgICBy ZXNkIDENCj4gPiArICAuX0VCUDogICAgcmVzZCAxDQo+ID4gKyAgLl9FU0k6ICAgIHJlc2QgMQ0K PiA+ICsgIC5fRURJOiAgICByZXNkIDENCj4gPiArICAuX0VTOiAgICAgcmVzdyAxDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgcmVzdyAxDQo+ID4gKyAgLl9DUzogICAgIHJlc3cgMQ0KPiA+ICsg ICAgICAgICAgICAgICAgICAgIHJlc3cgMQ0KPiA+ICsgIC5fU1M6ICAgICByZXN3IDENCj4gPiAr ICAgICAgICAgICAgICAgICAgICByZXN3IDENCj4gPiArICAuX0RTOiAgICAgcmVzdyAxDQo+ID4g KyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQo+ID4gKyAgLl9GUzogICAgIHJlc3cgMQ0KPiA+ ICsgICAgICAgICAgICAgICAgICAgIHJlc3cgMQ0KPiA+ICsgIC5fR1M6ICAgICByZXN3IDENCj4g PiArICAgICAgICAgICAgICAgICAgICByZXN3IDENCj4gPiArICAuTERUOiAgICAgcmVzdyAxDQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQo+ID4gKyAgICAgICAgICAgICAgICAgICAg cmVzdyAxDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQo+ID4gK2VuZHN0cnVjDQo+ ID4gKw0KPiA+ICs7DQo+ID4gKzsgQ29tbW9uRXhjZXB0aW9uSGFuZGxlcigpDQo+ID4gKzsNCj4g PiArZXh0ZXJuIEFTTV9QRlgoQ29tbW9uRXhjZXB0aW9uSGFuZGxlcikNCj4gPiArDQo+ID4gK1NF Q1RJT04gLmRhdGENCj4gPiArDQo+ID4gK1NFQ1RJT04gLnRleHQNCj4gPiArDQo+ID4gK0FMSUdO ICAgOA0KPiA+ICsNCj4gPiArOw0KPiA+ICs7IGV4Y2VwdGlvbiBoYW5kbGVyIHN0dWIgdGFibGUN Cj4gPiArOw0KPiA+ICslbWFjcm8gRGVmRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5IDENCj4gPiAr JSVEb0lyZXQ6DQo+ID4gKyAgICBpcmV0ZA0KPiA+ICsNCj4gPiArZ2xvYmFsIEFTTV9QRlgoRXhj ZXB0aW9uVGFza1N3dGljaEVudHJ5JTEpDQo+ID4gK0FTTV9QRlgoRXhjZXB0aW9uVGFza1N3dGlj aEVudHJ5JTEpOg0KPiA+ICsgICAgZGIgICAgICAweDZhICAgICAgICA7IHB1c2ggICNWZWN0b3JO dW0NCj4gPiArICAgIGRiICAgICAgJTEgICAgICAgICAgOyBWZWN0b3JOdW0NCj4gPiArICAgIG1v diAgICAgZWF4LCBBU01fUEZYKENvbW1vblRhc2tTd3RpY2hFbnRyeVBvaW50KQ0KPiA+ICsgICAg Y2FsbCAgICBlYXgNCj4gPiArICAgIG1vdiAgICAgZXNwLCBlYXggICAgOyBSZXN0b3JlIHN0YWNr IHRvcA0KPiA+ICsgICAgam1wICAgICAlJURvSXJldA0KPiA+ICslZW5kbWFjcm8NCj4gPiArDQo+ ID4gK2dsb2JhbCBBU01fUEZYKENvbW1vblRhc2tTd3RpY2hFbnRyeVBvaW50KQ0KPiA+ICtBU01f UEZYKENvbW1vblRhc2tTd3RpY2hFbnRyeVBvaW50KToNCj4gPiArICAgIDsNCj4gPiArICAgIDsg U3RhY2s6DQo+ID4gKyAgICA7ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0rIDwtLSBFQlAgLSA4DQo+ ID4gKyAgICA7ICsgICAgICAgVFNTIEJhc2UgICAgICArDQo+ID4gKyAgICA7ICstLS0tLS0tLS0t LS0tLS0tLS0tLS0rIDwtLSBFQlAgLSA0DQo+ID4gKyAgICA7ICsgICAgICBDUFVJRC5FRFggICAg ICArDQo+ID4gKyAgICA7ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0rIDwtLSBFQlANCj4gPiArICAg IDsgKyAgICAgICAgIEVJUCAgICAgICAgICsNCj4gPiArICAgIDsgKy0tLS0tLS0tLS0tLS0tLS0t LS0tLSsgPC0tIEVCUCArIDQNCj4gPiArICAgIDsgKyAgICBWZWN0b3IgTnVtYmVyICAgICsNCj4g PiArICAgIDsgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgPC0tIEVCUCArIDgNCj4gPiArICAgIDsg KyAgICBFcnJvciBDb2RlICAgICAgICsNCj4gPiArICAgIDsgKy0tLS0tLS0tLS0tLS0tLS0tLS0t LSsNCj4gPiArICAgIDsNCj4gPiArOw0KPiA+ICs7IEdldCBUU1Mgb2YgaW50ZXJydXB0ZWQgdGFz aw0KPiA+ICs7DQo+ID4gKyAgICBtb3YgICAgIGVicCwgZXNwICAgICAgICAgICAgICAgICAgICA7 IFN0YWNrIGZyYW1lDQo+ID4gKw0KPiA+ICs7IFVzZSBDUFVJRCB0byBkZXRlcm1pbmUgaWYgRlhT QVZFL0ZYUkVTVE9SIGFuZCBERSBhcmUgc3VwcG9ydGVkDQo+ID4gKyAgICBtb3YgICAgIGVheCwg MQ0KPiA+ICsgICAgY3B1aWQNCj4gPiArICAgIHB1c2ggICAgZWR4DQo+ID4gKw0KPiA+ICs7IEdl dCBUU1MgYmFzZSBvZiBpbnRlcnJ1cHRlZCB0YXNrIHRocm91Z2ggUHJldmlvdXNUYXNrTGluayBm aWVsZCBpbg0KPiA+ICs7IGN1cnJlbnQgVFNTIGJhc2UNCj4gPiArICAgIHN1YiAgICAgZXNwLCA4 DQo+ID4gKyAgICBzZ2R0ICAgIFtlc3AgKyAyXQ0KPiA+ICsgICAgbW92ICAgICBlYXgsIFtlc3Ag KyA0XSAgICAgICAgICAgICAgOyBHRFQgYmFzZQ0KPiA+ICsgICAgYWRkICAgICBlc3AsIDgNCj4g PiArDQo+ID4gKyAgICB4b3IgICAgIGVieCwgZWJ4DQo+ID4gKyAgICBzdHIgICAgIGJ4ICAgICAg ICAgICAgICAgICAgICAgICAgICA7IEN1cnJlbnQgVFINCj4gPiArDQo+ID4gKyAgICBtb3YgICAg IGVjeCwgW2VheCArIGVieCArIDJdDQo+ID4gKyAgICBzaGwgICAgIGVjeCwgOA0KPiA+ICsgICAg bW92ICAgICBjbCwgW2VheCArIGVieCArIDddDQo+ID4gKyAgICByb3IgICAgIGVjeCwgOCAgICAg ICAgICAgICAgICAgICAgICA7IGVjeCA9IEN1cnJlbnQgVFNTIGJhc2UNCj4gPiArICAgIHB1c2gg ICAgZWN4ICAgICAgICAgICAgICAgICAgICAgICAgIDsga2VlcCBpdCBpbiBzdGFjayBmb3IgbGF0 ZXIgdXNlDQo+ID4gKw0KPiA+ICsgICAgbW92enggICBlYngsIHdvcmQgW2VjeF0gICAgICAgICAg ICAgOyBQcmV2aW91cyBUYXNrIExpbmsNCj4gPiArICAgIG1vdiAgICAgZWN4LCBbZWF4ICsgZWJ4 ICsgMl0NCj4gPiArICAgIHNobCAgICAgZWN4LCA4DQo+ID4gKyAgICBtb3YgICAgIGNsLCBbZWF4 ICsgZWJ4ICsgN10NCj4gPiArICAgIHJvciAgICAgZWN4LCA4ICAgICAgICAgICAgICAgICAgICAg IDsgZWN4ID0gUHJldmlvdXMgVFNTIGJhc2UNCj4gPiArDQo+ID4gKzsNCj4gPiArOyBBbGlnbiBz dGFjayB0byBtYWtlIHN1cmUgdGhhdCBFRklfRlhfU0FWRV9TVEFURV9JQTMyIG9mDQo+ID4gRUZJ X1NZU1RFTV9DT05URVhUX0lBMzINCj4gPiArOyBpcyAxNi1ieXRlIGFsaWduZWQNCj4gPiArOw0K PiA+ICsgICAgYW5kICAgICBlc3AsIDB4ZmZmZmZmZjANCj4gPiArICAgIHN1YiAgICAgZXNwLCAx Mg0KPiA+ICsNCj4gPiArOzsgVUlOVDMyICBFZGksIEVzaSwgRWJwLCBFc3AsIEVieCwgRWR4LCBF Y3gsIEVheDsNCj4gPiArICAgIHB1c2ggICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FQVhdDQo+ ID4gKyAgICBwdXNoICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRUNYXQ0KPiA+ICsgICAgcHVz aCAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VEWF0NCj4gPiArICAgIHB1c2ggICAgZHdvcmQg W2VjeCArIElBMzJfVFNTLl9FQlhdDQo+ID4gKyAgICBwdXNoICAgIGR3b3JkIFtlY3ggKyBJQTMy X1RTUy5fRVNQXQ0KPiA+ICsgICAgcHVzaCAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VCUF0N Cj4gPiArICAgIHB1c2ggICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FU0ldDQo+ID4gKyAgICBw dXNoICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRURJXQ0KPiA+ICsNCj4gPiArOzsgVUlOVDMy ICBHcywgRnMsIEVzLCBEcywgQ3MsIFNzOw0KPiA+ICsgICAgbW92enggICBlYXgsIHdvcmQgW2Vj eCArIElBMzJfVFNTLl9TU10NCj4gPiArICAgIHB1c2ggICAgZWF4DQo+ID4gKyAgICBtb3Z6eCAg IGVheCwgd29yZCBbZWN4ICsgSUEzMl9UU1MuX0NTXQ0KPiA+ICsgICAgcHVzaCAgICBlYXgNCj4g PiArICAgIG1vdnp4ICAgZWF4LCB3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRFNdDQo+ID4gKyAgICBw dXNoICAgIGVheA0KPiA+ICsgICAgbW92enggICBlYXgsIHdvcmQgW2VjeCArIElBMzJfVFNTLl9F U10NCj4gPiArICAgIHB1c2ggICAgZWF4DQo+ID4gKyAgICBtb3Z6eCAgIGVheCwgd29yZCBbZWN4 ICsgSUEzMl9UU1MuX0ZTXQ0KPiA+ICsgICAgcHVzaCAgICBlYXgNCj4gPiArICAgIG1vdnp4ICAg ZWF4LCB3b3JkIFtlY3ggKyBJQTMyX1RTUy5fR1NdDQo+ID4gKyAgICBwdXNoICAgIGVheA0KPiA+ ICsNCj4gPiArOzsgVUlOVDMyICBFaXA7DQo+ID4gKyAgICBwdXNoICAgIGR3b3JkIFtlY3ggKyBJ QTMyX1RTUy5FSVBdDQo+ID4gKw0KPiA+ICs7OyBVSU5UMzIgIEdkdHJbMl0sIElkdHJbMl07DQo+ ID4gKyAgICBzdWIgICAgIGVzcCwgOA0KPiA+ICsgICAgc2lkdCAgICBbZXNwXQ0KPiA+ICsgICAg bW92ICAgICBlYXgsIFtlc3AgKyAyXQ0KPiA+ICsgICAgeGNoZyAgICBlYXgsIFtlc3BdDQo+ID4g KyAgICBhbmQgICAgIGVheCwgMHhGRkZGDQo+ID4gKyAgICBtb3YgICAgIFtlc3ArNF0sIGVheA0K PiA+ICsNCj4gPiArICAgIHN1YiAgICAgZXNwLCA4DQo+ID4gKyAgICBzZ2R0ICAgIFtlc3BdDQo+ ID4gKyAgICBtb3YgICAgIGVheCwgW2VzcCArIDJdDQo+ID4gKyAgICB4Y2hnICAgIGVheCwgW2Vz cF0NCj4gPiArICAgIGFuZCAgICAgZWF4LCAweEZGRkYNCj4gPiArICAgIG1vdiAgICAgW2VzcCs0 XSwgZWF4DQo+ID4gKw0KPiA+ICs7OyBVSU5UMzIgIExkdHIsIFRyOw0KPiA+ICsgICAgbW92ICAg ICBlYXgsIGVieCAgICA7IGVieCBzdGlsbCBrZWVwcyBzZWxlY3RvciBvZiBpbnRlcnJ1cHRlZCB0 YXNrDQo+ID4gKyAgICBwdXNoICAgIGVheA0KPiA+ICsgICAgbW92enggICBlYXgsIHdvcmQgW2Vj eCArIElBMzJfVFNTLkxEVF0NCj4gPiArICAgIHB1c2ggICAgZWF4DQo+ID4gKw0KPiA+ICs7OyBV SU5UMzIgIEVGbGFnczsNCj4gPiArICAgIHB1c2ggICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLkVG TEFHU10NCj4gPiArDQo+ID4gKzs7IFVJTlQzMiAgQ3IwLCBDcjEsIENyMiwgQ3IzLCBDcjQ7DQo+ ID4gKyAgICBtb3YgICAgIGVheCwgY3I0DQo+ID4gKyAgICBwdXNoICAgIGVheCAgICAgICAgICAg ICA7IHB1c2ggY3I0IGZpcnN0bHkNCj4gPiArDQo+ID4gKyAgICBtb3YgICAgIGVkeCwgW2VicCAt IDRdICA7IGNwdWlkLmVkeA0KPiA+ICsgICAgdGVzdCAgICBlZHgsIEJJVDI0ICAgICAgOyBUZXN0 IGZvciBGWFNBVkUvRlhSRVNUT1Igc3VwcG9ydA0KPiA+ICsgICAganogICAgICAuMQ0KPiA+ICsg ICAgb3IgICAgICBlYXgsIEJJVDkgICAgICAgOyBTZXQgQ1I0Lk9TRlhTUg0KPiA+ICsuMToNCj4g PiArICAgIHRlc3QgICAgZWR4LCBCSVQyICAgICAgIDsgVGVzdCBmb3IgRGVidWdnaW5nIEV4dGVu c2lvbnMgc3VwcG9ydA0KPiA+ICsgICAganogICAgICAuMg0KPiA+ICsgICAgb3IgICAgICBlYXgs IEJJVDMgICAgICAgOyBTZXQgQ1I0LkRFDQo+ID4gKy4yOg0KPiA+ICsgICAgbW92ICAgICBjcjQs IGVheA0KPiA+ICsNCj4gPiArICAgIG1vdiAgICAgZWF4LCBjcjMNCj4gPiArICAgIHB1c2ggICAg ZWF4DQo+ID4gKyAgICBtb3YgICAgIGVheCwgY3IyDQo+ID4gKyAgICBwdXNoICAgIGVheA0KPiA+ ICsgICAgeG9yICAgICBlYXgsIGVheA0KPiA+ICsgICAgcHVzaCAgICBlYXgNCj4gPiArICAgIG1v diAgICAgZWF4LCBjcjANCj4gPiArICAgIHB1c2ggICAgZWF4DQo+ID4gKw0KPiA+ICs7OyBVSU5U MzIgIERyMCwgRHIxLCBEcjIsIERyMywgRHI2LCBEcjc7DQo+ID4gKyAgICBtb3YgICAgIGVheCwg ZHI3DQo+ID4gKyAgICBwdXNoICAgIGVheA0KPiA+ICsgICAgbW92ICAgICBlYXgsIGRyNg0KPiA+ ICsgICAgcHVzaCAgICBlYXgNCj4gPiArICAgIG1vdiAgICAgZWF4LCBkcjMNCj4gPiArICAgIHB1 c2ggICAgZWF4DQo+ID4gKyAgICBtb3YgICAgIGVheCwgZHIyDQo+ID4gKyAgICBwdXNoICAgIGVh eA0KPiA+ICsgICAgbW92ICAgICBlYXgsIGRyMQ0KPiA+ICsgICAgcHVzaCAgICBlYXgNCj4gPiAr ICAgIG1vdiAgICAgZWF4LCBkcjANCj4gPiArICAgIHB1c2ggICAgZWF4DQo+ID4gKw0KPiA+ICs7 OyBGWF9TQVZFX1NUQVRFX0lBMzIgRnhTYXZlU3RhdGU7DQo+ID4gKzs7IENsZWFyIFRTIGJpdCBp biBDUjAgdG8gYXZvaWQgRGV2aWNlIE5vdCBBdmFpbGFibGUgRXhjZXB0aW9uICgjTk0pDQo+ID4g Kzs7IHdoZW4gZXhlY3V0aW5nIGZ4c2F2ZS9meHJzdG9yIGluc3RydWN0aW9uDQo+ID4gKyAgICB0 ZXN0ICAgIGVkeCwgQklUMjQgIDsgVGVzdCBmb3IgRlhTQVZFL0ZYUkVTVE9SIHN1cHBvcnQuDQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIDsgZWR4IHN0aWxsIGNvbnRhaW5zIHJlc3VsdCBm cm9tIENQVUlEIGFib3ZlDQo+ID4gKyAgICBqeiAgICAgIC4zDQo+ID4gKyAgICBjbHRzDQo+ID4g KyAgICBzdWIgICAgIGVzcCwgNTEyDQo+ID4gKyAgICBtb3YgICAgIGVkaSwgZXNwDQo+ID4gKyAg ICBkYiAgICAgIDB4ZiwgMHhhZSwgMHg3IDtmeHNhdmUgW2VkaV0NCj4gPiArLjM6DQo+ID4gKw0K PiA+ICs7OyBVSU5UMzIgIEV4Y2VwdGlvbkRhdGE7DQo+ID4gKyAgICBwdXNoICAgIGR3b3JkIFtl YnAgKyA4XQ0KPiA+ICsNCj4gPiArOzsgVUVGSSBjYWxsaW5nIGNvbnZlbnRpb24gZm9yIElBMzIg cmVxdWlyZXMgdGhhdCBEaXJlY3Rpb24gZmxhZyBpbiBFRkxBR3MgaXMgY2xlYXINCj4gPiArICAg IGNsZA0KPiA+ICsNCj4gPiArOzsgY2FsbCBpbnRvIGV4Y2VwdGlvbiBoYW5kbGVyDQo+ID4gKyAg ICBtb3YgICAgIGVzaSwgZWN4ICAgICAgICAgICAgOyBLZWVwIFRTUyBiYXNlIHRvIGF2b2lkIG92 ZXJ3cml0ZQ0KPiA+ICsgICAgbW92ICAgICBlYXgsIEFTTV9QRlgoQ29tbW9uRXhjZXB0aW9uSGFu ZGxlcikNCj4gPiArDQo+ID4gKzs7IFByZXBhcmUgcGFyYW1ldGVyIGFuZCBjYWxsDQo+ID4gKyAg ICBtb3YgICAgIGVkeCwgZXNwDQo+ID4gKyAgICBwdXNoICAgIGVkeCAgICAgICAgICAgICAgICAg OyBFRklfU1lTVEVNX0NPTlRFWFQNCj4gPiArICAgIHB1c2ggICAgZHdvcmQgW2VicCArIDRdICAg ICA7IEVGSV9FWENFUFRJT05fVFlQRSAodmVjdG9yIG51bWJlcikNCj4gPiArDQo+ID4gKyAgICA7 DQo+ID4gKyAgICA7IENhbGwgRXh0ZXJuYWwgRXhjZXB0aW9uIEhhbmRsZXINCj4gPiArICAgIDsN Cj4gPiArICAgIGNhbGwgICAgZWF4DQo+ID4gKyAgICBhZGQgICAgIGVzcCwgOCAgICAgICAgICAg ICAgOyBSZXN0b3JlIHN0YWNrIGJlZm9yZSBjYWxsaW5nDQo+ID4gKyAgICBtb3YgICAgIGVjeCwg ZXNpICAgICAgICAgICAgOyBSZXN0b3JlIFRTUyBiYXNlDQo+ID4gKw0KPiA+ICs7OyBVSU5UMzIg IEV4Y2VwdGlvbkRhdGE7DQo+ID4gKyAgICBhZGQgICAgIGVzcCwgNA0KPiA+ICsNCj4gPiArOzsg RlhfU0FWRV9TVEFURV9JQTMyIEZ4U2F2ZVN0YXRlOw0KPiA+ICsgICAgbW92ICAgICBlZHgsIFtl YnAgLSA0XSAgOyBjcHVpZC5lZHgNCj4gPiArICAgIHRlc3QgICAgZWR4LCBCSVQyNCAgICAgIDsg VGVzdCBmb3IgRlhTQVZFL0ZYUkVTVE9SIHN1cHBvcnQNCj4gPiArICAgIGp6ICAgICAgLjQNCj4g PiArICAgIG1vdiAgICAgZXNpLCBlc3ANCj4gPiArICAgIGRiICAgICAgMHhmLCAweGFlLCAweGUg IDsgZnhyc3RvciBbZXNpXQ0KPiA+ICsuNDoNCj4gPiArICAgIGFkZCAgICAgZXNwLCA1MTINCj4g PiArDQo+ID4gKzs7IFVJTlQzMiAgRHIwLCBEcjEsIERyMiwgRHIzLCBEcjYsIERyNzsgOzsgU2tp cCByZXN0b3JhdGlvbiBvZiBEUngNCj4gPiArcmVnaXN0ZXJzIHRvIHN1cHBvcnQgZGVidWdnZXJz IDs7IHRoYXQgc2V0IGJyZWFrcG9pbnRzIGluDQo+ID4gK2ludGVycnVwdC9leGNlcHRpb24gY29u dGV4dA0KPiA+ICsgICAgYWRkICAgICBlc3AsIDQgKiA2DQo+ID4gKw0KPiA+ICs7OyBVSU5UMzIg IENyMCwgQ3IxLCBDcjIsIENyMywgQ3I0Ow0KPiA+ICsgICAgcG9wICAgICBlYXgNCj4gPiArICAg IG1vdiAgICAgY3IwLCBlYXgNCj4gPiArICAgIGFkZCAgICAgZXNwLCA0ICAgIDsgbm90IGZvciBD cjENCj4gPiArICAgIHBvcCAgICAgZWF4DQo+ID4gKyAgICBtb3YgICAgIGNyMiwgZWF4DQo+ID4g KyAgICBwb3AgICAgIGVheA0KPiA+ICsgICAgbW92ICAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1Mu X0NSM10sIGVheA0KPiA+ICsgICAgcG9wICAgICBlYXgNCj4gPiArICAgIG1vdiAgICAgY3I0LCBl YXgNCj4gPiArDQo+ID4gKzs7IFVJTlQzMiAgRUZsYWdzOw0KPiA+ICsgICAgcG9wICAgICBkd29y ZCBbZWN4ICsgSUEzMl9UU1MuRUZMQUdTXQ0KPiA+ICsgICAgbW92ICAgICBlYngsIGR3b3JkIFtl Y3ggKyBJQTMyX1RTUy5FRkxBR1NdDQo+ID4gKyAgICBidHIgICAgIGVieCwgOSAgICAgIDsgRG8g J2NsaScNCj4gPiArICAgIG1vdiAgICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLkVGTEFHU10sIGVi eA0KPiA+ICsNCj4gPiArOzsgVUlOVDMyICBMZHRyLCBUcjsNCj4gPiArOzsgVUlOVDMyICBHZHRy WzJdLCBJZHRyWzJdOw0KPiA+ICs7OyBCZXN0IG5vdCBsZXQgYW55b25lIG1lc3Mgd2l0aCB0aGVz ZSBwYXJ0aWN1bGFyIHJlZ2lzdGVycy4uLg0KPiA+ICsgICAgYWRkICAgICBlc3AsIDI0DQo+ID4g Kw0KPiA+ICs7OyBVSU5UMzIgIEVpcDsNCj4gPiArICAgIHBvcCAgICAgZHdvcmQgW2VjeCArIElB MzJfVFNTLkVJUF0NCj4gPiArDQo+ID4gKzs7IFVJTlQzMiAgR3MsIEZzLCBFcywgRHMsIENzLCBT czsNCj4gPiArOzsgTk9URSAtIG1vZGlmaWVkIHNlZ21lbnQgcmVnaXN0ZXJzIGNvdWxkIGhhbmcg dGhlIGRlYnVnZ2VyLi4uICBXZQ0KPiA+ICs7OyAgICAgICAgY291bGQgYXR0ZW1wdCB0byBpbnN1 bGF0ZSBvdXJzZWx2ZXMgYWdhaW5zdCB0aGlzIHBvc3NpYmlsaXR5LA0KPiA+ICs7OyAgICAgICAg YnV0IHRoYXQgcG9zZXMgcmlza3MgYXMgd2VsbC4NCj4gPiArOzsNCj4gPiArICAgIHBvcCAgICAg ZWF4DQo+ID4gK28xNiBtb3YgICAgIFtlY3ggKyBJQTMyX1RTUy5fR1NdLCBheA0KPiA+ICsgICAg cG9wICAgICBlYXgNCj4gPiArbzE2IG1vdiAgICAgW2VjeCArIElBMzJfVFNTLl9GU10sIGF4DQo+ ID4gKyAgICBwb3AgICAgIGVheA0KPiA+ICtvMTYgbW92ICAgICBbZWN4ICsgSUEzMl9UU1MuX0VT XSwgYXgNCj4gPiArICAgIHBvcCAgICAgZWF4DQo+ID4gK28xNiBtb3YgICAgIFtlY3ggKyBJQTMy X1RTUy5fRFNdLCBheA0KPiA+ICsgICAgcG9wICAgICBlYXgNCj4gPiArbzE2IG1vdiAgICAgW2Vj eCArIElBMzJfVFNTLl9DU10sIGF4DQo+ID4gKyAgICBwb3AgICAgIGVheA0KPiA+ICtvMTYgbW92 ICAgICBbZWN4ICsgSUEzMl9UU1MuX1NTXSwgYXgNCj4gPiArDQo+ID4gKzs7IFVJTlQzMiAgRWRp LCBFc2ksIEVicCwgRXNwLCBFYngsIEVkeCwgRWN4LCBFYXg7DQo+ID4gKyAgICBwb3AgICAgIGR3 b3JkIFtlY3ggKyBJQTMyX1RTUy5fRURJXQ0KPiA+ICsgICAgcG9wICAgICBkd29yZCBbZWN4ICsg SUEzMl9UU1MuX0VTSV0NCj4gPiArICAgIGFkZCAgICAgZXNwLCA0ICAgOyBub3QgZm9yIGVicA0K PiA+ICsgICAgYWRkICAgICBlc3AsIDQgICA7IG5vdCBmb3IgZXNwDQo+ID4gKyAgICBwb3AgICAg IGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRUJYXQ0KPiA+ICsgICAgcG9wICAgICBkd29yZCBbZWN4 ICsgSUEzMl9UU1MuX0VEWF0NCj4gPiArICAgIHBvcCAgICAgZHdvcmQgW2VjeCArIElBMzJfVFNT Ll9FQ1hdDQo+ID4gKyAgICBwb3AgICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRUFYXQ0KPiA+ ICsNCj4gPiArOyBTZXQgc2luZ2xlIHN0ZXAgREIjIHRvIGFsbG93IGRlYnVnZ2VyIHRvIGFibGUg dG8gZ28gYmFjayB0byB0aGUgRUlQDQo+ID4gKzsgd2hlcmUgdGhlIGV4Y2VwdGlvbiBpcyB0cmln Z2VyZWQuDQo+ID4gKw0KPiA+ICs7OyBDcmVhdGUgcmV0dXJuIGNvbnRleHQgZm9yIGlyZXRkIGlu IHN0dWIgZnVuY3Rpb24NCj4gPiArICAgIG1vdiAgICBlYXgsIGR3b3JkIFtlY3ggKyBJQTMyX1RT Uy5fRVNQXSAgICAgIDsgR2V0IG9sZCBzdGFjayBwb2ludGVyDQo+ID4gKyAgICBtb3YgICAgZWJ4 LCBkd29yZCBbZWN4ICsgSUEzMl9UU1MuRUlQXQ0KPiA+ICsgICAgbW92ICAgIFtlYXggLSAweGNd LCBlYnggICAgICAgICAgICAgICAgICAgICAgOyBjcmVhdGUgRUlQIGluIG9sZCBzdGFjaw0KPiA+ ICsgICAgbW92enggIGVieCwgd29yZCBbZWN4ICsgSUEzMl9UU1MuX0NTXQ0KPiA+ICsgICAgbW92 ICAgIFtlYXggLSAweDhdLCBlYnggICAgICAgICAgICAgICAgICAgICAgOyBjcmVhdGUgQ1MgaW4g b2xkIHN0YWNrDQo+ID4gKyAgICBtb3YgICAgZWJ4LCBkd29yZCBbZWN4ICsgSUEzMl9UU1MuRUZM QUdTXQ0KPiA+ICsgICAgYnRzICAgIGVieCwgOA0KPiA+ICsgICAgbW92ICAgIFtlYXggLSAweDRd LCBlYnggICAgICAgICAgICAgICAgICAgICAgOyBjcmVhdGUgZWZsYWdzIGluIG9sZA0KPiBzdGFj aw0KPiA+ICsgICAgbW92ICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5FRkxBR1NdLCBlYnggICAg OyB1cGRhdGUgZWZsYWdzIGluIG9sZA0KPiBUU1MNCj4gPiArICAgIG1vdiAgICBlYXgsIGR3b3Jk IFtlY3ggKyBJQTMyX1RTUy5fRVNQXSAgICAgIDsgR2V0IG9sZCBzdGFjayBwb2ludGVyDQo+ID4g KyAgICBzdWIgICAgZWF4LCAweGMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IG1pbnVz IDEyIGJ5dGUNCj4gPiArICAgIG1vdiAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VTUF0sIGVh eCAgICAgIDsgU2V0IG5ldyBzdGFjayBwb2ludGVyDQo+ID4gKw0KPiA+ICs7OyBSZXBsYWNlIHRo ZSBFSVAgb2YgaW50ZXJydXB0ZWQgdGFzayB3aXRoIHN0dWIgZnVuY3Rpb24NCj4gPiArICAgIG1v diAgICBlYXgsIEFTTV9QRlgoU2luZ2xlU3RlcFN0dWJGdW5jdGlvbikNCj4gPiArICAgIG1vdiAg ICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuRUlQXSwgZWF4DQo+ID4gKw0KPiA+ICsgICAgbW92ICAg ICBlY3gsIFtlYnAgLSA4XSAgICAgICAgICAgICAgICAgICAgICAgOyBHZXQgY3VycmVudCBUU1Mg YmFzZQ0KPiA+ICsgICAgbW92ICAgICBlYXgsIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRVNQXSAg ICAgOyBSZXR1cm4gY3VycmVudCBzdGFjaw0KPiB0b3ANCj4gPiArICAgIG1vdiAgICAgZXNwLCBl YnANCj4gPiArDQo+ID4gKyAgICByZXQNCj4gPiArDQo+ID4gK2dsb2JhbCBBU01fUEZYKFNpbmds ZVN0ZXBTdHViRnVuY3Rpb24pDQo+ID4gK0FTTV9QRlgoU2luZ2xlU3RlcFN0dWJGdW5jdGlvbik6 DQo+ID4gKzsNCj4gPiArOyB3ZSBuZWVkIGNsZWFuIFRTIGJpdCBpbiBDUjAgdG8gZXhlY3V0ZSA7 IHg4Nw0KPiA+ICtGUFUvTU1YL1NTRS9TU0UyL1NTRTMvU1NTRTMvU1NFNCBpbnN0cnVjdGlvbnMu DQo+ID4gKzsNCj4gPiArICAgIGNsdHMNCj4gPiArICAgIGlyZXRkDQo+ID4gKw0KPiA+ICs7LS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCj4gPiArLS0tLS0tLS0tLQ0KPiA+ICs7IFZPSUQNCj4gPiArOyBBc21Xcml0ZVRy ICgNCj4gPiArOyAgIFVJTlQxNiBTZWxlY3Rvcg0KPiA+ICs7ICAgKTsNCj4gPiArOy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQo+ID4gKy0tLS0tLS0tLS0NCj4gPiArZ2xvYmFsIEFTTV9QRlgoQXNtV3JpdGVUcikNCj4g PiArQVNNX1BGWChBc21Xcml0ZVRyKToNCj4gPiArICAgIG1vdiAgICAgZWF4LCBbZXNwKzRdDQo+ ID4gKyAgICBsdHIgICAgIGF4DQo+ID4gKyAgICByZXQNCj4gPiArDQo+ID4gK0RlZkV4Y2VwdGlv blRhc2tTd3RpY2hFbnRyeSA2DQo+ID4gK0RlZkV4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeSA4DQo+ ID4gK0RlZkV4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeSAxMg0KPiA+ICtEZWZFeGNlcHRpb25UYXNr U3d0aWNoRW50cnkgMTMNCj4gPiArRGVmRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5IDE0DQo+ID4g K0RlZkV4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeSAxNw0KPiA+ICtEZWZFeGNlcHRpb25UYXNrU3d0 aWNoRW50cnkgMTgNCj4gPiArDQo+ID4gZGlmZiAtLWdpdA0KPiA+IGEvVWVmaUNwdVBrZy9MaWJy YXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvUGVpQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi4NCj4g PiBpbmYNCj4gPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1Bl aUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuDQo+ID4gaW5mDQo+ID4gaW5kZXggNzU0NDMyODhhOS4u NGMwZDQzNTEzNiAxMDA2NDQNCj4gPiAtLS0NCj4gPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVF eGNlcHRpb25IYW5kbGVyTGliL1BlaUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuDQo+ID4gaW5mDQo+ ID4gKysrDQo+ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9Q ZWlDcHVFeGNlcHRpb25IYW5kbGVyTGliLg0KPiA+IGluZg0KPiA+IEBAIC0zMCw2ICszMCw3IEBA DQo+ID4gIFtTb3VyY2VzLklhMzJdDQo+ID4gICAgSWEzMi9FeGNlcHRpb25IYW5kbGVyQXNtLmFz bQ0KPiA+ICAgIElhMzIvRXhjZXB0aW9uSGFuZGxlckFzbS5uYXNtDQo+ID4gKyAgSWEzMi9FeGNl cHRpb25Uc3NFbnRyeUFzbS5uYXNtDQo+ID4gICAgSWEzMi9FeGNlcHRpb25IYW5kbGVyQXNtLlMN Cj4gPiAgICBJYTMyL0FyY2hFeGNlcHRpb25IYW5kbGVyLmMNCj4gPiAgICBJYTMyL0FyY2hJbnRl cnJ1cHREZWZzLmgNCj4gPiBkaWZmIC0tZ2l0DQo+ID4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1 RXhjZXB0aW9uSGFuZGxlckxpYi9TZWNQZWlDcHVFeGNlcHRpb25IYW5kbGVyTA0KPiA+IGliLmkN Cj4gPiBuZg0KPiA+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIv U2VjUGVpQ3B1RXhjZXB0aW9uSGFuZGxlckwNCj4gPiBpYi5pDQo+ID4gbmYNCj4gPiBpbmRleCBk NzBhOTljMTAwLi5hZGI0MTViYTVhIDEwMDY0NA0KPiA+IC0tLQ0KPiA+IGEvVWVmaUNwdVBrZy9M aWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvU2VjUGVpQ3B1RXhjZXB0aW9uSGFuZGxlckwN Cj4gPiBpYi5pDQo+ID4gbmYNCj4gPiArKysNCj4gPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVF eGNlcHRpb25IYW5kbGVyTGliL1NlY1BlaUNwdUV4Y2VwdGlvbkhhbmRsZXJMDQo+ID4gaWIuaQ0K PiA+IG5mDQo+ID4gQEAgLTMwLDYgKzMwLDcgQEANCj4gPiAgW1NvdXJjZXMuSWEzMl0NCj4gPiAg ICBJYTMyL0V4Y2VwdGlvbkhhbmRsZXJBc20uYXNtDQo+ID4gICAgSWEzMi9FeGNlcHRpb25IYW5k bGVyQXNtLm5hc20NCj4gPiArICBJYTMyL0V4Y2VwdGlvblRzc0VudHJ5QXNtLm5hc20NCj4gPiAg ICBJYTMyL0V4Y2VwdGlvbkhhbmRsZXJBc20uUw0KPiA+ICAgIElhMzIvQXJjaEV4Y2VwdGlvbkhh bmRsZXIuYw0KPiA+ICAgIElhMzIvQXJjaEludGVycnVwdERlZnMuaA0KPiA+IEBAIC01NywzICs1 OCw1IEBADQo+ID4gICAgUHJpbnRMaWINCj4gPiAgICBMb2NhbEFwaWNMaWINCj4gPiAgICBQZUNv ZmZHZXRFbnRyeVBvaW50TGliDQo+ID4gKyAgTWVtb3J5QWxsb2NhdGlvbkxpYg0KPiA+ICsNCj4g PiBkaWZmIC0tZ2l0DQo+ID4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxl ckxpYi9TbW1DcHVFeGNlcHRpb25IYW5kbGVyTGliLg0KPiA+IGluZg0KPiA+IGIvVWVmaUNwdVBr Zy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvU21tQ3B1RXhjZXB0aW9uSGFuZGxlckxp Yi4NCj4gPiBpbmYNCj4gPiBpbmRleCA2MzRmZmNiMjFkLi41NmI4NzViN2M4IDEwMDY0NA0KPiA+ IC0tLQ0KPiA+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvU21t Q3B1RXhjZXB0aW9uSGFuZGxlckxpYi4NCj4gPiBpbmYNCj4gPiArKysNCj4gPiBiL1VlZmlDcHVQ a2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1NtbUNwdUV4Y2VwdGlvbkhhbmRsZXJM aWIuDQo+ID4gaW5mDQo+ID4gQEAgLTMwLDYgKzMwLDcgQEANCj4gPiAgW1NvdXJjZXMuSWEzMl0N Cj4gPiAgICBJYTMyL0V4Y2VwdGlvbkhhbmRsZXJBc20uYXNtDQo+ID4gICAgSWEzMi9FeGNlcHRp b25IYW5kbGVyQXNtLm5hc20NCj4gPiArICBJYTMyL0V4Y2VwdGlvblRzc0VudHJ5QXNtLm5hc20N Cj4gPiAgICBJYTMyL0V4Y2VwdGlvbkhhbmRsZXJBc20uUw0KPiA+ICAgIElhMzIvQXJjaEV4Y2Vw dGlvbkhhbmRsZXIuYw0KPiA+ICAgIElhMzIvQXJjaEludGVycnVwdERlZnMuaA0KPiA+IGRpZmYg LS1naXQNCj4gPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2 NC9BcmNoRXhjZXB0aW9uSGFuZGxlci5jDQo+ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhj ZXB0aW9uSGFuZGxlckxpYi9YNjQvQXJjaEV4Y2VwdGlvbkhhbmRsZXIuYw0KPiA+IGluZGV4IDY1 ZjBjZmY2ODAuLjI0ZjJhODQ4NmEgMTAwNjQ0DQo+ID4gLS0tDQo+ID4gYS9VZWZpQ3B1UGtnL0xp YnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvQXJjaEV4Y2VwdGlvbkhhbmRsZXIuYw0K PiA+ICsrKyBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9B cmNoRXhjZXB0aW9uSGFuZGwNCj4gPiArKysgZXIuYw0KPiA+IEBAIC0xNCw2ICsxNCwxOSBAQA0K PiA+DQo+ID4gICNpbmNsdWRlICJDcHVFeGNlcHRpb25Db21tb24uaCINCj4gPg0KPiA+ICsvLw0K PiA+ICsvLyBMaXN0IG9mIGV4Y2VwdGlvbnMgbmVlZGluZyBzZXBhcmF0ZSBzdGFjayAvLyBTVEFU SUMgVUlOVE4NCj4gPiArbUV4Y2VwdGlvbnNXaXRoU3RhY2tbXSA9IHsNCj4gPiArICA2LCAgLy8j VUQ6IEludmFsaWQgT3Bjb2RlIEV4Y2VwdGlvbg0KPiA+ICsgIDgsICAvLyNERjogRG91YmxlIEZh dWx0IEV4Y2VwdGlvbg0KPiA+ICsgIDEyLCAvLyNTUzogU3RhY2sgRmF1bHQgRXhjZXB0aW9uDQo+ ID4gKyAgMTMsIC8vI0dQOiBHZW5lcmFsIFByb3RlY3Rpb24gRXhjZXB0aW9uDQo+ID4gKyAgMTQs IC8vI1BGOiBQYWdlLUZhdWx0IEV4Y2VwdGlvbg0KPiA+ICsgIDE3LCAvLyNBQzogQWxpZ25tZW50 IENoZWNrIEV4Y2VwdGlvbg0KPiA+ICsgIDE4ICAvLyNNQzogTWFjaGluZS1DaGVjayBFeGNlcHRp b24NCj4gPiArICB9Ow0KPiA+ICsNCj4gPiAgLyoqDQo+ID4gICAgUmV0dXJuIGFkZHJlc3MgbWFw IG9mIGV4Y2VwdGlvbiBoYW5kbGVyIHRlbXBsYXRlIHNvIHRoYXQgQyBjb2RlIGNhbg0KPiA+IGdl bmVyYXRlDQo+ID4gICAgZXhjZXB0aW9uIHRhYmxlcy4NCj4gPiBAQCAtMTEyLDYgKzEyNSwxMDEg QEAgQXJjaFJlc3RvcmVFeGNlcHRpb25Db250ZXh0ICgNCj4gPiAgICBTeXN0ZW1Db250ZXh0LlN5 c3RlbUNvbnRleHRYNjQtPkV4Y2VwdGlvbkRhdGEgPQ0KPiA+IFJlc2VydmVkVmVjdG9yc1tFeGNl cHRpb25UeXBlXS5FeGNlcHRpb25EYXRhOw0KPiA+ICB9DQo+ID4NCj4gPiArLyoqDQo+ID4gKyAg U2V0dXAgc2VwYXJhdGUgc3RhY2sgZm9yIHNwZWNpZmljIGV4Y2VwdGlvbnMuDQo+ID4gKw0KPiA+ ICsgIEBwYXJhbVtpbl0gSWR0VGFibGUgICAgICAgIElEVCB0YWJsZSBiYXNlLg0KPiA+ICsqKi8N Cj4gPiArVk9JRA0KPiA+ICtFRklBUEkNCj4gPiArQXJjaFNldHVwRXhjcGV0aW9uU3RhY2sgKA0K PiA+ICsgIElOIElBMzJfSURUX0dBVEVfREVTQ1JJUFRPUiAgICAgICAgICAgKklkdFRhYmxlDQo+ ID4gKyAgKQ0KPiA+ICt7DQo+ID4gKyAgVk9JRCAgICAgICAgICAgICAgICAgICAgICAqTmV3R2R0 Ow0KPiA+ICsgIElBMzJfREVTQ1JJUFRPUiAgICAgICAgICAgR2R0RGVzYzsNCj4gPiArICBVSU5U TiAgICAgICAgICAgICAgICAgICAgIE9sZEdkdFNpemU7DQo+ID4gKyAgVFNTX0VOVFJJRVMgICAg ICAgICAgICAgICAqVHNzRW50cnk7DQo+ID4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICBT dGFja0Jhc2U7DQo+ID4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICBTdGFja1RvcDsNCj4g PiArICBVSU5UTiAgICAgICAgICAgICAgICAgICAgIFN0YWNrU2l6ZTsNCj4gPiArICBVSU5UTiAg ICAgICAgICAgICAgICAgICAgIFRzc0Jhc2U7DQo+ID4gKyAgVUlOVE4gICAgICAgICAgICAgICAg ICAgICBJbmRleDsNCj4gPiArDQo+ID4gKyAgLy8NCj4gPiArICAvLyBBbGxvY2F0ZSBSdW50aW1l IERhdGEgZm9yIHRoZSBHRFQgIC8vICBBc21SZWFkR2R0cigmR2R0RGVzYyk7DQo+ID4gKyBPbGRH ZHRTaXplID0gR2R0RGVzYy5MaW1pdCArIDE7ICBOZXdHZHQgPQ0KPiA+ICsgQWxsb2NhdGVSdW50 aW1lWmVyb1Bvb2woT2xkR2R0U2l6ZSArIHNpemVvZihUU1NfRU5UUklFUykNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArIElBMzJfR0RUX0FMSUdOTUVOVCk7ICBpZiAoTmV3 R2R0DQo+ID09DQo+ID4gKyBOVUxMKSB7DQo+ID4gKyAgICByZXR1cm47DQo+ID4gKyAgfQ0KPiA+ ICsgIE5ld0dkdCA9IEFMSUdOX1BPSU5URVIgKE5ld0dkdCwgSUEzMl9HRFRfQUxJR05NRU5UKTsN Cj4gPiArDQo+ID4gKyAgLy8NCj4gPiArICAvLyBJbml0aWFsaXplIG5ldyBHRFQgZW50cmllcw0K PiA+ICsgIC8vDQo+ID4gKyAgQ29weU1lbShOZXdHZHQsIChWT0lEICopR2R0RGVzYy5CYXNlLCBP bGRHZHRTaXplKTsgIEdkdERlc2MuQmFzZSA9DQo+ID4gKyAoVUlOVE4pKFZPSUQqKU5ld0dkdDsg IEdkdERlc2MuTGltaXQgPSAoVUlOVDE2KShPbGRHZHRTaXplICsNCj4gPiArIFRTU19PRkZTRVQg LSAxKTsNCj4gPiArDQo+ID4gKyAgLy8NCj4gPiArICAvLyBSZXNlcnZlIHN0YXRjayBtZW1vcnkg Zm9yIHN1cHBvcnRlZCBleGNlcHRpb25zICAvLyAgU3RhY2tTaXplID0NCj4gPiArIEFSUkFZX1NJ WkUgKG1FeGNlcHRpb25zV2l0aFN0YWNrKSAqIEVYQ0VQVElPTl9TVEFDS19TSVpFOyAgU3RhY2tT aXplDQo+ID4gKyA9IEVGSV9QQUdFU19UT19TSVpFIChFRklfU0laRV9UT19QQUdFUyAoU3RhY2tT aXplKSk7ICBTdGFja0Jhc2UgPQ0KPiA+ICsgKFVJTlQ2NClBbGxvY2F0ZVBhZ2VzIChFRklfU0la RV9UT19QQUdFUyAoU3RhY2tTaXplKSk7ICBpZg0KPiA+ICsgKFN0YWNrQmFzZSA9PSAwKSB7DQo+ ID4gKyAgICBGcmVlUG9vbCAoTmV3R2R0KTsNCj4gPiArICAgIHJldHVybjsNCj4gPiArICB9DQo+ ID4gKw0KPiA+ICsgIC8vDQo+ID4gKyAgLy8gRml4dXAgVFNTIGRlc2NyaXB0b3JzDQo+ID4gKyAg Ly8NCj4gPiArICBUc3NFbnRyeSA9IChWT0lEICopKEdkdERlc2MuQmFzZSArIE9sZEdkdFNpemUp OyAgVHNzQmFzZSA9DQo+ID4gKyAoVUlOVE4pKFZPSUQgKikmVHNzRW50cnktPlRzczsNCj4gPiAr DQo+ID4gKyAgVHNzRW50cnktPlRzc1NlZy5MaW1pdDE1XzAgICAgICAgICAgICA9DQo+ID4gc2l6 ZW9mKElBMzJfVEFTS19TVEFURV9TRUdNRU5UKSAtIDE7DQo+ID4gKyAgVHNzRW50cnktPlRzc1Nl Zy5CYXNlMTVfMCAgICAgICAgICAgICA9IChVSU5UMTYpVHNzQmFzZTsNCj4gPiArICBUc3NFbnRy eS0+VHNzU2VnLkJhc2UyM18xNiAgICAgICAgICAgID0gKFVJTlQ4KShUc3NCYXNlID4+IDE2KTsN Cj4gPiArICBUc3NFbnRyeS0+VHNzU2VnLlR5cGUgICAgICAgICAgICAgICAgID0gSUEzMl9HRFRf VFlQRV9UU1M7DQo+ID4gKyAgVHNzRW50cnktPlRzc1NlZy5MaW1pdDE5XzE2X2FuZF9mbGFncyA9 IDA7DQo+ID4gKyAgVHNzRW50cnktPlRzc1NlZy5CYXNlMzFfMjQgICAgICAgICAgICA9IChVSU5U OCkoVHNzQmFzZSA+PiAyNCk7DQo+ID4gKyAgVHNzRW50cnktPlRzc1NlZy5CYXNlNjNfMzIgICAg ICAgICAgICA9IChVSU5UMzIpKFRzc0Jhc2UgPj4gMzIpOw0KPiA+ICsgIFRzc0VudHJ5LT5Uc3NT ZWcuUmVzZXJ2ZWQgICAgICAgICAgICAgPSAwOw0KPiA+ICsNCj4gPiArICAvLw0KPiA+ICsgIC8v IEVuYWJsZSBJbnRlcnJ1cHQgU3RhY2sgVGFibGUgKElTVCkgZm9yIGVhY2ggcmVxdWlyZWQgZXhj ZXB0aW9uDQo+ID4gKyAvLyAgU3RhY2tUb3AgID0gU3RhY2tCYXNlICsgU3RhY2tTaXplIC0gQ1BV X1NUQUNLX0FMSUdOTUVOVDsNCj4gPiArIFN0YWNrVG9wICA9IChVSU5UTilBTElHTl9QT0lOVEVS IChTdGFja1RvcCwgQ1BVX1NUQUNLX0FMSUdOTUVOVCk7DQo+ID4gKyBmb3IgKEluZGV4ID0gMDsg SW5kZXggPCBBUlJBWV9TSVpFIChtRXhjZXB0aW9uc1dpdGhTdGFjayk7ICsrSW5kZXgpIHsNCj4g PiArICAgIC8vDQo+ID4gKyAgICAvLyBGaXh1cCBUU1MNCj4gPiArICAgIC8vDQo+ID4gKyAgICBU c3NFbnRyeS0+VHNzLklTVFtJbmRleF0gPSBTdGFja1RvcDsNCj4gPiArICAgIFN0YWNrVG9wIC09 IEVYQ0VQVElPTl9TVEFDS19TSVpFOw0KPiA+ICsNCj4gPiArICAgIC8vDQo+ID4gKyAgICAvLyBT ZXQgdGhlIElTVCBmaWVsZCB0byAxIHRvIGVuYWJsZSBjb3JyZXNwb25kaW5nIElTVA0KPiA+ICsg ICAgLy8NCj4gPiArICAgIElkdFRhYmxlW21FeGNlcHRpb25zV2l0aFN0YWNrW0luZGV4XV0uQml0 cy5SZXNlcnZlZF8wID0NCj4gPiArIChVSU5UOCkoSW5kZXggKw0KPiA+IDEpOw0KPiA+ICsgIH0N Cj4gPiArDQo+ID4gKyAgLy8NCj4gPiArICAvLyBQdWJsaXNoIHRoZSBjaGFuZ2VzDQo+ID4gKyAg Ly8NCj4gPiArICBBc21Xcml0ZUdkdHIoJkdkdERlc2MpOw0KPiA+ICsNCj4gPiArICAvLw0KPiA+ ICsgIC8vIExvYWQgdGFzayByZWdpc3Rlcg0KPiA+ICsgIC8vDQo+ID4gKyAgQXNtV3JpdGVUciAo KFVJTlQxNikoT2xkR2R0U2l6ZSArIFRTU19TRUwpKTsgfQ0KPiA+ICsNCj4gPiAgLyoqDQo+ID4g ICAgRGlzcGxheSBDUFUgaW5mb3JtYXRpb24uDQo+ID4NCj4gPiBkaWZmIC0tZ2l0DQo+ID4gYS9V ZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvQXJjaEludGVycnVw dERlZnMuaA0KPiA+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIv WDY0L0FyY2hJbnRlcnJ1cHREZWZzLmgNCj4gPiBpbmRleCA5MDY0ODAxMzRhLi41YTkxM2JhZTdi IDEwMDY0NA0KPiA+IC0tLQ0KPiA+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhh bmRsZXJMaWIvWDY0L0FyY2hJbnRlcnJ1cHREZWZzLmgNCj4gPiArKysgYi9VZWZpQ3B1UGtnL0xp YnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvQXJjaEludGVycnVwdERlZnMuDQo+ID4g KysrIGgNCj4gPiBAQCAtNDMsNCArNDMsNDQgQEAgdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ICAgIFVJ TlQ4ICAgICAgIEhvb2tBZnRlclN0dWJIZWFkZXJDb2RlW0hPT0tBRlRFUl9TVFVCX1NJWkVdOw0K PiA+ICB9IFJFU0VSVkVEX1ZFQ1RPUlNfREFUQTsNCj4gPg0KPiA+ICsjcHJhZ21hIHBhY2sgKDEp DQo+ID4gKw0KPiA+ICsjZGVmaW5lIEVYQ0VQVElPTl9MSVNUX01BWCAgICAgICAgNw0KPiA+ICsj ZGVmaW5lIEVYQ0VQVElPTl9TVEFDS19TSVpFICAgICAgRUZJX1BBR0VfU0laRQ0KPiA+ICsjZGVm aW5lIElBMzJfR0RUX1RZUEVfVFNTICAgICAgICAgMHg4OQ0KPiA+ICsjZGVmaW5lIElBMzJfR0RU X0FMSUdOTUVOVCAgICAgICAgOA0KPiA+ICsNCj4gPiArdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ICsg IFVJTlQzMiAgICBSZXNlcnZlZF8wOw0KPiA+ICsgIFVJTlQ2NCAgICBSU1AwOw0KPiA+ICsgIFVJ TlQ2NCAgICBSU1AxOw0KPiA+ICsgIFVJTlQ2NCAgICBSU1AyOw0KPiA+ICsgIFVJTlQ2NCAgICBS ZXNlcnZlZF8yODsNCj4gPiArICBVSU5UNjQgICAgSVNUWzddOw0KPiA+ICsgIFVJTlQ2NCAgICBS ZXNlcnZlZF85MjsNCj4gPiArICBVSU5UMTYgICAgUmVzZXJ2ZWRfMTAwOw0KPiA+ICsgIFVJTlQx NiAgICBJT01hcEJhc2VBZGRyZXNzOw0KPiA+ICt9IElBMzJfVEFTS19TVEFURV9TRUdNRU5UOw0K PiA+ICsNCj4gPiArdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ICsgIFVJTlQxNiAgICBMaW1pdDE1XzA7 DQo+ID4gKyAgVUlOVDE2ICAgIEJhc2UxNV8wOw0KPiA+ICsgIFVJTlQ4ICAgICBCYXNlMjNfMTY7 DQo+ID4gKyAgVUlOVDggICAgIFR5cGU7DQo+ID4gKyAgVUlOVDggICAgIExpbWl0MTlfMTZfYW5k X2ZsYWdzOw0KPiA+ICsgIFVJTlQ4ICAgICBCYXNlMzFfMjQ7DQo+ID4gKyAgVUlOVDMyICAgIEJh c2U2M18zMjsNCj4gPiArICBVSU5UMzIgICAgUmVzZXJ2ZWQ7DQo+ID4gK30gSUEzMl9UU1NfREVT Q1JJUFRPUjsNCj4gPiArDQo+ID4gK3R5cGVkZWYgc3RydWN0IHsNCj4gPiArICBJQTMyX1RTU19E RVNDUklQVE9SICAgICAgICAgICBUc3NTZWc7DQo+ID4gKyAgSUEzMl9UQVNLX1NUQVRFX1NFR01F TlQgICAgICAgVHNzOw0KPiA+ICt9IFRTU19FTlRSSUVTOw0KPiA+ICsNCj4gPiArI3ByYWdtYSBw YWNrICgpDQo+ID4gKw0KPiA+ICsjZGVmaW5lIFRTU19TRUwgICAgICAgICAgIE9GRlNFVF9PRiAo VFNTX0VOVFJJRVMsIFRzc1NlZykNCj4gPiArI2RlZmluZSBUU1NfT0ZGU0VUICAgICAgICBPRkZT RVRfT0YgKFRTU19FTlRSSUVTLCBUc3MpDQo+ID4gKw0KPiA+ICAjZW5kaWYNCj4gPiBkaWZmIC0t Z2l0DQo+ID4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQv RXhjZXB0aW9uSGFuZGxlckFzbS5TDQo+ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0 aW9uSGFuZGxlckxpYi9YNjQvRXhjZXB0aW9uSGFuZGxlckFzbS5TDQo+ID4gaW5kZXggZWRkMzYz Y2RhYS4uYmRhZjEzMmNmNSAxMDA2NDQNCj4gPiAtLS0NCj4gPiBhL1VlZmlDcHVQa2cvTGlicmFy eS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9FeGNlcHRpb25IYW5kbGVyQXNtLlMNCj4gPiAr KysNCj4gPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9F eGNlcHRpb25IYW5kbGVyQXNtLlMNCj4gPiBAQCAtNDI5LDYgKzQyOSwxOCBAQCBBU01fUEZYKEFz bVZlY3Rvck51bUZpeHVwKToNCj4gPiAgICAgIHBvcHEgICAgICAlcmJwDQo+ID4gICAgICByZXQN Cj4gPg0KPiA+ICsjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArLS0tLS0tLS0tLQ0KPiA+ICsjIFZPSUQNCj4g PiArIyBBc21Xcml0ZVRyICgNCj4gPiArIyAgIFVJTlQxNiBTZWxlY3Rvcg0KPiA+ICsjICAgKTsN Cj4gPiArIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gKy0tLS0tLS0tLS0NCj4gPiArQVNNX0dMT0JBTCBBU01f UEZYKEFzbVdyaXRlVHIpDQo+ID4gK0FTTV9QRlgoQXNtV3JpdGVUcik6DQo+ID4gKyAgICBtb3Zs ICAgICVlY3gsICVlYXgNCj4gPiArICAgIGx0cncgICAgJWF4DQo+ID4gKyAgICByZXQNCj4gPiAr DQo+ID4gICNFTkQNCj4gPg0KPiA+DQo+ID4gZGlmZiAtLWdpdA0KPiA+IGEvVWVmaUNwdVBrZy9M aWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0V4Y2VwdGlvbkhhbmRsZXJBc20uYXMN Cj4gPiBtDQo+ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9Y NjQvRXhjZXB0aW9uSGFuZGxlckFzbS5hcw0KPiA+IG0NCj4gPiBpbmRleCA3MjZjNjRhMTQwLi5h ZWM1NmVmNGJmIDEwMDY0NA0KPiA+IC0tLQ0KPiA+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4 Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0V4Y2VwdGlvbkhhbmRsZXJBc20uYXMNCj4gPiBtDQo+ID4g KysrDQo+ID4NCj4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9Y NjQvRXhjZXB0aW9uSGFuZGxlckFzbS5hc20NCj4gPiBAQCAtMzg2LDQgKzM4NiwxNiBAQCBBc21W ZWN0b3JOdW1GaXh1cCAgIFBST0MNCj4gPiAgICAgIHJldA0KPiA+ICBBc21WZWN0b3JOdW1GaXh1 cCAgIEVORFANCj4gPg0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArLS0tLS0tLS0tLQ0KPiA+ICs7 IFZPSUQNCj4gPiArOyBBc21Xcml0ZVRyICgNCj4gPiArOyAgIFVJTlQxNiBTZWxlY3Rvcg0KPiA+ ICs7ICAgKTsNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gKy0tLS0tLS0tLS0NCj4gPiArQXNtV3Jp dGVUciBQUk9DIFBVQkxJQw0KPiA+ICsgICAgbW92ICAgICBlYXgsIGVjeA0KPiA+ICsgICAgbHRy ICAgICBheA0KPiA+ICsgICAgcmV0DQo+ID4gK0FzbVdyaXRlVHIgRU5EUA0KPiA+ICsNCj4gPiAg RU5EDQo+ID4gZGlmZiAtLWdpdA0KPiA+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlv bkhhbmRsZXJMaWIvWDY0L0V4Y2VwdGlvbkhhbmRsZXJBc20ubmENCj4gPiBzbQ0KPiA+IGIvVWVm aUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0V4Y2VwdGlvbkhhbmRs ZXJBc20ubmENCj4gPiBzbQ0KPiA+IGluZGV4IGJhODk5M2Q4NGIuLjFlMmFjNDExYjAgMTAwNjQ0 DQo+ID4gLS0tDQo+ID4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxp Yi9YNjQvRXhjZXB0aW9uSGFuZGxlckFzbS5uYQ0KPiA+IHNtDQo+ID4gKysrDQo+ID4gYi9VZWZp Q3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvRXhjZXB0aW9uSGFuZGxl ckFzbS5uYQ0KPiA+IHNtIEBAIC0zODUsMyArMzg1LDE1IEBAIEFTTV9QRlgoQXNtVmVjdG9yTnVt Rml4dXApOg0KPiA+ICAgICAgbW92ICAgICBbcmN4ICsgKEBWZWN0b3JOdW0gLSBIb29rQWZ0ZXJT dHViSGVhZGVyQmVnaW4pXSwgYWwNCj4gPiAgICAgIHJldA0KPiA+DQo+ID4gKzstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KPiA+ICstLS0tLS0tLS0tDQo+ID4gKzsgVk9JRA0KPiA+ICs7IEFzbVdyaXRlVHIgKA0KPiA+ ICs7ICAgVUlOVDE2IFNlbGVjdG9yDQo+ID4gKzsgICApOw0KPiA+ICs7LS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4g PiArLS0tLS0tLS0tLQ0KPiA+ICtnbG9iYWwgQVNNX1BGWChBc21Xcml0ZVRyKQ0KPiA+ICtBU01f UEZYKEFzbVdyaXRlVHIpOg0KPiA+ICsgICAgbW92ICAgICBlYXgsIGVjeA0KPiA+ICsgICAgbHRy ICAgICBheA0KPiA+ICsgICAgcmV0DQo+ID4gKw0KPiA+IC0tDQo+ID4gMi4xNC4xLndpbmRvd3Mu MQ0KPg0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0K PiBlZGsyLWRldmVsIG1haWxpbmcgbGlzdA0KPiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiBo dHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2VkazItZGV2ZWwNCj4NCj4gX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gZWRrMi1kZXZl bCBtYWlsaW5nIGxpc3QNCj4gZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gaHR0cHM6Ly9saXN0 cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9lZGsyLWRldmVsDQoNCg==