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: Than Ngo To: git-commits@fedoraproject.org Subject: [rpms/chromium] f45: Merge branch 'rawhide' into f45 Date: Wed, 23 Sep 2026 18:20:37 GMT Message-ID: <179018763764.1.14729878723648784718.rpms-chromium-eb305529925f@fedoraproject.org> List-ID: X-Git-Repo: rpms/chromium X-Git-Branch: f45 X-Git-Rev: eb305529925f4942eac1beafd8f9441183a1cd72 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvY2hyb21pdW0KQnJh bmNoIDogZjQ1CkNvbW1pdCA6IGViMzA1NTI5OTI1ZjQ5NDJlYWMxYmVhZmQ4Zjk0NDExODNhMWNk NzIKQXV0aG9yIDogVGhhbiBOZ28gPHRoYW5AcmVkaGF0LmNvbT4KRGF0ZSAgIDogMjAyNi0wOS0y M1QyMDoyMDoyMiswMjowMApTdGF0cyAgOiArOTk3Ly0xNTMgaW4gMyBmaWxlKHMpClVSTCAgICA6 IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvY2hyb21pdW0vYy9lYjMwNTUyOTky NWY0OTQyZWFjMWJlYWZkOGY5NDQxMTgzYTFjZDcyP2JyYW5jaD1mNDUKCkxvZzoKTWVyZ2UgYnJh bmNoICdyYXdoaWRlJyBpbnRvIGY0NQoKLS0tCmRpZmYgLS1naXQgYS9jaHJvbWl1bS0xNTQtZnRi ZnMtY3J1Yml0LnBhdGNoIGIvY2hyb21pdW0tMTU0LWZ0YmZzLWNydWJpdC5wYXRjaAppbmRleCBi NDEzN2Y1Li5iY2RlZGYzIDEwMDY0NAotLS0gYS9jaHJvbWl1bS0xNTQtZnRiZnMtY3J1Yml0LnBh dGNoCisrKyBiL2Nocm9taXVtLTE1NC1mdGJmcy1jcnViaXQucGF0Y2gKQEAgLTEsMTY5ICsxLDcx MSBAQAotY29tbWl0IDQ5M2U2YzM5MTFlMzNjYzM1Njg1NmJhZmJmZmM2Y2Y5NTUyMTI2NmIKLUF1 dGhvcjogRG9taW5payBSw7Z0dHNjaGVzIDxkcm90dEBjaHJvbWl1bS5vcmc+Ci1EYXRlOiAgIFRo dSBBdWcgMTMgMDg6NDI6MTUgMjAyNiAtMDcwMAordW5nb29nbGUgY2hyb21pdW0gcGF0Y2ggZnJv bSBodHRwczovL2dpdGh1Yi5jb20vdW5nb29nbGVkLXNvZnR3YXJlL3VuZ29vZ2xlZC1jaHJvbWl1 bS9wdWxsLzM5NjYKIAotICAgIE1pZ3JhdGUgT3BlblR5cGUgZm9ybWF0IGNoZWNrIGJpbmRpbmdz IHRvIENydWJpdAotICAgIAotICAgIFdlIGNhbiByZW1vdmUgdGhlIEJveDw+IHdyYXBwZWQgdHlw aW5nIG9mIEZvbnRGb3JtYXRJbmZvIGFsb25nIHRoZSB3YXkuCi0gICAgCi0gICAgREVQUyBjaGVj a3MgZm9yIHRoZSBnZW5lcmF0ZWQgb3V0cHV0IGhlYWRlciBmaWxlcyByZXF1aXJlcyB1cyB0byBt b3ZlCi0gICAgdGhlIGZvcm1hdF9jaGVjayB0YXJnZXQgaW50byB0aGUgZm9udHMgc3ViZGlyZWN0 b3J5LiBUaGlzIGlzIGEgZ29vZAotICAgIG9wcG9ydHVuaXR5IHRvIG1vdmUgbW9yZSBmb250IHNw ZWNpZmljIGJ1aWxkIHJ1bGVzIHRvIHRoZSBmb250IHN1YmRpciBpbgotICAgIHRoZSBmdXR1cmUg YW5kIHJlZHVjZSB0aGUgd2VpZ2h0IG9mIHRoZSBwbGF0Zm9ybS9CVUlMRC5nbiBidWlsZCBkaXIu Ci0gICAgCi0gICAgRXhlcmNpc2UgaW4gdXNpbmcgdGhlIENydWJpdCBiaW5kaW5ncyBtZWNoYW5p c20uCi0gICAgCi0gICAgTm8gZnVuY3Rpb25hbCBjaGFuZ2UuCi0gICAgCi0gICAgQ2hhbmdlLUlk OiBJOTQ0MGM3Mjg1YmI3MDdiMzI1YjgwZWUwNzRkZTUxZTcxNGVlNDg4NAotICAgIFJldmlld2Vk LW9uOiBodHRwczovL2Nocm9taXVtLXJldmlldy5nb29nbGVzb3VyY2UuY29tL2MvY2hyb21pdW0v c3JjLysvODI0NDI0OAotICAgIFJldmlld2VkLWJ5OiDFgXVrYXN6IEFuZm9yb3dpY3ogPGx1a2Fz emFAY2hyb21pdW0ub3JnPgotICAgIENvbW1pdC1RdWV1ZTogRG9taW5payBSw7Z0dHNjaGVzIDxk cm90dEBjaHJvbWl1bS5vcmc+Ci0gICAgQ3ItQ29tbWl0LVBvc2l0aW9uOiByZWZzL2hlYWRzL21h aW5AeyMxNjc4ODU4fQotCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIv cGxhdGZvcm0vQlVJTEQuZ24gYi90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9C VUlMRC5nbgotaW5kZXggZDVlODFhM2YwN2EzYy4uNmE1ZDI3NTQ2MDEyMiAxMDA2NDQKLS0tLSBh L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL0JVSUxELmduCi0rKysgYi90aGly ZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9CVUlMRC5nbgotQEAgLTE4NiwxOCArMTg2 LDYgQEAgZ3JvdXAoIm1ha2VfcGxhdGZvcm1fZ2VuZXJhdGVkIikgeworLS0tIGEvY29tcG9uZW50 cy9jYm9yL0JVSUxELmduCisrKysgYi9jb21wb25lbnRzL2Nib3IvQlVJTEQuZ24KK0BAIC0xMiw3 ICsxMiw3IEBAIGJ1aWxkZmxhZ19oZWFkZXIoImJ1aWxkZmxhZ3MiKSB7CisgICAjIFRPRE8oY3Ji dWcuY29tLzUzNTY4MjMzNSk6IFJlbW92ZSBgVVNFX0NCT1JfUlVTVGAgYnVpbGRmbGFnIGVudGly ZWx5LAorICAgIyB1bmNvbmRpdGlvbmFsbHkgZW5hYmxlIFJ1c3QgQ0JPUiBwYXJzZXIsIGFuZCBk cm9wIGBpc19jcm9uZXRfYnVpbGRgIGNoZWNrCisgICAjIG9uY2UgQ3JvbmV0IHN1cHBvcnRzIENy dWJpdCBkZXBlbmRlbmNpZXMuCistICBmbGFncyA9IFsgIlVTRV9DQk9SX1JVU1Q9ISRpc19jcm9u ZXRfYnVpbGQiIF0KKysgIGZsYWdzID0gWyAiVVNFX0NCT1JfUlVTVD0kZW5hYmxlX2NwcF9hcGlf ZnJvbV9ydXN0IiBdCisgfQorIAorIGNvbXBvbmVudCgiY2JvciIpIHsKK0BAIC0zNSw3ICszNSw3 IEBAIGNvbXBvbmVudCgiY2JvciIpIHsKKyAgICAgIi8vYmFzZSIsCisgICBdCisgCistICBpZiAo IWlzX2Nyb25ldF9idWlsZCkgeworKyAgaWYgKGVuYWJsZV9jcHBfYXBpX2Zyb21fcnVzdCkgewor ICAgICBwdWJsaWNfZGVwcyA9IFsKKyAgICAgICAiLy9idWlsZC9ydXN0L2NydWJpdCIsCisgICAg ICAgIi8vY29tcG9uZW50cy9jYm9yL3J1c3Q6Y2Jvcl9ydXN0X2JpbmRpbmdzIiwKK0BAIC02Miw3 ICs2Miw3IEBAIHNvdXJjZV9zZXQoInVuaXRfdGVzdHMiKSB7CisgICAgICIvL3Rlc3RpbmcvZ3Rl c3QiLAorICAgICAiLy90aGlyZF9wYXJ0eS9mdXp6dGVzdCIsCisgICBdCistICBpZiAoIWlzX2Ny b25ldF9idWlsZCkgeworKyAgaWYgKGVuYWJsZV9jcHBfYXBpX2Zyb21fcnVzdCkgeworICAgICBk ZXBzICs9IFsgIi8vY29tcG9uZW50cy9jYm9yL3J1c3Q6Y2Jvcl9ydXN0X3VuaXR0ZXN0cyIgXQor ICAgfQorIAorLS0tIGEvY29tcG9uZW50cy93ZWJfcGFja2FnZS9CVUlMRC5nbgorKysrIGIvY29t cG9uZW50cy93ZWJfcGFja2FnZS9CVUlMRC5nbgorQEAgLTQwLDcgKzQwLDYgQEAgc3RhdGljX2xp YnJhcnkoIndlYl9wYWNrYWdlIikgeworICAgICAiLy9iYXNlIiwKKyAgICAgIi8vY29tcG9uZW50 cy9iYXNlMzIiLAorICAgICAiLy9jb21wb25lbnRzL2Nib3IiLAorLSAgICAiLy9jb21wb25lbnRz L3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9ydXN0OnNpZ25lZF93ZWJfYnVuZGxlc19y dXN0X2JpbmRpbmdzIiwKKyAgICAgIi8vbW9qby9wdWJsaWMvY3BwL2JpbmRpbmdzIiwKKyAgICAg Ii8vbmV0IiwKKyAgICAgIi8vc2VydmljZXMvbmV0d29yay9wdWJsaWMvbW9qb20iLAorQEAgLTcw LDcgKzY5LDYgQEAgc291cmNlX3NldCgibW9qb21fbWFwcGVkX3R5cGVzIikgeworIAorICAgZGVw cyA9IFsKKyAgICAgIi8vYmFzZSIsCistICAgICIvL2NvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2ln bmVkX3dlYl9idW5kbGVzL3J1c3Q6c2lnbmVkX3dlYl9idW5kbGVzX3J1c3RfYmluZGluZ3MiLAor ICAgICAiLy9jcnlwdG8iLAorICAgICAiLy9tb2pvL3B1YmxpYy9jcHAvYmluZGluZ3MiLAogICAg XQorQEAgLTk4LDcgKzk2LDYgQEAgc291cmNlX3NldCgidW5pdF90ZXN0cyIpIHsKKyAgICAgIjp3 ZWJfcGFja2FnZSIsCisgICAgICIvL2Jhc2UvdGVzdDp0ZXN0X3N1cHBvcnQiLAorICAgICAiLy9j b21wb25lbnRzL2Nib3IiLAorLSAgICAiLy9jb21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93 ZWJfYnVuZGxlcy9ydXN0OnNpZ25lZF93ZWJfYnVuZGxlc19ydXN0X3VuaXR0ZXN0cyIsCisgICAg ICIvL2NvbXBvbmVudHMvd2ViX3BhY2thZ2UvdGVzdF9zdXBwb3J0IiwKKyAgICAgIi8vbW9qby9w dWJsaWMvY3BwL2JpbmRpbmdzIiwKKyAgICAgIi8vbW9qby9wdWJsaWMvY3BwL3Rlc3Rfc3VwcG9y dDp0ZXN0X3V0aWxzIiwKKy0tLSBhL2NvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9i dW5kbGVzL2VjZHNhX3AyNTZfc2hhMjU2X3NpZ25hdHVyZS5jYworKysrIGIvY29tcG9uZW50cy93 ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvZWNkc2FfcDI1Nl9zaGEyNTZfc2lnbmF0dXJl LmNjCitAQCAtOSw3ICs5LDggQEAKKyAjaW5jbHVkZSAiYmFzZS9zdHJpbmdzL3N0cmluZ3ByaW50 Zi5oIgorICNpbmNsdWRlICJiYXNlL3R5cGVzL2V4cGVjdGVkLmgiCisgI2luY2x1ZGUgImNvbXBv bmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL2VjZHNhX3AyNTZfcHVibGljX2tl eS5oIgorLSNpbmNsdWRlICJjb21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxl cy9ydXN0L3NpZ25lZF93ZWJfYnVuZGxlc19ydXN0LmgiCisrI2luY2x1ZGUgImNyeXB0by9rZXlw YWlyLmgiCisrI2luY2x1ZGUgImNyeXB0by9zaWduLmgiCisgCisgbmFtZXNwYWNlIHdlYl9wYWNr YWdlIHsKKyAKK0BAIC01MCw4ICs1MSw5IEBAIEVjZHNhUDI1NlNIQTI1NlNpZ25hdHVyZTo6RWNk c2FQMjU2U0hBMjUKKyBbW25vZGlzY2FyZF1dIGJvb2wgRWNkc2FQMjU2U0hBMjU2U2lnbmF0dXJl OjpWZXJpZnkoCisgICAgIGJhc2U6OnNwYW48Y29uc3QgdWludDhfdD4gbWVzc2FnZSwKKyAgICAg Y29uc3QgRWNkc2FQMjU2UHVibGljS2V5JiBwdWJsaWNfa2V5KSBjb25zdCB7CistICByZXR1cm4g c2lnbmVkX3dlYl9idW5kbGVzOjpydXN0Ojp2ZXJpZnlfZWNkc2FfcDI1Nl9zaWduYXR1cmUoCist ICAgICAgcHVibGljX2tleS5ieXRlcygpLCBieXRlcygpLCBtZXNzYWdlKTsKKysgIGF1dG8ga2V5 ID0gY3J5cHRvOjprZXlwYWlyOjpQdWJsaWNLZXk6OkZyb21FY1AyNTZQb2ludChwdWJsaWNfa2V5 LmJ5dGVzKCkpOworKyAgcmV0dXJuIGNyeXB0bzo6c2lnbjo6VmVyaWZ5KGNyeXB0bzo6c2lnbjo6 RUNEU0FfU0hBMjU2LCAqa2V5LCBtZXNzYWdlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGJ5dGVzKCkpOwogIH0KICAKLS1ydXN0X3N0YXRpY19saWJyYXJ5KCJmb250X2Zvcm1hdF9j aGVjayIpIHsKLS0gIGFsbG93X3Vuc2FmZSA9IHRydWUgICMgTmVlZGVkIGZvciBGRkkgdGhhdCB1 bmRlcnBpbnMgdGhlIGBjeHhgIGNyYXRlLgotLSAgY3JhdGVfcm9vdCA9ICJmb250cy9vcGVudHlw ZS9mb3JtYXRfY2hlY2sucnMiCi0tICBzb3VyY2VzID0gWyBjcmF0ZV9yb290IF0KLS0gIGN4eF9i aW5kaW5ncyA9IFsgY3JhdGVfcm9vdCBdCi0tICBkZXBzID0gWwotLSAgICAiLy90aGlyZF9wYXJ0 eS9ydXN0L2ZvbnRfdHlwZXMvdjBfMTI6bGliIiwKLS0gICAgIi8vdGhpcmRfcGFydHkvcnVzdC9y ZWFkX2ZvbnRzL3YwXzQxOmxpYiIsCi0tICAgICIvL3RoaXJkX3BhcnR5L3J1c3Qvc2tyaWZhL3Yw XzQ0OmxpYiIsCi0tICBdCisgfSAgLy8gbmFtZXNwYWNlIHdlYl9wYWNrYWdlCistLS0gYS9jb21w b25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9lZDI1NTE5X3NpZ25hdHVyZS5j YworKysrIGIvY29tcG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvZWQyNTUx OV9zaWduYXR1cmUuY2MKK0BAIC03LDcgKzcsNiBAQAorICNpbmNsdWRlIDxhbGdvcml0aG0+Cisg CisgI2luY2x1ZGUgImJhc2Uvc3RyaW5ncy9zdHJpbmdwcmludGYuaCIKKy0jaW5jbHVkZSAiY29t cG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvcnVzdC9zaWduZWRfd2ViX2J1 bmRsZXNfcnVzdC5oIgorICNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvc3JjL2luY2x1 ZGUvb3BlbnNzbC9jdXJ2ZTI1NTE5LmgiCisgCisgbmFtZXNwYWNlIHdlYl9wYWNrYWdlIHsKK0BA IC00Myw4ICs0MiwxMSBAQCBFZDI1NTE5U2lnbmF0dXJlOjpFZDI1NTE5U2lnbmF0dXJlKHN0ZDo6 CisgW1tub2Rpc2NhcmRdXSBib29sIEVkMjU1MTlTaWduYXR1cmU6OlZlcmlmeSgKKyAgICAgYmFz ZTo6c3Bhbjxjb25zdCB1aW50OF90PiBtZXNzYWdlLAorICAgICBjb25zdCBFZDI1NTE5UHVibGlj S2V5JiBwdWJsaWNfa2V5KSBjb25zdCB7CistICByZXR1cm4gc2lnbmVkX3dlYl9idW5kbGVzOjpy dXN0Ojp2ZXJpZnlfZWQyNTUxOV9zaWduYXR1cmUocHVibGljX2tleS5ieXRlcygpLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5 dGVzKCksIG1lc3NhZ2UpOworKyAgY29uc3Qgc3RkOjphcnJheTx1aW50OF90LCBFRDI1NTE5X1BV QkxJQ19LRVlfTEVOPiYgcHVibGljX2tleV9ieXRlcyA9CisrICAgICAgcHVibGljX2tleS5ieXRl cygpOworKyAgY29uc3Qgc3RkOjphcnJheTx1aW50OF90LCBFRDI1NTE5X1NJR05BVFVSRV9MRU4+ JiBzaWduYXR1cmVfYnl0ZXMgPSBieXRlcygpOworKyAgcmV0dXJuIEVEMjU1MTlfdmVyaWZ5KG1l c3NhZ2UuZGF0YSgpLCBtZXNzYWdlLnNpemUoKSwgc2lnbmF0dXJlX2J5dGVzLmRhdGEoKSwKKysg ICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWNfa2V5X2J5dGVzLmRhdGEoKSk7CisgfQorIAor IH0gIC8vIG5hbWVzcGFjZSB3ZWJfcGFja2FnZQorLS0tIGEvY29tcG9uZW50cy93ZWJfcGFja2Fn ZS9zaWduZWRfd2ViX2J1bmRsZXMvaW50ZWdyaXR5X2Jsb2NrX3BhcnNlci5jYworKysrIGIvY29t cG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvaW50ZWdyaXR5X2Jsb2NrX3Bh cnNlci5jYworQEAgLTQsMTcgKzQsMTkgQEAKKyAKKyAjaW5jbHVkZSAiY29tcG9uZW50cy93ZWJf cGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvaW50ZWdyaXR5X2Jsb2NrX3BhcnNlci5oIgorIAor KyNpbmNsdWRlIDxhbGdvcml0aG0+CisgI2luY2x1ZGUgPHN0cmluZz4KKy0jaW5jbHVkZSA8c3Ry aW5nX3ZpZXc+CisgI2luY2x1ZGUgPHZlY3Rvcj4KKyAKKy0jaW5jbHVkZSAiYmFzZS9jaGVjay5o IgorLSNpbmNsdWRlICJiYXNlL2NvbnRhaW5lcnMvc3Bhbi5oIgorKyNpbmNsdWRlICJiYXNlL2Nv bnRhaW5lcnMvbWFwX3V0aWwuaCIKKyAjaW5jbHVkZSAiYmFzZS9mdW5jdGlvbmFsL2JpbmQuaCIK KyAjaW5jbHVkZSAiYmFzZS9zdHJpbmdzL3N0cmluZ3ByaW50Zi5oIgorKyNpbmNsdWRlICJiYXNl L3N0cmluZ3MvdG9fc3RyaW5nLmgiCisgI2luY2x1ZGUgImJhc2UvdHlwZXMvZXhwZWN0ZWQuaCIK KyAjaW5jbHVkZSAiYmFzZS90eXBlcy9leHBlY3RlZF9tYWNyb3MuaCIKKyAjaW5jbHVkZSAiY29t cG9uZW50cy9jYm9yL3JlYWRlci5oIgorKyNpbmNsdWRlICJjb21wb25lbnRzL2Nib3Ivd3JpdGVy LmgiCisrI2luY2x1ZGUgImNvbXBvbmVudHMvd2ViX3BhY2thZ2UvbW9qb20vd2ViX2J1bmRsZV9w YXJzZXIubW9qb20tZm9yd2FyZC5oIgorICNpbmNsdWRlICJjb21wb25lbnRzL3dlYl9wYWNrYWdl L21vam9tL3dlYl9idW5kbGVfcGFyc2VyLm1vam9tLmgiCisgI2luY2x1ZGUgImNvbXBvbmVudHMv d2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL2NvbnN0YW50cy5oIgorICNpbmNsdWRlICJj b21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9lY2RzYV9wMjU2X3B1Ymxp Y19rZXkuaCIKK0BAIC0yMiw1NiArMjQsMTEgQEAKKyAjaW5jbHVkZSAiY29tcG9uZW50cy93ZWJf cGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvZWQyNTUxOV9wdWJsaWNfa2V5LmgiCisgI2luY2x1 ZGUgImNvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL2VkMjU1MTlfc2ln bmF0dXJlLmgiCisgI2luY2x1ZGUgImNvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9i dW5kbGVzL2ludGVncml0eV9ibG9ja19hdHRyaWJ1dGVzLmgiCistI2luY2x1ZGUgImNvbXBvbmVu dHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL3J1c3Qvc2lnbmVkX3dlYl9idW5kbGVz X3J1c3QuaCIKKyAjaW5jbHVkZSAiY29tcG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1 bmRsZXMvc2lnbmVkX3dlYl9idW5kbGVfaWQuaCIKKyAjaW5jbHVkZSAiY29tcG9uZW50cy93ZWJf cGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvdHlwZXMuaCIKKyAKKyBuYW1lc3BhY2Ugd2ViX3Bh Y2thZ2UgeworIAorLW5hbWVzcGFjZSB7CistCistdXNpbmcgU2lnbmF0dXJlVHlwZSA9IHNpZ25l ZF93ZWJfYnVuZGxlczo6cnVzdDo6U2lnbmF0dXJlVHlwZTo6VGFnOworLXVzaW5nIHNpZ25lZF93 ZWJfYnVuZGxlczo6cnVzdDo6cGFyc2VfaW50ZWdyaXR5X2Jsb2NrOworLQorLWJhc2U6OmV4cGVj dGVkPG1vam9tOjpCdW5kbGVJbnRlZ3JpdHlCbG9ja1NpZ25hdHVyZVN0YWNrRW50cnlQdHIsIHN0 ZDo6c3RyaW5nPgorLUNyZWF0ZVNpZ25hdHVyZVN0YWNrRW50cnkoCistICAgIGNvbnN0IHNpZ25l ZF93ZWJfYnVuZGxlczo6cnVzdDo6U2lnbmF0dXJlU3RhY2tFbnRyeSYgZW50cnkpIHsKKy0gIGF1 dG8gcGFyc2VkX3NpZyA9IG1vam9tOjpCdW5kbGVJbnRlZ3JpdHlCbG9ja1NpZ25hdHVyZVN0YWNr RW50cnk6Ok5ldygpOworLQorLSAgc3dpdGNoIChlbnRyeS5zaWduYXR1cmVfdHlwZS50YWcpIHsK Ky0gICAgY2FzZSBTaWduYXR1cmVUeXBlOjpFZDI1NTE5OiB7CistICAgICAgQVNTSUdOX09SX1JF VFVSTihhdXRvIHB1YmxpY19rZXksCistICAgICAgICAgICAgICAgICAgICAgICBFZDI1NTE5UHVi bGljS2V5OjpDcmVhdGUoZW50cnkucHVibGljX2tleS50b19zcGFuKCkpKTsKKy0gICAgICBBU1NJ R05fT1JfUkVUVVJOKGF1dG8gc2lnbmF0dXJlLAorLSAgICAgICAgICAgICAgICAgICAgICAgRWQy NTUxOVNpZ25hdHVyZTo6Q3JlYXRlKGVudHJ5LnNpZ25hdHVyZS50b19zcGFuKCkpKTsKKy0gICAg ICBwYXJzZWRfc2lnLT5zaWduYXR1cmVfaW5mbyA9IG1vam9tOjpTaWduYXR1cmVJbmZvOjpOZXdF ZDI1NTE5KAorLSAgICAgICAgICBtb2pvbTo6U2lnbmF0dXJlSW5mb0VkMjU1MTk6Ok5ldyhwdWJs aWNfa2V5LCBzaWduYXR1cmUpKTsKKy0gICAgICBicmVhazsKKy0gICAgfQorLSAgICBjYXNlIFNp Z25hdHVyZVR5cGU6OkVjZHNhUDI1NlNIQTI1NjogeworLSAgICAgIEFTU0lHTl9PUl9SRVRVUk4o YXV0byBwdWJsaWNfa2V5LAorLSAgICAgICAgICAgICAgICAgICAgICAgRWNkc2FQMjU2UHVibGlj S2V5OjpDcmVhdGUoZW50cnkucHVibGljX2tleS50b19zcGFuKCkpKTsKKy0gICAgICBBU1NJR05f T1JfUkVUVVJOKGF1dG8gc2lnbmF0dXJlLCBFY2RzYVAyNTZTSEEyNTZTaWduYXR1cmU6OkNyZWF0 ZSgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50cnkuc2ln bmF0dXJlLnRvX3NwYW4oKSkpOworLSAgICAgIHBhcnNlZF9zaWctPnNpZ25hdHVyZV9pbmZvID0g bW9qb206OlNpZ25hdHVyZUluZm86Ok5ld0VjZHNhUDI1NlNoYTI1NigKKy0gICAgICAgICAgbW9q b206OlNpZ25hdHVyZUluZm9FY2RzYVAyNTZTSEEyNTY6Ok5ldyhwdWJsaWNfa2V5LCBzaWduYXR1 cmUpKTsKKy0gICAgICBicmVhazsKKy0gICAgfQorLSAgICBjYXNlIFNpZ25hdHVyZVR5cGU6OlVu a25vd246IHsKKy0gICAgICBwYXJzZWRfc2lnLT5zaWduYXR1cmVfaW5mbyA9CistICAgICAgICAg IG1vam9tOjpTaWduYXR1cmVJbmZvOjpOZXdVbmtub3duKG1vam9tOjpTaWduYXR1cmVJbmZvVW5r bm93bjo6TmV3KCkpOworLSAgICAgIGJyZWFrOworLSAgICB9CistICB9CistCistICBwYXJzZWRf c2lnLT5hdHRyaWJ1dGVzX2Nib3IgPQorLSAgICAgIEJpbmFyeURhdGEoZW50cnkuYXR0cmlidXRl c19jYm9yLmJlZ2luKCksIGVudHJ5LmF0dHJpYnV0ZXNfY2Jvci5lbmQoKSk7CistCistICByZXR1 cm4gcGFyc2VkX3NpZzsKIC19CiAtCistfSAgLy8gbmFtZXNwYWNlCistCisgSW50ZWdyaXR5Qmxv Y2tQYXJzZXI6OkludGVncml0eUJsb2NrUGFyc2VyKAorICAgICBtb2pvbTo6QnVuZGxlRGF0YVNv dXJjZSYgZGF0YV9zb3VyY2UsCisgICAgIFdlYkJ1bmRsZVBhcnNlcjo6UGFyc2VJbnRlZ3JpdHlC bG9ja0NhbGxiYWNrIGNhbGxiYWNrKQorQEAgLTEwMywzNyArNjAsMTAzIEBAIHZvaWQgSW50ZWdy aXR5QmxvY2tQYXJzZXI6Ok9uSW50ZWdyaXR5QmwKKyAgICAgUnVuRXJyb3JDYWxsYmFjaygiRXJy b3IgcmVhZGluZyB0aGUgaW50ZWdyaXR5IGJsb2NrLiIpOworICAgICByZXR1cm47CisgICB9Cisr ICAvLyBUaGlzIHN0cnVjdHVyZSBpcyBidWlsdCBkdXJpbmcgcGFyc2luZyBhbmQgcmV0dXJuZWQg YnkgdGhlIGZpbmFsIGNhbGxiYWNrCisrICBtb2pvbTo6QnVuZGxlSW50ZWdyaXR5QmxvY2tQdHIg aW50ZWdyaXR5X2Jsb2NrID0KKysgICAgICBtb2pvbTo6QnVuZGxlSW50ZWdyaXR5QmxvY2s6Ok5l dygpOworKworKyAgc2l6ZV90IGNvbnN1bWVkX2J5dGVzID0gMDsKKysgIGNib3I6OlJlYWRlcjo6 RGVjb2RlckVycm9yIGVycm9yOworKyAgY2Jvcjo6UmVhZGVyOjpDb25maWcgY29uZmlnOworKyAg Y29uZmlnLm51bV9ieXRlc19jb25zdW1lZCA9ICZjb25zdW1lZF9ieXRlczsKKysgIGNvbmZpZy5l cnJvcl9jb2RlX291dCA9ICZlcnJvcjsKKysKKysgIC8vIFdoZW4gY29uZmlnIGBieXRlc19jb25z dW1lZGAgYXJlIGFzc2lnbmVkIHRoZSBDQk9SIHBhcnNlciByZWFkcyBvbmx5IHRvIHRoZQorKyAg Ly8gZW5kIG9mIGEgc3RydWN0dXJlLiBJdCBwYXJzZXMgb25seSBJbnRlZ3JpdHkgQmxvY2sgZXZl biBpZiBXZWIgQnVuZGxlIHBhcnQKKysgIC8vIHN0YXJ0cyBqdXN0IGFmdGVyLgorKyAgc3RkOjpv cHRpb25hbDxjYm9yOjpWYWx1ZT4gdmFsdWUgPSBjYm9yOjpSZWFkZXI6OlJlYWQoKmRhdGEsIGNv bmZpZyk7CisrICBpZiAoIXZhbHVlKSB7CisrICAgIFJ1bkVycm9yQ2FsbGJhY2soIkVycm9yIHBh cnNpbmcgaW50ZWdyaXR5IGJsb2NrIGFzIENCT1I6ICIgKworKyAgICAgICAgICAgICAgICAgICAg IHN0ZDo6c3RyaW5nKGNib3I6OlJlYWRlcjo6RXJyb3JDb2RlVG9TdHJpbmcoZXJyb3IpKSk7Cisr ICAgIHJldHVybjsKKysgIH0KKysgIGludGVncml0eV9ibG9jay0+c2l6ZSA9IGNvbnN1bWVkX2J5 dGVzOworKworKyAgaWYgKCF2YWx1ZS0+aXNfYXJyYXkoKSkgeworKyAgICBSdW5FcnJvckNhbGxi YWNrKCJJbnRlZ3JpdHkgYmxvY2sgaXMgbm90IGEgQ0JPUiBhcnJheS4iKTsKKysgICAgcmV0dXJu OworKyAgfQorIAorLSAgY29uc3QgYXV0byBwYXJzZV9yZXMgPSBwYXJzZV9pbnRlZ3JpdHlfYmxv Y2soKmRhdGEpOworLSAgaWYgKCFwYXJzZV9yZXMuaGFzX3ZhbHVlKCkpIHsKKy0gICAgY29uc3Qg YXV0byYgZXJyb3IgPSBwYXJzZV9yZXMuZXJyb3IoKTsKKy0gICAgUnVuRXJyb3JDYWxsYmFjayhz dGQ6OnN0cmluZyhlcnJvci5tZXNzYWdlLmFzX3N0cigpKSwKKy0gICAgICAgICAgICAgICAgICAg ICBlcnJvci5pc192ZXJzaW9uX2Vycm9yCistICAgICAgICAgICAgICAgICAgICAgICAgID8gbW9q b206OkJ1bmRsZVBhcnNlRXJyb3JUeXBlOjprVmVyc2lvbkVycm9yCistICAgICAgICAgICAgICAg ICAgICAgICAgIDogbW9qb206OkJ1bmRsZVBhcnNlRXJyb3JUeXBlOjprRm9ybWF0RXJyb3IpOwor KyAgY29uc3QgY2Jvcjo6VmFsdWU6OkFycmF5VmFsdWUmIHRvcF9hcnJheSA9IHZhbHVlLT5HZXRB cnJheSgpOworKyAgaWYgKHRvcF9hcnJheS5zaXplKCkgIT0ga0ludGVncml0eUJsb2NrVjJUb3BM ZXZlbEFycmF5TGVuZ3RoKSB7CisrICAgIFJ1bkVycm9yQ2FsbGJhY2soYmFzZTo6U3RyaW5nUHJp bnRmKAorKyAgICAgICAgIkludmFsaWQgaW50ZWdyaXR5IGJsb2NrIGFycmF5IGxlbmd0aDogZXhw ZWN0ZWQgJXUsIGdvdCAlenUuIiwKKysgICAgICAgIGtJbnRlZ3JpdHlCbG9ja1YyVG9wTGV2ZWxB cnJheUxlbmd0aCwgdG9wX2FycmF5LnNpemUoKSkpOworICAgICByZXR1cm47CisgICB9CisgCist ICBjb25zdCBhdXRvJiBwYXJzZWRfaWIgPSAqcGFyc2VfcmVzOworLSAgYXV0byBpbnRlZ3JpdHlf YmxvY2sgPSBtb2pvbTo6QnVuZGxlSW50ZWdyaXR5QmxvY2s6Ok5ldygpOworLSAgaW50ZWdyaXR5 X2Jsb2NrLT5zaXplID0gcGFyc2VkX2liLnNpemU7CistCistICBjb25zdCBzdGQ6OnN0cmluZ192 aWV3IHdlYl9idW5kbGVfaWRfc3RyID0KKy0gICAgICBwYXJzZWRfaWIud2ViX2J1bmRsZV9pZC50 b19zdHJpbmdfdmlldygpOworLSAgUkVUVVJOX0lGX0VSUk9SKAorLSAgICAgIFNpZ25lZFdlYkJ1 bmRsZUlkOjpDcmVhdGUod2ViX2J1bmRsZV9pZF9zdHIpLAorLSAgICAgIFsmXShzdGQ6OnN0cmlu ZyBlcnJvcikgeyBSdW5FcnJvckNhbGxiYWNrKHN0ZDo6bW92ZShlcnJvcikpOyB9KTsKKy0KKy0g IGludGVncml0eV9ibG9jay0+YXR0cmlidXRlcyA9CistICAgICAgSW50ZWdyaXR5QmxvY2tBdHRy aWJ1dGVzKHN0ZDo6c3RyaW5nKHdlYl9idW5kbGVfaWRfc3RyKSwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQmluYXJ5RGF0YShwYXJzZWRfaWIuYXR0cmlidXRlc19jYm9yLmJlZ2lu KCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VkX2li LmF0dHJpYnV0ZXNfY2Jvci5lbmQoKSkpOworKyAgLy8gMS4gTWFnaWMgYnl0ZXMKKysgIGlmICgh dG9wX2FycmF5WzBdLmlzX2J5dGVzdHJpbmcoKSB8fAorKyAgICAgICFzdGQ6OnJhbmdlczo6ZXF1 YWwodG9wX2FycmF5WzBdLkdldEJ5dGVzdHJpbmcoKSwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgIGtJbnRlZ3JpdHlCbG9ja01hZ2ljQnl0ZXMpKSB7CisrICAgIFJ1bkVycm9yQ2FsbGJhY2so IlVuZXhwZWN0ZWQgbWFnaWMgYnl0ZXMuIik7CisrICAgIHJldHVybjsKKysgIH0KKysKKysgIC8v IDIuIFZlcnNpb24KKysgIGlmICghdG9wX2FycmF5WzFdLmlzX2J5dGVzdHJpbmcoKSB8fAorKyAg ICAgICFzdGQ6OnJhbmdlczo6ZXF1YWwodG9wX2FycmF5WzFdLkdldEJ5dGVzdHJpbmcoKSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgIGtJbnRlZ3JpdHlCbG9ja1YyVmVyc2lvbkJ5dGVzKSkg eworKyAgICBSdW5FcnJvckNhbGxiYWNrKCJVbmV4cGVjdGVkIHZlcnNpb24gYnl0ZXMuIiwKKysg ICAgICAgICAgICAgICAgICAgICBtb2pvbTo6QnVuZGxlUGFyc2VFcnJvclR5cGU6OmtWZXJzaW9u RXJyb3IpOworKyAgICByZXR1cm47CisrICB9CisgCistICBmb3IgKGNvbnN0IGF1dG8mIGVudHJ5 IDogcGFyc2VkX2liLnNpZ25hdHVyZV9zdGFjaykgeworKyAgLy8gMy4gQXR0cmlidXRlcworKyAg aWYgKCF0b3BfYXJyYXlbMl0uaXNfbWFwKCkpIHsKKysgICAgUnVuRXJyb3JDYWxsYmFjaygiSW50 ZWdyaXR5IGJsb2NrIGF0dHJpYnV0ZXMgbXVzdCBiZSBhIG1hcC4iKTsKKysgICAgcmV0dXJuOwor KyAgfQorKyAgY29uc3QgY2Jvcjo6VmFsdWU6Ok1hcFZhbHVlJiBhdHRyaWJ1dGVzX21hcCA9IHRv cF9hcnJheVsyXS5HZXRNYXAoKTsKKysgIGNvbnN0IGNib3I6OlZhbHVlKiB3ZWJfYnVuZGxlX2lk ID0KKysgICAgICBiYXNlOjpGaW5kT3JOdWxsKGF0dHJpYnV0ZXNfbWFwLCBjYm9yOjpWYWx1ZShr V2ViQnVuZGxlSWRBdHRyaWJ1dGVOYW1lKSk7CisrICBpZiAoIXdlYl9idW5kbGVfaWQgfHwgIXdl Yl9idW5kbGVfaWQtPmlzX3N0cmluZygpKSB7CisrICAgIFJ1bkVycm9yQ2FsbGJhY2soCisrICAg ICAgICAiYHdlYkJ1bmRsZUlkYCBpbnRlZ3JpdHkgYmxvY2sgYXR0cmlidXRlIGlzIG1pc3Npbmcg b3IgbWFsZm9ybWVkLiIpOworKyAgICByZXR1cm47CisrICB9CisrCisrICAvLyBDaGVjayBpZiB3 ZWJfYnVuZGxlX2lkIGlzIGNvcnJlY3QKKysgIFJFVFVSTl9JRl9FUlJPUihTaWduZWRXZWJCdW5k bGVJZDo6Q3JlYXRlKHdlYl9idW5kbGVfaWQtPkdldFN0cmluZygpKSwKKysgICAgICAgICAgICAg ICAgICBbJl0oY29uc3Qgc3RkOjpzdHJpbmcmIGVycm9yKSB7IFJ1bkVycm9yQ2FsbGJhY2soZXJy b3IpOyB9KTsKKysKKysgIEJpbmFyeURhdGEgYXR0cmlidXRlc19jYm9yID0gKmNib3I6OldyaXRl cjo6V3JpdGUodG9wX2FycmF5WzJdKTsKKysgIGludGVncml0eV9ibG9jay0+YXR0cmlidXRlcyA9 IEludGVncml0eUJsb2NrQXR0cmlidXRlcygKKysgICAgICB3ZWJfYnVuZGxlX2lkLT5HZXRTdHJp bmcoKSwgc3RkOjptb3ZlKGF0dHJpYnV0ZXNfY2JvcikpOworKworKyAgLy8gNC4gU2lnbmF0dXJl IFN0YWNrCisrICBpZiAoIXRvcF9hcnJheVszXS5pc19hcnJheSgpKSB7CisrICAgIFJ1bkVycm9y Q2FsbGJhY2soIlNpZ25hdHVyZSBzdGFjayBtdXN0IGJlIGFuIGFycmF5LiIpOworKyAgICByZXR1 cm47CisrICB9CisrICBjb25zdCBjYm9yOjpWYWx1ZTo6QXJyYXlWYWx1ZSYgc2lnbmF0dXJlcyA9 IHRvcF9hcnJheVszXS5HZXRBcnJheSgpOworKyAgaWYgKHNpZ25hdHVyZXMuZW1wdHkoKSkgewor KyAgICBSdW5FcnJvckNhbGxiYWNrKAorKyAgICAgICAgIlRoZSBzaWduYXR1cmUgc3RhY2sgbXVz dCBjb250YWluIGF0IGxlYXN0IG9uZSBzaWduYXR1cmUuIik7CisrICAgIHJldHVybjsKKysgIH0K KysKKysgIGZvciAoY29uc3QgYXV0byYgc2lnbmF0dXJlX2luZm9fcmF3IDogc2lnbmF0dXJlcykg eworICAgICBBU1NJR05fT1JfUkVUVVJOKAorLSAgICAgICAgYXV0byBwYXJzZWRfc2lnLCBDcmVh dGVTaWduYXR1cmVTdGFja0VudHJ5KGVudHJ5KSwKKy0gICAgICAgIFsmXShzdGQ6OnN0cmluZyBl cnJvcikgeyBSdW5FcnJvckNhbGxiYWNrKHN0ZDo6bW92ZShlcnJvcikpOyB9KTsKKy0gICAgaW50 ZWdyaXR5X2Jsb2NrLT5zaWduYXR1cmVfc3RhY2sucHVzaF9iYWNrKHN0ZDo6bW92ZShwYXJzZWRf c2lnKSk7CisrICAgICAgICBhdXRvIHBhcnNlZF9zaWduYXR1cmVfaW5mbywgUGFyc2VTaWduYXR1 cmVJbmZvKHNpZ25hdHVyZV9pbmZvX3JhdyksCisrICAgICAgICBbJl0oY29uc3Qgc3RkOjpzdHJp bmcmIGVycm9yKSB7IHRoaXMtPlJ1bkVycm9yQ2FsbGJhY2soZXJyb3IpOyB9KTsKKysKKysgICAg aWYgKGludGVncml0eV9ibG9jay0+c2lnbmF0dXJlX3N0YWNrLmVtcHR5KCkgJiYKKysgICAgICAg IHBhcnNlZF9zaWduYXR1cmVfaW5mby0+c2lnbmF0dXJlX2luZm8tPmlzX3Vua25vd24oKSkgewor KyAgICAgIFJ1bkVycm9yQ2FsbGJhY2soIlVua25vd24gY2lwaGVyIHR5cGUgb2YgdGhlIGZpcnN0 IHNpZ25hdHVyZS4iKTsKKysgICAgICByZXR1cm47CisrICAgIH0KKysgICAgaW50ZWdyaXR5X2Js b2NrLT5zaWduYXR1cmVfc3RhY2sucHVzaF9iYWNrKAorKyAgICAgICAgc3RkOjptb3ZlKHBhcnNl ZF9zaWduYXR1cmVfaW5mbykpOworICAgfQorIAorICAgc3RkOjptb3ZlKGNvbXBsZXRlX2NhbGxi YWNrXykKK0BAIC0xNDEsMTMgKzE2NCw3NCBAQCB2b2lkIEludGVncml0eUJsb2NrUGFyc2VyOjpP bkludGVncml0eUJsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6Om1vdmUoaW50ZWdy aXR5X2Jsb2NrKSwgbnVsbHB0cikpOworIH0KKyAKKytiYXNlOjpleHBlY3RlZDxtb2pvbTo6QnVu ZGxlSW50ZWdyaXR5QmxvY2tTaWduYXR1cmVTdGFja0VudHJ5UHRyLCBzdGQ6OnN0cmluZz4KKytJ bnRlZ3JpdHlCbG9ja1BhcnNlcjo6UGFyc2VTaWduYXR1cmVJbmZvKAorKyAgICBjb25zdCBjYm9y OjpWYWx1ZSYgc2lnbmF0dXJlX2luZm9fcmF3KSB7CisrICBpZiAoIXNpZ25hdHVyZV9pbmZvX3Jh dy5pc19hcnJheSgpIHx8CisrICAgICAgc2lnbmF0dXJlX2luZm9fcmF3LkdldEFycmF5KCkuc2l6 ZSgpICE9IDIpIHsKKysgICAgcmV0dXJuIGJhc2U6OnVuZXhwZWN0ZWQoCisrICAgICAgICAiRWFj aCBzaWduYXR1cmUgc3RhY2sgZW50cnkgbXVzdCBjb250YWluIGV4YWN0bHkgdHdvIGVsZW1lbnRz LiIpOworKyAgfQorKworKyAgY29uc3QgY2Jvcjo6VmFsdWU6OkFycmF5VmFsdWUmIHNpZ25hdHVy ZV9pbmZvX2FycmF5ID0KKysgICAgICBzaWduYXR1cmVfaW5mb19yYXcuR2V0QXJyYXkoKTsKKysg IGlmICghc2lnbmF0dXJlX2luZm9fYXJyYXlbMF0uaXNfbWFwKCkgfHwKKysgICAgICAhc2lnbmF0 dXJlX2luZm9fYXJyYXlbMV0uaXNfYnl0ZXN0cmluZygpKSB7CisrICAgIHJldHVybiBiYXNlOjp1 bmV4cGVjdGVkKCJNYWxmb3JtZWQgc2lnbmF0dXJlIHN0YWNrIGVudHJ5LiIpOworKyAgfQorKwor KyAgbW9qb206OkJ1bmRsZUludGVncml0eUJsb2NrU2lnbmF0dXJlU3RhY2tFbnRyeVB0ciBwYXJz ZWRfc2lnbmF0dXJlX2luZm8gPQorKyAgICAgIG1vam9tOjpCdW5kbGVJbnRlZ3JpdHlCbG9ja1Np Z25hdHVyZVN0YWNrRW50cnk6Ok5ldygpOworKyAgcGFyc2VkX3NpZ25hdHVyZV9pbmZvLT5hdHRy aWJ1dGVzX2Nib3IgPQorKyAgICAgICpjYm9yOjpXcml0ZXI6OldyaXRlKHNpZ25hdHVyZV9pbmZv X2FycmF5WzBdKTsKKysKKysgIGNvbnN0IGNib3I6OlZhbHVlOjpNYXBWYWx1ZSYgc2lnbmF0dXJl X2F0dHJpYnV0ZXMgPQorKyAgICAgIHNpZ25hdHVyZV9pbmZvX2FycmF5WzBdLkdldE1hcCgpOwor KyAgY29uc3QgQmluYXJ5RGF0YSYgc2lnbmF0dXJlX2J5dGVzID0gc2lnbmF0dXJlX2luZm9fYXJy YXlbMV0uR2V0Qnl0ZXN0cmluZygpOworKworKyAgY29uc3QgY2Jvcjo6VmFsdWUqIGVkMjU1MTlf a2V5ID0gYmFzZTo6RmluZE9yTnVsbCgKKysgICAgICBzaWduYXR1cmVfYXR0cmlidXRlcywgY2Jv cjo6VmFsdWUoa0VkMjU1MTlQdWJsaWNLZXlBdHRyaWJ1dGVOYW1lKSk7CisrICBjb25zdCBjYm9y OjpWYWx1ZSogZWNkc2Ffa2V5ID0gYmFzZTo6RmluZE9yTnVsbCgKKysgICAgICBzaWduYXR1cmVf YXR0cmlidXRlcywgY2Jvcjo6VmFsdWUoa0VjZHNhUDI1NlB1YmxpY0tleUF0dHJpYnV0ZU5hbWUp KTsKKysKKysgIGlmIChlZDI1NTE5X2tleSAmJiBlY2RzYV9rZXkpIHsKKysgICAgcmV0dXJuIGJh c2U6OnVuZXhwZWN0ZWQoIk11bHRpcGxlIGtleSB0eXBlcyBmb3Igb25lIHNpZ25hdHVyZS4iKTsK KysgIH0gZWxzZSBpZiAoZWQyNTUxOV9rZXkgJiYgIWVkMjU1MTlfa2V5LT5pc19ieXRlc3RyaW5n KCkpIHsKKysgICAgcmV0dXJuIGJhc2U6OnVuZXhwZWN0ZWQoIkludmFsaWQgRUQyNTUxOSBrZXku Iik7CisrICB9IGVsc2UgaWYgKGVjZHNhX2tleSAmJiAhZWNkc2Ffa2V5LT5pc19ieXRlc3RyaW5n KCkpIHsKKysgICAgcmV0dXJuIGJhc2U6OnVuZXhwZWN0ZWQoIkludmFsaWQgRUNEU0Ega2V5LiIp OworKworKyAgfSBlbHNlIGlmIChlZDI1NTE5X2tleSAmJiBlZDI1NTE5X2tleS0+aXNfYnl0ZXN0 cmluZygpKSB7CisrICAgIEFTU0lHTl9PUl9SRVRVUk4oYXV0byBwdWJsaWNfa2V5LAorKyAgICAg ICAgICAgICAgICAgICAgIEVkMjU1MTlQdWJsaWNLZXk6OkNyZWF0ZShlZDI1NTE5X2tleS0+R2V0 Qnl0ZXN0cmluZygpKSk7CisrICAgIEFTU0lHTl9PUl9SRVRVUk4oYXV0byBzaWduYXR1cmUsIEVk MjU1MTlTaWduYXR1cmU6OkNyZWF0ZShzaWduYXR1cmVfYnl0ZXMpKTsKKysgICAgcGFyc2VkX3Np Z25hdHVyZV9pbmZvLT5zaWduYXR1cmVfaW5mbyA9IG1vam9tOjpTaWduYXR1cmVJbmZvOjpOZXdF ZDI1NTE5KAorKyAgICAgICAgbW9qb206OlNpZ25hdHVyZUluZm9FZDI1NTE5OjpOZXcocHVibGlj X2tleSwgc2lnbmF0dXJlKSk7CisrCisrICB9IGVsc2UgaWYgKGVjZHNhX2tleSAmJiBlY2RzYV9r ZXktPmlzX2J5dGVzdHJpbmcoKSkgeworKyAgICBBU1NJR05fT1JfUkVUVVJOKGF1dG8gcHVibGlj X2tleSwKKysgICAgICAgICAgICAgICAgICAgICBFY2RzYVAyNTZQdWJsaWNLZXk6OkNyZWF0ZShl Y2RzYV9rZXktPkdldEJ5dGVzdHJpbmcoKSkpOworKyAgICBBU1NJR05fT1JfUkVUVVJOKGF1dG8g c2lnbmF0dXJlLAorKyAgICAgICAgICAgICAgICAgICAgIEVjZHNhUDI1NlNIQTI1NlNpZ25hdHVy ZTo6Q3JlYXRlKHNpZ25hdHVyZV9ieXRlcykpOworKyAgICBwYXJzZWRfc2lnbmF0dXJlX2luZm8t PnNpZ25hdHVyZV9pbmZvID0KKysgICAgICAgIG1vam9tOjpTaWduYXR1cmVJbmZvOjpOZXdFY2Rz YVAyNTZTaGEyNTYoCisrICAgICAgICAgICAgbW9qb206OlNpZ25hdHVyZUluZm9FY2RzYVAyNTZT SEEyNTY6Ok5ldyhwdWJsaWNfa2V5LCBzaWduYXR1cmUpKTsKKysKKysgIH0gZWxzZSB7CisrICAg IHBhcnNlZF9zaWduYXR1cmVfaW5mby0+c2lnbmF0dXJlX2luZm8gPQorKyAgICAgICAgbW9qb206 OlNpZ25hdHVyZUluZm86Ok5ld1Vua25vd24obW9qb206OlNpZ25hdHVyZUluZm9Vbmtub3duOjpO ZXcoKSk7CisrICB9CisrCisrICByZXR1cm4gcGFyc2VkX3NpZ25hdHVyZV9pbmZvOworK30KKysK KyB2b2lkIEludGVncml0eUJsb2NrUGFyc2VyOjpSdW5FcnJvckNhbGxiYWNrKAorLSAgICBzdGQ6 OnN0cmluZyBtZXNzYWdlLAorKyAgICBjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSwKKyAgICAg bW9qb206OkJ1bmRsZVBhcnNlRXJyb3JUeXBlIGVycm9yX3R5cGUpIHsKKyAgIHN0ZDo6bW92ZShj b21wbGV0ZV9jYWxsYmFja18pCistICAgICAgLlJ1bihiYXNlOjpCaW5kT25jZShzdGQ6Om1vdmUo cmVzdWx0X2NhbGxiYWNrXyksIG51bGxwdHIsCistICAgICAgICAgICAgICAgICAgICAgICAgICBt b2pvbTo6QnVuZGxlSW50ZWdyaXR5QmxvY2tQYXJzZUVycm9yOjpOZXcoCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZXJyb3JfdHlwZSwgc3RkOjptb3ZlKG1lc3NhZ2UpKSkpOworKyAg ICAgIC5SdW4oYmFzZTo6QmluZE9uY2UoCisrICAgICAgICAgIHN0ZDo6bW92ZShyZXN1bHRfY2Fs bGJhY2tfKSwgbnVsbHB0ciwKKysgICAgICAgICAgbW9qb206OkJ1bmRsZUludGVncml0eUJsb2Nr UGFyc2VFcnJvcjo6TmV3KGVycm9yX3R5cGUsIG1lc3NhZ2UpKSk7CisgfQorIAorIH0gIC8vIG5h bWVzcGFjZSB3ZWJfcGFja2FnZQorLS0tIGEvY29tcG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRf d2ViX2J1bmRsZXMvaW50ZWdyaXR5X2Jsb2NrX3BhcnNlci5oCisrKysgYi9jb21wb25lbnRzL3dl Yl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9pbnRlZ3JpdHlfYmxvY2tfcGFyc2VyLmgKK0BA IC01LDEzICs1LDggQEAKKyAjaWZuZGVmIENPTVBPTkVOVFNfV0VCX1BBQ0tBR0VfU0lHTkVEX1dF Ql9CVU5ETEVTX0lOVEVHUklUWV9CTE9DS19QQVJTRVJfSF8KKyAjZGVmaW5lIENPTVBPTkVOVFNf V0VCX1BBQ0tBR0VfU0lHTkVEX1dFQl9CVU5ETEVTX0lOVEVHUklUWV9CTE9DS19QQVJTRVJfSF8K KyAKKy0jaW5jbHVkZSA8b3B0aW9uYWw+CistI2luY2x1ZGUgPHN0cmluZz4KKy0KKy0jaW5jbHVk ZSAiYmFzZS9jb21waWxlcl9zcGVjaWZpYy5oIgorLSNpbmNsdWRlICJiYXNlL21lbW9yeS9yYXdf cmVmLmgiCistI2luY2x1ZGUgImJhc2UvbWVtb3J5L3dlYWtfcHRyLmgiCisgI2luY2x1ZGUgImNv bXBvbmVudHMvd2ViX3BhY2thZ2UvbW9qb20vd2ViX2J1bmRsZV9wYXJzZXIubW9qb20tZm9yd2Fy ZC5oIgorKyNpbmNsdWRlICJjb21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxl cy9pbnRlZ3JpdHlfYmxvY2tfYXR0cmlidXRlcy5oIgorICNpbmNsdWRlICJjb21wb25lbnRzL3dl Yl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy90eXBlcy5oIgorICNpbmNsdWRlICJjb21wb25l bnRzL3dlYl9wYWNrYWdlL3dlYl9idW5kbGVfcGFyc2VyLmgiCisgCitAQCAtMjAsNyArMTUsNyBA QCBuYW1lc3BhY2Ugd2ViX3BhY2thZ2UgeworIGNsYXNzIEludGVncml0eUJsb2NrUGFyc2VyIDog cHVibGljIFdlYkJ1bmRsZVBhcnNlcjo6V2ViQnVuZGxlU2VjdGlvblBhcnNlciB7CisgIHB1Ymxp YzoKKyAgIGV4cGxpY2l0IEludGVncml0eUJsb2NrUGFyc2VyKAorLSAgICAgIG1vam9tOjpCdW5k bGVEYXRhU291cmNlJiBkYXRhX3NvdXJjZSBMSUZFVElNRV9CT1VORCwKKysgICAgICBtb2pvbTo6 QnVuZGxlRGF0YVNvdXJjZSYgZGF0YV9zb3VyY2UsCisgICAgICAgV2ViQnVuZGxlUGFyc2VyOjpQ YXJzZUludGVncml0eUJsb2NrQ2FsbGJhY2sgY2FsbGJhY2spOworIAorICAgSW50ZWdyaXR5Qmxv Y2tQYXJzZXIoY29uc3QgSW50ZWdyaXR5QmxvY2tQYXJzZXImKSA9IGRlbGV0ZTsKK0BAIC0zNSw3 ICszMCwxMCBAQCBjbGFzcyBJbnRlZ3JpdHlCbG9ja1BhcnNlciA6IHB1YmxpYyBXZWJCCisgIHBy aXZhdGU6CisgICB2b2lkIE9uSW50ZWdyaXR5QmxvY2tSZWFkKGNvbnN0IHN0ZDo6b3B0aW9uYWw8 QmluYXJ5RGF0YT4mIGRhdGEpOworIAorLSAgdm9pZCBSdW5FcnJvckNhbGxiYWNrKHN0ZDo6c3Ry aW5nIG1lc3NhZ2UsCisrICBiYXNlOjpleHBlY3RlZDxtb2pvbTo6QnVuZGxlSW50ZWdyaXR5Qmxv Y2tTaWduYXR1cmVTdGFja0VudHJ5UHRyLCBzdGQ6OnN0cmluZz4KKysgIFBhcnNlU2lnbmF0dXJl SW5mbyhjb25zdCBjYm9yOjpWYWx1ZSYgYXR0cmlidXRlc19tYXApOworKworKyAgdm9pZCBSdW5F cnJvckNhbGxiYWNrKGNvbnN0IHN0ZDo6c3RyaW5nJiBtZXNzYWdlLAorICAgICAgICAgICAgICAg ICAgICAgICAgIG1vam9tOjpCdW5kbGVQYXJzZUVycm9yVHlwZSBlcnJvcl90eXBlID0KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbW9qb206OkJ1bmRsZVBhcnNlRXJyb3JUeXBlOjprRm9y bWF0RXJyb3IpOworIAorLS0tIGEvY29tcG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1 bmRsZXMvcnVzdC9CVUlMRC5nbgorKysrIGIvY29tcG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRf d2ViX2J1bmRsZXMvcnVzdC9CVUlMRC5nbgorQEAgLTEwLDcgKzEwLDYgQEAgcnVzdF9zdGF0aWNf bGlicmFyeSgic2lnbmVkX3dlYl9idW5kbGVzXworICAgc291cmNlcyA9IFsKKyAgICAgImNvbnN0 YW50cy5ycyIsCisgICAgICJpbnRlZ3JpdHlfYmxvY2sucnMiLAorLSAgICAic2lnbmF0dXJlX3Zl cmlmaWVyLnJzIiwKKyAgICAgInR5cGVzLnJzIiwKKyAgICAgY3JhdGVfcm9vdCwKKyAgIF0KKy0t LSBhL2NvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL3NpZ25lZF93ZWJf YnVuZGxlX3NpZ25hdHVyZV92ZXJpZmllci5jYworKysrIGIvY29tcG9uZW50cy93ZWJfcGFja2Fn ZS9zaWduZWRfd2ViX2J1bmRsZXMvc2lnbmVkX3dlYl9idW5kbGVfc2lnbmF0dXJlX3ZlcmlmaWVy LmNjCitAQCAtMjAsMTQgKzIwLDE3IEBACisgI2luY2x1ZGUgImJhc2UvdGFzay90aHJlYWRfcG9v bC5oIgorICNpbmNsdWRlICJiYXNlL3R5cGVzL2V4cGVjdGVkLmgiCisgI2luY2x1ZGUgImJhc2Uv dHlwZXMvZXhwZWN0ZWRfbWFjcm9zLmgiCisrI2luY2x1ZGUgImNvbXBvbmVudHMvY2Jvci92YWx1 ZXMuaCIKKysjaW5jbHVkZSAiY29tcG9uZW50cy9jYm9yL3dyaXRlci5oIgorKyNpbmNsdWRlICJj b21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9jb25zdGFudHMuaCIKKyAj aW5jbHVkZSAiY29tcG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvaWRlbnRp dHlfdmFsaWRhdG9yLmgiCisgI2luY2x1ZGUgImNvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVk X3dlYl9idW5kbGVzL2ludGVncml0eV9ibG9ja19wYXJzZXIuaCIKKy0jaW5jbHVkZSAiY29tcG9u ZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvcnVzdC9zaWduZWRfd2ViX2J1bmRs ZXNfcnVzdC5oIgorICNpbmNsdWRlICJjb21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJf YnVuZGxlcy9zaWduZWRfd2ViX2J1bmRsZV9pZC5oIgorICNpbmNsdWRlICJjb21wb25lbnRzL3dl Yl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9zaWduZWRfd2ViX2J1bmRsZV9pbnRlZ3JpdHlf YmxvY2suaCIKKyAjaW5jbHVkZSAiY29tcG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1 bmRsZXMvc2lnbmVkX3dlYl9idW5kbGVfc2lnbmF0dXJlX3N0YWNrLmgiCisgI2luY2x1ZGUgImNv bXBvbmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL3NpZ25lZF93ZWJfYnVuZGxl X3NpZ25hdHVyZV9zdGFja19lbnRyeS5oIgorICNpbmNsdWRlICJjb21wb25lbnRzL3dlYl9wYWNr YWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9zaWduZWRfd2ViX2J1bmRsZV91dGlscy5oIgorKyNpbmNs dWRlICJjcnlwdG8vaGFzaC5oIgorICNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9hYnNlaWwtY3BwL2Fi c2wvZnVuY3Rpb25hbC9vdmVybG9hZC5oIgorICNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9ib3Jpbmdz c2wvc3JjL2luY2x1ZGUvb3BlbnNzbC9zaGEuaCIKKyAKK0BAIC0zNywxMCArNDAsMzIgQEAgbmFt ZXNwYWNlIHsKKyAKKyBzdGQ6OnZlY3Rvcjx1aW50OF90PiBDcmVhdGVJbnRlZ3JpdHlCbG9ja0Ni b3IoCisgICAgIGNvbnN0IFNpZ25lZFdlYkJ1bmRsZUludGVncml0eUJsb2NrJiBpbnRlZ3JpdHlf YmxvY2spIHsKKy0gIGF1dG8gaWJfY2Jvcl9ydXN0ID0KKy0gICAgICBzaWduZWRfd2ViX2J1bmRs ZXM6OnJ1c3Q6OmNyZWF0ZV9lbXB0eV9pbnRlZ3JpdHlfYmxvY2tfY2JvcigKKy0gICAgICAgICAg aW50ZWdyaXR5X2Jsb2NrLmF0dHJpYnV0ZXNfY2JvcigpKTsKKy0gIHJldHVybiBzdGQ6OnZlY3Rv cjx1aW50OF90PihpYl9jYm9yX3J1c3QuYmVnaW4oKSwgaWJfY2Jvcl9ydXN0LmVuZCgpKTsKKysg IC8vIFRoaXMgZnVuY3Rpb24gbG9va3MgbGlrZSBpdCBzaG91bGQgdXNlIGEgY2Jvcjo6VmFsdWU6 OkFycmF5VmFsdWUgdG8gYnVpbGQKKysgIC8vIHRoZSBvdXRlciBhcnJheSwgYnV0IGl0IGNhbid0 OiBvbmUgb2YgdGhlIGVsZW1lbnRzIGlzIGEgcHJlLWVuY29kZWQgQ0JPUgorKyAgLy8gdmFsdWUg d2hpY2ggd2UgY2FuJ3Qgc2FmZWx5IGRlY29kZSBiZWNhdXNlIGl0J3MgdW50cnVzdGVkIGlucHV0 LiBUaGlzIGlzCisrICAvLyBvYnZpb3VzbHkgdW5kZXNpcmFibGUsIGJlY2F1c2UgdGhlcmUncyBu byBndWFyYW50ZWUgYXQgYWxsIHRoYXQgdGhlCisrICAvLyBwcmUtZW5jb2RlZCB2YWx1ZSBpcyBh Y3R1YWxseSB2YWxpZCBDQk9SLgorKyAgLy8KKysgIC8vIFRPRE8oaHR0cHM6Ly9jcmJ1Zy5jb20v NDU0NDg1OTAxKTogb25jZSB0aGVyZSdzIGEgbWVtb3J5LXNhZmUgQ0JPUiBwYXJzZXIsCisrICAv LyByZS1wYXJzZSB0aGUgcHJlLWVuY29kZWQgdmFsdWUsIHRoZW4gcmUtZW5jb2RlIGl0IGhlcmUg aW5zdGVhZCBvZgorKyAgLy8gY29uc3RydWN0aW5nIGEgQ0JPUiBhcnJheSBieSBoYW5kIHNvIHRo YXQgd2UncmUgZ3VhcmFudGVlZCB0aGF0IHRoZSByZXN1bHQKKysgIC8vIG9mIHRoaXMgZnVuY3Rp b24gaXMgdmFsaWQuCisrICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBpYl9jYm9yOworKworKyAgLy8g MHg4NCBpcyB0aGUgZW5jb2RpbmcgYnl0ZSBmb3IgYW4gYXJyYXkgb2YgbGVuZ3RoIDQuCisrICBp Yl9jYm9yLnB1c2hfYmFjaygweDg0KTsKKysgIGJhc2U6OkV4dGVuZChpYl9jYm9yLAorKyAgICAg ICAgICAgICAgICpjYm9yOjpXcml0ZXI6OldyaXRlKGNib3I6OlZhbHVlKGtJbnRlZ3JpdHlCbG9j a01hZ2ljQnl0ZXMpKSk7CisrICBiYXNlOjpFeHRlbmQoaWJfY2JvciwgKmNib3I6OldyaXRlcjo6 V3JpdGUoCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNib3I6OlZhbHVlKGtJbnRlZ3Jp dHlCbG9ja1YyVmVyc2lvbkJ5dGVzKSkpOworKyAgLy8gV2UgY2Fubm90IHBhcnNlIGBhdHRyaWJ1 dGVzKCkuY2JvcigpYCBiYWNrIHRvIGEgY2Jvcjo6VmFsdWUgYXMgdGhleQorKyAgLy8gdGVjaG5p Y2FsbHkgcmVwcmVzZW50IHVudHJ1c3RlZCBpbnB1dC4KKysgIGJhc2U6OkV4dGVuZChpYl9jYm9y LCBpbnRlZ3JpdHlfYmxvY2suYXR0cmlidXRlc19jYm9yKCkpOworKyAgLy8gRW5jb2RlIGFuIGVt cHR5IHNpZ25hdHVyZSBhcnJheS4KKysgIGJhc2U6OkV4dGVuZChpYl9jYm9yLAorKyAgICAgICAg ICAgICAgICpjYm9yOjpXcml0ZXI6OldyaXRlKGNib3I6OlZhbHVlKGNib3I6OlZhbHVlOjpBcnJh eVZhbHVlKCkpKSk7CisrCisrICByZXR1cm4gaWJfY2JvcjsKKyB9CisgCisgYmFzZTo6ZXhwZWN0 ZWQ8dm9pZCwgU2lnbmVkV2ViQnVuZGxlU2lnbmF0dXJlVmVyaWZpZXI6OkVycm9yPgorQEAgLTEw NCw3ICsxMjksNyBAQCBTaWduZWRXZWJCdW5kbGVTaWduYXR1cmVWZXJpZmllcjo6Q2FsY3VsCisg ICAgIHJldHVybiBiYXNlOjp1bmV4cGVjdGVkKGJhc2U6OkZpbGU6OkVycm9yVG9TdHJpbmcoZmls ZS5HZXRMYXN0RmlsZUVycm9yKCkpKTsKKyAgIH0KKyAKKy0gIHNpZ25lZF93ZWJfYnVuZGxlczo6 cnVzdDo6U2hhNTEySGFzaGVyIGhhc2hlcjsKKysgIGNyeXB0bzo6aGFzaDo6SGFzaGVyIGhhc2go Y3J5cHRvOjpoYXNoOjprU2hhNTEyKTsKKyAKKyAgIC8vIENhbGN1bGF0ZSB0aGUgaGFzaCBvZiB0 aGUgU2lnbmVkIFdlYiBCdW5kbGUgZXhjbHVkaW5nIGl0cyBpbnRlZ3JpdHkgYmxvY2suCisgICAv LyBUaGUgZmlsZSBtaWdodCBiZSB0b28gYmlnIHRvIHJlYWQgaXQgaW50byBtZW1vcnkgYWxsIGF0 IG9uY2UsIHdoaWNoIGlzIHdoeQorQEAgLTEyMSwxNCArMTQ2LDE1IEBAIFNpZ25lZFdlYkJ1bmRs ZVNpZ25hdHVyZVZlcmlmaWVyOjpDYWxjdWwKKyAgICAgICAgICAgYmFzZTo6RmlsZTo6RXJyb3JU b1N0cmluZyhmaWxlLkdldExhc3RGaWxlRXJyb3IoKSkpOworICAgICB9CisgICAgIGRhdGEucmVz aXplKCpieXRlc19yZWFkKTsKKy0gICAgaGFzaGVyLnVwZGF0ZShkYXRhKTsKKysgICAgaGFzaC5V cGRhdGUoZGF0YSk7CisgCisgICAgIGlmICghYmFzZTo6Q2hlY2tBZGQob2Zmc2V0LCAqYnl0ZXNf cmVhZCkuQXNzaWduSWZWYWxpZCgmb2Zmc2V0KSkgeworICAgICAgIHJldHVybiBiYXNlOjp1bmV4 cGVjdGVkKCJUaGUgU2lnbmVkIFdlYiBCdW5kbGUgaXMgdG9vIGxhcmdlLiIpOworICAgICB9Cisg ICB9CisgCistICBTSEE1MTJEaWdlc3QgZGlnZXN0ID0gc3RkOjptb3ZlKGhhc2hlcikuZmluaXNo KCk7CisrICBTSEE1MTJEaWdlc3QgZGlnZXN0OworKyAgaGFzaC5GaW5pc2goZGlnZXN0KTsKKyAg IHJldHVybiBkaWdlc3Q7CisgfQorIAorLS0tIGEvY29tcG9uZW50cy93ZWJfcGFja2FnZS9zaWdu ZWRfd2ViX2J1bmRsZXMvc2lnbmVkX3dlYl9idW5kbGVfdXRpbHMuY2MKKysrKyBiL2NvbXBvbmVu dHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL3NpZ25lZF93ZWJfYnVuZGxlX3V0aWxz LmNjCitAQCAtNSwxOCArNSwzNyBAQAorICNpbmNsdWRlICJjb21wb25lbnRzL3dlYl9wYWNrYWdl L3NpZ25lZF93ZWJfYnVuZGxlcy9zaWduZWRfd2ViX2J1bmRsZV91dGlscy5oIgorIAorICNpbmNs dWRlIDxjc3RkaW50PgorLSNpbmNsdWRlIDx2ZWN0b3I+CisgCistI2luY2x1ZGUgImNvbXBvbmVu dHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL3J1c3Qvc2lnbmVkX3dlYl9idW5kbGVz X3J1c3QuaCIKKysjaW5jbHVkZSAiYmFzZS9jb250YWluZXJzL2V4dGVuZC5oIgorKyNpbmNsdWRl ICJiYXNlL2NvbnRhaW5lcnMvc3Bhbi5oIgorKyNpbmNsdWRlICJiYXNlL2NvbnRhaW5lcnMvc3Bh bl93cml0ZXIuaCIKKyAKKyBuYW1lc3BhY2Ugd2ViX3BhY2thZ2UgeworIAorK25hbWVzcGFjZSB7 CisrCisrdm9pZCBBZGRJdGVtVG9QYXlsb2FkKHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+JiBwYXlsb2Fk LAorKyAgICAgICAgICAgICAgICAgICAgICBiYXNlOjpzcGFuPGNvbnN0IHVpbnQ4X3Q+IGl0ZW0p IHsKKysgIC8vIEVhY2ggaXRlbSB0aGF0IGlzIHBhcnQgb2YgdGhlIHBheWxvYWQgaXMgcHJlZml4 ZWQgd2l0aCBpdHMgbGVuZ3RoIGVuY29kZWQKKysgIC8vIGFzIGEgNjQgYml0IHVuc2lnbmVkIGlu dGVnZXIuCisrICBzdGQ6OmFycmF5PHVpbnQ4X3QsIHNpemVvZih1aW50NjRfdCk+IGxlbmd0aDsK KysgIGF1dG8gd3JpdGVyID0gYmFzZTo6U3BhbldyaXRlcihiYXNlOjpzcGFuKGxlbmd0aCkpOwor KyAgQ0hFQ0sod3JpdGVyLldyaXRlVTY0QmlnRW5kaWFuKGl0ZW0uc2l6ZSgpKSk7CisrCisrICBi YXNlOjpFeHRlbmQocGF5bG9hZCwgYmFzZTo6c3BhbihsZW5ndGgpKTsKKysgIGJhc2U6OkV4dGVu ZChwYXlsb2FkLCBpdGVtKTsKKyt9CisrCisrfSAgLy8gbmFtZXNwYWNlCisrCisgc3RkOjp2ZWN0 b3I8dWludDhfdD4gQ3JlYXRlU2lnbmF0dXJlUGF5bG9hZCgKKyAgICAgY29uc3QgU2lnbmVkV2Vi QnVuZGxlU2lnbmF0dXJlRGF0YSYgZGF0YSkgeworLSAgYXV0byBwYXlsb2FkX3J1c3QgPSBzaWdu ZWRfd2ViX2J1bmRsZXM6OnJ1c3Q6OmNyZWF0ZV9zaWduYXR1cmVfcGF5bG9hZCgKKy0gICAgICBk YXRhLnVuc2lnbmVkX3dlYl9idW5kbGVfaGFzaCwgZGF0YS5pbnRlZ3JpdHlfYmxvY2tfY2JvciwK Ky0gICAgICBkYXRhLmF0dHJpYnV0ZXNfY2Jvcik7CistICByZXR1cm4gc3RkOjp2ZWN0b3I8dWlu dDhfdD4ocGF5bG9hZF9ydXN0LmJlZ2luKCksIHBheWxvYWRfcnVzdC5lbmQoKSk7CisrICBzdGQ6 OnZlY3Rvcjx1aW50OF90PiBwYXlsb2FkOworKyAgQWRkSXRlbVRvUGF5bG9hZChwYXlsb2FkLCBk YXRhLnVuc2lnbmVkX3dlYl9idW5kbGVfaGFzaCk7CisrICBBZGRJdGVtVG9QYXlsb2FkKHBheWxv YWQsIGRhdGEuaW50ZWdyaXR5X2Jsb2NrX2Nib3IpOworKyAgQWRkSXRlbVRvUGF5bG9hZChwYXls b2FkLCBkYXRhLmF0dHJpYnV0ZXNfY2Jvcik7CisrCisrICByZXR1cm4gcGF5bG9hZDsKKyB9Cisg CisgfSAgLy8gbmFtZXNwYWNlIHdlYl9wYWNrYWdlCistLS0gYS90aGlyZF9wYXJ0eS9ibGluay9y ZW5kZXJlci9wbGF0Zm9ybS9CVUlMRC5nbgorKysrIGIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVy ZXIvcGxhdGZvcm0vQlVJTEQuZ24KK0BAIC0xODYsNiArMTg2LDE4IEBAIGdyb3VwKCJtYWtlX3Bs YXRmb3JtX2dlbmVyYXRlZCIpIHsKKyAgIF0KKyB9CisgCisrcnVzdF9zdGF0aWNfbGlicmFyeSgi Zm9udF9mb3JtYXRfY2hlY2siKSB7CisrICBhbGxvd191bnNhZmUgPSB0cnVlICAjIE5lZWRlZCBm b3IgRkZJIHRoYXQgdW5kZXJwaW5zIHRoZSBgY3h4YCBjcmF0ZS4KKysgIGNyYXRlX3Jvb3QgPSAi Zm9udHMvb3BlbnR5cGUvZm9ybWF0X2NoZWNrLnJzIgorKyAgc291cmNlcyA9IFsgY3JhdGVfcm9v dCBdCisrICBjeHhfYmluZGluZ3MgPSBbIGNyYXRlX3Jvb3QgXQorKyAgZGVwcyA9IFsKKysgICAg Ii8vdGhpcmRfcGFydHkvcnVzdC9mb250X3R5cGVzL3YwXzEyOmxpYiIsCisrICAgICIvL3RoaXJk X3BhcnR5L3J1c3QvcmVhZF9mb250cy92MF80MzpsaWIiLAorKyAgICAiLy90aGlyZF9wYXJ0eS9y dXN0L3NrcmlmYS92MF80NjpsaWIiLAorKyAgXQorK30KKysKICBydXN0X3N0YXRpY19saWJyYXJ5 KCJydXN0ZmZ0X2ZmaSIpIHsKICAgIGFsbG93X3Vuc2FmZSA9IHRydWUgICMgTmVlZGVkIGZvciBG RkkgdGhhdCB1bmRlcnBpbnMgdGhlIGBjeHhgIGNyYXRlLgogICAgY3JhdGVfcm9vdCA9ICJhdWRp by9ydXN0ZmZ0X2ZmaS5ycyIKLUBAIC0xODA2LDYgKzE3OTQsNyBAQCBjb21wb25lbnQoInBsYXRm b3JtIikgeworQEAgLTE3OTIsNyArMTgwNCw2IEBAIGNvbXBvbmVudCgicGxhdGZvcm0iKSB7CiAg ICAgICI6YWxsb3dfZGlzY291cmFnZWRfdHlwZSIsCiAgICAgICI6YmxpbmtfcGxhdGZvcm1fcHVi bGljX2RlcHMiLAogICAgICAiOnBsYXRmb3JtX2V4cG9ydCIsCi0rICAgICIvL2J1aWxkL3J1c3Qv Y3J1Yml0IiwKKy0gICAgIi8vYnVpbGQvcnVzdC9jcnViaXQiLAogICAgICAiLy9ncHUvY29tbWFu ZF9idWZmZXIvY2xpZW50OnJhc3Rlcl9pbnRlcmZhY2UiLAogICAgICAiLy9tZWRpYS9jYXB0dXJl OmNhcHR1cmVfbGliIiwKICAgICAgIi8vbW9qby9wdWJsaWMvY3BwL2Jhc2UiLAotQEAgLTE4MzIs OCArMTgyMSw4IEBAIGNvbXBvbmVudCgicGxhdGZvcm0iKSB7CitAQCAtMTgxOSw4ICsxODMwLDgg QEAgY29tcG9uZW50KCJwbGF0Zm9ybSIpIHsKICAgICAgIi8vdWkvbmF0aXZlX3RoZW1lL2ZlYXR1 cmVzIiwKICAgIF0KICAgIGRlcHMgPSBbCi0tICAgICI6Zm9udF9mb3JtYXRfY2hlY2siLAorKyAg ICAiOmZvbnRfZm9ybWF0X2NoZWNrIiwKICAgICAgIjpydXN0ZmZ0X2ZmaSIsCi0rICAgICJmb250 czpmb250X2Zvcm1hdF9iaW5kaW5ncyIsCistICAgICJmb250czpmb250X2Zvcm1hdF9iaW5kaW5n cyIsCiAgICAgICIvL2Jhc2U6YmFzZV9zdGF0aWMiLAogICAgICAiLy9iYXNlL2FsbG9jYXRvcjpi dWlsZGZsYWdzIiwKICAgICAgIi8vYnVpbGQ6Y2hyb21lY2FzdF9idWlsZGZsYWdzIiwKLWRpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9CVUlMRC5n biBiL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL0JVSUxELmduCi1u ZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMDAwMDAwMC4uNTFiOWIwM2JhN2M4NQot LS0tIC9kZXYvbnVsbAotKysrIGIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0v Zm9udHMvQlVJTEQuZ24KLUBAIC0wLDAgKzEsMTkgQEAKLSsjIENvcHlyaWdodCAyMDI2IFRoZSBD aHJvbWl1bSBBdXRob3JzCi0rIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBi eSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0rIyBmb3VuZCBpbiB0aGUgTElDRU5T RSBmaWxlLgotKwotK2ltcG9ydCgiLy9idWlsZC9ydXN0L3J1c3Rfc3RhdGljX2xpYnJhcnkuZ25p IikKLSsKLStydXN0X3N0YXRpY19saWJyYXJ5KCJmb250X2Zvcm1hdCIpIHsKLSsgIGNyYXRlX3Jv b3QgPSAib3BlbnR5cGUvZm9ybWF0X2NoZWNrLnJzIgotKyAgc291cmNlcyA9IFsgY3JhdGVfcm9v dCBdCi0rICBjcHBfYXBpX2Zyb21fcnVzdCA9IHsKLSsgICAgdGFyZ2V0X25hbWUgPSAiZm9udF9m b3JtYXRfYmluZGluZ3MiCi0rICAgIGNwcF9uYW1lc3BhY2UgPSAiZm9udF9mb3JtYXQiCi0rICB9 Ci0rICBkZXBzID0gWwotKyAgICAiLy90aGlyZF9wYXJ0eS9ydXN0L2ZvbnRfdHlwZXMvdjBfMTI6 bGliIiwKLSsgICAgIi8vdGhpcmRfcGFydHkvcnVzdC9yZWFkX2ZvbnRzL3YwXzQzOmxpYiIsCi0r ICAgICIvL3RoaXJkX3BhcnR5L3J1c3Qvc2tyaWZhL3YwXzQ2OmxpYiIsCi0rICBdCi0rfQotZGlm ZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL29wZW50 eXBlL2ZvbnRfZm9ybWF0X2NoZWNrLmNjIGIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxh dGZvcm0vZm9udHMvb3BlbnR5cGUvZm9udF9mb3JtYXRfY2hlY2suY2MKLWluZGV4IGI5ZDI2Mzk4 MjJiYzAuLmY1OGU5NDMzZDM5ZjQgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ibGluay9yZW5k ZXJlci9wbGF0Zm9ybS9mb250cy9CVUlMRC5nbgorKysrIC9kZXYvbnVsbAorQEAgLTEsMTkgKzAs MCBAQAorLSMgQ29weXJpZ2h0IDIwMjYgVGhlIENocm9taXVtIEF1dGhvcnMKKy0jIFVzZSBvZiB0 aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBj YW4gYmUKKy0jIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistCistaW1wb3J0KCIvL2J1aWxk L3J1c3QvcnVzdF9zdGF0aWNfbGlicmFyeS5nbmkiKQorLQorLXJ1c3Rfc3RhdGljX2xpYnJhcnko ImZvbnRfZm9ybWF0IikgeworLSAgY3JhdGVfcm9vdCA9ICJvcGVudHlwZS9mb3JtYXRfY2hlY2su cnMiCistICBzb3VyY2VzID0gWyBjcmF0ZV9yb290IF0KKy0gIGNwcF9hcGlfZnJvbV9ydXN0ID0g eworLSAgICB0YXJnZXRfbmFtZSA9ICJmb250X2Zvcm1hdF9iaW5kaW5ncyIKKy0gICAgY3BwX25h bWVzcGFjZSA9ICJmb250X2Zvcm1hdCIKKy0gIH0KKy0gIGRlcHMgPSBbCistICAgICIvL3RoaXJk X3BhcnR5L3J1c3QvZm9udF90eXBlcy92MF8xMjpsaWIiLAorLSAgICAiLy90aGlyZF9wYXJ0eS9y dXN0L3JlYWRfZm9udHMvdjBfNDM6bGliIiwKKy0gICAgIi8vdGhpcmRfcGFydHkvcnVzdC9za3Jp ZmEvdjBfNDY6bGliIiwKKy0gIF0KKy19CiAtLS0gYS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJl ci9wbGF0Zm9ybS9mb250cy9vcGVudHlwZS9mb250X2Zvcm1hdF9jaGVjay5jYwogKysrIGIvdGhp cmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvb3BlbnR5cGUvZm9udF9mb3Jt YXRfY2hlY2suY2MKLUBAIC03LDcgKzcsNiBAQAorQEAgLTcsNiArNyw3IEBACiAgI2luY2x1ZGUg ImJhc2UvY29udGFpbmVycy9zcGFuLmgiCiAgI2luY2x1ZGUgImJhc2UvY29udGFpbmVycy9zcGFu X3J1c3QuaCIKICAjaW5jbHVkZSAiYmFzZS9udW1lcmljcy9ieXRlX2NvbnZlcnNpb25zLmgiCi0t I2luY2x1ZGUgInRoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL29wZW50 eXBlL2Zvcm1hdF9jaGVjay5ycy5oIgorKyNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9ibGluay9yZW5k ZXJlci9wbGF0Zm9ybS9mb250cy9vcGVudHlwZS9mb3JtYXRfY2hlY2sucnMuaCIKICAjaW5jbHVk ZSAidGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vcnVudGltZV9lbmFibGVkX2Zl YXR1cmVzLmgiCiAgI2luY2x1ZGUgInRoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3Jt L3d0Zi92ZWN0b3IuaCIKICAjaW5jbHVkZSAidGhpcmRfcGFydHkvc2tpYS9pbmNsdWRlL2NvcmUv U2tUeXBlZmFjZS5oIgotQEAgLTE1LDM1ICsxNCwzNyBAQAorQEAgLTE0LDM3ICsxNSwzNSBAQAog IG5hbWVzcGFjZSBibGluayB7CiAgCiAgRm9udEZvcm1hdENoZWNrOjpGb250Rm9ybWF0Q2hlY2so c2tfc3A8U2tEYXRhPiBza19kYXRhKQotLSAgICA6IGZvcm1hdF9pbmZvXyhmb250X2Zvcm1hdF9j aGVjazo6Z2V0X2ZvbnRfZm9ybWF0X2luZm8oCi0rICAgIDogZm9ybWF0X2luZm9fKGZvbnRfZm9y bWF0OjpnZXRfZm9udF9mb3JtYXRfaW5mbygKKy0gICAgOiBmb3JtYXRfaW5mb18oZm9udF9mb3Jt YXQ6OmdldF9mb250X2Zvcm1hdF9pbmZvKAorKyAgICA6IGZvcm1hdF9pbmZvXyhmb250X2Zvcm1h dF9jaGVjazo6Z2V0X2ZvbnRfZm9ybWF0X2luZm8oCiAgICAgICAgICAgIGJhc2U6OlNwYW5Ub1J1 c3RTbGljZShza19kYXRhLT5ieXRlU3BhbigpKSkpIHt9CiAgCi0rRm9udEZvcm1hdENoZWNrOjp+ Rm9udEZvcm1hdENoZWNrKCkgPSBkZWZhdWx0OwotKworLUZvbnRGb3JtYXRDaGVjazo6fkZvbnRG b3JtYXRDaGVjaygpID0gZGVmYXVsdDsKKy0KICBib29sIEZvbnRGb3JtYXRDaGVjazo6SXNWYXJp YWJsZUZvbnQoKSBjb25zdCB7Ci0tICByZXR1cm4gZm9udF9mb3JtYXRfY2hlY2s6OmlzX3Zhcmlh YmxlKCpmb3JtYXRfaW5mb18pOwotKyAgcmV0dXJuIGZvbnRfZm9ybWF0Ojppc192YXJpYWJsZShm b3JtYXRfaW5mb18pOworLSAgcmV0dXJuIGZvbnRfZm9ybWF0Ojppc192YXJpYWJsZShmb3JtYXRf aW5mb18pOworKyAgcmV0dXJuIGZvbnRfZm9ybWF0X2NoZWNrOjppc192YXJpYWJsZSgqZm9ybWF0 X2luZm9fKTsKICB9CiAgCiAgYm9vbCBGb250Rm9ybWF0Q2hlY2s6OklzQ2JkdENibGNDb2xvckZv bnQoKSBjb25zdCB7Ci0tICByZXR1cm4gZm9udF9mb3JtYXRfY2hlY2s6OmlzX2NiZHRfY2JsYygq Zm9ybWF0X2luZm9fKTsKLSsgIHJldHVybiBmb250X2Zvcm1hdDo6aXNfY2JkdF9jYmxjKGZvcm1h dF9pbmZvXyk7CistICByZXR1cm4gZm9udF9mb3JtYXQ6OmlzX2NiZHRfY2JsYyhmb3JtYXRfaW5m b18pOworKyAgcmV0dXJuIGZvbnRfZm9ybWF0X2NoZWNrOjppc19jYmR0X2NibGMoKmZvcm1hdF9p bmZvXyk7CiAgfQogIAogIGJvb2wgRm9udEZvcm1hdENoZWNrOjpJc0ViZHRFYmxjTW9ub2Nocm9t ZUZvbnQoKSBjb25zdCB7Ci0tICByZXR1cm4gZm9udF9mb3JtYXRfY2hlY2s6OmlzX2ViZHRfZWJs YygqZm9ybWF0X2luZm9fKTsKLSsgIHJldHVybiBmb250X2Zvcm1hdDo6aXNfZWJkdF9lYmxjKGZv cm1hdF9pbmZvXyk7CistICByZXR1cm4gZm9udF9mb3JtYXQ6OmlzX2ViZHRfZWJsYyhmb3JtYXRf aW5mb18pOworKyAgcmV0dXJuIGZvbnRfZm9ybWF0X2NoZWNrOjppc19lYmR0X2VibGMoKmZvcm1h dF9pbmZvXyk7CiAgfQogIAogIGJvb2wgRm9udEZvcm1hdENoZWNrOjpJc0NvbHJDcGFsQ29sb3JG b250VjAoKSBjb25zdCB7Ci0tICByZXR1cm4gZm9udF9mb3JtYXRfY2hlY2s6OmlzX2NvbHJ2MCgq Zm9ybWF0X2luZm9fKTsKLSsgIHJldHVybiBmb250X2Zvcm1hdDo6aXNfY29scnYwKGZvcm1hdF9p bmZvXyk7CistICByZXR1cm4gZm9udF9mb3JtYXQ6OmlzX2NvbHJ2MChmb3JtYXRfaW5mb18pOwor KyAgcmV0dXJuIGZvbnRfZm9ybWF0X2NoZWNrOjppc19jb2xydjAoKmZvcm1hdF9pbmZvXyk7CiAg fQogIAogIGJvb2wgRm9udEZvcm1hdENoZWNrOjpJc0NvbHJDcGFsQ29sb3JGb250VjEoKSBjb25z dCB7Ci0tICByZXR1cm4gZm9udF9mb3JtYXRfY2hlY2s6OmlzX2NvbHJ2MSgqZm9ybWF0X2luZm9f KTsKLSsgIHJldHVybiBmb250X2Zvcm1hdDo6aXNfY29scnYxKGZvcm1hdF9pbmZvXyk7CistICBy ZXR1cm4gZm9udF9mb3JtYXQ6OmlzX2NvbHJ2MShmb3JtYXRfaW5mb18pOworKyAgcmV0dXJuIGZv bnRfZm9ybWF0X2NoZWNrOjppc19jb2xydjEoKmZvcm1hdF9pbmZvXyk7CiAgfQogIAogIGJvb2wg Rm9udEZvcm1hdENoZWNrOjpJc1NiaXhDb2xvckZvbnQoKSBjb25zdCB7Ci0tICByZXR1cm4gZm9u dF9mb3JtYXRfY2hlY2s6OmlzX3NiaXgoKmZvcm1hdF9pbmZvXyk7Ci0rICByZXR1cm4gZm9udF9m b3JtYXQ6OmlzX3NiaXgoZm9ybWF0X2luZm9fKTsKKy0gIHJldHVybiBmb250X2Zvcm1hdDo6aXNf c2JpeChmb3JtYXRfaW5mb18pOworKyAgcmV0dXJuIGZvbnRfZm9ybWF0X2NoZWNrOjppc19zYml4 KCpmb3JtYXRfaW5mb18pOwogIH0KICAKICBib29sIEZvbnRGb3JtYXRDaGVjazo6SXNDZmYyT3V0 bGluZUZvbnQoKSBjb25zdCB7Ci0tICByZXR1cm4gZm9udF9mb3JtYXRfY2hlY2s6OmlzX2NmZjIo KmZvcm1hdF9pbmZvXyk7Ci0rICByZXR1cm4gZm9udF9mb3JtYXQ6OmlzX2NmZjIoZm9ybWF0X2lu Zm9fKTsKKy0gIHJldHVybiBmb250X2Zvcm1hdDo6aXNfY2ZmMihmb3JtYXRfaW5mb18pOworKyAg cmV0dXJuIGZvbnRfZm9ybWF0X2NoZWNrOjppc19jZmYyKCpmb3JtYXRfaW5mb18pOwogIH0KICAK ICBib29sIEZvbnRGb3JtYXRDaGVjazo6SXNWYXJpYWJsZUNvbHJWMEZvbnQoKSBjb25zdCB7Ci1A QCAtNTcsNyArNTgsNyBAQCBib29sIEZvbnRGb3JtYXRDaGVjazo6SXNDb2xvckZvbnQoKSBjb25z dCB7CitAQCAtNTgsNyArNTcsNyBAQCBib29sIEZvbnRGb3JtYXRDaGVjazo6SXNDb2xvckZvbnQo KSBjb25zCiAgCiAgYm9vbCBGb250Rm9ybWF0Q2hlY2s6OklzQXZhcjJGb250KCkgY29uc3Qgewog ICAgcmV0dXJuIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OkZvbnRGb3JtYXRBdmFyMkVuYWJsZWQo KSAmJgotLSAgICAgICAgIGZvbnRfZm9ybWF0X2NoZWNrOjppc19hdmFyMigqZm9ybWF0X2luZm9f KTsKLSsgICAgICAgICBmb250X2Zvcm1hdDo6aXNfYXZhcjIoZm9ybWF0X2luZm9fKTsKKy0gICAg ICAgICBmb250X2Zvcm1hdDo6aXNfYXZhcjIoZm9ybWF0X2luZm9fKTsKKysgICAgICAgICBmb250 X2Zvcm1hdF9jaGVjazo6aXNfYXZhcjIoKmZvcm1hdF9pbmZvXyk7CiAgfQogIAogIEZvbnRGb3Jt YXRDaGVjazo6VmFyaWFibGVGb250U3ViVHlwZSBGb250Rm9ybWF0Q2hlY2s6OlByb2JlVmFyaWFi bGVGb250KAotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3Jt L2ZvbnRzL29wZW50eXBlL2ZvbnRfZm9ybWF0X2NoZWNrLmggYi90aGlyZF9wYXJ0eS9ibGluay9y ZW5kZXJlci9wbGF0Zm9ybS9mb250cy9vcGVudHlwZS9mb250X2Zvcm1hdF9jaGVjay5oCi1pbmRl eCAxOWQyNjM5MjMzYjA3Li5hZjUwZGJkZjc0ZDAwIDEwMDY0NAogLS0tIGEvdGhpcmRfcGFydHkv YmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvb3BlbnR5cGUvZm9udF9mb3JtYXRfY2hlY2su aAogKysrIGIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvb3BlbnR5 cGUvZm9udF9mb3JtYXRfY2hlY2suaAogQEAgLTUsNyArNSw3IEBACiAgI2lmbmRlZiBUSElSRF9Q QVJUWV9CTElOS19SRU5ERVJFUl9QTEFURk9STV9GT05UU19PUEVOVFlQRV9GT05UX0ZPUk1BVF9D SEVDS19IXwogICNkZWZpbmUgVEhJUkRfUEFSVFlfQkxJTktfUkVOREVSRVJfUExBVEZPUk1fRk9O VFNfT1BFTlRZUEVfRk9OVF9GT1JNQVRfQ0hFQ0tfSF8KICAKLS0jaW5jbHVkZSAidGhpcmRfcGFy dHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvb3BlbnR5cGUvZm9ybWF0X2NoZWNrLnJz LmgiCi0rI2luY2x1ZGUgInRoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRz L2ZvbnRfZm9ybWF0LmgiCistI2luY2x1ZGUgInRoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3Bs YXRmb3JtL2ZvbnRzL2ZvbnRfZm9ybWF0LmgiCisrI2luY2x1ZGUgInRoaXJkX3BhcnR5L2JsaW5r L3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL29wZW50eXBlL2Zvcm1hdF9jaGVjay5ycy5oIgogICNp bmNsdWRlICJ0aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9wbGF0Zm9ybV9leHBv cnQuaCIKICAjaW5jbHVkZSAidGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vd3Rm L2FsbG9jYXRvci9hbGxvY2F0b3IuaCIKICAjaW5jbHVkZSAidGhpcmRfcGFydHkvc2tpYS9pbmNs dWRlL2NvcmUvU2tEYXRhLmgiCkBAIC0xNzEsOCArNzEzLDggQEAgaW5kZXggMTlkMjYzOTIzM2Iw Ny4uYWY1MGRiZGY3NGQwMCAxMDA2NDQKICAKICAgcHVibGljOgogICAgZXhwbGljaXQgRm9udEZv cm1hdENoZWNrKHNrX3NwPFNrRGF0YT4pOwotLSAgdmlydHVhbCB+Rm9udEZvcm1hdENoZWNrKCkg PSBkZWZhdWx0OwotKyAgdmlydHVhbCB+Rm9udEZvcm1hdENoZWNrKCk7CistICB2aXJ0dWFsIH5G b250Rm9ybWF0Q2hlY2soKTsKKysgIHZpcnR1YWwgfkZvbnRGb3JtYXRDaGVjaygpID0gZGVmYXVs dDsKICAgIHZpcnR1YWwgYm9vbCBJc1ZhcmlhYmxlRm9udCgpIGNvbnN0OwogICAgdmlydHVhbCBi b29sIElzQ2JkdENibGNDb2xvckZvbnQoKSBjb25zdDsKICAgIHZpcnR1YWwgYm9vbCBJc0ViZHRF YmxjTW9ub2Nocm9tZUZvbnQoKSBjb25zdDsKQEAgLTE4MCwxMDMgKzcyMiwxMDEgQEAgaW5kZXgg MTlkMjYzOTIzM2IwNy4uYWY1MGRiZGY3NGQwMCAxMDA2NDQKICAgIGVudW0gY2xhc3MgQ09MUlZl cnNpb24geyBrQ09MUlYwLCBrQ09MUlYxLCBrTm9DT0xSIH07CiAgCiAgIHByaXZhdGU6Ci0tICBy dXN0OjpCb3g8Zm9udF9mb3JtYXRfY2hlY2s6OkZvbnRGb3JtYXRJbmZvPiBmb3JtYXRfaW5mb187 Ci0rICBmb250X2Zvcm1hdDo6Rm9udEZvcm1hdEluZm8gZm9ybWF0X2luZm9fOworLSAgZm9udF9m b3JtYXQ6OkZvbnRGb3JtYXRJbmZvIGZvcm1hdF9pbmZvXzsKKysgIHJ1c3Q6OkJveDxmb250X2Zv cm1hdF9jaGVjazo6Rm9udEZvcm1hdEluZm8+IGZvcm1hdF9pbmZvXzsKICB9OwogIAogIH0gIC8v IG5hbWVzcGFjZSBibGluawotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVy L3BsYXRmb3JtL2ZvbnRzL29wZW50eXBlL2Zvcm1hdF9jaGVjay5ycyBiL3RoaXJkX3BhcnR5L2Js aW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL29wZW50eXBlL2Zvcm1hdF9jaGVjay5ycwotaW5k ZXggZWRhOGU2YjJiODE4OC4uYjk5ZjBlYzg2NTVlNiAxMDA2NDQKIC0tLSBhL3RoaXJkX3BhcnR5 L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL29wZW50eXBlL2Zvcm1hdF9jaGVjay5ycwog KysrIGIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvb3BlbnR5cGUv Zm9ybWF0X2NoZWNrLnJzCiBAQCAtMjMsNyArMjMsNyBAQCBwdWIgc3RydWN0IEZvbnRGb3JtYXRJ bmZvIHsKICAgICAgZm9ybWF0X2ZsYWdzOiBPcHRpb248Rm9udEZvcm1hdEZsYWdzPiwKICB9CiAg Ci0tcHViIGZuIGdldF9mb250X2Zvcm1hdF9pbmZvKGZvbnRfYnl0ZXM6ICZbdThdKSAtPiBCb3g8 Rm9udEZvcm1hdEluZm8+IHsKLStwdWIgZm4gZ2V0X2ZvbnRfZm9ybWF0X2luZm8oZm9udF9ieXRl czogJlt1OF0pIC0+IEZvbnRGb3JtYXRJbmZvIHsKKy1wdWIgZm4gZ2V0X2ZvbnRfZm9ybWF0X2lu Zm8oZm9udF9ieXRlczogJlt1OF0pIC0+IEZvbnRGb3JtYXRJbmZvIHsKKytwdWIgZm4gZ2V0X2Zv bnRfZm9ybWF0X2luZm8oZm9udF9ieXRlczogJlt1OF0pIC0+IEJveDxGb250Rm9ybWF0SW5mbz4g ewogICAgICBsZXQgZmlsZV9yZWYgPSBtYWtlX2ZvbnRfcmVmX2ludGVybmFsKGZvbnRfYnl0ZXMs IDApOwogIAogICAgICBtYXRjaCBmaWxlX3JlZiB7Ci1AQCAtMzIsMTEgKzMyLDExIEBAIHB1YiBm biBnZXRfZm9udF9mb3JtYXRfaW5mbyhmb250X2J5dGVzOiAmW3U4XSkgLT4gQm94PEZvbnRGb3Jt YXRJbmZvPiB7CitAQCAtMzIsMTEgKzMyLDExIEBAIHB1YiBmbiBnZXRfZm9udF9mb3JtYXRfaW5m byhmb250X2J5dGVzOgogICAgICAgICAgICAgICAgICBmb250LnRhYmxlX2RpcmVjdG9yeSgpLnRh YmxlX3JlY29yZHMoKS5pdGVyKCkubWFwKHxlfCBlLnRhZygpKS5jb2xsZWN0KCk7CiAgICAgICAg ICAgICAgbGV0IGNvbG9yX3ZlcnNpb24gPSBnZXRfY29scl92ZXJzaW9uKCZmb250KTsKICAgICAg ICAgICAgICBsZXQgYXZhcl92ZXJzaW9uID0gZ2V0X2F2YXJfdmVyc2lvbigmZm9udCk7Ci0tICAg ICAgICAgICAgQm94OjpuZXcoRm9udEZvcm1hdEluZm8gewotKyAgICAgICAgICAgIEZvbnRGb3Jt YXRJbmZvIHsKKy0gICAgICAgICAgICBGb250Rm9ybWF0SW5mbyB7CisrICAgICAgICAgICAgQm94 OjpuZXcoRm9udEZvcm1hdEluZm8gewogICAgICAgICAgICAgICAgICBmb3JtYXRfZmxhZ3M6IFNv bWUoRm9udEZvcm1hdEZsYWdzIHsgdGFibGVfdGFncywgY29sb3JfdmVyc2lvbiwgYXZhcl92ZXJz aW9uIH0pLAotLSAgICAgICAgICAgIH0pCi0rICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0K KysgICAgICAgICAgICB9KQogICAgICAgICAgfQotLSAgICAgICAgXyA9PiBCb3g6Om5ldyhGb250 Rm9ybWF0SW5mbzo6ZGVmYXVsdCgpKSwKLSsgICAgICAgIF8gPT4gRm9udEZvcm1hdEluZm86OmRl ZmF1bHQoKSwKKy0gICAgICAgIF8gPT4gRm9udEZvcm1hdEluZm86OmRlZmF1bHQoKSwKKysgICAg ICAgIF8gPT4gQm94OjpuZXcoRm9udEZvcm1hdEluZm86OmRlZmF1bHQoKSksCiAgICAgIH0KICB9 CiAgCi1AQCAtNDQsMTAgKzQ0LDEwIEBAIGZuIGdldF9jb2xyX3ZlcnNpb24oZm9udF9yZWY6ICZG b250UmVmKSAtPiBPcHRpb248dTE2PiB7CitAQCAtNDQsMTAgKzQ0LDEwIEBAIGZuIGdldF9jb2xy X3ZlcnNpb24oZm9udF9yZWY6ICZGb250UmVmKQogICAgICBTb21lKGZvbnRfcmVmLmNvbHIoKS5v aygpPy52ZXJzaW9uKCkpCiAgfQogIAotLWZuIGlzX2NvbHJ2MShmb3JtYXRfaW5mbzogJkZvbnRG b3JtYXRJbmZvKSAtPiBib29sIHsKLStwdWIgZm4gaXNfY29scnYxKGZvcm1hdF9pbmZvOiAmRm9u dEZvcm1hdEluZm8pIC0+IGJvb2wgeworLXB1YiBmbiBpc19jb2xydjEoZm9ybWF0X2luZm86ICZG b250Rm9ybWF0SW5mbykgLT4gYm9vbCB7CisrZm4gaXNfY29scnYxKGZvcm1hdF9pbmZvOiAmRm9u dEZvcm1hdEluZm8pIC0+IGJvb2wgewogICAgICBtYXRjaGVzISgmZm9ybWF0X2luZm8uZm9ybWF0 X2ZsYWdzLCBTb21lKEZvbnRGb3JtYXRGbGFncyB7IGNvbG9yX3ZlcnNpb246IFNvbWUoMSksIC4u IH0pLCkKICB9Ci0tZm4gaXNfY29scnYwKGZvcm1hdF9pbmZvOiAmRm9udEZvcm1hdEluZm8pIC0+ IGJvb2wgewotK3B1YiBmbiBpc19jb2xydjAoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0SW5mbykg LT4gYm9vbCB7CistcHViIGZuIGlzX2NvbHJ2MChmb3JtYXRfaW5mbzogJkZvbnRGb3JtYXRJbmZv KSAtPiBib29sIHsKKytmbiBpc19jb2xydjAoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0SW5mbykg LT4gYm9vbCB7CiAgICAgIG1hdGNoZXMhKCZmb3JtYXRfaW5mby5mb3JtYXRfZmxhZ3MsIFNvbWUo Rm9udEZvcm1hdEZsYWdzIHsgY29sb3JfdmVyc2lvbjogU29tZSgwKSwgLi4gfSksKQogIH0KICAK LUBAIC01Niw3ICs1Niw3IEBAIGZuIGdldF9hdmFyX3ZlcnNpb24oZm9udF9yZWY6ICZGb250UmVm KSAtPiBPcHRpb248KHUxNiwgdTE2KT4geworQEAgLTU2LDcgKzU2LDcgQEAgZm4gZ2V0X2F2YXJf dmVyc2lvbihmb250X3JlZjogJkZvbnRSZWYpCiAgICAgIFNvbWUoKHZlcnNpb24ubWFqb3IsIHZl cnNpb24ubWlub3IpKQogIH0KICAKLS1mbiBpc19hdmFyMihmb3JtYXRfaW5mbzogJkZvbnRGb3Jt YXRJbmZvKSAtPiBib29sIHsKLStwdWIgZm4gaXNfYXZhcjIoZm9ybWF0X2luZm86ICZGb250Rm9y bWF0SW5mbykgLT4gYm9vbCB7CistcHViIGZuIGlzX2F2YXIyKGZvcm1hdF9pbmZvOiAmRm9udEZv cm1hdEluZm8pIC0+IGJvb2wgeworK2ZuIGlzX2F2YXIyKGZvcm1hdF9pbmZvOiAmRm9udEZvcm1h dEluZm8pIC0+IGJvb2wgewogICAgICBtYXRjaGVzISgmZm9ybWF0X2luZm8uZm9ybWF0X2ZsYWdz LCBTb21lKEZvbnRGb3JtYXRGbGFncyB7IGF2YXJfdmVyc2lvbjogU29tZSgoMiwgXykpLCAuLiB9 KSwpCiAgfQogIAotQEAgLTY5LDM5ICs2OSwyMiBAQCBmbiBoYXNfdGFncyhmb3JtYXRfaW5mbzog JkZvbnRGb3JtYXRJbmZvLCBxdWVyeTogJltUYWddKSAtPiBib29sIHsKK0BAIC02OSwyMiArNjks MzkgQEAgZm4gaGFzX3RhZ3MoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0SW5mbwogICAgICB9CiAg fQogIAotLWZuIGlzX3ZhcmlhYmxlKGZvcm1hdF9pbmZvOiAmRm9udEZvcm1hdEluZm8pIC0+IGJv b2wgewotK3B1YiBmbiBpc192YXJpYWJsZShmb3JtYXRfaW5mbzogJkZvbnRGb3JtYXRJbmZvKSAt PiBib29sIHsKKy1wdWIgZm4gaXNfdmFyaWFibGUoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0SW5m bykgLT4gYm9vbCB7CisrZm4gaXNfdmFyaWFibGUoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0SW5m bykgLT4gYm9vbCB7CiAgICAgIGhhc190YWdzKGZvcm1hdF9pbmZvLCAmW1RhZzo6bmV3KGIiZnZh ciIpXSkKICB9CiAgCi0tZm4gaXNfc2JpeChmb3JtYXRfaW5mbzogJkZvbnRGb3JtYXRJbmZvKSAt PiBib29sIHsKLStwdWIgZm4gaXNfc2JpeChmb3JtYXRfaW5mbzogJkZvbnRGb3JtYXRJbmZvKSAt PiBib29sIHsKKy1wdWIgZm4gaXNfc2JpeChmb3JtYXRfaW5mbzogJkZvbnRGb3JtYXRJbmZvKSAt PiBib29sIHsKKytmbiBpc19zYml4KGZvcm1hdF9pbmZvOiAmRm9udEZvcm1hdEluZm8pIC0+IGJv b2wgewogICAgICBoYXNfdGFncyhmb3JtYXRfaW5mbywgJltUYWc6Om5ldyhiInNiaXgiKV0pCiAg fQogIAotLWZuIGlzX2NiZHRfY2JsYyhmb3JtYXRfaW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBi b29sIHsKLStwdWIgZm4gaXNfY2JkdF9jYmxjKGZvcm1hdF9pbmZvOiAmRm9udEZvcm1hdEluZm8p IC0+IGJvb2wgeworLXB1YiBmbiBpc19jYmR0X2NibGMoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0 SW5mbykgLT4gYm9vbCB7CisrZm4gaXNfY2JkdF9jYmxjKGZvcm1hdF9pbmZvOiAmRm9udEZvcm1h dEluZm8pIC0+IGJvb2wgewogICAgICBoYXNfdGFncyhmb3JtYXRfaW5mbywgJltUYWc6Om5ldyhi IkNCRFQiKSwgVGFnOjpuZXcoYiJDQkxDIildKQogIH0KICAKLS1mbiBpc19lYmR0X2VibGMoZm9y bWF0X2luZm86ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbCB7Ci0rcHViIGZuIGlzX2ViZHRfZWJs Yyhmb3JtYXRfaW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBib29sIHsKKy1wdWIgZm4gaXNfZWJk dF9lYmxjKGZvcm1hdF9pbmZvOiAmRm9udEZvcm1hdEluZm8pIC0+IGJvb2wgeworK2ZuIGlzX2Vi ZHRfZWJsYyhmb3JtYXRfaW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBib29sIHsKICAgICAgaGFz X3RhZ3MoZm9ybWF0X2luZm8sICZbVGFnOjpuZXcoYiJFQkRUIiksIFRhZzo6bmV3KGIiRUJMQyIp XSkKICB9CiAgCi0tZm4gaXNfY2ZmMihmb3JtYXRfaW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBi b29sIHsKLStwdWIgZm4gaXNfY2ZmMihmb3JtYXRfaW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBi b29sIHsKKy1wdWIgZm4gaXNfY2ZmMihmb3JtYXRfaW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBi b29sIHsKKytmbiBpc19jZmYyKGZvcm1hdF9pbmZvOiAmRm9udEZvcm1hdEluZm8pIC0+IGJvb2wg ewogICAgICBoYXNfdGFncyhmb3JtYXRfaW5mbywgJltUYWc6Om5ldyhiIkNGRjIiKV0pCiAgfQot LQotLSNbY3h4OjpicmlkZ2UobmFtZXNwYWNlID0gImZvbnRfZm9ybWF0X2NoZWNrIildCi0tcHVi IG1vZCBmZmkgewotLSAgICBleHRlcm4gIlJ1c3QiIHsKLS0gICAgICAgIHR5cGUgRm9udEZvcm1h dEluZm87Ci0tCi0tICAgICAgICBmbiBnZXRfZm9udF9mb3JtYXRfaW5mbyhmb250X2J5dGVzOiAm W3U4XSkgLT4gQm94PEZvbnRGb3JtYXRJbmZvPjsKLS0gICAgICAgIGZuIGlzX2NvbHJ2MShmb3Jt YXRfaW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBib29sOwotLSAgICAgICAgZm4gaXNfY29scnYw KGZvcm1hdF9pbmZvOiAmRm9udEZvcm1hdEluZm8pIC0+IGJvb2w7Ci0tICAgICAgICBmbiBpc19j YmR0X2NibGMoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbDsKLS0gICAgICAg IGZuIGlzX2ViZHRfZWJsYyhmb3JtYXRfaW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBib29sOwot LSAgICAgICAgZm4gaXNfdmFyaWFibGUoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0SW5mbykgLT4g Ym9vbDsKLS0gICAgICAgIGZuIGlzX3NiaXgoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0SW5mbykg LT4gYm9vbDsKLS0gICAgICAgIGZuIGlzX2NmZjIoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0SW5m bykgLT4gYm9vbDsKLS0gICAgICAgIGZuIGlzX2F2YXIyKGZvcm1hdF9pbmZvOiAmRm9udEZvcm1h dEluZm8pIC0+IGJvb2w7Ci0tICAgIH0KLS19CisrCisrI1tjeHg6OmJyaWRnZShuYW1lc3BhY2Ug PSAiZm9udF9mb3JtYXRfY2hlY2siKV0KKytwdWIgbW9kIGZmaSB7CisrICAgIGV4dGVybiAiUnVz dCIgeworKyAgICAgICAgdHlwZSBGb250Rm9ybWF0SW5mbzsKKysKKysgICAgICAgIGZuIGdldF9m b250X2Zvcm1hdF9pbmZvKGZvbnRfYnl0ZXM6ICZbdThdKSAtPiBCb3g8Rm9udEZvcm1hdEluZm8+ OworKyAgICAgICAgZm4gaXNfY29scnYxKGZvcm1hdF9pbmZvOiAmRm9udEZvcm1hdEluZm8pIC0+ IGJvb2w7CisrICAgICAgICBmbiBpc19jb2xydjAoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0SW5m bykgLT4gYm9vbDsKKysgICAgICAgIGZuIGlzX2NiZHRfY2JsYyhmb3JtYXRfaW5mbzogJkZvbnRG b3JtYXRJbmZvKSAtPiBib29sOworKyAgICAgICAgZm4gaXNfZWJkdF9lYmxjKGZvcm1hdF9pbmZv OiAmRm9udEZvcm1hdEluZm8pIC0+IGJvb2w7CisrICAgICAgICBmbiBpc192YXJpYWJsZShmb3Jt YXRfaW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBib29sOworKyAgICAgICAgZm4gaXNfc2JpeChm b3JtYXRfaW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBib29sOworKyAgICAgICAgZm4gaXNfY2Zm Mihmb3JtYXRfaW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBib29sOworKyAgICAgICAgZm4gaXNf YXZhcjIoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbDsKKysgICAgfQorK30K CmRpZmYgLS1naXQgYS9jaHJvbWl1bS0xNTQtZnRiZnMtcHJpdmF0ZS12ZXJpZmljYXRpb24tdG9r ZW5zLnBhdGNoIGIvY2hyb21pdW0tMTU0LWZ0YmZzLXByaXZhdGUtdmVyaWZpY2F0aW9uLXRva2Vu cy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MGJmZDYxCi0tLSAv ZGV2L251bGwKKysrIGIvY2hyb21pdW0tMTU0LWZ0YmZzLXByaXZhdGUtdmVyaWZpY2F0aW9uLXRv a2Vucy5wYXRjaApAQCAtMCwwICsxLDI5NyBAQAordW5nb29nbGVkIGNocm9taXVtIHBhdGNoIGZy b20gaHR0cHM6Ly9naXRodWIuY29tL3VuZ29vZ2xlZC1zb2Z0d2FyZS91bmdvb2dsZWQtY2hyb21p dW0vcHVsbC8zOTY2CisKKy0tLSBhL2Nocm9tZS9icm93c2VyL0JVSUxELmduCisrKysgYi9jaHJv bWUvYnJvd3Nlci9CVUlMRC5nbgorQEAgLTEwMjIsNyArMTAyMiw2IEBAIHNvdXJjZV9zZXQoImNv cmUiKSB7CisgICAgICIvL2Nocm9tZS9icm93c2VyL3ByZWxvYWRpbmcvc2VhcmNoX3ByZWxvYWQ6 ZmVhdHVyZSIsCisgICAgICIvL2Nocm9tZS9icm93c2VyL3ByaXZhY3lfc2FuZGJveDpoZWFkZXJz IiwKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJpdmF0ZV9haSIsCistICAgICIvL2Nocm9tZS9i cm93c2VyL3ByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2VucyIsCisgICAgICIvL2Nocm9tZS9icm93 c2VyL3Byb2ZpbGVzOm1pc2MiLAorICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcm9maWxlczpwcm9m aWxlX2lvX2RhdGEiLAorICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcm9maWxlczpwcm9maWxlc19l eHRyYV9wYXJ0cyIsCitAQCAtMjIxNSw3ICsyMjE0LDYgQEAgc291cmNlX3NldCgiYnJvd3NlciIp IHsKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJlbG9hZGluZy9zZWFyY2hfcHJlbG9hZCIsCisg ICAgICIvL2Nocm9tZS9icm93c2VyL3ByaXZhY3kiLAorICAgICAiLy9jaHJvbWUvYnJvd3Nlci9w cml2YWN5X3NhbmRib3g6aW1wbCIsCistICAgICIvL2Nocm9tZS9icm93c2VyL3ByaXZhdGVfdmVy aWZpY2F0aW9uX3Rva2VucyIsCisgICAgICIvL2Nocm9tZS9icm93c2VyL3Byb2ZpbGVzOm1pc2Mi LAorICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcm9maWxlczpwcm9maWxlX3V0aWxfaW1wbCIsCisg ICAgICIvL2Nocm9tZS9icm93c2VyL3Byb2ZpbGVzOnByb2ZpbGVzX2V4dHJhX3BhcnRzX2ltcGwi LAorLS0tIGEvY2hyb21lL2Jyb3dzZXIvYnJvd3NpbmdfZGF0YS9CVUlMRC5nbgorKysrIGIvY2hy b21lL2Jyb3dzZXIvYnJvd3NpbmdfZGF0YS9CVUlMRC5nbgorQEAgLTEyNSw3ICsxMjUsNiBAQCBz b3VyY2Vfc2V0KCJpbXBsIikgeworICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcmVsb2FkaW5nL3By ZWZldGNoL25vX3N0YXRlX3ByZWZldGNoIiwKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJlbG9h ZGluZy9wcmVmZXRjaC9zZWFyY2hfcHJlZmV0Y2giLAorICAgICAiLy9jaHJvbWUvYnJvd3Nlci9w cml2YWN5X3NhbmRib3g6aGVhZGVycyIsCistICAgICIvL2Nocm9tZS9icm93c2VyL3ByaXZhdGVf dmVyaWZpY2F0aW9uX3Rva2VucyIsCisgICAgICIvL2Nocm9tZS9icm93c2VyL3Byb2ZpbGVzL2tl ZXBfYWxpdmUiLAorICAgICAiLy9jaHJvbWUvYnJvd3Nlci9yZWFkaW5nX2xpc3QiLAorICAgICAi Ly9jaHJvbWUvYnJvd3Nlci9zYWZlX2Jyb3dzaW5nIiwKK0BAIC0yNjcsNyArMjY2LDYgQEAgc291 cmNlX3NldCgidW5pdF90ZXN0cyIpIHsKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcGF5bWVudHMv YnJvd3Nlcl9iaW5kaW5nOmJyb3dzZXJfYm91bmRfa2V5X2RlbGV0ZXIiLAorICAgICAiLy9jaHJv bWUvYnJvd3Nlci9wYXltZW50cy9icm93c2VyX2JpbmRpbmc6dGVzdF9zdXBwb3J0IiwKKyAgICAg Ii8vY2hyb21lL2Jyb3dzZXIvcGVybWlzc2lvbnMiLAorLSAgICAiLy9jaHJvbWUvYnJvd3Nlci9w cml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnMiLAorICAgICAiLy9jaHJvbWUvYnJvd3Nlci9yZWFk aW5nX2xpc3QiLAorICAgICAiLy9jaHJvbWUvYnJvd3Nlci9zYWZlX2Jyb3dzaW5nOnZlcmRpY3Rf Y2FjaGVfbWFuYWdlcl9mYWN0b3J5IiwKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvc2VnbWVudGF0 aW9uX3BsYXRmb3JtIiwKK0BAIC0yOTUsNyArMjkzLDYgQEAgc291cmNlX3NldCgidW5pdF90ZXN0 cyIpIHsKKyAgICAgIi8vY29tcG9uZW50cy9wcml2YWN5X3NhbmRib3g6cHJpdmFjeV9zYW5kYm94 X3NldHRpbmdzX2hlYWRlcnMiLAorICAgICAiLy9jb21wb25lbnRzL3ByaXZhY3lfc2FuZGJveC9w cml2YWN5X3NhbmRib3hfYXR0ZXN0YXRpb25zIiwKKyAgICAgIi8vY29tcG9uZW50cy9wcml2YWN5 X3NhbmRib3gvcHJpdmFjeV9zYW5kYm94X2F0dGVzdGF0aW9uczp0ZXN0X3N1cHBvcnQiLAorLSAg ICAiLy9jb21wb25lbnRzL3ByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vucy9jb21tb246cHJpdmF0 ZV92ZXJpZmljYXRpb25fdG9rZW5zX2RhdGFiYXNlIiwKKyAgICAgIi8vY29tcG9uZW50cy9yZWFk aW5nX2xpc3QvY29yZTp0ZXN0X3N1cHBvcnQiLAorICAgICAiLy9jb21wb25lbnRzL3NhZmVfYnJv d3NpbmcvY29yZS9icm93c2VyOnZlcmRpY3RfY2FjaGVfbWFuYWdlciIsCisgICAgICIvL2NvbXBv bmVudHMvc2l0ZV9lbmdhZ2VtZW50L2NvbnRlbnQiLAorLS0tIGEvY2hyb21lL2Jyb3dzZXIvYnJv d3NpbmdfZGF0YS9jaHJvbWVfYnJvd3NpbmdfZGF0YV9tb2RlbF9kZWxlZ2F0ZS5jYworKysrIGIv Y2hyb21lL2Jyb3dzZXIvYnJvd3NpbmdfZGF0YS9jaHJvbWVfYnJvd3NpbmdfZGF0YV9tb2RlbF9k ZWxlZ2F0ZS5jYworQEAgLTEyNywxNSArMTI3LDYgQEAgdm9pZCBDaHJvbWVCcm93c2luZ0RhdGFN b2RlbERlbGVnYXRlOjpHZQorIAorICAgR2V0QWxsTWVkaWFEZXZpY2VTYWx0RGF0YUtleXMoY29u Y3VycmVudC5DcmVhdGVDYWxsYmFjaygpLCB7fSk7CisgCistICBpZiAoYmFzZTo6RmVhdHVyZUxp c3Q6OklzRW5hYmxlZCgKKy0gICAgICAgICAgbmV0OjpmZWF0dXJlczo6a0VuYWJsZVByaXZhdGVW ZXJpZmljYXRpb25Ub2tlbnMpKSB7CistICAgIGlmIChhdXRvKiBwdnRfc2VydmljZSA9CistICAg ICAgICAgICAgUHJpdmF0ZVZlcmlmaWNhdGlvblRva2Vuc1NlcnZpY2VGYWN0b3J5OjpHZXRGb3JQ cm9maWxlKHByb2ZpbGVfKSkgeworLSAgICAgIHB2dF9zZXJ2aWNlLT5HZXRUb2tlbklzc3VlcnMo CistICAgICAgICAgIGJhc2U6OkJpbmRPbmNlKCZQcml2YXRlVmVyaWZpY2F0aW9uVG9rZW5Ccm93 c2luZ0RhdGFUb0RlbGVnYXRlRW50cmllcykKKy0gICAgICAgICAgICAgIC5UaGVuKGNvbmN1cnJl bnQuQ3JlYXRlQ2FsbGJhY2soKSkpOworLSAgICB9CistICB9CisgCisgICAvLyBUT0RPKGNyYnVn LmNvbS80MDIwNTYwMyk6IEltcGxlbWVudCBkYXRhIHJldHJpZXZhbCBmb3IgcmVtYWluaW5nIGRh dGEKKyAgIC8vIHR5cGVzLgorQEAgLTE4MCwyMCArMTcxLDYgQEAgdm9pZCBDaHJvbWVCcm93c2lu Z0RhdGFNb2RlbERlbGVnYXRlOjpSZQorICAgfQorICNlbmRpZiAgLy8gIUJVSUxERkxBRyhJU19B TkRST0lEKQorIAorLSAgaWYgKGJhc2U6OkZlYXR1cmVMaXN0OjpJc0VuYWJsZWQoCistICAgICAg ICAgIG5ldDo6ZmVhdHVyZXM6OmtFbmFibGVQcml2YXRlVmVyaWZpY2F0aW9uVG9rZW5zKSAmJgor LSAgICAgIHN0b3JhZ2VfdHlwZXMuSGFzKHN0YXRpY19jYXN0PEJyb3dzaW5nRGF0YU1vZGVsOjpT dG9yYWdlVHlwZT4oCistICAgICAgICAgIFN0b3JhZ2VUeXBlOjprUHJpdmF0ZVZlcmlmaWNhdGlv blRva2VucykpKSB7CistICAgIGlmIChjb25zdCB1cmw6Ok9yaWdpbiogb3JpZ2luID0gc3RkOjpn ZXRfaWY8dXJsOjpPcmlnaW4+KCZkYXRhX2tleSkpIHsKKy0gICAgICBpZiAoYXV0byogcHZ0X3Nl cnZpY2UgPQorLSAgICAgICAgICAgICAgUHJpdmF0ZVZlcmlmaWNhdGlvblRva2Vuc1NlcnZpY2VG YWN0b3J5OjpHZXRGb3JQcm9maWxlKAorLSAgICAgICAgICAgICAgICAgIHByb2ZpbGVfKSkgewor LSAgICAgICAgcHZ0X3NlcnZpY2UtPkRlbGV0ZVRva2VucyhiYXNlOjpUaW1lKCksIGJhc2U6OlRp bWU6Ok1heCgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25jdXJyZW50 LkNyZWF0ZUNsb3N1cmUoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rk Ojp2ZWN0b3I8dXJsOjpPcmlnaW4+eypvcmlnaW59KTsKKy0gICAgICB9CistICAgIH0KKy0gIH0K KyAKKyAgIHN0ZDo6bW92ZShjb25jdXJyZW50KS5Eb25lKHN0ZDo6bW92ZShjYWxsYmFjaykpOwor IH0KKy0tLSBhL2Nocm9tZS9icm93c2VyL2Jyb3dzaW5nX2RhdGEvY2hyb21lX2Jyb3dzaW5nX2Rh dGFfcmVtb3Zlcl9kZWxlZ2F0ZS5jYworKysrIGIvY2hyb21lL2Jyb3dzZXIvYnJvd3NpbmdfZGF0 YS9jaHJvbWVfYnJvd3NpbmdfZGF0YV9yZW1vdmVyX2RlbGVnYXRlLmNjCitAQCAtNzIwLDI5ICs3 MjAsNiBAQCB2b2lkIENocm9tZUJyb3dzaW5nRGF0YVJlbW92ZXJEZWxlZ2F0ZTo6CisgI2VuZGlm ICAvLyBCVUlMREZMQUcoSVNfQ0hST01FT1MpCisgICB9CisgCistICAvLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8KKy0gIC8vIERBVEFfVFlQRV9QUklWQVRFX1ZFUklGSUNBVElPTl9UT0tFTlMKKy0gIGlm IChyZW1vdmVfbWFzayAmIGNvbnN0YW50czo6REFUQV9UWVBFX1BSSVZBVEVfVkVSSUZJQ0FUSU9O X1RPS0VOUykgeworLSAgICBpZiAoYmFzZTo6RmVhdHVyZUxpc3Q6OklzRW5hYmxlZCgKKy0gICAg ICAgICAgICBuZXQ6OmZlYXR1cmVzOjprRW5hYmxlUHJpdmF0ZVZlcmlmaWNhdGlvblRva2Vucykp IHsKKy0gICAgICBpZiAoYXV0byogcHZ0X3NlcnZpY2UgPQorLSAgICAgICAgICAgICAgUHJpdmF0 ZVZlcmlmaWNhdGlvblRva2Vuc1NlcnZpY2VGYWN0b3J5OjpHZXRGb3JQcm9maWxlKAorLSAgICAg ICAgICAgICAgICAgIHByb2ZpbGVfKSkgeworLSAgICAgICAgYXV0byBkb25lX2Nsb3N1cmUgPSBD cmVhdGVUYXNrQ29tcGxldGlvbkNsb3N1cmUoCistICAgICAgICAgICAgVHJhY2luZ0RhdGFUeXBl OjprUHJpdmF0ZVZlcmlmaWNhdGlvblRva2Vucyk7CistCistICAgICAgICBpZiAoZmlsdGVyX2J1 aWxkZXItPk1hdGNoZXNBbGxPcmlnaW5zQW5kRG9tYWlucygpKSB7CistICAgICAgICAgIHB2dF9z ZXJ2aWNlLT5EZWxldGVUb2tlbnMoZGVsZXRlX2JlZ2luXywgZGVsZXRlX2VuZF8sCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjptb3ZlKGRvbmVfY2xvc3VyZSksCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyppc3N1ZXJzPSovc3RkOjpudWxs b3B0KTsKKy0gICAgICAgIH0gZWxzZSB7CistICAgICAgICAgIHB2dF9zZXJ2aWNlLT5EZWxldGVU b2tlbnNCeUZpbHRlcigKKy0gICAgICAgICAgICAgIGRlbGV0ZV9iZWdpbl8sIGRlbGV0ZV9lbmRf LAorLSAgICAgICAgICAgICAgZmlsdGVyX2J1aWxkZXItPkJ1aWxkU3RvcmFnZUtleUZpbHRlcigp LCBzdGQ6Om1vdmUoZG9uZV9jbG9zdXJlKSk7CistICAgICAgICB9CistICAgICAgfQorLSAgICB9 CistICB9CisgCisgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgIC8vIERBVEFfVFlQRV9DT05U RU5UX1NFVFRJTkdTCistLS0gYS9jaHJvbWUvYnJvd3Nlci9jaHJvbWVfY29udGVudF9icm93c2Vy X2NsaWVudC5jYworKysrIGIvY2hyb21lL2Jyb3dzZXIvY2hyb21lX2NvbnRlbnRfYnJvd3Nlcl9j bGllbnQuY2MKK0BAIC02MDA5LDIxICs2MDA5LDYgQEAgQ2hyb21lQ29udGVudEJyb3dzZXJDbGll bnQ6OkNyZWF0ZVVSTExvYQorICAgICByZXN1bHQucHVzaF9iYWNrKHN0ZDo6bW92ZShzaWduaW5f dGhyb3R0bGUpKTsKKyAgIH0KKyAKKy0gIGlmIChiYXNlOjpGZWF0dXJlTGlzdDo6SXNFbmFibGVk KAorLSAgICAgICAgICBuZXQ6OmZlYXR1cmVzOjprRW5hYmxlUHJpdmF0ZVZlcmlmaWNhdGlvblRv a2VucykgJiYKKy0gICAgICByZXF1ZXN0LmlzX291dGVybW9zdF9tYWluX2ZyYW1lKSB7CistICAg IGlmIChhdXRvKiBwdnRfc2VydmljZSA9CistICAgICAgICAgICAgUHJpdmF0ZVZlcmlmaWNhdGlv blRva2Vuc1NlcnZpY2VGYWN0b3J5OjpHZXRGb3JQcm9maWxlKHByb2ZpbGUpKSB7CistICAgICAg YXV0byB1cmxfbG9hZGVyX2ZhY3RvcnkgPSBwcm9maWxlLT5HZXREZWZhdWx0U3RvcmFnZVBhcnRp dGlvbigpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLT5HZXRVUkxMb2Fk ZXJGYWN0b3J5Rm9yQnJvd3NlclByb2Nlc3MoKTsKKy0gICAgICBpZiAoYXV0byBwdnRfdGhyb3R0 bGUgPQorLSAgICAgICAgICAgICAgUHJpdmF0ZVZlcmlmaWNhdGlvblRva2Vuc1VSTExvYWRlclRo cm90dGxlOjpDcmVhdGUoCistICAgICAgICAgICAgICAgICAgcHZ0X3NlcnZpY2UsIHByb2ZpbGUt PklzT2ZmVGhlUmVjb3JkKCksCistICAgICAgICAgICAgICAgICAgc3RkOjptb3ZlKHVybF9sb2Fk ZXJfZmFjdG9yeSkpKSB7CistICAgICAgICByZXN1bHQucHVzaF9iYWNrKHN0ZDo6bW92ZShwdnRf dGhyb3R0bGUpKTsKKy0gICAgICB9CistICAgIH0KKy0gIH0KKyAKKyAgIGlmIChhdXRvIGNvbnRl eHR1YWxfdGFza3NfdGhyb3R0bGUgPQorICAgICAgICAgICBjb250ZXh0dWFsX3Rhc2tzOjpDb250 ZXh0dWFsVGFza3NVUkxMb2FkZXJUaHJvdHRsZTo6TWF5YmVDcmVhdGUoCistLS0gYS9jaHJvbWUv YnJvd3Nlci9jb21wb25lbnRfdXBkYXRlci9CVUlMRC5nbgorKysrIGIvY2hyb21lL2Jyb3dzZXIv Y29tcG9uZW50X3VwZGF0ZXIvQlVJTEQuZ24KK0BAIC0xNDcsNyArMTQ3LDYgQEAgc291cmNlX3Nl dCgiaW1wbCIpIHsKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvbmV0IiwKKyAgICAgIi8vY2hyb21l L2Jyb3dzZXIvcGFnZV9sb2FkX21ldHJpY3MiLAorICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wZXJt aXNzaW9ucyIsCistICAgICIvL2Nocm9tZS9icm93c2VyL3ByaXZhdGVfdmVyaWZpY2F0aW9uX3Rv a2VucyIsCisgICAgICIvL2Nocm9tZS9icm93c2VyL3Byb2ZpbGVzOnByb2ZpbGUiLAorICAgICAi Ly9jaHJvbWUvYnJvd3Nlci91cGRhdGVfY2xpZW50IiwKKyAgICAgIi8vY2hyb21lL2NvbW1vbiIs CitAQCAtMTYzLDcgKzE2Miw2IEBAIHNvdXJjZV9zZXQoImltcGwiKSB7CisgICAgICIvL2NvbXBv bmVudHMvcGVybWlzc2lvbnMiLAorICAgICAiLy9jb21wb25lbnRzL3ByaXZhY3lfc2FuZGJveDpm ZWF0dXJlcyIsCisgICAgICIvL2NvbXBvbmVudHMvcHJpdmFjeV9zYW5kYm94L3ByaXZhY3lfc2Fu ZGJveF9hdHRlc3RhdGlvbnMiLAorLSAgICAiLy9jb21wb25lbnRzL3ByaXZhdGVfdmVyaWZpY2F0 aW9uX3Rva2Vucy9jb21tb246cHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zX2lzc3Vlcl9jb25m aWciLAorICAgICAiLy9jb21wb25lbnRzL3NhZmVfYnJvd3NpbmcvY29yZS9jb21tb246ZmVhdHVy ZXMiLAorICAgICAiLy9jb21wb25lbnRzL3NlYXJjaCIsCisgICAgICIvL2NvbXBvbmVudHMvc2Vj dXJpdHlfaW50ZXJzdGl0aWFscy9jb250ZW50OnNlY3VyaXR5X2ludGVyc3RpdGlhbF9wYWdlIiwK Ky0tLSBhL2Nocm9tZS9icm93c2VyL2NvbXBvbmVudF91cGRhdGVyL3ByaXZhdGVfdmVyaWZpY2F0 aW9uX3Rva2Vuc19pbnN0YWxsZXIuY2MKKysrKyBiL2Nocm9tZS9icm93c2VyL2NvbXBvbmVudF91 cGRhdGVyL3ByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vuc19pbnN0YWxsZXIuY2MKK0BAIC0yNSwz MiArMjUsNiBAQCBuYW1lc3BhY2UgY29tcG9uZW50X3VwZGF0ZXIgeworIAorIHZvaWQgUmVnaXN0 ZXJQcml2YXRlVmVyaWZpY2F0aW9uVG9rZW5zQ29tcG9uZW50SWZFbmFibGVkKAorICAgICBDb21w b25lbnRVcGRhdGVTZXJ2aWNlKiBjdXMpIHsKKy0gIGlmICghYmFzZTo6RmVhdHVyZUxpc3Q6Oklz RW5hYmxlZCgKKy0gICAgICAgICAgbmV0OjpmZWF0dXJlczo6a0VuYWJsZVByaXZhdGVWZXJpZmlj YXRpb25Ub2tlbnMpKSB7CistICAgIHJldHVybjsKKy0gIH0KKy0KKy0gIGF1dG8gaW5zdGFsbGVy ID0gYmFzZTo6TWFrZVJlZkNvdW50ZWQ8Q29tcG9uZW50SW5zdGFsbGVyPigKKy0gICAgICBzdGQ6 Om1ha2VfdW5pcXVlPFByaXZhdGVWZXJpZmljYXRpb25Ub2tlbnNJbnN0YWxsZXJQb2xpY3k+KAor LSAgICAgICAgICBiYXNlOjpCaW5kUmVwZWF0aW5nKAorLSAgICAgICAgICAgICAgW10oc2NvcGVk X3JlZnB0cjxwcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnM6OgorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUHJpdmF0ZVZlcmlmaWNhdGlvblRva2Vuc0lzc3VlckNvbmZpZz4K Ky0gICAgICAgICAgICAgICAgICAgICBpc3N1ZXJfY29uZmlnKSB7CistICAgICAgICAgICAgICAg IFByaXZhdGVWZXJpZmljYXRpb25Ub2tlbnNTZXJ2aWNlRmFjdG9yeTo6U2V0R2xvYmFsSXNzdWVy Q29uZmlnKAorLSAgICAgICAgICAgICAgICAgICAgaXNzdWVyX2NvbmZpZyk7CistICAgICAgICAg ICAgICAgIGlmIChnX2Jyb3dzZXJfcHJvY2VzcyAmJiBnX2Jyb3dzZXJfcHJvY2Vzcy0+cHJvZmls ZV9tYW5hZ2VyKCkpIHsKKy0gICAgICAgICAgICAgICAgICBmb3IgKFByb2ZpbGUqIHByb2ZpbGUg OiBnX2Jyb3dzZXJfcHJvY2Vzcy0+cHJvZmlsZV9tYW5hZ2VyKCkKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLT5HZXRMb2FkZWRQcm9maWxlcygpKSB7Cist ICAgICAgICAgICAgICAgICAgICBpZiAoUHJpdmF0ZVZlcmlmaWNhdGlvblRva2Vuc1NlcnZpY2Uq IHNlcnZpY2UgPQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcml2YXRlVmVyaWZpY2F0 aW9uVG9rZW5zU2VydmljZUZhY3Rvcnk6OgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgR2V0Rm9yUHJvZmlsZUlmRXhpc3RzKHByb2ZpbGUpKSB7CistICAgICAgICAgICAgICAgICAg ICAgIHNlcnZpY2UtPlNldElzc3VlckNvbmZpZyhpc3N1ZXJfY29uZmlnKTsKKy0gICAgICAgICAg ICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0g ICAgICAgICAgICAgIH0pKSk7CistCistICBpbnN0YWxsZXItPlJlZ2lzdGVyKGN1cywgYmFzZTo6 T25jZUNsb3N1cmUoKSk7CisgfQorIAorIH0gIC8vIG5hbWVzcGFjZSBjb21wb25lbnRfdXBkYXRl cgorLS0tIGEvY2hyb21lL2Jyb3dzZXIvcHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zL0JVSUxE LmduCisrKysgYi9jaHJvbWUvYnJvd3Nlci9wcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnMvQlVJ TEQuZ24KK0BAIC0yNiwxMSArMjYsNiBAQCBzdGF0aWNfbGlicmFyeSgicHJpdmF0ZV92ZXJpZmlj YXRpb25fdG9rCisgICAgICIvL2Nocm9tZS9icm93c2VyL3Byb2ZpbGVzOnByb2ZpbGUiLAorICAg ICAiLy9jb21wb25lbnRzL2NvbnRlbnRfc2V0dGluZ3MvY29yZS9icm93c2VyIiwKKyAgICAgIi8v Y29tcG9uZW50cy9rZXllZF9zZXJ2aWNlL2NvcmUiLAorLSAgICAiLy9jb21wb25lbnRzL3ByaXZh dGVfdmVyaWZpY2F0aW9uX3Rva2Vucy9jb21tb246cHJpdmFjeV9wYXNzX2F0aG1fYmF0Y2hfcmVx dWVzdCIsCistICAgICIvL2NvbXBvbmVudHMvcHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zL2Nv bW1vbjpwcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnNfZmV0Y2hlciIsCistICAgICIvL2NvbXBv bmVudHMvcHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zL2NvbW1vbjpwcml2YXRlX3ZlcmlmaWNh dGlvbl90b2tlbnNfaXNzdWVyX2NvbmZpZyIsCistICAgICIvL2NvbXBvbmVudHMvcHJpdmF0ZV92 ZXJpZmljYXRpb25fdG9rZW5zL2NvbW1vbjpwcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnNfcGFy YW1ldGVycyIsCistICAgICIvL2NvbXBvbmVudHMvcHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5z L2NvbW1vbjpwcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnNfc3RvcmUiLAorICAgICAiLy9jb250 ZW50L3B1YmxpYy9icm93c2VyIiwKKyAgICAgIi8vbmV0IiwKKyAgICAgIi8vc2VydmljZXMvbmV0 d29yay9wdWJsaWMvY3BwIiwKK0BAIC00OSw5ICs0NCw2IEBAIHNvdXJjZV9zZXQoImJyb3dzZXJf dGVzdHMiKSB7CisgICAgICIvL2Nocm9tZS9icm93c2VyL2NvbnRlbnRfc2V0dGluZ3M6Y29udGVu dF9zZXR0aW5nc19mYWN0b3J5IiwKKyAgICAgIi8vY2hyb21lL3Rlc3Q6dGVzdF9zdXBwb3J0IiwK KyAgICAgIi8vY29tcG9uZW50cy9jb250ZW50X3NldHRpbmdzL2NvcmUvY29tbW9uIiwKKy0gICAg Ii8vY29tcG9uZW50cy9wcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnMvY29tbW9uOmF0aG1fdGVz dF9pc3N1ZXIiLAorLSAgICAiLy9jb21wb25lbnRzL3ByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vu cy9jb21tb246cHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zX2RhdGFiYXNlIiwKKy0gICAgIi8v Y29tcG9uZW50cy9wcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnMvY29tbW9uOnByaXZhdGVfdmVy aWZpY2F0aW9uX3Rva2Vuc19pc3N1ZXJfY29uZmlnIiwKKyAgICAgIi8vbmV0OnRlc3Rfc3VwcG9y dCIsCisgICAgICIvL3NlcnZpY2VzL25ldHdvcms6dGVzdF9zdXBwb3J0IiwKKyAgICAgIi8vdXJs IiwKK0BAIC03MiwxMSArNjQsNiBAQCBzb3VyY2Vfc2V0KCJ1bml0X3Rlc3RzIikgeworICAgICAi Ly9jaHJvbWUvdGVzdDp0ZXN0X3N1cHBvcnQiLAorICAgICAiLy9jb21wb25lbnRzL2NvbnRlbnRf c2V0dGluZ3MvY29yZS9icm93c2VyIiwKKyAgICAgIi8vY29tcG9uZW50cy9jb250ZW50X3NldHRp bmdzL2NvcmUvY29tbW9uIiwKKy0gICAgIi8vY29tcG9uZW50cy9wcml2YXRlX3ZlcmlmaWNhdGlv bl90b2tlbnMvY29tbW9uOmF0aG1fdGVzdF9pc3N1ZXIiLAorLSAgICAiLy9jb21wb25lbnRzL3By aXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vucy9jb21tb246cHJpdmF0ZV92ZXJpZmljYXRpb25fdG9r ZW5zX2RhdGFiYXNlIiwKKy0gICAgIi8vY29tcG9uZW50cy9wcml2YXRlX3ZlcmlmaWNhdGlvbl90 b2tlbnMvY29tbW9uOnByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vuc19pc3N1ZXJfY29uZmlnIiwK Ky0gICAgIi8vY29tcG9uZW50cy9wcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnMvY29tbW9uOnBy aXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vuc19wYXJhbWV0ZXJzIiwKKy0gICAgIi8vY29tcG9uZW50 cy9wcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnMvY29tbW9uOnRlc3Rfc3VwcG9ydCIsCisgICAg ICIvL2NvbnRlbnQvdGVzdDp0ZXN0X3N1cHBvcnQiLAorICAgICAiLy9uZXQiLAorICAgICAiLy9z ZXJ2aWNlcy9uZXR3b3JrOnRlc3Rfc3VwcG9ydCIsCistLS0gYS9jaHJvbWUvYnJvd3Nlci9wcm9m aWxlcy9CVUlMRC5nbgorKysrIGIvY2hyb21lL2Jyb3dzZXIvcHJvZmlsZXMvQlVJTEQuZ24KK0BA IC04MDksNyArODA5LDYgQEAgc291cmNlX3NldCgicHJvZmlsZXNfZXh0cmFfcGFydHNfaW1wbCIp CisgICAgICIvL2Nocm9tZS9icm93c2VyL3ByaXZhY3lfc2FuZGJveDpoZWFkZXJzIiwKKyAgICAg Ii8vY2hyb21lL2Jyb3dzZXIvcHJpdmF0ZV9haSIsCisgICAgICIvL2Nocm9tZS9icm93c2VyL3By aXZhdGVfaW5zaWdodHMiLAorLSAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcml2YXRlX3ZlcmlmaWNh dGlvbl90b2tlbnMiLAorICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wdXNoX21lc3NhZ2luZyIsCisg ICAgICIvL2Nocm9tZS9icm93c2VyL3JlYWRpbmdfbGlzdCIsCisgICAgICIvL2Nocm9tZS9icm93 c2VyL3JlZHVjZV9hY2NlcHRfbGFuZ3VhZ2UiLAorLS0tIGEvY2hyb21lL2Jyb3dzZXIvcHJvZmls ZXMvY2hyb21lX2Jyb3dzZXJfbWFpbl9leHRyYV9wYXJ0c19wcm9maWxlcy5jYworKysrIGIvY2hy b21lL2Jyb3dzZXIvcHJvZmlsZXMvY2hyb21lX2Jyb3dzZXJfbWFpbl9leHRyYV9wYXJ0c19wcm9m aWxlcy5jYworQEAgLTEzNzEsNyArMTM3MSw2IEBAIHZvaWQgQ2hyb21lQnJvd3Nlck1haW5FeHRy YVBhcnRzUHJvZmlsZXMKKyAgIFByaXZhY3lNZXRyaWNzU2VydmljZUZhY3Rvcnk6OkdldEluc3Rh bmNlKCk7CisgICBQcml2YWN5U2FuZGJveFNlcnZpY2VGYWN0b3J5OjpHZXRJbnN0YW5jZSgpOwor ICAgUHJpdmFjeVNhbmRib3hTZXR0aW5nc0ZhY3Rvcnk6OkdldEluc3RhbmNlKCk7CistICBQcml2 YXRlVmVyaWZpY2F0aW9uVG9rZW5zU2VydmljZUZhY3Rvcnk6OkdldEluc3RhbmNlKCk7CisgICBw cml2YXRlX2FpOjpQcml2YXRlQWlTZXJ2aWNlRmFjdG9yeTo6R2V0SW5zdGFuY2UoKTsKKyAgIFBy b2ZpbGVOZXR3b3JrQ29udGV4dFNlcnZpY2VGYWN0b3J5OjpHZXRJbnN0YW5jZSgpOworICAgUHJv ZmlsZVBhc3N3b3JkU3RvcmVGYWN0b3J5OjpHZXRJbnN0YW5jZSgpOworLS0tIGEvY2hyb21lL3Rl c3QvQlVJTEQuZ24KKysrKyBiL2Nocm9tZS90ZXN0L0JVSUxELmduCitAQCAtMjEzNyw3ICsyMTM3 LDYgQEAgaWYgKCFpc19hbmRyb2lkKSB7CisgICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJpdmFj eV9zYW5kYm94OmhlYWRlcnMiLAorICAgICAgICIvL2Nocm9tZS9icm93c2VyL3ByaXZhY3lfc2Fu ZGJveDp0ZXN0X3N1cHBvcnQiLAorICAgICAgICIvL2Nocm9tZS9icm93c2VyL3ByaXZhdGVfYWki LAorLSAgICAgICIvL2Nocm9tZS9icm93c2VyL3ByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vuczpi cm93c2VyX3Rlc3RzIiwKKyAgICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcm9maWxlX3Jlc2V0dGVy IiwKKyAgICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcm9maWxlX3Jlc2V0dGVyOmJyb3dzZXJfdGVz dHMiLAorICAgICAgICIvL2Nocm9tZS9icm93c2VyL3Byb2ZpbGVzIiwKK0BAIC01NDAxLDcgKzU0 MDAsNiBAQCB0ZXN0KCJ1bml0X3Rlc3RzIikgeworICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcmVs b2FkaW5nL3ByZXJlbmRlcjp1bml0X3Rlc3RzIiwKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJp dmFjeV9zYW5kYm94OnVuaXRfdGVzdHMiLAorICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcml2YXRl X2FpOnVuaXRfdGVzdHMiLAorLSAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcml2YXRlX3ZlcmlmaWNh dGlvbl90b2tlbnM6dW5pdF90ZXN0cyIsCisgICAgICIvL2Nocm9tZS9icm93c2VyL3Byb2ZpbGVz IiwKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJvZmlsZXM6bWlzYyIsCisgICAgICIvL2Nocm9t ZS9icm93c2VyL3Byb2ZpbGVzOnByb2ZpbGVfZG93bmxvYWRlciIsCistLS0gYS9jb21wb25lbnRz L0JVSUxELmduCisrKysgYi9jb21wb25lbnRzL0JVSUxELmduCitAQCAtMzE0LDcgKzMxNCw2IEBA IHRlc3QoImNvbXBvbmVudHNfdW5pdHRlc3RzIikgeworICAgICAiLy9jb21wb25lbnRzL3Bvd2Vy X21ldHJpY3M6dW5pdF90ZXN0cyIsCisgICAgICIvL2NvbXBvbmVudHMvcHJlZnM6dW5pdF90ZXN0 cyIsCisgICAgICIvL2NvbXBvbmVudHMvcHJpdmFjeV9zYW5kYm94OnVuaXRfdGVzdHMiLAorLSAg ICAiLy9jb21wb25lbnRzL3ByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vuczp1bml0X3Rlc3RzIiwK KyAgICAgIi8vY29tcG9uZW50cy9wcm9maWxlX21ldHJpY3M6dW5pdF90ZXN0cyIsCisgICAgICIv L2NvbXBvbmVudHMvcHJvdG9fZXh0cmFzOnVuaXRfdGVzdHMiLAorICAgICAiLy9jb21wb25lbnRz L3Byb3h5X2NvbmZpZzp1bml0X3Rlc3RzIiwKKy0tLSBhL2NvbXBvbmVudHMvY29tcG9uZW50X3Vw ZGF0ZXIvaW5zdGFsbGVyX3BvbGljaWVzL0JVSUxELmduCisrKysgYi9jb21wb25lbnRzL2NvbXBv bmVudF91cGRhdGVyL2luc3RhbGxlcl9wb2xpY2llcy9CVUlMRC5nbgorQEAgLTM4LDcgKzM4LDYg QEAgc3RhdGljX2xpYnJhcnkoImluc3RhbGxlcl9wb2xpY2llc19ub19jbworICAgICAiLy9jb21w b25lbnRzL2xvb2thbGlrZXMvY29yZTpwcm90byIsCisgICAgICIvL2NvbXBvbmVudHMvbG9va2Fs aWtlcy9jb3JlOnNhZmV0eV90aXBzIiwKKyAgICAgIi8vY29tcG9uZW50cy9wcmVmcyIsCistICAg ICIvL2NvbXBvbmVudHMvcHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zL2NvbW1vbjpwcml2YXRl X3ZlcmlmaWNhdGlvbl90b2tlbnNfaXNzdWVyX2NvbmZpZyIsCisgICAgICIvL2NvbXBvbmVudHMv dXBkYXRlX2NsaWVudCIsCisgICAgICIvL21vam8vcHVibGljL2NwcC9iYXNlOnByb3RvYnVmX3N1 cHBvcnQiLAorICAgICAiLy9zZXJ2aWNlcy9uZXR3b3JrL3B1YmxpYy9jcHAiLAorQEAgLTEwNiw4 ICsxMDUsNiBAQCBzb3VyY2Vfc2V0KCJ1bml0X3Rlc3RzIikgeworICAgICAiLy9jb21wb25lbnRz L2hpc3RvcnlfZW1iZWRkaW5ncy9jb3JlIiwKKyAgICAgIi8vY29tcG9uZW50cy9vcHRpbWl6YXRp b25fZ3VpZGUvY29yZSIsCisgICAgICIvL2NvbXBvbmVudHMvb3B0aW1pemF0aW9uX2d1aWRlL3By b3RvOm9wdGltaXphdGlvbl9ndWlkZV9wcm90byIsCistICAgICIvL2NvbXBvbmVudHMvcHJpdmF0 ZV92ZXJpZmljYXRpb25fdG9rZW5zL2NvbW1vbjpwcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnNf aXNzdWVyX2NvbmZpZyIsCistICAgICIvL2NvbXBvbmVudHMvcHJpdmF0ZV92ZXJpZmljYXRpb25f dG9rZW5zL2NvbW1vbjp0ZXN0X3N1cHBvcnQiLAorICAgICAiLy9tb2pvL3B1YmxpYy9jcHAvYmFz ZTpwcm90b2J1Zl9zdXBwb3J0IiwKKyAgICAgIi8vc2VydmljZXMvbmV0d29yay9wdWJsaWMvY3Bw IiwKKyAgICAgIi8vdGVzdGluZy9nbW9jayIsCgpkaWZmIC0tZ2l0IGEvY2hyb21pdW0uc3BlYyBi L2Nocm9taXVtLnNwZWMKaW5kZXggZWVmYTRkZS4uY2Q0OTFmNiAxMDA2NDQKLS0tIGEvY2hyb21p dW0uc3BlYworKysgYi9jaHJvbWl1bS5zcGVjCkBAIC0zMjcsOCArMzI3LDcgQEAgUGF0Y2g5Mzog Y2hyb21pdW0tMTQxLWNzc3Nfc3R5bGVfc2hlZXQucGF0Y2gKIAogIyByZXZlcnQgdGhlIHBhdGNo IHRvIGZpeCB0aGUgYnVpbGQgZXJyb3I6ICJsZC5sbGQ6IGVycm9yOiB1bmRlZmluZWQgc3ltYm9s OiBfX3Nhbml0aXplcl9zZXRfZGVhdGhfY2FsbGJhY2siCiBQYXRjaDk0OiBjaHJvbWl1bS0xNDgt djgtc2FuaXRpemUtYnVpbGQtZXJyb3IucGF0Y2gKLSMgRml4IHJ1c3QgYnVpbGQgZXJyb3IKLVBh dGNoOTU6IGNocm9taXVtLTE1Mi1idWlsZC1lcnJvci1ydXN0LWNib3IucGF0Y2gKKwogIyBGVEJG UyAtIGVycm9yOiBjYW5ub3QgZmluZCBhdHRyaWJ1dGUgYHNhbml0aXplYCBpbiB0aGlzIHNjb3Bl CiAjICAgIC0tPiAuLi8uLi90aGlyZF9wYXJ0eS9jcmFiYnlhdmlmL3NyYy9zcmMvY2FwaS9pby5y czoyMTA6NDEKICMgICAgIHwKQEAgLTQwMyw4ICs0MDIsMTQgQEAgUGF0Y2gzMTE6IGNocm9taXVt LTEyMy1mc3RhY2stcHJvdGVjdG9yLXN0cm9uZy5wYXRjaAogIyBFUlJPUiBhdCAvL2J1aWxkL3J1 c3QvY3J1Yml0L0JVSUxELmduOjEyOjU6IAogIyBVbmFibGUgdG8gbG9hZCB0aGlyZF9wYXJ0eS9y dXN0LXRvb2xjaGFpbi9saWIvdGhpcmRfcGFydHkvY3J1Yml0L3N1cHBvcnQvcnNfc3RkL0JVSUxE LmduCiAjICIkY3J1Yml0X3NyY19kaXIvc3VwcG9ydC9yc19zdGQ6cnNfc3RkX2NwcCIsCisjIFBh dGNoIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3VuZ29vZ2xlZC1zb2Z0d2FyZS91bmdvb2dsZWQt Y2hyb21pdW0vcHVsbC8zOTY2CiBQYXRjaDMxMjogY2hyb21pdW0tMTU0LWZ0YmZzLWNydWJpdC5w YXRjaAogCisjIEZpeCBGVEJGUzoKKyMgRVJST1IgVW5yZXNvbHZlZCBkZXBlbmRlbmNpZXMKKyMg UGF0Y2ggZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdW5nb29nbGVkLXNvZnR3YXJlL3VuZ29vZ2xl ZC1jaHJvbWl1bS9wdWxsLzM5NjYKK1BhdGNoMzEzOiBjaHJvbWl1bS0xNTQtZnRiZnMtcHJpdmF0 ZS12ZXJpZmljYXRpb24tdG9rZW5zLnBhdGNoCisKICMgb2xkIHJ1c3QgdmVyc2lvbiBjYXVzZXMg YnVpbGQgZXJyb3Igb24gZWw4OgogIyBlcnJvcltFMDU5OV06IG5vIG1ldGhvZCBuYW1lZCBgaXNf bm9uZV9vcmAgZm91bmQgZm9yIGVudW0gYE9wdGlvbmAgaW4gdGhlIGN1cnJlbnQgc2NvcGUKIFBh dGNoMzE0OiBjaHJvbWl1bS0xMzYtcnVzdC1za3JpZmEtYnVpbGQtZXJyb3IucGF0Y2gKQEAgLTEx MDgsNyArMTExMyw2IEBAIFF0NiBVSSBmb3IgY2hyb21pdW0uCiAlcGF0Y2ggLVA5MiAtcDEgLWIg Lm5vZGVqcy1jaGVja3ZlcnNpb24KICVwYXRjaCAtUDkzIC1wMSAtYiAuZnRiZnMtY3Nzc19zdHls ZV9zaGVldAogJXBhdGNoIC1QOTQgLXAxIC1SIC1iIC52OC1zYW5pdGl6ZS1idWlsZC1lcnJvcgot JXBhdGNoIC1QOTUgLXAxIC1iIC5idWlsZC1lcnJvci1ydXN0LWNib3IKICVwYXRjaCAtUDk2IC1w MSAtYiAuY3JhYmJ5YXZpZi1mdGJmcy1vbGQtcnVzdAogCiAlaWYgISAle2J1bmRsZWZmbXBlZ2Zy ZWV9CkBAIC0xMTYyLDcgKzExNjYsOCBAQCBRdDYgVUkgZm9yIGNocm9taXVtLgogJXBhdGNoIC1Q MzE1IC1wMSAtYiAucnVzdGMtZnRiZnMKICVwYXRjaCAtUDMxMCAtcDEgLWIgLnJ1c3QtRlRCRlMt c3VwcHJlc3Mtd2FybmluZ3MKICVwYXRjaCAtUDMxMSAtcDEgLWIgLmZzdGFjay1wcm90ZWN0b3It c3Ryb25nCi0lcGF0Y2ggLVAzMTIgLXAxIC1SIC1iIC5mdGJmcy1jcnViaXQKKyVwYXRjaCAtUDMx MiAtcDEgLWIgLmZ0YmZzLWNydWJpdAorJXBhdGNoIC1QMzEzIC1wMSAtYiAuZnRiZnMtcHJpdmF0 ZS12ZXJpZmljYXRpb24tdG9rZW5zCiAKICVpZiAwJXs/cmhlbH0gJiYgMCV7P3JoZWx9IDwgMTAK ICVwYXRjaCAtUDM1NCAtcDEgLWIgLnNwbGl0LXRocmVzaG9sZC1mb3ItcmVnLXdpdGgtaGludApA QCAtMTQwMyw3ICsxNDA4LDYgQEAgQ0hST01JVU1fQ09SRV9HTl9ERUZJTkVTKz0nIGhvc3RfdG9v bGNoYWluPSIvL2J1aWxkL3Rvb2xjaGFpbi9saW51eC91bmJ1bmRsZTpkZWYKIENIUk9NSVVNX0JS T1dTRVJfR05fREVGSU5FUys9JyB1c2VfY3VzdG9tX2xpYmN4eD1mYWxzZScKICVlbmRpZgogQ0hS T01JVU1fQ09SRV9HTl9ERUZJTkVTKz0nIGlzX2RlYnVnPWZhbHNlIGRjaGVja19hbHdheXNfb249 ZmFsc2UgZGNoZWNrX2lzX2NvbmZpZ3VyYWJsZT1mYWxzZScKLUNIUk9NSVVNX0NPUkVfR05fREVG SU5FUys9JyBlbmFibGVfZW50ZXJwcmlzZV9jb21wYW5pb249ZmFsc2UnCiBDSFJPTUlVTV9DT1JF X0dOX0RFRklORVMrPScgc3lzdGVtX2xpYmRpcj0iJXtfbGlifSInCiAKICVpZiAle29mZmljaWFs X2J1aWxkfQoKZGlmZiAtLWdpdCBhL2Nocm9taXVtLnNwZWMgYi9jaHJvbWl1bS5zcGVjCmluZGV4 IDZlNzE0OTEuLmNkNDkxZjYgMTAwNjQ0Ci0tLSBhL2Nocm9taXVtLnNwZWMKKysrIGIvY2hyb21p dW0uc3BlYwpAQCAtMjExNyw2ICsyMTE3LDkgQEAgZmkKICAgKiBDVkUtMjAyNi05MzM4NjogVUkg bWlzcmVwcmVzZW50YXRpb24gaW4gV2ViQXBwSW5zdGFsbHMKICAgKiBDVkUtMjAyNi05MzM4Nzog SW1wcm9wZXIgc3RhdGUgdmFsaWRhdGlvbiBpbiBTa2lhCiAKKyogVGh1IFNlcCAxNyAyMDI2IERv bWluaWsgTWllcnplamV3c2tpIDxkb21pbmlrQGdyZXlzZWN0b3IubmV0PiAtIDE1My4wLjgwMTAu MzYtMgorLSBSZWJ1aWxkIGZvciBGRm1wZWcgOQorCiAqIE1vbiBTZXAgMTQgMjAyNiBUaGFuIE5n byA8dGhhbkByZWRoYXQuY29tPiAtIDE1My4wLjgwMTAuMzYtMQogLSBVcGRhdGUgdG8gMTUzLjAu ODAxMC4zNgogICAqIENWRS0yMDI2LTg3NDI5OiBNaXNzaW5nIGF1dGhvcml6YXRpb24gaW4gU2Vy dmljZVdvcmtlcgo=