Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qrjFx-005d24-Oi for pgsql-hackers@arkaria.postgresql.org; Sat, 14 Oct 2023 18:20:57 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1qrjEv-0080Mz-Ld for pgsql-hackers@arkaria.postgresql.org; Sat, 14 Oct 2023 18:19:54 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qrjEu-0080Mq-UB for pgsql-hackers@lists.postgresql.org; Sat, 14 Oct 2023 18:19:53 +0000 Received: from mail.thelabyrinth.net ([45.56.70.56]) by makus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qrjEm-000ToJ-Af for pgsql-hackers@postgresql.org; Sat, 14 Oct 2023 18:19:52 +0000 Received: from [10.5.0.2] (unknown [193.43.135.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: dsteele) by mail.thelabyrinth.net (Postfix) with ESMTPSA id 44FF35468B for ; Sat, 14 Oct 2023 18:19:43 +0000 (UTC) Content-Type: multipart/mixed; boundary="------------ACJtt8apS0DCLXpvJTrnDgUT" Message-ID: Date: Sat, 14 Oct 2023 14:19:42 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Content-Language: en-US To: Pg Hackers From: David Steele Subject: Rename backup_label to recovery_control List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------ACJtt8apS0DCLXpvJTrnDgUT Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hackers, I was recently discussing the complexities of dealing with pg_control and backup_label with some hackers at PGConf NYC, when David Christensen commented that backup_label was not a very good name since it gives the impression of being informational and therefore something the user can delete. In fact, we see this happen quite a lot, and there have been some other discussions about it recently, see [1] and [2]. I bounced the idea of a rename off various hackers at the conference and in general people seemed to think it was a good idea. Attached is a patch to rename backup_label to recovery_control. The purpose is to make it more obvious that the file should not be deleted. I'm open to other names, e.g. recovery.control. That makes the naming distinct from tablespace_map, which is perhaps a good thing, but is also more likely to be confused with recovery.signal. I did a pretty straight-forward search and replace on comments and documentation with only light editing. If this seems like a good idea and we choose a final name, I'll do a more thorough pass through the comments and docs to try and make the usage more consistent. Note that there is one usage of backup label that remains, i.e. the text that the user can set to describe the backup. Regards, -David [1] https://www.postgresql.org/message-id/1330cb48-4e47-03ca-f2fb-b144b49514d8%40pgmasters.net [2] https://www.postgresql.org/message-id/flat/CAM_vCudkSjr7NsNKSdjwtfAm9dbzepY6beZ5DP177POKy8%3D2aw%40mail.gmail.com#746e492bfcd2667635634f1477a61288 --------------ACJtt8apS0DCLXpvJTrnDgUT Content-Type: text/plain; charset=UTF-8; name="v01-rename-backup-label-to-recovery-control.patch" Content-Disposition: attachment; filename="v01-rename-backup-label-to-recovery-control.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9iYWNrdXAuc2dtbCBiL2RvYy9zcmMvc2dtbC9i YWNrdXAuc2dtbAppbmRleCA4Y2IyNGQ2YWU1NC4uOTU4NzU1ZjllZWUgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9iYWNrdXAuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvYmFja3VwLnNn bWwKQEAgLTkzNyw3ICs5MzcsNyBAQCBTRUxFQ1QgKiBGUk9NIHBnX2JhY2t1cF9zdG9wKHdh aXRfZm9yX2FyY2hpdmUgPT4gdHJ1ZSk7CiAgICAgPHBhcmE+CiAgICAgIDxmdW5jdGlvbj5w Z19iYWNrdXBfc3RvcDwvZnVuY3Rpb24+IHdpbGwgcmV0dXJuIG9uZSByb3cgd2l0aCB0aHJl ZQogICAgICB2YWx1ZXMuIFRoZSBzZWNvbmQgb2YgdGhlc2UgZmllbGRzIHNob3VsZCBiZSB3 cml0dGVuIHRvIGEgZmlsZSBuYW1lZAotICAgICA8ZmlsZW5hbWU+YmFja3VwX2xhYmVsPC9m aWxlbmFtZT4gaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoZSBiYWNrdXAuIFRoZQorICAg ICA8ZmlsZW5hbWU+cmVjb3ZlcnlfY29udHJvbDwvZmlsZW5hbWU+IGluIHRoZSByb290IGRp cmVjdG9yeSBvZiB0aGUgYmFja3VwLiBUaGUKICAgICAgdGhpcmQgZmllbGQgc2hvdWxkIGJl IHdyaXR0ZW4gdG8gYSBmaWxlIG5hbWVkCiAgICAgIDxmaWxlbmFtZT50YWJsZXNwYWNlX21h cDwvZmlsZW5hbWU+IHVubGVzcyB0aGUgZmllbGQgaXMgZW1wdHkuIFRoZXNlIGZpbGVzIGFy ZQogICAgICB2aXRhbCB0byB0aGUgYmFja3VwIHdvcmtpbmcgYW5kIG11c3QgYmUgd3JpdHRl biBieXRlIGZvciBieXRlIHdpdGhvdXQKQEAgLTEwNjIsNyArMTA2Miw3IEBAIFNFTEVDVCAq IEZST00gcGdfYmFja3VwX3N0b3Aod2FpdF9mb3JfYXJjaGl2ZSA9PiB0cnVlKTsKICAgIDwv cGFyYT4KIAogICAgPHBhcmE+Ci0gICAgVGhlIGJhY2t1cCBsYWJlbAorICAgIFRoZSByZWNv dmVyeSBjb250cm9sCiAgICAgZmlsZSBpbmNsdWRlcyB0aGUgbGFiZWwgc3RyaW5nIHlvdSBn YXZlIHRvIDxmdW5jdGlvbj5wZ19iYWNrdXBfc3RhcnQ8L2Z1bmN0aW9uPiwKICAgICBhcyB3 ZWxsIGFzIHRoZSB0aW1lIGF0IHdoaWNoIDxmdW5jdGlvbj5wZ19iYWNrdXBfc3RhcnQ8L2Z1 bmN0aW9uPiB3YXMgcnVuLCBhbmQKICAgICB0aGUgbmFtZSBvZiB0aGUgc3RhcnRpbmcgV0FM IGZpbGUuICBJbiBjYXNlIG9mIGNvbmZ1c2lvbiBpdCBpcyB0aGVyZWZvcmUKZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCmlu ZGV4IGFmZmQxMjU0YmI3Li5iNGYxNTg2MDZjZCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21s L2Z1bmMuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCkBAIC0yNjc2MywxMiAr MjY3NjMsMTIgQEAgTE9HOiAgR3JhbmQgdG90YWw6IDE2NTE5MjAgYnl0ZXMgaW4gMjAxIGJs b2NrczsgNjIyMzYwIGZyZWUgKDg4IGNodW5rcyk7IDEwMjk1NjAKICAgICAgICAgICA8L29w dGlvbmFsPiApCiAgICAgICAgIDxyZXR1cm52YWx1ZT5yZWNvcmQ8L3JldHVybnZhbHVlPgog ICAgICAgICAoIDxwYXJhbWV0ZXI+bHNuPC9wYXJhbWV0ZXI+IDx0eXBlPnBnX2xzbjwvdHlw ZT4sCi0gICAgICAgIDxwYXJhbWV0ZXI+bGFiZWxmaWxlPC9wYXJhbWV0ZXI+IDx0eXBlPnRl eHQ8L3R5cGU+LAorICAgICAgICA8cGFyYW1ldGVyPnJlY292ZXJ5Y3RsZmlsZTwvcGFyYW1l dGVyPiA8dHlwZT50ZXh0PC90eXBlPiwKICAgICAgICAgPHBhcmFtZXRlcj5zcGNtYXBmaWxl PC9wYXJhbWV0ZXI+IDx0eXBlPnRleHQ8L3R5cGU+ICkKICAgICAgICA8L3BhcmE+CiAgICAg ICAgPHBhcmE+CiAgICAgICAgIEZpbmlzaGVzIHBlcmZvcm1pbmcgYW4gb24tbGluZSBiYWNr dXAuICBUaGUgZGVzaXJlZCBjb250ZW50cyBvZiB0aGUKLSAgICAgICAgYmFja3VwIGxhYmVs IGZpbGUgYW5kIHRoZSB0YWJsZXNwYWNlIG1hcCBmaWxlIGFyZSByZXR1cm5lZCBhcyBwYXJ0 IG9mCisgICAgICAgIHJlY292ZXJ5IGNvbnRyb2wgZmlsZSBhbmQgdGhlIHRhYmxlc3BhY2Ug bWFwIGZpbGUgYXJlIHJldHVybmVkIGFzIHBhcnQgb2YKICAgICAgICAgdGhlIHJlc3VsdCBv ZiB0aGUgZnVuY3Rpb24gYW5kIG11c3QgYmUgd3JpdHRlbiB0byBmaWxlcyBpbiB0aGUKICAg ICAgICAgYmFja3VwIGFyZWEuICBUaGVzZSBmaWxlcyBtdXN0IG5vdCBiZSB3cml0dGVuIHRv IHRoZSBsaXZlIGRhdGEgZGlyZWN0b3J5CiAgICAgICAgIChkb2luZyBzbyB3aWxsIGNhdXNl IFBvc3RncmVTUUwgdG8gZmFpbCB0byByZXN0YXJ0IGluIHRoZSBldmVudCBvZiBhCkBAIC0y NjgwMyw3ICsyNjgwMyw3IEBAIExPRzogIEdyYW5kIHRvdGFsOiAxNjUxOTIwIGJ5dGVzIGlu IDIwMSBibG9ja3M7IDYyMjM2MCBmcmVlICg4OCBjaHVua3MpOyAxMDI5NTYwCiAgICAgICAg IFRoZSByZXN1bHQgb2YgdGhlIGZ1bmN0aW9uIGlzIGEgc2luZ2xlIHJlY29yZC4KICAgICAg ICAgVGhlIDxwYXJhbWV0ZXI+bHNuPC9wYXJhbWV0ZXI+IGNvbHVtbiBob2xkcyB0aGUgYmFj a3VwJ3MgZW5kaW5nCiAgICAgICAgIHdyaXRlLWFoZWFkIGxvZyBsb2NhdGlvbiAod2hpY2gg YWdhaW4gY2FuIGJlIGlnbm9yZWQpLiAgVGhlIHNlY29uZAotICAgICAgICBjb2x1bW4gcmV0 dXJucyB0aGUgY29udGVudHMgb2YgdGhlIGJhY2t1cCBsYWJlbCBmaWxlLCBhbmQgdGhlIHRo aXJkCisgICAgICAgIGNvbHVtbiByZXR1cm5zIHRoZSBjb250ZW50cyBvZiB0aGUgcmVjb3Zl cnkgY29udHJvbCBmaWxlLCBhbmQgdGhlIHRoaXJkCiAgICAgICAgIGNvbHVtbiByZXR1cm5z IHRoZSBjb250ZW50cyBvZiB0aGUgdGFibGVzcGFjZSBtYXAgZmlsZS4gIFRoZXNlIG11c3Qg YmUKICAgICAgICAgc3RvcmVkIGFzIHBhcnQgb2YgdGhlIGJhY2t1cCBhbmQgYXJlIHJlcXVp cmVkIGFzIHBhcnQgb2YgdGhlIHJlc3RvcmUKICAgICAgICAgcHJvY2Vzcy4KZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfcmV3aW5kLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVm L3BnX3Jld2luZC5zZ21sCmluZGV4IDhlMDAwMGQzOWZiLi40YWYxOGRhZTU4OSAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9wZ19yZXdpbmQuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcmVmL3BnX3Jld2luZC5zZ21sCkBAIC00MDAsNyArNDAwLDcgQEAgR1JBTlQgRVhFQ1VU RSBPTiBmdW5jdGlvbiBwZ19jYXRhbG9nLnBnX3JlYWRfYmluYXJ5X2ZpbGUodGV4dCwgYmln aW50LCBiaWdpbnQsIGIKICAgICAgIDxmaWxlbmFtZT5wZ19zZXJpYWwvPC9maWxlbmFtZT4s IDxmaWxlbmFtZT5wZ19zbmFwc2hvdHMvPC9maWxlbmFtZT4sCiAgICAgICA8ZmlsZW5hbWU+ cGdfc3RhdF90bXAvPC9maWxlbmFtZT4sIGFuZCA8ZmlsZW5hbWU+cGdfc3VidHJhbnMvPC9m aWxlbmFtZT4KICAgICAgIGFyZSBvbWl0dGVkIGZyb20gdGhlIGRhdGEgY29waWVkIGZyb20g dGhlIHNvdXJjZSBjbHVzdGVyLiBUaGUgZmlsZXMKLSAgICAgIDxmaWxlbmFtZT5iYWNrdXBf bGFiZWw8L2ZpbGVuYW1lPiwKKyAgICAgIDxmaWxlbmFtZT5yZWNvdmVyeV9jb250cm9sPC9m aWxlbmFtZT4sCiAgICAgICA8ZmlsZW5hbWU+dGFibGVzcGFjZV9tYXA8L2ZpbGVuYW1lPiwK ICAgICAgIDxmaWxlbmFtZT5wZ19pbnRlcm5hbC5pbml0PC9maWxlbmFtZT4sCiAgICAgICA8 ZmlsZW5hbWU+cG9zdG1hc3Rlci5vcHRzPC9maWxlbmFtZT4sIGFuZApAQCAtNDEwLDcgKzQx MCw3IEBAIEdSQU5UIEVYRUNVVEUgT04gZnVuY3Rpb24gcGdfY2F0YWxvZy5wZ19yZWFkX2Jp bmFyeV9maWxlKHRleHQsIGJpZ2ludCwgYmlnaW50LCBiCiAgICAgPC9zdGVwPgogICAgIDxz dGVwPgogICAgICA8cGFyYT4KLSAgICAgIENyZWF0ZSBhIDxmaWxlbmFtZT5iYWNrdXBfbGFi ZWw8L2ZpbGVuYW1lPiBmaWxlIHRvIGJlZ2luIFdBTCByZXBsYXkgYXQKKyAgICAgIENyZWF0 ZSBhIDxmaWxlbmFtZT5yZWNvdmVyeV9jb250cm9sPC9maWxlbmFtZT4gZmlsZSB0byBiZWdp biBXQUwgcmVwbGF5IGF0CiAgICAgICB0aGUgY2hlY2twb2ludCBjcmVhdGVkIGF0IGZhaWxv dmVyIGFuZCBjb25maWd1cmUgdGhlCiAgICAgICA8ZmlsZW5hbWU+cGdfY29udHJvbDwvZmls ZW5hbWU+IGZpbGUgd2l0aCBhIG1pbmltdW0gY29uc2lzdGVuY3kgTFNOCiAgICAgICBkZWZp bmVkIGFzIHRoZSByZXN1bHQgb2YgPGxpdGVyYWw+cGdfY3VycmVudF93YWxfaW5zZXJ0X2xz bigpPC9saXRlcmFsPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0v eGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCmluZGV4IGMwZTRj YTUwODk5Li41MTAxNjhmYjI4MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3Ry YW5zYW0veGxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYwpA QCAtNTE5OSw4ICs1MTk5LDggQEAgU3RhcnR1cFhMT0codm9pZCkKIAkvKgogCSAqIFByZXBh cmUgZm9yIFdBTCByZWNvdmVyeSBpZiBuZWVkZWQuCiAJICoKLQkgKiBJbml0V2FsUmVjb3Zl cnkgYW5hbHl6ZXMgdGhlIGNvbnRyb2wgZmlsZSBhbmQgdGhlIGJhY2t1cCBsYWJlbCBmaWxl LCBpZgotCSAqIGFueS4gIEl0IHVwZGF0ZXMgdGhlIGluLW1lbW9yeSBDb250cm9sRmlsZSBi dWZmZXIgYWNjb3JkaW5nIHRvIHRoZQorCSAqIEluaXRXYWxSZWNvdmVyeSBhbmFseXplcyB0 aGUgY29udHJvbCBmaWxlIGFuZCB0aGUgcmVjb3ZlcnlfY29udHJvbCBmaWxlLAorCSAqIGlm IGFueS4gIEl0IHVwZGF0ZXMgdGhlIGluLW1lbW9yeSBDb250cm9sRmlsZSBidWZmZXIgYWNj b3JkaW5nIHRvIHRoZQogCSAqIHN0YXJ0aW5nIGNoZWNrcG9pbnQsIGFuZCBzZXRzIEluUmVj b3ZlcnkgYW5kIEFyY2hpdmVSZWNvdmVyeVJlcXVlc3RlZC4KIAkgKiBJdCBhbHNvIGFwcGxp ZXMgdGhlIHRhYmxlc3BhY2UgbWFwIGZpbGUsIGlmIGFueS4KIAkgKi8KQEAgLTUzNDksNyAr NTM0OSw3IEBAIFN0YXJ0dXBYTE9HKHZvaWQpCiAJCVVwZGF0ZUNvbnRyb2xGaWxlKCk7CiAK IAkJLyoKLQkJICogSWYgdGhlcmUgd2FzIGEgYmFja3VwIGxhYmVsIGZpbGUsIGl0J3MgZG9u ZSBpdHMgam9iIGFuZCB0aGUgaW5mbworCQkgKiBJZiB0aGVyZSB3YXMgYSByZWNvdmVyeSBj b250cm9sIGZpbGUsIGl0J3MgZG9uZSBpdHMgam9iIGFuZCB0aGUgaW5mbwogCQkgKiBoYXMg bm93IGJlZW4gcHJvcGFnYXRlZCBpbnRvIHBnX2NvbnRyb2wuICBXZSBtdXN0IGdldCByaWQg b2YgdGhlCiAJCSAqIGxhYmVsIGZpbGUgc28gdGhhdCBpZiB3ZSBjcmFzaCBkdXJpbmcgcmVj b3ZlcnksIHdlJ2xsIHBpY2sgdXAgYXQKIAkJICogdGhlIGxhdGVzdCByZWNvdmVyeSByZXN0 YXJ0cG9pbnQgaW5zdGVhZCBvZiBnb2luZyBhbGwgdGhlIHdheSBiYWNrCkBAIC01MzU4LDgg KzUzNTgsOCBAQCBTdGFydHVwWExPRyh2b2lkKQogCQkgKi8KIAkJaWYgKGhhdmVCYWNrdXBM YWJlbCkKIAkJewotCQkJdW5saW5rKEJBQ0tVUF9MQUJFTF9PTEQpOwotCQkJZHVyYWJsZV9y ZW5hbWUoQkFDS1VQX0xBQkVMX0ZJTEUsIEJBQ0tVUF9MQUJFTF9PTEQsIEZBVEFMKTsKKwkJ CXVubGluayhSRUNPVkVSWV9DT05UUk9MX09MRCk7CisJCQlkdXJhYmxlX3JlbmFtZShSRUNP VkVSWV9DT05UUk9MX0ZJTEUsIFJFQ09WRVJZX0NPTlRST0xfT0xELCBGQVRBTCk7CiAJCX0K IAogCQkvKgpAQCAtNTUxMiw3ICs1NTEyLDcgQEAgU3RhcnR1cFhMT0codm9pZCkKIAkgKiBi YWNrdXAtZnJvbS1yZXBsaWNhICh3aGljaCBjYW4ndCBpbmplY3QgcmVjb3JkcyBpbnRvIHRo ZSBXQUwgc3RyZWFtKSwKIAkgKiB0aGF0IHBvaW50IGlzIHdoZW4gd2UgcmVhY2ggdGhlIG1p blJlY292ZXJ5UG9pbnQgaW4gcGdfY29udHJvbCAod2hpY2gKIAkgKiB3ZSBwdXJwb3NlZnVs bHkgY29weSBsYXN0IHdoZW4gYmFja2luZyB1cCBmcm9tIGEgcmVwbGljYSkuICBGb3IKLQkg KiBwZ19yZXdpbmQgKHdoaWNoIGNyZWF0ZXMgYSBiYWNrdXBfbGFiZWwgd2l0aCBhIG1ldGhv ZCBvZiAicGdfcmV3aW5kIikKKwkgKiBwZ19yZXdpbmQgKHdoaWNoIGNyZWF0ZXMgYSByZWNv dmVyeV9jb250cm9sIHdpdGggYSBtZXRob2Qgb2YgInBnX3Jld2luZCIpCiAJICogb3Igc25h cHNob3Qtc3R5bGUgYmFja3VwcyAod2hpY2ggZG9uJ3QpLCBiYWNrdXBFbmRSZXF1aXJlZCB3 aWxsIGJlIHNldAogCSAqIHRvIGZhbHNlLgogCSAqCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvdHJhbnNhbS94bG9nYmFja3VwLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJh bnNhbS94bG9nYmFja3VwLmMKaW5kZXggMjFkNjgxMzNhZTEuLjhhMDQ2YjRlZDQ4IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nYmFja3VwLmMKKysrIGIv c3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ2JhY2t1cC5jCkBAIC0xOCwxMCArMTgs MTAgQEAKICNpbmNsdWRlICJhY2Nlc3MveGxvZ2JhY2t1cC5oIgogCiAvKgotICogQnVpbGQg Y29udGVudHMgZm9yIGJhY2t1cF9sYWJlbCBvciBiYWNrdXAgaGlzdG9yeSBmaWxlLgorICog QnVpbGQgY29udGVudHMgZm9yIHJlY292ZXJ5X2NvbnRyb2wgb3IgYmFja3VwIGhpc3Rvcnkg ZmlsZS4KICAqCiAgKiBXaGVuIGlzaGlzdG9yeWZpbGUgaXMgdHJ1ZSwgaXQgY3JlYXRlcyB0 aGUgY29udGVudHMgZm9yIGEgYmFja3VwIGhpc3RvcnkKLSAqIGZpbGUsIG90aGVyd2lzZSBp dCBjcmVhdGVzIGNvbnRlbnRzIGZvciBhIGJhY2t1cF9sYWJlbCBmaWxlLgorICogZmlsZSwg b3RoZXJ3aXNlIGl0IGNyZWF0ZXMgY29udGVudHMgZm9yIGEgcmVjb3ZlcnlfY29udHJvbCBm aWxlLgogICoKICAqIFJldHVybnMgdGhlIHJlc3VsdCBnZW5lcmF0ZWQgYXMgYSBwYWxsb2Mn ZCBzdHJpbmcuCiAgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2Ft L3hsb2dmdW5jcy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ2Z1bmNzLmMK aW5kZXggNDVhNzA2NjhiMWMuLjUwODliYzQ0ZDBiIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvdHJhbnNhbS94bG9nZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv dHJhbnNhbS94bG9nZnVuY3MuYwpAQCAtNTMsNyArNTMsNyBAQCBzdGF0aWMgTWVtb3J5Q29u dGV4dCBiYWNrdXBjb250ZXh0ID0gTlVMTDsKICAqIHBnX2JhY2t1cF9zdGFydDogc2V0IHVw IGZvciB0YWtpbmcgYW4gb24tbGluZSBiYWNrdXAgZHVtcAogICoKICAqIEVzc2VudGlhbGx5 IHdoYXQgdGhpcyBkb2VzIGlzIHRvIGNyZWF0ZSB0aGUgY29udGVudHMgcmVxdWlyZWQgZm9y IHRoZQotICogYmFja3VwX2xhYmVsIGZpbGUgYW5kIHRoZSB0YWJsZXNwYWNlIG1hcC4KKyAq IHJlY292ZXJ5X2NvbnRyb2wgZmlsZSBhbmQgdGhlIHRhYmxlc3BhY2UgbWFwLgogICoKICAq IFBlcm1pc3Npb24gY2hlY2tpbmcgZm9yIHRoaXMgZnVuY3Rpb24gaXMgbWFuYWdlZCB0aHJv dWdoIHRoZSBub3JtYWwKICAqIEdSQU5UIHN5c3RlbS4KQEAgLTExMywxMyArMTEzLDE0IEBA IHBnX2JhY2t1cF9zdGFydChQR19GVU5DVElPTl9BUkdTKQogICogYWxsb3dzIHRoZSB1c2Vy IHRvIGNob29zZSBpZiB0aGV5IHdhbnQgdG8gd2FpdCBmb3IgdGhlIFdBTCB0byBiZSBhcmNo aXZlZAogICogb3IgaWYgd2Ugc2hvdWxkIGp1c3QgcmV0dXJuIGFzIHNvb24gYXMgdGhlIFdB TCByZWNvcmQgaXMgd3JpdHRlbi4KICAqCi0gKiBUaGlzIGZ1bmN0aW9uIHN0b3BzIGFuIGlu LXByb2dyZXNzIGJhY2t1cCwgY3JlYXRlcyBiYWNrdXBfbGFiZWwgY29udGVudHMgYW5kCi0g KiBpdCByZXR1cm5zIHRoZSBiYWNrdXAgc3RvcCBMU04sIGJhY2t1cF9sYWJlbCBhbmQgdGFi bGVzcGFjZV9tYXAgY29udGVudHMuCisgKiBUaGlzIGZ1bmN0aW9uIHN0b3BzIGFuIGluLXBy b2dyZXNzIGJhY2t1cCwgY3JlYXRlcyByZWNvdmVyeV9jb250cm9sIGNvbnRlbnRzCisgKiBh bmQgaXQgcmV0dXJucyB0aGUgYmFja3VwIHN0b3AgTFNOLCByZWNvdmVyeV9jb250cm9sIGFu ZCB0YWJsZXNwYWNlX21hcAorICogY29udGVudHMuCiAgKgotICogVGhlIGJhY2t1cF9sYWJl bCBjb250YWlucyB0aGUgdXNlci1zdXBwbGllZCBsYWJlbCBzdHJpbmcgKHR5cGljYWxseSB0 aGlzCisgKiByZWNvdmVyeV9jb250cm9sIGNvbnRhaW5zIHRoZSB1c2VyLXN1cHBsaWVkIGxh YmVsIHN0cmluZyAodHlwaWNhbGx5IHRoaXMKICAqIHdvdWxkIGJlIHVzZWQgdG8gdGVsbCB3 aGVyZSB0aGUgYmFja3VwIGR1bXAgd2lsbCBiZSBzdG9yZWQpLCB0aGUgc3RhcnRpbmcKICAq IHRpbWUsIHN0YXJ0aW5nIFdBTCBsb2NhdGlvbiBmb3IgdGhlIGR1bXAgYW5kIHNvIG9uLiAg SXQgaXMgdGhlIGNhbGxlcidzCi0gKiByZXNwb25zaWJpbGl0eSB0byB3cml0ZSB0aGUgYmFj a3VwX2xhYmVsIGFuZCB0YWJsZXNwYWNlX21hcCBmaWxlcyBpbiB0aGUKKyAqIHJlc3BvbnNp YmlsaXR5IHRvIHdyaXRlIHJlY292ZXJ5X2NvbnRyb2wgYW5kIHRhYmxlc3BhY2VfbWFwIGZp bGVzIGluIHRoZQogICogZGF0YSBmb2xkZXIgdGhhdCB3aWxsIGJlIHJlc3RvcmVkIGZyb20g dGhpcyBiYWNrdXAuCiAgKgogICogUGVybWlzc2lvbiBjaGVja2luZyBmb3IgdGhpcyBmdW5j dGlvbiBpcyBtYW5hZ2VkIHRocm91Z2ggdGhlIG5vcm1hbApAQCAtMTMzLDcgKzEzNCw3IEBA IHBnX2JhY2t1cF9zdG9wKFBHX0ZVTkNUSU9OX0FSR1MpCiAJRGF0dW0JCXZhbHVlc1tQR19C QUNLVVBfU1RPUF9WMl9DT0xTXSA9IHswfTsKIAlib29sCQludWxsc1tQR19CQUNLVVBfU1RP UF9WMl9DT0xTXSA9IHswfTsKIAlib29sCQl3YWl0Zm9yYXJjaGl2ZSA9IFBHX0dFVEFSR19C T09MKDApOwotCWNoYXIJICAgKmJhY2t1cF9sYWJlbDsKKwljaGFyCSAgICpyZWNvdmVyeV9j b250cm9sOwogCVNlc3Npb25CYWNrdXBTdGF0ZSBzdGF0dXMgPSBnZXRfYmFja3VwX3N0YXR1 cygpOwogCiAJLyogSW5pdGlhbGl6ZSBhdHRyaWJ1dGVzIGluZm9ybWF0aW9uIGluIHRoZSB0 dXBsZSBkZXNjcmlwdG9yICovCkBAIC0xNTIsMTUgKzE1MywxNSBAQCBwZ19iYWNrdXBfc3Rv cChQR19GVU5DVElPTl9BUkdTKQogCS8qIFN0b3AgdGhlIGJhY2t1cCAqLwogCWRvX3BnX2Jh Y2t1cF9zdG9wKGJhY2t1cF9zdGF0ZSwgd2FpdGZvcmFyY2hpdmUpOwogCi0JLyogQnVpbGQg dGhlIGNvbnRlbnRzIG9mIGJhY2t1cF9sYWJlbCAqLwotCWJhY2t1cF9sYWJlbCA9IGJ1aWxk X2JhY2t1cF9jb250ZW50KGJhY2t1cF9zdGF0ZSwgZmFsc2UpOworCS8qIEJ1aWxkIHRoZSBj b250ZW50cyBvZiByZWNvdmVyeV9jb250cm9sICovCisJcmVjb3ZlcnlfY29udHJvbCA9IGJ1 aWxkX2JhY2t1cF9jb250ZW50KGJhY2t1cF9zdGF0ZSwgZmFsc2UpOwogCiAJdmFsdWVzWzBd ID0gTFNOR2V0RGF0dW0oYmFja3VwX3N0YXRlLT5zdG9wcG9pbnQpOwotCXZhbHVlc1sxXSA9 IENTdHJpbmdHZXRUZXh0RGF0dW0oYmFja3VwX2xhYmVsKTsKKwl2YWx1ZXNbMV0gPSBDU3Ry aW5nR2V0VGV4dERhdHVtKHJlY292ZXJ5X2NvbnRyb2wpOwogCXZhbHVlc1syXSA9IENTdHJp bmdHZXRUZXh0RGF0dW0odGFibGVzcGFjZV9tYXAtPmRhdGEpOwogCiAJLyogRGVhbGxvY2F0 ZSBiYWNrdXAtcmVsYXRlZCB2YXJpYWJsZXMgKi8KLQlwZnJlZShiYWNrdXBfbGFiZWwpOwor CXBmcmVlKHJlY292ZXJ5X2NvbnRyb2wpOwogCiAJLyogQ2xlYW4gdXAgdGhlIHNlc3Npb24t bGV2ZWwgc3RhdGUgYW5kIGl0cyBtZW1vcnkgY29udGV4dCAqLwogCWJhY2t1cF9zdGF0ZSA9 IE5VTEw7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9ncmVj b3ZlcnkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jCmlu ZGV4IGJlY2MyYmRhNjJlLi5mYjZjNDNkN2JkOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv YWNjZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNz L3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMKQEAgLTYsNyArNiw3IEBACiAgKiBUaGlzIHNvdXJj ZSBmaWxlIGNvbnRhaW5zIGZ1bmN0aW9ucyBjb250cm9sbGluZyBXQUwgcmVjb3ZlcnkuCiAg KiBJbml0V2FsUmVjb3ZlcnkoKSBpbml0aWFsaXplcyB0aGUgc3lzdGVtIGZvciBjcmFzaCBv ciBhcmNoaXZlIHJlY292ZXJ5LAogICogb3Igc3RhbmRieSBtb2RlLCBkZXBlbmRpbmcgb24g Y29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCB0aGUgc3RhdGUgb2YKLSAqIHRoZSBjb250cm9s IGZpbGUgYW5kIHBvc3NpYmxlIGJhY2t1cCBsYWJlbCBmaWxlLiAgUGVyZm9ybVdhbFJlY292 ZXJ5KCkKKyAqIHRoZSBjb250cm9sIGZpbGUgYW5kIHBvc3NpYmxlIHJlY292ZXJ5IGNvbnRy b2wgZmlsZS4gIFBlcmZvcm1XYWxSZWNvdmVyeSgpCiAgKiBwZXJmb3JtcyB0aGUgYWN0dWFs IFdBTCByZXBsYXksIGNhbGxpbmcgdGhlIHJtZ3Itc3BlY2lmaWMgcmVkbyByb3V0aW5lcy4K ICAqIEZpbmlzaFdhbFJlY292ZXJ5KCkgcGVyZm9ybXMgZW5kLW9mLXJlY292ZXJ5IGNoZWNr cyBhbmQgY2xlYW51cCBhY3Rpb25zLAogICogYW5kIHByZXBhcmVzIGluZm9ybWF0aW9uIG5l ZWRlZCB0byBpbml0aWFsaXplIHRoZSBXQUwgZm9yIHdyaXRlcy4gIEluCkBAIC0xNTIsMTAg KzE1MiwxMCBAQCBzdGF0aWMgYm9vbCByZWNvdmVyeV9zaWduYWxfZmlsZV9mb3VuZCA9IGZh bHNlOwogCiAvKgogICogQ2hlY2tQb2ludExvYyBpcyB0aGUgcG9zaXRpb24gb2YgdGhlIGNo ZWNrcG9pbnQgcmVjb3JkIHRoYXQgZGV0ZXJtaW5lcwotICogd2hlcmUgdG8gc3RhcnQgdGhl IHJlcGxheS4gIEl0IGNvbWVzIGZyb20gdGhlIGJhY2t1cCBsYWJlbCBmaWxlIG9yIHRoZQor ICogd2hlcmUgdG8gc3RhcnQgdGhlIHJlcGxheS4gIEl0IGNvbWVzIGZyb20gdGhlIHJlY292 ZXJ5IGNvbnRyb2wgZmlsZSBvciB0aGUKICAqIGNvbnRyb2wgZmlsZS4KICAqCi0gKiBSZWRv U3RhcnRMU04gaXMgdGhlIGNoZWNrcG9pbnQncyBSRURPIGxvY2F0aW9uLCBhbHNvIGZyb20g dGhlIGJhY2t1cCBsYWJlbAorICogUmVkb1N0YXJ0TFNOIGlzIHRoZSBjaGVja3BvaW50J3Mg UkVETyBsb2NhdGlvbiwgYWxzbyBmcm9tIHRoZSByZWNvdmVyeSBjb250cm9sCiAgKiBmaWxl IG9yIHRoZSBjb250cm9sIGZpbGUuICBJbiBzdGFuZGJ5IG1vZGUsIFhMT0cgc3RyZWFtaW5n IHVzdWFsbHkgc3RhcnRzCiAgKiBmcm9tIHRoZSBwb3NpdGlvbiB3aGVyZSBhbiBpbnZhbGlk IHJlY29yZCB3YXMgZm91bmQuICBCdXQgaWYgd2UgZmFpbCB0bwogICogcmVhZCBldmVuIHRo ZSBpbml0aWFsIGNoZWNrcG9pbnQgcmVjb3JkLCB3ZSB1c2UgdGhlIFJFRE8gbG9jYXRpb24g aW5zdGVhZApAQCAtMzg4LDkgKzM4OCwxMCBAQCBzdGF0aWMgdm9pZCBBcHBseVdhbFJlY29y ZChYTG9nUmVhZGVyU3RhdGUgKnhsb2dyZWFkZXIsIFhMb2dSZWNvcmQgKnJlY29yZCwgVGlt ZQogc3RhdGljIHZvaWQgRW5hYmxlU3RhbmRieU1vZGUodm9pZCk7CiBzdGF0aWMgdm9pZCBy ZWFkUmVjb3ZlcnlTaWduYWxGaWxlKHZvaWQpOwogc3RhdGljIHZvaWQgdmFsaWRhdGVSZWNv dmVyeVBhcmFtZXRlcnModm9pZCk7Ci1zdGF0aWMgYm9vbCByZWFkX2JhY2t1cF9sYWJlbChY TG9nUmVjUHRyICpjaGVja1BvaW50TG9jLAotCQkJCQkJCSAgVGltZUxpbmVJRCAqYmFja3Vw TGFiZWxUTEksCi0JCQkJCQkJICBib29sICpiYWNrdXBFbmRSZXF1aXJlZCwgYm9vbCAqYmFj a3VwRnJvbVN0YW5kYnkpOworc3RhdGljIGJvb2wgcmVhZF9yZWNvdmVyeV9jb250cm9sKFhM b2dSZWNQdHIgKmNoZWNrUG9pbnRMb2MsCisJCQkJCQkJICAgICAgVGltZUxpbmVJRCAqYmFj a3VwTGFiZWxUTEksCisJCQkJCQkJICAgICAgYm9vbCAqYmFja3VwRW5kUmVxdWlyZWQsCisJ CQkJCQkJCSAgYm9vbCAqYmFja3VwRnJvbVN0YW5kYnkpOwogc3RhdGljIGJvb2wgcmVhZF90 YWJsZXNwYWNlX21hcChMaXN0ICoqdGFibGVzcGFjZXMpOwogCiBzdGF0aWMgdm9pZCB4bG9n cmVjb3ZlcnlfcmVkbyhYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCwgVGltZUxpbmVJRCByZXBs YXlUTEkpOwpAQCAtNDkyLDcgKzQ5Myw3IEBAIEVuYWJsZVN0YW5kYnlNb2RlKHZvaWQpCiAg KiBQcmVwYXJlIHRoZSBzeXN0ZW0gZm9yIFdBTCByZWNvdmVyeSwgaWYgbmVlZGVkLgogICoK ICAqIFRoaXMgaXMgY2FsbGVkIGJ5IFN0YXJ0dXBYTE9HKCkgd2hpY2ggY29vcmRpbmF0ZXMg dGhlIHNlcnZlciBzdGFydHVwCi0gKiBzZXF1ZW5jZS4gIFRoaXMgZnVuY3Rpb24gYW5hbHl6 ZXMgdGhlIGNvbnRyb2wgZmlsZSBhbmQgdGhlIGJhY2t1cCBsYWJlbAorICogc2VxdWVuY2Uu ICBUaGlzIGZ1bmN0aW9uIGFuYWx5emVzIHRoZSBjb250cm9sIGZpbGUgYW5kIHJlY292ZXJ5 IGNvbnRyb2wKICAqIGZpbGUsIGlmIGFueSwgYW5kIGZpZ3VyZXMgb3V0IHdoZXRoZXIgd2Ug bmVlZCB0byBwZXJmb3JtIGNyYXNoIHJlY292ZXJ5IG9yCiAgKiBhcmNoaXZlIHJlY292ZXJ5 LCBhbmQgaG93IGZhciB3ZSBuZWVkIHRvIHJlcGxheSB0aGUgV0FMIHRvIHJlYWNoIGEKICAq IGNvbnNpc3RlbnQgc3RhdGUuCkBAIC02MDksMTMgKzYxMCwxMyBAQCBJbml0V2FsUmVjb3Zl cnkoQ29udHJvbEZpbGVEYXRhICpDb250cm9sRmlsZSwgYm9vbCAqd2FzU2h1dGRvd25fcHRy LAogCXJlcGxheV9pbWFnZV9tYXNrZWQgPSAoY2hhciAqKSBwYWxsb2MoQkxDS1NaKTsKIAlw cmltYXJ5X2ltYWdlX21hc2tlZCA9IChjaGFyICopIHBhbGxvYyhCTENLU1opOwogCi0JaWYg KHJlYWRfYmFja3VwX2xhYmVsKCZDaGVja1BvaW50TG9jLCAmQ2hlY2tQb2ludFRMSSwgJmJh Y2t1cEVuZFJlcXVpcmVkLAotCQkJCQkJICAmYmFja3VwRnJvbVN0YW5kYnkpKQorCWlmIChy ZWFkX3JlY292ZXJ5X2NvbnRyb2woJkNoZWNrUG9pbnRMb2MsICZDaGVja1BvaW50VExJLAor CQkJCQkJCSAgJmJhY2t1cEVuZFJlcXVpcmVkLCAmYmFja3VwRnJvbVN0YW5kYnkpKQogCXsK IAkJTGlzdAkgICAqdGFibGVzcGFjZXMgPSBOSUw7CiAKIAkJLyoKLQkJICogQXJjaGl2ZSBy ZWNvdmVyeSB3YXMgcmVxdWVzdGVkLCBhbmQgdGhhbmtzIHRvIHRoZSBiYWNrdXAgbGFiZWwK KwkJICogQXJjaGl2ZSByZWNvdmVyeSB3YXMgcmVxdWVzdGVkLCBhbmQgdGhhbmtzIHRvIHRo ZSByZWNvdmVyeSBjb250cm9sCiAJCSAqIGZpbGUsIHdlIGtub3cgaG93IGZhciB3ZSBuZWVk IHRvIHJlcGxheSB0byByZWFjaCBjb25zaXN0ZW5jeS4gRW50ZXIKIAkJICogYXJjaGl2ZSBy ZWNvdmVyeSBkaXJlY3RseS4KIAkJICovCkBAIC02MjQsNyArNjI1LDcgQEAgSW5pdFdhbFJl Y292ZXJ5KENvbnRyb2xGaWxlRGF0YSAqQ29udHJvbEZpbGUsIGJvb2wgKndhc1NodXRkb3du X3B0ciwKIAkJCUVuYWJsZVN0YW5kYnlNb2RlKCk7CiAKIAkJLyoKLQkJICogV2hlbiBhIGJh Y2t1cF9sYWJlbCBmaWxlIGlzIHByZXNlbnQsIHdlIHdhbnQgdG8gcm9sbCBmb3J3YXJkIGZy b20KKwkJICogV2hlbiBhIHJlY292ZXJ5X2NvbnRyb2wgZmlsZSBpcyBwcmVzZW50LCB3ZSB3 YW50IHRvIHJvbGwgZm9yd2FyZCBmcm9tCiAJCSAqIHRoZSBjaGVja3BvaW50IGl0IGlkZW50 aWZpZXMsIHJhdGhlciB0aGFuIHVzaW5nIHBnX2NvbnRyb2wuCiAJCSAqLwogCQlyZWNvcmQg PSBSZWFkQ2hlY2twb2ludFJlY29yZCh4bG9ncHJlZmV0Y2hlciwgQ2hlY2tQb2ludExvYywK QEAgLTY0MSw3ICs2NDIsNyBAQCBJbml0V2FsUmVjb3ZlcnkoQ29udHJvbEZpbGVEYXRhICpD b250cm9sRmlsZSwgYm9vbCAqd2FzU2h1dGRvd25fcHRyLAogCQkJLyoKIAkJCSAqIE1ha2Ug c3VyZSB0aGF0IFJFRE8gbG9jYXRpb24gZXhpc3RzLiBUaGlzIG1heSBub3QgYmUgdGhlIGNh c2UKIAkJCSAqIGlmIHRoZXJlIHdhcyBhIGNyYXNoIGR1cmluZyBhbiBvbmxpbmUgYmFja3Vw LCB3aGljaCBsZWZ0IGEKLQkJCSAqIGJhY2t1cF9sYWJlbCBhcm91bmQgdGhhdCByZWZlcmVu Y2VzIGEgV0FMIHNlZ21lbnQgdGhhdCdzCisJCQkgKiByZWNvdmVyeV9jb250cm9sIGFyb3Vu ZCB0aGF0IHJlZmVyZW5jZXMgYSBXQUwgc2VnbWVudCB0aGF0J3MKIAkJCSAqIGFscmVhZHkg YmVlbiBhcmNoaXZlZC4KIAkJCSAqLwogCQkJaWYgKGNoZWNrUG9pbnQucmVkbyA8IENoZWNr UG9pbnRMb2MpCkBAIC02NTIsOCArNjUzLDggQEAgSW5pdFdhbFJlY292ZXJ5KENvbnRyb2xG aWxlRGF0YSAqQ29udHJvbEZpbGUsIGJvb2wgKndhc1NodXRkb3duX3B0ciwKIAkJCQkJZXJl cG9ydChGQVRBTCwKIAkJCQkJCQkoZXJybXNnKCJjb3VsZCBub3QgZmluZCByZWRvIGxvY2F0 aW9uIHJlZmVyZW5jZWQgYnkgY2hlY2twb2ludCByZWNvcmQiKSwKIAkJCQkJCQkgZXJyaGlu dCgiSWYgeW91IGFyZSByZXN0b3JpbmcgZnJvbSBhIGJhY2t1cCwgdG91Y2ggXCIlcy9yZWNv dmVyeS5zaWduYWxcIiBhbmQgYWRkIHJlcXVpcmVkIHJlY292ZXJ5IG9wdGlvbnMuXG4iCi0J CQkJCQkJCQkgIklmIHlvdSBhcmUgbm90IHJlc3RvcmluZyBmcm9tIGEgYmFja3VwLCB0cnkg cmVtb3ZpbmcgdGhlIGZpbGUgXCIlcy9iYWNrdXBfbGFiZWxcIi5cbiIKLQkJCQkJCQkJCSAi QmUgY2FyZWZ1bDogcmVtb3ZpbmcgXCIlcy9iYWNrdXBfbGFiZWxcIiB3aWxsIHJlc3VsdCBp biBhIGNvcnJ1cHQgY2x1c3RlciBpZiByZXN0b3JpbmcgZnJvbSBhIGJhY2t1cC4iLAorCQkJ CQkJCQkJICJJZiB5b3UgYXJlIG5vdCByZXN0b3JpbmcgZnJvbSBhIGJhY2t1cCwgdHJ5IHJl bW92aW5nIHRoZSBmaWxlIFwiJXMvcmVjb3ZlcnlfY29udHJvbFwiLlxuIgorCQkJCQkJCQkJ ICJCZSBjYXJlZnVsOiByZW1vdmluZyBcIiVzL3JlY292ZXJ5X2NvbnRyb2xcIiB3aWxsIHJl c3VsdCBpbiBhIGNvcnJ1cHQgY2x1c3RlciBpZiByZXN0b3JpbmcgZnJvbSBhIGJhY2t1cC4i LAogCQkJCQkJCQkJIERhdGFEaXIsIERhdGFEaXIsIERhdGFEaXIpKSk7CiAJCQl9CiAJCX0K QEAgLTY2Miw4ICs2NjMsOCBAQCBJbml0V2FsUmVjb3ZlcnkoQ29udHJvbEZpbGVEYXRhICpD b250cm9sRmlsZSwgYm9vbCAqd2FzU2h1dGRvd25fcHRyLAogCQkJZXJlcG9ydChGQVRBTCwK IAkJCQkJKGVycm1zZygiY291bGQgbm90IGxvY2F0ZSByZXF1aXJlZCBjaGVja3BvaW50IHJl Y29yZCIpLAogCQkJCQkgZXJyaGludCgiSWYgeW91IGFyZSByZXN0b3JpbmcgZnJvbSBhIGJh Y2t1cCwgdG91Y2ggXCIlcy9yZWNvdmVyeS5zaWduYWxcIiBhbmQgYWRkIHJlcXVpcmVkIHJl Y292ZXJ5IG9wdGlvbnMuXG4iCi0JCQkJCQkJICJJZiB5b3UgYXJlIG5vdCByZXN0b3Jpbmcg ZnJvbSBhIGJhY2t1cCwgdHJ5IHJlbW92aW5nIHRoZSBmaWxlIFwiJXMvYmFja3VwX2xhYmVs XCIuXG4iCi0JCQkJCQkJICJCZSBjYXJlZnVsOiByZW1vdmluZyBcIiVzL2JhY2t1cF9sYWJl bFwiIHdpbGwgcmVzdWx0IGluIGEgY29ycnVwdCBjbHVzdGVyIGlmIHJlc3RvcmluZyBmcm9t IGEgYmFja3VwLiIsCisJCQkJCQkJICJJZiB5b3UgYXJlIG5vdCByZXN0b3JpbmcgZnJvbSBh IGJhY2t1cCwgdHJ5IHJlbW92aW5nIHRoZSBmaWxlIFwiJXMvcmVjb3ZlcnlfY29udHJvbFwi LlxuIgorCQkJCQkJCSAiQmUgY2FyZWZ1bDogcmVtb3ZpbmcgXCIlcy9yZWNvdmVyeV9jb250 cm9sXCIgd2lsbCByZXN1bHQgaW4gYSBjb3JydXB0IGNsdXN0ZXIgaWYgcmVzdG9yaW5nIGZy b20gYSBiYWNrdXAuIiwKIAkJCQkJCQkgRGF0YURpciwgRGF0YURpciwgRGF0YURpcikpKTsK IAkJCXdhc1NodXRkb3duID0gZmFsc2U7CS8qIGtlZXAgY29tcGlsZXIgcXVpZXQgKi8KIAkJ fQpAQCAtNzA3LDE0ICs3MDgsMTQgQEAgSW5pdFdhbFJlY292ZXJ5KENvbnRyb2xGaWxlRGF0 YSAqQ29udHJvbEZpbGUsIGJvb2wgKndhc1NodXRkb3duX3B0ciwKIAllbHNlCiAJewogCQkv KgotCQkgKiBJZiB0YWJsZXNwYWNlX21hcCBmaWxlIGlzIHByZXNlbnQgd2l0aG91dCBiYWNr dXBfbGFiZWwgZmlsZSwgdGhlcmUKKwkJICogSWYgdGFibGVzcGFjZV9tYXAgZmlsZSBpcyBw cmVzZW50IHdpdGhvdXQgcmVjb3ZlcnlfY29udHJvbCBmaWxlLCB0aGVyZQogCQkgKiBpcyBu byB1c2Ugb2Ygc3VjaCBmaWxlLiAgVGhlcmUgaXMgbm8gaGFybSBpbiByZXRhaW5pbmcgaXQs IGJ1dCBpdAogCQkgKiBpcyBiZXR0ZXIgdG8gZ2V0IHJpZCBvZiB0aGUgbWFwIGZpbGUgc28g dGhhdCB3ZSBkb24ndCBoYXZlIGFueQogCQkgKiByZWR1bmRhbnQgZmlsZSBpbiBkYXRhIGRp cmVjdG9yeSBhbmQgaXQgd2lsbCBhdm9pZCBhbnkgc29ydCBvZgogCQkgKiBjb25mdXNpb24u ICBJdCBzZWVtcyBwcnVkZW50IHRob3VnaCB0byBqdXN0IHJlbmFtZSB0aGUgZmlsZSBvdXQg b2YKIAkJICogdGhlIHdheSByYXRoZXIgdGhhbiBkZWxldGUgaXQgY29tcGxldGVseSwgYWxz byB3ZSBpZ25vcmUgYW55IGVycm9yCiAJCSAqIHRoYXQgb2NjdXJzIGluIHJlbmFtZSBvcGVy YXRpb24gYXMgZXZlbiBpZiBtYXAgZmlsZSBpcyBwcmVzZW50Ci0JCSAqIHdpdGhvdXQgYmFj a3VwX2xhYmVsIGZpbGUsIGl0IGlzIGhhcm1sZXNzLgorCQkgKiB3aXRob3V0IHJlY292ZXJ5 X2NvbnRyb2wgZmlsZSwgaXQgaXMgaGFybWxlc3MuCiAJCSAqLwogCQlpZiAoc3RhdChUQUJM RVNQQUNFX01BUCwgJnN0KSA9PSAwKQogCQl7CkBAIC03MjIsMTMgKzcyMywxMyBAQCBJbml0 V2FsUmVjb3ZlcnkoQ29udHJvbEZpbGVEYXRhICpDb250cm9sRmlsZSwgYm9vbCAqd2FzU2h1 dGRvd25fcHRyLAogCQkJaWYgKGR1cmFibGVfcmVuYW1lKFRBQkxFU1BBQ0VfTUFQLCBUQUJM RVNQQUNFX01BUF9PTEQsIERFQlVHMSkgPT0gMCkKIAkJCQllcmVwb3J0KExPRywKIAkJCQkJ CShlcnJtc2coImlnbm9yaW5nIGZpbGUgXCIlc1wiIGJlY2F1c2Ugbm8gZmlsZSBcIiVzXCIg ZXhpc3RzIiwKLQkJCQkJCQkJVEFCTEVTUEFDRV9NQVAsIEJBQ0tVUF9MQUJFTF9GSUxFKSwK KwkJCQkJCQkJVEFCTEVTUEFDRV9NQVAsIFJFQ09WRVJZX0NPTlRST0xfRklMRSksCiAJCQkJ CQkgZXJyZGV0YWlsKCJGaWxlIFwiJXNcIiB3YXMgcmVuYW1lZCB0byBcIiVzXCIuIiwKIAkJ CQkJCQkJICAgVEFCTEVTUEFDRV9NQVAsIFRBQkxFU1BBQ0VfTUFQX09MRCkpKTsKIAkJCWVs c2UKIAkJCQllcmVwb3J0KExPRywKIAkJCQkJCShlcnJtc2coImlnbm9yaW5nIGZpbGUgXCIl c1wiIGJlY2F1c2Ugbm8gZmlsZSBcIiVzXCIgZXhpc3RzIiwKLQkJCQkJCQkJVEFCTEVTUEFD RV9NQVAsIEJBQ0tVUF9MQUJFTF9GSUxFKSwKKwkJCQkJCQkJVEFCTEVTUEFDRV9NQVAsIFJF Q09WRVJZX0NPTlRST0xfRklMRSksCiAJCQkJCQkgZXJyZGV0YWlsKCJDb3VsZCBub3QgcmVu YW1lIGZpbGUgXCIlc1wiIHRvIFwiJXNcIjogJW0uIiwKIAkJCQkJCQkJICAgVEFCTEVTUEFD RV9NQVAsIFRBQkxFU1BBQ0VfTUFQX09MRCkpKTsKIAkJfQpAQCAtOTQzLDcgKzk0NCw3IEBA IEluaXRXYWxSZWNvdmVyeShDb250cm9sRmlsZURhdGEgKkNvbnRyb2xGaWxlLCBib29sICp3 YXNTaHV0ZG93bl9wdHIsCiAJCQkJaWYgKGRic3RhdGVfYXRfc3RhcnR1cCAhPSBEQl9JTl9B UkNISVZFX1JFQ09WRVJZICYmCiAJCQkJCWRic3RhdGVfYXRfc3RhcnR1cCAhPSBEQl9TSFVU RE9XTkVEX0lOX1JFQ09WRVJZKQogCQkJCQllcmVwb3J0KEZBVEFMLAotCQkJCQkJCShlcnJt c2coImJhY2t1cF9sYWJlbCBjb250YWlucyBkYXRhIGluY29uc2lzdGVudCB3aXRoIGNvbnRy b2wgZmlsZSIpLAorCQkJCQkJCShlcnJtc2coInJlY292ZXJ5X2NvbnRyb2wgY29udGFpbnMg ZGF0YSBpbmNvbnNpc3RlbnQgd2l0aCBjb250cm9sIGZpbGUiKSwKIAkJCQkJCQkgZXJyaGlu dCgiVGhpcyBtZWFucyB0aGF0IHRoZSBiYWNrdXAgaXMgY29ycnVwdGVkIGFuZCB5b3Ugd2ls bCAiCiAJCQkJCQkJCQkgImhhdmUgdG8gdXNlIGFub3RoZXIgYmFja3VwIGZvciByZWNvdmVy eS4iKSkpOwogCQkJCUNvbnRyb2xGaWxlLT5iYWNrdXBFbmRQb2ludCA9IENvbnRyb2xGaWxl LT5taW5SZWNvdmVyeVBvaW50OwpAQCAtMTE0NywyNyArMTE0OCwyNyBAQCB2YWxpZGF0ZVJl Y292ZXJ5UGFyYW1ldGVycyh2b2lkKQogfQogCiAvKgotICogcmVhZF9iYWNrdXBfbGFiZWw6 IGNoZWNrIHRvIHNlZSBpZiBhIGJhY2t1cF9sYWJlbCBmaWxlIGlzIHByZXNlbnQKKyAqIHJl YWRfcmVjb3ZlcnlfY29udHJvbDogY2hlY2sgdG8gc2VlIGlmIGEgcmVjb3ZlcnlfY29udHJv bCBmaWxlIGlzIHByZXNlbnQKICAqCi0gKiBJZiB3ZSBzZWUgYSBiYWNrdXBfbGFiZWwgZHVy aW5nIHJlY292ZXJ5LCB3ZSBhc3N1bWUgdGhhdCB3ZSBhcmUgcmVjb3ZlcmluZworICogSWYg d2Ugc2VlIHJlY292ZXJ5X2NvbnRyb2wgZHVyaW5nIHJlY292ZXJ5LCB3ZSBhc3N1bWUgdGhh dCB3ZSBhcmUgcmVjb3ZlcmluZwogICogZnJvbSBhIGJhY2t1cCBkdW1wIGZpbGUsIGFuZCB3 ZSB0aGVyZWZvcmUgcm9sbCBmb3J3YXJkIGZyb20gdGhlIGNoZWNrcG9pbnQKICAqIGlkZW50 aWZpZWQgYnkgdGhlIGxhYmVsIGZpbGUsIE5PVCB3aGF0IHBnX2NvbnRyb2wgc2F5cy4gIFRo aXMgYXZvaWRzIHRoZQogICogcHJvYmxlbSB0aGF0IHBnX2NvbnRyb2wgbWlnaHQgaGF2ZSBi ZWVuIGFyY2hpdmVkIG9uZSBvciBtb3JlIGNoZWNrcG9pbnRzCiAgKiBsYXRlciB0aGFuIHRo ZSBzdGFydCBvZiB0aGUgZHVtcCwgYW5kIHNvIGlmIHdlIHJlbHkgb24gaXQgYXMgdGhlIHN0 YXJ0CiAgKiBwb2ludCwgd2Ugd2lsbCBmYWlsIHRvIHJlc3RvcmUgYSBjb25zaXN0ZW50IGRh dGFiYXNlIHN0YXRlLgogICoKLSAqIFJldHVybnMgdHJ1ZSBpZiBhIGJhY2t1cF9sYWJlbCB3 YXMgZm91bmQgKGFuZCBmaWxscyB0aGUgY2hlY2twb2ludAorICogUmV0dXJucyB0cnVlIGlm IHJlY292ZXJ5X2NvbnRyb2wgd2FzIGZvdW5kIChhbmQgZmlsbHMgdGhlIGNoZWNrcG9pbnQK ICAqIGxvY2F0aW9uIGFuZCBUTEkgaW50byAqY2hlY2tQb2ludExvYyBhbmQgKmJhY2t1cExh YmVsVExJLCByZXNwZWN0aXZlbHkpOwotICogcmV0dXJucyBmYWxzZSBpZiBub3QuIElmIHRo aXMgYmFja3VwX2xhYmVsIGNhbWUgZnJvbSBhIHN0cmVhbWVkIGJhY2t1cCwKLSAqICpiYWNr dXBFbmRSZXF1aXJlZCBpcyBzZXQgdG8gdHJ1ZS4gSWYgdGhpcyBiYWNrdXBfbGFiZWwgd2Fz IGNyZWF0ZWQgZHVyaW5nCi0gKiByZWNvdmVyeSwgKmJhY2t1cEZyb21TdGFuZGJ5IGlzIHNl dCB0byB0cnVlLgorICogcmV0dXJucyBmYWxzZSBpZiBub3QuIElmIHRoaXMgcmVjb3Zlcnlf Y29udHJvbCBjYW1lIGZyb20gYSBzdHJlYW1lZCBiYWNrdXAsCisgKiAqYmFja3VwRW5kUmVx dWlyZWQgaXMgc2V0IHRvIHRydWUuIElmIHRoaXMgcmVjb3ZlcnlfY29udHJvbCB3YXMgY3Jl YXRlZAorICogZHVyaW5nIHJlY292ZXJ5LCAqYmFja3VwRnJvbVN0YW5kYnkgaXMgc2V0IHRv IHRydWUuCiAgKgogICogQWxzbyBzZXRzIHRoZSBnbG9iYWwgdmFyaWFibGVzIFJlZG9TdGFy dExTTiBhbmQgUmVkb1N0YXJ0VExJIHdpdGggdGhlIExTTgogICogYW5kIFRMSSByZWFkIGZy b20gdGhlIGJhY2t1cCBmaWxlLgogICovCiBzdGF0aWMgYm9vbAotcmVhZF9iYWNrdXBfbGFi ZWwoWExvZ1JlY1B0ciAqY2hlY2tQb2ludExvYywgVGltZUxpbmVJRCAqYmFja3VwTGFiZWxU TEksCi0JCQkJICBib29sICpiYWNrdXBFbmRSZXF1aXJlZCwgYm9vbCAqYmFja3VwRnJvbVN0 YW5kYnkpCityZWFkX3JlY292ZXJ5X2NvbnRyb2woWExvZ1JlY1B0ciAqY2hlY2tQb2ludExv YywgVGltZUxpbmVJRCAqYmFja3VwTGFiZWxUTEksCisJCQkJICAgICAgYm9vbCAqYmFja3Vw RW5kUmVxdWlyZWQsIGJvb2wgKmJhY2t1cEZyb21TdGFuZGJ5KQogewogCWNoYXIJCXN0YXJ0 eGxvZ2ZpbGVuYW1lW01BWEZOQU1FTEVOXTsKIAlUaW1lTGluZUlECXRsaV9mcm9tX3dhbHNl ZywKQEAgLTExOTAsMTQgKzExOTEsMTQgQEAgcmVhZF9iYWNrdXBfbGFiZWwoWExvZ1JlY1B0 ciAqY2hlY2tQb2ludExvYywgVGltZUxpbmVJRCAqYmFja3VwTGFiZWxUTEksCiAJLyoKIAkg KiBTZWUgaWYgbGFiZWwgZmlsZSBpcyBwcmVzZW50CiAJICovCi0JbGZwID0gQWxsb2NhdGVG aWxlKEJBQ0tVUF9MQUJFTF9GSUxFLCAiciIpOworCWxmcCA9IEFsbG9jYXRlRmlsZShSRUNP VkVSWV9DT05UUk9MX0ZJTEUsICJyIik7CiAJaWYgKCFsZnApCiAJewogCQlpZiAoZXJybm8g IT0gRU5PRU5UKQogCQkJZXJlcG9ydChGQVRBTCwKIAkJCQkJKGVycmNvZGVfZm9yX2ZpbGVf YWNjZXNzKCksCiAJCQkJCSBlcnJtc2coImNvdWxkIG5vdCByZWFkIGZpbGUgXCIlc1wiOiAl bSIsCi0JCQkJCQkJQkFDS1VQX0xBQkVMX0ZJTEUpKSk7CisJCQkJCQkJUkVDT1ZFUllfQ09O VFJPTF9GSUxFKSkpOwogCQlyZXR1cm4gZmFsc2U7CQkJLyogaXQncyBub3QgdGhlcmUsIGFs bCBpcyBmaW5lICovCiAJfQogCkBAIC0xMjEwLDE0ICsxMjExLDE0IEBAIHJlYWRfYmFja3Vw X2xhYmVsKFhMb2dSZWNQdHIgKmNoZWNrUG9pbnRMb2MsIFRpbWVMaW5lSUQgKmJhY2t1cExh YmVsVExJLAogCQkJICAgJmhpLCAmbG8sICZ0bGlfZnJvbV93YWxzZWcsIHN0YXJ0eGxvZ2Zp bGVuYW1lLCAmY2gpICE9IDUgfHwgY2ggIT0gJ1xuJykKIAkJZXJlcG9ydChGQVRBTCwKIAkJ CQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwK LQkJCQkgZXJybXNnKCJpbnZhbGlkIGRhdGEgaW4gZmlsZSBcIiVzXCIiLCBCQUNLVVBfTEFC RUxfRklMRSkpKTsKKwkJCQkgZXJybXNnKCJpbnZhbGlkIGRhdGEgaW4gZmlsZSBcIiVzXCIi LCBSRUNPVkVSWV9DT05UUk9MX0ZJTEUpKSk7CiAJUmVkb1N0YXJ0TFNOID0gKCh1aW50NjQp IGhpKSA8PCAzMiB8IGxvOwogCVJlZG9TdGFydFRMSSA9IHRsaV9mcm9tX3dhbHNlZzsKIAlp ZiAoZnNjYW5mKGxmcCwgIkNIRUNLUE9JTlQgTE9DQVRJT046ICVYLyVYJWMiLAogCQkJICAg JmhpLCAmbG8sICZjaCkgIT0gMyB8fCBjaCAhPSAnXG4nKQogCQllcmVwb3J0KEZBVEFMLAog CQkJCShlcnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUp LAotCQkJCSBlcnJtc2coImludmFsaWQgZGF0YSBpbiBmaWxlIFwiJXNcIiIsIEJBQ0tVUF9M QUJFTF9GSUxFKSkpOworCQkJCSBlcnJtc2coImludmFsaWQgZGF0YSBpbiBmaWxlIFwiJXNc IiIsIFJFQ09WRVJZX0NPTlRST0xfRklMRSkpKTsKIAkqY2hlY2tQb2ludExvYyA9ICgodWlu dDY0KSBoaSkgPDwgMzIgfCBsbzsKIAkqYmFja3VwTGFiZWxUTEkgPSB0bGlfZnJvbV93YWxz ZWc7CiAKQEAgLTEyNTIsNyArMTI1Myw3IEBAIHJlYWRfYmFja3VwX2xhYmVsKFhMb2dSZWNQ dHIgKmNoZWNrUG9pbnRMb2MsIFRpbWVMaW5lSUQgKmJhY2t1cExhYmVsVExJLAogCSAqIFBh cnNlIFNUQVJUIFRJTUUgYW5kIExBQkVMLiBUaG9zZSBhcmUgbm90IG1hbmRhdG9yeSBmaWVs ZHMgZm9yIHJlY292ZXJ5CiAJICogYnV0IGNoZWNraW5nIGZvciB0aGVpciBwcmVzZW5jZSBp cyB1c2VmdWwgZm9yIGRlYnVnZ2luZyBhbmQgdGhlIG5leHQKIAkgKiBzYW5pdHkgY2hlY2tz LiBDb3BlIGFsc28gd2l0aCB0aGUgZmFjdCB0aGF0IHRoZSByZXN1bHQgYnVmZmVycyBoYXZl IGEKLQkgKiBwcmUtYWxsb2NhdGVkIHNpemUsIGhlbmNlIGlmIHRoZSBiYWNrdXBfbGFiZWwg ZmlsZSBoYXMgYmVlbiBnZW5lcmF0ZWQKKwkgKiBwcmUtYWxsb2NhdGVkIHNpemUsIGhlbmNl IGlmIHRoZSByZWNvdmVyeV9jb250cm9sIGZpbGUgaGFzIGJlZW4gZ2VuZXJhdGVkCiAJICog d2l0aCBzdHJpbmdzIGxvbmdlciB0aGFuIHRoZSBtYXhpbXVtIGFzc3VtZWQgaGVyZSBhbiBp bmNvcnJlY3QgcGFyc2luZwogCSAqIGhhcHBlbnMuIFRoYXQncyBmaW5lIGFzIG9ubHkgbWlu b3IgY29uc2lzdGVuY3kgY2hlY2tzIGFyZSBkb25lCiAJICogYWZ0ZXJ3YXJkcy4KQEAgLTEy NjAsMTIgKzEyNjEsMTIgQEAgcmVhZF9iYWNrdXBfbGFiZWwoWExvZ1JlY1B0ciAqY2hlY2tQ b2ludExvYywgVGltZUxpbmVJRCAqYmFja3VwTGFiZWxUTEksCiAJaWYgKGZzY2FuZihsZnAs ICJTVEFSVCBUSU1FOiAlMTI3W15cbl1cbiIsIGJhY2t1cHRpbWUpID09IDEpCiAJCWVyZXBv cnQoREVCVUcxLAogCQkJCShlcnJtc2dfaW50ZXJuYWwoImJhY2t1cCB0aW1lICVzIGluIGZp bGUgXCIlc1wiIiwKLQkJCQkJCQkJIGJhY2t1cHRpbWUsIEJBQ0tVUF9MQUJFTF9GSUxFKSkp OworCQkJCQkJCQkgYmFja3VwdGltZSwgUkVDT1ZFUllfQ09OVFJPTF9GSUxFKSkpOwogCiAJ aWYgKGZzY2FuZihsZnAsICJMQUJFTDogJTEwMjNbXlxuXVxuIiwgYmFja3VwbGFiZWwpID09 IDEpCiAJCWVyZXBvcnQoREVCVUcxLAogCQkJCShlcnJtc2dfaW50ZXJuYWwoImJhY2t1cCBs YWJlbCAlcyBpbiBmaWxlIFwiJXNcIiIsCi0JCQkJCQkJCSBiYWNrdXBsYWJlbCwgQkFDS1VQ X0xBQkVMX0ZJTEUpKSk7CisJCQkJCQkJCSBiYWNrdXBsYWJlbCwgUkVDT1ZFUllfQ09OVFJP TF9GSUxFKSkpOwogCiAJLyoKIAkgKiBTVEFSVCBUSU1FTElORSBpcyBuZXcgYXMgb2YgMTEu IEl0cyBwYXJzaW5nIGlzIG5vdCBtYW5kYXRvcnksIHN0aWxsIHVzZQpAQCAtMTI3NiwyMCAr MTI3NywyMCBAQCByZWFkX2JhY2t1cF9sYWJlbChYTG9nUmVjUHRyICpjaGVja1BvaW50TG9j LCBUaW1lTGluZUlEICpiYWNrdXBMYWJlbFRMSSwKIAkJaWYgKHRsaV9mcm9tX3dhbHNlZyAh PSB0bGlfZnJvbV9maWxlKQogCQkJZXJlcG9ydChGQVRBTCwKIAkJCQkJKGVycmNvZGUoRVJS Q09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCi0JCQkJCSBlcnJtc2co ImludmFsaWQgZGF0YSBpbiBmaWxlIFwiJXNcIiIsIEJBQ0tVUF9MQUJFTF9GSUxFKSwKKwkJ CQkJIGVycm1zZygiaW52YWxpZCBkYXRhIGluIGZpbGUgXCIlc1wiIiwgUkVDT1ZFUllfQ09O VFJPTF9GSUxFKSwKIAkJCQkJIGVycmRldGFpbCgiVGltZWxpbmUgSUQgcGFyc2VkIGlzICV1 LCBidXQgZXhwZWN0ZWQgJXUuIiwKIAkJCQkJCQkgICB0bGlfZnJvbV9maWxlLCB0bGlfZnJv bV93YWxzZWcpKSk7CiAKIAkJZXJlcG9ydChERUJVRzEsCiAJCQkJKGVycm1zZ19pbnRlcm5h bCgiYmFja3VwIHRpbWVsaW5lICV1IGluIGZpbGUgXCIlc1wiIiwKLQkJCQkJCQkJIHRsaV9m cm9tX2ZpbGUsIEJBQ0tVUF9MQUJFTF9GSUxFKSkpOworCQkJCQkJCQkgdGxpX2Zyb21fZmls ZSwgUkVDT1ZFUllfQ09OVFJPTF9GSUxFKSkpOwogCX0KIAogCWlmIChmZXJyb3IobGZwKSB8 fCBGcmVlRmlsZShsZnApKQogCQllcmVwb3J0KEZBVEFMLAogCQkJCShlcnJjb2RlX2Zvcl9m aWxlX2FjY2VzcygpLAogCQkJCSBlcnJtc2coImNvdWxkIG5vdCByZWFkIGZpbGUgXCIlc1wi OiAlbSIsCi0JCQkJCQlCQUNLVVBfTEFCRUxfRklMRSkpKTsKKwkJCQkJCVJFQ09WRVJZX0NP TlRST0xfRklMRSkpKTsKIAogCXJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvYmFja3VwL2Jhc2ViYWNrdXAuYyBiL3NyYy9iYWNrZW5kL2JhY2t1cC9iYXNlYmFj a3VwLmMKaW5kZXggN2QwMjViY2YzODIuLmE1MWRhMmRkNWQ3IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9iYWNrdXAvYmFzZWJhY2t1cC5jCisrKyBiL3NyYy9iYWNrZW5kL2JhY2t1cC9i YXNlYmFja3VwLmMKQEAgLTE5MSwxMCArMTkxLDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg ZXhjbHVkZV9saXN0X2l0ZW0gZXhjbHVkZUZpbGVzW10gPQogCXtSRUxDQUNIRV9JTklUX0ZJ TEVOQU1FLCB0cnVlfSwKIAogCS8qCi0JICogYmFja3VwX2xhYmVsIGFuZCB0YWJsZXNwYWNl X21hcCBzaG91bGQgbm90IGV4aXN0IGluIGEgcnVubmluZyBjbHVzdGVyCisJICogcmVjb3Zl cnlfY29udHJvbCBhbmQgdGFibGVzcGFjZV9tYXAgc2hvdWxkIG5vdCBleGlzdCBpbiBhIHJ1 bm5pbmcgY2x1c3RlcgogCSAqIGNhcGFibGUgb2YgZG9pbmcgYW4gb25saW5lIGJhY2t1cCwg YnV0IGV4Y2x1ZGUgdGhlbSBqdXN0IGluIGNhc2UuCiAJICovCi0Je0JBQ0tVUF9MQUJFTF9G SUxFLCBmYWxzZX0sCisJe1JFQ09WRVJZX0NPTlRST0xfRklMRSwgZmFsc2V9LAogCXtUQUJM RVNQQUNFX01BUCwgZmFsc2V9LAogCiAJLyoKQEAgLTMyNiwxNSArMzI2LDE1IEBAIHBlcmZv cm1fYmFzZV9iYWNrdXAoYmFzZWJhY2t1cF9vcHRpb25zICpvcHQsIGJic2luayAqc2luaykK IAkJCXsKIAkJCQlzdHJ1Y3Qgc3RhdCBzdGF0YnVmOwogCQkJCWJvb2wJCXNlbmR0YmxzcGNs aW5rcyA9IHRydWU7Ci0JCQkJY2hhcgkgICAqYmFja3VwX2xhYmVsOworCQkJCWNoYXIJICAg KnJlY292ZXJ5X2NvbnRyb2w7CiAKIAkJCQliYnNpbmtfYmVnaW5fYXJjaGl2ZShzaW5rLCAi YmFzZS50YXIiKTsKIAotCQkJCS8qIEluIHRoZSBtYWluIHRhciwgaW5jbHVkZSB0aGUgYmFj a3VwX2xhYmVsIGZpcnN0Li4uICovCi0JCQkJYmFja3VwX2xhYmVsID0gYnVpbGRfYmFja3Vw X2NvbnRlbnQoYmFja3VwX3N0YXRlLCBmYWxzZSk7Ci0JCQkJc2VuZEZpbGVXaXRoQ29udGVu dChzaW5rLCBCQUNLVVBfTEFCRUxfRklMRSwKLQkJCQkJCQkJCWJhY2t1cF9sYWJlbCwgJm1h bmlmZXN0KTsKLQkJCQlwZnJlZShiYWNrdXBfbGFiZWwpOworCQkJCS8qIEluIHRoZSBtYWlu IHRhciwgaW5jbHVkZSB0aGUgcmVjb3ZlcnlfY29udHJvbCBmaXJzdC4uLiAqLworCQkJCXJl Y292ZXJ5X2NvbnRyb2wgPSBidWlsZF9iYWNrdXBfY29udGVudChiYWNrdXBfc3RhdGUsIGZh bHNlKTsKKwkJCQlzZW5kRmlsZVdpdGhDb250ZW50KHNpbmssIFJFQ09WRVJZX0NPTlRST0xf RklMRSwKKwkJCQkJCQkJCXJlY292ZXJ5X2NvbnRyb2wsICZtYW5pZmVzdCk7CisJCQkJcGZy ZWUocmVjb3ZlcnlfY29udHJvbCk7CiAKIAkJCQkvKiBUaGVuIHRoZSB0YWJsZXNwYWNlX21h cCBmaWxlLCBpZiByZXF1aXJlZC4uLiAqLwogCQkJCWlmIChvcHQtPnNlbmR0YmxzcGNtYXBm aWxlKQpAQCAtMTA1Myw3ICsxMDUzLDcgQEAgc2VuZEZpbGVXaXRoQ29udGVudChiYnNpbmsg KnNpbmssIGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBjb25zdCBjaGFyICpjb250ZW50LAogCWxl biA9IHN0cmxlbihjb250ZW50KTsKIAogCS8qCi0JICogQ29uc3RydWN0IGEgc3RhdCBzdHJ1 Y3QgZm9yIHRoZSBiYWNrdXBfbGFiZWwgZmlsZSB3ZSdyZSBpbmplY3RpbmcgaW4KKwkgKiBD b25zdHJ1Y3QgYSBzdGF0IHN0cnVjdCBmb3IgdGhlIHJlY292ZXJ5X2NvbnRyb2wgZmlsZSB3 ZSdyZSBpbmplY3RpbmcgaW4KIAkgKiB0aGUgdGFyLgogCSAqLwogCS8qIFdpbmRvd3MgZG9l c24ndCBoYXZlIHRoZSBjb25jZXB0IG9mIHVpZCBhbmQgZ2lkICovCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV9mdW5jdGlvbnMuc3FsIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9zeXN0ZW1fZnVuY3Rpb25zLnNxbAppbmRleCAwN2MwZDg5YzRmOC4uMDFlMDNh MDM0M2QgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX2Z1bmN0aW9u cy5zcWwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fZnVuY3Rpb25zLnNxbApA QCAtMzkwLDcgKzM5MCw3IEBAIENSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OCiAKIENSRUFU RSBPUiBSRVBMQUNFIEZVTkNUSU9OIHBnX2JhY2t1cF9zdG9wICgKICAgICAgICAgd2FpdF9m b3JfYXJjaGl2ZSBib29sZWFuIERFRkFVTFQgdHJ1ZSwgT1VUIGxzbiBwZ19sc24sCi0gICAg ICAgIE9VVCBsYWJlbGZpbGUgdGV4dCwgT1VUIHNwY21hcGZpbGUgdGV4dCkKKyAgICAgICAg T1VUIHJlY292ZXJ5Y3RsZmlsZSB0ZXh0LCBPVVQgc3BjbWFwZmlsZSB0ZXh0KQogICBSRVRV Uk5TIHJlY29yZCBTVFJJQ1QgVk9MQVRJTEUgTEFOR1VBR0UgaW50ZXJuYWwgYXMgJ3BnX2Jh Y2t1cF9zdG9wJwogICBQQVJBTExFTCBSRVNUUklDVEVEOwogCmRpZmYgLS1naXQgYS9zcmMv YmluL3BnX2Jhc2ViYWNrdXAvdC8wMTBfcGdfYmFzZWJhY2t1cC5wbCBiL3NyYy9iaW4vcGdf YmFzZWJhY2t1cC90LzAxMF9wZ19iYXNlYmFja3VwLnBsCmluZGV4IGI5ZjVlMTI2NmI0Li41 ZTEzOTUwYjE5MyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3QvMDEwX3Bn X2Jhc2ViYWNrdXAucGwKKysrIGIvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3QvMDEwX3BnX2Jh c2ViYWNrdXAucGwKQEAgLTE3MSw3ICsxNzEsNyBAQCBTS0lQOgogCiAjIFdyaXRlIHNvbWUg ZmlsZXMgdG8gdGVzdCB0aGF0IHRoZXkgYXJlIG5vdCBjb3BpZWQuCiBmb3JlYWNoIG15ICRm aWxlbmFtZSAoCi0JcXcoYmFja3VwX2xhYmVsIHRhYmxlc3BhY2VfbWFwIHBvc3RncmVzcWwu YXV0by5jb25mLnRtcAorCXF3KHJlY292ZXJ5X2NvbnRyb2wgdGFibGVzcGFjZV9tYXAgcG9z dGdyZXNxbC5hdXRvLmNvbmYudG1wCiAJY3VycmVudF9sb2dmaWxlcy50bXAgZ2xvYmFsL3Bn X2ludGVybmFsLmluaXQuMTIzKSkKIHsKIAlvcGVuIG15ICRmaWxlLCAnPj4nLCAiJHBnZGF0 YS8kZmlsZW5hbWUiOwpAQCAtMjYxLDE0ICsyNjEsMTQgQEAgZm9yZWFjaCBteSAkZmlsZW5h bWUgKEB0ZW1wUmVsYXRpb25GaWxlcykKIAkJImJhc2UvJHBvc3RncmVzT2lkLyRmaWxlbmFt ZSBub3QgY29waWVkIik7CiB9CiAKLSMgTWFrZSBzdXJlIGV4aXN0aW5nIGJhY2t1cF9sYWJl bCB3YXMgaWdub3JlZC4KLWlzbnQoc2x1cnBfZmlsZSgiJHRlbXBkaXIvYmFja3VwL2JhY2t1 cF9sYWJlbCIpLAotCSdET05PVENPUFknLCAnZXhpc3RpbmcgYmFja3VwX2xhYmVsIG5vdCBj b3BpZWQnKTsKKyMgTWFrZSBzdXJlIGV4aXN0aW5nIHJlY292ZXJ5X2NvbnRyb2wgd2FzIGln bm9yZWQuCitpc250KHNsdXJwX2ZpbGUoIiR0ZW1wZGlyL2JhY2t1cC9yZWNvdmVyeV9jb250 cm9sIiksCisJJ0RPTk9UQ09QWScsICdleGlzdGluZyByZWNvdmVyeV9jb250cm9sIG5vdCBj b3BpZWQnKTsKIHJtdHJlZSgiJHRlbXBkaXIvYmFja3VwIik7CiAKLSMgTm93IGRlbGV0ZSB0 aGUgYm9ndXMgYmFja3VwX2xhYmVsIGZpbGUgc2luY2UgaXQgd2lsbCBpbnRlcmZlcmUgd2l0 aCBzdGFydHVwCi11bmxpbmsoIiRwZ2RhdGEvYmFja3VwX2xhYmVsIikKLSAgb3IgQkFJTF9P VVQoInVuYWJsZSB0byB1bmxpbmsgJHBnZGF0YS9iYWNrdXBfbGFiZWwiKTsKKyMgTm93IGRl bGV0ZSB0aGUgYm9ndXMgcmVjb3ZlcnlfY29udHJvbCBzaW5jZSBpdCB3aWxsIGludGVyZmVy ZSB3aXRoIHN0YXJ0dXAKK3VubGluaygiJHBnZGF0YS9yZWNvdmVyeV9jb250cm9sIikKKyAg b3IgQkFJTF9PVVQoInVuYWJsZSB0byB1bmxpbmsgJHBnZGF0YS9yZWNvdmVyeV9jb250cm9s Iik7CiAKICRub2RlLT5jb21tYW5kX29rKAogCVsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdf Y3RsL3BnX2N0bC5jIGIvc3JjL2Jpbi9wZ19jdGwvcGdfY3RsLmMKaW5kZXggODA3ZDcwMjNh OTkuLmM0ODBkODBlMjVmIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2N0bC9wZ19jdGwuYwor KysgYi9zcmMvYmluL3BnX2N0bC9wZ19jdGwuYwpAQCAtMjQ0Nyw3ICsyNDQ3LDcgQEAgbWFp bihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCXNucHJpbnRmKHBvc3RvcHRzX2ZpbGUsIE1B WFBHUEFUSCwgIiVzL3Bvc3RtYXN0ZXIub3B0cyIsIHBnX2RhdGEpOwogCQlzbnByaW50Zih2 ZXJzaW9uX2ZpbGUsIE1BWFBHUEFUSCwgIiVzL1BHX1ZFUlNJT04iLCBwZ19kYXRhKTsKIAkJ c25wcmludGYocGlkX2ZpbGUsIE1BWFBHUEFUSCwgIiVzL3Bvc3RtYXN0ZXIucGlkIiwgcGdf ZGF0YSk7Ci0JCXNucHJpbnRmKGJhY2t1cF9maWxlLCBNQVhQR1BBVEgsICIlcy9iYWNrdXBf bGFiZWwiLCBwZ19kYXRhKTsKKwkJc25wcmludGYoYmFja3VwX2ZpbGUsIE1BWFBHUEFUSCwg IiVzL3JlY292ZXJ5X2NvbnRyb2wiLCBwZ19kYXRhKTsKIAogCQkvKgogCQkgKiBTZXQgbWFz ayBiYXNlZCBvbiBQR0RBVEEgcGVybWlzc2lvbnMsCmRpZmYgLS1naXQgYS9zcmMvYmluL3Bn X3Jld2luZC9maWxlbWFwLmMgYi9zcmMvYmluL3BnX3Jld2luZC9maWxlbWFwLmMKaW5kZXgg ZWNhZGQ2OWRjNTMuLjViZDA3NmY4NGM5IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3Jld2lu ZC9maWxlbWFwLmMKKysrIGIvc3JjL2Jpbi9wZ19yZXdpbmQvZmlsZW1hcC5jCkBAIC0xMzks MTIgKzEzOSwxMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGV4Y2x1ZGVfbGlzdF9pdGVtIGV4 Y2x1ZGVGaWxlc1tdID0KIAl7InBnX2ludGVybmFsLmluaXQiLCB0cnVlfSwgLyogZGVmaW5l ZCBhcyBSRUxDQUNIRV9JTklUX0ZJTEVOQU1FICovCiAKIAkvKgotCSAqIElmIHRoZXJlIGlz IGEgYmFja3VwX2xhYmVsIG9yIHRhYmxlc3BhY2VfbWFwIGZpbGUsIGl0IGluZGljYXRlcyB0 aGF0IGEKLQkgKiByZWNvdmVyeSBmYWlsZWQgYW5kIHRoaXMgY2x1c3RlciBwcm9iYWJseSBj YW4ndCBiZSByZXdvdW5kLCBidXQgZXhjbHVkZQorCSAqIElmIHRoZXJlIGlzIGEgcmVjb3Zl cnlfY29udHJvbCBvciB0YWJsZXNwYWNlX21hcCBmaWxlLCBpdCBpbmRpY2F0ZXMgdGhhdAor CSAqIGEgcmVjb3ZlcnkgZmFpbGVkIGFuZCB0aGlzIGNsdXN0ZXIgcHJvYmFibHkgY2FuJ3Qg YmUgcmV3b3VuZCwgYnV0IGV4Y2x1ZGUKIAkgKiB0aGVtIGFueXdheSBpZiB0aGV5IGFyZSBm b3VuZC4KIAkgKi8KLQl7ImJhY2t1cF9sYWJlbCIsIGZhbHNlfSwJLyogZGVmaW5lZCBhcyBC QUNLVVBfTEFCRUxfRklMRSAqLwotCXsidGFibGVzcGFjZV9tYXAiLCBmYWxzZX0sCS8qIGRl ZmluZWQgYXMgVEFCTEVTUEFDRV9NQVAgKi8KKwl7InJlY292ZXJ5X2NvbnRyb2wiLCBmYWxz ZX0sCS8qIGRlZmluZWQgYXMgUkVDT1ZFUllfQ09OVFJPTF9GSUxFICovCisJeyJ0YWJsZXNw YWNlX21hcCIsIGZhbHNlfSwJCS8qIGRlZmluZWQgYXMgVEFCTEVTUEFDRV9NQVAgKi8KIAog CS8qCiAJICogSWYgdGhlcmUncyBhIGJhY2t1cF9tYW5pZmVzdCwgaXQgYmVsb25ncyB0byBh IGJhY2t1cCB0aGF0IHdhcyB1c2VkIHRvCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3Jld2lu ZC9wZ19yZXdpbmQuYyBiL3NyYy9iaW4vcGdfcmV3aW5kL3BnX3Jld2luZC5jCmluZGV4IGJm ZDQ0YTI4NGUyLi44MzU5YTRhNGRjMiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19yZXdpbmQv cGdfcmV3aW5kLmMKKysrIGIvc3JjL2Jpbi9wZ19yZXdpbmQvcGdfcmV3aW5kLmMKQEAgLTY1 MSwxMCArNjUxLDEwIEBAIHBlcmZvcm1fcmV3aW5kKGZpbGVtYXBfdCAqZmlsZW1hcCwgcmV3 aW5kX3NvdXJjZSAqc291cmNlLAogCX0KIAogCWlmIChzaG93cHJvZ3Jlc3MpCi0JCXBnX2xv Z19pbmZvKCJjcmVhdGluZyBiYWNrdXAgbGFiZWwgYW5kIHVwZGF0aW5nIGNvbnRyb2wgZmls ZSIpOworCQlwZ19sb2dfaW5mbygiY3JlYXRpbmcgcmVjb3ZlcnkgY29udHJvbCBhbmQgdXBk YXRpbmcgY29udHJvbCBmaWxlIik7CiAKIAkvKgotCSAqIENyZWF0ZSBhIGJhY2t1cCBsYWJl bCBmaWxlLCB0byB0ZWxsIHRoZSB0YXJnZXQgd2hlcmUgdG8gYmVnaW4gdGhlIFdBTAorCSAq IENyZWF0ZSByZWNvdmVyeSBjb250cm9sIGZpbGUsIHRvIHRlbGwgdGhlIHRhcmdldCB3aGVy ZSB0byBiZWdpbiB0aGUgV0FMCiAJICogcmVwbGF5LiBOb3JtYWxseSwgZnJvbSB0aGUgbGFz dCBjb21tb24gY2hlY2twb2ludCBiZXR3ZWVuIHRoZSBzb3VyY2UKIAkgKiBhbmQgdGhlIHRh cmdldC4gQnV0IGlmIHRoZSBzb3VyY2UgaXMgYSBzdGFuZGJ5IHNlcnZlciwgaXQncyBwb3Nz aWJsZQogCSAqIHRoYXQgdGhlIGxhc3QgY29tbW9uIGNoZWNrcG9pbnQgaXMgKmFmdGVyKiB0 aGUgc3RhbmRieSdzIHJlc3RhcnRwb2ludC4KQEAgLTcyOSw3ICs3MjksNyBAQCBwZXJmb3Jt X3Jld2luZChmaWxlbWFwX3QgKmZpbGVtYXAsIHJld2luZF9zb3VyY2UgKnNvdXJjZSwKIHN0 YXRpYyB2b2lkCiBzYW5pdHlDaGVja3Modm9pZCkKIHsKLQkvKiBUT0RPIENoZWNrIHRoYXQg dGhlcmUncyBubyBiYWNrdXBfbGFiZWwgaW4gZWl0aGVyIGNsdXN0ZXIgKi8KKwkvKiBUT0RP IENoZWNrIHRoYXQgdGhlcmUncyBubyByZWNvdmVyeV9jb250cm9sIGluIGVpdGhlciBjbHVz dGVyICovCiAKIAkvKiBDaGVjayBzeXN0ZW1faWRlbnRpZmllciBtYXRjaCAqLwogCWlmIChD b250cm9sRmlsZV90YXJnZXQuc3lzdGVtX2lkZW50aWZpZXIgIT0gQ29udHJvbEZpbGVfc291 cmNlLnN5c3RlbV9pZGVudGlmaWVyKQpAQCAtOTUzLDcgKzk1Myw3IEBAIGZpbmRDb21tb25B bmNlc3RvclRpbWVsaW5lKFRpbWVMaW5lSGlzdG9yeUVudHJ5ICphX2hpc3RvcnksIGludCBh X25lbnRyaWVzLAogCiAKIC8qCi0gKiBDcmVhdGUgYSBiYWNrdXBfbGFiZWwgZmlsZSB0aGF0 IGZvcmNlcyByZWNvdmVyeSB0byBiZWdpbiBhdCB0aGUgbGFzdCBjb21tb24KKyAqIENyZWF0 ZSByZWNvdmVyeV9jb250cm9sIGZpbGUgdGhhdCBmb3JjZXMgcmVjb3ZlcnkgdG8gYmVnaW4g YXQgdGhlIGxhc3QgY29tbW9uCiAgKiBjaGVja3BvaW50LgogICovCiBzdGF0aWMgdm9pZApA QCAtOTcxLDcgKzk3MSw3IEBAIGNyZWF0ZUJhY2t1cExhYmVsKFhMb2dSZWNQdHIgc3RhcnRw b2ludCwgVGltZUxpbmVJRCBzdGFydHRsaSwgWExvZ1JlY1B0ciBjaGVja3BvCiAJWExvZ0Zp bGVOYW1lKHhsb2dmaWxlbmFtZSwgc3RhcnR0bGksIHN0YXJ0c2Vnbm8sIFdhbFNlZ1N6KTsK IAogCS8qCi0JICogQ29uc3RydWN0IGJhY2t1cCBsYWJlbCBmaWxlCisJICogQ29uc3RydWN0 IHJlY292ZXJ5IGNvbnRyb2wgZmlsZQogCSAqLwogCXN0YW1wX3RpbWUgPSB0aW1lKE5VTEwp OwogCXRtcCA9IGxvY2FsdGltZSgmc3RhbXBfdGltZSk7CkBAIC05ODgsMTAgKzk4OCwxMCBA QCBjcmVhdGVCYWNrdXBMYWJlbChYTG9nUmVjUHRyIHN0YXJ0cG9pbnQsIFRpbWVMaW5lSUQg c3RhcnR0bGksIFhMb2dSZWNQdHIgY2hlY2twbwogCQkJCSAgIExTTl9GT1JNQVRfQVJHUyhj aGVja3BvaW50bG9jKSwKIAkJCQkgICBzdHJmYnVmKTsKIAlpZiAobGVuID49IHNpemVvZihi dWYpKQotCQlwZ19mYXRhbCgiYmFja3VwIGxhYmVsIGJ1ZmZlciB0b28gc21hbGwiKTsJLyog c2hvdWxkbid0IGhhcHBlbiAqLworCQlwZ19mYXRhbCgicmVjb3ZlcnkgY29udHJvbCBidWZm ZXIgdG9vIHNtYWxsIik7CS8qIHNob3VsZG4ndCBoYXBwZW4gKi8KIAogCS8qIFRPRE86IG1v dmUgb2xkIGZpbGUgb3V0IG9mIHRoZSB3YXksIGlmIGFueS4gKi8KLQlvcGVuX3RhcmdldF9m aWxlKCJiYWNrdXBfbGFiZWwiLCB0cnVlKTsgLyogQkFDS1VQX0xBQkVMX0ZJTEUgKi8KKwlv cGVuX3RhcmdldF9maWxlKCJyZWNvdmVyeV9jb250cm9sIiwgdHJ1ZSk7IC8qIFJFQ09WRVJZ X0NPTlRST0xfRklMRSAqLwogCXdyaXRlX3RhcmdldF9yYW5nZShidWYsIDAsIGxlbik7CiAJ Y2xvc2VfdGFyZ2V0X2ZpbGUoKTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vz cy94bG9nLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZy5oCmluZGV4IDRhZDU3MmNiODc0 Li45NTU2ODkyYTRhNiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2cuaAor KysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZy5oCkBAIC0yOTMsOCArMjkzLDggQEAgZXh0 ZXJuIFNlc3Npb25CYWNrdXBTdGF0ZSBnZXRfYmFja3VwX3N0YXR1cyh2b2lkKTsKIC8qIEZp bGUgcGF0aCBuYW1lcyAoYWxsIHJlbGF0aXZlIHRvICRQR0RBVEEpICovCiAjZGVmaW5lIFJF Q09WRVJZX1NJR05BTF9GSUxFCSJyZWNvdmVyeS5zaWduYWwiCiAjZGVmaW5lIFNUQU5EQllf U0lHTkFMX0ZJTEUJCSJzdGFuZGJ5LnNpZ25hbCIKLSNkZWZpbmUgQkFDS1VQX0xBQkVMX0ZJ TEUJCSJiYWNrdXBfbGFiZWwiCi0jZGVmaW5lIEJBQ0tVUF9MQUJFTF9PTEQJCSJiYWNrdXBf bGFiZWwub2xkIgorI2RlZmluZSBSRUNPVkVSWV9DT05UUk9MX0ZJTEUJInJlY292ZXJ5X2Nv bnRyb2wiCisjZGVmaW5lIFJFQ09WRVJZX0NPTlRST0xfT0xECSJyZWNvdmVyeV9jb250cm9s Lm9sZCIKIAogI2RlZmluZSBUQUJMRVNQQUNFX01BUAkJCSJ0YWJsZXNwYWNlX21hcCIKICNk ZWZpbmUgVEFCTEVTUEFDRV9NQVBfT0xECQkidGFibGVzcGFjZV9tYXAub2xkIgpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfcHJvYy5kYXQKaW5kZXggNzJlYTRhYThiOGMuLjBhNDBjM2MxZWQ2IDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKQEAgLTY0MjQsNyArNjQyNCw3IEBACiAgIHByb25h bWUgPT4gJ3BnX2JhY2t1cF9zdG9wJywgcHJvdm9sYXRpbGUgPT4gJ3YnLCBwcm9wYXJhbGxl bCA9PiAncicsCiAgIHByb3JldHR5cGUgPT4gJ3JlY29yZCcsIHByb2FyZ3R5cGVzID0+ICdi b29sJywKICAgcHJvYWxsYXJndHlwZXMgPT4gJ3tib29sLHBnX2xzbix0ZXh0LHRleHR9Jywg cHJvYXJnbW9kZXMgPT4gJ3tpLG8sbyxvfScsCi0gIHByb2FyZ25hbWVzID0+ICd7d2FpdF9m b3JfYXJjaGl2ZSxsc24sbGFiZWxmaWxlLHNwY21hcGZpbGV9JywKKyAgcHJvYXJnbmFtZXMg PT4gJ3t3YWl0X2Zvcl9hcmNoaXZlLGxzbixyZWNvdmVyeWN0bGZpbGUsc3BjbWFwZmlsZX0n LAogICBwcm9zcmMgPT4gJ3BnX2JhY2t1cF9zdG9wJyB9LAogeyBvaWQgPT4gJzM0MzYnLCBk ZXNjciA9PiAncHJvbW90ZSBzdGFuZGJ5IHNlcnZlcicsCiAgIHByb25hbWUgPT4gJ3BnX3By b21vdGUnLCBwcm92b2xhdGlsZSA9PiAndicsIHByb3JldHR5cGUgPT4gJ2Jvb2wnLAo= --------------ACJtt8apS0DCLXpvJTrnDgUT--