Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ozo06-0003A0-Nt for pgsql-hackers@arkaria.postgresql.org; Mon, 28 Nov 2022 23:57:28 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1ozo05-0003jC-Je for pgsql-hackers@arkaria.postgresql.org; Mon, 28 Nov 2022 23:57:25 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ozo04-0003j2-Ip for pgsql-hackers@lists.postgresql.org; Mon, 28 Nov 2022 23:57:25 +0000 Received: from smtp-fw-80007.amazon.com ([99.78.197.218]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oznzw-0004sV-Un for pgsql-hackers@postgresql.org; Mon, 28 Nov 2022 23:57:23 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1669679837; x=1701215837; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=fvKcRMZQO/6sQH5LhT9NQC0J0mGEV6rKXc7tJaAgTII=; b=fc18EIsuTZrRA1OzMYhRz2Wh97pQLR5IOZ7JnHNAOoEnQy6ZqoHWZViM dIWsGWxO5ZUbvb2AdGsIluJJq3wa6wsKFEoxdqZXmFHJg4MCB76IgynYK MCpXW2JhGbQ6JjEnOQ/SCe4/QespCkpqfhDec9tKYApEkVHNz7w4QOUmz E=; X-Amazon-filename: v16-0001-Add-2-new-columns-to-pg_stat_progress_vacuum.-Th.patch X-IronPort-AV: E=Sophos;i="5.96,201,1665446400"; d="scan'208,223";a="155717044" Received: from pdx4-co-svc-p1-lb2-vlan3.amazon.com (HELO email-inbound-relay-pdx-2a-m6i4x-8a14c045.us-west-2.amazon.com) ([10.25.36.214]) by smtp-border-fw-80007.pdx80.corp.amazon.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Nov 2022 23:57:15 +0000 Received: from EX13MTAUWC001.ant.amazon.com (pdx1-ws-svc-p6-lb9-vlan3.pdx.amazon.com [10.236.137.198]) by email-inbound-relay-pdx-2a-m6i4x-8a14c045.us-west-2.amazon.com (Postfix) with ESMTPS id 070678261F; Mon, 28 Nov 2022 23:57:14 +0000 (UTC) Received: from EX19D003UWC003.ant.amazon.com (10.13.138.173) by EX13MTAUWC001.ant.amazon.com (10.43.162.135) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Mon, 28 Nov 2022 23:57:14 +0000 Received: from EX19D013UWA001.ant.amazon.com (10.13.138.253) by EX19D003UWC003.ant.amazon.com (10.13.138.173) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.1118.20; Mon, 28 Nov 2022 23:57:14 +0000 Received: from EX19D013UWA001.ant.amazon.com ([fe80::e912:ae5e:9427:9964]) by EX19D013UWA001.ant.amazon.com ([fe80::e912:ae5e:9427:9964%5]) with mapi id 15.02.1118.020; Mon, 28 Nov 2022 23:57:14 +0000 From: "Imseih (AWS), Sami" To: Masahiko Sawada CC: Andres Freund , Robert Haas , "Bossart, Nathan" , Peter Geoghegan , Justin Pryzby , "pgsql-hackers@postgresql.org" Subject: Re: Add index scan progress to pg_stat_progress_vacuum Thread-Topic: Add index scan progress to pg_stat_progress_vacuum Thread-Index: AQHZA4UjiGMtZ7l1bk+swoIiaI4jEw== Date: Mon, 28 Nov 2022 23:57:14 +0000 Message-ID: <3FC1BD50-1640-45DC-A354-B6183B0966F9@amazon.com> References: <422CE0B2-60A7-4E87-B5B1-5393DDF1DA21@amazon.com> <90FA5275-1E29-4089-AA00-7F631E0720C3@amazon.com> <20221109030030.5wmvr76xj256cccw@awork3.anarazel.de> <7C22F915-5BB8-4729-8FF1-98B774CD6C85@amazon.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-originating-ip: [10.106.178.20] Content-Type: multipart/mixed; boundary="_002_3FC1BD50164045DCA354B6183B0966F9amazoncom_" MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_002_3FC1BD50164045DCA354B6183B0966F9amazoncom_ Content-Type: text/plain; charset="utf-8" Content-ID: <8993DAAB4B4B124282EDBCF2D0BBF552@amazon.com> Content-Transfer-Encoding: base64 PiAgIEkgdGhpbmsgdGhhdCBpbmRleGVzX3RvdGFsIHNob3VsZCBiZSAwIGFsc28gd2hlbiBJTkRF WF9DTEVBTlVQIGlzIG9mZi4NCg0KUGF0Y2ggdXBkYXRlZCBmb3IgaGFuZGxpbmcgb2YgSU5ERVhf Q0xFQU5VUCA9IG9mZiwgd2l0aCBhbiB1cGRhdGUgdG8NCnRoZSBkb2N1bWVudGF0aW9uIGFzIHdl bGwuDQoNCj4gICAgSSB0aGluayB3ZSBkb24ndCBuZWVkIHRvIHJlc2V0IGl0IGF0IHRoZSBlbmQg b2YgaW5kZXggdmFjdXVtaW5nLiBUaGVyZQ0KPiAgICBpcyBhIHNtYWxsIHdpbmRvdyBiZWZvcmUg c3dpdGNoaW5nIHRvIHRoZSBuZXh0IHBoYXNlLiBJZiB3ZSByZXNldCB0aGlzDQo+ICAgIHZhbHVl IHdoaWxlIHNob3dpbmcgImluZGV4IHZhY3V1bWluZyIgcGhhc2UsIHRoZSB1c2VyIG1pZ2h0IGdl dA0KPiAgICBjb25mdXNlZC4gSW5zdGVhZCwgd2UgY2FuIHJlc2V0IGl0IGF0IHRoZSBiZWdpbm5p bmcgb2YgdGhlIGluZGV4DQo+ICAgIHZhY3V1bWluZy4NCg0KTm8sIEkgdGhpbmsgdGhlIHdheSBp dCdzIGN1cnJlbnRseSBkb25lIGlzIGNvcnJlY3QuIFdlIHdhbnQgdG8gcmVzZXQgdGhlIG51bWJl cg0Kb2YgaW5kZXhlcyBjb21wbGV0ZWQgYmVmb3JlIHdlIGluY3JlYXNlIHRoZSBudW1faW5kZXhf c2NhbnMgKCBpbmRleCB2YWN1dW0gY3ljbGUgKS4NClRoaXMgZW5zdXJlcyB0aGF0IHdoZW4gd2Ug ZW50ZXIgYSBuZXcgaW5kZXggY3ljbGUsIHRoZSBudW1iZXIgb2YgaW5kZXhlcyBjb21wbGV0ZWQN CmFyZSBhbHJlYWR5IHJlc2V0LiBUaGUgMiBmaWVsZHMgdGhhdCBtYXR0ZXIgaGVyZSBpcyBob3cg bWFueSBpbmRleGVzIGFyZSB2YWN1dW1lZCBpbiB0aGUNCmN1cnJlbnRseSBjeWNsZSBhbmQgdGhp cyBpcyBjYWxsZWQgb3V0IGluIHRoZSBkb2N1bWVudGF0aW9uIGFzIHN1Y2guDQoNCj4gICAgV2Ug c2hvdWxkIGFkZCBDSEVDS19GT1JfSU5URVJSVVBUUygpIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhl IGxvb3AgdG8NCj4gICAgbWFrZSB0aGUgd2FpdCBpbnRlcnJ1cHRpYmxlLg0KDQpEb25lLg0KDQo+ ICAgIEkgdGhpbmsgaXQgd291bGQgYmUgYmV0dGVyIHRvIHVwZGF0ZSB0aGUgY291bnRlciBvbmx5 IHdoZW4gdGhlIHZhbHVlDQo+ICAgIGhhcyBiZWVuIGluY3JlYXNlZC4NCg0KRG9uZS4gRGlkIHNv IGJ5IGNoZWNraW5nIHRoZSBwcm9ncmVzcyB2YWx1ZSBmcm9tIHRoZSBiZWVudHJ5IGRpcmVjdGx5 DQppbiB0aGUgZnVuY3Rpb24uIFdlIGNhbiBkbyBhIG1vcmUgZ2VuZXJhbGl6ZWQgDQoNCj4gICAg SSB0aGluayB3ZSBzaG91bGQgc2V0IGEgdGltZW91dCwgc2F5IDEgc2VjLCB0byBXYWl0TGF0Y2gg c28gdGhhdCBpdA0KPiAgICBjYW4gcGVyaW9kaWNhbGx5IGNoZWNrIHRoZSBwcm9ncmVzcy4NCg0K RG9uZS4NCg0KPiAgICBQcm9iYWJseSBpdCdzIGJldHRlciB0byBoYXZlIGEgbmV3IHdhaXQgZXZl bnQgZm9yIHRoaXMgd2FpdCBpbiBvcmRlcg0KPiAgICB0byBkaXN0aW5ndWlzaCB3YWl0IGZvciB3 b3JrZXJzIHRvIGNvbXBsZXRlIGluZGV4IHZhY3V1bSBmcm9tIHRoZSB3YWl0DQo+ICAgIGZvciB3 b3JrZXJzIHRvIGV4aXQuDQoNCkkgd2FzIHRyeWluZyB0byBhdm9pZCBpbnRyb2R1Y2luZyBhIG5l dyB3YWl0IGV2ZW50LCBidXQgdGhpbmtpbmcgYWJvdXQgaXQsIA0KSSBhZ3JlZSB3aXRoIHlvdXIg c3VnZ2VzdGlvbi4gDQoNCkkgY3JlYXRlZCBhIG5ldyBQYXJhbGxlbFZhY3V1bUZpbmlzaCB3YWl0 IGV2ZW50IGFuZCBkb2N1bWVudGF0aW9uDQpmb3IgdGhlIHdhaXQgZXZlbnQuDQoNCg0KPiAgICBJ IHRoaW5rIHRoaXMgZG9lc24ndCB3b3JrLCBzaW5jZSBpdmluZm8uaWR4X2NvbXBsZXRlZCBpcyBp biB0aGUNCj4gICAgYmFja2VuZC1sb2NhbCBtZW1vcnkuIEluc3RlYWQsIEkgdGhpbmsgd2UgY2Fu IGhhdmUgYSBmdW5jdGlvbiBpbg0KPiAgICB2YWN1dW1wYXJhbGxlbC5jIHRoYXQgdXBkYXRlcyB0 aGUgcHJvZ3Jlc3MuIFRoZW4gd2UgY2FuIGhhdmUgaW5kZXggQU0NCj4gICAgY2FsbCB0aGlzIGZ1 bmN0aW9uLg0KDQpZZWFoLCB5b3UncmUgYWJzb2x1dGVseSBjb3JyZWN0LiANCg0KVG8gbWFrZSB0 aGlzIHdvcmsgY29ycmVjdGx5LCBJIGRpZCBzb21ldGhpbmcgc2ltaWxhciB0byBWYWN1dW1BY3Rp dmVOV29ya2Vycw0KYW5kIGludHJvZHVjZWQgYW4gZXh0ZXJuIHZhcmlhYmxlIGNhbGxlZCBQYXJh bGxlbFZhY3V1bVByb2dyZXNzLg0KVGhpcyB2YXJpYWJsZSBwb2ludHMgdG8gcHZzLT5zaGFyZWQt PmlkeF9jb21wbGV0ZWRfcHJvZ3Jlc3MuIA0KDQpUaGUgaW5kZXggQU1zIHRoZW4gY2FsbCBwYXJh bGxlbF92YWN1dW1fdXBkYXRlX3Byb2dyZXNzIHdoaWNoDQpJcyByZXNwb25zaWJsZSBmb3IgdXBk YXRpbmcgdGhlIHByb2dyZXNzIHdpdGggdGhlIGN1cnJlbnQgdmFsdWUNCm9mIFBhcmFsbGVsVmFj dXVtUHJvZ3Jlc3MuIA0KDQpQYXJhbGxlbFZhY3V1bVByb2dyZXNzIGlzIGFsc28gc2V0IHRvIE5V TEwgYXQgdGhlIGVuZCBvZiBldmVyeSBpbmRleCBjeWNsZS4NCg0KPiAgIGl2aW5mby5yZXBvcnRf cGFyYWxsZWxfcHJvZ3Jlc3MgPSAhSXNQYXJhbGxlbFdvcmtlcigpOw0KDQpEb25lDQoNCg0KUmVn YXJkcywNCg0KU2FtaSBJbXNlaWgNCkFtYXpvbiBXZWIgU2VydmljZXMgKEFXUykNCg0KDQoNCg== --_002_3FC1BD50164045DCA354B6183B0966F9amazoncom_ Content-Type: application/octet-stream; name="v16-0001-Add-2-new-columns-to-pg_stat_progress_vacuum.-Th.patch" Content-Description: v16-0001-Add-2-new-columns-to-pg_stat_progress_vacuum.-Th.patch Content-Disposition: attachment; filename="v16-0001-Add-2-new-columns-to-pg_stat_progress_vacuum.-Th.patch"; size=26035; creation-date="Mon, 28 Nov 2022 23:57:14 GMT"; modification-date="Mon, 28 Nov 2022 23:57:14 GMT" Content-ID: Content-Transfer-Encoding: base64 RnJvbSBkYjAzZWZjOWYyMWZhOGNkOTU5N2NmZjE0NmJiY2NlMGJlY2RmODZhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiSW1zZWloIChBV1MpIiA8c2ltc2VpaEA4ODY2NWEyMjc5NWYu YW50LmFtYXpvbi5jb20+CkRhdGU6IE1vbiwgMjggTm92IDIwMjIgMTc6NDc6MDQgLTA2MDAKU3Vi amVjdDogW1BBVENIIDEvMV0gQWRkIDIgbmV3IGNvbHVtbnMgdG8gcGdfc3RhdF9wcm9ncmVzc192 YWN1dW0uIFRoZSBjb2x1bW5zCiBhcmUgaW5kZXhlc190b3RhbCBhcyB0aGUgdG90YWwgaW5kZXhl cyB0byBiZSB2YWN1dW1lZCBvciBjbGVhbmVkIGFuZAogaW5kZXhlc19wcm9jZXNzZWQgYXMgdGhl IG51bWJlciBvZiBpbmRleGVzIHZhY3V1bWVkIG9yIGNsZWFuZWQgdXAgc28gZmFyLgoKQXV0aG9y OiBTYW1pIEltc2VpaCwgYmFzZWQgb24gc3VnZ2VzdGlvbnMgYnkgTmF0aGFuIEJvc3NhcnQsIFBl dGVyIEdlb2doZWdhbiBhbmQgTWFzYWhpa28gU2F3YWRhClJldmlld2VkIGJ5OiBOYXRoYW4gQm9z c2FydCwgTWFzYWhpa28gU2F3YWRhCkRpc2N1c3Npb246IGh0dHBzOi8vd3d3LnBvc3RncmVzcWwu b3JnL21lc3NhZ2UtaWQvZmxhdC81NDc4REZDRC0yMzMzLTQwMUEtQjJGMC0wRDE4NkFCMDkyMjhA YW1hem9uLmNvbQotLS0KIGNvbnRyaWIvYmxvb20vYmx2YWN1dW0uYyAgICAgICAgICAgICAgICB8 ICAgNyArKwogZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcuc2dtbCAgICAgICAgICAgIHwgIDI2ICsr KysrKwogc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW52YWN1dW0uYyAgICAgIHwgICA4ICsrCiBz cmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dmFjdXVtLmMgICAgfCAgIDYgKysKIHNyYy9iYWNr ZW5kL2FjY2Vzcy9oYXNoL2hhc2guYyAgICAgICAgICB8ICAgNiArKwogc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvdmFjdXVtbGF6eS5jICAgIHwgIDMzICsrKysrKy0KIHNyYy9iYWNrZW5kL2FjY2Vz cy9uYnRyZWUvbmJ0cmVlLmMgICAgICB8ICAgMiArCiBzcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0 L3NwZ3ZhY3V1bS5jICAgfCAgIDUgKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvaW5kZXguYyAgICAg ICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgICAg fCAgIDMgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5jICAgICAgICAgICB8ICAgMiAr CiBzcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jICAgfCAxMTAgKysrKysrKysr KysrKysrKysrKysrKystCiBzcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS93YWl0X2V2ZW50LmMg fCAgIDMgKwogc3JjL2luY2x1ZGUvYWNjZXNzL2dlbmFtLmggICAgICAgICAgICAgIHwgICAxICsK IHNyYy9pbmNsdWRlL2NvbW1hbmRzL3Byb2dyZXNzLmggICAgICAgICB8ICAgMiArCiBzcmMvaW5j bHVkZS9jb21tYW5kcy92YWN1dW0uaCAgICAgICAgICAgfCAgIDkgKysKIHNyYy9pbmNsdWRlL3V0 aWxzL3dhaXRfZXZlbnQuaCAgICAgICAgICB8ICAgMyArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9ydWxlcy5vdXQgICAgIHwgICA0ICstCiAxOCBmaWxlcyBjaGFuZ2VkLCAyMjMgaW5zZXJ0 aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250cmliL2Jsb29tL2JsdmFj dXVtLmMgYi9jb250cmliL2Jsb29tL2JsdmFjdXVtLmMKaW5kZXggOTFmYWU1Yi4uMDIzZmM3ZSAx MDA2NDQKLS0tIGEvY29udHJpYi9ibG9vbS9ibHZhY3V1bS5jCisrKyBiL2NvbnRyaWIvYmxvb20v Ymx2YWN1dW0uYwpAQCAtMTUsMTIgKzE1LDE0IEBACiAjaW5jbHVkZSAiYWNjZXNzL2dlbmFtLmgi CiAjaW5jbHVkZSAiYmxvb20uaCIKICNpbmNsdWRlICJjYXRhbG9nL3N0b3JhZ2UuaCIKKyNpbmNs dWRlICJjb21tYW5kcy9wcm9ncmVzcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3ZhY3V1bS5oIgog I2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgInBvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5o IgogI2luY2x1ZGUgInN0b3JhZ2UvYnVmbWdyLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9pbmRleGZz bS5oIgogI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgorI2luY2x1ZGUgInV0aWxzL2JhY2tlbmRf cHJvZ3Jlc3MuaCIKIAogCiAvKgpAQCAtNjIsNiArNjQsOSBAQCBibGJ1bGtkZWxldGUoSW5kZXhW YWN1dW1JbmZvICppbmZvLCBJbmRleEJ1bGtEZWxldGVSZXN1bHQgKnN0YXRzLAogCQkJCSAgICpp dHVwRW5kOwogCiAJCXZhY3V1bV9kZWxheV9wb2ludCgpOworCQlpZiAoaW5mby0+cmVwb3J0X3Bh cmFsbGVsX3Byb2dyZXNzICYmIChibGtubyAlIFJFUE9SVF9QQVJBTExFTF9WQUNVVU1fRVZFUllf UEFHRVMpID09IDApCisJCQlwYXJhbGxlbF92YWN1dW1fdXBkYXRlX3Byb2dyZXNzKCk7CisKIAog CQlidWZmZXIgPSBSZWFkQnVmZmVyRXh0ZW5kZWQoaW5kZXgsIE1BSU5fRk9SS05VTSwgYmxrbm8s CiAJCQkJCQkJCQlSQk1fTk9STUFMLCBpbmZvLT5zdHJhdGVneSk7CkBAIC0xOTIsNiArMTk3LDgg QEAgYmx2YWN1dW1jbGVhbnVwKEluZGV4VmFjdXVtSW5mbyAqaW5mbywgSW5kZXhCdWxrRGVsZXRl UmVzdWx0ICpzdGF0cykKIAkJUGFnZQkJcGFnZTsKIAogCQl2YWN1dW1fZGVsYXlfcG9pbnQoKTsK KwkJaWYgKGluZm8tPnJlcG9ydF9wYXJhbGxlbF9wcm9ncmVzcyAmJiAoYmxrbm8gJSBSRVBPUlRf UEFSQUxMRUxfVkFDVVVNX0VWRVJZX1BBR0VTKSA9PSAwKQorCQkJcGFyYWxsZWxfdmFjdXVtX3Vw ZGF0ZV9wcm9ncmVzcygpOwogCiAJCWJ1ZmZlciA9IFJlYWRCdWZmZXJFeHRlbmRlZChpbmRleCwg TUFJTl9GT1JLTlVNLCBibGtubywKIAkJCQkJCQkJCVJCTV9OT1JNQUwsIGluZm8tPnN0cmF0ZWd5 KTsKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvbW9uaXRvcmluZy5zZ21sCmluZGV4IDU1NzliOGIuLjQ3N2RmZTIgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcu c2dtbApAQCAtMTc1OSw2ICsxNzU5LDEwIEBAIHBvc3RncmVzICAgMjcwOTMgIDAuMCAgMC4wICAz MDA5NiAgMjc1MiA/ICAgICAgICBTcyAgIDExOjM0ICAgMDowMCBwb3N0Z3Jlczogc2VyCiAgICAg ICA8ZW50cnk+PGxpdGVyYWw+UGFyYWxsZWxGaW5pc2g8L2xpdGVyYWw+PC9lbnRyeT4KICAgICAg IDxlbnRyeT5XYWl0aW5nIGZvciBwYXJhbGxlbCB3b3JrZXJzIHRvIGZpbmlzaCBjb21wdXRpbmcu PC9lbnRyeT4KICAgICAgPC9yb3c+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+ UGFyYWxsZWxWYWN1dW1GaW5pc2g8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5XYWl0 aW5nIGZvciBwYXJhbGxlbCB2YWN1dW0gd29ya2VycyB0byBmaW5pc2ggY29tcHV0aW5nLjwvZW50 cnk+CisgICAgIDwvcm93PgogICAgICA8cm93PgogICAgICAgPGVudHJ5PjxsaXRlcmFsPlByb2NB cnJheUdyb3VwVXBkYXRlPC9saXRlcmFsPjwvZW50cnk+CiAgICAgICA8ZW50cnk+V2FpdGluZyBm b3IgdGhlIGdyb3VwIGxlYWRlciB0byBjbGVhciB0aGUgdHJhbnNhY3Rpb24gSUQgYXQKQEAgLTY4 MTUsNiArNjgxOSwyOCBAQCBGUk9NIHBnX3N0YXRfZ2V0X2JhY2tlbmRfaWRzZXQoKSBBUyBiYWNr ZW5kaWQ7CiAgICAgICAgTnVtYmVyIG9mIGRlYWQgdHVwbGVzIGNvbGxlY3RlZCBzaW5jZSB0aGUg bGFzdCBpbmRleCB2YWN1dW0gY3ljbGUuCiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9y b3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5 Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmlu ZGV4ZXNfdG90YWw8L3N0cnVjdGZpZWxkPiA8dHlwZT5iaWdpbnQ8L3R5cGU+CisgICAgICA8L3Bh cmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOdW1iZXIgb2YgaW5kZXhlcyB0aGF0IHdpbCBiZSB2 YWN1dW1lZC4gVGhpcyB2YWx1ZSB3aWxsIGJlCisgICAgICAgPGxpdGVyYWw+MDwvbGl0ZXJhbD4g aWYgdGhlcmUgYXJlIG5vIGluZGV4ZXMgdG8gdmFjdXVtLCA8bGl0ZXJhbD5JTkRFWF9DTEVBTlVQ PC9saXRlcmFsPgorICAgICAgIGlzIHNldCB0byA8bGl0ZXJhbD5PRkY8L2xpdGVyYWw+LCBvciB2 YWN1dW0gZmFpbHNhZmUgaXMgdHJpZ2dlcmVkLgorICAgICAgIFNlZSA8eHJlZiBsaW5rZW5kPSJn dWMtdmFjdXVtLWZhaWxzYWZlLWFnZSIvPgorICAgICAgIGZvciBtb3JlIG9uIHZhY3V1bSBmYWls c2FmZS4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93Pgor ICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVt bl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+aW5kZXhlc19jb21wbGV0ZWQ8L3N0 cnVjdGZpZWxkPiA8dHlwZT5iaWdpbnQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICBOdW1iZXIgb2YgaW5kZXhlcyB2YWN1dW1lZCBpbiB0aGUgY3VycmVudCB2YWN1 dW0gY3ljbGUuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CiAgICAgPC90Ym9k eT4KICAgIDwvdGdyb3VwPgogICA8L3RhYmxlPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2dpbi9naW52YWN1dW0uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2ludmFjdXVtLmMK aW5kZXggYjRmYTVmNi4uZTY4MTE2NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dp bi9naW52YWN1dW0uYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbnZhY3V1bS5jCkBA IC0xNywxMiArMTcsMTQgQEAKICNpbmNsdWRlICJhY2Nlc3MvZ2luX3ByaXZhdGUuaCIKICNpbmNs dWRlICJhY2Nlc3MvZ2lueGxvZy5oIgogI2luY2x1ZGUgImFjY2Vzcy94bG9naW5zZXJ0LmgiCisj aW5jbHVkZSAiY29tbWFuZHMvcHJvZ3Jlc3MuaCIKICNpbmNsdWRlICJjb21tYW5kcy92YWN1dW0u aCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJwb3N0bWFzdGVyL2F1dG92YWN1 dW0uaCIKICNpbmNsdWRlICJzdG9yYWdlL2luZGV4ZnNtLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9s bWdyLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9wcmVkaWNhdGUuaCIKKyNpbmNsdWRlICJ1dGlscy9i YWNrZW5kX3Byb2dyZXNzLmgiCiAjaW5jbHVkZSAidXRpbHMvbWVtdXRpbHMuaCIKIAogc3RydWN0 IEdpblZhY3V1bVN0YXRlCkBAIC02NjUsNiArNjY3LDkgQEAgZ2luYnVsa2RlbGV0ZShJbmRleFZh Y3V1bUluZm8gKmluZm8sIEluZGV4QnVsa0RlbGV0ZVJlc3VsdCAqc3RhdHMsCiAKIAkJdmFjdXVt X2RlbGF5X3BvaW50KCk7CiAKKwkJaWYgKGluZm8tPnJlcG9ydF9wYXJhbGxlbF9wcm9ncmVzcyAm JiAoYmxrbm8gJSBSRVBPUlRfUEFSQUxMRUxfVkFDVVVNX0VWRVJZX1BBR0VTKSA9PSAwKQorCQkJ cGFyYWxsZWxfdmFjdXVtX3VwZGF0ZV9wcm9ncmVzcygpOworCiAJCWZvciAoaSA9IDA7IGkgPCBu Um9vdDsgaSsrKQogCQl7CiAJCQlnaW5WYWN1dW1Qb3N0aW5nVHJlZSgmZ3ZzLCByb290T2ZQb3N0 aW5nVHJlZVtpXSk7CkBAIC03NTEsNiArNzU2LDkgQEAgZ2ludmFjdXVtY2xlYW51cChJbmRleFZh Y3V1bUluZm8gKmluZm8sIEluZGV4QnVsa0RlbGV0ZVJlc3VsdCAqc3RhdHMpCiAKIAkJdmFjdXVt X2RlbGF5X3BvaW50KCk7CiAKKwkJaWYgKGluZm8tPnJlcG9ydF9wYXJhbGxlbF9wcm9ncmVzcyAm JiAoYmxrbm8gJSBSRVBPUlRfUEFSQUxMRUxfVkFDVVVNX0VWRVJZX1BBR0VTKSA9PSAwKQorCQkJ cGFyYWxsZWxfdmFjdXVtX3VwZGF0ZV9wcm9ncmVzcygpOworCiAJCWJ1ZmZlciA9IFJlYWRCdWZm ZXJFeHRlbmRlZChpbmRleCwgTUFJTl9GT1JLTlVNLCBibGtubywKIAkJCQkJCQkJCVJCTV9OT1JN QUwsIGluZm8tPnN0cmF0ZWd5KTsKIAkJTG9ja0J1ZmZlcihidWZmZXIsIEdJTl9TSEFSRSk7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dmFjdXVtLmMgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvZ2lzdC9naXN0dmFjdXVtLmMKaW5kZXggMGFhNmU1OC4uY2IzZGViMSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHZhY3V1bS5jCisrKyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R2YWN1dW0uYwpAQCAtMTcsMTEgKzE3LDEzIEBACiAjaW5j bHVkZSAiYWNjZXNzL2dlbmFtLmgiCiAjaW5jbHVkZSAiYWNjZXNzL2dpc3RfcHJpdmF0ZS5oIgog I2luY2x1ZGUgImFjY2Vzcy90cmFuc2FtLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvcHJvZ3Jlc3Mu aCIKICNpbmNsdWRlICJjb21tYW5kcy92YWN1dW0uaCIKICNpbmNsdWRlICJsaWIvaW50ZWdlcnNl dC5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgInN0b3JhZ2UvaW5kZXhmc20u aCIKICNpbmNsdWRlICJzdG9yYWdlL2xtZ3IuaCIKKyNpbmNsdWRlICJ1dGlscy9iYWNrZW5kX3By b2dyZXNzLmgiCiAjaW5jbHVkZSAidXRpbHMvbWVtdXRpbHMuaCIKIAogLyogV29ya2luZyBzdGF0 ZSBuZWVkZWQgYnkgZ2lzdGJ1bGtkZWxldGUgKi8KQEAgLTIyMyw3ICsyMjUsMTEgQEAgZ2lzdHZh Y3V1bXNjYW4oSW5kZXhWYWN1dW1JbmZvICppbmZvLCBJbmRleEJ1bGtEZWxldGVSZXN1bHQgKnN0 YXRzLAogCQkJYnJlYWs7CiAJCS8qIEl0ZXJhdGUgb3ZlciBwYWdlcywgdGhlbiBsb29wIGJhY2sg dG8gcmVjaGVjayBsZW5ndGggKi8KIAkJZm9yICg7IGJsa25vIDwgbnVtX3BhZ2VzOyBibGtubysr KQorCQl7CiAJCQlnaXN0dmFjdXVtcGFnZSgmdnN0YXRlLCBibGtubywgYmxrbm8pOworCQkJaWYg KGluZm8tPnJlcG9ydF9wYXJhbGxlbF9wcm9ncmVzcyAmJiAoYmxrbm8gJSBSRVBPUlRfUEFSQUxM RUxfVkFDVVVNX0VWRVJZX1BBR0VTKSA9PSAwKQorCQkJCXBhcmFsbGVsX3ZhY3V1bV91cGRhdGVf cHJvZ3Jlc3MoKTsKKwkJfQogCX0KIAogCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nl c3MvaGFzaC9oYXNoLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNoLmMKaW5kZXggNzdm ZDE0Ny4uZDgwN2M5ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaC5j CisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2guYwpAQCAtNTA1LDYgKzUwNSwxMiBA QCBsb29wX3RvcDoKIAogCQlibGtubyA9IGJ1Y2tldF9ibGtubzsKIAorCQkvKgorCQkgKiBGb3Ig aGFzaCBpbmRleGVzLCB3ZSByZXBvcnQgcGFyYWxsZWwgdmFjdXVtIHByb2dyZXNzCisJCSAqIGZv ciBldmVyeSBidWNrZXQuCisJCSAqLworCQlpZiAoaW5mby0+cmVwb3J0X3BhcmFsbGVsX3Byb2dy ZXNzKQorCQkJcGFyYWxsZWxfdmFjdXVtX3VwZGF0ZV9wcm9ncmVzcygpOwogCQkvKgogCQkgKiBX ZSBuZWVkIHRvIGFjcXVpcmUgYSBjbGVhbnVwIGxvY2sgb24gdGhlIHByaW1hcnkgYnVja2V0IHBh Z2UgdG8gb3V0CiAJCSAqIHdhaXQgY29uY3VycmVudCBzY2FucyBiZWZvcmUgZGVsZXRpbmcgdGhl IGRlYWQgdHVwbGVzLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVt bGF6eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmluZGV4IGQ1OTcx MWIuLmYxMWExYjEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxh enkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKQEAgLTQxNSw2 ICs0MTUsNyBAQCBoZWFwX3ZhY3V1bV9yZWwoUmVsYXRpb24gcmVsLCBWYWN1dW1QYXJhbXMgKnBh cmFtcywKIAl2YWNyZWwtPnJlbCA9IHJlbDsKIAl2YWNfb3Blbl9pbmRleGVzKHZhY3JlbC0+cmVs LCBSb3dFeGNsdXNpdmVMb2NrLCAmdmFjcmVsLT5uaW5kZXhlcywKIAkJCQkJICZ2YWNyZWwtPmlu ZHJlbHMpOworCiAJaWYgKGluc3RydW1lbnQgJiYgdmFjcmVsLT5uaW5kZXhlcyA+IDApCiAJewog CQkvKiBDb3B5IGluZGV4IG5hbWVzIHVzZWQgYnkgaW5zdHJ1bWVudGF0aW9uIChub3QgZXJyb3Ig cmVwb3J0aW5nKSAqLwpAQCAtNDU5LDYgKzQ2MCwxMCBAQCBoZWFwX3ZhY3V1bV9yZWwoUmVsYXRp b24gcmVsLCBWYWN1dW1QYXJhbXMgKnBhcmFtcywKIAkJQXNzZXJ0KHBhcmFtcy0+aW5kZXhfY2xl YW51cCA9PSBWQUNPUFRWQUxVRV9BVVRPKTsKIAl9CiAKKwkvKiByZXBvcnQgbnVtYmVyIG9mIGlu ZGV4ZXMgdG8gdmFjdXVtLCBpZiB3ZSBhcmUgdG9sZCB0byBjbGVhbnVwIGluZGV4ZXMgKi8KKwlp ZiAodmFjcmVsLT5kb19pbmRleF9jbGVhbnVwKQorCQlwZ3N0YXRfcHJvZ3Jlc3NfdXBkYXRlX3Bh cmFtKFBST0dSRVNTX1ZBQ1VVTV9JTkRFWF9UT1RBTCwgdmFjcmVsLT5uaW5kZXhlcyk7CisKIAl2 YWNyZWwtPmJzdHJhdGVneSA9IGJzdHJhdGVneTsKIAl2YWNyZWwtPnJlbGZyb3plbnhpZCA9IHJl bC0+cmRfcmVsLT5yZWxmcm96ZW54aWQ7CiAJdmFjcmVsLT5yZWxtaW5teGlkID0gcmVsLT5yZF9y ZWwtPnJlbG1pbm14aWQ7CkBAIC0yMzAxLDYgKzIzMDYsMTIgQEAgbGF6eV92YWN1dW1fYWxsX2lu ZGV4ZXMoTFZSZWxTdGF0ZSAqdmFjcmVsKQogCQkJCWxhenlfdmFjdXVtX29uZV9pbmRleChpbmRy ZWwsIGlzdGF0LCB2YWNyZWwtPm9sZF9saXZlX3R1cGxlcywKIAkJCQkJCQkJCSAgdmFjcmVsKTsK IAorCQkJLyoKKwkJCSAqIERvbmUgdmFjdXVtaW5nIGFuIGluZGV4LiBJbmNyZW1lbnQgdGhlIGlu ZGV4ZXMgY29tcGxldGVkCisJCQkgKi8KKwkJCXBnc3RhdF9wcm9ncmVzc191cGRhdGVfcGFyYW0o UFJPR1JFU1NfVkFDVVVNX0lOREVYX0NPTVBMRVRFRCwKKwkJCQkJCQkJCQkgaWR4ICsgMSk7CisK IAkJCWlmIChsYXp5X2NoZWNrX3dyYXBhcm91bmRfZmFpbHNhZmUodmFjcmVsKSkKIAkJCXsKIAkJ CQkvKiBXcmFwYXJvdW5kIGVtZXJnZW5jeSAtLSBlbmQgY3VycmVudCBpbmRleCBzY2FuICovCkBA IC0yMzM1LDExICsyMzQ2LDE0IEBAIGxhenlfdmFjdXVtX2FsbF9pbmRleGVzKExWUmVsU3RhdGUg KnZhY3JlbCkKIAlBc3NlcnQoYWxsaW5kZXhlcyB8fCB2YWNyZWwtPmZhaWxzYWZlX2FjdGl2ZSk7 CiAKIAkvKgotCSAqIEluY3JlYXNlIGFuZCByZXBvcnQgdGhlIG51bWJlciBvZiBpbmRleCBzY2Fu cy4KKwkgKiBSZXNldCBhbmQgcmVwb3J0IHRoZSBudW1iZXIgb2YgaW5kZXhlcyBzY2FubmVkLgor CSAqIEFsc28sIGluY3JlYXNlIGFuZCByZXBvcnQgdGhlIG51bWJlciBvZiBpbmRleAorCSAqIHNj YW5zLgogCSAqCiAJICogV2UgZGVsaWJlcmF0ZWx5IGluY2x1ZGUgdGhlIGNhc2Ugd2hlcmUgd2Ug c3RhcnRlZCBhIHJvdW5kIG9mIGJ1bGsKIAkgKiBkZWxldGVzIHRoYXQgd2Ugd2VyZW4ndCBhYmxl IHRvIGZpbmlzaCBkdWUgdG8gdGhlIGZhaWxzYWZlIHRyaWdnZXJpbmcuCiAJICovCisJcGdzdGF0 X3Byb2dyZXNzX3VwZGF0ZV9wYXJhbShQUk9HUkVTU19WQUNVVU1fSU5ERVhfQ09NUExFVEVELCAw KTsKIAl2YWNyZWwtPm51bV9pbmRleF9zY2FucysrOwogCXBnc3RhdF9wcm9ncmVzc191cGRhdGVf cGFyYW0oUFJPR1JFU1NfVkFDVVVNX05VTV9JTkRFWF9WQUNVVU1TLAogCQkJCQkJCQkgdmFjcmVs LT5udW1faW5kZXhfc2NhbnMpOwpAQCAtMjU5MywxMCArMjYwNywxNyBAQCBsYXp5X2NoZWNrX3dy YXBhcm91bmRfZmFpbHNhZmUoTFZSZWxTdGF0ZSAqdmFjcmVsKQogCXsKIAkJdmFjcmVsLT5mYWls c2FmZV9hY3RpdmUgPSB0cnVlOwogCi0JCS8qIERpc2FibGUgaW5kZXggdmFjdXVtaW5nLCBpbmRl eCBjbGVhbnVwLCBhbmQgaGVhcCByZWwgdHJ1bmNhdGlvbiAqLworCQkvKgorCQkgKiBEaXNhYmxl IGluZGV4IHZhY3V1bWluZywgaW5kZXggY2xlYW51cCwgYW5kIGhlYXAgcmVsIHRydW5jYXRpb24K KwkJICoKKwkJICogQWxzbywgcmVwb3J0IHRvIHByb2dyZXNzLmggdGhhdCB3ZSBhcmUgbm8gbG9u Z2VyIHRyYWNraW5nCisJCSAqIGluZGV4IHZhY3V1bS9jbGVhbnVwLgorCQkgKi8KIAkJdmFjcmVs LT5kb19pbmRleF92YWN1dW1pbmcgPSBmYWxzZTsKIAkJdmFjcmVsLT5kb19pbmRleF9jbGVhbnVw ID0gZmFsc2U7CiAJCXZhY3JlbC0+ZG9fcmVsX3RydW5jYXRlID0gZmFsc2U7CisJCXBnc3RhdF9w cm9ncmVzc191cGRhdGVfcGFyYW0oUFJPR1JFU1NfVkFDVVVNX0lOREVYX1RPVEFMLCAwKTsKKwkJ cGdzdGF0X3Byb2dyZXNzX3VwZGF0ZV9wYXJhbShQUk9HUkVTU19WQUNVVU1fSU5ERVhfQ09NUExF VEVELCAwKTsKIAogCQllcmVwb3J0KFdBUk5JTkcsCiAJCQkJKGVycm1zZygiYnlwYXNzaW5nIG5v bmVzc2VudGlhbCBtYWludGVuYW5jZSBvZiB0YWJsZSBcIiVzLiVzLiVzXCIgYXMgYSBmYWlsc2Fm ZSBhZnRlciAlZCBpbmRleCBzY2FucyIsCkBAIC0yNjQ0LDYgKzI2NjUsMTIgQEAgbGF6eV9jbGVh bnVwX2FsbF9pbmRleGVzKExWUmVsU3RhdGUgKnZhY3JlbCkKIAkJCXZhY3JlbC0+aW5kc3RhdHNb aWR4XSA9CiAJCQkJbGF6eV9jbGVhbnVwX29uZV9pbmRleChpbmRyZWwsIGlzdGF0LCByZWx0dXBs ZXMsCiAJCQkJCQkJCQkgICBlc3RpbWF0ZWRfY291bnQsIHZhY3JlbCk7CisKKwkJCS8qCisJCQkg KiBEb25lIGNsZWFuaW5nIGFuIGluZGV4LiBJbmNyZW1lbnQgdGhlIGluZGV4ZXMgY29tcGxldGVk CisJCQkgKi8KKwkJCXBnc3RhdF9wcm9ncmVzc191cGRhdGVfcGFyYW0oUFJPR1JFU1NfVkFDVVVN X0lOREVYX0NPTVBMRVRFRCwKKwkJCQkJCQkJCQkgaWR4ICsgMSk7CiAJCX0KIAl9CiAJZWxzZQpA QCAtMjY3OCw2ICsyNzA1LDcgQEAgbGF6eV92YWN1dW1fb25lX2luZGV4KFJlbGF0aW9uIGluZHJl bCwgSW5kZXhCdWxrRGVsZXRlUmVzdWx0ICppc3RhdCwKIAlpdmluZm8uaW5kZXggPSBpbmRyZWw7 CiAJaXZpbmZvLmFuYWx5emVfb25seSA9IGZhbHNlOwogCWl2aW5mby5yZXBvcnRfcHJvZ3Jlc3Mg PSBmYWxzZTsKKwlpdmluZm8ucmVwb3J0X3BhcmFsbGVsX3Byb2dyZXNzID0gZmFsc2U7CiAJaXZp bmZvLmVzdGltYXRlZF9jb3VudCA9IHRydWU7CiAJaXZpbmZvLm1lc3NhZ2VfbGV2ZWwgPSBERUJV RzI7CiAJaXZpbmZvLm51bV9oZWFwX3R1cGxlcyA9IHJlbHR1cGxlczsKQEAgLTI3MjYsNiArMjc1 NCw3IEBAIGxhenlfY2xlYW51cF9vbmVfaW5kZXgoUmVsYXRpb24gaW5kcmVsLCBJbmRleEJ1bGtE ZWxldGVSZXN1bHQgKmlzdGF0LAogCWl2aW5mby5pbmRleCA9IGluZHJlbDsKIAlpdmluZm8uYW5h bHl6ZV9vbmx5ID0gZmFsc2U7CiAJaXZpbmZvLnJlcG9ydF9wcm9ncmVzcyA9IGZhbHNlOworCWl2 aW5mby5yZXBvcnRfcGFyYWxsZWxfcHJvZ3Jlc3MgPSBmYWxzZTsKIAlpdmluZm8uZXN0aW1hdGVk X2NvdW50ID0gZXN0aW1hdGVkX2NvdW50OwogCWl2aW5mby5tZXNzYWdlX2xldmVsID0gREVCVUcy OwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHJlZS5jIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRyZWUuYwppbmRleCBiNTJlY2E4Li4zOTM0OWJiIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHJlZS5jCisrKyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0cmVlLmMKQEAgLTk5OCw2ICs5OTgsOCBAQCBidHZhY3V1 bXNjYW4oSW5kZXhWYWN1dW1JbmZvICppbmZvLCBJbmRleEJ1bGtEZWxldGVSZXN1bHQgKnN0YXRz LAogCQkJaWYgKGluZm8tPnJlcG9ydF9wcm9ncmVzcykKIAkJCQlwZ3N0YXRfcHJvZ3Jlc3NfdXBk YXRlX3BhcmFtKFBST0dSRVNTX1NDQU5fQkxPQ0tTX0RPTkUsCiAJCQkJCQkJCQkJCSBzY2FuYmxr bm8pOworCQkJaWYgKGluZm8tPnJlcG9ydF9wYXJhbGxlbF9wcm9ncmVzcyAmJiAoc2NhbmJsa25v ICUgUkVQT1JUX1BBUkFMTEVMX1ZBQ1VVTV9FVkVSWV9QQUdFUykgPT0gMCkKKwkJCQlwYXJhbGxl bF92YWN1dW1fdXBkYXRlX3Byb2dyZXNzKCk7CiAJCX0KIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndmFjdXVtLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvc3Bn aXN0L3NwZ3ZhY3V1bS5jCmluZGV4IGFkOTBiMjEuLjA1ODk2ODMgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndmFjdXVtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNz L3NwZ2lzdC9zcGd2YWN1dW0uYwpAQCAtMjEsMTEgKzIxLDEzIEBACiAjaW5jbHVkZSAiYWNjZXNz L3RyYW5zYW0uaCIKICNpbmNsdWRlICJhY2Nlc3MveGxvZ2luc2VydC5oIgogI2luY2x1ZGUgImNh dGFsb2cvc3RvcmFnZV94bG9nLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvcHJvZ3Jlc3MuaCIKICNp bmNsdWRlICJjb21tYW5kcy92YWN1dW0uaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNs dWRlICJzdG9yYWdlL2J1Zm1nci5oIgogI2luY2x1ZGUgInN0b3JhZ2UvaW5kZXhmc20uaCIKICNp bmNsdWRlICJzdG9yYWdlL2xtZ3IuaCIKKyNpbmNsdWRlICJ1dGlscy9iYWNrZW5kX3Byb2dyZXNz LmgiCiAjaW5jbHVkZSAidXRpbHMvc25hcG1nci5oIgogCiAKQEAgLTg0Myw2ICs4NDUsOSBAQCBz cGd2YWN1dW1zY2FuKHNwZ0J1bGtEZWxldGVTdGF0ZSAqYmRzKQogCQkJLyogZW1wdHkgdGhlIHBl bmRpbmctbGlzdCBhZnRlciBlYWNoIHBhZ2UgKi8KIAkJCWlmIChiZHMtPnBlbmRpbmdMaXN0ICE9 IE5VTEwpCiAJCQkJc3BncHJvY2Vzc3BlbmRpbmcoYmRzKTsKKwkJCS8qIHJlcG9ydCBwYXJhbGxl bCB2YWN1dW0gcHJvZ3Jlc3MgKi8KKwkJCWlmIChiZHMtPmluZm8tPnJlcG9ydF9wYXJhbGxlbF9w cm9ncmVzcyAmJiAoYmxrbm8gJSBSRVBPUlRfUEFSQUxMRUxfVkFDVVVNX0VWRVJZX1BBR0VTKSA9 PSAwKQorCQkJCXBhcmFsbGVsX3ZhY3V1bV91cGRhdGVfcHJvZ3Jlc3MoKTsKIAkJfQogCX0KIApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jIGIvc3JjL2JhY2tlbmQvY2F0 YWxvZy9pbmRleC5jCmluZGV4IDYxZjFkMzkuLjExYjMyMTIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NhdGFsb2cvaW5kZXguYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2luZGV4LmMKQEAg LTMzNDgsNiArMzM0OCw3IEBAIHZhbGlkYXRlX2luZGV4KE9pZCBoZWFwSWQsIE9pZCBpbmRleElk LCBTbmFwc2hvdCBzbmFwc2hvdCkKIAlpdmluZm8uaW5kZXggPSBpbmRleFJlbGF0aW9uOwogCWl2 aW5mby5hbmFseXplX29ubHkgPSBmYWxzZTsKIAlpdmluZm8ucmVwb3J0X3Byb2dyZXNzID0gdHJ1 ZTsKKwlpdmluZm8ucmVwb3J0X3BhcmFsbGVsX3Byb2dyZXNzID0gZmFsc2U7CiAJaXZpbmZvLmVz dGltYXRlZF9jb3VudCA9IHRydWU7CiAJaXZpbmZvLm1lc3NhZ2VfbGV2ZWwgPSBERUJVRzI7CiAJ aXZpbmZvLm51bV9oZWFwX3R1cGxlcyA9IGhlYXBSZWxhdGlvbi0+cmRfcmVsLT5yZWx0dXBsZXM7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgYi9zcmMv YmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKaW5kZXggMmQ4MTA0Yi4uYzM3YjIwYiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCisrKyBiL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbApAQCAtMTE2NSw3ICsxMTY1LDggQEAg Q1JFQVRFIFZJRVcgcGdfc3RhdF9wcm9ncmVzc192YWN1dW0gQVMKICAgICAgICAgICAgICAgICAg ICAgICBFTkQgQVMgcGhhc2UsCiAgICAgICAgIFMucGFyYW0yIEFTIGhlYXBfYmxrc190b3RhbCwg Uy5wYXJhbTMgQVMgaGVhcF9ibGtzX3NjYW5uZWQsCiAgICAgICAgIFMucGFyYW00IEFTIGhlYXBf Ymxrc192YWN1dW1lZCwgUy5wYXJhbTUgQVMgaW5kZXhfdmFjdXVtX2NvdW50LAotICAgICAgICBT LnBhcmFtNiBBUyBtYXhfZGVhZF90dXBsZXMsIFMucGFyYW03IEFTIG51bV9kZWFkX3R1cGxlcwor ICAgICAgICBTLnBhcmFtNiBBUyBtYXhfZGVhZF90dXBsZXMsIFMucGFyYW03IEFTIG51bV9kZWFk X3R1cGxlcywKKyAgICAgICAgUy5wYXJhbTggQVMgaW5kZXhlc190b3RhbCwgUy5wYXJhbTkgQVMg aW5kZXhlc19jb21wbGV0ZWQKICAgICBGUk9NIHBnX3N0YXRfZ2V0X3Byb2dyZXNzX2luZm8oJ1ZB Q1VVTScpIEFTIFMKICAgICAgICAgTEVGVCBKT0lOIHBnX2RhdGFiYXNlIEQgT04gUy5kYXRpZCA9 IEQub2lkOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW0uYyBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5jCmluZGV4IGE2ZDVlZDEuLjJkYTk1NmYgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5jCisrKyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3ZhY3V1bS5jCkBAIC03NSw2ICs3NSw4IEBAIGludAkJCXZhY3V1bV9tdWx0aXhhY3Rf ZmFpbHNhZmVfYWdlOwogc3RhdGljIE1lbW9yeUNvbnRleHQgdmFjX2NvbnRleHQgPSBOVUxMOwog c3RhdGljIEJ1ZmZlckFjY2Vzc1N0cmF0ZWd5IHZhY19zdHJhdGVneTsKIAorLyogU2hhcmVkIHBh cmFtZXRlciB0byB0cmFjayB2YWN1dW0gcGFyYWxsZWwgcHJvZ3Jlc3MgKi8KK3BnX2F0b21pY191 aW50MzIgKlBhcmFsbGVsVmFjdXVtUHJvZ3Jlc3MgPSBOVUxMOwogCiAvKgogICogVmFyaWFibGVz IGZvciBjb3N0LWJhc2VkIHBhcmFsbGVsIHZhY3V1bS4gIFNlZSBjb21tZW50cyBhdG9wCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYwppbmRleCBmMjZkNzk2Li5iNWI4MGM5IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCisrKyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNs dWRlICJhY2Nlc3MvdGFibGUuaCIKICNpbmNsdWRlICJhY2Nlc3MveGFjdC5oIgogI2luY2x1ZGUg ImNhdGFsb2cvaW5kZXguaCIKKyNpbmNsdWRlICJjb21tYW5kcy9wcm9ncmVzcy5oIgogI2luY2x1 ZGUgImNvbW1hbmRzL3ZhY3V1bS5oIgogI2luY2x1ZGUgIm9wdGltaXplci9wYXRocy5oIgogI2lu Y2x1ZGUgInBnc3RhdC5oIgpAQCAtNTAsNiArNTEsOCBAQAogI2RlZmluZSBQQVJBTExFTF9WQUNV VU1fS0VZX1dBTF9VU0FHRQkJNQogI2RlZmluZSBQQVJBTExFTF9WQUNVVU1fS0VZX0lOREVYX1NU QVRTCQk2CiAKKyNkZWZpbmUgUEFSQUxMRUxfVkFDVVVNX1BST0dSRVNTX1RJTUVPVVQJMTAwMAor CiAvKgogICogU2hhcmVkIGluZm9ybWF0aW9uIGFtb25nIHBhcmFsbGVsIHdvcmtlcnMuICBTbyB0 aGlzIGlzIGFsbG9jYXRlZCBpbiB0aGUgRFNNCiAgKiBzZWdtZW50LgpAQCAtMTAzLDYgKzEwNiwx NyBAQCB0eXBlZGVmIHN0cnVjdCBQVlNoYXJlZAogCiAJLyogQ291bnRlciBmb3IgdmFjdXVtaW5n IGFuZCBjbGVhbnVwICovCiAJcGdfYXRvbWljX3VpbnQzMiBpZHg7CisKKwkvKgorCSAqIENvdW50 ZXIgZm9yIHZhY3V1bWluZyBhbmQgY2xlYW51cCBwcm9ncmVzcyByZXBvcnRpbmcuCisJICogVGhp cyB2YWx1ZSBpcyB1c2VkIHRvIHJlcG9ydCBpbmRleCB2YWN1dW0vY2xlYW51cCBwcm9ncmVzcwor CSAqIGluIHBhcmFsbGVsX3ZhY3V1bV9wcm9ncmVzc19yZXBvcnQuIFdlIGtlZXAgdGhpcworCSAq IGNvdW50ZXIgdG8gYXZvaWQgaGF2aW5nIHRvIGxvb3AgdGhyb3VnaAorCSAqIFBhcmFsbGVsVmFj dXVtU3RhdGUtPmluZHN0YXRzIHRvIGRldGVybWluZSB0aGUgbnVtYmVyCisJICogb2YgaW5kZXhl cyBjb21wbGV0ZWQuCisJICovCisJcGdfYXRvbWljX3VpbnQzMiBpZHhfY29tcGxldGVkX3Byb2dy ZXNzOworCiB9IFBWU2hhcmVkOwogCiAvKiBTdGF0dXMgdXNlZCBkdXJpbmcgcGFyYWxsZWwgaW5k ZXggdmFjdXVtIG9yIGNsZWFudXAgKi8KQEAgLTIxMyw2ICsyMjcsNyBAQCBzdGF0aWMgdm9pZCBw YXJhbGxlbF92YWN1dW1fcHJvY2Vzc19vbmVfaW5kZXgoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZz LCBSZWxhdGlvbgogc3RhdGljIGJvb2wgcGFyYWxsZWxfdmFjdXVtX2luZGV4X2lzX3BhcmFsbGVs X3NhZmUoUmVsYXRpb24gaW5kcmVsLCBpbnQgbnVtX2luZGV4X3NjYW5zLAogCQkJCQkJCQkJCQkJ ICAgYm9vbCB2YWN1dW0pOwogc3RhdGljIHZvaWQgcGFyYWxsZWxfdmFjdXVtX2Vycm9yX2NhbGxi YWNrKHZvaWQgKmFyZyk7CitzdGF0aWMgdm9pZCBwYXJhbGxlbF93YWl0X2Zvcl93b3JrZXJzX3Rv X2ZpbmlzaChQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMpOwogCiAvKgogICogVHJ5IHRvIGVudGVy IHBhcmFsbGVsIG1vZGUgYW5kIGNyZWF0ZSBhIHBhcmFsbGVsIGNvbnRleHQuICBUaGVuIGluaXRp YWxpemUKQEAgLTM2NCw2ICszNzksNyBAQCBwYXJhbGxlbF92YWN1dW1faW5pdChSZWxhdGlvbiBy ZWwsIFJlbGF0aW9uICppbmRyZWxzLCBpbnQgbmluZGV4ZXMsCiAJcGdfYXRvbWljX2luaXRfdTMy KCYoc2hhcmVkLT5jb3N0X2JhbGFuY2UpLCAwKTsKIAlwZ19hdG9taWNfaW5pdF91MzIoJihzaGFy ZWQtPmFjdGl2ZV9ud29ya2VycyksIDApOwogCXBnX2F0b21pY19pbml0X3UzMigmKHNoYXJlZC0+ aWR4KSwgMCk7CisJcGdfYXRvbWljX2luaXRfdTMyKCYoc2hhcmVkLT5pZHhfY29tcGxldGVkX3By b2dyZXNzKSwgMCk7CiAKIAlzaG1fdG9jX2luc2VydChwY3h0LT50b2MsIFBBUkFMTEVMX1ZBQ1VV TV9LRVlfU0hBUkVELCBzaGFyZWQpOwogCXB2cy0+c2hhcmVkID0gc2hhcmVkOwpAQCAtNjE4LDgg KzYzNCw5IEBAIHBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX2FsbF9pbmRleGVzKFBhcmFsbGVsVmFj dXVtU3RhdGUgKnB2cywgaW50IG51bV9pbmRleF9zY2FuCiAJCQkJCQkJCQkJCQkJdmFjdXVtKSk7 CiAJfQogCi0JLyogUmVzZXQgdGhlIHBhcmFsbGVsIGluZGV4IHByb2Nlc3NpbmcgY291bnRlciAq LworCS8qIFJlc2V0IHRoZSBwYXJhbGxlbCBpbmRleCBwcm9jZXNzaW5nIGNvdW50ZXIgKCBpbmRl eCBwcm9ncmVzcyBjb3VudGVyIGFsc28gKSAqLwogCXBnX2F0b21pY193cml0ZV91MzIoJihwdnMt PnNoYXJlZC0+aWR4KSwgMCk7CisJcGdfYXRvbWljX3dyaXRlX3UzMigmKHB2cy0+c2hhcmVkLT5p ZHhfY29tcGxldGVkX3Byb2dyZXNzKSwgMCk7CiAKIAkvKiBTZXR1cCB0aGUgc2hhcmVkIGNvc3Qt YmFzZWQgdmFjdXVtIGRlbGF5IGFuZCBsYXVuY2ggd29ya2VycyAqLwogCWlmIChud29ya2VycyA+ IDApCkBAIC02NDUsNiArNjYyLDE0IEBAIHBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX2FsbF9pbmRl eGVzKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywgaW50IG51bV9pbmRleF9zY2FuCiAKIAkJTGF1 bmNoUGFyYWxsZWxXb3JrZXJzKHB2cy0+cGN4dCk7CiAKKwkJLyoKKwkJICogU2V0IHRoZSBzaGFy ZWQgcGFyYWxsZWwgdmFjdXVtIHByb2dyZXNzLiBUaGlzIHdpbGwgYmUgdXNlZAorCQkgKiB0byBw ZXJpb2RpY2FsbHkgdXBkYXRlIHByb2dyZXNzLmggd2l0aCBjb21wbGV0ZWQgaW5kZXhlcworCQkg KiBpbiBhIHBhcmFsbGVsIHZhY3V1bS4gU2VlIGNvbW1lbnRzIGluIHBhcmFsbGVsX3ZhY3V1bV91 cGRhdGVfcHJvZ3Jlc3MKKwkJICogZm9yIG1vcmUgZGV0YWlscy4KKwkJICovCisJCVBhcmFsbGVs VmFjdXVtUHJvZ3Jlc3MgPSAmKHB2cy0+c2hhcmVkLT5pZHhfY29tcGxldGVkX3Byb2dyZXNzKTsK KwogCQlpZiAocHZzLT5wY3h0LT5ud29ya2Vyc19sYXVuY2hlZCA+IDApCiAJCXsKIAkJCS8qCkBA IC02ODgsNyArNzEzLDIxIEBAIHBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX2FsbF9pbmRleGVzKFBh cmFsbGVsVmFjdXVtU3RhdGUgKnB2cywgaW50IG51bV9pbmRleF9zY2FuCiAJICovCiAJaWYgKG53 b3JrZXJzID4gMCkKIAl7Ci0JCS8qIFdhaXQgZm9yIGFsbCB2YWN1dW0gd29ya2VycyB0byBmaW5p c2ggKi8KKwkJLyoKKwkJICogVG8gd2FpdCBmb3IgcGFyYWxsZWwgd29ya2VycyB0byBmaW5pc2gs CisJCSAqIGZpcnN0IGNhbGwgcGFyYWxsZWxfd2FpdF9mb3Jfd29ya2Vyc190b19maW5pc2gKKwkJ ICogd2hpY2ggaXMgcmVzcG9uc2libGUgZm9yIHJlcG9ydGluZyB0aGUKKwkJICogbnVtYmVyIG9m IGluZGV4ZXMgY29tcGxldGVkLgorCQkgKgorCQkgKiBBZnRlcndhcmRzLCBXYWl0Rm9yUGFyYWxs ZWxXb3JrZXJzVG9GaW5pc2ggaXMgY2FsbGVkCisJCSAqIHRvIGRvIHRoZSByZWFsIHdvcmsgb2Yg d2FpdGluZyBmb3IgcGFyYWxsZWwgd29ya2VycworCQkgKiB0byBmaW5pc2guCisJCSAqCisJCSAq IE5vdGU6IEJvdGggcm91dGluZXMgd2lsbCBhY3F1aXJlIGEgV2FpdExhdGNoIGluIHRoZWlyCisJ CSAqIHJlc3BlY3RpdmUgbG9vcHMuCisJCSAqLworCQlwYXJhbGxlbF93YWl0X2Zvcl93b3JrZXJz X3RvX2ZpbmlzaChwdnMpOworCiAJCVdhaXRGb3JQYXJhbGxlbFdvcmtlcnNUb0ZpbmlzaChwdnMt PnBjeHQpOwogCiAJCWZvciAoaW50IGkgPSAwOyBpIDwgcHZzLT5wY3h0LT5ud29ya2Vyc19sYXVu Y2hlZDsgaSsrKQpAQCAtNzEwLDYgKzc0OSw5IEBAIHBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX2Fs bF9pbmRleGVzKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywgaW50IG51bV9pbmRleF9zY2FuCiAJ CWluZHN0YXRzLT5zdGF0dXMgPSBQQVJBTExFTF9JTkRWQUNfU1RBVFVTX0lOSVRJQUw7CiAJfQog CisJLyogUmVzZXQgcGFyYWxsZWwgcHJvZ3Jlc3MgKi8KKwlQYXJhbGxlbFZhY3V1bVByb2dyZXNz ID0gTlVMTDsKKwogCS8qCiAJICogQ2FycnkgdGhlIHNoYXJlZCBiYWxhbmNlIHZhbHVlIHRvIGhl YXAgc2NhbiBhbmQgZGlzYWJsZSBzaGFyZWQgY29zdGluZwogCSAqLwpAQCAtODM4LDcgKzg4MCw4 IEBAIHBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX29uZV9pbmRleChQYXJhbGxlbFZhY3V1bVN0YXRl ICpwdnMsIFJlbGF0aW9uIGluZHJlbCwKIAlpdmluZm8uZXN0aW1hdGVkX2NvdW50ID0gcHZzLT5z aGFyZWQtPmVzdGltYXRlZF9jb3VudDsKIAlpdmluZm8ubnVtX2hlYXBfdHVwbGVzID0gcHZzLT5z aGFyZWQtPnJlbHR1cGxlczsKIAlpdmluZm8uc3RyYXRlZ3kgPSBwdnMtPmJzdHJhdGVneTsKLQor CS8qIE9ubHkgdGhlIGxlYWRlciBzaG91bGQgcmVwb3J0IHBhcmFsbGVsIHZhY3V1bSBwcm9ncmVz cyAqLworCWl2aW5mby5yZXBvcnRfcGFyYWxsZWxfcHJvZ3Jlc3MgPSAhSXNQYXJhbGxlbFdvcmtl cigpOwogCS8qIFVwZGF0ZSBlcnJvciB0cmFjZWJhY2sgaW5mb3JtYXRpb24gKi8KIAlwdnMtPmlu ZG5hbWUgPSBwc3RyZHVwKFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKGluZHJlbCkpOwogCXB2cy0+ c3RhdHVzID0gaW5kc3RhdHMtPnN0YXR1czsKQEAgLTg1Nyw2ICs5MDAsOSBAQCBwYXJhbGxlbF92 YWN1dW1fcHJvY2Vzc19vbmVfaW5kZXgoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzLCBSZWxhdGlv biBpbmRyZWwsCiAJCQkJIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKGluZHJlbCkpOwogCX0KIAor CWlmIChpdmluZm8ucmVwb3J0X3BhcmFsbGVsX3Byb2dyZXNzKQorCQlwYXJhbGxlbF92YWN1dW1f dXBkYXRlX3Byb2dyZXNzKCk7CisKIAkvKgogCSAqIENvcHkgdGhlIGluZGV4IGJ1bGstZGVsZXRp b24gcmVzdWx0IHJldHVybmVkIGZyb20gYW1idWxrZGVsZXRlIGFuZAogCSAqIGFtdmFjdXVtY2xl YW51cCB0byB0aGUgRFNNIHNlZ21lbnQgaWYgaXQncyB0aGUgZmlyc3QgY3ljbGUgYmVjYXVzZSB0 aGV5CkBAIC04ODgsNiArOTM0LDkgQEAgcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3Nfb25lX2luZGV4 KFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywgUmVsYXRpb24gaW5kcmVsLAogCXB2cy0+c3RhdHVz ID0gUEFSQUxMRUxfSU5EVkFDX1NUQVRVU19DT01QTEVURUQ7CiAJcGZyZWUocHZzLT5pbmRuYW1l KTsKIAlwdnMtPmluZG5hbWUgPSBOVUxMOworCisJLyogVXBkYXRlIHRoZSBudW1iZXIgb2YgaW5k ZXhlcyBjb21wbGV0ZWQuICovCisJcGdfYXRvbWljX2FkZF9mZXRjaF91MzIoJihwdnMtPnNoYXJl ZC0+aWR4X2NvbXBsZXRlZF9wcm9ncmVzcyksIDEpOwogfQogCiAvKgpAQCAtMTA3MiwzICsxMTIx LDU4IEBAIHBhcmFsbGVsX3ZhY3V1bV9lcnJvcl9jYWxsYmFjayh2b2lkICphcmcpCiAJCQlyZXR1 cm47CiAJfQogfQorCisvKgorICogUmVhZCB0aGUgc2hhcmVkIFBhcmFsbGVsVmFjdXVtUHJvZ3Jl c3MgYW5kIHVwZGF0ZSBwcm9ncmVzcy5oCisgKiB3aXRoIGluZGV4ZXMgdmFjdXVtZWQgc28gZmFy LiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBwZXJpb2RpY2FsbHkKKyAqIGJ5IGluZGV4IEFNcyBh cyB3ZWxsIGFzIHBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX29uZV9pbmRleC4KKyAqCisgKiBUbyBh dm9pZCB1bm5lY2Vzc2FyaWx5IHVwZGF0aW5nIHByb2dyZXNzLCB3ZSBjaGVjayB0aGUgcHJvZ3Jl c3MKKyAqIHZhbHVlcyBmcm9tIHRoZSBiYWNrZW5kIGVudHJ5IGFuZCBvbmx5IHVwZGF0ZSBpZiB0 aGUgdmFsdWUKKyAqIG9mIGNvbXBsZXRlZCBpbmRleGVzIGluY3JlYXNlcy4KKyAqCisgKiBOb3Rl OiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBiZSB1c2VkIGJ5IHRoZSBsZWFkZXIgcHJvY2VzcyBvbmx5 LAorICogYW5kIGl0J3MgdXAgdG8gdGhlIGNhbGxlciB0byBlbnN1cmUgdGhpcy4KKyAqLwordm9p ZAorcGFyYWxsZWxfdmFjdXVtX3VwZGF0ZV9wcm9ncmVzcyh2b2lkKQoreworCXZvbGF0aWxlIFBn QmFja2VuZFN0YXR1cyAqYmVlbnRyeSA9IE15QkVFbnRyeTsKKworCUFzc2VydCghSXNQYXJhbGxl bFdvcmtlcik7CisKKwlpZiAoYmVlbnRyeSAmJiBQYXJhbGxlbFZhY3V1bVByb2dyZXNzKQorCXsK KwkJaW50IHBhcmFsbGVsX3ZhY3V1bV9jdXJyZW50X3ZhbHVlID0gYmVlbnRyeS0+c3RfcHJvZ3Jl c3NfcGFyYW1bUFJPR1JFU1NfVkFDVVVNX0lOREVYX0NPTVBMRVRFRF07CisJCWludCBwYXJhbGxl bF92YWN1dW1fbmV3X3ZhbHVlID0gcGdfYXRvbWljX3JlYWRfdTMyKFBhcmFsbGVsVmFjdXVtUHJv Z3Jlc3MpOworCisJCWlmIChwYXJhbGxlbF92YWN1dW1fbmV3X3ZhbHVlID4gcGFyYWxsZWxfdmFj dXVtX2N1cnJlbnRfdmFsdWUpCisJCQlwZ3N0YXRfcHJvZ3Jlc3NfdXBkYXRlX3BhcmFtKFBST0dS RVNTX1ZBQ1VVTV9JTkRFWF9DT01QTEVURUQsIHBhcmFsbGVsX3ZhY3V1bV9uZXdfdmFsdWUpOwor CX0KK30KKworLyoKKyAqIENoZWNrIGlmIHdlIGFyZSBkb25lIHZhY3V1bWluZyBpbmRleGVzIGFu ZCByZXBvcnQKKyAqIHByb2dyZXNzLgorICoKKyAqIFdlIG5hcCB1c2luZyB3aXRoIGEgV2FpdExh dGNoIHRvIGF2b2lkIGEgYnVzeSBsb29wLgorICoKKyAqIE5vdGU6IFRoaXMgZnVuY3Rpb24gc2hv dWxkIGJlIHVzZWQgYnkgdGhlIGxlYWRlciBwcm9jZXNzIG9ubHksCisgKiBhbmQgaXQncyB1cCB0 byB0aGUgY2FsbGVyIHRvIGVuc3VyZSB0aGlzLgorICovCit2b2lkCitwYXJhbGxlbF93YWl0X2Zv cl93b3JrZXJzX3RvX2ZpbmlzaChQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMpCit7CisJQXNzZXJ0 KCFJc1BhcmFsbGVsV29ya2VyKTsKKworCXdoaWxlIChwZ19hdG9taWNfcmVhZF91MzIoUGFyYWxs ZWxWYWN1dW1Qcm9ncmVzcykgPCBwdnMtPm5pbmRleGVzKQorCXsKKwkJQ0hFQ0tfRk9SX0lOVEVS UlVQVFMoKTsKKworCQlwYXJhbGxlbF92YWN1dW1fdXBkYXRlX3Byb2dyZXNzKCk7CisKKwkJKHZv aWQpIFdhaXRMYXRjaChNeUxhdGNoLCBXTF9USU1FT1VUIHwgV0xfTEFUQ0hfU0VUIHwgV0xfRVhJ VF9PTl9QTV9ERUFUSCwgUEFSQUxMRUxfVkFDVVVNX1BST0dSRVNTX1RJTUVPVVQsCisJCQkJCQkg V0FJVF9FVkVOVF9QQVJBTExFTF9WQUNVVU1fRklOSVNIKTsKKwkJUmVzZXRMYXRjaChNeUxhdGNo KTsKKwl9Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS93YWl0X2V2 ZW50LmMgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS93YWl0X2V2ZW50LmMKaW5kZXggYjJh YmQ3NS4uZWViYTJiZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvd2Fp dF9ldmVudC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3dhaXRfZXZlbnQuYwpA QCAtNDYwLDYgKzQ2MCw5IEBAIHBnc3RhdF9nZXRfd2FpdF9pcGMoV2FpdEV2ZW50SVBDIHcpCiAJ CWNhc2UgV0FJVF9FVkVOVF9YQUNUX0dST1VQX1VQREFURToKIAkJCWV2ZW50X25hbWUgPSAiWGFj dEdyb3VwVXBkYXRlIjsKIAkJCWJyZWFrOworCQljYXNlIFdBSVRfRVZFTlRfUEFSQUxMRUxfVkFD VVVNX0ZJTklTSDoKKwkJCWV2ZW50X25hbWUgPSAiUGFyYWxsZWxWYWN1dW1GaW5pc2giOworCQkJ YnJlYWs7CiAJCQkvKiBubyBkZWZhdWx0IGNhc2UsIHNvIHRoYXQgY29tcGlsZXIgd2lsbCB3YXJu ICovCiAJfQogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2VuYW0uaCBiL3NyYy9p bmNsdWRlL2FjY2Vzcy9nZW5hbS5oCmluZGV4IGUxYzRmZGIuLjc0NzQ3MzQgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL2FjY2Vzcy9nZW5hbS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9nZW5h bS5oCkBAIC00Niw2ICs0Niw3IEBAIHR5cGVkZWYgc3RydWN0IEluZGV4VmFjdXVtSW5mbwogCVJl bGF0aW9uCWluZGV4OwkJCS8qIHRoZSBpbmRleCBiZWluZyB2YWN1dW1lZCAqLwogCWJvb2wJCWFu YWx5emVfb25seTsJLyogQU5BTFlaRSAod2l0aG91dCBhbnkgYWN0dWFsIHZhY3V1bSkgKi8KIAli b29sCQlyZXBvcnRfcHJvZ3Jlc3M7CS8qIGVtaXQgcHJvZ3Jlc3MuaCBzdGF0dXMgcmVwb3J0cyAq LworCWJvb2wJCXJlcG9ydF9wYXJhbGxlbF9wcm9ncmVzczsJLyogZW1pdCBwcm9ncmVzcy5oIHN0 YXR1cyByZXBvcnRzIGZvciBwYXJhbGxlbCB2YWN1dW0gKi8KIAlib29sCQllc3RpbWF0ZWRfY291 bnQ7CS8qIG51bV9oZWFwX3R1cGxlcyBpcyBhbiBlc3RpbWF0ZSAqLwogCWludAkJCW1lc3NhZ2Vf bGV2ZWw7CS8qIGVyZXBvcnQgbGV2ZWwgZm9yIHByb2dyZXNzIG1lc3NhZ2VzICovCiAJZG91Ymxl CQludW1faGVhcF90dXBsZXM7CS8qIHR1cGxlcyByZW1haW5pbmcgaW4gaGVhcCAqLwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvcHJvZ3Jlc3MuaCBiL3NyYy9pbmNsdWRlL2NvbW1h bmRzL3Byb2dyZXNzLmgKaW5kZXggYTI4OTM4Yy4uMGU5N2M2ZCAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvY29tbWFuZHMvcHJvZ3Jlc3MuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9wcm9n cmVzcy5oCkBAIC0yNSw2ICsyNSw4IEBACiAjZGVmaW5lIFBST0dSRVNTX1ZBQ1VVTV9OVU1fSU5E RVhfVkFDVVVNUwkJNAogI2RlZmluZSBQUk9HUkVTU19WQUNVVU1fTUFYX0RFQURfVFVQTEVTCQkJ NQogI2RlZmluZSBQUk9HUkVTU19WQUNVVU1fTlVNX0RFQURfVFVQTEVTCQkJNgorI2RlZmluZSBQ Uk9HUkVTU19WQUNVVU1fSU5ERVhfVE9UQUwgICAgICAgICAgICAgNworI2RlZmluZSBQUk9HUkVT U19WQUNVVU1fSU5ERVhfQ09NUExFVEVEICAgICAgICAgOAogCiAvKiBQaGFzZXMgb2YgdmFjdXVt IChhcyBhZHZlcnRpc2VkIHZpYSBQUk9HUkVTU19WQUNVVU1fUEhBU0UpICovCiAjZGVmaW5lIFBS T0dSRVNTX1ZBQ1VVTV9QSEFTRV9TQ0FOX0hFQVAJCQkxCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9jb21tYW5kcy92YWN1dW0uaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oCmluZGV4 IDRlNGJjMjYuLjVhNmI0NTQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1 bS5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oCkBAIC02NCw2ICs2NCwxMiBA QAogLyogdmFsdWUgZm9yIGNoZWNraW5nIHZhY3V1bSBmbGFncyAqLwogI2RlZmluZSBWQUNVVU1f T1BUSU9OX01BWF9WQUxJRF9WQUxVRQkJKCgxIDw8IDMpIC0gMSkKIAorLyoKKyAqIFBhcmFsbGVs IEluZGV4IHZhY3V1bSBwcm9ncmVzcyBpcyByZXBvcnRlZCBldmVyeSAxR0Igb2YgYmxvY2tzCisg KiBzY2FubmVkLgorICovCisjZGVmaW5lIFJFUE9SVF9QQVJBTExFTF9WQUNVVU1fRVZFUllfUEFH RVMgKChCbG9ja051bWJlcikgKCgodWludDY0KSAxMDI0ICogMTAyNCAqIDEwMjQpIC8gQkxDS1Na KSkKKwogLyogQWJzdHJhY3QgdHlwZSBmb3IgcGFyYWxsZWwgdmFjdXVtIHN0YXRlICovCiB0eXBl ZGVmIHN0cnVjdCBQYXJhbGxlbFZhY3V1bVN0YXRlIFBhcmFsbGVsVmFjdXVtU3RhdGU7CiAKQEAg LTI1OSw2ICsyNjUsOCBAQCBleHRlcm4gUEdETExJTVBPUlQgaW50IHZhY3V1bV9tdWx0aXhhY3Rf ZnJlZXplX3RhYmxlX2FnZTsKIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgdmFjdXVtX2ZhaWxzYWZl X2FnZTsKIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgdmFjdXVtX211bHRpeGFjdF9mYWlsc2FmZV9h Z2U7CiAKK2V4dGVybiBQR0RMTElNUE9SVCBwZ19hdG9taWNfdWludDMyICpQYXJhbGxlbFZhY3V1 bVByb2dyZXNzOworCiAvKiBWYXJpYWJsZXMgZm9yIGNvc3QtYmFzZWQgcGFyYWxsZWwgdmFjdXVt ICovCiBleHRlcm4gUEdETExJTVBPUlQgcGdfYXRvbWljX3VpbnQzMiAqVmFjdXVtU2hhcmVkQ29z dEJhbGFuY2U7CiBleHRlcm4gUEdETExJTVBPUlQgcGdfYXRvbWljX3VpbnQzMiAqVmFjdXVtQWN0 aXZlTldvcmtlcnM7CkBAIC0zMzMsNSArMzQxLDYgQEAgZXh0ZXJuIGJvb2wgc3RkX3R5cGFuYWx5 emUoVmFjQXR0clN0YXRzICpzdGF0cyk7CiBleHRlcm4gZG91YmxlIGFubF9yYW5kb21fZnJhY3Qo dm9pZCk7CiBleHRlcm4gZG91YmxlIGFubF9pbml0X3NlbGVjdGlvbl9zdGF0ZShpbnQgbik7CiBl eHRlcm4gZG91YmxlIGFubF9nZXRfbmV4dF9TKGRvdWJsZSB0LCBpbnQgbiwgZG91YmxlICpzdGF0 ZXB0cik7CitleHRlcm4gdm9pZCBwYXJhbGxlbF92YWN1dW1fdXBkYXRlX3Byb2dyZXNzKHZvaWQp OwogCiAjZW5kaWYJCQkJCQkJLyogVkFDVVVNX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L3V0aWxzL3dhaXRfZXZlbnQuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL3dhaXRfZXZlbnQuaAppbmRl eCAwYjIxMDBiLi45NWU5ZmVmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy93YWl0X2V2 ZW50LmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvd2FpdF9ldmVudC5oCkBAIC0xMjgsNyArMTI4 LDggQEAgdHlwZWRlZiBlbnVtCiAJV0FJVF9FVkVOVF9TWU5DX1JFUCwKIAlXQUlUX0VWRU5UX1dB TF9SRUNFSVZFUl9FWElULAogCVdBSVRfRVZFTlRfV0FMX1JFQ0VJVkVSX1dBSVRfU1RBUlQsCi0J V0FJVF9FVkVOVF9YQUNUX0dST1VQX1VQREFURQorCVdBSVRfRVZFTlRfWEFDVF9HUk9VUF9VUERB VEUsCisJV0FJVF9FVkVOVF9QQVJBTExFTF9WQUNVVU1fRklOSVNICiB9IFdhaXRFdmVudElQQzsK IAogLyogLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9y dWxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dAppbmRleCAzN2Mx Yzg2Li44OTYwNDNlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVz Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dApAQCAtMjAyMSw3 ICsyMDIxLDkgQEAgcGdfc3RhdF9wcm9ncmVzc192YWN1dW18IFNFTEVDVCBzLnBpZCwKICAgICBz LnBhcmFtNCBBUyBoZWFwX2Jsa3NfdmFjdXVtZWQsCiAgICAgcy5wYXJhbTUgQVMgaW5kZXhfdmFj dXVtX2NvdW50LAogICAgIHMucGFyYW02IEFTIG1heF9kZWFkX3R1cGxlcywKLSAgICBzLnBhcmFt NyBBUyBudW1fZGVhZF90dXBsZXMKKyAgICBzLnBhcmFtNyBBUyBudW1fZGVhZF90dXBsZXMsCisg ICAgcy5wYXJhbTggQVMgaW5kZXhlc190b3RhbCwKKyAgICBzLnBhcmFtOSBBUyBpbmRleGVzX2Nv bXBsZXRlZAogICAgRlJPTSAocGdfc3RhdF9nZXRfcHJvZ3Jlc3NfaW5mbygnVkFDVVVNJzo6dGV4 dCkgcyhwaWQsIGRhdGlkLCByZWxpZCwgcGFyYW0xLCBwYXJhbTIsIHBhcmFtMywgcGFyYW00LCBw YXJhbTUsIHBhcmFtNiwgcGFyYW03LCBwYXJhbTgsIHBhcmFtOSwgcGFyYW0xMCwgcGFyYW0xMSwg cGFyYW0xMiwgcGFyYW0xMywgcGFyYW0xNCwgcGFyYW0xNSwgcGFyYW0xNiwgcGFyYW0xNywgcGFy YW0xOCwgcGFyYW0xOSwgcGFyYW0yMCkKICAgICAgTEVGVCBKT0lOIHBnX2RhdGFiYXNlIGQgT04g KChzLmRhdGlkID0gZC5vaWQpKSk7CiBwZ19zdGF0X3JlY292ZXJ5X3ByZWZldGNofCBTRUxFQ1Qg cy5zdGF0c19yZXNldCwKLS0gCjIuMzIuMSAoQXBwbGUgR2l0LTEzMykKCg== --_002_3FC1BD50164045DCA354B6183B0966F9amazoncom_--