From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Michael Catanzaro To: git-commits@fedoraproject.org Subject: [rpms/glib2] cve-2026-58016-f44: Add gspawn patchset Date: Tue, 11 Aug 2026 10:37:36 GMT Message-ID: <178644465660.1.8280792090520143385.rpms-glib2-9849a2ff0ebb@fedoraproject.org> List-ID: X-Git-Repo: rpms/glib2 X-Git-Branch: cve-2026-58016-f44 X-Git-Rev: 9849a2ff0ebbdd1a5829e94433809213f145fcf4 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2xpYjIKQnJhbmNo IDogY3ZlLTIwMjYtNTgwMTYtZjQ0CkNvbW1pdCA6IDk4NDlhMmZmMGViYmRkMWE1ODI5ZTk0NDMz ODA5MjEzZjE0NWZjZjQKQXV0aG9yIDogTWljaGFlbCBDYXRhbnphcm8gPG1jYXRhbnphcm9AcmVk aGF0LmNvbT4KRGF0ZSAgIDogMjAyMS0xMi0wNlQwOTo1ODoyMy0wNjowMApTdGF0cyAgOiArMTA1 Ni8tMCBpbiAyIGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcv cnBtcy9nbGliMi9jLzk4NDlhMmZmMGViYmRkMWE1ODI5ZTk0NDMzODA5MjEzZjE0NWZjZjQ/YnJh bmNoPWN2ZS0yMDI2LTU4MDE2LWY0NAoKTG9nOgpBZGQgZ3NwYXduIHBhdGNoc2V0CgotLS0KZGlm ZiAtLWdpdCBhL2dsaWIyLnNwZWMgYi9nbGliMi5zcGVjCmluZGV4IDA1ODA5NWYuLmUzOTNjZWQg MTAwNjQ0Ci0tLSBhL2dsaWIyLnNwZWMKKysrIGIvZ2xpYjIuc3BlYwpAQCAtMTcsNiArMTcsMTAg QEAgUGF0Y2gwOiBnbnV0bHMtaG1hYy5wYXRjaAogIyBQcm9wb3NlZCB1cHN0cmVhbSBhdCBodHRw czovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ2xpYi8tL21lcmdlX3JlcXVlc3RzLzE1OTYKIFBh dGNoMTogZ2Rlc2t0b3BhcHBpbmZvLnBhdGNoCiAKKyMgaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQu Y29tL3Nob3dfYnVnLmNnaT9pZD0xOTEwMDkyCisjIGh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9H Tk9NRS9nbGliLy0vbWVyZ2VfcmVxdWVzdHMvMTk2OAorUGF0Y2gyOiBnc3Bhd24ucGF0Y2gKKwog QnVpbGRSZXF1aXJlczogY2hycGF0aAogQnVpbGRSZXF1aXJlczogZ2NjCiBCdWlsZFJlcXVpcmVz OiBnY2MtYysrCgpkaWZmIC0tZ2l0IGEvZ3NwYXduLnBhdGNoIGIvZ3NwYXduLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkMGRmNTcKLS0tIC9kZXYvbnVsbAorKysg Yi9nc3Bhd24ucGF0Y2gKQEAgLTAsMCArMSwxMDUyIEBACitGcm9tIDYyZWY3Y2ZmYjRjNzFjZWEz YjUyZGVmYTllNTEyMDZmNTRiNzE4ZmUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBN aWNoYWVsIENhdGFuemFybyA8bWNhdGFuemFyb0ByZWRoYXQuY29tPgorRGF0ZTogVHVlLCAxMiBP Y3QgMjAyMSAxNTo1MjoxOCAtMDUwMAorU3ViamVjdDogW1BBVENIIDAxLzEwXSBnc3Bhd246IHVz ZSBjbG9zZV9hbmRfaW52YWxpZGF0ZSBtb3JlCisKKy0tLQorIGdsaWIvZ3NwYXduLmMgfCAyICst CisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYg LS1naXQgYS9nbGliL2dzcGF3bi5jIGIvZ2xpYi9nc3Bhd24uYworaW5kZXggNTFiNGM3OWFjLi4y YjE5MTYzNGMgMTAwNjQ0CistLS0gYS9nbGliL2dzcGF3bi5jCisrKysgYi9nbGliL2dzcGF3bi5j CitAQCAtMTc5OCw3ICsxNzk4LDcgQEAgZG9fZXhlYyAoZ2ludCAgICAgICAgICAgICAgICAgIGNo aWxkX2Vycl9yZXBvcnRfZmQsCisgICAgICAgICAgICAgICAgIGNoaWxkX2Vycl9yZXBvcnRfZmQg PSBzYWZlX2R1cCAoY2hpbGRfZXJyX3JlcG9ydF9mZCk7CisgCisgICAgICAgICAgICAgICBzYWZl X2R1cDIgKHNvdXJjZV9mZHNbaV0sIHRhcmdldF9mZHNbaV0pOworLSAgICAgICAgICAgICAgKHZv aWQpIGNsb3NlIChzb3VyY2VfZmRzW2ldKTsKKysgICAgICAgICAgICAgIGNsb3NlX2FuZF9pbnZh bGlkYXRlICgmc291cmNlX2Zkc1tpXSk7CisgICAgICAgICAgICAgfQorICAgICAgICAgfQorICAg ICB9CistLSAKKzIuMzMuMQorCitGcm9tIGFkZGRkMTI3MDdiYzJiZmQxNGFkMzVhZTgwNzVlZWFj NjhjZGQ5NWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBNaWNoYWVsIENhdGFuemFy byA8bWNhdGFuemFyb0ByZWRoYXQuY29tPgorRGF0ZTogVGh1LCAxNCBPY3QgMjAyMSAxMDo0Mzo1 MiAtMDUwMAorU3ViamVjdDogW1BBVENIIDAyLzEwXSBnc3Bhd246IEltcHJvdmUgZXJyb3IgbWVz c2FnZSB3aGVuIGR1cCBmYWlscworCitUaGlzIGVycm9yIG1lc3NhZ2UgaXMgbm8gbG9uZ2VyIGFj Y3VyYXRlIG5vdyB0aGF0IHdlIGFsbG93IGFyYml0cmFyeSBmZAorcmVtYXBwaW5nLgorLS0tCisg Z2xpYi9nc3Bhd24uYyB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEg ZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2dsaWIvZ3NwYXduLmMgYi9nbGliL2dzcGF3bi5j CitpbmRleCAyYjE5MTYzNGMuLjljNjVkOWQ5MiAxMDA2NDQKKy0tLSBhL2dsaWIvZ3NwYXduLmMK KysrKyBiL2dsaWIvZ3NwYXduLmMKK0BAIC0yNDUxLDcgKzI0NTEsNyBAQCBmb3JrX2V4ZWMgKGdi b29sZWFuICAgICAgICAgICAgICBpbnRlcm1lZGlhdGVfY2hpbGQsCisgICAgICAgICAgICAgICBn X3NldF9lcnJvciAoZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19TUEFXTl9F UlJPUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX1NQQVdOX0VSUk9SX0ZBSUxFRCwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJGYWlsZWQgdG8gcmVkaXJlY3Qgb3V0cHV0 IG9yIGlucHV0IG9mIGNoaWxkIHByb2Nlc3MgKCVzKSIpLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIF8oIkZhaWxlZCB0byBkdXBsaWNhdGUgZmlsZSBkZXNjcmlwdG9yIGZvciBjaGlsZCBw cm9jZXNzICglcykiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3N0cmVycm9yIChi dWZbMV0pKTsKKyAKKyAgICAgICAgICAgICAgIGJyZWFrOworLS0gCisyLjMzLjEKKworRnJvbSA5 NzY1NThlYzhiNDEyNTMyM2U0YzdhZGI2MDBjODI0OWY1MzE5ZDVmIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQorRnJvbTogTWljaGFlbCBDYXRhbnphcm8gPG1jYXRhbnphcm9AcmVkaGF0LmNvbT4K K0RhdGU6IFR1ZSwgMTIgT2N0IDIwMjEgMTU6MzM6NTkgLTA1MDAKK1N1YmplY3Q6IFtQQVRDSCAw My8xMF0gZ3NwYXduOiBmaXggaGFuZ3Mgd2hlbiBkdXBpbmcgY2hpbGRfZXJyX3JlcG9ydF9mZAor CitJbiBjYXNlIGNoaWxkX2Vycl9yZXBvcnRfZmQgY29uZmxpY3RzIHdpdGggb25lIG9mIHRoZSB0 YXJnZXRfZmRzLCB0aGUKK2NvZGUgaGVyZSBpcyBjYXJlZnVsIHRvIGR1cCBjaGlsZF9lcnJfcmVw b3J0X2ZkIGluIG9yZGVyIHRvIGF2b2lkCitjb25mbGF0aW5nIHRoZSB0d28uIEl0IHdhcyBhIGdv b2QgaWRlYSwgYnV0IGV2aWRlbnRseSB3YXMgbm90IHRlc3RlZCwKK2JlY2F1c2UgdGhlIG5ld2x5 LWNyZWF0ZWQgZmQgaXMgbm90IGNyZWF0ZWQgd2l0aCBDTE9FWEVDIHNldC4gVGhpcyBtZWFucwor aXQgc3RheXMgb3BlbiBpbiB0aGUgY2hpbGQgcHJvY2VzcywgY2F1c2luZyB0aGUgcGFyZW50IHRv IGhhbmcgZm9yZXZlcgord2FpdGluZyB0byByZWFkIGZyb20gdGhlIG90aGVyIGVuZCBvZiB0aGUg cGlwZS4gT29wcyEKKworVGhlIGZpeCBpcyBzaW1wbGU6IGp1c3Qgc2V0IENMT0VYRUMuIFRoaXMg cmVtb3ZlcyBvdXIgb25seSB1c2FnZSBvZiB0aGUKK3NhZmVfZHVwKCkgZnVuY3Rpb24sIHNvIGl0 IGNhbiBiZSBkcm9wcGVkLgorCitGaXhlcyAjMjUwNgorLS0tCisgZ2xpYi9nc3Bhd24uYyB8IDE2 ICstLS0tLS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDE1IGRl bGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZ2xpYi9nc3Bhd24uYyBiL2dsaWIvZ3NwYXduLmMK K2luZGV4IDljNjVkOWQ5Mi4uMGRlZWRhOGNjIDEwMDY0NAorLS0tIGEvZ2xpYi9nc3Bhd24uYwor KysrIGIvZ2xpYi9nc3Bhd24uYworQEAgLTE1ODgsMjAgKzE1ODgsNiBAQCBzYWZlX2Nsb3NlZnJv bSAoaW50IGxvd2ZkKQorICNlbmRpZgorIH0KKyAKKy0vKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxl ZCBiZXR3ZWVuIGZvcmsoKSBhbmQgZXhlYygpIGFuZCBoZW5jZSBtdXN0IGJlCistICogYXN5bmMt c2lnbmFsLXNhZmUgKHNlZSBzaWduYWwtc2FmZXR5KDcpKS4gKi8KKy1zdGF0aWMgZ2ludAorLXNh ZmVfZHVwIChnaW50IGZkKQorLXsKKy0gIGdpbnQgcmV0OworLQorLSAgZG8KKy0gICAgcmV0ID0g ZHVwIChmZCk7CistICB3aGlsZSAocmV0IDwgMCAmJiAoZXJybm8gPT0gRUlOVFIgfHwgZXJybm8g PT0gRUJVU1kpKTsKKy0KKy0gIHJldHVybiByZXQ7CistfQorLQorIC8qIFRoaXMgZnVuY3Rpb24g aXMgY2FsbGVkIGJldHdlZW4gZm9yaygpIGFuZCBleGVjKCkgYW5kIGhlbmNlIG11c3QgYmUKKyAg KiBhc3luYy1zaWduYWwtc2FmZSAoc2VlIHNpZ25hbC1zYWZldHkoNykpLiAqLworIHN0YXRpYyBn aW50CitAQCAtMTc5NSw3ICsxNzgxLDcgQEAgZG9fZXhlYyAoZ2ludCAgICAgICAgICAgICAgICAg IGNoaWxkX2Vycl9yZXBvcnRfZmQsCisgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICB7Cisg ICAgICAgICAgICAgICBpZiAodGFyZ2V0X2Zkc1tpXSA9PSBjaGlsZF9lcnJfcmVwb3J0X2ZkKQor LSAgICAgICAgICAgICAgICBjaGlsZF9lcnJfcmVwb3J0X2ZkID0gc2FmZV9kdXAgKGNoaWxkX2Vy cl9yZXBvcnRfZmQpOworKyAgICAgICAgICAgICAgICBjaGlsZF9lcnJfcmVwb3J0X2ZkID0gZHVw ZmRfY2xvZXhlYyAoY2hpbGRfZXJyX3JlcG9ydF9mZCk7CisgCisgICAgICAgICAgICAgICBzYWZl X2R1cDIgKHNvdXJjZV9mZHNbaV0sIHRhcmdldF9mZHNbaV0pOworICAgICAgICAgICAgICAgY2xv c2VfYW5kX2ludmFsaWRhdGUgKCZzb3VyY2VfZmRzW2ldKTsKKy0tIAorMi4zMy4xCisKK0Zyb20g NzAyYjdjNTZkZDMxNDM5MmYxMDQ5OWY5ZDYyZWQzZmQ0YmYyZjQ5OCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206IE1pY2hhZWwgQ2F0YW56YXJvIDxtY2F0YW56YXJvQHJlZGhhdC5jb20+ CitEYXRlOiBUaHUsIDE0IE9jdCAyMDIxIDEwOjQ0OjU3IC0wNTAwCitTdWJqZWN0OiBbUEFUQ0gg MDQvMTBdIGdzcGF3bjogZml4IGZkIHJlbWFwcGluZyBjb25mbGF0aW9uIGlzc3VlCisKK1dlIGN1 cnJlbnRseSBkdXAgYWxsIHNvdXJjZSBmZHMgdG8gYXZvaWQgcG9zc2libGUgY29uZmxhdGlvbiB3 aXRoIHRoZQordGFyZ2V0IGZkcywgYnV0IGZhaWwgdG8gY29uc2lkZXIgdGhhdCB0aGUgcmVzdWx0 IG9mIGEgZHVwIG1pZ2h0IGl0c2VsZgorY29uZmxpY3Qgd2l0aCBvbmUgb2YgdGhlIHRhcmdldCBm ZHMuIFNvbHZlIHRoaXMgdGhlIGVhc3kgd2F5IGJ5IGR1cGluZworYWxsIHNvdXJjZV9mZHMgdG8g dmFsdWVzIHRoYXQgYXJlIGdyZWF0ZXIgdGhhbiB0aGUgbGFyZ2VzdCBmZCBpbgordGFyZ2V0X2Zk cy4KKworRml4ZXMgIzI1MDMKKy0tLQorIGdsaWIvZ3NwYXduLmMgfCA0MyArKysrKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDI1IGluc2Vy dGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZ2xpYi9nc3Bhd24uYyBi L2dsaWIvZ3NwYXduLmMKK2luZGV4IDBkZWVkYThjYy4uMTQ5ZjVhNWExIDEwMDY0NAorLS0tIGEv Z2xpYi9nc3Bhd24uYworKysrIGIvZ2xpYi9nc3Bhd24uYworQEAgLTEyOTgsMTMgKzEyOTgsMTMg QEAgdW5zZXRfY2xvZXhlYyAoaW50IGZkKQorIC8qIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJl dHdlZW4gZm9yaygpIGFuZCBleGVjKCkgYW5kIGhlbmNlIG11c3QgYmUKKyAgKiBhc3luYy1zaWdu YWwtc2FmZSAoc2VlIHNpZ25hbC1zYWZldHkoNykpLiAqLworIHN0YXRpYyBpbnQKKy1kdXBmZF9j bG9leGVjIChpbnQgcGFyZW50X2ZkKQorK2R1cGZkX2Nsb2V4ZWMgKGludCBvbGRfZmQsIGludCBu ZXdfZmRfbWluKQorIHsKKyAgIGludCBmZCwgZXJyc3Y7CisgI2lmZGVmIEZfRFVQRkRfQ0xPRVhF QworICAgZG8KKyAgICAgeworLSAgICAgIGZkID0gZmNudGwgKHBhcmVudF9mZCwgRl9EVVBGRF9D TE9FWEVDLCAzKTsKKysgICAgICBmZCA9IGZjbnRsIChvbGRfZmQsIEZfRFVQRkRfQ0xPRVhFQywg bmV3X2ZkX21pbik7CisgICAgICAgZXJyc3YgPSBlcnJubzsKKyAgICAgfQorICAgd2hpbGUgKGZk ID09IC0xICYmIGVycnN2ID09IEVJTlRSKTsKK0BAIC0xMzE1LDcgKzEzMTUsNyBAQCBkdXBmZF9j bG9leGVjIChpbnQgcGFyZW50X2ZkKQorICAgaW50IHJlc3VsdCwgZmxhZ3M7CisgICBkbworICAg ICB7CistICAgICAgZmQgPSBmY250bCAocGFyZW50X2ZkLCBGX0RVUEZELCAzKTsKKysgICAgICBm ZCA9IGZjbnRsIChvbGRfZmQsIEZfRFVQRkQsIG5ld19mZF9taW4pOworICAgICAgIGVycnN2ID0g ZXJybm87CisgICAgIH0KKyAgIHdoaWxlIChmZCA9PSAtMSAmJiBlcnJzdiA9PSBFSU5UUik7CitA QCAtMTY1MSw2ICsxNjUxLDcgQEAgZG9fZXhlYyAoZ2ludCAgICAgICAgICAgICAgICAgIGNoaWxk X2Vycl9yZXBvcnRfZmQsCisgICAgICAgICAgZ3BvaW50ZXIgICAgICAgICAgICAgIHVzZXJfZGF0 YSkKKyB7CisgICBnc2l6ZSBpOworKyAgZ2ludCBtYXhfdGFyZ2V0X2ZkID0gMDsKKyAKKyAgIGlm ICh3b3JraW5nX2RpcmVjdG9yeSAmJiBjaGRpciAod29ya2luZ19kaXJlY3RvcnkpIDwgMCkKKyAg ICAgd3JpdGVfZXJyX2FuZF9leGl0IChjaGlsZF9lcnJfcmVwb3J0X2ZkLAorQEAgLTE3NDksMzkg KzE3NTAsNDUgQEAgZG9fZXhlYyAoZ2ludCAgICAgICAgICAgICAgICAgIGNoaWxkX2Vycl9yZXBv cnRfZmQsCisgICAvKgorICAgICogV29yayB0aHJvdWdoIHRoZSBAc291cmNlX2ZkcyBhbmQgQHRh cmdldF9mZHMgbWFwcGluZy4KKyAgICAqCistICAgKiBCYXNlZCBvbiBjb2RlIGRlcml2ZWQgZnJv bQorKyAgICogQmFzZWQgb24gY29kZSBvcmlnaW5hbGx5IGRlcml2ZWQgZnJvbQorICAgICogZ25v bWUtdGVybWluYWw6c3JjL3Rlcm1pbmFsLXNjcmVlbi5jOnRlcm1pbmFsX3NjcmVlbl9jaGlsZF9z ZXR1cCgpLAorLSAgICogdXNlZCB1bmRlciB0aGUgTEdQTHYyKyB3aXRoIHBlcm1pc3Npb24gZnJv bSBhdXRob3IuCisrICAgKiB1c2VkIHVuZGVyIHRoZSBMR1BMdjIrIHdpdGggcGVybWlzc2lvbiBm cm9tIGF1dGhvci4gKFRoZSBjb2RlIGhhcworKyAgICogc2luY2UgbWlncmF0ZWQgdG8gdnRlOnNy Yy9zcGF3bi5jYzpTcGF3bkNvbnRleHQ6OmV4ZWMgYW5kIGlzIG5vIGxvbmdlcgorKyAgICogdGVy cmlibHkgc2ltaWxhciB0byB3aGF0IHdlIGhhdmUgaGVyZS4pCisgICAgKi8KKyAKKy0gIC8qIEJh c2ljIGZkIGFzc2lnbm1lbnRzICh3aGVyZSBzb3VyY2UgPT0gdGFyZ2V0KSB3ZSBjYW4ganVzdCB1 bnNldCBGRF9DTE9FWEVDCistICAgKgorLSAgICogSWYgd2UncmUgZG9pbmcgcmVtYXBwaW5nIGZk IGFzc2lnbm1lbnRzLCB3ZSBuZWVkIHRvIGhhbmRsZQorLSAgICogdGhlIGNhc2Ugd2hlcmUgdGhl IHVzZXIgaGFzIHNwZWNpZmllZCBlLmcuOgorLSAgICogNSAtPiA0LCA0IC0+IDYKKy0gICAqCist ICAgKiBXZSBkbyB0aGlzIGJ5IGR1cGluZyB0aGUgc291cmNlIGZkcyB0ZW1wb3JhcmlseSBpbiBh IGZpcnN0IHBhc3MuCistICAgKgorLSAgICogSWYgYW55IG9mIHRoZSBAdGFyZ2V0X2ZkcyBjb25m bGljdCB3aXRoIEBjaGlsZF9lcnJfcmVwb3J0X2ZkLCBkdXAgdGhlCistICAgKiBsYXR0ZXIgc28g aXQgZG9lc27igJl0IGdldCBjb25mbGF0ZWQuCistICAgKi8KKyAgIGlmIChuX2ZkcyA+IDApCisg ICAgIHsKKysgICAgICBmb3IgKGkgPSAwOyBpIDwgbl9mZHM7IGkrKykKKysgICAgICAgIG1heF90 YXJnZXRfZmQgPSBNQVggKG1heF90YXJnZXRfZmQsIHRhcmdldF9mZHNbaV0pOworKworKyAgICAg IC8qIElmIHdlJ3JlIGRvaW5nIHJlbWFwcGluZyBmZCBhc3NpZ25tZW50cywgd2UgbmVlZCB0byBo YW5kbGUKKysgICAgICAgKiB0aGUgY2FzZSB3aGVyZSB0aGUgdXNlciBoYXMgc3BlY2lmaWVkIGUu Zy4gNSAtPiA0LCA0IC0+IDYuCisrICAgICAgICogV2UgZG8gdGhpcyBieSBkdXBpbmcgYWxsIHNv dXJjZSBmZHMsIHRha2luZyBjYXJlIHRvIGVuc3VyZSB0aGUgbmV3CisrICAgICAgICogZmRzIGFy ZSBsYXJnZXIgdGhhbiBhbnkgdGFyZ2V0IGZkIHRvIGF2b2lkIGludHJvZHVjaW5nIG5ldyBjb25m bGljdHMuCisrICAgICAgICovCisgICAgICAgZm9yIChpID0gMDsgaSA8IG5fZmRzOyBpKyspCisg ICAgICAgICB7CisgICAgICAgICAgIGlmIChzb3VyY2VfZmRzW2ldICE9IHRhcmdldF9mZHNbaV0p CistICAgICAgICAgICAgc291cmNlX2Zkc1tpXSA9IGR1cGZkX2Nsb2V4ZWMgKHNvdXJjZV9mZHNb aV0pOworKyAgICAgICAgICAgIHNvdXJjZV9mZHNbaV0gPSBkdXBmZF9jbG9leGVjIChzb3VyY2Vf ZmRzW2ldLCBtYXhfdGFyZ2V0X2ZkICsgMSk7CisgICAgICAgICB9CisrCisgICAgICAgZm9yIChp ID0gMDsgaSA8IG5fZmRzOyBpKyspCisgICAgICAgICB7CisrICAgICAgICAgIC8qIEZvciBiYXNp YyBmZCBhc3NpZ25tZW50cyAod2hlcmUgc291cmNlID09IHRhcmdldCksIHdlIGNhbiBqdXN0Cisr ICAgICAgICAgICAqIHVuc2V0IEZEX0NMT0VYRUMuCisrICAgICAgICAgICAqLworICAgICAgICAg ICBpZiAoc291cmNlX2Zkc1tpXSA9PSB0YXJnZXRfZmRzW2ldKQorICAgICAgICAgICAgIHsKKyAg ICAgICAgICAgICAgIHVuc2V0X2Nsb2V4ZWMgKHNvdXJjZV9mZHNbaV0pOworICAgICAgICAgICAg IH0KKyAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgIHsKKysgICAgICAgICAgICAgIC8qIElm IGFueSBvZiB0aGUgQHRhcmdldF9mZHMgY29uZmxpY3Qgd2l0aCBAY2hpbGRfZXJyX3JlcG9ydF9m ZCwKKysgICAgICAgICAgICAgICAqIGR1cCBpdCBzbyBpdCBkb2VzbuKAmXQgZ2V0IGNvbmZsYXRl ZC4KKysgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgaWYgKHRhcmdldF9mZHNbaV0g PT0gY2hpbGRfZXJyX3JlcG9ydF9mZCkKKy0gICAgICAgICAgICAgICAgY2hpbGRfZXJyX3JlcG9y dF9mZCA9IGR1cGZkX2Nsb2V4ZWMgKGNoaWxkX2Vycl9yZXBvcnRfZmQpOworKyAgICAgICAgICAg ICAgICBjaGlsZF9lcnJfcmVwb3J0X2ZkID0gZHVwZmRfY2xvZXhlYyAoY2hpbGRfZXJyX3JlcG9y dF9mZCwgbWF4X3RhcmdldF9mZCArIDEpOworIAorICAgICAgICAgICAgICAgc2FmZV9kdXAyIChz b3VyY2VfZmRzW2ldLCB0YXJnZXRfZmRzW2ldKTsKKyAgICAgICAgICAgICAgIGNsb3NlX2FuZF9p bnZhbGlkYXRlICgmc291cmNlX2Zkc1tpXSk7CistLSAKKzIuMzMuMQorCitGcm9tIDYzMjRlYzFj ZDMzYjkyM2Y1NDMwOTliZDk3NzYzNjc3MmJhOGFlM2UgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CitGcm9tOiBNaWNoYWVsIENhdGFuemFybyA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CitEYXRlOiBU aHUsIDI1IEZlYiAyMDIxIDEyOjIwOjM5IC0wNjAwCitTdWJqZWN0OiBbUEFUQ0ggMDUvMTBdIGdz cGF3bjogSW1wbGVtZW50IGZkIHJlbWFwcGluZyBmb3IgcG9zaXhfc3Bhd24gY29kZXBhdGgKKwor VGhpcyBtZWFucyB0aGF0IEdTdWJwcm9jZXNzIHdpbGwgKHNvbWV0aW1lcykgYmUgYWJsZSB0byB1 c2UgdGhlCitvcHRpbWl6ZWQgcG9zaXhfc3Bhd24gY29kZXBhdGggaW5zdGVhZCBvZiBoYXZpbmcg dG8gZmFsbCBiYWNrIHRvCitmb3JrL2V4ZWMuCistLS0KKyBnbGliL2dzcGF3bi5jIHwgNjUgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tCisgMSBmaWxl IGNoYW5nZWQsIDU4IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQg YS9nbGliL2dzcGF3bi5jIGIvZ2xpYi9nc3Bhd24uYworaW5kZXggMTQ5ZjVhNWExLi4zMDE2OTU5 ODAgMTAwNjQ0CistLS0gYS9nbGliL2dzcGF3bi5jCisrKysgYi9nbGliL2dzcGF3bi5jCitAQCAt MTg3NCw5ICsxODc0LDE0IEBAIGRvX3Bvc2l4X3NwYXduIChjb25zdCBnY2hhciAqIGNvbnN0ICph cmd2LAorICAgICAgICAgICAgICAgICBnaW50ICAgICAgICpjaGlsZF9jbG9zZV9mZHMsCisgICAg ICAgICAgICAgICAgIGdpbnQgICAgICAgIHN0ZGluX2ZkLAorICAgICAgICAgICAgICAgICBnaW50 ICAgICAgICBzdGRvdXRfZmQsCistICAgICAgICAgICAgICAgIGdpbnQgICAgICAgIHN0ZGVycl9m ZCkKKysgICAgICAgICAgICAgICAgZ2ludCAgICAgICAgc3RkZXJyX2ZkLAorKyAgICAgICAgICAg ICAgICBjb25zdCBnaW50ICpzb3VyY2VfZmRzLAorKyAgICAgICAgICAgICAgICBjb25zdCBnaW50 ICp0YXJnZXRfZmRzLAorKyAgICAgICAgICAgICAgICBnc2l6ZSAgICAgICBuX2ZkcykKKyB7Cisg ICBwaWRfdCBwaWQ7CisrICBnaW50ICpkdXBlZF9zb3VyY2VfZmRzID0gTlVMTDsKKysgIGdpbnQg bWF4X3RhcmdldF9mZCA9IDA7CisgICBjb25zdCBnY2hhciAqIGNvbnN0ICphcmd2X3Bhc3M7Cisg ICBwb3NpeF9zcGF3bmF0dHJfdCBhdHRyOworICAgcG9zaXhfc3Bhd25fZmlsZV9hY3Rpb25zX3Qg ZmlsZV9hY3Rpb25zOworQEAgLTE4ODUsNyArMTg5MCw4IEBAIGRvX3Bvc2l4X3NwYXduIChjb25z dCBnY2hhciAqIGNvbnN0ICphcmd2LAorICAgR1NMaXN0ICpjaGlsZF9jbG9zZSA9IE5VTEw7Cisg ICBHU0xpc3QgKmVsZW07CisgICBzaWdzZXRfdCBtYXNrOworLSAgaW50IGksIHI7CisrICBzaXpl X3QgaTsKKysgIGludCByOworIAorICAgaWYgKCphcmd2WzBdID09ICdcMCcpCisgICAgIHsKK0BA IC0xOTk5LDYgKzIwMDUsNDMgQEAgZG9fcG9zaXhfc3Bhd24gKGNvbnN0IGdjaGFyICogY29uc3Qg KmFyZ3YsCisgICAgICAgICBnb3RvIG91dF9jbG9zZV9mZHM7CisgICAgIH0KKyAKKysgIC8qIElm IHNvdXJjZV9mZHNbaV0gIT0gdGFyZ2V0X2Zkc1tpXSwgd2UgbmVlZCB0byBoYW5kbGUgdGhlIGNh c2UKKysgICAqIHdoZXJlIHRoZSB1c2VyIGhhcyBzcGVjaWZpZWQsIGUuZy4sIDUgLT4gNCwgNCAt PiA2LiBXZSBkbyB0aGlzCisrICAgKiBieSBkdXBpbmcgdGhlIHNvdXJjZSBmZHMsIHRha2luZyBj YXJlIHRvIGVuc3VyZSB0aGUgbmV3IGZkcyBhcmUKKysgICAqIGxhcmdlciB0aGFuIGFueSB0YXJn ZXQgZmQgdG8gYXZvaWQgaW50cm9kdWNpbmcgbmV3IGNvbmZsaWN0cy4KKysgICAqCisrICAgKiBJ ZiBzb3VyY2VfZmRzW2ldID09IHRhcmdldF9mZHNbaV0sIHRoZW4gd2UganVzdCBuZWVkIHRvIGxl YWsKKysgICAqIHRoZSBmZCBpbnRvIHRoZSBjaGlsZCBwcm9jZXNzLCB3aGljaCB3ZSAqY291bGQq IGRvIGJ5IHRlbXBvcmFyaWx5CisrICAgKiB1bnNldHRpbmcgQ0xPRVhFQyBhbmQgdGhlbiBzZXR0 aW5nIGl0IGFnYWluIGFmdGVyIHdlIHNwYXduIGlmCisrICAgKiBpdCB3YXMgb3JpZ2luYWxseSBz ZXQuIFBPU0lYIHJlcXVpcmVzIHRoYXQgdGhlIGFkZHVwMiBhY3Rpb24gdW5zZXQKKysgICAqIENM T0VYRUMgaWYgc291cmNlIGFuZCB0YXJnZXQgYXJlIGlkZW50aWNhbCwgc28geW91J2QgdGhpbmsg ZG9pbmcgaXQKKysgICAqIG1hbnVhbGx5IHdvdWxkbid0IGJlIG5lZWRlZCwgYnV0IHVuZm9ydHVu YXRlbHkgYXMgb2YgMjAyMSBtYW55CisrICAgKiBsaWJjcyBzdGlsbCBkb24ndCBkbyBzby4gRXhh bXBsZSBub25jb25mb3JtaW5nIGxpYmNzOgorKyAgICogIEJpb25pYzogaHR0cHM6Ly9hbmRyb2lk Lmdvb2dsZXNvdXJjZS5jb20vcGxhdGZvcm0vYmlvbmljLysvZjZlNWI1ODI2MDQ3MTU3MjliMDlk YjNlMzZhN2FlYjhjMjRiMzZhNC9saWJjL2Jpb25pYy9zcGF3bi5jcHAjNzEKKysgICAqICB1Y2xp YmMtbmc6IGh0dHBzOi8vY2dpdC51Y2xpYmMtbmcub3JnL2NnaS9jZ2l0L3VjbGliYy1uZy5naXQv dHJlZS9saWJydC9zcGF3bi5jP2lkPTdjMzZiY2FlMDlkNjZiYmFhMzVjYmIwMjI1M2FlMDU1NmY0 MjY3N2Ujbjg4CisrICAgKgorKyAgICogQW55d2F5LCB1bnNldHRpbmcgQ0xPRVhFQyBvdXJzZWx2 ZXMgd291bGQgb3BlbiBhIHNtYWxsIHJhY2Ugd2luZG93CisrICAgKiB3aGVyZSB0aGUgZmQgY291 bGQgYmUgaW5oZXJpdGVkIGludG8gYSBjaGlsZCBwcm9jZXNzIGlmIGFub3RoZXIKKysgICAqIHRo cmVhZCBzcGF3bnMgc29tZXRoaW5nIGF0IHRoZSBzYW1lIHRpbWUsIGJlY2F1c2Ugd2UgaGF2ZSBu b3QKKysgICAqIGNhbGxlZCBmb3JrKCkgYW5kIGFyZSBtdWx0aXRocmVhZGVkIGhlcmUuIFRoaXMg cmFjZSBpcyBhdm9pZGFibGUgYnkKKysgICAqIHVzaW5nIGR1cGZkX2Nsb2V4ZWMsIHdoaWNoIHdl IGFscmVhZHkgaGF2ZSB0byBkbyB0byBoYW5kbGUgdGhlCisrICAgKiBzb3VyY2VfZmRzW2ldICE9 IHRhcmdldF9mZHNbaV0gY2FzZS4gU28gbGV0J3MgYWx3YXlzIGRvIGl0IQorKyAgICovCisrCisr ICBmb3IgKGkgPSAwOyBpIDwgbl9mZHM7IGkrKykKKysgICAgbWF4X3RhcmdldF9mZCA9IE1BWCAo bWF4X3RhcmdldF9mZCwgdGFyZ2V0X2Zkc1tpXSk7CisrCisrICBkdXBlZF9zb3VyY2VfZmRzID0g Z19uZXcgKGdpbnQsIG5fZmRzKTsKKysgIGZvciAoaSA9IDA7IGkgPCBuX2ZkczsgaSsrKQorKyAg ICBkdXBlZF9zb3VyY2VfZmRzW2ldID0gZHVwZmRfY2xvZXhlYyAoc291cmNlX2Zkc1tpXSwgbWF4 X3RhcmdldF9mZCArIDEpOworKworKyAgZm9yIChpID0gMDsgaSA8IG5fZmRzOyBpKyspCisrICAg IHsKKysgICAgICByID0gcG9zaXhfc3Bhd25fZmlsZV9hY3Rpb25zX2FkZGR1cDIgKCZmaWxlX2Fj dGlvbnMsIGR1cGVkX3NvdXJjZV9mZHNbaV0sIHRhcmdldF9mZHNbaV0pOworKyAgICAgIGlmIChy ICE9IDApCisrICAgICAgICBnb3RvIG91dF9jbG9zZV9mZHM7CisrICAgIH0KKysKKyAgIC8qIElu dGVudGlvbmFsbHkgY2xvc2UgdGhlIGZkcyBpbiB0aGUgY2hpbGQgYXMgdGhlIGxhc3QgZmlsZSBh Y3Rpb24sCisgICAgKiBoYXZpbmcgYmVlbiBjYXJlZnVsIG5vdCB0byBhZGQgdGhlIHNhbWUgZmQg dG8gdGhpcyBsaXN0IHR3aWNlLgorICAgICoKK0BAIC0yMDI4LDkgKzIwNzEsMTYgQEAgZG9fcG9z aXhfc3Bhd24gKGNvbnN0IGdjaGFyICogY29uc3QgKmFyZ3YsCisgICAgICpjaGlsZF9waWQgPSBw aWQ7CisgCisgb3V0X2Nsb3NlX2ZkczoKKy0gIGZvciAoaSA9IDA7IGkgPCBudW1fcGFyZW50X2Ns b3NlX2ZkczsgaSsrKQorKyAgZm9yIChpID0gMDsgaSA8IChzaXplX3QpIG51bV9wYXJlbnRfY2xv c2VfZmRzOyBpKyspCisgICAgIGNsb3NlX2FuZF9pbnZhbGlkYXRlICgmcGFyZW50X2Nsb3NlX2Zk cyBbaV0pOworIAorKyAgaWYgKGR1cGVkX3NvdXJjZV9mZHMgIT0gTlVMTCkKKysgICAgeworKyAg ICAgIGZvciAoaSA9IDA7IGkgPCBuX2ZkczsgaSsrKQorKyAgICAgICAgY2xvc2VfYW5kX2ludmFs aWRhdGUgKCZkdXBlZF9zb3VyY2VfZmRzW2ldKTsKKysgICAgICBnX2ZyZWUgKGR1cGVkX3NvdXJj ZV9mZHMpOworKyAgICB9CisrCisgICBwb3NpeF9zcGF3bl9maWxlX2FjdGlvbnNfZGVzdHJveSAo JmZpbGVfYWN0aW9ucyk7Cisgb3V0X2ZyZWVfc3Bhd25hdHRyOgorICAgcG9zaXhfc3Bhd25hdHRy X2Rlc3Ryb3kgKCZhdHRyKTsKK0BAIC0yMTE4LDEwICsyMTY4LDggQEAgZm9ya19leGVjIChnYm9v bGVhbiAgICAgICAgICAgICAgaW50ZXJtZWRpYXRlX2NoaWxkLAorICAgY2hpbGRfY2xvc2VfZmRz W25fY2hpbGRfY2xvc2VfZmRzKytdID0gLTE7CisgCisgI2lmZGVmIFBPU0lYX1NQQVdOX0FWQUlM QUJMRQorLSAgLyogRklYTUU6IEhhbmRsZSBAc291cmNlX2ZkcyBhbmQgQHRhcmdldF9mZHMgaW4g ZG9fcG9zaXhfc3Bhd24oKSB1c2luZyB0aGUKKy0gICAqIGZpbGUgYWN0aW9ucyBBUEkuICovCisg ICBpZiAoIWludGVybWVkaWF0ZV9jaGlsZCAmJiB3b3JraW5nX2RpcmVjdG9yeSA9PSBOVUxMICYm ICFjbG9zZV9kZXNjcmlwdG9ycyAmJgorLSAgICAgICFzZWFyY2hfcGF0aF9mcm9tX2VudnAgJiYg Y2hpbGRfc2V0dXAgPT0gTlVMTCAmJiBuX2ZkcyA9PSAwKQorKyAgICAgICFzZWFyY2hfcGF0aF9m cm9tX2VudnAgJiYgY2hpbGRfc2V0dXAgPT0gTlVMTCkKKyAgICAgeworICAgICAgIGdfdHJhY2Vf bWFyayAoR19UUkFDRV9DVVJSRU5UX1RJTUUsIDAsCisgICAgICAgICAgICAgICAgICAgICAiR0xp YiIsICJwb3NpeF9zcGF3biIsCitAQCAtMjEzOCw3ICsyMTg2LDEwIEBAIGZvcmtfZXhlYyAoZ2Jv b2xlYW4gICAgICAgICAgICAgIGludGVybWVkaWF0ZV9jaGlsZCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY2hpbGRfY2xvc2VfZmRzLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdGRpbl9mZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0 X2ZkLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRlcnJfZmQpOworKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRlcnJfZmQsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNvdXJjZV9mZHMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHRhcmdldF9mZHMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5fZmRzKTsKKyAg ICAgICBpZiAoc3RhdHVzID09IDApCisgICAgICAgICBnb3RvIHN1Y2Nlc3M7CisgCistLSAKKzIu MzMuMQorCitGcm9tIGMzZTE0Nzg1N2M5ODM4MzVhMjJkYmNhZDM0OTI4YjQwYmZlZTM5MDQgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBNaWNoYWVsIENhdGFuemFybyA8bWNhdGFuemFy b0Bnbm9tZS5vcmc+CitEYXRlOiBUaHUsIDI1IEZlYiAyMDIxIDEyOjIxOjM4IC0wNjAwCitTdWJq ZWN0OiBbUEFUQ0ggMDYvMTBdIGdzdWJwcm9jZXNzOiBlbnN1cmUgd2UgdGVzdCBmZCByZW1hcHBp bmcgb24gdGhlCisgcG9zaXhfc3Bhd24oKSBjb2RlcGF0aAorCitXZSBzaG91bGQgcnVuIHRlc3Rf cGFzc19mZCB0d2ljZSwgb25jZSB1c2luZyBnc3Bhd24ncyBmb3JrL2V4ZWMgY29kZXBhdGgKK2Fu ZCBvbmNlIGF0dGVtcHRpbmcgdG8gdXNlIGl0cyBwb3NpeF9zcGF3bigpIGNvZGVwYXRoLiBUaGVy ZSdzIG5vCitndWFyYW50ZWUgd2UnbGwgYWN0dWFsbHkgZ2V0IHRoZSBwb3NpeF9zcGF3bigpIGNv ZGVwYXRoLCBidXQgaXQgd29ya3MKK2ZvciBub3cgb24gTGludXguCisKK0ZvciBnb29kIG1lYXN1 cmUsIHJ1biBpdCBhIHRoaXJkIHRpbWUgd2l0aCBubyBmbGFncyBhdCBhbGwuCisKK1RoaXMgY2F1 c2VzIHRoZSB0ZXN0IHRvIGZhaWwgaWYgSSBzZXBhcmF0ZWx5IGJyZWFrIHRoZSBmZCByZW1hcHBp bmcKK2ltcGxlbWVudGF0aW9uLiBXaXRob3V0IHRoaXMsIHdlIGZhaWwgdG8gdGVzdCBmZCByZW1h cHBpbmcgb24gdGhlCitwb3NpeF9zcGF3bigpIGNvZGVwYXRoLgorLS0tCisgZ2lvL3Rlc3RzL2dz dWJwcm9jZXNzLmMgfCA0NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0t LQorIDEgZmlsZSBjaGFuZ2VkLCA0MSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorCitk aWZmIC0tZ2l0IGEvZ2lvL3Rlc3RzL2dzdWJwcm9jZXNzLmMgYi9naW8vdGVzdHMvZ3N1YnByb2Nl c3MuYworaW5kZXggMDg0Yjc3ZGYzLi5iMTBhZGU3NzggMTAwNjQ0CistLS0gYS9naW8vdGVzdHMv Z3N1YnByb2Nlc3MuYworKysrIGIvZ2lvL3Rlc3RzL2dzdWJwcm9jZXNzLmMKK0BAIC0xNjk3LDcg KzE2OTcsOCBAQCB0ZXN0X2NoaWxkX3NldHVwICh2b2lkKQorIH0KKyAKKyBzdGF0aWMgdm9pZAor LXRlc3RfcGFzc19mZCAodm9pZCkKKytkb190ZXN0X3Bhc3NfZmQgKEdTdWJwcm9jZXNzRmxhZ3Mg ICAgIGZsYWdzLAorKyAgICAgICAgICAgICAgICAgR1NwYXduQ2hpbGRTZXR1cEZ1bmMgY2hpbGRf c2V0dXApCisgeworICAgR0Vycm9yICpsb2NhbF9lcnJvciA9IE5VTEw7CisgICBHRXJyb3IgKipl cnJvciA9ICZsb2NhbF9lcnJvcjsKK0BAIC0xNzIyLDkgKzE3MjMsMTEgQEAgdGVzdF9wYXNzX2Zk ICh2b2lkKQorICAgbmVlZGR1cF9mZF9zdHIgPSBnX3N0cmR1cF9wcmludGYgKCIlZCIsIG5lZWRk dXBfcGlwZWZkc1sxXSArIDEpOworIAorICAgYXJncyA9IGdldF90ZXN0X3N1YnByb2Nlc3NfYXJn cyAoIndyaXRlLXRvLWZkcyIsIGJhc2ljX2ZkX3N0ciwgbmVlZGR1cF9mZF9zdHIsIE5VTEwpOwor LSAgbGF1bmNoZXIgPSBnX3N1YnByb2Nlc3NfbGF1bmNoZXJfbmV3IChHX1NVQlBST0NFU1NfRkxB R1NfTk9ORSk7CisrICBsYXVuY2hlciA9IGdfc3VicHJvY2Vzc19sYXVuY2hlcl9uZXcgKGZsYWdz KTsKKyAgIGdfc3VicHJvY2Vzc19sYXVuY2hlcl90YWtlX2ZkIChsYXVuY2hlciwgYmFzaWNfcGlw ZWZkc1sxXSwgYmFzaWNfcGlwZWZkc1sxXSk7CisgICBnX3N1YnByb2Nlc3NfbGF1bmNoZXJfdGFr ZV9mZCAobGF1bmNoZXIsIG5lZWRkdXBfcGlwZWZkc1sxXSwgbmVlZGR1cF9waXBlZmRzWzFdICsg MSk7CisrICBpZiAoY2hpbGRfc2V0dXAgIT0gTlVMTCkKKysgICAgZ19zdWJwcm9jZXNzX2xhdW5j aGVyX3NldF9jaGlsZF9zZXR1cCAobGF1bmNoZXIsIGNoaWxkX3NldHVwLCBOVUxMLCBOVUxMKTsK KyAgIHByb2MgPSBnX3N1YnByb2Nlc3NfbGF1bmNoZXJfc3Bhd252IChsYXVuY2hlciwgKGNvbnN0 IGdjaGFyICogY29uc3QgKikgYXJncy0+cGRhdGEsIGVycm9yKTsKKyAgIGdfcHRyX2FycmF5X2Zy ZWUgKGFyZ3MsIFRSVUUpOworICAgZ19hc3NlcnRfbm9fZXJyb3IgKGxvY2FsX2Vycm9yKTsKK0BA IC0xNzU0LDYgKzE3NTcsMzkgQEAgdGVzdF9wYXNzX2ZkICh2b2lkKQorICAgZ19vYmplY3RfdW5y ZWYgKHByb2MpOworIH0KKyAKKytzdGF0aWMgdm9pZAorK3Rlc3RfcGFzc19mZCAodm9pZCkKKyt7 CisrICBkb190ZXN0X3Bhc3NfZmQgKEdfU1VCUFJPQ0VTU19GTEFHU19OT05FLCBOVUxMKTsKKyt9 CisrCisrc3RhdGljIHZvaWQKKytlbXB0eV9jaGlsZF9zZXR1cCAoZ3BvaW50ZXIgdXNlcl9kYXRh KQorK3sKKyt9CisrCisrc3RhdGljIHZvaWQKKyt0ZXN0X3Bhc3NfZmRfZW1wdHlfY2hpbGRfc2V0 dXAgKHZvaWQpCisreworKyAgLyogVXNpbmcgYSBjaGlsZCBzZXR1cCBmdW5jdGlvbiBmb3JjZXMg Z3NwYXduIHRvIHVzZSBmb3JrL2V4ZWMKKysgICAqIHJhdGhlciB0aGFuIHBvc2l4X3NwYXduLgor KyAgICovCisrICBkb190ZXN0X3Bhc3NfZmQgKEdfU1VCUFJPQ0VTU19GTEFHU19OT05FLCBlbXB0 eV9jaGlsZF9zZXR1cCk7CisrfQorKworK3N0YXRpYyB2b2lkCisrdGVzdF9wYXNzX2ZkX2luaGVy aXRfZmRzICh2b2lkKQorK3sKKysgIC8qIFRyeSB0byB0ZXN0IHRoZSBvcHRpbWl6ZWQgcG9zaXhf c3Bhd24gY29kZXBhdGggaW5zdGVhZCBvZgorKyAgICogZm9yay9leGVjLiBDdXJyZW50bHkgdGhp cyByZXF1aXJlcyB1c2luZyBJTkhFUklUX0ZEUyBzaW5jZSBnc3Bhd24ncworKyAgICogcG9zaXhf c3Bhd24gY29kZXBhdGggZG9lcyBub3QgY3VycmVudGx5IGhhbmRsZSBjbG9zaW5nCisrICAgKiBu b24taW5oZXJpdGVkIGZkcy4gTm90ZSB0aGF0IHVzaW5nIElOSEVSSVRfRkRTIG1lYW5zIG91ciB0 ZXN0aW5nIG9mCisrICAgKiBnX3N1YnByb2Nlc3NfbGF1bmNoZXJfdGFrZV9mZCgpIGlzIGxlc3Mt Y29tcHJlaGVuc2l2ZSB0aGFuIHdoZW4KKysgICAqIHVzaW5nIEdfU1VCUFJPQ0VTU19GTEFHU19O T05FLgorKyAgICovCisrICBkb190ZXN0X3Bhc3NfZmQgKEdfU1VCUFJPQ0VTU19GTEFHU19JTkhF UklUX0ZEUywgTlVMTCk7CisrfQorKworICNlbmRpZgorIAorIHN0YXRpYyB2b2lkCitAQCAtMTg5 MCw3ICsxOTI2LDkgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQorICAgZ190ZXN0X2Fk ZF9mdW5jICgiL2dzdWJwcm9jZXNzL3N0ZG91dC1maWxlIiwgdGVzdF9zdGRvdXRfZmlsZSk7Cisg ICBnX3Rlc3RfYWRkX2Z1bmMgKCIvZ3N1YnByb2Nlc3Mvc3Rkb3V0LWZkIiwgdGVzdF9zdGRvdXRf ZmQpOworICAgZ190ZXN0X2FkZF9mdW5jICgiL2dzdWJwcm9jZXNzL2NoaWxkLXNldHVwIiwgdGVz dF9jaGlsZF9zZXR1cCk7CistICBnX3Rlc3RfYWRkX2Z1bmMgKCIvZ3N1YnByb2Nlc3MvcGFzcy1m ZCIsIHRlc3RfcGFzc19mZCk7CisrICBnX3Rlc3RfYWRkX2Z1bmMgKCIvZ3N1YnByb2Nlc3MvcGFz cy1mZC9iYXNpYyIsIHRlc3RfcGFzc19mZCk7CisrICBnX3Rlc3RfYWRkX2Z1bmMgKCIvZ3N1YnBy b2Nlc3MvcGFzcy1mZC9lbXB0eS1jaGlsZC1zZXR1cCIsIHRlc3RfcGFzc19mZF9lbXB0eV9jaGls ZF9zZXR1cCk7CisrICBnX3Rlc3RfYWRkX2Z1bmMgKCIvZ3N1YnByb2Nlc3MvcGFzcy1mZC9pbmhl cml0LWZkcyIsIHRlc3RfcGFzc19mZF9pbmhlcml0X2Zkcyk7CisgI2VuZGlmCisgICBnX3Rlc3Rf YWRkX2Z1bmMgKCIvZ3N1YnByb2Nlc3MvbGF1bmNoZXItZW52aXJvbm1lbnQiLCB0ZXN0X2xhdW5j aGVyX2Vudmlyb25tZW50KTsKKyAKKy0tIAorMi4zMy4xCisKK0Zyb20gY2UxNzRlNDAwNTNkMjNm MDFiYjEzZmQ5NDUzZjBmZmI4YzJlN2UyZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206 IE1pY2hhZWwgQ2F0YW56YXJvIDxtY2F0YW56YXJvQHJlZGhhdC5jb20+CitEYXRlOiBUaHUsIDE0 IE9jdCAyMDIxIDExOjAxOjMzIC0wNTAwCitTdWJqZWN0OiBbUEFUQ0ggMDcvMTBdIGdzcGF3bjog Q2hlY2sgZnJvbSBlcnJvcnMgZnJvbSBzYWZlX2R1cDIoKSBhbmQKKyBkdXBmZF9jbG9leGVjKCkK KworQWx0aG91Z2ggdW5saWtlbHksIHRoZXNlIGZ1bmN0aW9ucyBjYW4gZmFpbCwgZS5nLiBpZiB3 ZSBydW4gb3V0IG9mIGZpbGUKK2Rlc2NyaXB0b3JzLiBDaGVjayBmb3IgZXJyb3JzIHRvIGltcHJv dmUgcm9idXN0bmVzcy4gVGhpcyBpcyBlc3BlY2lhbGx5CitpbXBvcnRhbnQgbm93IHRoYXQgSSBj aGFuZ2VkIG91ciB1c2Ugb2YgZHVwZmRfY2xvZXhlYygpIHRvIGF2b2lkCityZXR1cm5pbmcgZmRz IHNtYWxsZXIgdGhhbiB0aGUgbGFyZ2VzdCBmZCBpbiB0YXJnZXRfZmRzLiBBbiBhcHBsaWNhdGlv bgordGhhdCBhdHRlbXB0cyB0byByZW1hcCB0byB0aGUgaGlnaGVzdC1hbGxvd2VkIGZkIHZhbHVl IGRlc2VydmVzIGF0IGxlYXN0Citzb21lIHNvcnQgb2YgYXR0ZW1wdCBhdCBlcnJvciByZXBvcnRp bmcsIG5vdCBzaWxlbnQgZmFpbHVyZS4KKy0tLQorIGdsaWIvZ3NwYXduLmMgfCA0MCArKysrKysr KysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDI5IGlu c2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZ2xpYi9nc3Bhd24u YyBiL2dsaWIvZ3NwYXduLmMKK2luZGV4IDMwMTY5NTk4MC4uODQ4ZmQ5ZjZlIDEwMDY0NAorLS0t IGEvZ2xpYi9nc3Bhd24uYworKysrIGIvZ2xpYi9nc3Bhd24uYworQEAgLTE2NjAsNyArMTY2MCw2 IEBAIGRvX2V4ZWMgKGdpbnQgICAgICAgICAgICAgICAgICBjaGlsZF9lcnJfcmVwb3J0X2ZkLAor ICAgLyogUmVkaXJlY3QgcGlwZXMgYXMgcmVxdWlyZWQgKi8KKyAgIGlmIChzdGRpbl9mZCA+PSAw KQorICAgICB7CistICAgICAgLyogZHVwMiBjYW4ndCBhY3R1YWxseSBmYWlsIGhlcmUgSSBkb24n dCB0aGluayAqLworICAgICAgIGlmIChzYWZlX2R1cDIgKHN0ZGluX2ZkLCAwKSA8IDApCisgICAg ICAgICB3cml0ZV9lcnJfYW5kX2V4aXQgKGNoaWxkX2Vycl9yZXBvcnRfZmQsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIENISUxEX0RVUDJfRkFJTEVEKTsKK0BAIC0xNjc2LDEzICsxNjc1 LDE0IEBAIGRvX2V4ZWMgKGdpbnQgICAgICAgICAgICAgICAgICBjaGlsZF9lcnJfcmVwb3J0X2Zk LAorICAgICAgIGlmIChyZWFkX251bGwgPCAwKQorICAgICAgICAgd3JpdGVfZXJyX2FuZF9leGl0 IChjaGlsZF9lcnJfcmVwb3J0X2ZkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDSElM RF9EVVAyX0ZBSUxFRCk7CistICAgICAgc2FmZV9kdXAyIChyZWFkX251bGwsIDApOworKyAgICAg IGlmIChzYWZlX2R1cDIgKHJlYWRfbnVsbCwgMCkgPCAwKQorKyAgICAgICAgd3JpdGVfZXJyX2Fu ZF9leGl0IChjaGlsZF9lcnJfcmVwb3J0X2ZkLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBDSElMRF9EVVAyX0ZBSUxFRCk7CisgICAgICAgY2xvc2VfYW5kX2ludmFsaWRhdGUgKCZyZWFk X251bGwpOworICAgICB9CisgCisgICBpZiAoc3Rkb3V0X2ZkID49IDApCisgICAgIHsKKy0gICAg ICAvKiBkdXAyIGNhbid0IGFjdHVhbGx5IGZhaWwgaGVyZSBJIGRvbid0IHRoaW5rICovCisgICAg ICAgaWYgKHNhZmVfZHVwMiAoc3Rkb3V0X2ZkLCAxKSA8IDApCisgICAgICAgICB3cml0ZV9lcnJf YW5kX2V4aXQgKGNoaWxkX2Vycl9yZXBvcnRfZmQsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIENISUxEX0RVUDJfRkFJTEVEKTsKK0BAIC0xNjk3LDEzICsxNjk3LDE0IEBAIGRvX2V4ZWMg KGdpbnQgICAgICAgICAgICAgICAgICBjaGlsZF9lcnJfcmVwb3J0X2ZkLAorICAgICAgIGlmICh3 cml0ZV9udWxsIDwgMCkKKyAgICAgICAgIHdyaXRlX2Vycl9hbmRfZXhpdCAoY2hpbGRfZXJyX3Jl cG9ydF9mZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0hJTERfRFVQMl9GQUlMRUQp OworLSAgICAgIHNhZmVfZHVwMiAod3JpdGVfbnVsbCwgMSk7CisrICAgICAgaWYgKHNhZmVfZHVw MiAod3JpdGVfbnVsbCwgMSkgPCAwKQorKyAgICAgICAgd3JpdGVfZXJyX2FuZF9leGl0IChjaGls ZF9lcnJfcmVwb3J0X2ZkLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDSElMRF9EVVAy X0ZBSUxFRCk7CisgICAgICAgY2xvc2VfYW5kX2ludmFsaWRhdGUgKCZ3cml0ZV9udWxsKTsKKyAg ICAgfQorIAorICAgaWYgKHN0ZGVycl9mZCA+PSAwKQorICAgICB7CistICAgICAgLyogZHVwMiBj YW4ndCBhY3R1YWxseSBmYWlsIGhlcmUgSSBkb24ndCB0aGluayAqLworICAgICAgIGlmIChzYWZl X2R1cDIgKHN0ZGVycl9mZCwgMikgPCAwKQorICAgICAgICAgd3JpdGVfZXJyX2FuZF9leGl0IChj aGlsZF9lcnJfcmVwb3J0X2ZkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDSElMRF9E VVAyX0ZBSUxFRCk7CitAQCAtMTcxOCw3ICsxNzE5LDkgQEAgZG9fZXhlYyAoZ2ludCAgICAgICAg ICAgICAgICAgIGNoaWxkX2Vycl9yZXBvcnRfZmQsCisgICAgICAgaWYgKHdyaXRlX251bGwgPCAw KQorICAgICAgICAgd3JpdGVfZXJyX2FuZF9leGl0IChjaGlsZF9lcnJfcmVwb3J0X2ZkLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBDSElMRF9EVVAyX0ZBSUxFRCk7CistICAgICAgc2Fm ZV9kdXAyICh3cml0ZV9udWxsLCAyKTsKKysgICAgICBpZiAoc2FmZV9kdXAyICh3cml0ZV9udWxs LCAyKSA8IDApCisrICAgICAgICB3cml0ZV9lcnJfYW5kX2V4aXQgKGNoaWxkX2Vycl9yZXBvcnRf ZmQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIENISUxEX0RVUDJfRkFJTEVEKTsKKyAg ICAgICBjbG9zZV9hbmRfaW52YWxpZGF0ZSAoJndyaXRlX251bGwpOworICAgICB9CisgCitAQCAt MTczMSw3ICsxNzM0LDggQEAgZG9fZXhlYyAoZ2ludCAgICAgICAgICAgICAgICAgIGNoaWxkX2Vy cl9yZXBvcnRfZmQsCisgICAgIHsKKyAgICAgICBpZiAoY2hpbGRfc2V0dXAgPT0gTlVMTCAmJiBu X2ZkcyA9PSAwKQorICAgICAgICAgeworLSAgICAgICAgICBzYWZlX2R1cDIgKGNoaWxkX2Vycl9y ZXBvcnRfZmQsIDMpOworKyAgICAgICAgICBpZiAoc2FmZV9kdXAyIChjaGlsZF9lcnJfcmVwb3J0 X2ZkLCAzKSA8IDApCisrICAgICAgICAgICAgd3JpdGVfZXJyX2FuZF9leGl0IChjaGlsZF9lcnJf cmVwb3J0X2ZkLCBDSElMRF9EVVAyX0ZBSUxFRCk7CisgICAgICAgICAgIHNldF9jbG9leGVjIChH SU5UX1RPX1BPSU5URVIgKDApLCAzKTsKKyAgICAgICAgICAgc2FmZV9jbG9zZWZyb20gKDQpOwor ICAgICAgICAgICBjaGlsZF9lcnJfcmVwb3J0X2ZkID0gMzsKK0BAIC0xNzcwLDcgKzE3NzQsMTEg QEAgZG9fZXhlYyAoZ2ludCAgICAgICAgICAgICAgICAgIGNoaWxkX2Vycl9yZXBvcnRfZmQsCisg ICAgICAgZm9yIChpID0gMDsgaSA8IG5fZmRzOyBpKyspCisgICAgICAgICB7CisgICAgICAgICAg IGlmIChzb3VyY2VfZmRzW2ldICE9IHRhcmdldF9mZHNbaV0pCistICAgICAgICAgICAgc291cmNl X2Zkc1tpXSA9IGR1cGZkX2Nsb2V4ZWMgKHNvdXJjZV9mZHNbaV0sIG1heF90YXJnZXRfZmQgKyAx KTsKKysgICAgICAgICAgICB7CisrICAgICAgICAgICAgICBzb3VyY2VfZmRzW2ldID0gZHVwZmRf Y2xvZXhlYyAoc291cmNlX2Zkc1tpXSwgbWF4X3RhcmdldF9mZCArIDEpOworKyAgICAgICAgICAg ICAgaWYgKHNvdXJjZV9mZHNbaV0gPCAwKQorKyAgICAgICAgICAgICAgICB3cml0ZV9lcnJfYW5k X2V4aXQgKGNoaWxkX2Vycl9yZXBvcnRfZmQsIENISUxEX0RVUDJfRkFJTEVEKTsKKysgICAgICAg ICAgICB9CisgICAgICAgICB9CisgCisgICAgICAgZm9yIChpID0gMDsgaSA8IG5fZmRzOyBpKysp CitAQCAtMTc4OCw5ICsxNzk2LDE1IEBAIGRvX2V4ZWMgKGdpbnQgICAgICAgICAgICAgICAgICBj aGlsZF9lcnJfcmVwb3J0X2ZkLAorICAgICAgICAgICAgICAgICogZHVwIGl0IHNvIGl0IGRvZXNu 4oCZdCBnZXQgY29uZmxhdGVkLgorICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICBp ZiAodGFyZ2V0X2Zkc1tpXSA9PSBjaGlsZF9lcnJfcmVwb3J0X2ZkKQorLSAgICAgICAgICAgICAg ICBjaGlsZF9lcnJfcmVwb3J0X2ZkID0gZHVwZmRfY2xvZXhlYyAoY2hpbGRfZXJyX3JlcG9ydF9m ZCwgbWF4X3RhcmdldF9mZCArIDEpOworKyAgICAgICAgICAgICAgICB7CisrICAgICAgICAgICAg ICAgICAgY2hpbGRfZXJyX3JlcG9ydF9mZCA9IGR1cGZkX2Nsb2V4ZWMgKGNoaWxkX2Vycl9yZXBv cnRfZmQsIG1heF90YXJnZXRfZmQgKyAxKTsKKysgICAgICAgICAgICAgICAgICBpZiAoY2hpbGRf ZXJyX3JlcG9ydF9mZCA8IDApCisrICAgICAgICAgICAgICAgICAgICB3cml0ZV9lcnJfYW5kX2V4 aXQgKGNoaWxkX2Vycl9yZXBvcnRfZmQsIENISUxEX0RVUDJfRkFJTEVEKTsKKysgICAgICAgICAg ICAgICAgfQorKworKyAgICAgICAgICAgICAgaWYgKHNhZmVfZHVwMiAoc291cmNlX2Zkc1tpXSwg dGFyZ2V0X2Zkc1tpXSkgPCAwKQorKyAgICAgICAgICAgICAgICB3cml0ZV9lcnJfYW5kX2V4aXQg KGNoaWxkX2Vycl9yZXBvcnRfZmQsIENISUxEX0RVUDJfRkFJTEVEKTsKKyAKKy0gICAgICAgICAg ICAgIHNhZmVfZHVwMiAoc291cmNlX2Zkc1tpXSwgdGFyZ2V0X2Zkc1tpXSk7CisgICAgICAgICAg ICAgICBjbG9zZV9hbmRfaW52YWxpZGF0ZSAoJnNvdXJjZV9mZHNbaV0pOworICAgICAgICAgICAg IH0KKyAgICAgICAgIH0KK0BAIC0yMDMzLDcgKzIwNDcsMTEgQEAgZG9fcG9zaXhfc3Bhd24gKGNv bnN0IGdjaGFyICogY29uc3QgKmFyZ3YsCisgCisgICBkdXBlZF9zb3VyY2VfZmRzID0gZ19uZXcg KGdpbnQsIG5fZmRzKTsKKyAgIGZvciAoaSA9IDA7IGkgPCBuX2ZkczsgaSsrKQorLSAgICBkdXBl ZF9zb3VyY2VfZmRzW2ldID0gZHVwZmRfY2xvZXhlYyAoc291cmNlX2Zkc1tpXSwgbWF4X3Rhcmdl dF9mZCArIDEpOworKyAgICB7CisrICAgICAgZHVwZWRfc291cmNlX2Zkc1tpXSA9IGR1cGZkX2Ns b2V4ZWMgKHNvdXJjZV9mZHNbaV0sIG1heF90YXJnZXRfZmQgKyAxKTsKKysgICAgICBpZiAoZHVw ZWRfc291cmNlX2Zkc1tpXSA8IDApCisrICAgICAgICBnb3RvIG91dF9jbG9zZV9mZHM7CisrICAg IH0KKyAKKyAgIGZvciAoaSA9IDA7IGkgPCBuX2ZkczsgaSsrKQorICAgICB7CistLSAKKzIuMzMu MQorCitGcm9tIDgxMGI3OGZkNzljYWE4YzQ0MTg3MzVmNTEzOTIxYTVhZjFjMjI1YjMgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBNaWNoYWVsIENhdGFuemFybyA8bWNhdGFuemFyb0By ZWRoYXQuY29tPgorRGF0ZTogV2VkLCAyMCBPY3QgMjAyMSAxNjo1MTo0NCAtMDUwMAorU3ViamVj dDogW1BBVENIIDA4LzEwXSBnc3Bhd246IGFkZCBuZXcgZXJyb3IgbWVzc2FnZSBmb3Igb3Blbigp IGZhaWx1cmVzCisKK1JlcG9ydGluZyB0aGVzZSBhcyBkdXAyKCkgZmFpbHVyZXMgaXMgYm9ndXMu CistLS0KKyBnbGliL2dzcGF3bi5jIHwgMTcgKysrKysrKysrKysrKy0tLS0KKyAxIGZpbGUgY2hh bmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2ds aWIvZ3NwYXduLmMgYi9nbGliL2dzcGF3bi5jCitpbmRleCA4NDhmZDlmNmUuLmRmZDFiMjI2OCAx MDA2NDQKKy0tLSBhL2dsaWIvZ3NwYXduLmMKKysrKyBiL2dsaWIvZ3NwYXduLmMKK0BAIC0xNjIw LDYgKzE2MjAsNyBAQCBlbnVtCisgeworICAgQ0hJTERfQ0hESVJfRkFJTEVELAorICAgQ0hJTERf RVhFQ19GQUlMRUQsCisrICBDSElMRF9PUEVOX0ZBSUxFRCwKKyAgIENISUxEX0RVUDJfRkFJTEVE LAorICAgQ0hJTERfRk9SS19GQUlMRUQKKyB9OworQEAgLTE2NzQsNyArMTY3NSw3IEBAIGRvX2V4 ZWMgKGdpbnQgICAgICAgICAgICAgICAgICBjaGlsZF9lcnJfcmVwb3J0X2ZkLAorICAgICAgIGdp bnQgcmVhZF9udWxsID0gc2FmZV9vcGVuICgiL2Rldi9udWxsIiwgT19SRE9OTFkpOworICAgICAg IGlmIChyZWFkX251bGwgPCAwKQorICAgICAgICAgd3JpdGVfZXJyX2FuZF9leGl0IChjaGlsZF9l cnJfcmVwb3J0X2ZkLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBDSElMRF9EVVAyX0ZB SUxFRCk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIENISUxEX09QRU5fRkFJTEVEKTsK KyAgICAgICBpZiAoc2FmZV9kdXAyIChyZWFkX251bGwsIDApIDwgMCkKKyAgICAgICAgIHdyaXRl X2Vycl9hbmRfZXhpdCAoY2hpbGRfZXJyX3JlcG9ydF9mZCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQ0hJTERfRFVQMl9GQUlMRUQpOworQEAgLTE2OTYsNyArMTY5Nyw3IEBAIGRvX2V4 ZWMgKGdpbnQgICAgICAgICAgICAgICAgICBjaGlsZF9lcnJfcmVwb3J0X2ZkLAorICAgICAgIGdp bnQgd3JpdGVfbnVsbCA9IHNhZmVfb3BlbiAoIi9kZXYvbnVsbCIsIE9fV1JPTkxZKTsKKyAgICAg ICBpZiAod3JpdGVfbnVsbCA8IDApCisgICAgICAgICB3cml0ZV9lcnJfYW5kX2V4aXQgKGNoaWxk X2Vycl9yZXBvcnRfZmQsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIENISUxEX0RVUDJf RkFJTEVEKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0hJTERfT1BFTl9GQUlMRUQp OworICAgICAgIGlmIChzYWZlX2R1cDIgKHdyaXRlX251bGwsIDEpIDwgMCkKKyAgICAgICAgIHdy aXRlX2Vycl9hbmRfZXhpdCAoY2hpbGRfZXJyX3JlcG9ydF9mZCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ0hJTERfRFVQMl9GQUlMRUQpOworQEAgLTE3MTgsNyArMTcxOSw3IEBAIGRv X2V4ZWMgKGdpbnQgICAgICAgICAgICAgICAgICBjaGlsZF9lcnJfcmVwb3J0X2ZkLAorICAgICAg IGdpbnQgd3JpdGVfbnVsbCA9IHNhZmVfb3BlbiAoIi9kZXYvbnVsbCIsIE9fV1JPTkxZKTsKKyAg ICAgICBpZiAod3JpdGVfbnVsbCA8IDApCisgICAgICAgICB3cml0ZV9lcnJfYW5kX2V4aXQgKGNo aWxkX2Vycl9yZXBvcnRfZmQsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIENISUxEX0RV UDJfRkFJTEVEKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0hJTERfT1BFTl9GQUlM RUQpOworICAgICAgIGlmIChzYWZlX2R1cDIgKHdyaXRlX251bGwsIDIpIDwgMCkKKyAgICAgICAg IHdyaXRlX2Vycl9hbmRfZXhpdCAoY2hpbGRfZXJyX3JlcG9ydF9mZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQ0hJTERfRFVQMl9GQUlMRUQpOworQEAgLTI1MDgsNyArMjUwOSwxNSBA QCBmb3JrX2V4ZWMgKGdib29sZWFuICAgICAgICAgICAgICBpbnRlcm1lZGlhdGVfY2hpbGQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19zdHJlcnJvciAoYnVmWzFdKSk7CisgCisgICAg ICAgICAgICAgICBicmVhazsKKy0gICAgICAgICAgICAgIAorKworKyAgICAgICAgICAgIGNhc2Ug Q0hJTERfT1BFTl9GQUlMRUQ6CisrICAgICAgICAgICAgICBnX3NldF9lcnJvciAoZXJyb3IsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgR19TUEFXTl9FUlJPUiwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICBHX1NQQVdOX0VSUk9SX0ZBSUxFRCwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICBfKCJGYWlsZWQgdG8gb3BlbiBmaWxlIHRvIHJlbWFwIGZpbGUgZGVzY3JpcHRvciAo JXMpIiksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19zdHJlcnJvciAoYnVmWzFdKSk7 CisrICAgICAgICAgICAgICBicmVhazsKKysKKyAgICAgICAgICAgICBjYXNlIENISUxEX0RVUDJf RkFJTEVEOgorICAgICAgICAgICAgICAgZ19zZXRfZXJyb3IgKGVycm9yLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEdfU1BBV05fRVJST1IsCistLSAKKzIuMzMuMQorCitGcm9tIDgxNWI2 ZjFkZTg5Y2M2NjU0OTJhZjMxODkzMjY4ZmU1OGM2ODZkNmYgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCitGcm9tOiBNaWNoYWVsIENhdGFuemFybyA8bWNhdGFuemFyb0ByZWRoYXQuY29tPgorRGF0 ZTogVHVlLCAyNiBPY3QgMjAyMSAyMToyNzoxNSAtMDUwMAorU3ViamVjdDogW1BBVENIIDA5LzEw XSBBZGQgdGVzdHMgZm9yIEdTdWJwcm9jZXNzIGZkIGNvbmZsYXRpb24gaXNzdWVzCisKK1RoaXMg dGVzdHMgZm9yICMyNTAzLiBJdCdzIGZyYWdpbGUsIGJ1dCB0aGVyZSBpcyBubyBub24tZnJhZ2ls ZSB3YXkgdG8KK3Rlc3QgdGhpcy4gSWYgdGhlIHRlc3QgYnJlYWtzIGluIHRoZSBmdXR1cmUsIGl0 IHdpbGwgcGFzcyB3aXRob3V0CitzdWNjZXNzZnVsbHkgdGVzdGluZyB0aGUgYnVnLCBub3QgZmFp bCBzcHVyaW91c2x5LCBzbyBJIHRoaW5rIHRoaXMgaXMKK09LLgorLS0tCisgZ2lvL3Rlc3RzL2dz dWJwcm9jZXNzLXRlc3Rwcm9nLmMgfCAgNTMgKysrKysrKysrKystCisgZ2lvL3Rlc3RzL2dzdWJw cm9jZXNzLmMgICAgICAgICAgfCAxNDQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwor IDIgZmlsZXMgY2hhbmdlZCwgMTk1IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisKK2Rp ZmYgLS1naXQgYS9naW8vdGVzdHMvZ3N1YnByb2Nlc3MtdGVzdHByb2cuYyBiL2dpby90ZXN0cy9n c3VicHJvY2Vzcy10ZXN0cHJvZy5jCitpbmRleCBkYTNjZjhkMDAuLjkwYmU5MzhiOCAxMDA2NDQK Ky0tLSBhL2dpby90ZXN0cy9nc3VicHJvY2Vzcy10ZXN0cHJvZy5jCisrKysgYi9naW8vdGVzdHMv Z3N1YnByb2Nlc3MtdGVzdHByb2cuYworQEAgLTUsOCArNSw2IEBACisgI2luY2x1ZGUgPGVycm5v Lmg+CisgI2lmZGVmIEdfT1NfVU5JWAorICNpbmNsdWRlIDx1bmlzdGQuaD4KKy0jaW5jbHVkZSA8 Z2lvL2d1bml4aW5wdXRzdHJlYW0uaD4KKy0jaW5jbHVkZSA8Z2lvL2d1bml4b3V0cHV0c3RyZWFt Lmg+CisgI2Vsc2UKKyAjaW5jbHVkZSA8aW8uaD4KKyAjZW5kaWYKK0BAIC0xNTAsNiArMTQ4LDU1 IEBAIHdyaXRlX3RvX2ZkcyAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQorICAgcmV0dXJuIDA7Cisg fQorIAorK3N0YXRpYyBpbnQKKytyZWFkX2Zyb21fZmQgKGludCBhcmdjLCBjaGFyICoqYXJndikK Kyt7CisrICBpbnQgZmQ7CisrICBjb25zdCBjaGFyIGV4cGVjdGVkUmVzdWx0W10gPSAiWWF5IHN1 Y2Nlc3MhIjsKKysgIGd1aW50OCBidWZbc2l6ZW9mIChleHBlY3RlZFJlc3VsdCkgKyAxXTsKKysg IGdzaXplIGJ5dGVzX3JlYWQ7CisrICBGSUxFICpmOworKworKyAgaWYgKGFyZ2MgIT0gMykKKysg ICAgeworKyAgICAgIGdfcHJpbnQgKCJVc2FnZTogJXMgcmVhZC1mcm9tLWZkIEZEXG4iLCBhcmd2 WzBdKTsKKysgICAgICByZXR1cm4gMTsKKysgICAgfQorKworKyAgZmQgPSBhdG9pIChhcmd2WzJd KTsKKysgIGlmIChmZCA9PSAwKQorKyAgICB7CisrICAgICAgZ193YXJuaW5nICgiQXJndW1lbnQg XCIlc1wiIGRvZXMgbm90IGxvb2sgbGlrZSBhIHZhbGlkIG5vbnplcm8gZmlsZSBkZXNjcmlwdG9y IiwgYXJndlsyXSk7CisrICAgICAgcmV0dXJuIDE7CisrICAgIH0KKysKKysgIGYgPSBmZG9wZW4g KGZkLCAiciIpOworKyAgaWYgKGYgPT0gTlVMTCkKKysgICAgeworKyAgICAgIGdfd2FybmluZyAo IkZhaWxlZCB0byBvcGVuIGZkICVkOiAlcyIsIGZkLCBnX3N0cmVycm9yIChlcnJubykpOworKyAg ICAgIHJldHVybiAxOworKyAgICB9CisrCisrICBieXRlc19yZWFkID0gZnJlYWQgKGJ1ZiwgMSwg c2l6ZW9mIChidWYpLCBmKTsKKysgIGlmIChieXRlc19yZWFkICE9IHNpemVvZiAoZXhwZWN0ZWRS ZXN1bHQpKQorKyAgICB7CisrICAgICAgZ193YXJuaW5nICgiUmVhZCAlenUgYnl0ZXMsIGJ1dCBl eHBlY3RlZCAlenUiLCBieXRlc19yZWFkLCBzaXplb2YgKGV4cGVjdGVkUmVzdWx0KSk7CisrICAg ICAgcmV0dXJuIDE7CisrICAgIH0KKysKKysgIGlmIChtZW1jbXAgKGV4cGVjdGVkUmVzdWx0LCBi dWYsIHNpemVvZiAoZXhwZWN0ZWRSZXN1bHQpKSAhPSAwKQorKyAgICB7CisrICAgICAgYnVmW3Np emVvZiAoZXhwZWN0ZWRSZXN1bHQpXSA9ICdcMCc7CisrICAgICAgZ193YXJuaW5nICgiRXhwZWN0 ZWQgXCIlc1wiIGJ1dCByZWFkICBcIiVzXCIiLCBleHBlY3RlZFJlc3VsdCwgKGNoYXIgKilidWYp OworKyAgICAgIHJldHVybiAxOworKyAgICB9CisrCisrICBpZiAoZmNsb3NlIChmKSA9PSAtMSkK KysgICAgZ19hc3NlcnRfbm90X3JlYWNoZWQgKCk7CisrCisrICByZXR1cm4gMDsKKyt9CisrCisg c3RhdGljIGludAorIGVudl9tb2RlIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCisgeworQEAgLTI0 Miw2ICsyODksOCBAQCBtYWluIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCisgICAgIHJldHVybiBz bGVlcF9mb3JldmVyX21vZGUgKGFyZ2MsIGFyZ3YpOworICAgZWxzZSBpZiAoc3RyY21wIChtb2Rl LCAid3JpdGUtdG8tZmRzIikgPT0gMCkKKyAgICAgcmV0dXJuIHdyaXRlX3RvX2ZkcyAoYXJnYywg YXJndik7CisrICBlbHNlIGlmIChzdHJjbXAgKG1vZGUsICJyZWFkLWZyb20tZmQiKSA9PSAwKQor KyAgICByZXR1cm4gcmVhZF9mcm9tX2ZkIChhcmdjLCBhcmd2KTsKKyAgIGVsc2UgaWYgKHN0cmNt cCAobW9kZSwgImVudiIpID09IDApCisgICAgIHJldHVybiBlbnZfbW9kZSAoYXJnYywgYXJndik7 CisgICBlbHNlIGlmIChzdHJjbXAgKG1vZGUsICJjd2QiKSA9PSAwKQorZGlmZiAtLWdpdCBhL2dp by90ZXN0cy9nc3VicHJvY2Vzcy5jIGIvZ2lvL3Rlc3RzL2dzdWJwcm9jZXNzLmMKK2luZGV4IGIx MGFkZTc3OC4uZGYxMzA3MGY3IDEwMDY0NAorLS0tIGEvZ2lvL3Rlc3RzL2dzdWJwcm9jZXNzLmMK KysrKyBiL2dpby90ZXN0cy9nc3VicHJvY2Vzcy5jCitAQCAtNSw2ICs1LDcgQEAKKyAjaW5jbHVk ZSA8c3lzL3dhaXQuaD4KKyAjaW5jbHVkZSA8Z2xpYi11bml4Lmg+CisgI2luY2x1ZGUgPGdpby9n dW5peGlucHV0c3RyZWFtLmg+CisrI2luY2x1ZGUgPGdpby9ndW5peG91dHB1dHN0cmVhbS5oPgor ICNpbmNsdWRlIDxnaW8vZ2ZpbGVkZXNjcmlwdG9yYmFzZWQuaD4KKyAjaW5jbHVkZSA8dW5pc3Rk Lmg+CisgI2luY2x1ZGUgPGZjbnRsLmg+CitAQCAtMTc5MCw2ICsxNzkxLDE0NiBAQCB0ZXN0X3Bh c3NfZmRfaW5oZXJpdF9mZHMgKHZvaWQpCisgICBkb190ZXN0X3Bhc3NfZmQgKEdfU1VCUFJPQ0VT U19GTEFHU19JTkhFUklUX0ZEUywgTlVMTCk7CisgfQorIAorK3N0YXRpYyB2b2lkCisrZG9fdGVz dF9mZF9jb25mbGF0aW9uIChHU3VicHJvY2Vzc0ZsYWdzICAgICBmbGFncywKKysgICAgICAgICAg ICAgICAgICAgICAgIEdTcGF3bkNoaWxkU2V0dXBGdW5jIGNoaWxkX3NldHVwKQorK3sKKysgIGNo YXIgc3VjY2Vzc19tZXNzYWdlW10gPSAiWWF5IHN1Y2Nlc3MhIjsKKysgIEdFcnJvciAqZXJyb3Ig PSBOVUxMOworKyAgR091dHB1dFN0cmVhbSAqb3V0cHV0X3N0cmVhbTsKKysgIEdTdWJwcm9jZXNz TGF1bmNoZXIgKmxhdW5jaGVyOworKyAgR1N1YnByb2Nlc3MgKnByb2M7CisrICBHUHRyQXJyYXkg KmFyZ3M7CisrICBpbnQgdW51c2VkX3BpcGVmZHNbMl07CisrICBpbnQgcGlwZWZkc1syXTsKKysg IGdzaXplIGJ5dGVzX3dyaXR0ZW47CisrICBnYm9vbGVhbiBzdWNjZXNzOworKyAgY2hhciAqZmRf c3RyOworKworKyAgLyogVGhpcyB0ZXN0IG11c3QgcnVuIGluIGEgbmV3IHByb2Nlc3MgYmVjYXVz ZSBpdCBpcyBleHRyZW1lbHkgc2Vuc2l0aXZlIHRvCisrICAgKiBvcmRlciBvZiBvcGVuZWQgZmRz LgorKyAgICovCisrICBpZiAoIWdfdGVzdF9zdWJwcm9jZXNzICgpKQorKyAgICB7CisrICAgICAg Z190ZXN0X3RyYXBfc3VicHJvY2VzcyAoTlVMTCwgMCwgR19URVNUX1NVQlBST0NFU1NfSU5IRVJJ VF9TVERPVVQgfCBHX1RFU1RfU1VCUFJPQ0VTU19JTkhFUklUX1NUREVSUik7CisrICAgICAgZ190 ZXN0X3RyYXBfYXNzZXJ0X3Bhc3NlZCAoKTsKKysgICAgICByZXR1cm47CisrICAgIH0KKysKKysg IGdfdW5peF9vcGVuX3BpcGUgKHVudXNlZF9waXBlZmRzLCBGRF9DTE9FWEVDLCAmZXJyb3IpOwor KyAgZ19hc3NlcnRfbm9fZXJyb3IgKGVycm9yKTsKKysKKysgIGdfdW5peF9vcGVuX3BpcGUgKHBp cGVmZHMsIEZEX0NMT0VYRUMsICZlcnJvcik7CisrICBnX2Fzc2VydF9ub19lcnJvciAoZXJyb3Ip OworKworKyAgLyogVGhlIGZkcyBzaG91bGQgYmUgc2VxdWVudGlhbCBzaW5jZSB3ZSBhcmUgaW4g YSBuZXcgcHJvY2Vzcy4gKi8KKysgIGdfYXNzZXJ0X2NtcGludCAodW51c2VkX3BpcGVmZHNbMF0g LyogMyAqLywgPT0sIHVudXNlZF9waXBlZmRzWzFdIC0gMSk7CisrICBnX2Fzc2VydF9jbXBpbnQg KHVudXNlZF9waXBlZmRzWzFdIC8qIDQgKi8sID09LCBwaXBlZmRzWzBdIC0gMSk7CisrICBnX2Fz c2VydF9jbXBpbnQgKHBpcGVmZHNbMF0gLyogNSAqLywgPT0sIHBpcGVmZHNbMV0gLyogNiAqLyAt IDEpOworKworKyAgLyogQmVjYXVzZSBHU3VicHJvY2VzcyBhbGxvd3MgYXJiaXRyYXJ5IHJlbWFw cGluZyBvZiBmZHMsIGl0IGhhcyB0byBiZSBjYXJlZnVsCisrICAgKiB0byBhdm9pZCBmZCBjb25m bGF0aW9uIGlzc3VlcywgZS5nLiBpdCBzaG91bGQgcHJvcGVybHkgaGFuZGxlIDUgLT4gNCBhbmQK KysgICAqIDQgLT4gNSBhdCB0aGUgc2FtZSB0aW1lLiBHSU8gcHJldmlvdXNseSBhdHRlbXB0ZWQg dG8gaGFuZGxlIHRoaXMgYnkgbmFpdmVseQorKyAgICogZHVwJ2luZyB0aGUgc291cmNlIGZkcywg YnV0IHRoaXMgd2FzIG5vdCBnb29kIGVub3VnaCBiZWNhdXNlIGl0IHdhcworKyAgICogcG9zc2li bGUgdGhhdCB0aGUgZHVwJ2VkIHJlc3VsdCBjb3VsZCBzdGlsbCBjb25mbGljdCB3aXRoIG9uZSBv ZiB0aGUgdGFyZ2V0CisrICAgKiBmZHMuIEZvciBleGFtcGxlOgorKyAgICoKKysgICAqIHNvdXJj ZV9mZCA1IC0+IHRhcmdldF9mZCA5LCBzb3VyY2VfZmQgMyAtPiB0YXJnZXRfZmQgNworKyAgICoK KysgICAqIGR1cCg1KSAtPiBkdXAgcmV0dXJucyA4CisrICAgKiBkdXAoMykgLT4gZHVwIHJldHVy bnMgOQorKyAgICoKKysgICAqIEFmdGVyIGR1cCdpbmcsIHdlIHdpbmQgdXAgd2l0aDogOCAtPiA5 LCA5IC0+IDcuIFRoYXQgbWVhbnMgdGhhdCBhZnRlciB3ZQorKyAgICogZHVwMig4LCA5KSwgd2Ug aGF2ZSBjbG9iYmVyZWQgZmQgOSBiZWZvcmUgd2UgZHVwMig5LCA3KS4gVGhlIGVuZCByZXN1bHQg aXMKKysgICAqIHdlIGhhdmUgcmVtYXBwZWQgNSAtPiA5IGFzIGV4cGVjdGVkLCBidXQgdGhlbiBy ZW1hcHBlZCA1IC0+IDcgaW5zdGVhZCBvZgorKyAgICogMyAtPiA3IGFzIHRoZSBhcHBsaWNhdGlv biBpbnRlbmRlZC4KKysgICAqCisrICAgKiBUaGlzIGlzc3VlIGhhcyBiZWVuIGZpeGVkIGluIHRo ZSBzaW1wbGVzdCB3YXkgcG9zc2libGUsIGJ5IHBhc3NpbmcgYQorKyAgICogbWluaW11bSBmZCB2 YWx1ZSB3aGVuIHVzaW5nIEZfRFVQRkRfQ0xPRVhFQyB0aGF0IGlzIGhpZ2hlciB0aGFuIGFueSBv ZiB0aGUKKysgICAqIHRhcmdldCBmZHMsIHRvIGd1YXJhbnRlZSBhbGwgc291cmNlIGZkcyBhcmUg ZGlmZmVyZW50IHRoYW4gYWxsIHRhcmdldCBmZHMsCisrICAgKiBlbGltaW5hdGluZyBhbnkgcG9z c2liaWxpdHkgb2YgY29uZmxhdGlvbi4KKysgICAqCisrICAgKiBBbnl3YXksIHRoYXQgaXMgd2h5 IHdlIGhhdmUgdGhlIHVudXNlZF9waXBlZmRzIGhlcmUuIFdlIG5lZWQgdG8gb3BlbiBmZHMgaW4K KysgICAqIGEgY2VydGFpbiBvcmRlciBpbiBvcmRlciB0byB0cmljayBvbGRlciBHU3VicHJvY2Vz cyBpbnRvIGNvbmZsYXRpbmcgdGhlCisrICAgKiBmZHMuIFRoZSBwcmltYXJ5IGdvYWwgb2YgdGhp cyB0ZXN0IGlzIHRvIGVuc3VyZSB0aGlzIHBhcnRpY3VsYXIgY29uZmxhdGlvbgorKyAgICogaXNz dWUgaXMgbm90IHJlaW50cm9kdWNlZC4gU2VlIGdsaWIjMjUwMy4KKysgICAqCisrICAgKiBCZSBh d2FyZSB0aGlzIHRlc3QgaXMgbmVjZXNzYXJpbHkgZXh0cmVtZWx5IGZyYWdpbGUuIFRvIHJlcHJv ZHVjZSB0aGVzZQorKyAgICogYnVncywgaXQgcmVsaWVzIG9uIGludGVybmFscyBvZiBnc3Bhd24g YW5kIGdtYWluIHRoYXQgd2lsbCBsaWtlbHkgY2hhbmdlCisrICAgKiBpbiB0aGUgZnV0dXJlLCBl dmVudHVhbGx5IGNhdXNpbmcgdGhpcyB0ZXN0IHRvIG5vIGxvbmdlciB0ZXN0IHRoZSB0aGUgYnVn cworKyAgICogaXQgd2FzIG9yaWdpbmFsbHkgZGVzaWduZWQgdG8gdGVzdC4gVGhhdCBpcyBPSyEg SWYgdGhlIHRlc3QgZmFpbHMsIGF0CisrICAgKiBsZWFzdCB5b3Uga25vdyAqc29tZXRoaW5nKiBp cyB3cm9uZy4KKysgICAqLworKyAgbGF1bmNoZXIgPSBnX3N1YnByb2Nlc3NfbGF1bmNoZXJfbmV3 IChmbGFncyk7CisrICBnX3N1YnByb2Nlc3NfbGF1bmNoZXJfdGFrZV9mZCAobGF1bmNoZXIsIHBp cGVmZHNbMF0gLyogNSAqLywgcGlwZWZkc1sxXSArIDMgLyogOSAqLyk7CisrICBnX3N1YnByb2Nl c3NfbGF1bmNoZXJfdGFrZV9mZCAobGF1bmNoZXIsIHVudXNlZF9waXBlZmRzWzBdIC8qIDMgKi8s IHBpcGVmZHNbMV0gKyAxIC8qIDcgKi8pOworKyAgaWYgKGNoaWxkX3NldHVwICE9IE5VTEwpCisr ICAgIGdfc3VicHJvY2Vzc19sYXVuY2hlcl9zZXRfY2hpbGRfc2V0dXAgKGxhdW5jaGVyLCBjaGls ZF9zZXR1cCwgTlVMTCwgTlVMTCk7CisrICBmZF9zdHIgPSBnX3N0cmR1cF9wcmludGYgKCIlZCIs IHBpcGVmZHNbMV0gKyAzKTsKKysgIGFyZ3MgPSBnZXRfdGVzdF9zdWJwcm9jZXNzX2FyZ3MgKCJy ZWFkLWZyb20tZmQiLCBmZF9zdHIsIE5VTEwpOworKyAgcHJvYyA9IGdfc3VicHJvY2Vzc19sYXVu Y2hlcl9zcGF3bnYgKGxhdW5jaGVyLCAoY29uc3QgZ2NoYXIgKiBjb25zdCAqKSBhcmdzLT5wZGF0 YSwgJmVycm9yKTsKKysgIGdfYXNzZXJ0X25vX2Vycm9yIChlcnJvcik7CisrICBnX2Fzc2VydF9u b25udWxsIChwcm9jKTsKKysgIGdfcHRyX2FycmF5X2ZyZWUgKGFyZ3MsIFRSVUUpOworKyAgZ19v YmplY3RfdW5yZWYgKGxhdW5jaGVyKTsKKysgIGdfZnJlZSAoZmRfc3RyKTsKKysKKysgIC8qIENs b3NlIHRoZSByZWFkIGVuZHMgb2YgdGhlIHBpcGVzLiAqLworKyAgY2xvc2UgKHVudXNlZF9waXBl ZmRzWzBdKTsKKysgIGNsb3NlIChwaXBlZmRzWzBdKTsKKysKKysgIC8qIEFsc28gY2xvc2UgdGhl IHdyaXRlIGVuZCBvZiB0aGUgdW51c2VkIHBpcGUuICovCisrICBjbG9zZSAodW51c2VkX3BpcGVm ZHNbMV0pOworKworKyAgLyogU28gbm93IHBpcGVmZHNbMF0gc2hvdWxkIGJlIGluaGVyaXRlZCBp bnRvIHRoZSBzdWJwcm9jZXNzIGFzCisrICAgKiBwaXBlZmRzWzFdICsgMiwgYW5kIHVudXNlZF9w aXBlZmRzWzBdIHNob3VsZCBiZSBpbmhlcml0ZWQgYXMKKysgICAqIHBpcGVmZHNbMV0gKyAxLiBX ZSB3aWxsIHdyaXRlIHRvIHBpcGVmZHNbMV0gYW5kIHRoZSBzdWJwcm9jZXNzIHdpbGwgdmVyaWZ5 CisrICAgKiB0aGF0IGl0IHJlYWRzIHRoZSBleHBlY3RlZCBkYXRhLiBCdXQgb2xkZXIgYnJva2Vu IEdJTyB3aWxsIGFjY2lkZW50YWxseQorKyAgICogY2xvYmJlciBwaXBlZmRzWzFdICsgMiB3aXRo IHBpcGVmZHNbMV0gKyAxISBUaGlzIHdpbGwgY2F1c2UgdGhlIHN1YnByb2Nlc3MKKysgICAqIHRv IGhhbmcgdHJ5aW5nIHRvIHJlYWQgZnJvbSB0aGUgd3JvbmcgcGlwZS4KKysgICAqLworKyAgb3V0 cHV0X3N0cmVhbSA9IGdfdW5peF9vdXRwdXRfc3RyZWFtX25ldyAocGlwZWZkc1sxXSwgVFJVRSk7 CisrICBzdWNjZXNzID0gZ19vdXRwdXRfc3RyZWFtX3dyaXRlX2FsbCAob3V0cHV0X3N0cmVhbSwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzX21lc3NhZ2Us IHNpemVvZiAoc3VjY2Vzc19tZXNzYWdlKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAmYnl0ZXNfd3JpdHRlbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBOVUxMLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICZlcnJvcik7CisrICBnX2Fzc2VydF9ub19lcnJvciAoZXJyb3IpOworKyAgZ19hc3NlcnRfY21w aW50IChieXRlc193cml0dGVuLCA9PSwgc2l6ZW9mIChzdWNjZXNzX21lc3NhZ2UpKTsKKysgIGdf YXNzZXJ0X3RydWUgKHN1Y2Nlc3MpOworKyAgZ19vYmplY3RfdW5yZWYgKG91dHB1dF9zdHJlYW0p OworKworKyAgc3VjY2VzcyA9IGdfc3VicHJvY2Vzc193YWl0X2NoZWNrIChwcm9jLCBOVUxMLCAm ZXJyb3IpOworKyAgZ19hc3NlcnRfbm9fZXJyb3IgKGVycm9yKTsKKysgIGdfb2JqZWN0X3VucmVm IChwcm9jKTsKKyt9CisrCisrc3RhdGljIHZvaWQKKyt0ZXN0X2ZkX2NvbmZsYXRpb24gKHZvaWQp CisreworKyAgZG9fdGVzdF9mZF9jb25mbGF0aW9uIChHX1NVQlBST0NFU1NfRkxBR1NfTk9ORSwg TlVMTCk7CisrfQorKworK3N0YXRpYyB2b2lkCisrdGVzdF9mZF9jb25mbGF0aW9uX2VtcHR5X2No aWxkX3NldHVwICh2b2lkKQorK3sKKysgIC8qIFVzaW5nIGEgY2hpbGQgc2V0dXAgZnVuY3Rpb24g Zm9yY2VzIGdzcGF3biB0byB1c2UgZm9yay9leGVjCisrICAgKiByYXRoZXIgdGhhbiBwb3NpeF9z cGF3bi4KKysgICAqLworKyAgZG9fdGVzdF9mZF9jb25mbGF0aW9uIChHX1NVQlBST0NFU1NfRkxB R1NfTk9ORSwgZW1wdHlfY2hpbGRfc2V0dXApOworK30KKysKKytzdGF0aWMgdm9pZAorK3Rlc3Rf ZmRfY29uZmxhdGlvbl9pbmhlcml0X2ZkcyAodm9pZCkKKyt7CisrICAvKiBUcnkgdG8gdGVzdCB0 aGUgb3B0aW1pemVkIHBvc2l4X3NwYXduIGNvZGVwYXRoIGluc3RlYWQgb2YKKysgICAqIGZvcmsv ZXhlYy4gQ3VycmVudGx5IHRoaXMgcmVxdWlyZXMgdXNpbmcgSU5IRVJJVF9GRFMgc2luY2UgZ3Nw YXduJ3MKKysgICAqIHBvc2l4X3NwYXduIGNvZGVwYXRoIGRvZXMgbm90IGN1cnJlbnRseSBoYW5k bGUgY2xvc2luZworKyAgICogbm9uLWluaGVyaXRlZCBmZHMuCisrICAgKi8KKysgIGRvX3Rlc3Rf ZmRfY29uZmxhdGlvbiAoR19TVUJQUk9DRVNTX0ZMQUdTX0lOSEVSSVRfRkRTLCBOVUxMKTsKKyt9 CisrCisgI2VuZGlmCisgCisgc3RhdGljIHZvaWQKK0BAIC0xOTI5LDYgKzIwNzAsOSBAQCBtYWlu IChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCisgICBnX3Rlc3RfYWRkX2Z1bmMgKCIvZ3N1YnByb2Nl c3MvcGFzcy1mZC9iYXNpYyIsIHRlc3RfcGFzc19mZCk7CisgICBnX3Rlc3RfYWRkX2Z1bmMgKCIv Z3N1YnByb2Nlc3MvcGFzcy1mZC9lbXB0eS1jaGlsZC1zZXR1cCIsIHRlc3RfcGFzc19mZF9lbXB0 eV9jaGlsZF9zZXR1cCk7CisgICBnX3Rlc3RfYWRkX2Z1bmMgKCIvZ3N1YnByb2Nlc3MvcGFzcy1m ZC9pbmhlcml0LWZkcyIsIHRlc3RfcGFzc19mZF9pbmhlcml0X2Zkcyk7CisrICBnX3Rlc3RfYWRk X2Z1bmMgKCIvZ3N1YnByb2Nlc3MvZmQtY29uZmxhdGlvbi9iYXNpYyIsIHRlc3RfZmRfY29uZmxh dGlvbik7CisrICBnX3Rlc3RfYWRkX2Z1bmMgKCIvZ3N1YnByb2Nlc3MvZmQtY29uZmxhdGlvbi9l bXB0eS1jaGlsZC1zZXR1cCIsIHRlc3RfZmRfY29uZmxhdGlvbl9lbXB0eV9jaGlsZF9zZXR1cCk7 CisrICBnX3Rlc3RfYWRkX2Z1bmMgKCIvZ3N1YnByb2Nlc3MvZmQtY29uZmxhdGlvbi9pbmhlcml0 LWZkcyIsIHRlc3RfZmRfY29uZmxhdGlvbl9pbmhlcml0X2Zkcyk7CisgI2VuZGlmCisgICBnX3Rl c3RfYWRkX2Z1bmMgKCIvZ3N1YnByb2Nlc3MvbGF1bmNoZXItZW52aXJvbm1lbnQiLCB0ZXN0X2xh dW5jaGVyX2Vudmlyb25tZW50KTsKKyAKKy0tIAorMi4zMy4xCisKK0Zyb20gNDRiNDk0MmE3N2U5 ZjEwYTg0N2JmMDYyOTlkOTE0OTFmN2FkNjllYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IE1pY2hhZWwgQ2F0YW56YXJvIDxtY2F0YW56YXJvQHJlZGhhdC5jb20+CitEYXRlOiBXZWQs IDI3IE9jdCAyMDIxIDE4OjMwOjQ3IC0wNTAwCitTdWJqZWN0OiBbUEFUQ0ggMTAvMTBdIEFkZCB0 ZXN0IGZvciBjaGlsZF9lcnJfcmVwb3J0X2ZkIGNvbmZsYXRpb24gd2l0aCB0YXJnZXQKKyBmZHMK KworVGhpcyB0ZXN0cyBmb3IgZ2xpYiMyNTA2LgorLS0tCisgZ2lvL3Rlc3RzL2dzdWJwcm9jZXNz LmMgfCA0MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQorIDEgZmls ZSBjaGFuZ2VkLCAzNSBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0 IGEvZ2lvL3Rlc3RzL2dzdWJwcm9jZXNzLmMgYi9naW8vdGVzdHMvZ3N1YnByb2Nlc3MuYworaW5k ZXggZGYxMzA3MGY3Li42YmMwYWE0ZWEgMTAwNjQ0CistLS0gYS9naW8vdGVzdHMvZ3N1YnByb2Nl c3MuYworKysrIGIvZ2lvL3Rlc3RzL2dzdWJwcm9jZXNzLmMKK0BAIC0xNzkzLDcgKzE3OTMsOCBA QCB0ZXN0X3Bhc3NfZmRfaW5oZXJpdF9mZHMgKHZvaWQpCisgCisgc3RhdGljIHZvaWQKKyBkb190 ZXN0X2ZkX2NvbmZsYXRpb24gKEdTdWJwcm9jZXNzRmxhZ3MgICAgIGZsYWdzLAorLSAgICAgICAg ICAgICAgICAgICAgICAgR1NwYXduQ2hpbGRTZXR1cEZ1bmMgY2hpbGRfc2V0dXApCisrICAgICAg ICAgICAgICAgICAgICAgICBHU3Bhd25DaGlsZFNldHVwRnVuYyBjaGlsZF9zZXR1cCwKKysgICAg ICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICAgICAgIHRlc3RfY2hpbGRfZXJyX3Jl cG9ydF9mZCkKKyB7CisgICBjaGFyIHN1Y2Nlc3NfbWVzc2FnZVtdID0gIllheSBzdWNjZXNzISI7 CisgICBHRXJyb3IgKmVycm9yID0gTlVMTDsKK0BAIC0xODAzLDYgKzE4MDQsNyBAQCBkb190ZXN0 X2ZkX2NvbmZsYXRpb24gKEdTdWJwcm9jZXNzRmxhZ3MgICAgIGZsYWdzLAorICAgR1B0ckFycmF5 ICphcmdzOworICAgaW50IHVudXNlZF9waXBlZmRzWzJdOworICAgaW50IHBpcGVmZHNbMl07Cisr ICBpbnQgZmRfdG9fcGFzc190b19jaGlsZDsKKyAgIGdzaXplIGJ5dGVzX3dyaXR0ZW47CisgICBn Ym9vbGVhbiBzdWNjZXNzOworICAgY2hhciAqZmRfc3RyOworQEAgLTE4NTUsMTggKzE4NTcsMjYg QEAgZG9fdGVzdF9mZF9jb25mbGF0aW9uIChHU3VicHJvY2Vzc0ZsYWdzICAgICBmbGFncywKKyAg ICAqIGZkcy4gVGhlIHByaW1hcnkgZ29hbCBvZiB0aGlzIHRlc3QgaXMgdG8gZW5zdXJlIHRoaXMg cGFydGljdWxhciBjb25mbGF0aW9uCisgICAgKiBpc3N1ZSBpcyBub3QgcmVpbnRyb2R1Y2VkLiBT ZWUgZ2xpYiMyNTAzLgorICAgICoKKysgICAqIFRoaXMgdGVzdCBhbHNvIGhhcyBhbiBhbHRlcm5h dGUgbW9kZSBvZiBvcGVyYXRpb24gd2hlcmUgaXQgaW5zdGVhZCB0ZXN0cworKyAgICogZm9yIGNv bmZsYXRpb24gd2l0aCBnc3Bhd24ncyBjaGlsZF9lcnJfcmVwb3J0X2ZkLCBnbGliIzI1MDYuCisr ICAgKgorICAgICogQmUgYXdhcmUgdGhpcyB0ZXN0IGlzIG5lY2Vzc2FyaWx5IGV4dHJlbWVseSBm cmFnaWxlLiBUbyByZXByb2R1Y2UgdGhlc2UKKyAgICAqIGJ1Z3MsIGl0IHJlbGllcyBvbiBpbnRl cm5hbHMgb2YgZ3NwYXduIGFuZCBnbWFpbiB0aGF0IHdpbGwgbGlrZWx5IGNoYW5nZQorICAgICog aW4gdGhlIGZ1dHVyZSwgZXZlbnR1YWxseSBjYXVzaW5nIHRoaXMgdGVzdCB0byBubyBsb25nZXIg dGVzdCB0aGUgdGhlIGJ1Z3MKKyAgICAqIGl0IHdhcyBvcmlnaW5hbGx5IGRlc2lnbmVkIHRvIHRl c3QuIFRoYXQgaXMgT0shIElmIHRoZSB0ZXN0IGZhaWxzLCBhdAorICAgICogbGVhc3QgeW91IGtu b3cgKnNvbWV0aGluZyogaXMgd3JvbmcuCisgICAgKi8KKysgIGlmICh0ZXN0X2NoaWxkX2Vycl9y ZXBvcnRfZmQpCisrICAgIGZkX3RvX3Bhc3NfdG9fY2hpbGQgPSBwaXBlZmRzWzFdICsgMiAvKiA4 ICovOworKyAgZWxzZQorKyAgICBmZF90b19wYXNzX3RvX2NoaWxkID0gcGlwZWZkc1sxXSArIDMg LyogOSAqLzsKKysKKyAgIGxhdW5jaGVyID0gZ19zdWJwcm9jZXNzX2xhdW5jaGVyX25ldyAoZmxh Z3MpOworLSAgZ19zdWJwcm9jZXNzX2xhdW5jaGVyX3Rha2VfZmQgKGxhdW5jaGVyLCBwaXBlZmRz WzBdIC8qIDUgKi8sIHBpcGVmZHNbMV0gKyAzIC8qIDkgKi8pOworKyAgZ19zdWJwcm9jZXNzX2xh dW5jaGVyX3Rha2VfZmQgKGxhdW5jaGVyLCBwaXBlZmRzWzBdIC8qIDUgKi8sIGZkX3RvX3Bhc3Nf dG9fY2hpbGQpOworICAgZ19zdWJwcm9jZXNzX2xhdW5jaGVyX3Rha2VfZmQgKGxhdW5jaGVyLCB1 bnVzZWRfcGlwZWZkc1swXSAvKiAzICovLCBwaXBlZmRzWzFdICsgMSAvKiA3ICovKTsKKyAgIGlm IChjaGlsZF9zZXR1cCAhPSBOVUxMKQorICAgICBnX3N1YnByb2Nlc3NfbGF1bmNoZXJfc2V0X2No aWxkX3NldHVwIChsYXVuY2hlciwgY2hpbGRfc2V0dXAsIE5VTEwsIE5VTEwpOworLSAgZmRfc3Ry ID0gZ19zdHJkdXBfcHJpbnRmICgiJWQiLCBwaXBlZmRzWzFdICsgMyk7CisrICBmZF9zdHIgPSBn X3N0cmR1cF9wcmludGYgKCIlZCIsIGZkX3RvX3Bhc3NfdG9fY2hpbGQpOworICAgYXJncyA9IGdl dF90ZXN0X3N1YnByb2Nlc3NfYXJncyAoInJlYWQtZnJvbS1mZCIsIGZkX3N0ciwgTlVMTCk7Cisg ICBwcm9jID0gZ19zdWJwcm9jZXNzX2xhdW5jaGVyX3NwYXdudiAobGF1bmNoZXIsIChjb25zdCBn Y2hhciAqIGNvbnN0ICopIGFyZ3MtPnBkYXRhLCAmZXJyb3IpOworICAgZ19hc3NlcnRfbm9fZXJy b3IgKGVycm9yKTsKK0BAIC0xODgyLDEyICsxODkyLDIwIEBAIGRvX3Rlc3RfZmRfY29uZmxhdGlv biAoR1N1YnByb2Nlc3NGbGFncyAgICAgZmxhZ3MsCisgICAvKiBBbHNvIGNsb3NlIHRoZSB3cml0 ZSBlbmQgb2YgdGhlIHVudXNlZCBwaXBlLiAqLworICAgY2xvc2UgKHVudXNlZF9waXBlZmRzWzFd KTsKKyAKKy0gIC8qIFNvIG5vdyBwaXBlZmRzWzBdIHNob3VsZCBiZSBpbmhlcml0ZWQgaW50byB0 aGUgc3VicHJvY2VzcyBhcworKyAgLyogSWYgZG9pbmcgb3VyIG5vcm1hbCB0ZXN0OgorKyAgICoK KysgICAqIFNvIG5vdyBwaXBlZmRzWzBdIHNob3VsZCBiZSBpbmhlcml0ZWQgaW50byB0aGUgc3Vi cHJvY2VzcyBhcworICAgICogcGlwZWZkc1sxXSArIDIsIGFuZCB1bnVzZWRfcGlwZWZkc1swXSBz aG91bGQgYmUgaW5oZXJpdGVkIGFzCisgICAgKiBwaXBlZmRzWzFdICsgMS4gV2Ugd2lsbCB3cml0 ZSB0byBwaXBlZmRzWzFdIGFuZCB0aGUgc3VicHJvY2VzcyB3aWxsIHZlcmlmeQorICAgICogdGhh dCBpdCByZWFkcyB0aGUgZXhwZWN0ZWQgZGF0YS4gQnV0IG9sZGVyIGJyb2tlbiBHSU8gd2lsbCBh Y2NpZGVudGFsbHkKKyAgICAqIGNsb2JiZXIgcGlwZWZkc1sxXSArIDIgd2l0aCBwaXBlZmRzWzFd ICsgMSEgVGhpcyB3aWxsIGNhdXNlIHRoZSBzdWJwcm9jZXNzCisgICAgKiB0byBoYW5nIHRyeWlu ZyB0byByZWFkIGZyb20gdGhlIHdyb25nIHBpcGUuCisrICAgKgorKyAgICogSWYgdGVzdGluZyBj b25mbGF0aW9uIHdpdGggY2hpbGRfZXJyX3JlcG9ydF9mZDoKKysgICAqCisrICAgKiBXZSBhcmUg YWN0dWFsbHkgYWxyZWFkeSBkb25lLiBUaGUgcmVhbCB0ZXN0IHN1Y2NlZWRlZCBpZiB3ZSBtYWRl IGl0IHRoaXMKKysgICAqIGZhciB3aXRob3V0IGhhbmdpbmcgd2hpbGUgc3Bhd25pbmcgdGhlIGNo aWxkLiBCdXQgbGV0J3MgY29udGludWUgd2l0aCBvdXIKKysgICAqIHdyaXRlIGFuZCByZWFkIGFu eXdheSwgdG8gZW5zdXJlIHRoaW5ncyBhcmUgZ29vZC4KKyAgICAqLworICAgb3V0cHV0X3N0cmVh bSA9IGdfdW5peF9vdXRwdXRfc3RyZWFtX25ldyAocGlwZWZkc1sxXSwgVFJVRSk7CisgICBzdWNj ZXNzID0gZ19vdXRwdXRfc3RyZWFtX3dyaXRlX2FsbCAob3V0cHV0X3N0cmVhbSwKK0BAIC0xOTA4 LDcgKzE5MjYsNyBAQCBkb190ZXN0X2ZkX2NvbmZsYXRpb24gKEdTdWJwcm9jZXNzRmxhZ3MgICAg IGZsYWdzLAorIHN0YXRpYyB2b2lkCisgdGVzdF9mZF9jb25mbGF0aW9uICh2b2lkKQorIHsKKy0g IGRvX3Rlc3RfZmRfY29uZmxhdGlvbiAoR19TVUJQUk9DRVNTX0ZMQUdTX05PTkUsIE5VTEwpOwor KyAgZG9fdGVzdF9mZF9jb25mbGF0aW9uIChHX1NVQlBST0NFU1NfRkxBR1NfTk9ORSwgTlVMTCwg RkFMU0UpOworIH0KKyAKKyBzdGF0aWMgdm9pZAorQEAgLTE5MTcsNyArMTkzNSw3IEBAIHRlc3Rf ZmRfY29uZmxhdGlvbl9lbXB0eV9jaGlsZF9zZXR1cCAodm9pZCkKKyAgIC8qIFVzaW5nIGEgY2hp bGQgc2V0dXAgZnVuY3Rpb24gZm9yY2VzIGdzcGF3biB0byB1c2UgZm9yay9leGVjCisgICAgKiBy YXRoZXIgdGhhbiBwb3NpeF9zcGF3bi4KKyAgICAqLworLSAgZG9fdGVzdF9mZF9jb25mbGF0aW9u IChHX1NVQlBST0NFU1NfRkxBR1NfTk9ORSwgZW1wdHlfY2hpbGRfc2V0dXApOworKyAgZG9fdGVz dF9mZF9jb25mbGF0aW9uIChHX1NVQlBST0NFU1NfRkxBR1NfTk9ORSwgZW1wdHlfY2hpbGRfc2V0 dXAsIEZBTFNFKTsKKyB9CisgCisgc3RhdGljIHZvaWQKK0BAIC0xOTI4LDcgKzE5NDYsMTYgQEAg dGVzdF9mZF9jb25mbGF0aW9uX2luaGVyaXRfZmRzICh2b2lkKQorICAgICogcG9zaXhfc3Bhd24g Y29kZXBhdGggZG9lcyBub3QgY3VycmVudGx5IGhhbmRsZSBjbG9zaW5nCisgICAgKiBub24taW5o ZXJpdGVkIGZkcy4KKyAgICAqLworLSAgZG9fdGVzdF9mZF9jb25mbGF0aW9uIChHX1NVQlBST0NF U1NfRkxBR1NfSU5IRVJJVF9GRFMsIE5VTEwpOworKyAgZG9fdGVzdF9mZF9jb25mbGF0aW9uIChH X1NVQlBST0NFU1NfRkxBR1NfSU5IRVJJVF9GRFMsIE5VTEwsIEZBTFNFKTsKKyt9CisrCisrc3Rh dGljIHZvaWQKKyt0ZXN0X2ZkX2NvbmZsYXRpb25fY2hpbGRfZXJyX3JlcG9ydF9mZCAodm9pZCkK Kyt7CisrICAvKiBVc2luZyBhIGNoaWxkIHNldHVwIGZ1bmN0aW9uIGZvcmNlcyBnc3Bhd24gdG8g dXNlIGZvcmsvZXhlYworKyAgICogcmF0aGVyIHRoYW4gcG9zaXhfc3Bhd24uCisrICAgKi8KKysg IGRvX3Rlc3RfZmRfY29uZmxhdGlvbiAoR19TVUJQUk9DRVNTX0ZMQUdTX05PTkUsIGVtcHR5X2No aWxkX3NldHVwLCBUUlVFKTsKKyB9CisgCisgI2VuZGlmCitAQCAtMjA3Myw2ICsyMTAwLDcgQEAg bWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQorICAgZ190ZXN0X2FkZF9mdW5jICgiL2dzdWJw cm9jZXNzL2ZkLWNvbmZsYXRpb24vYmFzaWMiLCB0ZXN0X2ZkX2NvbmZsYXRpb24pOworICAgZ190 ZXN0X2FkZF9mdW5jICgiL2dzdWJwcm9jZXNzL2ZkLWNvbmZsYXRpb24vZW1wdHktY2hpbGQtc2V0 dXAiLCB0ZXN0X2ZkX2NvbmZsYXRpb25fZW1wdHlfY2hpbGRfc2V0dXApOworICAgZ190ZXN0X2Fk ZF9mdW5jICgiL2dzdWJwcm9jZXNzL2ZkLWNvbmZsYXRpb24vaW5oZXJpdC1mZHMiLCB0ZXN0X2Zk X2NvbmZsYXRpb25faW5oZXJpdF9mZHMpOworKyAgZ190ZXN0X2FkZF9mdW5jICgiL2dzdWJwcm9j ZXNzL2ZkLWNvbmZsYXRpb24vY2hpbGQtZXJyLXJlcG9ydC1mZCIsIHRlc3RfZmRfY29uZmxhdGlv bl9jaGlsZF9lcnJfcmVwb3J0X2ZkKTsKKyAjZW5kaWYKKyAgIGdfdGVzdF9hZGRfZnVuYyAoIi9n c3VicHJvY2Vzcy9sYXVuY2hlci1lbnZpcm9ubWVudCIsIHRlc3RfbGF1bmNoZXJfZW52aXJvbm1l bnQpOworIAorLS0gCisyLjMzLjEKKwo=