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 1mCQdr-0007L3-9T for pgsql-hackers@arkaria.postgresql.org; Sat, 07 Aug 2021 18:01:51 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1mCQdq-0000KX-A2 for pgsql-hackers@arkaria.postgresql.org; Sat, 07 Aug 2021 18:01:50 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mCQdp-0000KP-Tj for pgsql-hackers@lists.postgresql.org; Sat, 07 Aug 2021 18:01:50 +0000 Received: from smtp-fw-9102.amazon.com ([207.171.184.29]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mCQdn-0001Na-Oh for pgsql-hackers@lists.postgresql.org; Sat, 07 Aug 2021 18:01:49 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1628359308; x=1659895308; h=from:to:cc:date:message-id:references:in-reply-to: mime-version:subject; bh=OcmXpSlkSVMf4CQCl5r9uPXV2c36ZWG2JyKV9SthnsQ=; b=luyqli7ALH7F7+STIbPOBLTOEXcXmm+hmPDQIMzV93hRkCsJb5vdDcMs N6ufVDtJnfN1mDqBXT7z2w2fPaRJcrCkDQEqWZ6jGPNcKShe+sgXDPoCg 58pVKvdjmiJcQLHY3L0HsMPyRY6RMeZVQ28F4/JWWCC1NfKsRV9ITVtTk k=; X-Amazon-filename: v2-0001-Disallow-external-access-to-MaxBackends.patch X-IronPort-AV: E=Sophos;i="5.84,303,1620691200"; d="scan'208,223";a="151020174" Subject: Re: make MaxBackends available in _PG_init Thread-Topic: make MaxBackends available in _PG_init Received: from pdx4-co-svc-p1-lb2-vlan3.amazon.com (HELO email-inbound-relay-1e-c7f73527.us-east-1.amazon.com) ([10.25.36.214]) by smtp-border-fw-9102.sea19.amazon.com with ESMTP; 07 Aug 2021 18:01:44 +0000 Received: from EX13MTAUWB001.ant.amazon.com (iad55-ws-svc-p15-lb9-vlan2.iad.amazon.com [10.40.159.162]) by email-inbound-relay-1e-c7f73527.us-east-1.amazon.com (Postfix) with ESMTPS id 68174C006C; Sat, 7 Aug 2021 18:01:43 +0000 (UTC) Received: from EX13D03UWC003.ant.amazon.com (10.43.162.79) by EX13MTAUWB001.ant.amazon.com (10.43.161.249) with Microsoft SMTP Server (TLS) id 15.0.1497.23; Sat, 7 Aug 2021 18:01:42 +0000 Received: from EX13D03UWC004.ant.amazon.com (10.43.162.49) by EX13D03UWC003.ant.amazon.com (10.43.162.79) with Microsoft SMTP Server (TLS) id 15.0.1497.23; Sat, 7 Aug 2021 18:01:42 +0000 Received: from EX13D03UWC004.ant.amazon.com ([10.43.162.49]) by EX13D03UWC004.ant.amazon.com ([10.43.162.49]) with mapi id 15.00.1497.023; Sat, 7 Aug 2021 18:01:42 +0000 From: "Bossart, Nathan" To: Robert Haas , Andres Freund CC: Bharath Rupireddy , "pgsql-hackers@lists.postgresql.org" Thread-Index: AQHXh8La+alTlf3s/Uqkreqdm+IBOatgELKAgACTeoCAAAi0AIABOy+AgAX/n4A= Date: Sat, 7 Aug 2021 18:01:41 +0000 Message-ID: <9B2E85FE-14BC-407A-93B7-4EE2F84BEF05@amazon.com> References: <4f20d57b2aeb447b8eb1495319940c5f@G08CNEXMBPEKD06.g08.fujitsu.local> <8499D41B-628A-4CE0-9139-00D718F9D06B@amazon.com> <20210802203724.ujmzgwukenm2en3j@alap3.anarazel.de> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ms-exchange-messagesentrepresentingtype: 1 x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.43.161.229] Content-Type: multipart/mixed; boundary="_002_9B2E85FE14BC407A93B74EE2F84BEF05amazoncom_" MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_002_9B2E85FE14BC407A93B74EE2F84BEF05amazoncom_ Content-Type: text/plain; charset="utf-8" Content-ID: <69AC82E12935264D9E96A354EC2B8027@amazon.com> Content-Transfer-Encoding: base64 T24gOC8zLzIxLCA0OjE0IFBNLCAiQm9zc2FydCwgTmF0aGFuIiA8Ym9zc2FydG5AYW1hem9uLmNv bT4gd3JvdGU6DQo+IE9uIDgvMi8yMSwgNDowMiBQTSwgIkJvc3NhcnQsIE5hdGhhbiIgPGJvc3Nh cnRuQGFtYXpvbi5jb20+IHdyb3RlOg0KPj4gT24gOC8yLzIxLCAzOjQyIFBNLCAiQW5kcmVzIEZy ZXVuZCIgPGFuZHJlc0BhbmFyYXplbC5kZT4gd3JvdGU6DQo+Pj4gSSd2ZSB3b25kZXJlZCwgaW5k ZXBlbmRlbnQgb2YgdGhpcyB0aHJlYWQsIGFib3V0IG5vdCBtYWtpbmcgTWF4QmFja2VuZHMNCj4+ PiBleHRlcm5hbGx5IHZpc2libGUsIGFuZCByZXF1aXJpbmcgYSBmdW5jdGlvbiBjYWxsIHRvIGFj Y2VzcyBpdC4gSXQgc2hvdWxkIGJlDQo+Pj4gZWFzaWVyIHRvIGZpbmQgY2FzZXMgb2YgbWlzdXNl IGlmIHdlIGVycm9yZWQgb3V0IHdoZW4gYWNjZXNzZWQgYXQgdGhlIHdyb25nDQo+Pj4gdGltZS4g QW5kIHdlIGNvdWxkIHVzZSB0aGF0IG9wcG9ydHVuaXR5IHRvIGFkZCBmbGFncyB0aGF0IGRldGVy bWluZSB3aGljaA0KPj4+IHR5cGVzIG9mIGJhY2tlbmRzIGFyZSBpbmNsdWRlZCAoZS5nLiBub3Qg aW5jbHVkaW5nIGF1dG92YWMsIG9yIGFkZGl0aW9uYWxseQ0KPj4+IGluY2x1ZGluZyBhdXggd29y a2VycyBvciBwcmVwYXJlZCB4YWN0cykuDQo+Pg0KPj4gSSdtIG5vdCBvcHBvc2VkIHRvIHRoaXMu ICBJIGNhbiB3b3JrIG9uIHB1dHRpbmcgYSBwYXRjaCB0b2dldGhlciBpZiBubw0KPj4gb3Bwb3Np dGlvbiBtYXRlcmlhbGl6ZXMuDQo+DQo+IEhlcmUgaXMgYSBmaXJzdCBhdHRlbXB0Lg0KDQpIZXJl IGlzIGEgcmViYXNlZCB2ZXJzaW9uIG9mIHRoZSBwYXRjaC4NCg0KTmF0aGFuDQoNCg== --_002_9B2E85FE14BC407A93B74EE2F84BEF05amazoncom_ Content-Type: application/octet-stream; name="v2-0001-Disallow-external-access-to-MaxBackends.patch" Content-Description: v2-0001-Disallow-external-access-to-MaxBackends.patch Content-Disposition: attachment; filename="v2-0001-Disallow-external-access-to-MaxBackends.patch"; size=31032; creation-date="Sat, 07 Aug 2021 18:01:41 GMT"; modification-date="Sat, 07 Aug 2021 18:01:41 GMT" Content-ID: <28C2D3B23D22974783DE07DD98EE9428@amazon.com> Content-Transfer-Encoding: base64 RnJvbSBlZTZiMzBjYzkxMGJjYzUzNjcwYmVkNjUyMzc1MThhNTllODhhZTRiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOYXRoYW4gQm9zc2FydCA8Ym9zc2FydG5AYW1hem9uLmNvbT4K RGF0ZTogU2F0LCA3IEF1ZyAyMDIxIDE3OjU4OjA3ICswMDAwClN1YmplY3Q6IFtQQVRDSCB2MiAx LzFdIERpc2FsbG93IGV4dGVybmFsIGFjY2VzcyB0byBNYXhCYWNrZW5kcy4KClByZXNlbnRseSwg TWF4QmFja2VuZHMgaXMgZXh0ZXJuYWxseSB2aXNpYmxlLCBidXQgaXQgbWF5IHN0aWxsIGJlCnVu aW5pdGlhbGl6ZWQgaW4gcGxhY2VzIHdoZXJlIGl0IHdvdWxkIGJlIGNvbnZlbmllbnQgdG8gdXNl IChlLmcuLApfUEdfaW5pdCgpKS4gIFRoaXMgY2hhbmdlIG1ha2VzIE1heEJhY2tlbmRzIHN0YXRp YyB0byBwb3N0aW5pdC5jIHRvCmRpc2FsbG93IHN1Y2ggZGlyZWN0IGFjY2Vzcy4gIEluc3RlYWQs IE1heEJhY2tlbmRzIHNob3VsZCBub3cgYmUKYWNjZXNzZWQgdmlhIEdldE1heEJhY2tlbmRzKCku ICBHZXRNYXhCYWNrZW5kcygpIGFsc28gYWNjZXB0cyBhCmNvdXBsZSBvZiBmbGFncyB0byBlYXNp bHkgaW5jbHVkZSBjb21tb25seSBhZGRlZCB2YWx1ZXMgc3VjaCBhcwptYXhfcHJlcGFyZWRfdHJh bnNhY3Rpb25zLgoKU2VwYXJhdGVseSwgYWRqdXN0IHRoZSBjb21tZW50cyBhYm91dCBuZWVkaW5n IHRvIHJlZ2lzdGVyCmJhY2tncm91bmQgd29ya2VycyBiZWZvcmUgaW5pdGlhbGl6aW5nIE1heEJh Y2tlbmRzLiAgU2luY2UKNmJjOGVmMGIsIEluaXRpYWxpemVNYXhCYWNrZW5kcygpIGhhcyB1c2Vk IG1heF93b3JrZXJfcHJvY2Vzc2VzCmluc3RlYWQgb2YgdGFsbHlpbmcgdXAgdGhlIG51bWJlciBv ZiByZWdpc3RlcmVkIGJhY2tncm91bmQgd29ya2VycywKc28gYmFja2dyb3VuZCB3b3JrZXIgcmVn aXN0cmF0aW9uIGlzIG5vIGxvbmdlciBhIHByZXJlcXVpc2l0ZS4gIFRoZQpvcmRlcmluZyBvZiB0 aGlzIGxvZ2ljIGlzIHN0aWxsIHVzZWZ1bCBmb3IgYWxsb3dpbmcgbGlicmFyaWVzIHRvCmFkanVz dCBHVUNzLCBzbyB0aGUgY29tbWVudHMgaGF2ZSBiZWVuIHVwZGF0ZWQgdG8gbWVudGlvbiB0aGF0 IHVzZS0KY2FzZS4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHV0aWxzLmMgICAg ICAgIHwgIDQgKy0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhhY3QuYyAgICAg IHwgIDIgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3R3b3BoYXNlLmMgICAgICAgfCAg MiArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvYXN5bmMuYyAgICAgICAgICAgICAgICB8IDEwICsr Ky0tLQogc3JjL2JhY2tlbmQvbGlicHEvcHFjb21tLmMgICAgICAgICAgICAgICAgICB8ICAyICst CiBzcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1eHByb2Nlc3MuYyAgICAgICAgIHwgIDIgKy0KIHNy Yy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jICAgICAgICAgfCAxNCArKysrLS0tLS0K IHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL2RzbS5jICAgICAgICAgICAgICAgfCAgMiArLQogc3Jj L2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5LmMgICAgICAgICB8ICAyICstCiBzcmMvYmFj a2VuZC9zdG9yYWdlL2lwYy9wcm9jc2lnbmFsLmMgICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5k L3N0b3JhZ2UvaXBjL3NpbnZhbGFkdC5jICAgICAgICAgfCAgNCArLS0KIHNyYy9iYWNrZW5kL3N0 b3JhZ2UvbG1nci9kZWFkbG9jay5jICAgICAgICAgfCAzMSArKysrKysrKystLS0tLS0tLS0KIHNy Yy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9sb2NrLmMgICAgICAgICAgICAgfCAyMCArKysrKystLS0t LS0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9wcmVkaWNhdGUuYyAgICAgICAgfCAxMCArKyst LS0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9wcm9jLmMgICAgICAgICAgICAgfCAxNyArKysr Ky0tLS0tCiBzcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9iYWNrZW5kX3N0YXR1cy5jIHwgMTAg KysrLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvbG9ja2Z1bmNzLmMgICAgICAgICAgIHwgIDQg Ky0tCiBzcmMvYmFja2VuZC91dGlscy9pbml0L3Bvc3Rpbml0LmMgICAgICAgICAgIHwgNDkgKysr KysrKysrKysrKysrKysrKysrKystLS0tLS0KIHNyYy9pbmNsdWRlL21pc2NhZG1pbi5oICAgICAg ICAgICAgICAgICAgICAgfCAxMiArKysrKystCiAxOSBmaWxlcyBjaGFuZ2VkLCAxMTggaW5zZXJ0 aW9ucygrKSwgODEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNz L25idHJlZS9uYnR1dGlscy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnR1dGlscy5j CmluZGV4IGQ1MjQzMTA3MjMuLjU3OGQ0NTMxYTIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9uYnRyZWUvbmJ0dXRpbHMuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25i dHV0aWxzLmMKQEAgLTIwNjUsNyArMjA2NSw3IEBAIEJUcmVlU2htZW1TaXplKHZvaWQpCiAJU2l6 ZQkJc2l6ZTsKIAogCXNpemUgPSBvZmZzZXRvZihCVFZhY0luZm8sIHZhY3V1bXMpOwotCXNpemUg PSBhZGRfc2l6ZShzaXplLCBtdWxfc2l6ZShNYXhCYWNrZW5kcywgc2l6ZW9mKEJUT25lVmFjSW5m bykpKTsKKwlzaXplID0gYWRkX3NpemUoc2l6ZSwgbXVsX3NpemUoR2V0TWF4QmFja2VuZHMoMCks IHNpemVvZihCVE9uZVZhY0luZm8pKSk7CiAJcmV0dXJuIHNpemU7CiB9CiAKQEAgLTIwOTQsNyAr MjA5NCw3IEBAIEJUcmVlU2htZW1Jbml0KHZvaWQpCiAJCWJ0dmFjaW5mby0+Y3ljbGVfY3RyID0g KEJUQ3ljbGVJZCkgdGltZShOVUxMKTsKIAogCQlidHZhY2luZm8tPm51bV92YWN1dW1zID0gMDsK LQkJYnR2YWNpbmZvLT5tYXhfdmFjdXVtcyA9IE1heEJhY2tlbmRzOworCQlidHZhY2luZm8tPm1h eF92YWN1dW1zID0gR2V0TWF4QmFja2VuZHMoMCk7CiAJfQogCWVsc2UKIAkJQXNzZXJ0KGZvdW5k KTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL211bHRpeGFjdC5jIGIv c3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vbXVsdGl4YWN0LmMKaW5kZXggZTZjNzBlZDBiYy4u N2U5NzI4YmY4OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vbXVsdGl4 YWN0LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vbXVsdGl4YWN0LmMKQEAgLTI4 NSw3ICsyODUsNyBAQCB0eXBlZGVmIHN0cnVjdCBNdWx0aVhhY3RTdGF0ZURhdGEKICAqIExhc3Qg ZWxlbWVudCBvZiBPbGRlc3RNZW1iZXJNWGFjdElkIGFuZCBPbGRlc3RWaXNpYmxlTVhhY3RJZCBh cnJheXMuCiAgKiBWYWxpZCBlbGVtZW50cyBhcmUgKDEuLk1heE9sZGVzdFNsb3QpOyBlbGVtZW50 IDAgaXMgbmV2ZXIgdXNlZC4KICAqLwotI2RlZmluZSBNYXhPbGRlc3RTbG90CShNYXhCYWNrZW5k cyArIG1heF9wcmVwYXJlZF94YWN0cykKKyNkZWZpbmUgTWF4T2xkZXN0U2xvdAkoR2V0TWF4QmFj a2VuZHMoR01CX01BWF9QUkVQQVJFRF9YQUNUUykpCiAKIC8qIFBvaW50ZXJzIHRvIHRoZSBzdGF0 ZSBkYXRhIGluIHNoYXJlZCBtZW1vcnkgKi8KIHN0YXRpYyBNdWx0aVhhY3RTdGF0ZURhdGEgKk11 bHRpWGFjdFN0YXRlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vdHdv cGhhc2UuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3R3b3BoYXNlLmMKaW5kZXggNmQz ZWZiNDlhNC4uMWJhODQ5ODNmMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5z YW0vdHdvcGhhc2UuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS90d29waGFzZS5j CkBAIC0yOTMsNyArMjkzLDcgQEAgVHdvUGhhc2VTaG1lbUluaXQodm9pZCkKIAkJCSAqIHByZXBh cmVkIHRyYW5zYWN0aW9uLiBDdXJyZW50bHkgbXVsdGl4YWN0LmMgdXNlcyB0aGF0CiAJCQkgKiB0 ZWNobmlxdWUuCiAJCQkgKi8KLQkJCWd4YWN0c1tpXS5kdW1teUJhY2tlbmRJZCA9IE1heEJhY2tl bmRzICsgMSArIGk7CisJCQlneGFjdHNbaV0uZHVtbXlCYWNrZW5kSWQgPSBHZXRNYXhCYWNrZW5k cygwKSArIDEgKyBpOwogCQl9CiAJfQogCWVsc2UKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL2FzeW5jLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9hc3luYy5jCmluZGV4IDRiMTZm YjU2ODIuLjI5YzUwNTk1YzIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FzeW5j LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvYXN5bmMuYwpAQCAtNTExLDcgKzUxMSw3IEBA IEFzeW5jU2htZW1TaXplKHZvaWQpCiAJU2l6ZQkJc2l6ZTsKIAogCS8qIFRoaXMgaGFkIGJldHRl ciBtYXRjaCBBc3luY1NobWVtSW5pdCAqLwotCXNpemUgPSBtdWxfc2l6ZShNYXhCYWNrZW5kcyAr IDEsIHNpemVvZihRdWV1ZUJhY2tlbmRTdGF0dXMpKTsKKwlzaXplID0gbXVsX3NpemUoR2V0TWF4 QmFja2VuZHMoMCkgKyAxLCBzaXplb2YoUXVldWVCYWNrZW5kU3RhdHVzKSk7CiAJc2l6ZSA9IGFk ZF9zaXplKHNpemUsIG9mZnNldG9mKEFzeW5jUXVldWVDb250cm9sLCBiYWNrZW5kKSk7CiAKIAlz aXplID0gYWRkX3NpemUoc2l6ZSwgU2ltcGxlTHJ1U2htZW1TaXplKE5VTV9OT1RJRllfQlVGRkVS UywgMCkpOwpAQCAtNTM0LDcgKzUzNCw3IEBAIEFzeW5jU2htZW1Jbml0KHZvaWQpCiAJICogVGhl IHVzZWQgZW50cmllcyBpbiB0aGUgYmFja2VuZFtdIGFycmF5IHJ1biBmcm9tIDEgdG8gTWF4QmFj a2VuZHM7IHRoZQogCSAqIHplcm8ndGggZW50cnkgaXMgdW51c2VkIGJ1dCBtdXN0IGJlIGFsbG9j YXRlZC4KIAkgKi8KLQlzaXplID0gbXVsX3NpemUoTWF4QmFja2VuZHMgKyAxLCBzaXplb2YoUXVl dWVCYWNrZW5kU3RhdHVzKSk7CisJc2l6ZSA9IG11bF9zaXplKEdldE1heEJhY2tlbmRzKDApICsg MSwgc2l6ZW9mKFF1ZXVlQmFja2VuZFN0YXR1cykpOwogCXNpemUgPSBhZGRfc2l6ZShzaXplLCBv ZmZzZXRvZihBc3luY1F1ZXVlQ29udHJvbCwgYmFja2VuZCkpOwogCiAJYXN5bmNRdWV1ZUNvbnRy b2wgPSAoQXN5bmNRdWV1ZUNvbnRyb2wgKikKQEAgLTU0OSw3ICs1NDksNyBAQCBBc3luY1NobWVt SW5pdCh2b2lkKQogCQlRVUVVRV9GSVJTVF9MSVNURU5FUiA9IEludmFsaWRCYWNrZW5kSWQ7CiAJ CWFzeW5jUXVldWVDb250cm9sLT5sYXN0UXVldWVGaWxsV2FybiA9IDA7CiAJCS8qIHplcm8ndGgg ZW50cnkgd29uJ3QgYmUgdXNlZCwgYnV0IGxldCdzIGluaXRpYWxpemUgaXQgYW55d2F5ICovCi0J CWZvciAoaW50IGkgPSAwOyBpIDw9IE1heEJhY2tlbmRzOyBpKyspCisJCWZvciAoaW50IGkgPSAw OyBpIDw9IEdldE1heEJhY2tlbmRzKDApOyBpKyspCiAJCXsKIAkJCVFVRVVFX0JBQ0tFTkRfUElE KGkpID0gSW52YWxpZFBpZDsKIAkJCVFVRVVFX0JBQ0tFTkRfREJPSUQoaSkgPSBJbnZhbGlkT2lk OwpAQCAtMTY4NSw4ICsxNjg1LDggQEAgU2lnbmFsQmFja2VuZHModm9pZCkKIAkgKiBwcmVhbGxv Y2F0ZSB0aGUgYXJyYXlzPwlCdXQgaW4gcHJhY3RpY2UgdGhpcyBpcyBvbmx5IHJ1biBpbiB0cml2 aWFsCiAJICogdHJhbnNhY3Rpb25zLCBzbyB0aGVyZSBzaG91bGQgc3VyZWx5IGJlIHNwYWNlIGF2 YWlsYWJsZS4KIAkgKi8KLQlwaWRzID0gKGludDMyICopIHBhbGxvYyhNYXhCYWNrZW5kcyAqIHNp emVvZihpbnQzMikpOwotCWlkcyA9IChCYWNrZW5kSWQgKikgcGFsbG9jKE1heEJhY2tlbmRzICog c2l6ZW9mKEJhY2tlbmRJZCkpOworCXBpZHMgPSAoaW50MzIgKikgcGFsbG9jKEdldE1heEJhY2tl bmRzKDApICogc2l6ZW9mKGludDMyKSk7CisJaWRzID0gKEJhY2tlbmRJZCAqKSBwYWxsb2MoR2V0 TWF4QmFja2VuZHMoMCkgKiBzaXplb2YoQmFja2VuZElkKSk7CiAJY291bnQgPSAwOwogCiAJTFdM b2NrQWNxdWlyZShOb3RpZnlRdWV1ZUxvY2ssIExXX0VYQ0xVU0lWRSk7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9saWJwcS9wcWNvbW0uYyBiL3NyYy9iYWNrZW5kL2xpYnBxL3BxY29tbS5jCmlu ZGV4IDg5YTVmOTAxYWEuLjRkNzRmOWEzZjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2xpYnBx L3BxY29tbS5jCisrKyBiL3NyYy9iYWNrZW5kL2xpYnBxL3BxY29tbS5jCkBAIC01NTYsNyArNTU2 LDcgQEAgU3RyZWFtU2VydmVyUG9ydChpbnQgZmFtaWx5LCBjb25zdCBjaGFyICpob3N0TmFtZSwg dW5zaWduZWQgc2hvcnQgcG9ydE51bWJlciwKIAkJICogaW50ZW5kZWQgdG8gcHJvdmlkZSBhIGNs YW1wIG9uIHRoZSByZXF1ZXN0IG9uIHBsYXRmb3JtcyB3aGVyZSBhbgogCQkgKiBvdmVybHkgbGFy Z2UgcmVxdWVzdCBwcm92b2tlcyBhIGtlcm5lbCBlcnJvciAoYXJlIHRoZXJlIGFueT8pLgogCQkg Ki8KLQkJbWF4Y29ubiA9IE1heEJhY2tlbmRzICogMjsKKwkJbWF4Y29ubiA9IEdldE1heEJhY2tl bmRzKDApICogMjsKIAkJaWYgKG1heGNvbm4gPiBQR19TT01BWENPTk4pCiAJCQltYXhjb25uID0g UEdfU09NQVhDT05OOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1eHBy b2Nlc3MuYyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV4cHJvY2Vzcy5jCmluZGV4IDc0NTJm OTA4YjIuLjIwOGFhNTgwM2QgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV4 cHJvY2Vzcy5jCisrKyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV4cHJvY2Vzcy5jCkBAIC0x MTYsNyArMTE2LDcgQEAgQXV4aWxpYXJ5UHJvY2Vzc01haW4oQXV4UHJvY1R5cGUgYXV4dHlwZSkK IAkgKiBUaGlzIHdpbGwgbmVlZCByZXRoaW5raW5nIGlmIHdlIGV2ZXIgd2FudCBtb3JlIHRoYW4g b25lIG9mIGEgcGFydGljdWxhcgogCSAqIGF1eGlsaWFyeSBwcm9jZXNzIHR5cGUuCiAJICovCi0J UHJvY1NpZ25hbEluaXQoTWF4QmFja2VuZHMgKyBNeUF1eFByb2NUeXBlICsgMSk7CisJUHJvY1Np Z25hbEluaXQoR2V0TWF4QmFja2VuZHMoMCkgKyBNeUF1eFByb2NUeXBlICsgMSk7CiAKIAkvKgog CSAqIEF1eGlsaWFyeSBwcm9jZXNzZXMgZG9uJ3QgcnVuIHRyYW5zYWN0aW9ucywgYnV0IHRoZXkg bWF5IG5lZWQgYQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVy LmMgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYwppbmRleCBmYzBiYzhkOTll Li4yNzFmYmNlNGI4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0 ZXIuYworKysgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYwpAQCAtOTk3LDEw ICs5OTcsOCBAQCBQb3N0bWFzdGVyTWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCUxvY2Fs UHJvY2Vzc0NvbnRyb2xGaWxlKGZhbHNlKTsKIAogCS8qCi0JICogUmVnaXN0ZXIgdGhlIGFwcGx5 IGxhdW5jaGVyLiAgU2luY2UgaXQgcmVnaXN0ZXJzIGEgYmFja2dyb3VuZCB3b3JrZXIsCi0JICog aXQgbmVlZHMgdG8gYmUgY2FsbGVkIGJlZm9yZSBJbml0aWFsaXplTWF4QmFja2VuZHMoKSwgYW5k IGl0J3MgcHJvYmFibHkKLQkgKiBhIGdvb2QgaWRlYSB0byBjYWxsIGl0IGJlZm9yZSBhbnkgbW9k dWxlcyBoYWQgY2hhbmNlIHRvIHRha2UgdGhlCi0JICogYmFja2dyb3VuZCB3b3JrZXIgc2xvdHMu CisJICogUmVnaXN0ZXIgdGhlIGFwcGx5IGxhdW5jaGVyLiAgSXQncyBwcm9iYWJseSBhIGdvb2Qg aWRlYSB0byBjYWxsIGl0IGJlZm9yZQorCSAqIGFueSBtb2R1bGVzIGhhZCBhIGNoYW5jZSB0byB0 YWtlIHRoZSBiYWNrZ3JvdW5kIHdvcmtlciBzbG90cy4KIAkgKi8KIAlBcHBseUxhdW5jaGVyUmVn aXN0ZXIoKTsKIApAQCAtMTAyMSw4ICsxMDE5LDggQEAgUG9zdG1hc3Rlck1haW4oaW50IGFyZ2Ms IGNoYXIgKmFyZ3ZbXSkKICNlbmRpZgogCiAJLyoKLQkgKiBOb3cgdGhhdCBsb2FkYWJsZSBtb2R1 bGVzIGhhdmUgaGFkIHRoZWlyIGNoYW5jZSB0byByZWdpc3RlciBiYWNrZ3JvdW5kCi0JICogd29y a2VycywgY2FsY3VsYXRlIE1heEJhY2tlbmRzLgorCSAqIE5vdyB0aGF0IGxvYWRhYmxlIG1vZHVs ZXMgaGF2ZSBoYWQgdGhlaXIgY2hhbmNlIHRvIGFsdGVyIGFueSBHVUNzLAorCSAqIGNhbGN1bGF0 ZSBNYXhCYWNrZW5kcy4KIAkgKi8KIAlJbml0aWFsaXplTWF4QmFja2VuZHMoKTsKIApAQCAtNjE4 Nyw3ICs2MTg1LDcgQEAgc2F2ZV9iYWNrZW5kX3ZhcmlhYmxlcyhCYWNrZW5kUGFyYW1ldGVycyAq cGFyYW0sIFBvcnQgKnBvcnQsCiAJcGFyYW0tPnF1ZXJ5X2lkX2VuYWJsZWQgPSBxdWVyeV9pZF9l bmFibGVkOwogCXBhcmFtLT5tYXhfc2FmZV9mZHMgPSBtYXhfc2FmZV9mZHM7CiAKLQlwYXJhbS0+ TWF4QmFja2VuZHMgPSBNYXhCYWNrZW5kczsKKwlwYXJhbS0+TWF4QmFja2VuZHMgPSBHZXRNYXhC YWNrZW5kcygwKTsKIAogI2lmZGVmIFdJTjMyCiAJcGFyYW0tPlBvc3RtYXN0ZXJIYW5kbGUgPSBQ b3N0bWFzdGVySGFuZGxlOwpAQCAtNjQyMSw3ICs2NDE5LDcgQEAgcmVzdG9yZV9iYWNrZW5kX3Zh cmlhYmxlcyhCYWNrZW5kUGFyYW1ldGVycyAqcGFyYW0sIFBvcnQgKnBvcnQpCiAJcXVlcnlfaWRf ZW5hYmxlZCA9IHBhcmFtLT5xdWVyeV9pZF9lbmFibGVkOwogCW1heF9zYWZlX2ZkcyA9IHBhcmFt LT5tYXhfc2FmZV9mZHM7CiAKLQlNYXhCYWNrZW5kcyA9IHBhcmFtLT5NYXhCYWNrZW5kczsKKwlT ZXRNYXhCYWNrZW5kcyhwYXJhbS0+TWF4QmFja2VuZHMpOwogCiAjaWZkZWYgV0lOMzIKIAlQb3N0 bWFzdGVySGFuZGxlID0gcGFyYW0tPlBvc3RtYXN0ZXJIYW5kbGU7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9zdG9yYWdlL2lwYy9kc20uYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL2RzbS5j CmluZGV4IGI0NjFhNWY3ZTkuLmJiMjc5YmI4ZDEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0 b3JhZ2UvaXBjL2RzbS5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL2RzbS5jCkBAIC0x NjUsNyArMTY1LDcgQEAgZHNtX3Bvc3RtYXN0ZXJfc3RhcnR1cChQR1NobWVtSGVhZGVyICpzaGlt KQogCiAJLyogRGV0ZXJtaW5lIHNpemUgZm9yIG5ldyBjb250cm9sIHNlZ21lbnQuICovCiAJbWF4 aXRlbXMgPSBQR19EWU5TSE1FTV9GSVhFRF9TTE9UUwotCQkrIFBHX0RZTlNITUVNX1NMT1RTX1BF Ul9CQUNLRU5EICogTWF4QmFja2VuZHM7CisJCSsgUEdfRFlOU0hNRU1fU0xPVFNfUEVSX0JBQ0tF TkQgKiBHZXRNYXhCYWNrZW5kcygwKTsKIAllbG9nKERFQlVHMiwgImR5bmFtaWMgc2hhcmVkIG1l bW9yeSBzeXN0ZW0gd2lsbCBzdXBwb3J0ICV1IHNlZ21lbnRzIiwKIAkJIG1heGl0ZW1zKTsKIAlz ZWdzaXplID0gZHNtX2NvbnRyb2xfYnl0ZXNfbmVlZGVkKG1heGl0ZW1zKTsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NhcnJheS5jIGIvc3JjL2JhY2tlbmQvc3RvcmFn ZS9pcGMvcHJvY2FycmF5LmMKaW5kZXggYzc4MTZmY2ZiMy4uOWFmZDAyMDljOCAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5LmMKKysrIGIvc3JjL2JhY2tlbmQv c3RvcmFnZS9pcGMvcHJvY2FycmF5LmMKQEAgLTM2NSw3ICszNjUsNyBAQCBQcm9jQXJyYXlTaG1l bVNpemUodm9pZCkKIAlTaXplCQlzaXplOwogCiAJLyogU2l6ZSBvZiB0aGUgUHJvY0FycmF5IHN0 cnVjdHVyZSBpdHNlbGYgKi8KLSNkZWZpbmUgUFJPQ0FSUkFZX01BWFBST0NTCShNYXhCYWNrZW5k cyArIG1heF9wcmVwYXJlZF94YWN0cykKKyNkZWZpbmUgUFJPQ0FSUkFZX01BWFBST0NTCShHZXRN YXhCYWNrZW5kcyhHTUJfTUFYX1BSRVBBUkVEX1hBQ1RTKSkKIAogCXNpemUgPSBvZmZzZXRvZihQ cm9jQXJyYXlTdHJ1Y3QsIHBncHJvY25vcyk7CiAJc2l6ZSA9IGFkZF9zaXplKHNpemUsIG11bF9z aXplKHNpemVvZihpbnQpLCBQUk9DQVJSQVlfTUFYUFJPQ1MpKTsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NzaWduYWwuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBj L3Byb2NzaWduYWwuYwppbmRleCBkZWZiNzVhYTI2Li44NmI3YzM5NzgyIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jc2lnbmFsLmMKKysrIGIvc3JjL2JhY2tlbmQvc3Rv cmFnZS9pcGMvcHJvY3NpZ25hbC5jCkBAIC04NSw3ICs4NSw3IEBAIHR5cGVkZWYgc3RydWN0CiAg KiBwb3NzaWJsZSBhdXhpbGlhcnkgcHJvY2VzcyB0eXBlLiAgKFRoaXMgc2NoZW1lIGFzc3VtZXMg dGhlcmUgaXMgbm90CiAgKiBtb3JlIHRoYW4gb25lIG9mIGFueSBhdXhpbGlhcnkgcHJvY2VzcyB0 eXBlIGF0IGEgdGltZS4pCiAgKi8KLSNkZWZpbmUgTnVtUHJvY1NpZ25hbFNsb3RzCShNYXhCYWNr ZW5kcyArIE5VTV9BVVhQUk9DVFlQRVMpCisjZGVmaW5lIE51bVByb2NTaWduYWxTbG90cwkoR2V0 TWF4QmFja2VuZHMoMCkgKyBOVU1fQVVYUFJPQ1RZUEVTKQogCiAvKiBDaGVjayB3aGV0aGVyIHRo ZSByZWxldmFudCB0eXBlIGJpdCBpcyBzZXQgaW4gdGhlIGZsYWdzLiAqLwogI2RlZmluZSBCQVJS SUVSX1NIT1VMRF9DSEVDSyhmbGFncywgdHlwZSkgXApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv c3RvcmFnZS9pcGMvc2ludmFsYWR0LmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9zaW52YWxh ZHQuYwppbmRleCA5NDZiZDhlM2NiLi4yZTg1YTk5ZjY4IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9zdG9yYWdlL2lwYy9zaW52YWxhZHQuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9z aW52YWxhZHQuYwpAQCAtMjA1LDcgKzIwNSw3IEBAIFNJbnZhbFNobWVtU2l6ZSh2b2lkKQogCVNp emUJCXNpemU7CiAKIAlzaXplID0gb2Zmc2V0b2YoU0lTZWcsIHByb2NTdGF0ZSk7Ci0Jc2l6ZSA9 IGFkZF9zaXplKHNpemUsIG11bF9zaXplKHNpemVvZihQcm9jU3RhdGUpLCBNYXhCYWNrZW5kcykp OworCXNpemUgPSBhZGRfc2l6ZShzaXplLCBtdWxfc2l6ZShzaXplb2YoUHJvY1N0YXRlKSwgR2V0 TWF4QmFja2VuZHMoMCkpKTsKIAogCXJldHVybiBzaXplOwogfQpAQCAtMjMxLDcgKzIzMSw3IEBA IENyZWF0ZVNoYXJlZEludmFsaWRhdGlvblN0YXRlKHZvaWQpCiAJc2htSW52YWxCdWZmZXItPm1h eE1zZ051bSA9IDA7CiAJc2htSW52YWxCdWZmZXItPm5leHRUaHJlc2hvbGQgPSBDTEVBTlVQX01J TjsKIAlzaG1JbnZhbEJ1ZmZlci0+bGFzdEJhY2tlbmQgPSAwOwotCXNobUludmFsQnVmZmVyLT5t YXhCYWNrZW5kcyA9IE1heEJhY2tlbmRzOworCXNobUludmFsQnVmZmVyLT5tYXhCYWNrZW5kcyA9 IEdldE1heEJhY2tlbmRzKDApOwogCVNwaW5Mb2NrSW5pdCgmc2htSW52YWxCdWZmZXItPm1zZ251 bUxvY2spOwogCiAJLyogVGhlIGJ1ZmZlcltdIGFycmF5IGlzIGluaXRpYWxseSBhbGwgdW51c2Vk LCBzbyB3ZSBuZWVkIG5vdCBmaWxsIGl0ICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9y YWdlL2xtZ3IvZGVhZGxvY2suYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9kZWFkbG9jay5j CmluZGV4IDY3NzMzYzBkMWEuLjZmZmM0ODEwMDkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0 b3JhZ2UvbG1nci9kZWFkbG9jay5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9kZWFk bG9jay5jCkBAIC0xNDMsNiArMTQzLDcgQEAgdm9pZAogSW5pdERlYWRMb2NrQ2hlY2tpbmcodm9p ZCkKIHsKIAlNZW1vcnlDb250ZXh0IG9sZGN4dDsKKwlpbnQgbWF4X2JhY2tlbmRzID0gR2V0TWF4 QmFja2VuZHMoMCk7CiAKIAkvKiBNYWtlIHN1cmUgYWxsb2NhdGlvbnMgYXJlIHBlcm1hbmVudCAq LwogCW9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhUb3BNZW1vcnlDb250ZXh0KTsKQEAg LTE1MSwxNiArMTUyLDE2IEBAIEluaXREZWFkTG9ja0NoZWNraW5nKHZvaWQpCiAJICogRmluZExv Y2tDeWNsZSBuZWVkcyBhdCBtb3N0IE1heEJhY2tlbmRzIGVudHJpZXMgaW4gdmlzaXRlZFByb2Nz W10gYW5kCiAJICogZGVhZGxvY2tEZXRhaWxzW10uCiAJICovCi0JdmlzaXRlZFByb2NzID0gKFBH UFJPQyAqKikgcGFsbG9jKE1heEJhY2tlbmRzICogc2l6ZW9mKFBHUFJPQyAqKSk7Ci0JZGVhZGxv Y2tEZXRhaWxzID0gKERFQURMT0NLX0lORk8gKikgcGFsbG9jKE1heEJhY2tlbmRzICogc2l6ZW9m KERFQURMT0NLX0lORk8pKTsKKwl2aXNpdGVkUHJvY3MgPSAoUEdQUk9DICoqKSBwYWxsb2MobWF4 X2JhY2tlbmRzICogc2l6ZW9mKFBHUFJPQyAqKSk7CisJZGVhZGxvY2tEZXRhaWxzID0gKERFQURM T0NLX0lORk8gKikgcGFsbG9jKG1heF9iYWNrZW5kcyAqIHNpemVvZihERUFETE9DS19JTkZPKSk7 CiAKIAkvKgogCSAqIFRvcG9Tb3J0IG5lZWRzIHRvIGNvbnNpZGVyIGF0IG1vc3QgTWF4QmFja2Vu ZHMgd2FpdC1xdWV1ZSBlbnRyaWVzLCBhbmQKIAkgKiBpdCBuZWVkbid0IHJ1biBjb25jdXJyZW50 bHkgd2l0aCBGaW5kTG9ja0N5Y2xlLgogCSAqLwogCXRvcG9Qcm9jcyA9IHZpc2l0ZWRQcm9jczsJ LyogcmUtdXNlIHRoaXMgc3BhY2UgKi8KLQliZWZvcmVDb25zdHJhaW50cyA9IChpbnQgKikgcGFs bG9jKE1heEJhY2tlbmRzICogc2l6ZW9mKGludCkpOwotCWFmdGVyQ29uc3RyYWludHMgPSAoaW50 ICopIHBhbGxvYyhNYXhCYWNrZW5kcyAqIHNpemVvZihpbnQpKTsKKwliZWZvcmVDb25zdHJhaW50 cyA9IChpbnQgKikgcGFsbG9jKG1heF9iYWNrZW5kcyAqIHNpemVvZihpbnQpKTsKKwlhZnRlckNv bnN0cmFpbnRzID0gKGludCAqKSBwYWxsb2MobWF4X2JhY2tlbmRzICogc2l6ZW9mKGludCkpOwog CiAJLyoKIAkgKiBXZSBuZWVkIHRvIGNvbnNpZGVyIHJlYXJyYW5naW5nIGF0IG1vc3QgTWF4QmFj a2VuZHMvMiB3YWl0IHF1ZXVlcwpAQCAtMTY5LDggKzE3MCw4IEBAIEluaXREZWFkTG9ja0NoZWNr aW5nKHZvaWQpCiAJICogTWF4QmFja2VuZHMgdG90YWwgd2FpdGVycy4KIAkgKi8KIAl3YWl0T3Jk ZXJzID0gKFdBSVRfT1JERVIgKikKLQkJcGFsbG9jKChNYXhCYWNrZW5kcyAvIDIpICogc2l6ZW9m KFdBSVRfT1JERVIpKTsKLQl3YWl0T3JkZXJQcm9jcyA9IChQR1BST0MgKiopIHBhbGxvYyhNYXhC YWNrZW5kcyAqIHNpemVvZihQR1BST0MgKikpOworCQlwYWxsb2MoKG1heF9iYWNrZW5kcyAvIDIp ICogc2l6ZW9mKFdBSVRfT1JERVIpKTsKKwl3YWl0T3JkZXJQcm9jcyA9IChQR1BST0MgKiopIHBh bGxvYyhtYXhfYmFja2VuZHMgKiBzaXplb2YoUEdQUk9DICopKTsKIAogCS8qCiAJICogQWxsb3cg YXQgbW9zdCBNYXhCYWNrZW5kcyBkaXN0aW5jdCBjb25zdHJhaW50cyBpbiBhIGNvbmZpZ3VyYXRp b24uIChJcwpAQCAtMTgwLDcgKzE4MSw3IEBAIEluaXREZWFkTG9ja0NoZWNraW5nKHZvaWQpCiAJ ICogbGltaXRzIHRoZSBtYXhpbXVtIHJlY3Vyc2lvbiBkZXB0aCBvZiBEZWFkTG9ja0NoZWNrUmVj dXJzZS4gTWFraW5nIGl0CiAJICogcmVhbGx5IGJpZyBtaWdodCBwb3RlbnRpYWxseSBhbGxvdyBh IHN0YWNrLW92ZXJmbG93IHByb2JsZW0uCiAJICovCi0JbWF4Q3VyQ29uc3RyYWludHMgPSBNYXhC YWNrZW5kczsKKwltYXhDdXJDb25zdHJhaW50cyA9IG1heF9iYWNrZW5kczsKIAljdXJDb25zdHJh aW50cyA9IChFREdFICopIHBhbGxvYyhtYXhDdXJDb25zdHJhaW50cyAqIHNpemVvZihFREdFKSk7 CiAKIAkvKgpAQCAtMTkxLDcgKzE5Miw3IEBAIEluaXREZWFkTG9ja0NoZWNraW5nKHZvaWQpCiAJ ICogbGFzdCBNYXhCYWNrZW5kcyBlbnRyaWVzIGluIHBvc3NpYmxlQ29uc3RyYWludHNbXSBhcmUg cmVzZXJ2ZWQgYXMKIAkgKiBvdXRwdXQgd29ya3NwYWNlIGZvciBGaW5kTG9ja0N5Y2xlLgogCSAq LwotCW1heFBvc3NpYmxlQ29uc3RyYWludHMgPSBNYXhCYWNrZW5kcyAqIDQ7CisJbWF4UG9zc2li bGVDb25zdHJhaW50cyA9IG1heF9iYWNrZW5kcyAqIDQ7CiAJcG9zc2libGVDb25zdHJhaW50cyA9 CiAJCShFREdFICopIHBhbGxvYyhtYXhQb3NzaWJsZUNvbnN0cmFpbnRzICogc2l6ZW9mKEVER0Up KTsKIApAQCAtMzI3LDcgKzMyOCw3IEBAIERlYWRMb2NrQ2hlY2tSZWN1cnNlKFBHUFJPQyAqcHJv YykKIAlpZiAobkN1ckNvbnN0cmFpbnRzID49IG1heEN1ckNvbnN0cmFpbnRzKQogCQlyZXR1cm4g dHJ1ZTsJCQkvKiBvdXQgb2Ygcm9vbSBmb3IgYWN0aXZlIGNvbnN0cmFpbnRzPyAqLwogCW9sZFBv c3NpYmxlQ29uc3RyYWludHMgPSBuUG9zc2libGVDb25zdHJhaW50czsKLQlpZiAoblBvc3NpYmxl Q29uc3RyYWludHMgKyBuRWRnZXMgKyBNYXhCYWNrZW5kcyA8PSBtYXhQb3NzaWJsZUNvbnN0cmFp bnRzKQorCWlmIChuUG9zc2libGVDb25zdHJhaW50cyArIG5FZGdlcyArIEdldE1heEJhY2tlbmRz KDApIDw9IG1heFBvc3NpYmxlQ29uc3RyYWludHMpCiAJewogCQkvKiBXZSBjYW4gc2F2ZSB0aGUg ZWRnZSBsaXN0IGluIHBvc3NpYmxlQ29uc3RyYWludHNbXSAqLwogCQluUG9zc2libGVDb25zdHJh aW50cyArPSBuRWRnZXM7CkBAIC0zODgsNyArMzg5LDcgQEAgVGVzdENvbmZpZ3VyYXRpb24oUEdQ Uk9DICpzdGFydFByb2MpCiAJLyoKIAkgKiBNYWtlIHN1cmUgd2UgaGF2ZSByb29tIGZvciBGaW5k TG9ja0N5Y2xlJ3Mgb3V0cHV0LgogCSAqLwotCWlmIChuUG9zc2libGVDb25zdHJhaW50cyArIE1h eEJhY2tlbmRzID4gbWF4UG9zc2libGVDb25zdHJhaW50cykKKwlpZiAoblBvc3NpYmxlQ29uc3Ry YWludHMgKyBHZXRNYXhCYWNrZW5kcygwKSA+IG1heFBvc3NpYmxlQ29uc3RyYWludHMpCiAJCXJl dHVybiAtMTsKIAogCS8qCkBAIC00ODYsNyArNDg3LDcgQEAgRmluZExvY2tDeWNsZVJlY3Vyc2Uo UEdQUk9DICpjaGVja1Byb2MsCiAJCQkJICogcmVjb3JkIHRvdGFsIGxlbmd0aCBvZiBjeWNsZSAt LS0gb3V0ZXIgbGV2ZWxzIHdpbGwgbm93IGZpbGwKIAkJCQkgKiBkZWFkbG9ja0RldGFpbHNbXQog CQkJCSAqLwotCQkJCUFzc2VydChkZXB0aCA8PSBNYXhCYWNrZW5kcyk7CisJCQkJQXNzZXJ0KGRl cHRoIDw9IEdldE1heEJhY2tlbmRzKDApKTsKIAkJCQluRGVhZGxvY2tEZXRhaWxzID0gZGVwdGg7 CiAKIAkJCQlyZXR1cm4gdHJ1ZTsKQEAgLTUwMCw3ICs1MDEsNyBAQCBGaW5kTG9ja0N5Y2xlUmVj dXJzZShQR1BST0MgKmNoZWNrUHJvYywKIAkJfQogCX0KIAkvKiBNYXJrIHByb2MgYXMgc2VlbiAq LwotCUFzc2VydChuVmlzaXRlZFByb2NzIDwgTWF4QmFja2VuZHMpOworCUFzc2VydChuVmlzaXRl ZFByb2NzIDwgR2V0TWF4QmFja2VuZHMoMCkpOwogCXZpc2l0ZWRQcm9jc1tuVmlzaXRlZFByb2Nz KytdID0gY2hlY2tQcm9jOwogCiAJLyoKQEAgLTY5OCw3ICs2OTksNyBAQCBGaW5kTG9ja0N5Y2xl UmVjdXJzZU1lbWJlcihQR1BST0MgKmNoZWNrUHJvYywKIAkJCQkJLyoKIAkJCQkJICogQWRkIHRo aXMgZWRnZSB0byB0aGUgbGlzdCBvZiBzb2Z0IGVkZ2VzIGluIHRoZSBjeWNsZQogCQkJCQkgKi8K LQkJCQkJQXNzZXJ0KCpuU29mdEVkZ2VzIDwgTWF4QmFja2VuZHMpOworCQkJCQlBc3NlcnQoKm5T b2Z0RWRnZXMgPCBHZXRNYXhCYWNrZW5kcygwKSk7CiAJCQkJCXNvZnRFZGdlc1sqblNvZnRFZGdl c10ud2FpdGVyID0gY2hlY2tQcm9jTGVhZGVyOwogCQkJCQlzb2Z0RWRnZXNbKm5Tb2Z0RWRnZXNd LmJsb2NrZXIgPSBsZWFkZXI7CiAJCQkJCXNvZnRFZGdlc1sqblNvZnRFZGdlc10ubG9jayA9IGxv Y2s7CkBAIC03NzEsNyArNzcyLDcgQEAgRmluZExvY2tDeWNsZVJlY3Vyc2VNZW1iZXIoUEdQUk9D ICpjaGVja1Byb2MsCiAJCQkJCS8qCiAJCQkJCSAqIEFkZCB0aGlzIGVkZ2UgdG8gdGhlIGxpc3Qg b2Ygc29mdCBlZGdlcyBpbiB0aGUgY3ljbGUKIAkJCQkJICovCi0JCQkJCUFzc2VydCgqblNvZnRF ZGdlcyA8IE1heEJhY2tlbmRzKTsKKwkJCQkJQXNzZXJ0KCpuU29mdEVkZ2VzIDwgR2V0TWF4QmFj a2VuZHMoMCkpOwogCQkJCQlzb2Z0RWRnZXNbKm5Tb2Z0RWRnZXNdLndhaXRlciA9IGNoZWNrUHJv Y0xlYWRlcjsKIAkJCQkJc29mdEVkZ2VzWypuU29mdEVkZ2VzXS5ibG9ja2VyID0gbGVhZGVyOwog CQkJCQlzb2Z0RWRnZXNbKm5Tb2Z0RWRnZXNdLmxvY2sgPSBsb2NrOwpAQCAtODM0LDcgKzgzNSw3 IEBAIEV4cGFuZENvbnN0cmFpbnRzKEVER0UgKmNvbnN0cmFpbnRzLAogCQl3YWl0T3JkZXJzW25X YWl0T3JkZXJzXS5wcm9jcyA9IHdhaXRPcmRlclByb2NzICsgbldhaXRPcmRlclByb2NzOwogCQl3 YWl0T3JkZXJzW25XYWl0T3JkZXJzXS5uUHJvY3MgPSBsb2NrLT53YWl0UHJvY3Muc2l6ZTsKIAkJ bldhaXRPcmRlclByb2NzICs9IGxvY2stPndhaXRQcm9jcy5zaXplOwotCQlBc3NlcnQobldhaXRP cmRlclByb2NzIDw9IE1heEJhY2tlbmRzKTsKKwkJQXNzZXJ0KG5XYWl0T3JkZXJQcm9jcyA8PSBH ZXRNYXhCYWNrZW5kcygwKSk7CiAKIAkJLyoKIAkJICogRG8gdGhlIHRvcG8gc29ydC4gIFRvcG9T b3J0IG5lZWQgbm90IGV4YW1pbmUgY29uc3RyYWludHMgYWZ0ZXIgdGhpcwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL2xvY2suYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1n ci9sb2NrLmMKaW5kZXggMzY0NjU0ZTEwNi4uNTgxYmJjMjlkNSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvc3RvcmFnZS9sbWdyL2xvY2suYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3Iv bG9jay5jCkBAIC01NSw3ICs1NSw3IEBACiBpbnQJCQltYXhfbG9ja3NfcGVyX3hhY3Q7IC8qIHNl dCBieSBndWMuYyAqLwogCiAjZGVmaW5lIE5MT0NLRU5UUygpIFwKLQltdWxfc2l6ZShtYXhfbG9j a3NfcGVyX3hhY3QsIGFkZF9zaXplKE1heEJhY2tlbmRzLCBtYXhfcHJlcGFyZWRfeGFjdHMpKQor CW11bF9zaXplKG1heF9sb2Nrc19wZXJfeGFjdCwgR2V0TWF4QmFja2VuZHMoR01CX01BWF9QUkVQ QVJFRF9YQUNUUykpCiAKIAogLyoKQEAgLTI5MzgsMTIgKzI5MzgsMTIgQEAgR2V0TG9ja0NvbmZs aWN0cyhjb25zdCBMT0NLVEFHICpsb2NrdGFnLCBMT0NLTU9ERSBsb2NrbW9kZSwgaW50ICpjb3Vu dHApCiAJCQl2eGlkcyA9IChWaXJ0dWFsVHJhbnNhY3Rpb25JZCAqKQogCQkJCU1lbW9yeUNvbnRl eHRBbGxvYyhUb3BNZW1vcnlDb250ZXh0LAogCQkJCQkJCQkgICBzaXplb2YoVmlydHVhbFRyYW5z YWN0aW9uSWQpICoKLQkJCQkJCQkJICAgKE1heEJhY2tlbmRzICsgbWF4X3ByZXBhcmVkX3hhY3Rz ICsgMSkpOworCQkJCQkJCQkgICAoR2V0TWF4QmFja2VuZHMoR01CX01BWF9QUkVQQVJFRF9YQUNU UykgKyAxKSk7CiAJfQogCWVsc2UKIAkJdnhpZHMgPSAoVmlydHVhbFRyYW5zYWN0aW9uSWQgKikK IAkJCXBhbGxvYzAoc2l6ZW9mKFZpcnR1YWxUcmFuc2FjdGlvbklkKSAqCi0JCQkJCShNYXhCYWNr ZW5kcyArIG1heF9wcmVwYXJlZF94YWN0cyArIDEpKTsKKwkJCQkJKEdldE1heEJhY2tlbmRzKEdN Ql9NQVhfUFJFUEFSRURfWEFDVFMpICsgMSkpOwogCiAJLyogQ29tcHV0ZSBoYXNoIGNvZGUgYW5k IHBhcnRpdGlvbiBsb2NrLCBhbmQgbG9vayB1cCBjb25mbGljdGluZyBtb2Rlcy4gKi8KIAloYXNo Y29kZSA9IExvY2tUYWdIYXNoQ29kZShsb2NrdGFnKTsKQEAgLTMxMDAsNyArMzEwMCw3IEBAIEdl dExvY2tDb25mbGljdHMoY29uc3QgTE9DS1RBRyAqbG9ja3RhZywgTE9DS01PREUgbG9ja21vZGUs IGludCAqY291bnRwKQogCiAJTFdMb2NrUmVsZWFzZShwYXJ0aXRpb25Mb2NrKTsKIAotCWlmIChj b3VudCA+IE1heEJhY2tlbmRzICsgbWF4X3ByZXBhcmVkX3hhY3RzKQkvKiBzaG91bGQgbmV2ZXIg aGFwcGVuICovCisJaWYgKGNvdW50ID4gR2V0TWF4QmFja2VuZHMoR01CX01BWF9QUkVQQVJFRF9Y QUNUUykpCS8qIHNob3VsZCBuZXZlciBoYXBwZW4gKi8KIAkJZWxvZyhQQU5JQywgInRvbyBtYW55 IGNvbmZsaWN0aW5nIGxvY2tzIGZvdW5kIik7CiAKIAl2eGlkc1tjb3VudF0uYmFja2VuZElkID0g SW52YWxpZEJhY2tlbmRJZDsKQEAgLTM2NTEsNyArMzY1MSw3IEBAIEdldExvY2tTdGF0dXNEYXRh KHZvaWQpCiAJZGF0YSA9IChMb2NrRGF0YSAqKSBwYWxsb2Moc2l6ZW9mKExvY2tEYXRhKSk7CiAK IAkvKiBHdWVzcyBob3cgbXVjaCBzcGFjZSB3ZSdsbCBuZWVkLiAqLwotCWVscyA9IE1heEJhY2tl bmRzOworCWVscyA9IEdldE1heEJhY2tlbmRzKDApOwogCWVsID0gMDsKIAlkYXRhLT5sb2NrcyA9 IChMb2NrSW5zdGFuY2VEYXRhICopIHBhbGxvYyhzaXplb2YoTG9ja0luc3RhbmNlRGF0YSkgKiBl bHMpOwogCkBAIC0zNjg1LDcgKzM2ODUsNyBAQCBHZXRMb2NrU3RhdHVzRGF0YSh2b2lkKQogCiAJ CQlpZiAoZWwgPj0gZWxzKQogCQkJewotCQkJCWVscyArPSBNYXhCYWNrZW5kczsKKwkJCQllbHMg Kz0gR2V0TWF4QmFja2VuZHMoMCk7CiAJCQkJZGF0YS0+bG9ja3MgPSAoTG9ja0luc3RhbmNlRGF0 YSAqKQogCQkJCQlyZXBhbGxvYyhkYXRhLT5sb2Nrcywgc2l6ZW9mKExvY2tJbnN0YW5jZURhdGEp ICogZWxzKTsKIAkJCX0KQEAgLTM3MTcsNyArMzcxNyw3IEBAIEdldExvY2tTdGF0dXNEYXRhKHZv aWQpCiAKIAkJCWlmIChlbCA+PSBlbHMpCiAJCQl7Ci0JCQkJZWxzICs9IE1heEJhY2tlbmRzOwor CQkJCWVscyArPSBHZXRNYXhCYWNrZW5kcygwKTsKIAkJCQlkYXRhLT5sb2NrcyA9IChMb2NrSW5z dGFuY2VEYXRhICopCiAJCQkJCXJlcGFsbG9jKGRhdGEtPmxvY2tzLCBzaXplb2YoTG9ja0luc3Rh bmNlRGF0YSkgKiBlbHMpOwogCQkJfQpAQCAtMzg0Niw3ICszODQ2LDcgQEAgR2V0QmxvY2tlclN0 YXR1c0RhdGEoaW50IGJsb2NrZWRfcGlkKQogCSAqIGZvciB0aGUgcHJvY3NbXSBhcnJheTsgdGhl IG90aGVyIHR3byBjb3VsZCBuZWVkIGVubGFyZ2VtZW50LCB0aG91Z2guKQogCSAqLwogCWRhdGEt Pm5wcm9jcyA9IGRhdGEtPm5sb2NrcyA9IGRhdGEtPm5waWRzID0gMDsKLQlkYXRhLT5tYXhwcm9j cyA9IGRhdGEtPm1heGxvY2tzID0gZGF0YS0+bWF4cGlkcyA9IE1heEJhY2tlbmRzOworCWRhdGEt Pm1heHByb2NzID0gZGF0YS0+bWF4bG9ja3MgPSBkYXRhLT5tYXhwaWRzID0gR2V0TWF4QmFja2Vu ZHMoMCk7CiAJZGF0YS0+cHJvY3MgPSAoQmxvY2tlZFByb2NEYXRhICopIHBhbGxvYyhzaXplb2Yo QmxvY2tlZFByb2NEYXRhKSAqIGRhdGEtPm1heHByb2NzKTsKIAlkYXRhLT5sb2NrcyA9IChMb2Nr SW5zdGFuY2VEYXRhICopIHBhbGxvYyhzaXplb2YoTG9ja0luc3RhbmNlRGF0YSkgKiBkYXRhLT5t YXhsb2Nrcyk7CiAJZGF0YS0+d2FpdGVyX3BpZHMgPSAoaW50ICopIHBhbGxvYyhzaXplb2YoaW50 KSAqIGRhdGEtPm1heHBpZHMpOwpAQCAtMzk0OSw3ICszOTQ5LDcgQEAgR2V0U2luZ2xlUHJvY0Js b2NrZXJTdGF0dXNEYXRhKFBHUFJPQyAqYmxvY2tlZF9wcm9jLCBCbG9ja2VkUHJvY3NEYXRhICpk YXRhKQogCiAJCWlmIChkYXRhLT5ubG9ja3MgPj0gZGF0YS0+bWF4bG9ja3MpCiAJCXsKLQkJCWRh dGEtPm1heGxvY2tzICs9IE1heEJhY2tlbmRzOworCQkJZGF0YS0+bWF4bG9ja3MgKz0gR2V0TWF4 QmFja2VuZHMoMCk7CiAJCQlkYXRhLT5sb2NrcyA9IChMb2NrSW5zdGFuY2VEYXRhICopCiAJCQkJ cmVwYWxsb2MoZGF0YS0+bG9ja3MsIHNpemVvZihMb2NrSW5zdGFuY2VEYXRhKSAqIGRhdGEtPm1h eGxvY2tzKTsKIAkJfQpAQCAtMzk3OCw3ICszOTc4LDcgQEAgR2V0U2luZ2xlUHJvY0Jsb2NrZXJT dGF0dXNEYXRhKFBHUFJPQyAqYmxvY2tlZF9wcm9jLCBCbG9ja2VkUHJvY3NEYXRhICpkYXRhKQog CiAJaWYgKHF1ZXVlX3NpemUgPiBkYXRhLT5tYXhwaWRzIC0gZGF0YS0+bnBpZHMpCiAJewotCQlk YXRhLT5tYXhwaWRzID0gTWF4KGRhdGEtPm1heHBpZHMgKyBNYXhCYWNrZW5kcywKKwkJZGF0YS0+ bWF4cGlkcyA9IE1heChkYXRhLT5tYXhwaWRzICsgR2V0TWF4QmFja2VuZHMoMCksCiAJCQkJCQkJ ZGF0YS0+bnBpZHMgKyBxdWV1ZV9zaXplKTsKIAkJZGF0YS0+d2FpdGVyX3BpZHMgPSAoaW50ICop IHJlcGFsbG9jKGRhdGEtPndhaXRlcl9waWRzLAogCQkJCQkJCQkJCQkgc2l6ZW9mKGludCkgKiBk YXRhLT5tYXhwaWRzKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9wcmVk aWNhdGUuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9wcmVkaWNhdGUuYwppbmRleCA1NjI2 N2JkYzNjLi5kNjE5OWFhODJkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3Iv cHJlZGljYXRlLmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL3ByZWRpY2F0ZS5jCkBA IC0yNTcsNyArMjU3LDcgQEAKIAkoJk1haW5MV0xvY2tBcnJheVtQUkVESUNBVEVMT0NLX01BTkFH RVJfTFdMT0NLX09GRlNFVCArIChpKV0ubG9jaykKIAogI2RlZmluZSBOUFJFRElDQVRFTE9DS1RB UkdFVEVOVFMoKSBcCi0JbXVsX3NpemUobWF4X3ByZWRpY2F0ZV9sb2Nrc19wZXJfeGFjdCwgYWRk X3NpemUoTWF4QmFja2VuZHMsIG1heF9wcmVwYXJlZF94YWN0cykpCisJbXVsX3NpemUobWF4X3By ZWRpY2F0ZV9sb2Nrc19wZXJfeGFjdCwgR2V0TWF4QmFja2VuZHMoR01CX01BWF9QUkVQQVJFRF9Y QUNUUykpCiAKICNkZWZpbmUgU3hhY3RJc09uRmluaXNoZWRMaXN0KHN4YWN0KSAoIVNITVF1ZXVl SXNEZXRhY2hlZCgmKChzeGFjdCktPmZpbmlzaGVkTGluaykpKQogCkBAIC0xMjIyLDcgKzEyMjIs NyBAQCBJbml0UHJlZGljYXRlTG9ja3Modm9pZCkKIAkgKiBDb21wdXRlIHNpemUgZm9yIHNlcmlh bGl6YWJsZSB0cmFuc2FjdGlvbiBoYXNodGFibGUuIE5vdGUgdGhlc2UKIAkgKiBjYWxjdWxhdGlv bnMgbXVzdCBhZ3JlZSB3aXRoIFByZWRpY2F0ZUxvY2tTaG1lbVNpemUhCiAJICovCi0JbWF4X3Rh YmxlX3NpemUgPSAoTWF4QmFja2VuZHMgKyBtYXhfcHJlcGFyZWRfeGFjdHMpOworCW1heF90YWJs ZV9zaXplID0gKEdldE1heEJhY2tlbmRzKEdNQl9NQVhfUFJFUEFSRURfWEFDVFMpKTsKIAogCS8q CiAJICogQWxsb2NhdGUgYSBsaXN0IHRvIGhvbGQgaW5mb3JtYXRpb24gb24gdHJhbnNhY3Rpb25z IHBhcnRpY2lwYXRpbmcgaW4KQEAgLTEzNzQsNyArMTM3NCw3IEBAIFByZWRpY2F0ZUxvY2tTaG1l bVNpemUodm9pZCkKIAlzaXplID0gYWRkX3NpemUoc2l6ZSwgc2l6ZSAvIDEwKTsKIAogCS8qIHRy YW5zYWN0aW9uIGxpc3QgKi8KLQltYXhfdGFibGVfc2l6ZSA9IE1heEJhY2tlbmRzICsgbWF4X3By ZXBhcmVkX3hhY3RzOworCW1heF90YWJsZV9zaXplID0gR2V0TWF4QmFja2VuZHMoR01CX01BWF9Q UkVQQVJFRF9YQUNUUyk7CiAJbWF4X3RhYmxlX3NpemUgKj0gMTA7CiAJc2l6ZSA9IGFkZF9zaXpl KHNpemUsIFByZWRYYWN0TGlzdERhdGFTaXplKTsKIAlzaXplID0gYWRkX3NpemUoc2l6ZSwgbXVs X3NpemUoKFNpemUpIG1heF90YWJsZV9zaXplLApAQCAtMTkwNSw3ICsxOTA1LDcgQEAgR2V0U2Vy aWFsaXphYmxlVHJhbnNhY3Rpb25TbmFwc2hvdEludChTbmFwc2hvdCBzbmFwc2hvdCwKIAl7CiAJ CSsrKFByZWRYYWN0LT5Xcml0YWJsZVN4YWN0Q291bnQpOwogCQlBc3NlcnQoUHJlZFhhY3QtPldy aXRhYmxlU3hhY3RDb3VudCA8PQotCQkJICAgKE1heEJhY2tlbmRzICsgbWF4X3ByZXBhcmVkX3hh Y3RzKSk7CisJCQkgICAoR2V0TWF4QmFja2VuZHMoR01CX01BWF9QUkVQQVJFRF9YQUNUUykpKTsK IAl9CiAKIAlNeVNlcmlhbGl6YWJsZVhhY3QgPSBzeGFjdDsKQEAgLTUxMDcsNyArNTEwNyw3IEBA IHByZWRpY2F0ZWxvY2tfdHdvcGhhc2VfcmVjb3ZlcihUcmFuc2FjdGlvbklkIHhpZCwgdWludDE2 IGluZm8sCiAJCXsKIAkJCSsrKFByZWRYYWN0LT5Xcml0YWJsZVN4YWN0Q291bnQpOwogCQkJQXNz ZXJ0KFByZWRYYWN0LT5Xcml0YWJsZVN4YWN0Q291bnQgPD0KLQkJCQkgICAoTWF4QmFja2VuZHMg KyBtYXhfcHJlcGFyZWRfeGFjdHMpKTsKKwkJCQkgICAoR2V0TWF4QmFja2VuZHMoR01CX01BWF9Q UkVQQVJFRF9YQUNUUykpKTsKIAkJfQogCiAJCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9z dG9yYWdlL2xtZ3IvcHJvYy5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL3Byb2MuYwppbmRl eCBiN2Q5ZGEwYWE5Li45NjAwYWZlYzE2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdl L2xtZ3IvcHJvYy5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9wcm9jLmMKQEAgLTEw Miw4ICsxMDIsNyBAQCBTaXplCiBQcm9jR2xvYmFsU2htZW1TaXplKHZvaWQpCiB7CiAJU2l6ZQkJ c2l6ZSA9IDA7Ci0JU2l6ZQkJVG90YWxQcm9jcyA9Ci0JYWRkX3NpemUoTWF4QmFja2VuZHMsIGFk ZF9zaXplKE5VTV9BVVhJTElBUllfUFJPQ1MsIG1heF9wcmVwYXJlZF94YWN0cykpOworCVNpemUJ CVRvdGFsUHJvY3MgPSBHZXRNYXhCYWNrZW5kcyhHTUJfTlVNX0FVWElMSUFSWV9QUk9DUyB8IEdN Ql9NQVhfUFJFUEFSRURfWEFDVFMpOwogCiAJLyogUHJvY0dsb2JhbCAqLwogCXNpemUgPSBhZGRf c2l6ZShzaXplLCBzaXplb2YoUFJPQ19IRFIpKTsKQEAgLTEyNyw3ICsxMjYsNyBAQCBQcm9jR2xv YmFsU2VtYXModm9pZCkKIAkgKiBXZSBuZWVkIGEgc2VtYSBwZXIgYmFja2VuZCAoaW5jbHVkaW5n IGF1dG92YWN1dW0pLCBwbHVzIG9uZSBmb3IgZWFjaAogCSAqIGF1eGlsaWFyeSBwcm9jZXNzLgog CSAqLwotCXJldHVybiBNYXhCYWNrZW5kcyArIE5VTV9BVVhJTElBUllfUFJPQ1M7CisJcmV0dXJu IEdldE1heEJhY2tlbmRzKEdNQl9OVU1fQVVYSUxJQVJZX1BST0NTKTsKIH0KIAogLyoKQEAgLTE2 Miw3ICsxNjEsNyBAQCBJbml0UHJvY0dsb2JhbCh2b2lkKQogCWludAkJCWksCiAJCQkJajsKIAli b29sCQlmb3VuZDsKLQl1aW50MzIJCVRvdGFsUHJvY3MgPSBNYXhCYWNrZW5kcyArIE5VTV9BVVhJ TElBUllfUFJPQ1MgKyBtYXhfcHJlcGFyZWRfeGFjdHM7CisJdWludDMyCQlUb3RhbFByb2NzID0g R2V0TWF4QmFja2VuZHMoR01CX05VTV9BVVhJTElBUllfUFJPQ1MgfCBHTUJfTUFYX1BSRVBBUkVE X1hBQ1RTKTsKIAogCS8qIENyZWF0ZSB0aGUgUHJvY0dsb2JhbCBzaGFyZWQgc3RydWN0dXJlICov CiAJUHJvY0dsb2JhbCA9IChQUk9DX0hEUiAqKQpAQCAtMTk3LDcgKzE5Niw3IEBAIEluaXRQcm9j R2xvYmFsKHZvaWQpCiAJTWVtU2V0KHByb2NzLCAwLCBUb3RhbFByb2NzICogc2l6ZW9mKFBHUFJP QykpOwogCVByb2NHbG9iYWwtPmFsbFByb2NzID0gcHJvY3M7CiAJLyogWFhYIGFsbFByb2NDb3Vu dCBpc24ndCByZWFsbHkgYWxsIG9mIHRoZW07IGl0IGV4Y2x1ZGVzIHByZXBhcmVkIHhhY3RzICov Ci0JUHJvY0dsb2JhbC0+YWxsUHJvY0NvdW50ID0gTWF4QmFja2VuZHMgKyBOVU1fQVVYSUxJQVJZ X1BST0NTOworCVByb2NHbG9iYWwtPmFsbFByb2NDb3VudCA9IEdldE1heEJhY2tlbmRzKEdNQl9O VU1fQVVYSUxJQVJZX1BST0NTKTsKIAogCS8qCiAJICogQWxsb2NhdGUgYXJyYXlzIG1pcnJvcmlu ZyBQR1BST0MgZmllbGRzIGluIGEgZGVuc2UgbWFubmVyLiBTZWUKQEAgLTIyMyw3ICsyMjIsNyBA QCBJbml0UHJvY0dsb2JhbCh2b2lkKQogCQkgKiBkdW1teSBQR1BST0NzIGRvbid0IG5lZWQgdGhl c2UgdGhvdWdoIC0gdGhleSdyZSBuZXZlciBhc3NvY2lhdGVkCiAJCSAqIHdpdGggYSByZWFsIHBy b2Nlc3MKIAkJICovCi0JCWlmIChpIDwgTWF4QmFja2VuZHMgKyBOVU1fQVVYSUxJQVJZX1BST0NT KQorCQlpZiAoaSA8IEdldE1heEJhY2tlbmRzKEdNQl9OVU1fQVVYSUxJQVJZX1BST0NTKSkKIAkJ ewogCQkJcHJvY3NbaV0uc2VtID0gUEdTZW1hcGhvcmVDcmVhdGUoKTsKIAkJCUluaXRTaGFyZWRM YXRjaCgmKHByb2NzW2ldLnByb2NMYXRjaCkpOwpAQCAtMjYwLDcgKzI1OSw3IEBAIEluaXRQcm9j R2xvYmFsKHZvaWQpCiAJCQlQcm9jR2xvYmFsLT5iZ3dvcmtlckZyZWVQcm9jcyA9ICZwcm9jc1tp XTsKIAkJCXByb2NzW2ldLnByb2NnbG9iYWxsaXN0ID0gJlByb2NHbG9iYWwtPmJnd29ya2VyRnJl ZVByb2NzOwogCQl9Ci0JCWVsc2UgaWYgKGkgPCBNYXhCYWNrZW5kcykKKwkJZWxzZSBpZiAoaSA8 IEdldE1heEJhY2tlbmRzKDApKQogCQl7CiAJCQkvKiBQR1BST0MgZm9yIHdhbHNlbmRlciwgYWRk IHRvIHdhbHNlbmRlckZyZWVQcm9jcyBsaXN0ICovCiAJCQlwcm9jc1tpXS5saW5rcy5uZXh0ID0g KFNITV9RVUVVRSAqKSBQcm9jR2xvYmFsLT53YWxzZW5kZXJGcmVlUHJvY3M7CkBAIC0yODgsOCAr Mjg3LDggQEAgSW5pdFByb2NHbG9iYWwodm9pZCkKIAkgKiBTYXZlIHBvaW50ZXJzIHRvIHRoZSBi bG9ja3Mgb2YgUEdQUk9DIHN0cnVjdHVyZXMgcmVzZXJ2ZWQgZm9yIGF1eGlsaWFyeQogCSAqIHBy b2Nlc3NlcyBhbmQgcHJlcGFyZWQgdHJhbnNhY3Rpb25zLgogCSAqLwotCUF1eGlsaWFyeVByb2Nz ID0gJnByb2NzW01heEJhY2tlbmRzXTsKLQlQcmVwYXJlZFhhY3RQcm9jcyA9ICZwcm9jc1tNYXhC YWNrZW5kcyArIE5VTV9BVVhJTElBUllfUFJPQ1NdOworCUF1eGlsaWFyeVByb2NzID0gJnByb2Nz W0dldE1heEJhY2tlbmRzKDApXTsKKwlQcmVwYXJlZFhhY3RQcm9jcyA9ICZwcm9jc1tHZXRNYXhC YWNrZW5kcyhHTUJfTlVNX0FVWElMSUFSWV9QUk9DUyldOwogCiAJLyogQ3JlYXRlIFByb2NTdHJ1 Y3RMb2NrIHNwaW5sb2NrLCB0b28gKi8KIAlQcm9jU3RydWN0TG9jayA9IChzbG9ja190ICopIFNo bWVtQWxsb2Moc2l6ZW9mKHNsb2NrX3QpKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L2FjdGl2aXR5L2JhY2tlbmRfc3RhdHVzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9i YWNrZW5kX3N0YXR1cy5jCmluZGV4IDI5MDFmOWY1YTkuLjRmZjgzNGJiYzUgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L2JhY2tlbmRfc3RhdHVzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWN0aXZpdHkvYmFja2VuZF9zdGF0dXMuYwpAQCAtMzUsNyArMzUsNyBAQAog ICogaW5jbHVkZXMgYXV0b3ZhY3V1bSB3b3JrZXJzIGFuZCBiYWNrZ3JvdW5kIHdvcmtlcnMgYXMg d2VsbC4KICAqIC0tLS0tLS0tLS0KICAqLwotI2RlZmluZSBOdW1CYWNrZW5kU3RhdFNsb3RzIChN YXhCYWNrZW5kcyArIE5VTV9BVVhQUk9DVFlQRVMpCisjZGVmaW5lIE51bUJhY2tlbmRTdGF0U2xv dHMgKEdldE1heEJhY2tlbmRzKDApICsgTlVNX0FVWFBST0NUWVBFUykKIAogCiAvKiAtLS0tLS0t LS0tCkBAIC0yNTEsNyArMjUxLDcgQEAgcGdzdGF0X2JlaW5pdCh2b2lkKQogCS8qIEluaXRpYWxp emUgTXlCRUVudHJ5ICovCiAJaWYgKE15QmFja2VuZElkICE9IEludmFsaWRCYWNrZW5kSWQpCiAJ ewotCQlBc3NlcnQoTXlCYWNrZW5kSWQgPj0gMSAmJiBNeUJhY2tlbmRJZCA8PSBNYXhCYWNrZW5k cyk7CisJCUFzc2VydChNeUJhY2tlbmRJZCA+PSAxICYmIE15QmFja2VuZElkIDw9IEdldE1heEJh Y2tlbmRzKDApKTsKIAkJTXlCRUVudHJ5ID0gJkJhY2tlbmRTdGF0dXNBcnJheVtNeUJhY2tlbmRJ ZCAtIDFdOwogCX0KIAllbHNlCkBAIC0yNjcsNyArMjY3LDcgQEAgcGdzdGF0X2JlaW5pdCh2b2lk KQogCQkgKiBNYXhCYWNrZW5kcyArIEF1eEJhY2tlbmRUeXBlICsgMSBhcyB0aGUgaW5kZXggb2Yg dGhlIHNsb3QgZm9yIGFuCiAJCSAqIGF1eGlsaWFyeSBwcm9jZXNzLgogCQkgKi8KLQkJTXlCRUVu dHJ5ID0gJkJhY2tlbmRTdGF0dXNBcnJheVtNYXhCYWNrZW5kcyArIE15QXV4UHJvY1R5cGVdOwor CQlNeUJFRW50cnkgPSAmQmFja2VuZFN0YXR1c0FycmF5W0dldE1heEJhY2tlbmRzKDApICsgTXlB dXhQcm9jVHlwZV07CiAJfQogCiAJLyogU2V0IHVwIGEgcHJvY2Vzcy1leGl0IGhvb2sgdG8gY2xl YW4gdXAgKi8KQEAgLTg5Miw3ICs4OTIsNyBAQCBwZ3N0YXRfZ2V0X2JhY2tlbmRfY3VycmVudF9h Y3Rpdml0eShpbnQgcGlkLCBib29sIGNoZWNrVXNlcikKIAlpbnQJCQlpOwogCiAJYmVlbnRyeSA9 IEJhY2tlbmRTdGF0dXNBcnJheTsKLQlmb3IgKGkgPSAxOyBpIDw9IE1heEJhY2tlbmRzOyBpKysp CisJZm9yIChpID0gMTsgaSA8PSBHZXRNYXhCYWNrZW5kcygwKTsgaSsrKQogCXsKIAkJLyoKIAkJ ICogQWx0aG91Z2ggd2UgZXhwZWN0IHRoZSB0YXJnZXQgYmFja2VuZCdzIGVudHJ5IHRvIGJlIHN0 YWJsZSwgdGhhdApAQCAtOTc4LDcgKzk3OCw3IEBAIHBnc3RhdF9nZXRfY3Jhc2hlZF9iYWNrZW5k X2FjdGl2aXR5KGludCBwaWQsIGNoYXIgKmJ1ZmZlciwgaW50IGJ1ZmxlbikKIAlpZiAoYmVlbnRy eSA9PSBOVUxMIHx8IEJhY2tlbmRBY3Rpdml0eUJ1ZmZlciA9PSBOVUxMKQogCQlyZXR1cm4gTlVM TDsKIAotCWZvciAoaSA9IDE7IGkgPD0gTWF4QmFja2VuZHM7IGkrKykKKwlmb3IgKGkgPSAxOyBp IDw9IEdldE1heEJhY2tlbmRzKDApOyBpKyspCiAJewogCQlpZiAoYmVlbnRyeS0+c3RfcHJvY3Bp ZCA9PSBwaWQpCiAJCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9sb2NrZnVu Y3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9sb2NrZnVuY3MuYwppbmRleCA1ZGMwYTU4ODJj Li5kMjYyOTY1ODAwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvbG9ja2Z1bmNz LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2xvY2tmdW5jcy5jCkBAIC01NjEsMTEgKzU2 MSwxMSBAQCBwZ19zYWZlX3NuYXBzaG90X2Jsb2NraW5nX3BpZHMoUEdfRlVOQ1RJT05fQVJHUykK IAlEYXR1bQkgICAqYmxvY2tlcl9kYXR1bXM7CiAKIAkvKiBBIGJ1ZmZlciBiaWcgZW5vdWdoIGZv ciBhbnkgcG9zc2libGUgYmxvY2tlciBsaXN0IHdpdGhvdXQgdHJ1bmNhdGlvbiAqLwotCWJsb2Nr ZXJzID0gKGludCAqKSBwYWxsb2MoTWF4QmFja2VuZHMgKiBzaXplb2YoaW50KSk7CisJYmxvY2tl cnMgPSAoaW50ICopIHBhbGxvYyhHZXRNYXhCYWNrZW5kcygwKSAqIHNpemVvZihpbnQpKTsKIAog CS8qIENvbGxlY3QgYSBzbmFwc2hvdCBvZiBwcm9jZXNzZXMgd2FpdGVkIGZvciBieSBHZXRTYWZl U25hcHNob3QgKi8KIAludW1fYmxvY2tlcnMgPQotCQlHZXRTYWZlU25hcHNob3RCbG9ja2luZ1Bp ZHMoYmxvY2tlZF9waWQsIGJsb2NrZXJzLCBNYXhCYWNrZW5kcyk7CisJCUdldFNhZmVTbmFwc2hv dEJsb2NraW5nUGlkcyhibG9ja2VkX3BpZCwgYmxvY2tlcnMsIEdldE1heEJhY2tlbmRzKDApKTsK IAogCS8qIENvbnZlcnQgaW50IGFycmF5IHRvIERhdHVtIGFycmF5ICovCiAJaWYgKG51bV9ibG9j a2VycyA+IDApCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9pbml0L3Bvc3Rpbml0LmMg Yi9zcmMvYmFja2VuZC91dGlscy9pbml0L3Bvc3Rpbml0LmMKaW5kZXggODdkYzA2MGIyMC4uODlh MDNlZGFhYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9wb3N0aW5pdC5jCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvcG9zdGluaXQuYwpAQCAtMjUsNiArMjUsNyBAQAog I2luY2x1ZGUgImFjY2Vzcy9zZXNzaW9uLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3N5c2F0dHIuaCIK ICNpbmNsdWRlICJhY2Nlc3MvdGFibGVhbS5oIgorI2luY2x1ZGUgImFjY2Vzcy90d29waGFzZS5o IgogI2luY2x1ZGUgImFjY2Vzcy94YWN0LmgiCiAjaW5jbHVkZSAiYWNjZXNzL3hsb2cuaCIKICNp bmNsdWRlICJjYXRhbG9nL2NhdGFsb2cuaCIKQEAgLTYzLDYgKzY0LDkgQEAKICNpbmNsdWRlICJ1 dGlscy9zeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL3RpbWVvdXQuaCIKIAorc3RhdGljIGlu dCBNYXhCYWNrZW5kcyA9IDA7CitzdGF0aWMgaW50IE1heEJhY2tlbmRzSW5pdGlhbGl6ZWQgPSBm YWxzZTsKKwogc3RhdGljIEhlYXBUdXBsZSBHZXREYXRhYmFzZVR1cGxlKGNvbnN0IGNoYXIgKmRi bmFtZSk7CiBzdGF0aWMgSGVhcFR1cGxlIEdldERhdGFiYXNlVHVwbGVCeU9pZChPaWQgZGJvaWQp Owogc3RhdGljIHZvaWQgUGVyZm9ybUF1dGhlbnRpY2F0aW9uKFBvcnQgKnBvcnQpOwpAQCAtNDc2 LDkgKzQ4MCw4IEBAIHBnX3NwbGl0X29wdHMoY2hhciAqKmFyZ3YsIGludCAqYXJnY3AsIGNvbnN0 IGNoYXIgKm9wdHN0cikKIC8qCiAgKiBJbml0aWFsaXplIE1heEJhY2tlbmRzIHZhbHVlIGZyb20g Y29uZmlnIG9wdGlvbnMuCiAgKgotICogVGhpcyBtdXN0IGJlIGNhbGxlZCBhZnRlciBtb2R1bGVz IGhhdmUgaGFkIHRoZSBjaGFuY2UgdG8gcmVnaXN0ZXIgYmFja2dyb3VuZAotICogd29ya2VycyBp biBzaGFyZWRfcHJlbG9hZF9saWJyYXJpZXMsIGFuZCBiZWZvcmUgc2hhcmVkIG1lbW9yeSBzaXpl IGlzCi0gKiBkZXRlcm1pbmVkLgorICogVGhpcyBtdXN0IGJlIGNhbGxlZCBhZnRlciBtb2R1bGVz IGhhdmUgaGFkIHRoZSBjaGFuZ2UgdG8gYWx0ZXIgR1VDcyBpbgorICogc2hhcmVkX3ByZWxvYWRf bGlicmFyaWVzLCBhbmQgYmVmb3JlIHNoYXJlZCBtZW1vcnkgc2l6ZSBpcyBkZXRlcm1pbmVkLgog ICoKICAqIE5vdGUgdGhhdCBpbiBFWEVDX0JBQ0tFTkQgZW52aXJvbm1lbnQsIHRoZSB2YWx1ZSBp cyBwYXNzZWQgZG93biBmcm9tCiAgKiBwb3N0bWFzdGVyIHRvIHN1YnByb2Nlc3NlcyB2aWEgQmFj a2VuZFBhcmFtZXRlcnMgaW4gU3ViUG9zdG1hc3Rlck1haW47IG9ubHkKQEAgLTQ4OCwxNSArNDkx LDQxIEBAIHBnX3NwbGl0X29wdHMoY2hhciAqKmFyZ3YsIGludCAqYXJnY3AsIGNvbnN0IGNoYXIg Km9wdHN0cikKIHZvaWQKIEluaXRpYWxpemVNYXhCYWNrZW5kcyh2b2lkKQogewotCUFzc2VydChN YXhCYWNrZW5kcyA9PSAwKTsKLQogCS8qIHRoZSBleHRyYSB1bml0IGFjY291bnRzIGZvciB0aGUg YXV0b3ZhY3V1bSBsYXVuY2hlciAqLwotCU1heEJhY2tlbmRzID0gTWF4Q29ubmVjdGlvbnMgKyBh dXRvdmFjdXVtX21heF93b3JrZXJzICsgMSArCi0JCW1heF93b3JrZXJfcHJvY2Vzc2VzICsgbWF4 X3dhbF9zZW5kZXJzOworCVNldE1heEJhY2tlbmRzKE1heENvbm5lY3Rpb25zICsgYXV0b3ZhY3V1 bV9tYXhfd29ya2VycyArIDEgKworCQltYXhfd29ya2VyX3Byb2Nlc3NlcyArIG1heF93YWxfc2Vu ZGVycyk7Cit9CisKK2ludAorR2V0TWF4QmFja2VuZHModWludDMyIGZsYWdzKQoreworCWludCBy ZXQ7CisKKwlpZiAoIU1heEJhY2tlbmRzSW5pdGlhbGl6ZWQpCisJCWVsb2coRVJST1IsICJNYXhC YWNrZW5kcyBub3QgeWV0IGluaXRpYWxpemVkIik7CisKKwlyZXQgPSBNYXhCYWNrZW5kczsKKwor CWlmIChmbGFncyAmIEdNQl9NQVhfUFJFUEFSRURfWEFDVFMpCisJCXJldCArPSBtYXhfcHJlcGFy ZWRfeGFjdHM7CiAKLQkvKiBpbnRlcm5hbCBlcnJvciBiZWNhdXNlIHRoZSB2YWx1ZXMgd2VyZSBh bGwgY2hlY2tlZCBwcmV2aW91c2x5ICovCi0JaWYgKE1heEJhY2tlbmRzID4gTUFYX0JBQ0tFTkRT KQorCWlmIChmbGFncyAmIEdNQl9OVU1fQVVYSUxJQVJZX1BST0NTKQorCQlyZXQgKz0gTlVNX0FV WElMSUFSWV9QUk9DUzsKKworCXJldHVybiByZXQ7Cit9CisKK3ZvaWQKK1NldE1heEJhY2tlbmRz KGludCBtYXhfYmFja2VuZHMpCit7CisJaWYgKE1heEJhY2tlbmRzSW5pdGlhbGl6ZWQpCisJCWVs b2coRVJST1IsICJNYXhCYWNrZW5kcyBhbHJlYWR5IGluaXRpYWxpemVkIik7CisKKwlpZiAobWF4 X2JhY2tlbmRzID4gTUFYX0JBQ0tFTkRTKQogCQllbG9nKEVSUk9SLCAidG9vIG1hbnkgYmFja2Vu ZHMgY29uZmlndXJlZCIpOworCisJTWF4QmFja2VuZHMgPSBtYXhfYmFja2VuZHM7CisJTWF4QmFj a2VuZHNJbml0aWFsaXplZCA9IHRydWU7CiB9CiAKIC8qCkBAIC01ODUsNyArNjE0LDcgQEAgSW5p dFBvc3RncmVzKGNvbnN0IGNoYXIgKmluX2RibmFtZSwgT2lkIGRib2lkLCBjb25zdCBjaGFyICp1 c2VybmFtZSwKIAogCVNoYXJlZEludmFsQmFja2VuZEluaXQoZmFsc2UpOwogCi0JaWYgKE15QmFj a2VuZElkID4gTWF4QmFja2VuZHMgfHwgTXlCYWNrZW5kSWQgPD0gMCkKKwlpZiAoTXlCYWNrZW5k SWQgPiBHZXRNYXhCYWNrZW5kcygwKSB8fCBNeUJhY2tlbmRJZCA8PSAwKQogCQllbG9nKEZBVEFM LCAiYmFkIGJhY2tlbmQgSUQ6ICVkIiwgTXlCYWNrZW5kSWQpOwogCiAJLyogTm93IHRoYXQgd2Ug aGF2ZSBhIEJhY2tlbmRJZCwgd2UgY2FuIHBhcnRpY2lwYXRlIGluIFByb2NTaWduYWwgKi8KZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL21pc2NhZG1pbi5oIGIvc3JjL2luY2x1ZGUvbWlzY2FkbWlu LmgKaW5kZXggMmUyZTlhMzY0YS4uMjhlNWNlY2FlMCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv bWlzY2FkbWluLmgKKysrIGIvc3JjL2luY2x1ZGUvbWlzY2FkbWluLmgKQEAgLTE3Miw3ICsxNzIs NiBAQCBleHRlcm4gUEdETExJTVBPUlQgY2hhciAqRGF0YURpcjsKIGV4dGVybiBQR0RMTElNUE9S VCBpbnQgZGF0YV9kaXJlY3RvcnlfbW9kZTsKIAogZXh0ZXJuIFBHRExMSU1QT1JUIGludCBOQnVm ZmVyczsKLWV4dGVybiBQR0RMTElNUE9SVCBpbnQgTWF4QmFja2VuZHM7CiBleHRlcm4gUEdETExJ TVBPUlQgaW50IE1heENvbm5lY3Rpb25zOwogZXh0ZXJuIFBHRExMSU1QT1JUIGludCBtYXhfd29y a2VyX3Byb2Nlc3NlczsKIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgbWF4X3BhcmFsbGVsX3dvcmtl cnM7CkBAIC00NTIsOSArNDUxLDIwIEBAIGV4dGVybiBBdXhQcm9jVHlwZSBNeUF1eFByb2NUeXBl OwogICoJCQlQT1NUR1JFUyBpbml0aWFsaXphdGlvbiBhbmQgY2xlYW51cCBkZWZpbml0aW9ucy4g ICAgICAgICAgICAgICAgICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAorLyoKKyAqIE9wdGlv biBmbGFnIGJpdHMgZm9yIEdldE1heEJhY2tlbmRzKCkuCisgKi8KK3R5cGVkZWYgZW51bSBHTUJP cHRpb24KK3sKKwlHTUJfTUFYX1BSRVBBUkVEX1hBQ1RTID0gMSA8PCAwLAkvKiBpbmNsdWRlIG1h eF9wcmVwYXJlZF94YWN0cyAqLworCUdNQl9OVU1fQVVYSUxJQVJZX1BST0NTID0gMSA8PCAxCS8q IGluY2x1ZGUgTlVNX0FVWElMSUFSWV9QUk9DUyAqLworfSBHTUJPcHRpb247CisKIC8qIGluIHV0 aWxzL2luaXQvcG9zdGluaXQuYyAqLwogZXh0ZXJuIHZvaWQgcGdfc3BsaXRfb3B0cyhjaGFyICoq YXJndiwgaW50ICphcmdjcCwgY29uc3QgY2hhciAqb3B0c3RyKTsKIGV4dGVybiB2b2lkIEluaXRp YWxpemVNYXhCYWNrZW5kcyh2b2lkKTsKK2V4dGVybiBpbnQgR2V0TWF4QmFja2VuZHModWludDMy IGZsYWdzKTsKK2V4dGVybiB2b2lkIFNldE1heEJhY2tlbmRzKGludCBtYXhfYmFja2VuZHMpOwog ZXh0ZXJuIHZvaWQgSW5pdFBvc3RncmVzKGNvbnN0IGNoYXIgKmluX2RibmFtZSwgT2lkIGRib2lk LCBjb25zdCBjaGFyICp1c2VybmFtZSwKIAkJCQkJCSBPaWQgdXNlcm9pZCwgY2hhciAqb3V0X2Ri bmFtZSwgYm9vbCBvdmVycmlkZV9hbGxvd19jb25uZWN0aW9ucyk7CiBleHRlcm4gdm9pZCBCYXNl SW5pdCh2b2lkKTsKLS0gCjIuMTYuNgoK --_002_9B2E85FE14BC407A93B74EE2F84BEF05amazoncom_--