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] epel10: Fix FTBFS (patch from ungoogled chromium) Date: Thu, 24 Sep 2026 13:43:33 GMT Message-ID: <179025741368.1.9508756756907985289.rpms-chromium-096978acb1c3@fedoraproject.org> List-ID: X-Git-Repo: rpms/chromium X-Git-Branch: epel10 X-Git-Rev: 096978acb1c3d82d1049e00d4dbf9f4457e6c817 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvY2hyb21pdW0KQnJh bmNoIDogZXBlbDEwCkNvbW1pdCA6IDA5Njk3OGFjYjFjM2Q4MmQxMDQ5ZTAwZDRkYmY5ZjQ0NTdl NmM4MTcKQXV0aG9yIDogVGhhbiBOZ28gPHRoYW5AcmVkaGF0LmNvbT4KRGF0ZSAgIDogMjAyNi0w OS0yM1QyMDoxNzo0MyswMjowMApTdGF0cyAgOiArOTk0Ly0xNTMgaW4gMyBmaWxlKHMpClVSTCAg ICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvY2hyb21pdW0vYy8wOTY5Nzhh Y2IxYzNkODJkMTA0OWUwMGQ0ZGJmOWY0NDU3ZTZjODE3P2JyYW5jaD1lcGVsMTAKCkxvZzoKRml4 IEZUQkZTIChwYXRjaCBmcm9tIHVuZ29vZ2xlZCBjaHJvbWl1bSkKCi0tLQpkaWZmIC0tZ2l0IGEv Y2hyb21pdW0tMTU0LWZ0YmZzLWNydWJpdC5wYXRjaCBiL2Nocm9taXVtLTE1NC1mdGJmcy1jcnVi aXQucGF0Y2gKaW5kZXggYjQxMzdmNS4uYmNkZWRmMyAxMDA2NDQKLS0tIGEvY2hyb21pdW0tMTU0 LWZ0YmZzLWNydWJpdC5wYXRjaAorKysgYi9jaHJvbWl1bS0xNTQtZnRiZnMtY3J1Yml0LnBhdGNo CkBAIC0xLDE2OSArMSw3MTEgQEAKLWNvbW1pdCA0OTNlNmMzOTExZTMzY2MzNTY4NTZiYWZiZmZj NmNmOTU1MjEyNjZiCi1BdXRob3I6IERvbWluaWsgUsO2dHRzY2hlcyA8ZHJvdHRAY2hyb21pdW0u b3JnPgotRGF0ZTogICBUaHUgQXVnIDEzIDA4OjQyOjE1IDIwMjYgLTA3MDAKK3VuZ29vZ2xlIGNo cm9taXVtIHBhdGNoIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3VuZ29vZ2xlZC1zb2Z0d2FyZS91 bmdvb2dsZWQtY2hyb21pdW0vcHVsbC8zOTY2CiAKLSAgICBNaWdyYXRlIE9wZW5UeXBlIGZvcm1h dCBjaGVjayBiaW5kaW5ncyB0byBDcnViaXQKLSAgICAKLSAgICBXZSBjYW4gcmVtb3ZlIHRoZSBC b3g8PiB3cmFwcGVkIHR5cGluZyBvZiBGb250Rm9ybWF0SW5mbyBhbG9uZyB0aGUgd2F5LgotICAg IAotICAgIERFUFMgY2hlY2tzIGZvciB0aGUgZ2VuZXJhdGVkIG91dHB1dCBoZWFkZXIgZmlsZXMg cmVxdWlyZXMgdXMgdG8gbW92ZQotICAgIHRoZSBmb3JtYXRfY2hlY2sgdGFyZ2V0IGludG8gdGhl IGZvbnRzIHN1YmRpcmVjdG9yeS4gVGhpcyBpcyBhIGdvb2QKLSAgICBvcHBvcnR1bml0eSB0byBt b3ZlIG1vcmUgZm9udCBzcGVjaWZpYyBidWlsZCBydWxlcyB0byB0aGUgZm9udCBzdWJkaXIgaW4K LSAgICB0aGUgZnV0dXJlIGFuZCByZWR1Y2UgdGhlIHdlaWdodCBvZiB0aGUgcGxhdGZvcm0vQlVJ TEQuZ24gYnVpbGQgZGlyLgotICAgIAotICAgIEV4ZXJjaXNlIGluIHVzaW5nIHRoZSBDcnViaXQg YmluZGluZ3MgbWVjaGFuaXNtLgotICAgIAotICAgIE5vIGZ1bmN0aW9uYWwgY2hhbmdlLgotICAg IAotICAgIENoYW5nZS1JZDogSTk0NDBjNzI4NWJiNzA3YjMyNWI4MGVlMDc0ZGU1MWU3MTRlZTQ4 ODQKLSAgICBSZXZpZXdlZC1vbjogaHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291cmNl LmNvbS9jL2Nocm9taXVtL3NyYy8rLzgyNDQyNDgKLSAgICBSZXZpZXdlZC1ieTogxYF1a2FzeiBB bmZvcm93aWN6IDxsdWthc3phQGNocm9taXVtLm9yZz4KLSAgICBDb21taXQtUXVldWU6IERvbWlu aWsgUsO2dHRzY2hlcyA8ZHJvdHRAY2hyb21pdW0ub3JnPgotICAgIENyLUNvbW1pdC1Qb3NpdGlv bjogcmVmcy9oZWFkcy9tYWluQHsjMTY3ODg1OH0KLQotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5 L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL0JVSUxELmduIGIvdGhpcmRfcGFydHkvYmxpbmsvcmVu ZGVyZXIvcGxhdGZvcm0vQlVJTEQuZ24KLWluZGV4IGQ1ZTgxYTNmMDdhM2MuLjZhNWQyNzU0NjAx MjIgMTAwNjQ0Ci0tLS0gYS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9CVUlM RC5nbgotKysrIGIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vQlVJTEQuZ24K LUBAIC0xODYsMTggKzE4Niw2IEBAIGdyb3VwKCJtYWtlX3BsYXRmb3JtX2dlbmVyYXRlZCIpIHsK Ky0tLSBhL2NvbXBvbmVudHMvY2Jvci9CVUlMRC5nbgorKysrIGIvY29tcG9uZW50cy9jYm9yL0JV SUxELmduCitAQCAtMTIsNyArMTIsNyBAQCBidWlsZGZsYWdfaGVhZGVyKCJidWlsZGZsYWdzIikg eworICAgIyBUT0RPKGNyYnVnLmNvbS81MzU2ODIzMzUpOiBSZW1vdmUgYFVTRV9DQk9SX1JVU1Rg IGJ1aWxkZmxhZyBlbnRpcmVseSwKKyAgICMgdW5jb25kaXRpb25hbGx5IGVuYWJsZSBSdXN0IENC T1IgcGFyc2VyLCBhbmQgZHJvcCBgaXNfY3JvbmV0X2J1aWxkYCBjaGVjaworICAgIyBvbmNlIENy b25ldCBzdXBwb3J0cyBDcnViaXQgZGVwZW5kZW5jaWVzLgorLSAgZmxhZ3MgPSBbICJVU0VfQ0JP Ul9SVVNUPSEkaXNfY3JvbmV0X2J1aWxkIiBdCisrICBmbGFncyA9IFsgIlVTRV9DQk9SX1JVU1Q9 JGVuYWJsZV9jcHBfYXBpX2Zyb21fcnVzdCIgXQorIH0KKyAKKyBjb21wb25lbnQoImNib3IiKSB7 CitAQCAtMzUsNyArMzUsNyBAQCBjb21wb25lbnQoImNib3IiKSB7CisgICAgICIvL2Jhc2UiLAor ICAgXQorIAorLSAgaWYgKCFpc19jcm9uZXRfYnVpbGQpIHsKKysgIGlmIChlbmFibGVfY3BwX2Fw aV9mcm9tX3J1c3QpIHsKKyAgICAgcHVibGljX2RlcHMgPSBbCisgICAgICAgIi8vYnVpbGQvcnVz dC9jcnViaXQiLAorICAgICAgICIvL2NvbXBvbmVudHMvY2Jvci9ydXN0OmNib3JfcnVzdF9iaW5k aW5ncyIsCitAQCAtNjIsNyArNjIsNyBAQCBzb3VyY2Vfc2V0KCJ1bml0X3Rlc3RzIikgeworICAg ICAiLy90ZXN0aW5nL2d0ZXN0IiwKKyAgICAgIi8vdGhpcmRfcGFydHkvZnV6enRlc3QiLAorICAg XQorLSAgaWYgKCFpc19jcm9uZXRfYnVpbGQpIHsKKysgIGlmIChlbmFibGVfY3BwX2FwaV9mcm9t X3J1c3QpIHsKKyAgICAgZGVwcyArPSBbICIvL2NvbXBvbmVudHMvY2Jvci9ydXN0OmNib3JfcnVz dF91bml0dGVzdHMiIF0KKyAgIH0KKyAKKy0tLSBhL2NvbXBvbmVudHMvd2ViX3BhY2thZ2UvQlVJ TEQuZ24KKysrKyBiL2NvbXBvbmVudHMvd2ViX3BhY2thZ2UvQlVJTEQuZ24KK0BAIC00MCw3ICs0 MCw2IEBAIHN0YXRpY19saWJyYXJ5KCJ3ZWJfcGFja2FnZSIpIHsKKyAgICAgIi8vYmFzZSIsCisg ICAgICIvL2NvbXBvbmVudHMvYmFzZTMyIiwKKyAgICAgIi8vY29tcG9uZW50cy9jYm9yIiwKKy0g ICAgIi8vY29tcG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvcnVzdDpzaWdu ZWRfd2ViX2J1bmRsZXNfcnVzdF9iaW5kaW5ncyIsCisgICAgICIvL21vam8vcHVibGljL2NwcC9i aW5kaW5ncyIsCisgICAgICIvL25ldCIsCisgICAgICIvL3NlcnZpY2VzL25ldHdvcmsvcHVibGlj L21vam9tIiwKK0BAIC03MCw3ICs2OSw2IEBAIHNvdXJjZV9zZXQoIm1vam9tX21hcHBlZF90eXBl cyIpIHsKKyAKKyAgIGRlcHMgPSBbCisgICAgICIvL2Jhc2UiLAorLSAgICAiLy9jb21wb25lbnRz L3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9ydXN0OnNpZ25lZF93ZWJfYnVuZGxlc19y dXN0X2JpbmRpbmdzIiwKKyAgICAgIi8vY3J5cHRvIiwKKyAgICAgIi8vbW9qby9wdWJsaWMvY3Bw L2JpbmRpbmdzIiwKICAgIF0KK0BAIC05OCw3ICs5Niw2IEBAIHNvdXJjZV9zZXQoInVuaXRfdGVz dHMiKSB7CisgICAgICI6d2ViX3BhY2thZ2UiLAorICAgICAiLy9iYXNlL3Rlc3Q6dGVzdF9zdXBw b3J0IiwKKyAgICAgIi8vY29tcG9uZW50cy9jYm9yIiwKKy0gICAgIi8vY29tcG9uZW50cy93ZWJf cGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvcnVzdDpzaWduZWRfd2ViX2J1bmRsZXNfcnVzdF91 bml0dGVzdHMiLAorICAgICAiLy9jb21wb25lbnRzL3dlYl9wYWNrYWdlL3Rlc3Rfc3VwcG9ydCIs CisgICAgICIvL21vam8vcHVibGljL2NwcC9iaW5kaW5ncyIsCisgICAgICIvL21vam8vcHVibGlj L2NwcC90ZXN0X3N1cHBvcnQ6dGVzdF91dGlscyIsCistLS0gYS9jb21wb25lbnRzL3dlYl9wYWNr YWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9lY2RzYV9wMjU2X3NoYTI1Nl9zaWduYXR1cmUuY2MKKysr KyBiL2NvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL2VjZHNhX3AyNTZf c2hhMjU2X3NpZ25hdHVyZS5jYworQEAgLTksNyArOSw4IEBACisgI2luY2x1ZGUgImJhc2Uvc3Ry aW5ncy9zdHJpbmdwcmludGYuaCIKKyAjaW5jbHVkZSAiYmFzZS90eXBlcy9leHBlY3RlZC5oIgor ICNpbmNsdWRlICJjb21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9lY2Rz YV9wMjU2X3B1YmxpY19rZXkuaCIKKy0jaW5jbHVkZSAiY29tcG9uZW50cy93ZWJfcGFja2FnZS9z aWduZWRfd2ViX2J1bmRsZXMvcnVzdC9zaWduZWRfd2ViX2J1bmRsZXNfcnVzdC5oIgorKyNpbmNs dWRlICJjcnlwdG8va2V5cGFpci5oIgorKyNpbmNsdWRlICJjcnlwdG8vc2lnbi5oIgorIAorIG5h bWVzcGFjZSB3ZWJfcGFja2FnZSB7CisgCitAQCAtNTAsOCArNTEsOSBAQCBFY2RzYVAyNTZTSEEy NTZTaWduYXR1cmU6OkVjZHNhUDI1NlNIQTI1CisgW1tub2Rpc2NhcmRdXSBib29sIEVjZHNhUDI1 NlNIQTI1NlNpZ25hdHVyZTo6VmVyaWZ5KAorICAgICBiYXNlOjpzcGFuPGNvbnN0IHVpbnQ4X3Q+ IG1lc3NhZ2UsCisgICAgIGNvbnN0IEVjZHNhUDI1NlB1YmxpY0tleSYgcHVibGljX2tleSkgY29u c3QgeworLSAgcmV0dXJuIHNpZ25lZF93ZWJfYnVuZGxlczo6cnVzdDo6dmVyaWZ5X2VjZHNhX3Ay NTZfc2lnbmF0dXJlKAorLSAgICAgIHB1YmxpY19rZXkuYnl0ZXMoKSwgYnl0ZXMoKSwgbWVzc2Fn ZSk7CisrICBhdXRvIGtleSA9IGNyeXB0bzo6a2V5cGFpcjo6UHVibGljS2V5OjpGcm9tRWNQMjU2 UG9pbnQocHVibGljX2tleS5ieXRlcygpKTsKKysgIHJldHVybiBjcnlwdG86OnNpZ246OlZlcmlm eShjcnlwdG86OnNpZ246OkVDRFNBX1NIQTI1NiwgKmtleSwgbWVzc2FnZSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBieXRlcygpKTsKICB9CiAgCi0tcnVzdF9zdGF0aWNfbGlicmFy eSgiZm9udF9mb3JtYXRfY2hlY2siKSB7Ci0tICBhbGxvd191bnNhZmUgPSB0cnVlICAjIE5lZWRl ZCBmb3IgRkZJIHRoYXQgdW5kZXJwaW5zIHRoZSBgY3h4YCBjcmF0ZS4KLS0gIGNyYXRlX3Jvb3Qg PSAiZm9udHMvb3BlbnR5cGUvZm9ybWF0X2NoZWNrLnJzIgotLSAgc291cmNlcyA9IFsgY3JhdGVf cm9vdCBdCi0tICBjeHhfYmluZGluZ3MgPSBbIGNyYXRlX3Jvb3QgXQotLSAgZGVwcyA9IFsKLS0g ICAgIi8vdGhpcmRfcGFydHkvcnVzdC9mb250X3R5cGVzL3YwXzEyOmxpYiIsCi0tICAgICIvL3Ro aXJkX3BhcnR5L3J1c3QvcmVhZF9mb250cy92MF80MTpsaWIiLAotLSAgICAiLy90aGlyZF9wYXJ0 eS9ydXN0L3NrcmlmYS92MF80NDpsaWIiLAotLSAgXQorIH0gIC8vIG5hbWVzcGFjZSB3ZWJfcGFj a2FnZQorLS0tIGEvY29tcG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvZWQy NTUxOV9zaWduYXR1cmUuY2MKKysrKyBiL2NvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dl Yl9idW5kbGVzL2VkMjU1MTlfc2lnbmF0dXJlLmNjCitAQCAtNyw3ICs3LDYgQEAKKyAjaW5jbHVk ZSA8YWxnb3JpdGhtPgorIAorICNpbmNsdWRlICJiYXNlL3N0cmluZ3Mvc3RyaW5ncHJpbnRmLmgi CistI2luY2x1ZGUgImNvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL3J1 c3Qvc2lnbmVkX3dlYl9idW5kbGVzX3J1c3QuaCIKKyAjaW5jbHVkZSAidGhpcmRfcGFydHkvYm9y aW5nc3NsL3NyYy9pbmNsdWRlL29wZW5zc2wvY3VydmUyNTUxOS5oIgorIAorIG5hbWVzcGFjZSB3 ZWJfcGFja2FnZSB7CitAQCAtNDMsOCArNDIsMTEgQEAgRWQyNTUxOVNpZ25hdHVyZTo6RWQyNTUx OVNpZ25hdHVyZShzdGQ6OgorIFtbbm9kaXNjYXJkXV0gYm9vbCBFZDI1NTE5U2lnbmF0dXJlOjpW ZXJpZnkoCisgICAgIGJhc2U6OnNwYW48Y29uc3QgdWludDhfdD4gbWVzc2FnZSwKKyAgICAgY29u c3QgRWQyNTUxOVB1YmxpY0tleSYgcHVibGljX2tleSkgY29uc3QgeworLSAgcmV0dXJuIHNpZ25l ZF93ZWJfYnVuZGxlczo6cnVzdDo6dmVyaWZ5X2VkMjU1MTlfc2lnbmF0dXJlKHB1YmxpY19rZXku Ynl0ZXMoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBieXRlcygpLCBtZXNzYWdlKTsKKysgIGNvbnN0IHN0ZDo6YXJyYXk8dWlu dDhfdCwgRUQyNTUxOV9QVUJMSUNfS0VZX0xFTj4mIHB1YmxpY19rZXlfYnl0ZXMgPQorKyAgICAg IHB1YmxpY19rZXkuYnl0ZXMoKTsKKysgIGNvbnN0IHN0ZDo6YXJyYXk8dWludDhfdCwgRUQyNTUx OV9TSUdOQVRVUkVfTEVOPiYgc2lnbmF0dXJlX2J5dGVzID0gYnl0ZXMoKTsKKysgIHJldHVybiBF RDI1NTE5X3ZlcmlmeShtZXNzYWdlLmRhdGEoKSwgbWVzc2FnZS5zaXplKCksIHNpZ25hdHVyZV9i eXRlcy5kYXRhKCksCisrICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljX2tleV9ieXRlcy5k YXRhKCkpOworIH0KKyAKKyB9ICAvLyBuYW1lc3BhY2Ugd2ViX3BhY2thZ2UKKy0tLSBhL2NvbXBv bmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL2ludGVncml0eV9ibG9ja19wYXJz ZXIuY2MKKysrKyBiL2NvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL2lu dGVncml0eV9ibG9ja19wYXJzZXIuY2MKK0BAIC00LDE3ICs0LDE5IEBACisgCisgI2luY2x1ZGUg ImNvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL2ludGVncml0eV9ibG9j a19wYXJzZXIuaCIKKyAKKysjaW5jbHVkZSA8YWxnb3JpdGhtPgorICNpbmNsdWRlIDxzdHJpbmc+ CistI2luY2x1ZGUgPHN0cmluZ192aWV3PgorICNpbmNsdWRlIDx2ZWN0b3I+CisgCistI2luY2x1 ZGUgImJhc2UvY2hlY2suaCIKKy0jaW5jbHVkZSAiYmFzZS9jb250YWluZXJzL3NwYW4uaCIKKysj aW5jbHVkZSAiYmFzZS9jb250YWluZXJzL21hcF91dGlsLmgiCisgI2luY2x1ZGUgImJhc2UvZnVu Y3Rpb25hbC9iaW5kLmgiCisgI2luY2x1ZGUgImJhc2Uvc3RyaW5ncy9zdHJpbmdwcmludGYuaCIK KysjaW5jbHVkZSAiYmFzZS9zdHJpbmdzL3RvX3N0cmluZy5oIgorICNpbmNsdWRlICJiYXNlL3R5 cGVzL2V4cGVjdGVkLmgiCisgI2luY2x1ZGUgImJhc2UvdHlwZXMvZXhwZWN0ZWRfbWFjcm9zLmgi CisgI2luY2x1ZGUgImNvbXBvbmVudHMvY2Jvci9yZWFkZXIuaCIKKysjaW5jbHVkZSAiY29tcG9u ZW50cy9jYm9yL3dyaXRlci5oIgorKyNpbmNsdWRlICJjb21wb25lbnRzL3dlYl9wYWNrYWdlL21v am9tL3dlYl9idW5kbGVfcGFyc2VyLm1vam9tLWZvcndhcmQuaCIKKyAjaW5jbHVkZSAiY29tcG9u ZW50cy93ZWJfcGFja2FnZS9tb2pvbS93ZWJfYnVuZGxlX3BhcnNlci5tb2pvbS5oIgorICNpbmNs dWRlICJjb21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9jb25zdGFudHMu aCIKKyAjaW5jbHVkZSAiY29tcG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMv ZWNkc2FfcDI1Nl9wdWJsaWNfa2V5LmgiCitAQCAtMjIsNTYgKzI0LDExIEBACisgI2luY2x1ZGUg ImNvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL2VkMjU1MTlfcHVibGlj X2tleS5oIgorICNpbmNsdWRlICJjb21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVu ZGxlcy9lZDI1NTE5X3NpZ25hdHVyZS5oIgorICNpbmNsdWRlICJjb21wb25lbnRzL3dlYl9wYWNr YWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9pbnRlZ3JpdHlfYmxvY2tfYXR0cmlidXRlcy5oIgorLSNp bmNsdWRlICJjb21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9ydXN0L3Np Z25lZF93ZWJfYnVuZGxlc19ydXN0LmgiCisgI2luY2x1ZGUgImNvbXBvbmVudHMvd2ViX3BhY2th Z2Uvc2lnbmVkX3dlYl9idW5kbGVzL3NpZ25lZF93ZWJfYnVuZGxlX2lkLmgiCisgI2luY2x1ZGUg ImNvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL3R5cGVzLmgiCisgCisg bmFtZXNwYWNlIHdlYl9wYWNrYWdlIHsKKyAKKy1uYW1lc3BhY2UgeworLQorLXVzaW5nIFNpZ25h dHVyZVR5cGUgPSBzaWduZWRfd2ViX2J1bmRsZXM6OnJ1c3Q6OlNpZ25hdHVyZVR5cGU6OlRhZzsK Ky11c2luZyBzaWduZWRfd2ViX2J1bmRsZXM6OnJ1c3Q6OnBhcnNlX2ludGVncml0eV9ibG9jazsK Ky0KKy1iYXNlOjpleHBlY3RlZDxtb2pvbTo6QnVuZGxlSW50ZWdyaXR5QmxvY2tTaWduYXR1cmVT dGFja0VudHJ5UHRyLCBzdGQ6OnN0cmluZz4KKy1DcmVhdGVTaWduYXR1cmVTdGFja0VudHJ5KAor LSAgICBjb25zdCBzaWduZWRfd2ViX2J1bmRsZXM6OnJ1c3Q6OlNpZ25hdHVyZVN0YWNrRW50cnkm IGVudHJ5KSB7CistICBhdXRvIHBhcnNlZF9zaWcgPSBtb2pvbTo6QnVuZGxlSW50ZWdyaXR5Qmxv Y2tTaWduYXR1cmVTdGFja0VudHJ5OjpOZXcoKTsKKy0KKy0gIHN3aXRjaCAoZW50cnkuc2lnbmF0 dXJlX3R5cGUudGFnKSB7CistICAgIGNhc2UgU2lnbmF0dXJlVHlwZTo6RWQyNTUxOTogeworLSAg ICAgIEFTU0lHTl9PUl9SRVRVUk4oYXV0byBwdWJsaWNfa2V5LAorLSAgICAgICAgICAgICAgICAg ICAgICAgRWQyNTUxOVB1YmxpY0tleTo6Q3JlYXRlKGVudHJ5LnB1YmxpY19rZXkudG9fc3Bhbigp KSk7CistICAgICAgQVNTSUdOX09SX1JFVFVSTihhdXRvIHNpZ25hdHVyZSwKKy0gICAgICAgICAg ICAgICAgICAgICAgIEVkMjU1MTlTaWduYXR1cmU6OkNyZWF0ZShlbnRyeS5zaWduYXR1cmUudG9f c3BhbigpKSk7CistICAgICAgcGFyc2VkX3NpZy0+c2lnbmF0dXJlX2luZm8gPSBtb2pvbTo6U2ln bmF0dXJlSW5mbzo6TmV3RWQyNTUxOSgKKy0gICAgICAgICAgbW9qb206OlNpZ25hdHVyZUluZm9F ZDI1NTE5OjpOZXcocHVibGljX2tleSwgc2lnbmF0dXJlKSk7CistICAgICAgYnJlYWs7CistICAg IH0KKy0gICAgY2FzZSBTaWduYXR1cmVUeXBlOjpFY2RzYVAyNTZTSEEyNTY6IHsKKy0gICAgICBB U1NJR05fT1JfUkVUVVJOKGF1dG8gcHVibGljX2tleSwKKy0gICAgICAgICAgICAgICAgICAgICAg IEVjZHNhUDI1NlB1YmxpY0tleTo6Q3JlYXRlKGVudHJ5LnB1YmxpY19rZXkudG9fc3BhbigpKSk7 CistICAgICAgQVNTSUdOX09SX1JFVFVSTihhdXRvIHNpZ25hdHVyZSwgRWNkc2FQMjU2U0hBMjU2 U2lnbmF0dXJlOjpDcmVhdGUoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGVudHJ5LnNpZ25hdHVyZS50b19zcGFuKCkpKTsKKy0gICAgICBwYXJzZWRfc2lnLT5z aWduYXR1cmVfaW5mbyA9IG1vam9tOjpTaWduYXR1cmVJbmZvOjpOZXdFY2RzYVAyNTZTaGEyNTYo CistICAgICAgICAgIG1vam9tOjpTaWduYXR1cmVJbmZvRWNkc2FQMjU2U0hBMjU2OjpOZXcocHVi bGljX2tleSwgc2lnbmF0dXJlKSk7CistICAgICAgYnJlYWs7CistICAgIH0KKy0gICAgY2FzZSBT aWduYXR1cmVUeXBlOjpVbmtub3duOiB7CistICAgICAgcGFyc2VkX3NpZy0+c2lnbmF0dXJlX2lu Zm8gPQorLSAgICAgICAgICBtb2pvbTo6U2lnbmF0dXJlSW5mbzo6TmV3VW5rbm93bihtb2pvbTo6 U2lnbmF0dXJlSW5mb1Vua25vd246Ok5ldygpKTsKKy0gICAgICBicmVhazsKKy0gICAgfQorLSAg fQorLQorLSAgcGFyc2VkX3NpZy0+YXR0cmlidXRlc19jYm9yID0KKy0gICAgICBCaW5hcnlEYXRh KGVudHJ5LmF0dHJpYnV0ZXNfY2Jvci5iZWdpbigpLCBlbnRyeS5hdHRyaWJ1dGVzX2Nib3IuZW5k KCkpOworLQorLSAgcmV0dXJuIHBhcnNlZF9zaWc7CiAtfQogLQorLX0gIC8vIG5hbWVzcGFjZQor LQorIEludGVncml0eUJsb2NrUGFyc2VyOjpJbnRlZ3JpdHlCbG9ja1BhcnNlcigKKyAgICAgbW9q b206OkJ1bmRsZURhdGFTb3VyY2UmIGRhdGFfc291cmNlLAorICAgICBXZWJCdW5kbGVQYXJzZXI6 OlBhcnNlSW50ZWdyaXR5QmxvY2tDYWxsYmFjayBjYWxsYmFjaykKK0BAIC0xMDMsMzcgKzYwLDEw MyBAQCB2b2lkIEludGVncml0eUJsb2NrUGFyc2VyOjpPbkludGVncml0eUJsCisgICAgIFJ1bkVy cm9yQ2FsbGJhY2soIkVycm9yIHJlYWRpbmcgdGhlIGludGVncml0eSBibG9jay4iKTsKKyAgICAg cmV0dXJuOworICAgfQorKyAgLy8gVGhpcyBzdHJ1Y3R1cmUgaXMgYnVpbHQgZHVyaW5nIHBhcnNp bmcgYW5kIHJldHVybmVkIGJ5IHRoZSBmaW5hbCBjYWxsYmFjaworKyAgbW9qb206OkJ1bmRsZUlu dGVncml0eUJsb2NrUHRyIGludGVncml0eV9ibG9jayA9CisrICAgICAgbW9qb206OkJ1bmRsZUlu dGVncml0eUJsb2NrOjpOZXcoKTsKKysKKysgIHNpemVfdCBjb25zdW1lZF9ieXRlcyA9IDA7Cisr ICBjYm9yOjpSZWFkZXI6OkRlY29kZXJFcnJvciBlcnJvcjsKKysgIGNib3I6OlJlYWRlcjo6Q29u ZmlnIGNvbmZpZzsKKysgIGNvbmZpZy5udW1fYnl0ZXNfY29uc3VtZWQgPSAmY29uc3VtZWRfYnl0 ZXM7CisrICBjb25maWcuZXJyb3JfY29kZV9vdXQgPSAmZXJyb3I7CisrCisrICAvLyBXaGVuIGNv bmZpZyBgYnl0ZXNfY29uc3VtZWRgIGFyZSBhc3NpZ25lZCB0aGUgQ0JPUiBwYXJzZXIgcmVhZHMg b25seSB0byB0aGUKKysgIC8vIGVuZCBvZiBhIHN0cnVjdHVyZS4gSXQgcGFyc2VzIG9ubHkgSW50 ZWdyaXR5IEJsb2NrIGV2ZW4gaWYgV2ViIEJ1bmRsZSBwYXJ0CisrICAvLyBzdGFydHMganVzdCBh ZnRlci4KKysgIHN0ZDo6b3B0aW9uYWw8Y2Jvcjo6VmFsdWU+IHZhbHVlID0gY2Jvcjo6UmVhZGVy OjpSZWFkKCpkYXRhLCBjb25maWcpOworKyAgaWYgKCF2YWx1ZSkgeworKyAgICBSdW5FcnJvckNh bGxiYWNrKCJFcnJvciBwYXJzaW5nIGludGVncml0eSBibG9jayBhcyBDQk9SOiAiICsKKysgICAg ICAgICAgICAgICAgICAgICBzdGQ6OnN0cmluZyhjYm9yOjpSZWFkZXI6OkVycm9yQ29kZVRvU3Ry aW5nKGVycm9yKSkpOworKyAgICByZXR1cm47CisrICB9CisrICBpbnRlZ3JpdHlfYmxvY2stPnNp emUgPSBjb25zdW1lZF9ieXRlczsKKysKKysgIGlmICghdmFsdWUtPmlzX2FycmF5KCkpIHsKKysg ICAgUnVuRXJyb3JDYWxsYmFjaygiSW50ZWdyaXR5IGJsb2NrIGlzIG5vdCBhIENCT1IgYXJyYXku Iik7CisrICAgIHJldHVybjsKKysgIH0KKyAKKy0gIGNvbnN0IGF1dG8gcGFyc2VfcmVzID0gcGFy c2VfaW50ZWdyaXR5X2Jsb2NrKCpkYXRhKTsKKy0gIGlmICghcGFyc2VfcmVzLmhhc192YWx1ZSgp KSB7CistICAgIGNvbnN0IGF1dG8mIGVycm9yID0gcGFyc2VfcmVzLmVycm9yKCk7CistICAgIFJ1 bkVycm9yQ2FsbGJhY2soc3RkOjpzdHJpbmcoZXJyb3IubWVzc2FnZS5hc19zdHIoKSksCistICAg ICAgICAgICAgICAgICAgICAgZXJyb3IuaXNfdmVyc2lvbl9lcnJvcgorLSAgICAgICAgICAgICAg ICAgICAgICAgICA/IG1vam9tOjpCdW5kbGVQYXJzZUVycm9yVHlwZTo6a1ZlcnNpb25FcnJvcgor LSAgICAgICAgICAgICAgICAgICAgICAgICA6IG1vam9tOjpCdW5kbGVQYXJzZUVycm9yVHlwZTo6 a0Zvcm1hdEVycm9yKTsKKysgIGNvbnN0IGNib3I6OlZhbHVlOjpBcnJheVZhbHVlJiB0b3BfYXJy YXkgPSB2YWx1ZS0+R2V0QXJyYXkoKTsKKysgIGlmICh0b3BfYXJyYXkuc2l6ZSgpICE9IGtJbnRl Z3JpdHlCbG9ja1YyVG9wTGV2ZWxBcnJheUxlbmd0aCkgeworKyAgICBSdW5FcnJvckNhbGxiYWNr KGJhc2U6OlN0cmluZ1ByaW50ZigKKysgICAgICAgICJJbnZhbGlkIGludGVncml0eSBibG9jayBh cnJheSBsZW5ndGg6IGV4cGVjdGVkICV1LCBnb3QgJXp1LiIsCisrICAgICAgICBrSW50ZWdyaXR5 QmxvY2tWMlRvcExldmVsQXJyYXlMZW5ndGgsIHRvcF9hcnJheS5zaXplKCkpKTsKKyAgICAgcmV0 dXJuOworICAgfQorIAorLSAgY29uc3QgYXV0byYgcGFyc2VkX2liID0gKnBhcnNlX3JlczsKKy0g IGF1dG8gaW50ZWdyaXR5X2Jsb2NrID0gbW9qb206OkJ1bmRsZUludGVncml0eUJsb2NrOjpOZXco KTsKKy0gIGludGVncml0eV9ibG9jay0+c2l6ZSA9IHBhcnNlZF9pYi5zaXplOworLQorLSAgY29u c3Qgc3RkOjpzdHJpbmdfdmlldyB3ZWJfYnVuZGxlX2lkX3N0ciA9CistICAgICAgcGFyc2VkX2li LndlYl9idW5kbGVfaWQudG9fc3RyaW5nX3ZpZXcoKTsKKy0gIFJFVFVSTl9JRl9FUlJPUigKKy0g ICAgICBTaWduZWRXZWJCdW5kbGVJZDo6Q3JlYXRlKHdlYl9idW5kbGVfaWRfc3RyKSwKKy0gICAg ICBbJl0oc3RkOjpzdHJpbmcgZXJyb3IpIHsgUnVuRXJyb3JDYWxsYmFjayhzdGQ6Om1vdmUoZXJy b3IpKTsgfSk7CistCistICBpbnRlZ3JpdHlfYmxvY2stPmF0dHJpYnV0ZXMgPQorLSAgICAgIElu dGVncml0eUJsb2NrQXR0cmlidXRlcyhzdGQ6OnN0cmluZyh3ZWJfYnVuZGxlX2lkX3N0ciksCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJpbmFyeURhdGEocGFyc2VkX2liLmF0dHJp YnV0ZXNfY2Jvci5iZWdpbigpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHBhcnNlZF9pYi5hdHRyaWJ1dGVzX2Nib3IuZW5kKCkpKTsKKysgIC8vIDEuIE1hZ2lj IGJ5dGVzCisrICBpZiAoIXRvcF9hcnJheVswXS5pc19ieXRlc3RyaW5nKCkgfHwKKysgICAgICAh c3RkOjpyYW5nZXM6OmVxdWFsKHRvcF9hcnJheVswXS5HZXRCeXRlc3RyaW5nKCksCisrICAgICAg ICAgICAgICAgICAgICAgICAgICBrSW50ZWdyaXR5QmxvY2tNYWdpY0J5dGVzKSkgeworKyAgICBS dW5FcnJvckNhbGxiYWNrKCJVbmV4cGVjdGVkIG1hZ2ljIGJ5dGVzLiIpOworKyAgICByZXR1cm47 CisrICB9CisrCisrICAvLyAyLiBWZXJzaW9uCisrICBpZiAoIXRvcF9hcnJheVsxXS5pc19ieXRl c3RyaW5nKCkgfHwKKysgICAgICAhc3RkOjpyYW5nZXM6OmVxdWFsKHRvcF9hcnJheVsxXS5HZXRC eXRlc3RyaW5nKCksCisrICAgICAgICAgICAgICAgICAgICAgICAgICBrSW50ZWdyaXR5QmxvY2tW MlZlcnNpb25CeXRlcykpIHsKKysgICAgUnVuRXJyb3JDYWxsYmFjaygiVW5leHBlY3RlZCB2ZXJz aW9uIGJ5dGVzLiIsCisrICAgICAgICAgICAgICAgICAgICAgbW9qb206OkJ1bmRsZVBhcnNlRXJy b3JUeXBlOjprVmVyc2lvbkVycm9yKTsKKysgICAgcmV0dXJuOworKyAgfQorIAorLSAgZm9yIChj b25zdCBhdXRvJiBlbnRyeSA6IHBhcnNlZF9pYi5zaWduYXR1cmVfc3RhY2spIHsKKysgIC8vIDMu IEF0dHJpYnV0ZXMKKysgIGlmICghdG9wX2FycmF5WzJdLmlzX21hcCgpKSB7CisrICAgIFJ1bkVy cm9yQ2FsbGJhY2soIkludGVncml0eSBibG9jayBhdHRyaWJ1dGVzIG11c3QgYmUgYSBtYXAuIik7 CisrICAgIHJldHVybjsKKysgIH0KKysgIGNvbnN0IGNib3I6OlZhbHVlOjpNYXBWYWx1ZSYgYXR0 cmlidXRlc19tYXAgPSB0b3BfYXJyYXlbMl0uR2V0TWFwKCk7CisrICBjb25zdCBjYm9yOjpWYWx1 ZSogd2ViX2J1bmRsZV9pZCA9CisrICAgICAgYmFzZTo6RmluZE9yTnVsbChhdHRyaWJ1dGVzX21h cCwgY2Jvcjo6VmFsdWUoa1dlYkJ1bmRsZUlkQXR0cmlidXRlTmFtZSkpOworKyAgaWYgKCF3ZWJf YnVuZGxlX2lkIHx8ICF3ZWJfYnVuZGxlX2lkLT5pc19zdHJpbmcoKSkgeworKyAgICBSdW5FcnJv ckNhbGxiYWNrKAorKyAgICAgICAgImB3ZWJCdW5kbGVJZGAgaW50ZWdyaXR5IGJsb2NrIGF0dHJp YnV0ZSBpcyBtaXNzaW5nIG9yIG1hbGZvcm1lZC4iKTsKKysgICAgcmV0dXJuOworKyAgfQorKwor KyAgLy8gQ2hlY2sgaWYgd2ViX2J1bmRsZV9pZCBpcyBjb3JyZWN0CisrICBSRVRVUk5fSUZfRVJS T1IoU2lnbmVkV2ViQnVuZGxlSWQ6OkNyZWF0ZSh3ZWJfYnVuZGxlX2lkLT5HZXRTdHJpbmcoKSks CisrICAgICAgICAgICAgICAgICAgWyZdKGNvbnN0IHN0ZDo6c3RyaW5nJiBlcnJvcikgeyBSdW5F cnJvckNhbGxiYWNrKGVycm9yKTsgfSk7CisrCisrICBCaW5hcnlEYXRhIGF0dHJpYnV0ZXNfY2Jv ciA9ICpjYm9yOjpXcml0ZXI6OldyaXRlKHRvcF9hcnJheVsyXSk7CisrICBpbnRlZ3JpdHlfYmxv Y2stPmF0dHJpYnV0ZXMgPSBJbnRlZ3JpdHlCbG9ja0F0dHJpYnV0ZXMoCisrICAgICAgd2ViX2J1 bmRsZV9pZC0+R2V0U3RyaW5nKCksIHN0ZDo6bW92ZShhdHRyaWJ1dGVzX2Nib3IpKTsKKysKKysg IC8vIDQuIFNpZ25hdHVyZSBTdGFjaworKyAgaWYgKCF0b3BfYXJyYXlbM10uaXNfYXJyYXkoKSkg eworKyAgICBSdW5FcnJvckNhbGxiYWNrKCJTaWduYXR1cmUgc3RhY2sgbXVzdCBiZSBhbiBhcnJh eS4iKTsKKysgICAgcmV0dXJuOworKyAgfQorKyAgY29uc3QgY2Jvcjo6VmFsdWU6OkFycmF5VmFs dWUmIHNpZ25hdHVyZXMgPSB0b3BfYXJyYXlbM10uR2V0QXJyYXkoKTsKKysgIGlmIChzaWduYXR1 cmVzLmVtcHR5KCkpIHsKKysgICAgUnVuRXJyb3JDYWxsYmFjaygKKysgICAgICAgICJUaGUgc2ln bmF0dXJlIHN0YWNrIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgc2lnbmF0dXJlLiIpOworKyAg ICByZXR1cm47CisrICB9CisrCisrICBmb3IgKGNvbnN0IGF1dG8mIHNpZ25hdHVyZV9pbmZvX3Jh dyA6IHNpZ25hdHVyZXMpIHsKKyAgICAgQVNTSUdOX09SX1JFVFVSTigKKy0gICAgICAgIGF1dG8g cGFyc2VkX3NpZywgQ3JlYXRlU2lnbmF0dXJlU3RhY2tFbnRyeShlbnRyeSksCistICAgICAgICBb Jl0oc3RkOjpzdHJpbmcgZXJyb3IpIHsgUnVuRXJyb3JDYWxsYmFjayhzdGQ6Om1vdmUoZXJyb3Ip KTsgfSk7CistICAgIGludGVncml0eV9ibG9jay0+c2lnbmF0dXJlX3N0YWNrLnB1c2hfYmFjayhz dGQ6Om1vdmUocGFyc2VkX3NpZykpOworKyAgICAgICAgYXV0byBwYXJzZWRfc2lnbmF0dXJlX2lu Zm8sIFBhcnNlU2lnbmF0dXJlSW5mbyhzaWduYXR1cmVfaW5mb19yYXcpLAorKyAgICAgICAgWyZd KGNvbnN0IHN0ZDo6c3RyaW5nJiBlcnJvcikgeyB0aGlzLT5SdW5FcnJvckNhbGxiYWNrKGVycm9y KTsgfSk7CisrCisrICAgIGlmIChpbnRlZ3JpdHlfYmxvY2stPnNpZ25hdHVyZV9zdGFjay5lbXB0 eSgpICYmCisrICAgICAgICBwYXJzZWRfc2lnbmF0dXJlX2luZm8tPnNpZ25hdHVyZV9pbmZvLT5p c191bmtub3duKCkpIHsKKysgICAgICBSdW5FcnJvckNhbGxiYWNrKCJVbmtub3duIGNpcGhlciB0 eXBlIG9mIHRoZSBmaXJzdCBzaWduYXR1cmUuIik7CisrICAgICAgcmV0dXJuOworKyAgICB9Cisr ICAgIGludGVncml0eV9ibG9jay0+c2lnbmF0dXJlX3N0YWNrLnB1c2hfYmFjaygKKysgICAgICAg IHN0ZDo6bW92ZShwYXJzZWRfc2lnbmF0dXJlX2luZm8pKTsKKyAgIH0KKyAKKyAgIHN0ZDo6bW92 ZShjb21wbGV0ZV9jYWxsYmFja18pCitAQCAtMTQxLDEzICsxNjQsNzQgQEAgdm9pZCBJbnRlZ3Jp dHlCbG9ja1BhcnNlcjo6T25JbnRlZ3JpdHlCbAorICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RkOjptb3ZlKGludGVncml0eV9ibG9jayksIG51bGxwdHIpKTsKKyB9CisgCisrYmFzZTo6ZXhw ZWN0ZWQ8bW9qb206OkJ1bmRsZUludGVncml0eUJsb2NrU2lnbmF0dXJlU3RhY2tFbnRyeVB0ciwg c3RkOjpzdHJpbmc+CisrSW50ZWdyaXR5QmxvY2tQYXJzZXI6OlBhcnNlU2lnbmF0dXJlSW5mbygK KysgICAgY29uc3QgY2Jvcjo6VmFsdWUmIHNpZ25hdHVyZV9pbmZvX3JhdykgeworKyAgaWYgKCFz aWduYXR1cmVfaW5mb19yYXcuaXNfYXJyYXkoKSB8fAorKyAgICAgIHNpZ25hdHVyZV9pbmZvX3Jh dy5HZXRBcnJheSgpLnNpemUoKSAhPSAyKSB7CisrICAgIHJldHVybiBiYXNlOjp1bmV4cGVjdGVk KAorKyAgICAgICAgIkVhY2ggc2lnbmF0dXJlIHN0YWNrIGVudHJ5IG11c3QgY29udGFpbiBleGFj dGx5IHR3byBlbGVtZW50cy4iKTsKKysgIH0KKysKKysgIGNvbnN0IGNib3I6OlZhbHVlOjpBcnJh eVZhbHVlJiBzaWduYXR1cmVfaW5mb19hcnJheSA9CisrICAgICAgc2lnbmF0dXJlX2luZm9fcmF3 LkdldEFycmF5KCk7CisrICBpZiAoIXNpZ25hdHVyZV9pbmZvX2FycmF5WzBdLmlzX21hcCgpIHx8 CisrICAgICAgIXNpZ25hdHVyZV9pbmZvX2FycmF5WzFdLmlzX2J5dGVzdHJpbmcoKSkgeworKyAg ICByZXR1cm4gYmFzZTo6dW5leHBlY3RlZCgiTWFsZm9ybWVkIHNpZ25hdHVyZSBzdGFjayBlbnRy eS4iKTsKKysgIH0KKysKKysgIG1vam9tOjpCdW5kbGVJbnRlZ3JpdHlCbG9ja1NpZ25hdHVyZVN0 YWNrRW50cnlQdHIgcGFyc2VkX3NpZ25hdHVyZV9pbmZvID0KKysgICAgICBtb2pvbTo6QnVuZGxl SW50ZWdyaXR5QmxvY2tTaWduYXR1cmVTdGFja0VudHJ5OjpOZXcoKTsKKysgIHBhcnNlZF9zaWdu YXR1cmVfaW5mby0+YXR0cmlidXRlc19jYm9yID0KKysgICAgICAqY2Jvcjo6V3JpdGVyOjpXcml0 ZShzaWduYXR1cmVfaW5mb19hcnJheVswXSk7CisrCisrICBjb25zdCBjYm9yOjpWYWx1ZTo6TWFw VmFsdWUmIHNpZ25hdHVyZV9hdHRyaWJ1dGVzID0KKysgICAgICBzaWduYXR1cmVfaW5mb19hcnJh eVswXS5HZXRNYXAoKTsKKysgIGNvbnN0IEJpbmFyeURhdGEmIHNpZ25hdHVyZV9ieXRlcyA9IHNp Z25hdHVyZV9pbmZvX2FycmF5WzFdLkdldEJ5dGVzdHJpbmcoKTsKKysKKysgIGNvbnN0IGNib3I6 OlZhbHVlKiBlZDI1NTE5X2tleSA9IGJhc2U6OkZpbmRPck51bGwoCisrICAgICAgc2lnbmF0dXJl X2F0dHJpYnV0ZXMsIGNib3I6OlZhbHVlKGtFZDI1NTE5UHVibGljS2V5QXR0cmlidXRlTmFtZSkp OworKyAgY29uc3QgY2Jvcjo6VmFsdWUqIGVjZHNhX2tleSA9IGJhc2U6OkZpbmRPck51bGwoCisr ICAgICAgc2lnbmF0dXJlX2F0dHJpYnV0ZXMsIGNib3I6OlZhbHVlKGtFY2RzYVAyNTZQdWJsaWNL ZXlBdHRyaWJ1dGVOYW1lKSk7CisrCisrICBpZiAoZWQyNTUxOV9rZXkgJiYgZWNkc2Ffa2V5KSB7 CisrICAgIHJldHVybiBiYXNlOjp1bmV4cGVjdGVkKCJNdWx0aXBsZSBrZXkgdHlwZXMgZm9yIG9u ZSBzaWduYXR1cmUuIik7CisrICB9IGVsc2UgaWYgKGVkMjU1MTlfa2V5ICYmICFlZDI1NTE5X2tl eS0+aXNfYnl0ZXN0cmluZygpKSB7CisrICAgIHJldHVybiBiYXNlOjp1bmV4cGVjdGVkKCJJbnZh bGlkIEVEMjU1MTkga2V5LiIpOworKyAgfSBlbHNlIGlmIChlY2RzYV9rZXkgJiYgIWVjZHNhX2tl eS0+aXNfYnl0ZXN0cmluZygpKSB7CisrICAgIHJldHVybiBiYXNlOjp1bmV4cGVjdGVkKCJJbnZh bGlkIEVDRFNBIGtleS4iKTsKKysKKysgIH0gZWxzZSBpZiAoZWQyNTUxOV9rZXkgJiYgZWQyNTUx OV9rZXktPmlzX2J5dGVzdHJpbmcoKSkgeworKyAgICBBU1NJR05fT1JfUkVUVVJOKGF1dG8gcHVi bGljX2tleSwKKysgICAgICAgICAgICAgICAgICAgICBFZDI1NTE5UHVibGljS2V5OjpDcmVhdGUo ZWQyNTUxOV9rZXktPkdldEJ5dGVzdHJpbmcoKSkpOworKyAgICBBU1NJR05fT1JfUkVUVVJOKGF1 dG8gc2lnbmF0dXJlLCBFZDI1NTE5U2lnbmF0dXJlOjpDcmVhdGUoc2lnbmF0dXJlX2J5dGVzKSk7 CisrICAgIHBhcnNlZF9zaWduYXR1cmVfaW5mby0+c2lnbmF0dXJlX2luZm8gPSBtb2pvbTo6U2ln bmF0dXJlSW5mbzo6TmV3RWQyNTUxOSgKKysgICAgICAgIG1vam9tOjpTaWduYXR1cmVJbmZvRWQy NTUxOTo6TmV3KHB1YmxpY19rZXksIHNpZ25hdHVyZSkpOworKworKyAgfSBlbHNlIGlmIChlY2Rz YV9rZXkgJiYgZWNkc2Ffa2V5LT5pc19ieXRlc3RyaW5nKCkpIHsKKysgICAgQVNTSUdOX09SX1JF VFVSTihhdXRvIHB1YmxpY19rZXksCisrICAgICAgICAgICAgICAgICAgICAgRWNkc2FQMjU2UHVi bGljS2V5OjpDcmVhdGUoZWNkc2Ffa2V5LT5HZXRCeXRlc3RyaW5nKCkpKTsKKysgICAgQVNTSUdO X09SX1JFVFVSTihhdXRvIHNpZ25hdHVyZSwKKysgICAgICAgICAgICAgICAgICAgICBFY2RzYVAy NTZTSEEyNTZTaWduYXR1cmU6OkNyZWF0ZShzaWduYXR1cmVfYnl0ZXMpKTsKKysgICAgcGFyc2Vk X3NpZ25hdHVyZV9pbmZvLT5zaWduYXR1cmVfaW5mbyA9CisrICAgICAgICBtb2pvbTo6U2lnbmF0 dXJlSW5mbzo6TmV3RWNkc2FQMjU2U2hhMjU2KAorKyAgICAgICAgICAgIG1vam9tOjpTaWduYXR1 cmVJbmZvRWNkc2FQMjU2U0hBMjU2OjpOZXcocHVibGljX2tleSwgc2lnbmF0dXJlKSk7CisrCisr ICB9IGVsc2UgeworKyAgICBwYXJzZWRfc2lnbmF0dXJlX2luZm8tPnNpZ25hdHVyZV9pbmZvID0K KysgICAgICAgIG1vam9tOjpTaWduYXR1cmVJbmZvOjpOZXdVbmtub3duKG1vam9tOjpTaWduYXR1 cmVJbmZvVW5rbm93bjo6TmV3KCkpOworKyAgfQorKworKyAgcmV0dXJuIHBhcnNlZF9zaWduYXR1 cmVfaW5mbzsKKyt9CisrCisgdm9pZCBJbnRlZ3JpdHlCbG9ja1BhcnNlcjo6UnVuRXJyb3JDYWxs YmFjaygKKy0gICAgc3RkOjpzdHJpbmcgbWVzc2FnZSwKKysgICAgY29uc3Qgc3RkOjpzdHJpbmcm IG1lc3NhZ2UsCisgICAgIG1vam9tOjpCdW5kbGVQYXJzZUVycm9yVHlwZSBlcnJvcl90eXBlKSB7 CisgICBzdGQ6Om1vdmUoY29tcGxldGVfY2FsbGJhY2tfKQorLSAgICAgIC5SdW4oYmFzZTo6Qmlu ZE9uY2Uoc3RkOjptb3ZlKHJlc3VsdF9jYWxsYmFja18pLCBudWxscHRyLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgbW9qb206OkJ1bmRsZUludGVncml0eUJsb2NrUGFyc2VFcnJvcjo6TmV3 KAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX3R5cGUsIHN0ZDo6bW92ZSht ZXNzYWdlKSkpKTsKKysgICAgICAuUnVuKGJhc2U6OkJpbmRPbmNlKAorKyAgICAgICAgICBzdGQ6 Om1vdmUocmVzdWx0X2NhbGxiYWNrXyksIG51bGxwdHIsCisrICAgICAgICAgIG1vam9tOjpCdW5k bGVJbnRlZ3JpdHlCbG9ja1BhcnNlRXJyb3I6Ok5ldyhlcnJvcl90eXBlLCBtZXNzYWdlKSkpOwor IH0KKyAKKyB9ICAvLyBuYW1lc3BhY2Ugd2ViX3BhY2thZ2UKKy0tLSBhL2NvbXBvbmVudHMvd2Vi X3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL2ludGVncml0eV9ibG9ja19wYXJzZXIuaAorKysr IGIvY29tcG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvaW50ZWdyaXR5X2Js b2NrX3BhcnNlci5oCitAQCAtNSwxMyArNSw4IEBACisgI2lmbmRlZiBDT01QT05FTlRTX1dFQl9Q QUNLQUdFX1NJR05FRF9XRUJfQlVORExFU19JTlRFR1JJVFlfQkxPQ0tfUEFSU0VSX0hfCisgI2Rl ZmluZSBDT01QT05FTlRTX1dFQl9QQUNLQUdFX1NJR05FRF9XRUJfQlVORExFU19JTlRFR1JJVFlf QkxPQ0tfUEFSU0VSX0hfCisgCistI2luY2x1ZGUgPG9wdGlvbmFsPgorLSNpbmNsdWRlIDxzdHJp bmc+CistCistI2luY2x1ZGUgImJhc2UvY29tcGlsZXJfc3BlY2lmaWMuaCIKKy0jaW5jbHVkZSAi YmFzZS9tZW1vcnkvcmF3X3JlZi5oIgorLSNpbmNsdWRlICJiYXNlL21lbW9yeS93ZWFrX3B0ci5o IgorICNpbmNsdWRlICJjb21wb25lbnRzL3dlYl9wYWNrYWdlL21vam9tL3dlYl9idW5kbGVfcGFy c2VyLm1vam9tLWZvcndhcmQuaCIKKysjaW5jbHVkZSAiY29tcG9uZW50cy93ZWJfcGFja2FnZS9z aWduZWRfd2ViX2J1bmRsZXMvaW50ZWdyaXR5X2Jsb2NrX2F0dHJpYnV0ZXMuaCIKKyAjaW5jbHVk ZSAiY29tcG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvdHlwZXMuaCIKKyAj aW5jbHVkZSAiY29tcG9uZW50cy93ZWJfcGFja2FnZS93ZWJfYnVuZGxlX3BhcnNlci5oIgorIAor QEAgLTIwLDcgKzE1LDcgQEAgbmFtZXNwYWNlIHdlYl9wYWNrYWdlIHsKKyBjbGFzcyBJbnRlZ3Jp dHlCbG9ja1BhcnNlciA6IHB1YmxpYyBXZWJCdW5kbGVQYXJzZXI6OldlYkJ1bmRsZVNlY3Rpb25Q YXJzZXIgeworICBwdWJsaWM6CisgICBleHBsaWNpdCBJbnRlZ3JpdHlCbG9ja1BhcnNlcigKKy0g ICAgICBtb2pvbTo6QnVuZGxlRGF0YVNvdXJjZSYgZGF0YV9zb3VyY2UgTElGRVRJTUVfQk9VTkQs CisrICAgICAgbW9qb206OkJ1bmRsZURhdGFTb3VyY2UmIGRhdGFfc291cmNlLAorICAgICAgIFdl YkJ1bmRsZVBhcnNlcjo6UGFyc2VJbnRlZ3JpdHlCbG9ja0NhbGxiYWNrIGNhbGxiYWNrKTsKKyAK KyAgIEludGVncml0eUJsb2NrUGFyc2VyKGNvbnN0IEludGVncml0eUJsb2NrUGFyc2VyJikgPSBk ZWxldGU7CitAQCAtMzUsNyArMzAsMTAgQEAgY2xhc3MgSW50ZWdyaXR5QmxvY2tQYXJzZXIgOiBw dWJsaWMgV2ViQgorICBwcml2YXRlOgorICAgdm9pZCBPbkludGVncml0eUJsb2NrUmVhZChjb25z dCBzdGQ6Om9wdGlvbmFsPEJpbmFyeURhdGE+JiBkYXRhKTsKKyAKKy0gIHZvaWQgUnVuRXJyb3JD YWxsYmFjayhzdGQ6OnN0cmluZyBtZXNzYWdlLAorKyAgYmFzZTo6ZXhwZWN0ZWQ8bW9qb206OkJ1 bmRsZUludGVncml0eUJsb2NrU2lnbmF0dXJlU3RhY2tFbnRyeVB0ciwgc3RkOjpzdHJpbmc+Cisr ICBQYXJzZVNpZ25hdHVyZUluZm8oY29uc3QgY2Jvcjo6VmFsdWUmIGF0dHJpYnV0ZXNfbWFwKTsK KysKKysgIHZvaWQgUnVuRXJyb3JDYWxsYmFjayhjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICBtb2pvbTo6QnVuZGxlUGFyc2VFcnJvclR5cGUgZXJy b3JfdHlwZSA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vam9tOjpCdW5kbGVQYXJz ZUVycm9yVHlwZTo6a0Zvcm1hdEVycm9yKTsKKyAKKy0tLSBhL2NvbXBvbmVudHMvd2ViX3BhY2th Z2Uvc2lnbmVkX3dlYl9idW5kbGVzL3J1c3QvQlVJTEQuZ24KKysrKyBiL2NvbXBvbmVudHMvd2Vi X3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL3J1c3QvQlVJTEQuZ24KK0BAIC0xMCw3ICsxMCw2 IEBAIHJ1c3Rfc3RhdGljX2xpYnJhcnkoInNpZ25lZF93ZWJfYnVuZGxlc18KKyAgIHNvdXJjZXMg PSBbCisgICAgICJjb25zdGFudHMucnMiLAorICAgICAiaW50ZWdyaXR5X2Jsb2NrLnJzIiwKKy0g ICAgInNpZ25hdHVyZV92ZXJpZmllci5ycyIsCisgICAgICJ0eXBlcy5ycyIsCisgICAgIGNyYXRl X3Jvb3QsCisgICBdCistLS0gYS9jb21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVu ZGxlcy9zaWduZWRfd2ViX2J1bmRsZV9zaWduYXR1cmVfdmVyaWZpZXIuY2MKKysrKyBiL2NvbXBv bmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL3NpZ25lZF93ZWJfYnVuZGxlX3Np Z25hdHVyZV92ZXJpZmllci5jYworQEAgLTIwLDE0ICsyMCwxNyBAQAorICNpbmNsdWRlICJiYXNl L3Rhc2svdGhyZWFkX3Bvb2wuaCIKKyAjaW5jbHVkZSAiYmFzZS90eXBlcy9leHBlY3RlZC5oIgor ICNpbmNsdWRlICJiYXNlL3R5cGVzL2V4cGVjdGVkX21hY3Jvcy5oIgorKyNpbmNsdWRlICJjb21w b25lbnRzL2Nib3IvdmFsdWVzLmgiCisrI2luY2x1ZGUgImNvbXBvbmVudHMvY2Jvci93cml0ZXIu aCIKKysjaW5jbHVkZSAiY29tcG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMv Y29uc3RhbnRzLmgiCisgI2luY2x1ZGUgImNvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dl Yl9idW5kbGVzL2lkZW50aXR5X3ZhbGlkYXRvci5oIgorICNpbmNsdWRlICJjb21wb25lbnRzL3dl Yl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9pbnRlZ3JpdHlfYmxvY2tfcGFyc2VyLmgiCist I2luY2x1ZGUgImNvbXBvbmVudHMvd2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL3J1c3Qv c2lnbmVkX3dlYl9idW5kbGVzX3J1c3QuaCIKKyAjaW5jbHVkZSAiY29tcG9uZW50cy93ZWJfcGFj a2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvc2lnbmVkX3dlYl9idW5kbGVfaWQuaCIKKyAjaW5jbHVk ZSAiY29tcG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvc2lnbmVkX3dlYl9i dW5kbGVfaW50ZWdyaXR5X2Jsb2NrLmgiCisgI2luY2x1ZGUgImNvbXBvbmVudHMvd2ViX3BhY2th Z2Uvc2lnbmVkX3dlYl9idW5kbGVzL3NpZ25lZF93ZWJfYnVuZGxlX3NpZ25hdHVyZV9zdGFjay5o IgorICNpbmNsdWRlICJjb21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9z aWduZWRfd2ViX2J1bmRsZV9zaWduYXR1cmVfc3RhY2tfZW50cnkuaCIKKyAjaW5jbHVkZSAiY29t cG9uZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvc2lnbmVkX3dlYl9idW5kbGVf dXRpbHMuaCIKKysjaW5jbHVkZSAiY3J5cHRvL2hhc2guaCIKKyAjaW5jbHVkZSAidGhpcmRfcGFy dHkvYWJzZWlsLWNwcC9hYnNsL2Z1bmN0aW9uYWwvb3ZlcmxvYWQuaCIKKyAjaW5jbHVkZSAidGhp cmRfcGFydHkvYm9yaW5nc3NsL3NyYy9pbmNsdWRlL29wZW5zc2wvc2hhLmgiCisgCitAQCAtMzcs MTAgKzQwLDMyIEBAIG5hbWVzcGFjZSB7CisgCisgc3RkOjp2ZWN0b3I8dWludDhfdD4gQ3JlYXRl SW50ZWdyaXR5QmxvY2tDYm9yKAorICAgICBjb25zdCBTaWduZWRXZWJCdW5kbGVJbnRlZ3JpdHlC bG9jayYgaW50ZWdyaXR5X2Jsb2NrKSB7CistICBhdXRvIGliX2Nib3JfcnVzdCA9CistICAgICAg c2lnbmVkX3dlYl9idW5kbGVzOjpydXN0OjpjcmVhdGVfZW1wdHlfaW50ZWdyaXR5X2Jsb2NrX2Ni b3IoCistICAgICAgICAgIGludGVncml0eV9ibG9jay5hdHRyaWJ1dGVzX2Nib3IoKSk7CistICBy ZXR1cm4gc3RkOjp2ZWN0b3I8dWludDhfdD4oaWJfY2Jvcl9ydXN0LmJlZ2luKCksIGliX2Nib3Jf cnVzdC5lbmQoKSk7CisrICAvLyBUaGlzIGZ1bmN0aW9uIGxvb2tzIGxpa2UgaXQgc2hvdWxkIHVz ZSBhIGNib3I6OlZhbHVlOjpBcnJheVZhbHVlIHRvIGJ1aWxkCisrICAvLyB0aGUgb3V0ZXIgYXJy YXksIGJ1dCBpdCBjYW4ndDogb25lIG9mIHRoZSBlbGVtZW50cyBpcyBhIHByZS1lbmNvZGVkIENC T1IKKysgIC8vIHZhbHVlIHdoaWNoIHdlIGNhbid0IHNhZmVseSBkZWNvZGUgYmVjYXVzZSBpdCdz IHVudHJ1c3RlZCBpbnB1dC4gVGhpcyBpcworKyAgLy8gb2J2aW91c2x5IHVuZGVzaXJhYmxlLCBi ZWNhdXNlIHRoZXJlJ3Mgbm8gZ3VhcmFudGVlIGF0IGFsbCB0aGF0IHRoZQorKyAgLy8gcHJlLWVu Y29kZWQgdmFsdWUgaXMgYWN0dWFsbHkgdmFsaWQgQ0JPUi4KKysgIC8vCisrICAvLyBUT0RPKGh0 dHBzOi8vY3JidWcuY29tLzQ1NDQ4NTkwMSk6IG9uY2UgdGhlcmUncyBhIG1lbW9yeS1zYWZlIENC T1IgcGFyc2VyLAorKyAgLy8gcmUtcGFyc2UgdGhlIHByZS1lbmNvZGVkIHZhbHVlLCB0aGVuIHJl LWVuY29kZSBpdCBoZXJlIGluc3RlYWQgb2YKKysgIC8vIGNvbnN0cnVjdGluZyBhIENCT1IgYXJy YXkgYnkgaGFuZCBzbyB0aGF0IHdlJ3JlIGd1YXJhbnRlZWQgdGhhdCB0aGUgcmVzdWx0CisrICAv LyBvZiB0aGlzIGZ1bmN0aW9uIGlzIHZhbGlkLgorKyAgc3RkOjp2ZWN0b3I8dWludDhfdD4gaWJf Y2JvcjsKKysKKysgIC8vIDB4ODQgaXMgdGhlIGVuY29kaW5nIGJ5dGUgZm9yIGFuIGFycmF5IG9m IGxlbmd0aCA0LgorKyAgaWJfY2Jvci5wdXNoX2JhY2soMHg4NCk7CisrICBiYXNlOjpFeHRlbmQo aWJfY2JvciwKKysgICAgICAgICAgICAgICAqY2Jvcjo6V3JpdGVyOjpXcml0ZShjYm9yOjpWYWx1 ZShrSW50ZWdyaXR5QmxvY2tNYWdpY0J5dGVzKSkpOworKyAgYmFzZTo6RXh0ZW5kKGliX2Nib3Is ICpjYm9yOjpXcml0ZXI6OldyaXRlKAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYm9y OjpWYWx1ZShrSW50ZWdyaXR5QmxvY2tWMlZlcnNpb25CeXRlcykpKTsKKysgIC8vIFdlIGNhbm5v dCBwYXJzZSBgYXR0cmlidXRlcygpLmNib3IoKWAgYmFjayB0byBhIGNib3I6OlZhbHVlIGFzIHRo ZXkKKysgIC8vIHRlY2huaWNhbGx5IHJlcHJlc2VudCB1bnRydXN0ZWQgaW5wdXQuCisrICBiYXNl OjpFeHRlbmQoaWJfY2JvciwgaW50ZWdyaXR5X2Jsb2NrLmF0dHJpYnV0ZXNfY2JvcigpKTsKKysg IC8vIEVuY29kZSBhbiBlbXB0eSBzaWduYXR1cmUgYXJyYXkuCisrICBiYXNlOjpFeHRlbmQoaWJf Y2JvciwKKysgICAgICAgICAgICAgICAqY2Jvcjo6V3JpdGVyOjpXcml0ZShjYm9yOjpWYWx1ZShj Ym9yOjpWYWx1ZTo6QXJyYXlWYWx1ZSgpKSkpOworKworKyAgcmV0dXJuIGliX2Nib3I7CisgfQor IAorIGJhc2U6OmV4cGVjdGVkPHZvaWQsIFNpZ25lZFdlYkJ1bmRsZVNpZ25hdHVyZVZlcmlmaWVy OjpFcnJvcj4KK0BAIC0xMDQsNyArMTI5LDcgQEAgU2lnbmVkV2ViQnVuZGxlU2lnbmF0dXJlVmVy aWZpZXI6OkNhbGN1bAorICAgICByZXR1cm4gYmFzZTo6dW5leHBlY3RlZChiYXNlOjpGaWxlOjpF cnJvclRvU3RyaW5nKGZpbGUuR2V0TGFzdEZpbGVFcnJvcigpKSk7CisgICB9CisgCistICBzaWdu ZWRfd2ViX2J1bmRsZXM6OnJ1c3Q6OlNoYTUxMkhhc2hlciBoYXNoZXI7CisrICBjcnlwdG86Omhh c2g6Okhhc2hlciBoYXNoKGNyeXB0bzo6aGFzaDo6a1NoYTUxMik7CisgCisgICAvLyBDYWxjdWxh dGUgdGhlIGhhc2ggb2YgdGhlIFNpZ25lZCBXZWIgQnVuZGxlIGV4Y2x1ZGluZyBpdHMgaW50ZWdy aXR5IGJsb2NrLgorICAgLy8gVGhlIGZpbGUgbWlnaHQgYmUgdG9vIGJpZyB0byByZWFkIGl0IGlu dG8gbWVtb3J5IGFsbCBhdCBvbmNlLCB3aGljaCBpcyB3aHkKK0BAIC0xMjEsMTQgKzE0NiwxNSBA QCBTaWduZWRXZWJCdW5kbGVTaWduYXR1cmVWZXJpZmllcjo6Q2FsY3VsCisgICAgICAgICAgIGJh c2U6OkZpbGU6OkVycm9yVG9TdHJpbmcoZmlsZS5HZXRMYXN0RmlsZUVycm9yKCkpKTsKKyAgICAg fQorICAgICBkYXRhLnJlc2l6ZSgqYnl0ZXNfcmVhZCk7CistICAgIGhhc2hlci51cGRhdGUoZGF0 YSk7CisrICAgIGhhc2guVXBkYXRlKGRhdGEpOworIAorICAgICBpZiAoIWJhc2U6OkNoZWNrQWRk KG9mZnNldCwgKmJ5dGVzX3JlYWQpLkFzc2lnbklmVmFsaWQoJm9mZnNldCkpIHsKKyAgICAgICBy ZXR1cm4gYmFzZTo6dW5leHBlY3RlZCgiVGhlIFNpZ25lZCBXZWIgQnVuZGxlIGlzIHRvbyBsYXJn ZS4iKTsKKyAgICAgfQorICAgfQorIAorLSAgU0hBNTEyRGlnZXN0IGRpZ2VzdCA9IHN0ZDo6bW92 ZShoYXNoZXIpLmZpbmlzaCgpOworKyAgU0hBNTEyRGlnZXN0IGRpZ2VzdDsKKysgIGhhc2guRmlu aXNoKGRpZ2VzdCk7CisgICByZXR1cm4gZGlnZXN0OworIH0KKyAKKy0tLSBhL2NvbXBvbmVudHMv d2ViX3BhY2thZ2Uvc2lnbmVkX3dlYl9idW5kbGVzL3NpZ25lZF93ZWJfYnVuZGxlX3V0aWxzLmNj CisrKysgYi9jb21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9zaWduZWRf d2ViX2J1bmRsZV91dGlscy5jYworQEAgLTUsMTggKzUsMzcgQEAKKyAjaW5jbHVkZSAiY29tcG9u ZW50cy93ZWJfcGFja2FnZS9zaWduZWRfd2ViX2J1bmRsZXMvc2lnbmVkX3dlYl9idW5kbGVfdXRp bHMuaCIKKyAKKyAjaW5jbHVkZSA8Y3N0ZGludD4KKy0jaW5jbHVkZSA8dmVjdG9yPgorIAorLSNp bmNsdWRlICJjb21wb25lbnRzL3dlYl9wYWNrYWdlL3NpZ25lZF93ZWJfYnVuZGxlcy9ydXN0L3Np Z25lZF93ZWJfYnVuZGxlc19ydXN0LmgiCisrI2luY2x1ZGUgImJhc2UvY29udGFpbmVycy9leHRl bmQuaCIKKysjaW5jbHVkZSAiYmFzZS9jb250YWluZXJzL3NwYW4uaCIKKysjaW5jbHVkZSAiYmFz ZS9jb250YWluZXJzL3NwYW5fd3JpdGVyLmgiCisgCisgbmFtZXNwYWNlIHdlYl9wYWNrYWdlIHsK KyAKKytuYW1lc3BhY2UgeworKworK3ZvaWQgQWRkSXRlbVRvUGF5bG9hZChzdGQ6OnZlY3Rvcjx1 aW50OF90PiYgcGF5bG9hZCwKKysgICAgICAgICAgICAgICAgICAgICAgYmFzZTo6c3Bhbjxjb25z dCB1aW50OF90PiBpdGVtKSB7CisrICAvLyBFYWNoIGl0ZW0gdGhhdCBpcyBwYXJ0IG9mIHRoZSBw YXlsb2FkIGlzIHByZWZpeGVkIHdpdGggaXRzIGxlbmd0aCBlbmNvZGVkCisrICAvLyBhcyBhIDY0 IGJpdCB1bnNpZ25lZCBpbnRlZ2VyLgorKyAgc3RkOjphcnJheTx1aW50OF90LCBzaXplb2YodWlu dDY0X3QpPiBsZW5ndGg7CisrICBhdXRvIHdyaXRlciA9IGJhc2U6OlNwYW5Xcml0ZXIoYmFzZTo6 c3BhbihsZW5ndGgpKTsKKysgIENIRUNLKHdyaXRlci5Xcml0ZVU2NEJpZ0VuZGlhbihpdGVtLnNp emUoKSkpOworKworKyAgYmFzZTo6RXh0ZW5kKHBheWxvYWQsIGJhc2U6OnNwYW4obGVuZ3RoKSk7 CisrICBiYXNlOjpFeHRlbmQocGF5bG9hZCwgaXRlbSk7CisrfQorKworK30gIC8vIG5hbWVzcGFj ZQorKworIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IENyZWF0ZVNpZ25hdHVyZVBheWxvYWQoCisgICAg IGNvbnN0IFNpZ25lZFdlYkJ1bmRsZVNpZ25hdHVyZURhdGEmIGRhdGEpIHsKKy0gIGF1dG8gcGF5 bG9hZF9ydXN0ID0gc2lnbmVkX3dlYl9idW5kbGVzOjpydXN0OjpjcmVhdGVfc2lnbmF0dXJlX3Bh eWxvYWQoCistICAgICAgZGF0YS51bnNpZ25lZF93ZWJfYnVuZGxlX2hhc2gsIGRhdGEuaW50ZWdy aXR5X2Jsb2NrX2Nib3IsCistICAgICAgZGF0YS5hdHRyaWJ1dGVzX2Nib3IpOworLSAgcmV0dXJu IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+KHBheWxvYWRfcnVzdC5iZWdpbigpLCBwYXlsb2FkX3J1c3Qu ZW5kKCkpOworKyAgc3RkOjp2ZWN0b3I8dWludDhfdD4gcGF5bG9hZDsKKysgIEFkZEl0ZW1Ub1Bh eWxvYWQocGF5bG9hZCwgZGF0YS51bnNpZ25lZF93ZWJfYnVuZGxlX2hhc2gpOworKyAgQWRkSXRl bVRvUGF5bG9hZChwYXlsb2FkLCBkYXRhLmludGVncml0eV9ibG9ja19jYm9yKTsKKysgIEFkZEl0 ZW1Ub1BheWxvYWQocGF5bG9hZCwgZGF0YS5hdHRyaWJ1dGVzX2Nib3IpOworKworKyAgcmV0dXJu IHBheWxvYWQ7CisgfQorIAorIH0gIC8vIG5hbWVzcGFjZSB3ZWJfcGFja2FnZQorLS0tIGEvdGhp cmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vQlVJTEQuZ24KKysrKyBiL3RoaXJkX3Bh cnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL0JVSUxELmduCitAQCAtMTg2LDYgKzE4NiwxOCBA QCBncm91cCgibWFrZV9wbGF0Zm9ybV9nZW5lcmF0ZWQiKSB7CisgICBdCisgfQorIAorK3J1c3Rf c3RhdGljX2xpYnJhcnkoImZvbnRfZm9ybWF0X2NoZWNrIikgeworKyAgYWxsb3dfdW5zYWZlID0g dHJ1ZSAgIyBOZWVkZWQgZm9yIEZGSSB0aGF0IHVuZGVycGlucyB0aGUgYGN4eGAgY3JhdGUuCisr ICBjcmF0ZV9yb290ID0gImZvbnRzL29wZW50eXBlL2Zvcm1hdF9jaGVjay5ycyIKKysgIHNvdXJj ZXMgPSBbIGNyYXRlX3Jvb3QgXQorKyAgY3h4X2JpbmRpbmdzID0gWyBjcmF0ZV9yb290IF0KKysg IGRlcHMgPSBbCisrICAgICIvL3RoaXJkX3BhcnR5L3J1c3QvZm9udF90eXBlcy92MF8xMjpsaWIi LAorKyAgICAiLy90aGlyZF9wYXJ0eS9ydXN0L3JlYWRfZm9udHMvdjBfNDM6bGliIiwKKysgICAg Ii8vdGhpcmRfcGFydHkvcnVzdC9za3JpZmEvdjBfNDY6bGliIiwKKysgIF0KKyt9CisrCiAgcnVz dF9zdGF0aWNfbGlicmFyeSgicnVzdGZmdF9mZmkiKSB7CiAgICBhbGxvd191bnNhZmUgPSB0cnVl ICAjIE5lZWRlZCBmb3IgRkZJIHRoYXQgdW5kZXJwaW5zIHRoZSBgY3h4YCBjcmF0ZS4KICAgIGNy YXRlX3Jvb3QgPSAiYXVkaW8vcnVzdGZmdF9mZmkucnMiCi1AQCAtMTgwNiw2ICsxNzk0LDcgQEAg Y29tcG9uZW50KCJwbGF0Zm9ybSIpIHsKK0BAIC0xNzkyLDcgKzE4MDQsNiBAQCBjb21wb25lbnQo InBsYXRmb3JtIikgewogICAgICAiOmFsbG93X2Rpc2NvdXJhZ2VkX3R5cGUiLAogICAgICAiOmJs aW5rX3BsYXRmb3JtX3B1YmxpY19kZXBzIiwKICAgICAgIjpwbGF0Zm9ybV9leHBvcnQiLAotKyAg ICAiLy9idWlsZC9ydXN0L2NydWJpdCIsCistICAgICIvL2J1aWxkL3J1c3QvY3J1Yml0IiwKICAg ICAgIi8vZ3B1L2NvbW1hbmRfYnVmZmVyL2NsaWVudDpyYXN0ZXJfaW50ZXJmYWNlIiwKICAgICAg Ii8vbWVkaWEvY2FwdHVyZTpjYXB0dXJlX2xpYiIsCiAgICAgICIvL21vam8vcHVibGljL2NwcC9i YXNlIiwKLUBAIC0xODMyLDggKzE4MjEsOCBAQCBjb21wb25lbnQoInBsYXRmb3JtIikgeworQEAg LTE4MTksOCArMTgzMCw4IEBAIGNvbXBvbmVudCgicGxhdGZvcm0iKSB7CiAgICAgICIvL3VpL25h dGl2ZV90aGVtZS9mZWF0dXJlcyIsCiAgICBdCiAgICBkZXBzID0gWwotLSAgICAiOmZvbnRfZm9y bWF0X2NoZWNrIiwKKysgICAgIjpmb250X2Zvcm1hdF9jaGVjayIsCiAgICAgICI6cnVzdGZmdF9m ZmkiLAotKyAgICAiZm9udHM6Zm9udF9mb3JtYXRfYmluZGluZ3MiLAorLSAgICAiZm9udHM6Zm9u dF9mb3JtYXRfYmluZGluZ3MiLAogICAgICAiLy9iYXNlOmJhc2Vfc3RhdGljIiwKICAgICAgIi8v YmFzZS9hbGxvY2F0b3I6YnVpbGRmbGFncyIsCiAgICAgICIvL2J1aWxkOmNocm9tZWNhc3RfYnVp bGRmbGFncyIsCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZv cm0vZm9udHMvQlVJTEQuZ24gYi90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9m b250cy9CVUlMRC5nbgotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAwMDAwMDAu LjUxYjliMDNiYTdjODUKLS0tLSAvZGV2L251bGwKLSsrKyBiL3RoaXJkX3BhcnR5L2JsaW5rL3Jl bmRlcmVyL3BsYXRmb3JtL2ZvbnRzL0JVSUxELmduCi1AQCAtMCwwICsxLDE5IEBACi0rIyBDb3B5 cmlnaHQgMjAyNiBUaGUgQ2hyb21pdW0gQXV0aG9ycwotKyMgVXNlIG9mIHRoaXMgc291cmNlIGNv ZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotKyMgZm91 bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLSsKLStpbXBvcnQoIi8vYnVpbGQvcnVzdC9ydXN0X3N0 YXRpY19saWJyYXJ5LmduaSIpCi0rCi0rcnVzdF9zdGF0aWNfbGlicmFyeSgiZm9udF9mb3JtYXQi KSB7Ci0rICBjcmF0ZV9yb290ID0gIm9wZW50eXBlL2Zvcm1hdF9jaGVjay5ycyIKLSsgIHNvdXJj ZXMgPSBbIGNyYXRlX3Jvb3QgXQotKyAgY3BwX2FwaV9mcm9tX3J1c3QgPSB7Ci0rICAgIHRhcmdl dF9uYW1lID0gImZvbnRfZm9ybWF0X2JpbmRpbmdzIgotKyAgICBjcHBfbmFtZXNwYWNlID0gImZv bnRfZm9ybWF0IgotKyAgfQotKyAgZGVwcyA9IFsKLSsgICAgIi8vdGhpcmRfcGFydHkvcnVzdC9m b250X3R5cGVzL3YwXzEyOmxpYiIsCi0rICAgICIvL3RoaXJkX3BhcnR5L3J1c3QvcmVhZF9mb250 cy92MF80MzpsaWIiLAotKyAgICAiLy90aGlyZF9wYXJ0eS9ydXN0L3NrcmlmYS92MF80NjpsaWIi LAotKyAgXQotK30KLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0 Zm9ybS9mb250cy9vcGVudHlwZS9mb250X2Zvcm1hdF9jaGVjay5jYyBiL3RoaXJkX3BhcnR5L2Js aW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL29wZW50eXBlL2ZvbnRfZm9ybWF0X2NoZWNrLmNj Ci1pbmRleCBiOWQyNjM5ODIyYmMwLi5mNThlOTQzM2QzOWY0IDEwMDY0NAorLS0tIGEvdGhpcmRf cGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvQlVJTEQuZ24KKysrKyAvZGV2L251 bGwKK0BAIC0xLDE5ICswLDAgQEAKKy0jIENvcHlyaWdodCAyMDI2IFRoZSBDaHJvbWl1bSBBdXRo b3JzCistIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHls ZSBsaWNlbnNlIHRoYXQgY2FuIGJlCistIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLQor LWltcG9ydCgiLy9idWlsZC9ydXN0L3J1c3Rfc3RhdGljX2xpYnJhcnkuZ25pIikKKy0KKy1ydXN0 X3N0YXRpY19saWJyYXJ5KCJmb250X2Zvcm1hdCIpIHsKKy0gIGNyYXRlX3Jvb3QgPSAib3BlbnR5 cGUvZm9ybWF0X2NoZWNrLnJzIgorLSAgc291cmNlcyA9IFsgY3JhdGVfcm9vdCBdCistICBjcHBf YXBpX2Zyb21fcnVzdCA9IHsKKy0gICAgdGFyZ2V0X25hbWUgPSAiZm9udF9mb3JtYXRfYmluZGlu Z3MiCistICAgIGNwcF9uYW1lc3BhY2UgPSAiZm9udF9mb3JtYXQiCistICB9CistICBkZXBzID0g WworLSAgICAiLy90aGlyZF9wYXJ0eS9ydXN0L2ZvbnRfdHlwZXMvdjBfMTI6bGliIiwKKy0gICAg Ii8vdGhpcmRfcGFydHkvcnVzdC9yZWFkX2ZvbnRzL3YwXzQzOmxpYiIsCistICAgICIvL3RoaXJk X3BhcnR5L3J1c3Qvc2tyaWZhL3YwXzQ2OmxpYiIsCistICBdCistfQogLS0tIGEvdGhpcmRfcGFy dHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvb3BlbnR5cGUvZm9udF9mb3JtYXRfY2hl Y2suY2MKICsrKyBiL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL29w ZW50eXBlL2ZvbnRfZm9ybWF0X2NoZWNrLmNjCi1AQCAtNyw3ICs3LDYgQEAKK0BAIC03LDYgKzcs NyBAQAogICNpbmNsdWRlICJiYXNlL2NvbnRhaW5lcnMvc3Bhbi5oIgogICNpbmNsdWRlICJiYXNl L2NvbnRhaW5lcnMvc3Bhbl9ydXN0LmgiCiAgI2luY2x1ZGUgImJhc2UvbnVtZXJpY3MvYnl0ZV9j b252ZXJzaW9ucy5oIgotLSNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0 Zm9ybS9mb250cy9vcGVudHlwZS9mb3JtYXRfY2hlY2sucnMuaCIKKysjaW5jbHVkZSAidGhpcmRf cGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvb3BlbnR5cGUvZm9ybWF0X2NoZWNr LnJzLmgiCiAgI2luY2x1ZGUgInRoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL3J1 bnRpbWVfZW5hYmxlZF9mZWF0dXJlcy5oIgogICNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9ibGluay9y ZW5kZXJlci9wbGF0Zm9ybS93dGYvdmVjdG9yLmgiCiAgI2luY2x1ZGUgInRoaXJkX3BhcnR5L3Nr aWEvaW5jbHVkZS9jb3JlL1NrVHlwZWZhY2UuaCIKLUBAIC0xNSwzNSArMTQsMzcgQEAKK0BAIC0x NCwzNyArMTUsMzUgQEAKICBuYW1lc3BhY2UgYmxpbmsgewogIAogIEZvbnRGb3JtYXRDaGVjazo6 Rm9udEZvcm1hdENoZWNrKHNrX3NwPFNrRGF0YT4gc2tfZGF0YSkKLS0gICAgOiBmb3JtYXRfaW5m b18oZm9udF9mb3JtYXRfY2hlY2s6OmdldF9mb250X2Zvcm1hdF9pbmZvKAotKyAgICA6IGZvcm1h dF9pbmZvXyhmb250X2Zvcm1hdDo6Z2V0X2ZvbnRfZm9ybWF0X2luZm8oCistICAgIDogZm9ybWF0 X2luZm9fKGZvbnRfZm9ybWF0OjpnZXRfZm9udF9mb3JtYXRfaW5mbygKKysgICAgOiBmb3JtYXRf aW5mb18oZm9udF9mb3JtYXRfY2hlY2s6OmdldF9mb250X2Zvcm1hdF9pbmZvKAogICAgICAgICAg ICBiYXNlOjpTcGFuVG9SdXN0U2xpY2Uoc2tfZGF0YS0+Ynl0ZVNwYW4oKSkpKSB7fQogIAotK0Zv bnRGb3JtYXRDaGVjazo6fkZvbnRGb3JtYXRDaGVjaygpID0gZGVmYXVsdDsKLSsKKy1Gb250Rm9y bWF0Q2hlY2s6On5Gb250Rm9ybWF0Q2hlY2soKSA9IGRlZmF1bHQ7CistCiAgYm9vbCBGb250Rm9y bWF0Q2hlY2s6OklzVmFyaWFibGVGb250KCkgY29uc3QgewotLSAgcmV0dXJuIGZvbnRfZm9ybWF0 X2NoZWNrOjppc192YXJpYWJsZSgqZm9ybWF0X2luZm9fKTsKLSsgIHJldHVybiBmb250X2Zvcm1h dDo6aXNfdmFyaWFibGUoZm9ybWF0X2luZm9fKTsKKy0gIHJldHVybiBmb250X2Zvcm1hdDo6aXNf dmFyaWFibGUoZm9ybWF0X2luZm9fKTsKKysgIHJldHVybiBmb250X2Zvcm1hdF9jaGVjazo6aXNf dmFyaWFibGUoKmZvcm1hdF9pbmZvXyk7CiAgfQogIAogIGJvb2wgRm9udEZvcm1hdENoZWNrOjpJ c0NiZHRDYmxjQ29sb3JGb250KCkgY29uc3QgewotLSAgcmV0dXJuIGZvbnRfZm9ybWF0X2NoZWNr Ojppc19jYmR0X2NibGMoKmZvcm1hdF9pbmZvXyk7Ci0rICByZXR1cm4gZm9udF9mb3JtYXQ6Omlz X2NiZHRfY2JsYyhmb3JtYXRfaW5mb18pOworLSAgcmV0dXJuIGZvbnRfZm9ybWF0Ojppc19jYmR0 X2NibGMoZm9ybWF0X2luZm9fKTsKKysgIHJldHVybiBmb250X2Zvcm1hdF9jaGVjazo6aXNfY2Jk dF9jYmxjKCpmb3JtYXRfaW5mb18pOwogIH0KICAKICBib29sIEZvbnRGb3JtYXRDaGVjazo6SXNF YmR0RWJsY01vbm9jaHJvbWVGb250KCkgY29uc3QgewotLSAgcmV0dXJuIGZvbnRfZm9ybWF0X2No ZWNrOjppc19lYmR0X2VibGMoKmZvcm1hdF9pbmZvXyk7Ci0rICByZXR1cm4gZm9udF9mb3JtYXQ6 OmlzX2ViZHRfZWJsYyhmb3JtYXRfaW5mb18pOworLSAgcmV0dXJuIGZvbnRfZm9ybWF0Ojppc19l YmR0X2VibGMoZm9ybWF0X2luZm9fKTsKKysgIHJldHVybiBmb250X2Zvcm1hdF9jaGVjazo6aXNf ZWJkdF9lYmxjKCpmb3JtYXRfaW5mb18pOwogIH0KICAKICBib29sIEZvbnRGb3JtYXRDaGVjazo6 SXNDb2xyQ3BhbENvbG9yRm9udFYwKCkgY29uc3QgewotLSAgcmV0dXJuIGZvbnRfZm9ybWF0X2No ZWNrOjppc19jb2xydjAoKmZvcm1hdF9pbmZvXyk7Ci0rICByZXR1cm4gZm9udF9mb3JtYXQ6Omlz X2NvbHJ2MChmb3JtYXRfaW5mb18pOworLSAgcmV0dXJuIGZvbnRfZm9ybWF0Ojppc19jb2xydjAo Zm9ybWF0X2luZm9fKTsKKysgIHJldHVybiBmb250X2Zvcm1hdF9jaGVjazo6aXNfY29scnYwKCpm b3JtYXRfaW5mb18pOwogIH0KICAKICBib29sIEZvbnRGb3JtYXRDaGVjazo6SXNDb2xyQ3BhbENv bG9yRm9udFYxKCkgY29uc3QgewotLSAgcmV0dXJuIGZvbnRfZm9ybWF0X2NoZWNrOjppc19jb2xy djEoKmZvcm1hdF9pbmZvXyk7Ci0rICByZXR1cm4gZm9udF9mb3JtYXQ6OmlzX2NvbHJ2MShmb3Jt YXRfaW5mb18pOworLSAgcmV0dXJuIGZvbnRfZm9ybWF0Ojppc19jb2xydjEoZm9ybWF0X2luZm9f KTsKKysgIHJldHVybiBmb250X2Zvcm1hdF9jaGVjazo6aXNfY29scnYxKCpmb3JtYXRfaW5mb18p OwogIH0KICAKICBib29sIEZvbnRGb3JtYXRDaGVjazo6SXNTYml4Q29sb3JGb250KCkgY29uc3Qg ewotLSAgcmV0dXJuIGZvbnRfZm9ybWF0X2NoZWNrOjppc19zYml4KCpmb3JtYXRfaW5mb18pOwot KyAgcmV0dXJuIGZvbnRfZm9ybWF0Ojppc19zYml4KGZvcm1hdF9pbmZvXyk7CistICByZXR1cm4g Zm9udF9mb3JtYXQ6OmlzX3NiaXgoZm9ybWF0X2luZm9fKTsKKysgIHJldHVybiBmb250X2Zvcm1h dF9jaGVjazo6aXNfc2JpeCgqZm9ybWF0X2luZm9fKTsKICB9CiAgCiAgYm9vbCBGb250Rm9ybWF0 Q2hlY2s6OklzQ2ZmMk91dGxpbmVGb250KCkgY29uc3QgewotLSAgcmV0dXJuIGZvbnRfZm9ybWF0 X2NoZWNrOjppc19jZmYyKCpmb3JtYXRfaW5mb18pOwotKyAgcmV0dXJuIGZvbnRfZm9ybWF0Ojpp c19jZmYyKGZvcm1hdF9pbmZvXyk7CistICByZXR1cm4gZm9udF9mb3JtYXQ6OmlzX2NmZjIoZm9y bWF0X2luZm9fKTsKKysgIHJldHVybiBmb250X2Zvcm1hdF9jaGVjazo6aXNfY2ZmMigqZm9ybWF0 X2luZm9fKTsKICB9CiAgCiAgYm9vbCBGb250Rm9ybWF0Q2hlY2s6OklzVmFyaWFibGVDb2xyVjBG b250KCkgY29uc3QgewotQEAgLTU3LDcgKzU4LDcgQEAgYm9vbCBGb250Rm9ybWF0Q2hlY2s6Oklz Q29sb3JGb250KCkgY29uc3QgeworQEAgLTU4LDcgKzU3LDcgQEAgYm9vbCBGb250Rm9ybWF0Q2hl Y2s6OklzQ29sb3JGb250KCkgY29ucwogIAogIGJvb2wgRm9udEZvcm1hdENoZWNrOjpJc0F2YXIy Rm9udCgpIGNvbnN0IHsKICAgIHJldHVybiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpGb250Rm9y bWF0QXZhcjJFbmFibGVkKCkgJiYKLS0gICAgICAgICBmb250X2Zvcm1hdF9jaGVjazo6aXNfYXZh cjIoKmZvcm1hdF9pbmZvXyk7Ci0rICAgICAgICAgZm9udF9mb3JtYXQ6OmlzX2F2YXIyKGZvcm1h dF9pbmZvXyk7CistICAgICAgICAgZm9udF9mb3JtYXQ6OmlzX2F2YXIyKGZvcm1hdF9pbmZvXyk7 CisrICAgICAgICAgZm9udF9mb3JtYXRfY2hlY2s6OmlzX2F2YXIyKCpmb3JtYXRfaW5mb18pOwog IH0KICAKICBGb250Rm9ybWF0Q2hlY2s6OlZhcmlhYmxlRm9udFN1YlR5cGUgRm9udEZvcm1hdENo ZWNrOjpQcm9iZVZhcmlhYmxlRm9udCgKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ibGluay9y ZW5kZXJlci9wbGF0Zm9ybS9mb250cy9vcGVudHlwZS9mb250X2Zvcm1hdF9jaGVjay5oIGIvdGhp cmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZm9udHMvb3BlbnR5cGUvZm9udF9mb3Jt YXRfY2hlY2suaAotaW5kZXggMTlkMjYzOTIzM2IwNy4uYWY1MGRiZGY3NGQwMCAxMDA2NDQKIC0t LSBhL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL29wZW50eXBlL2Zv bnRfZm9ybWF0X2NoZWNrLmgKICsrKyBiL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRm b3JtL2ZvbnRzL29wZW50eXBlL2ZvbnRfZm9ybWF0X2NoZWNrLmgKIEBAIC01LDcgKzUsNyBAQAog ICNpZm5kZWYgVEhJUkRfUEFSVFlfQkxJTktfUkVOREVSRVJfUExBVEZPUk1fRk9OVFNfT1BFTlRZ UEVfRk9OVF9GT1JNQVRfQ0hFQ0tfSF8KICAjZGVmaW5lIFRISVJEX1BBUlRZX0JMSU5LX1JFTkRF UkVSX1BMQVRGT1JNX0ZPTlRTX09QRU5UWVBFX0ZPTlRfRk9STUFUX0NIRUNLX0hfCiAgCi0tI2lu Y2x1ZGUgInRoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2ZvbnRzL29wZW50eXBl L2Zvcm1hdF9jaGVjay5ycy5oIgotKyNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJl ci9wbGF0Zm9ybS9mb250cy9mb250X2Zvcm1hdC5oIgorLSNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9i bGluay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9mb250X2Zvcm1hdC5oIgorKyNpbmNsdWRlICJ0 aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9vcGVudHlwZS9mb3JtYXRf Y2hlY2sucnMuaCIKICAjaW5jbHVkZSAidGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZv cm0vcGxhdGZvcm1fZXhwb3J0LmgiCiAgI2luY2x1ZGUgInRoaXJkX3BhcnR5L2JsaW5rL3JlbmRl cmVyL3BsYXRmb3JtL3d0Zi9hbGxvY2F0b3IvYWxsb2NhdG9yLmgiCiAgI2luY2x1ZGUgInRoaXJk X3BhcnR5L3NraWEvaW5jbHVkZS9jb3JlL1NrRGF0YS5oIgpAQCAtMTcxLDggKzcxMyw4IEBAIGlu ZGV4IDE5ZDI2MzkyMzNiMDcuLmFmNTBkYmRmNzRkMDAgMTAwNjQ0CiAgCiAgIHB1YmxpYzoKICAg IGV4cGxpY2l0IEZvbnRGb3JtYXRDaGVjayhza19zcDxTa0RhdGE+KTsKLS0gIHZpcnR1YWwgfkZv bnRGb3JtYXRDaGVjaygpID0gZGVmYXVsdDsKLSsgIHZpcnR1YWwgfkZvbnRGb3JtYXRDaGVjaygp OworLSAgdmlydHVhbCB+Rm9udEZvcm1hdENoZWNrKCk7CisrICB2aXJ0dWFsIH5Gb250Rm9ybWF0 Q2hlY2soKSA9IGRlZmF1bHQ7CiAgICB2aXJ0dWFsIGJvb2wgSXNWYXJpYWJsZUZvbnQoKSBjb25z dDsKICAgIHZpcnR1YWwgYm9vbCBJc0NiZHRDYmxjQ29sb3JGb250KCkgY29uc3Q7CiAgICB2aXJ0 dWFsIGJvb2wgSXNFYmR0RWJsY01vbm9jaHJvbWVGb250KCkgY29uc3Q7CkBAIC0xODAsMTAzICs3 MjIsMTAxIEBAIGluZGV4IDE5ZDI2MzkyMzNiMDcuLmFmNTBkYmRmNzRkMDAgMTAwNjQ0CiAgICBl bnVtIGNsYXNzIENPTFJWZXJzaW9uIHsga0NPTFJWMCwga0NPTFJWMSwga05vQ09MUiB9OwogIAog ICBwcml2YXRlOgotLSAgcnVzdDo6Qm94PGZvbnRfZm9ybWF0X2NoZWNrOjpGb250Rm9ybWF0SW5m bz4gZm9ybWF0X2luZm9fOwotKyAgZm9udF9mb3JtYXQ6OkZvbnRGb3JtYXRJbmZvIGZvcm1hdF9p bmZvXzsKKy0gIGZvbnRfZm9ybWF0OjpGb250Rm9ybWF0SW5mbyBmb3JtYXRfaW5mb187CisrICBy dXN0OjpCb3g8Zm9udF9mb3JtYXRfY2hlY2s6OkZvbnRGb3JtYXRJbmZvPiBmb3JtYXRfaW5mb187 CiAgfTsKICAKICB9ICAvLyBuYW1lc3BhY2UgYmxpbmsKLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0 eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9vcGVudHlwZS9mb3JtYXRfY2hlY2sucnMg Yi90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9vcGVudHlwZS9mb3Jt YXRfY2hlY2sucnMKLWluZGV4IGVkYThlNmIyYjgxODguLmI5OWYwZWM4NjU1ZTYgMTAwNjQ0CiAt LS0gYS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS9mb250cy9vcGVudHlwZS9m b3JtYXRfY2hlY2sucnMKICsrKyBiL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3Jt L2ZvbnRzL29wZW50eXBlL2Zvcm1hdF9jaGVjay5ycwogQEAgLTIzLDcgKzIzLDcgQEAgcHViIHN0 cnVjdCBGb250Rm9ybWF0SW5mbyB7CiAgICAgIGZvcm1hdF9mbGFnczogT3B0aW9uPEZvbnRGb3Jt YXRGbGFncz4sCiAgfQogIAotLXB1YiBmbiBnZXRfZm9udF9mb3JtYXRfaW5mbyhmb250X2J5dGVz OiAmW3U4XSkgLT4gQm94PEZvbnRGb3JtYXRJbmZvPiB7Ci0rcHViIGZuIGdldF9mb250X2Zvcm1h dF9pbmZvKGZvbnRfYnl0ZXM6ICZbdThdKSAtPiBGb250Rm9ybWF0SW5mbyB7CistcHViIGZuIGdl dF9mb250X2Zvcm1hdF9pbmZvKGZvbnRfYnl0ZXM6ICZbdThdKSAtPiBGb250Rm9ybWF0SW5mbyB7 CisrcHViIGZuIGdldF9mb250X2Zvcm1hdF9pbmZvKGZvbnRfYnl0ZXM6ICZbdThdKSAtPiBCb3g8 Rm9udEZvcm1hdEluZm8+IHsKICAgICAgbGV0IGZpbGVfcmVmID0gbWFrZV9mb250X3JlZl9pbnRl cm5hbChmb250X2J5dGVzLCAwKTsKICAKICAgICAgbWF0Y2ggZmlsZV9yZWYgewotQEAgLTMyLDEx ICszMiwxMSBAQCBwdWIgZm4gZ2V0X2ZvbnRfZm9ybWF0X2luZm8oZm9udF9ieXRlczogJlt1OF0p IC0+IEJveDxGb250Rm9ybWF0SW5mbz4geworQEAgLTMyLDExICszMiwxMSBAQCBwdWIgZm4gZ2V0 X2ZvbnRfZm9ybWF0X2luZm8oZm9udF9ieXRlczoKICAgICAgICAgICAgICAgICAgZm9udC50YWJs ZV9kaXJlY3RvcnkoKS50YWJsZV9yZWNvcmRzKCkuaXRlcigpLm1hcCh8ZXwgZS50YWcoKSkuY29s bGVjdCgpOwogICAgICAgICAgICAgIGxldCBjb2xvcl92ZXJzaW9uID0gZ2V0X2NvbHJfdmVyc2lv bigmZm9udCk7CiAgICAgICAgICAgICAgbGV0IGF2YXJfdmVyc2lvbiA9IGdldF9hdmFyX3ZlcnNp b24oJmZvbnQpOwotLSAgICAgICAgICAgIEJveDo6bmV3KEZvbnRGb3JtYXRJbmZvIHsKLSsgICAg ICAgICAgICBGb250Rm9ybWF0SW5mbyB7CistICAgICAgICAgICAgRm9udEZvcm1hdEluZm8gewor KyAgICAgICAgICAgIEJveDo6bmV3KEZvbnRGb3JtYXRJbmZvIHsKICAgICAgICAgICAgICAgICAg Zm9ybWF0X2ZsYWdzOiBTb21lKEZvbnRGb3JtYXRGbGFncyB7IHRhYmxlX3RhZ3MsIGNvbG9yX3Zl cnNpb24sIGF2YXJfdmVyc2lvbiB9KSwKLS0gICAgICAgICAgICB9KQotKyAgICAgICAgICAgIH0K Ky0gICAgICAgICAgICB9CisrICAgICAgICAgICAgfSkKICAgICAgICAgIH0KLS0gICAgICAgIF8g PT4gQm94OjpuZXcoRm9udEZvcm1hdEluZm86OmRlZmF1bHQoKSksCi0rICAgICAgICBfID0+IEZv bnRGb3JtYXRJbmZvOjpkZWZhdWx0KCksCistICAgICAgICBfID0+IEZvbnRGb3JtYXRJbmZvOjpk ZWZhdWx0KCksCisrICAgICAgICBfID0+IEJveDo6bmV3KEZvbnRGb3JtYXRJbmZvOjpkZWZhdWx0 KCkpLAogICAgICB9CiAgfQogIAotQEAgLTQ0LDEwICs0NCwxMCBAQCBmbiBnZXRfY29scl92ZXJz aW9uKGZvbnRfcmVmOiAmRm9udFJlZikgLT4gT3B0aW9uPHUxNj4geworQEAgLTQ0LDEwICs0NCwx MCBAQCBmbiBnZXRfY29scl92ZXJzaW9uKGZvbnRfcmVmOiAmRm9udFJlZikKICAgICAgU29tZShm b250X3JlZi5jb2xyKCkub2soKT8udmVyc2lvbigpKQogIH0KICAKLS1mbiBpc19jb2xydjEoZm9y bWF0X2luZm86ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbCB7Ci0rcHViIGZuIGlzX2NvbHJ2MShm b3JtYXRfaW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBib29sIHsKKy1wdWIgZm4gaXNfY29scnYx KGZvcm1hdF9pbmZvOiAmRm9udEZvcm1hdEluZm8pIC0+IGJvb2wgeworK2ZuIGlzX2NvbHJ2MShm b3JtYXRfaW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBib29sIHsKICAgICAgbWF0Y2hlcyEoJmZv cm1hdF9pbmZvLmZvcm1hdF9mbGFncywgU29tZShGb250Rm9ybWF0RmxhZ3MgeyBjb2xvcl92ZXJz aW9uOiBTb21lKDEpLCAuLiB9KSwpCiAgfQotLWZuIGlzX2NvbHJ2MChmb3JtYXRfaW5mbzogJkZv bnRGb3JtYXRJbmZvKSAtPiBib29sIHsKLStwdWIgZm4gaXNfY29scnYwKGZvcm1hdF9pbmZvOiAm Rm9udEZvcm1hdEluZm8pIC0+IGJvb2wgeworLXB1YiBmbiBpc19jb2xydjAoZm9ybWF0X2luZm86 ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbCB7CisrZm4gaXNfY29scnYwKGZvcm1hdF9pbmZvOiAm Rm9udEZvcm1hdEluZm8pIC0+IGJvb2wgewogICAgICBtYXRjaGVzISgmZm9ybWF0X2luZm8uZm9y bWF0X2ZsYWdzLCBTb21lKEZvbnRGb3JtYXRGbGFncyB7IGNvbG9yX3ZlcnNpb246IFNvbWUoMCks IC4uIH0pLCkKICB9CiAgCi1AQCAtNTYsNyArNTYsNyBAQCBmbiBnZXRfYXZhcl92ZXJzaW9uKGZv bnRfcmVmOiAmRm9udFJlZikgLT4gT3B0aW9uPCh1MTYsIHUxNik+IHsKK0BAIC01Niw3ICs1Niw3 IEBAIGZuIGdldF9hdmFyX3ZlcnNpb24oZm9udF9yZWY6ICZGb250UmVmKQogICAgICBTb21lKCh2 ZXJzaW9uLm1ham9yLCB2ZXJzaW9uLm1pbm9yKSkKICB9CiAgCi0tZm4gaXNfYXZhcjIoZm9ybWF0 X2luZm86ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbCB7Ci0rcHViIGZuIGlzX2F2YXIyKGZvcm1h dF9pbmZvOiAmRm9udEZvcm1hdEluZm8pIC0+IGJvb2wgeworLXB1YiBmbiBpc19hdmFyMihmb3Jt YXRfaW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBib29sIHsKKytmbiBpc19hdmFyMihmb3JtYXRf aW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBib29sIHsKICAgICAgbWF0Y2hlcyEoJmZvcm1hdF9p bmZvLmZvcm1hdF9mbGFncywgU29tZShGb250Rm9ybWF0RmxhZ3MgeyBhdmFyX3ZlcnNpb246IFNv bWUoKDIsIF8pKSwgLi4gfSksKQogIH0KICAKLUBAIC02OSwzOSArNjksMjIgQEAgZm4gaGFzX3Rh Z3MoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0SW5mbywgcXVlcnk6ICZbVGFnXSkgLT4gYm9vbCB7 CitAQCAtNjksMjIgKzY5LDM5IEBAIGZuIGhhc190YWdzKGZvcm1hdF9pbmZvOiAmRm9udEZvcm1h dEluZm8KICAgICAgfQogIH0KICAKLS1mbiBpc192YXJpYWJsZShmb3JtYXRfaW5mbzogJkZvbnRG b3JtYXRJbmZvKSAtPiBib29sIHsKLStwdWIgZm4gaXNfdmFyaWFibGUoZm9ybWF0X2luZm86ICZG b250Rm9ybWF0SW5mbykgLT4gYm9vbCB7CistcHViIGZuIGlzX3ZhcmlhYmxlKGZvcm1hdF9pbmZv OiAmRm9udEZvcm1hdEluZm8pIC0+IGJvb2wgeworK2ZuIGlzX3ZhcmlhYmxlKGZvcm1hdF9pbmZv OiAmRm9udEZvcm1hdEluZm8pIC0+IGJvb2wgewogICAgICBoYXNfdGFncyhmb3JtYXRfaW5mbywg JltUYWc6Om5ldyhiImZ2YXIiKV0pCiAgfQogIAotLWZuIGlzX3NiaXgoZm9ybWF0X2luZm86ICZG b250Rm9ybWF0SW5mbykgLT4gYm9vbCB7Ci0rcHViIGZuIGlzX3NiaXgoZm9ybWF0X2luZm86ICZG b250Rm9ybWF0SW5mbykgLT4gYm9vbCB7CistcHViIGZuIGlzX3NiaXgoZm9ybWF0X2luZm86ICZG b250Rm9ybWF0SW5mbykgLT4gYm9vbCB7CisrZm4gaXNfc2JpeChmb3JtYXRfaW5mbzogJkZvbnRG b3JtYXRJbmZvKSAtPiBib29sIHsKICAgICAgaGFzX3RhZ3MoZm9ybWF0X2luZm8sICZbVGFnOjpu ZXcoYiJzYml4IildKQogIH0KICAKLS1mbiBpc19jYmR0X2NibGMoZm9ybWF0X2luZm86ICZGb250 Rm9ybWF0SW5mbykgLT4gYm9vbCB7Ci0rcHViIGZuIGlzX2NiZHRfY2JsYyhmb3JtYXRfaW5mbzog JkZvbnRGb3JtYXRJbmZvKSAtPiBib29sIHsKKy1wdWIgZm4gaXNfY2JkdF9jYmxjKGZvcm1hdF9p bmZvOiAmRm9udEZvcm1hdEluZm8pIC0+IGJvb2wgeworK2ZuIGlzX2NiZHRfY2JsYyhmb3JtYXRf aW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBib29sIHsKICAgICAgaGFzX3RhZ3MoZm9ybWF0X2lu Zm8sICZbVGFnOjpuZXcoYiJDQkRUIiksIFRhZzo6bmV3KGIiQ0JMQyIpXSkKICB9CiAgCi0tZm4g aXNfZWJkdF9lYmxjKGZvcm1hdF9pbmZvOiAmRm9udEZvcm1hdEluZm8pIC0+IGJvb2wgewotK3B1 YiBmbiBpc19lYmR0X2VibGMoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbCB7 CistcHViIGZuIGlzX2ViZHRfZWJsYyhmb3JtYXRfaW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBi b29sIHsKKytmbiBpc19lYmR0X2VibGMoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0SW5mbykgLT4g Ym9vbCB7CiAgICAgIGhhc190YWdzKGZvcm1hdF9pbmZvLCAmW1RhZzo6bmV3KGIiRUJEVCIpLCBU YWc6Om5ldyhiIkVCTEMiKV0pCiAgfQogIAotLWZuIGlzX2NmZjIoZm9ybWF0X2luZm86ICZGb250 Rm9ybWF0SW5mbykgLT4gYm9vbCB7Ci0rcHViIGZuIGlzX2NmZjIoZm9ybWF0X2luZm86ICZGb250 Rm9ybWF0SW5mbykgLT4gYm9vbCB7CistcHViIGZuIGlzX2NmZjIoZm9ybWF0X2luZm86ICZGb250 Rm9ybWF0SW5mbykgLT4gYm9vbCB7CisrZm4gaXNfY2ZmMihmb3JtYXRfaW5mbzogJkZvbnRGb3Jt YXRJbmZvKSAtPiBib29sIHsKICAgICAgaGFzX3RhZ3MoZm9ybWF0X2luZm8sICZbVGFnOjpuZXco YiJDRkYyIildKQogIH0KLS0KLS0jW2N4eDo6YnJpZGdlKG5hbWVzcGFjZSA9ICJmb250X2Zvcm1h dF9jaGVjayIpXQotLXB1YiBtb2QgZmZpIHsKLS0gICAgZXh0ZXJuICJSdXN0IiB7Ci0tICAgICAg ICB0eXBlIEZvbnRGb3JtYXRJbmZvOwotLQotLSAgICAgICAgZm4gZ2V0X2ZvbnRfZm9ybWF0X2lu Zm8oZm9udF9ieXRlczogJlt1OF0pIC0+IEJveDxGb250Rm9ybWF0SW5mbz47Ci0tICAgICAgICBm biBpc19jb2xydjEoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbDsKLS0gICAg ICAgIGZuIGlzX2NvbHJ2MChmb3JtYXRfaW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBib29sOwot LSAgICAgICAgZm4gaXNfY2JkdF9jYmxjKGZvcm1hdF9pbmZvOiAmRm9udEZvcm1hdEluZm8pIC0+ IGJvb2w7Ci0tICAgICAgICBmbiBpc19lYmR0X2VibGMoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0 SW5mbykgLT4gYm9vbDsKLS0gICAgICAgIGZuIGlzX3ZhcmlhYmxlKGZvcm1hdF9pbmZvOiAmRm9u dEZvcm1hdEluZm8pIC0+IGJvb2w7Ci0tICAgICAgICBmbiBpc19zYml4KGZvcm1hdF9pbmZvOiAm Rm9udEZvcm1hdEluZm8pIC0+IGJvb2w7Ci0tICAgICAgICBmbiBpc19jZmYyKGZvcm1hdF9pbmZv OiAmRm9udEZvcm1hdEluZm8pIC0+IGJvb2w7Ci0tICAgICAgICBmbiBpc19hdmFyMihmb3JtYXRf aW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBib29sOwotLSAgICB9Ci0tfQorKworKyNbY3h4Ojpi cmlkZ2UobmFtZXNwYWNlID0gImZvbnRfZm9ybWF0X2NoZWNrIildCisrcHViIG1vZCBmZmkgewor KyAgICBleHRlcm4gIlJ1c3QiIHsKKysgICAgICAgIHR5cGUgRm9udEZvcm1hdEluZm87CisrCisr ICAgICAgICBmbiBnZXRfZm9udF9mb3JtYXRfaW5mbyhmb250X2J5dGVzOiAmW3U4XSkgLT4gQm94 PEZvbnRGb3JtYXRJbmZvPjsKKysgICAgICAgIGZuIGlzX2NvbHJ2MShmb3JtYXRfaW5mbzogJkZv bnRGb3JtYXRJbmZvKSAtPiBib29sOworKyAgICAgICAgZm4gaXNfY29scnYwKGZvcm1hdF9pbmZv OiAmRm9udEZvcm1hdEluZm8pIC0+IGJvb2w7CisrICAgICAgICBmbiBpc19jYmR0X2NibGMoZm9y bWF0X2luZm86ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbDsKKysgICAgICAgIGZuIGlzX2ViZHRf ZWJsYyhmb3JtYXRfaW5mbzogJkZvbnRGb3JtYXRJbmZvKSAtPiBib29sOworKyAgICAgICAgZm4g aXNfdmFyaWFibGUoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbDsKKysgICAg ICAgIGZuIGlzX3NiaXgoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbDsKKysg ICAgICAgIGZuIGlzX2NmZjIoZm9ybWF0X2luZm86ICZGb250Rm9ybWF0SW5mbykgLT4gYm9vbDsK KysgICAgICAgIGZuIGlzX2F2YXIyKGZvcm1hdF9pbmZvOiAmRm9udEZvcm1hdEluZm8pIC0+IGJv b2w7CisrICAgIH0KKyt9CgpkaWZmIC0tZ2l0IGEvY2hyb21pdW0tMTU0LWZ0YmZzLXByaXZhdGUt dmVyaWZpY2F0aW9uLXRva2Vucy5wYXRjaCBiL2Nocm9taXVtLTE1NC1mdGJmcy1wcml2YXRlLXZl cmlmaWNhdGlvbi10b2tlbnMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uOTBiZmQ2MQotLS0gL2Rldi9udWxsCisrKyBiL2Nocm9taXVtLTE1NC1mdGJmcy1wcml2YXRl LXZlcmlmaWNhdGlvbi10b2tlbnMucGF0Y2gKQEAgLTAsMCArMSwyOTcgQEAKK3VuZ29vZ2xlZCBj aHJvbWl1bSBwYXRjaCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS91bmdvb2dsZWQtc29mdHdhcmUv dW5nb29nbGVkLWNocm9taXVtL3B1bGwvMzk2NgorCistLS0gYS9jaHJvbWUvYnJvd3Nlci9CVUlM RC5nbgorKysrIGIvY2hyb21lL2Jyb3dzZXIvQlVJTEQuZ24KK0BAIC0xMDIyLDcgKzEwMjIsNiBA QCBzb3VyY2Vfc2V0KCJjb3JlIikgeworICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcmVsb2FkaW5n L3NlYXJjaF9wcmVsb2FkOmZlYXR1cmUiLAorICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcml2YWN5 X3NhbmRib3g6aGVhZGVycyIsCisgICAgICIvL2Nocm9tZS9icm93c2VyL3ByaXZhdGVfYWkiLAor LSAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnMiLAorICAg ICAiLy9jaHJvbWUvYnJvd3Nlci9wcm9maWxlczptaXNjIiwKKyAgICAgIi8vY2hyb21lL2Jyb3dz ZXIvcHJvZmlsZXM6cHJvZmlsZV9pb19kYXRhIiwKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJv ZmlsZXM6cHJvZmlsZXNfZXh0cmFfcGFydHMiLAorQEAgLTIyMTUsNyArMjIxNCw2IEBAIHNvdXJj ZV9zZXQoImJyb3dzZXIiKSB7CisgICAgICIvL2Nocm9tZS9icm93c2VyL3ByZWxvYWRpbmcvc2Vh cmNoX3ByZWxvYWQiLAorICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcml2YWN5IiwKKyAgICAgIi8v Y2hyb21lL2Jyb3dzZXIvcHJpdmFjeV9zYW5kYm94OmltcGwiLAorLSAgICAiLy9jaHJvbWUvYnJv d3Nlci9wcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnMiLAorICAgICAiLy9jaHJvbWUvYnJvd3Nl ci9wcm9maWxlczptaXNjIiwKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJvZmlsZXM6cHJvZmls ZV91dGlsX2ltcGwiLAorICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcm9maWxlczpwcm9maWxlc19l eHRyYV9wYXJ0c19pbXBsIiwKKy0tLSBhL2Nocm9tZS9icm93c2VyL2Jyb3dzaW5nX2RhdGEvQlVJ TEQuZ24KKysrKyBiL2Nocm9tZS9icm93c2VyL2Jyb3dzaW5nX2RhdGEvQlVJTEQuZ24KK0BAIC0x MjUsNyArMTI1LDYgQEAgc291cmNlX3NldCgiaW1wbCIpIHsKKyAgICAgIi8vY2hyb21lL2Jyb3dz ZXIvcHJlbG9hZGluZy9wcmVmZXRjaC9ub19zdGF0ZV9wcmVmZXRjaCIsCisgICAgICIvL2Nocm9t ZS9icm93c2VyL3ByZWxvYWRpbmcvcHJlZmV0Y2gvc2VhcmNoX3ByZWZldGNoIiwKKyAgICAgIi8v Y2hyb21lL2Jyb3dzZXIvcHJpdmFjeV9zYW5kYm94OmhlYWRlcnMiLAorLSAgICAiLy9jaHJvbWUv YnJvd3Nlci9wcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnMiLAorICAgICAiLy9jaHJvbWUvYnJv d3Nlci9wcm9maWxlcy9rZWVwX2FsaXZlIiwKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcmVhZGlu Z19saXN0IiwKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvc2FmZV9icm93c2luZyIsCitAQCAtMjY3 LDcgKzI2Niw2IEBAIHNvdXJjZV9zZXQoInVuaXRfdGVzdHMiKSB7CisgICAgICIvL2Nocm9tZS9i cm93c2VyL3BheW1lbnRzL2Jyb3dzZXJfYmluZGluZzpicm93c2VyX2JvdW5kX2tleV9kZWxldGVy IiwKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcGF5bWVudHMvYnJvd3Nlcl9iaW5kaW5nOnRlc3Rf c3VwcG9ydCIsCisgICAgICIvL2Nocm9tZS9icm93c2VyL3Blcm1pc3Npb25zIiwKKy0gICAgIi8v Y2hyb21lL2Jyb3dzZXIvcHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zIiwKKyAgICAgIi8vY2hy b21lL2Jyb3dzZXIvcmVhZGluZ19saXN0IiwKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvc2FmZV9i cm93c2luZzp2ZXJkaWN0X2NhY2hlX21hbmFnZXJfZmFjdG9yeSIsCisgICAgICIvL2Nocm9tZS9i cm93c2VyL3NlZ21lbnRhdGlvbl9wbGF0Zm9ybSIsCitAQCAtMjk1LDcgKzI5Myw2IEBAIHNvdXJj ZV9zZXQoInVuaXRfdGVzdHMiKSB7CisgICAgICIvL2NvbXBvbmVudHMvcHJpdmFjeV9zYW5kYm94 OnByaXZhY3lfc2FuZGJveF9zZXR0aW5nc19oZWFkZXJzIiwKKyAgICAgIi8vY29tcG9uZW50cy9w cml2YWN5X3NhbmRib3gvcHJpdmFjeV9zYW5kYm94X2F0dGVzdGF0aW9ucyIsCisgICAgICIvL2Nv bXBvbmVudHMvcHJpdmFjeV9zYW5kYm94L3ByaXZhY3lfc2FuZGJveF9hdHRlc3RhdGlvbnM6dGVz dF9zdXBwb3J0IiwKKy0gICAgIi8vY29tcG9uZW50cy9wcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tl bnMvY29tbW9uOnByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vuc19kYXRhYmFzZSIsCisgICAgICIv L2NvbXBvbmVudHMvcmVhZGluZ19saXN0L2NvcmU6dGVzdF9zdXBwb3J0IiwKKyAgICAgIi8vY29t cG9uZW50cy9zYWZlX2Jyb3dzaW5nL2NvcmUvYnJvd3Nlcjp2ZXJkaWN0X2NhY2hlX21hbmFnZXIi LAorICAgICAiLy9jb21wb25lbnRzL3NpdGVfZW5nYWdlbWVudC9jb250ZW50IiwKKy0tLSBhL2No cm9tZS9icm93c2VyL2Jyb3dzaW5nX2RhdGEvY2hyb21lX2Jyb3dzaW5nX2RhdGFfbW9kZWxfZGVs ZWdhdGUuY2MKKysrKyBiL2Nocm9tZS9icm93c2VyL2Jyb3dzaW5nX2RhdGEvY2hyb21lX2Jyb3dz aW5nX2RhdGFfbW9kZWxfZGVsZWdhdGUuY2MKK0BAIC0xMjcsMTUgKzEyNyw2IEBAIHZvaWQgQ2hy b21lQnJvd3NpbmdEYXRhTW9kZWxEZWxlZ2F0ZTo6R2UKKyAKKyAgIEdldEFsbE1lZGlhRGV2aWNl U2FsdERhdGFLZXlzKGNvbmN1cnJlbnQuQ3JlYXRlQ2FsbGJhY2soKSwge30pOworIAorLSAgaWYg KGJhc2U6OkZlYXR1cmVMaXN0OjpJc0VuYWJsZWQoCistICAgICAgICAgIG5ldDo6ZmVhdHVyZXM6 OmtFbmFibGVQcml2YXRlVmVyaWZpY2F0aW9uVG9rZW5zKSkgeworLSAgICBpZiAoYXV0byogcHZ0 X3NlcnZpY2UgPQorLSAgICAgICAgICAgIFByaXZhdGVWZXJpZmljYXRpb25Ub2tlbnNTZXJ2aWNl RmFjdG9yeTo6R2V0Rm9yUHJvZmlsZShwcm9maWxlXykpIHsKKy0gICAgICBwdnRfc2VydmljZS0+ R2V0VG9rZW5Jc3N1ZXJzKAorLSAgICAgICAgICBiYXNlOjpCaW5kT25jZSgmUHJpdmF0ZVZlcmlm aWNhdGlvblRva2VuQnJvd3NpbmdEYXRhVG9EZWxlZ2F0ZUVudHJpZXMpCistICAgICAgICAgICAg ICAuVGhlbihjb25jdXJyZW50LkNyZWF0ZUNhbGxiYWNrKCkpKTsKKy0gICAgfQorLSAgfQorIAor ICAgLy8gVE9ETyhjcmJ1Zy5jb20vNDAyMDU2MDMpOiBJbXBsZW1lbnQgZGF0YSByZXRyaWV2YWwg Zm9yIHJlbWFpbmluZyBkYXRhCisgICAvLyB0eXBlcy4KK0BAIC0xODAsMjAgKzE3MSw2IEBAIHZv aWQgQ2hyb21lQnJvd3NpbmdEYXRhTW9kZWxEZWxlZ2F0ZTo6UmUKKyAgIH0KKyAjZW5kaWYgIC8v ICFCVUlMREZMQUcoSVNfQU5EUk9JRCkKKyAKKy0gIGlmIChiYXNlOjpGZWF0dXJlTGlzdDo6SXNF bmFibGVkKAorLSAgICAgICAgICBuZXQ6OmZlYXR1cmVzOjprRW5hYmxlUHJpdmF0ZVZlcmlmaWNh dGlvblRva2VucykgJiYKKy0gICAgICBzdG9yYWdlX3R5cGVzLkhhcyhzdGF0aWNfY2FzdDxCcm93 c2luZ0RhdGFNb2RlbDo6U3RvcmFnZVR5cGU+KAorLSAgICAgICAgICBTdG9yYWdlVHlwZTo6a1By aXZhdGVWZXJpZmljYXRpb25Ub2tlbnMpKSkgeworLSAgICBpZiAoY29uc3QgdXJsOjpPcmlnaW4q IG9yaWdpbiA9IHN0ZDo6Z2V0X2lmPHVybDo6T3JpZ2luPigmZGF0YV9rZXkpKSB7CistICAgICAg aWYgKGF1dG8qIHB2dF9zZXJ2aWNlID0KKy0gICAgICAgICAgICAgIFByaXZhdGVWZXJpZmljYXRp b25Ub2tlbnNTZXJ2aWNlRmFjdG9yeTo6R2V0Rm9yUHJvZmlsZSgKKy0gICAgICAgICAgICAgICAg ICBwcm9maWxlXykpIHsKKy0gICAgICAgIHB2dF9zZXJ2aWNlLT5EZWxldGVUb2tlbnMoYmFzZTo6 VGltZSgpLCBiYXNlOjpUaW1lOjpNYXgoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uY3VycmVudC5DcmVhdGVDbG9zdXJlKCksCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPHVybDo6T3JpZ2luPnsqb3JpZ2lufSk7CistICAgICAg fQorLSAgICB9CistICB9CisgCisgICBzdGQ6Om1vdmUoY29uY3VycmVudCkuRG9uZShzdGQ6Om1v dmUoY2FsbGJhY2spKTsKKyB9CistLS0gYS9jaHJvbWUvYnJvd3Nlci9icm93c2luZ19kYXRhL2No cm9tZV9icm93c2luZ19kYXRhX3JlbW92ZXJfZGVsZWdhdGUuY2MKKysrKyBiL2Nocm9tZS9icm93 c2VyL2Jyb3dzaW5nX2RhdGEvY2hyb21lX2Jyb3dzaW5nX2RhdGFfcmVtb3Zlcl9kZWxlZ2F0ZS5j YworQEAgLTcyMCwyOSArNzIwLDYgQEAgdm9pZCBDaHJvbWVCcm93c2luZ0RhdGFSZW1vdmVyRGVs ZWdhdGU6OgorICNlbmRpZiAgLy8gQlVJTERGTEFHKElTX0NIUk9NRU9TKQorICAgfQorIAorLSAg Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vCistICAvLyBEQVRBX1RZUEVfUFJJVkFURV9WRVJJRklDQVRJ T05fVE9LRU5TCistICBpZiAocmVtb3ZlX21hc2sgJiBjb25zdGFudHM6OkRBVEFfVFlQRV9QUklW QVRFX1ZFUklGSUNBVElPTl9UT0tFTlMpIHsKKy0gICAgaWYgKGJhc2U6OkZlYXR1cmVMaXN0OjpJ c0VuYWJsZWQoCistICAgICAgICAgICAgbmV0OjpmZWF0dXJlczo6a0VuYWJsZVByaXZhdGVWZXJp ZmljYXRpb25Ub2tlbnMpKSB7CistICAgICAgaWYgKGF1dG8qIHB2dF9zZXJ2aWNlID0KKy0gICAg ICAgICAgICAgIFByaXZhdGVWZXJpZmljYXRpb25Ub2tlbnNTZXJ2aWNlRmFjdG9yeTo6R2V0Rm9y UHJvZmlsZSgKKy0gICAgICAgICAgICAgICAgICBwcm9maWxlXykpIHsKKy0gICAgICAgIGF1dG8g ZG9uZV9jbG9zdXJlID0gQ3JlYXRlVGFza0NvbXBsZXRpb25DbG9zdXJlKAorLSAgICAgICAgICAg IFRyYWNpbmdEYXRhVHlwZTo6a1ByaXZhdGVWZXJpZmljYXRpb25Ub2tlbnMpOworLQorLSAgICAg ICAgaWYgKGZpbHRlcl9idWlsZGVyLT5NYXRjaGVzQWxsT3JpZ2luc0FuZERvbWFpbnMoKSkgewor LSAgICAgICAgICBwdnRfc2VydmljZS0+RGVsZXRlVG9rZW5zKGRlbGV0ZV9iZWdpbl8sIGRlbGV0 ZV9lbmRfLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6bW92ZShk b25lX2Nsb3N1cmUpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qaXNz dWVycz0qL3N0ZDo6bnVsbG9wdCk7CistICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICBwdnRf c2VydmljZS0+RGVsZXRlVG9rZW5zQnlGaWx0ZXIoCistICAgICAgICAgICAgICBkZWxldGVfYmVn aW5fLCBkZWxldGVfZW5kXywKKy0gICAgICAgICAgICAgIGZpbHRlcl9idWlsZGVyLT5CdWlsZFN0 b3JhZ2VLZXlGaWx0ZXIoKSwgc3RkOjptb3ZlKGRvbmVfY2xvc3VyZSkpOworLSAgICAgICAgfQor LSAgICAgIH0KKy0gICAgfQorLSAgfQorIAorICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAv LyBEQVRBX1RZUEVfQ09OVEVOVF9TRVRUSU5HUworLS0tIGEvY2hyb21lL2Jyb3dzZXIvY2hyb21l X2NvbnRlbnRfYnJvd3Nlcl9jbGllbnQuY2MKKysrKyBiL2Nocm9tZS9icm93c2VyL2Nocm9tZV9j b250ZW50X2Jyb3dzZXJfY2xpZW50LmNjCitAQCAtNjAwOSwyMSArNjAwOSw2IEBAIENocm9tZUNv bnRlbnRCcm93c2VyQ2xpZW50OjpDcmVhdGVVUkxMb2EKKyAgICAgcmVzdWx0LnB1c2hfYmFjayhz dGQ6Om1vdmUoc2lnbmluX3Rocm90dGxlKSk7CisgICB9CisgCistICBpZiAoYmFzZTo6RmVhdHVy ZUxpc3Q6OklzRW5hYmxlZCgKKy0gICAgICAgICAgbmV0OjpmZWF0dXJlczo6a0VuYWJsZVByaXZh dGVWZXJpZmljYXRpb25Ub2tlbnMpICYmCistICAgICAgcmVxdWVzdC5pc19vdXRlcm1vc3RfbWFp bl9mcmFtZSkgeworLSAgICBpZiAoYXV0byogcHZ0X3NlcnZpY2UgPQorLSAgICAgICAgICAgIFBy aXZhdGVWZXJpZmljYXRpb25Ub2tlbnNTZXJ2aWNlRmFjdG9yeTo6R2V0Rm9yUHJvZmlsZShwcm9m aWxlKSkgeworLSAgICAgIGF1dG8gdXJsX2xvYWRlcl9mYWN0b3J5ID0gcHJvZmlsZS0+R2V0RGVm YXVsdFN0b3JhZ2VQYXJ0aXRpb24oKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC0+R2V0VVJMTG9hZGVyRmFjdG9yeUZvckJyb3dzZXJQcm9jZXNzKCk7CistICAgICAgaWYg KGF1dG8gcHZ0X3Rocm90dGxlID0KKy0gICAgICAgICAgICAgIFByaXZhdGVWZXJpZmljYXRpb25U b2tlbnNVUkxMb2FkZXJUaHJvdHRsZTo6Q3JlYXRlKAorLSAgICAgICAgICAgICAgICAgIHB2dF9z ZXJ2aWNlLCBwcm9maWxlLT5Jc09mZlRoZVJlY29yZCgpLAorLSAgICAgICAgICAgICAgICAgIHN0 ZDo6bW92ZSh1cmxfbG9hZGVyX2ZhY3RvcnkpKSkgeworLSAgICAgICAgcmVzdWx0LnB1c2hfYmFj ayhzdGQ6Om1vdmUocHZ0X3Rocm90dGxlKSk7CistICAgICAgfQorLSAgICB9CistICB9CisgCisg ICBpZiAoYXV0byBjb250ZXh0dWFsX3Rhc2tzX3Rocm90dGxlID0KKyAgICAgICAgICAgY29udGV4 dHVhbF90YXNrczo6Q29udGV4dHVhbFRhc2tzVVJMTG9hZGVyVGhyb3R0bGU6Ok1heWJlQ3JlYXRl KAorLS0tIGEvY2hyb21lL2Jyb3dzZXIvY29tcG9uZW50X3VwZGF0ZXIvQlVJTEQuZ24KKysrKyBi L2Nocm9tZS9icm93c2VyL2NvbXBvbmVudF91cGRhdGVyL0JVSUxELmduCitAQCAtMTQ3LDcgKzE0 Nyw2IEBAIHNvdXJjZV9zZXQoImltcGwiKSB7CisgICAgICIvL2Nocm9tZS9icm93c2VyL25ldCIs CisgICAgICIvL2Nocm9tZS9icm93c2VyL3BhZ2VfbG9hZF9tZXRyaWNzIiwKKyAgICAgIi8vY2hy b21lL2Jyb3dzZXIvcGVybWlzc2lvbnMiLAorLSAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcml2YXRl X3ZlcmlmaWNhdGlvbl90b2tlbnMiLAorICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcm9maWxlczpw cm9maWxlIiwKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvdXBkYXRlX2NsaWVudCIsCisgICAgICIv L2Nocm9tZS9jb21tb24iLAorQEAgLTE2Myw3ICsxNjIsNiBAQCBzb3VyY2Vfc2V0KCJpbXBsIikg eworICAgICAiLy9jb21wb25lbnRzL3Blcm1pc3Npb25zIiwKKyAgICAgIi8vY29tcG9uZW50cy9w cml2YWN5X3NhbmRib3g6ZmVhdHVyZXMiLAorICAgICAiLy9jb21wb25lbnRzL3ByaXZhY3lfc2Fu ZGJveC9wcml2YWN5X3NhbmRib3hfYXR0ZXN0YXRpb25zIiwKKy0gICAgIi8vY29tcG9uZW50cy9w cml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnMvY29tbW9uOnByaXZhdGVfdmVyaWZpY2F0aW9uX3Rv a2Vuc19pc3N1ZXJfY29uZmlnIiwKKyAgICAgIi8vY29tcG9uZW50cy9zYWZlX2Jyb3dzaW5nL2Nv cmUvY29tbW9uOmZlYXR1cmVzIiwKKyAgICAgIi8vY29tcG9uZW50cy9zZWFyY2giLAorICAgICAi Ly9jb21wb25lbnRzL3NlY3VyaXR5X2ludGVyc3RpdGlhbHMvY29udGVudDpzZWN1cml0eV9pbnRl cnN0aXRpYWxfcGFnZSIsCistLS0gYS9jaHJvbWUvYnJvd3Nlci9jb21wb25lbnRfdXBkYXRlci9w cml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnNfaW5zdGFsbGVyLmNjCisrKysgYi9jaHJvbWUvYnJv d3Nlci9jb21wb25lbnRfdXBkYXRlci9wcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnNfaW5zdGFs bGVyLmNjCitAQCAtMjUsMzIgKzI1LDYgQEAgbmFtZXNwYWNlIGNvbXBvbmVudF91cGRhdGVyIHsK KyAKKyB2b2lkIFJlZ2lzdGVyUHJpdmF0ZVZlcmlmaWNhdGlvblRva2Vuc0NvbXBvbmVudElmRW5h YmxlZCgKKyAgICAgQ29tcG9uZW50VXBkYXRlU2VydmljZSogY3VzKSB7CistICBpZiAoIWJhc2U6 OkZlYXR1cmVMaXN0OjpJc0VuYWJsZWQoCistICAgICAgICAgIG5ldDo6ZmVhdHVyZXM6OmtFbmFi bGVQcml2YXRlVmVyaWZpY2F0aW9uVG9rZW5zKSkgeworLSAgICByZXR1cm47CistICB9CistCist ICBhdXRvIGluc3RhbGxlciA9IGJhc2U6Ok1ha2VSZWZDb3VudGVkPENvbXBvbmVudEluc3RhbGxl cj4oCistICAgICAgc3RkOjptYWtlX3VuaXF1ZTxQcml2YXRlVmVyaWZpY2F0aW9uVG9rZW5zSW5z dGFsbGVyUG9saWN5PigKKy0gICAgICAgICAgYmFzZTo6QmluZFJlcGVhdGluZygKKy0gICAgICAg ICAgICAgIFtdKHNjb3BlZF9yZWZwdHI8cHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zOjoKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByaXZhdGVWZXJpZmljYXRpb25Ub2tl bnNJc3N1ZXJDb25maWc+CistICAgICAgICAgICAgICAgICAgICAgaXNzdWVyX2NvbmZpZykgewor LSAgICAgICAgICAgICAgICBQcml2YXRlVmVyaWZpY2F0aW9uVG9rZW5zU2VydmljZUZhY3Rvcnk6 OlNldEdsb2JhbElzc3VlckNvbmZpZygKKy0gICAgICAgICAgICAgICAgICAgIGlzc3Vlcl9jb25m aWcpOworLSAgICAgICAgICAgICAgICBpZiAoZ19icm93c2VyX3Byb2Nlc3MgJiYgZ19icm93c2Vy X3Byb2Nlc3MtPnByb2ZpbGVfbWFuYWdlcigpKSB7CistICAgICAgICAgICAgICAgICAgZm9yIChQ cm9maWxlKiBwcm9maWxlIDogZ19icm93c2VyX3Byb2Nlc3MtPnByb2ZpbGVfbWFuYWdlcigpCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+R2V0TG9hZGVk UHJvZmlsZXMoKSkgeworLSAgICAgICAgICAgICAgICAgICAgaWYgKFByaXZhdGVWZXJpZmljYXRp b25Ub2tlbnNTZXJ2aWNlKiBzZXJ2aWNlID0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg UHJpdmF0ZVZlcmlmaWNhdGlvblRva2Vuc1NlcnZpY2VGYWN0b3J5OjoKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEdldEZvclByb2ZpbGVJZkV4aXN0cyhwcm9maWxlKSkgeworLSAg ICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlLT5TZXRJc3N1ZXJDb25maWcoaXNzdWVyX2NvbmZp Zyk7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgfQorLSAgICAg ICAgICAgICAgICB9CistICAgICAgICAgICAgICB9KSkpOworLQorLSAgaW5zdGFsbGVyLT5SZWdp c3RlcihjdXMsIGJhc2U6Ok9uY2VDbG9zdXJlKCkpOworIH0KKyAKKyB9ICAvLyBuYW1lc3BhY2Ug Y29tcG9uZW50X3VwZGF0ZXIKKy0tLSBhL2Nocm9tZS9icm93c2VyL3ByaXZhdGVfdmVyaWZpY2F0 aW9uX3Rva2Vucy9CVUlMRC5nbgorKysrIGIvY2hyb21lL2Jyb3dzZXIvcHJpdmF0ZV92ZXJpZmlj YXRpb25fdG9rZW5zL0JVSUxELmduCitAQCAtMjYsMTEgKzI2LDYgQEAgc3RhdGljX2xpYnJhcnko InByaXZhdGVfdmVyaWZpY2F0aW9uX3RvaworICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcm9maWxl czpwcm9maWxlIiwKKyAgICAgIi8vY29tcG9uZW50cy9jb250ZW50X3NldHRpbmdzL2NvcmUvYnJv d3NlciIsCisgICAgICIvL2NvbXBvbmVudHMva2V5ZWRfc2VydmljZS9jb3JlIiwKKy0gICAgIi8v Y29tcG9uZW50cy9wcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnMvY29tbW9uOnByaXZhY3lfcGFz c19hdGhtX2JhdGNoX3JlcXVlc3QiLAorLSAgICAiLy9jb21wb25lbnRzL3ByaXZhdGVfdmVyaWZp Y2F0aW9uX3Rva2Vucy9jb21tb246cHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zX2ZldGNoZXIi LAorLSAgICAiLy9jb21wb25lbnRzL3ByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vucy9jb21tb246 cHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zX2lzc3Vlcl9jb25maWciLAorLSAgICAiLy9jb21w b25lbnRzL3ByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vucy9jb21tb246cHJpdmF0ZV92ZXJpZmlj YXRpb25fdG9rZW5zX3BhcmFtZXRlcnMiLAorLSAgICAiLy9jb21wb25lbnRzL3ByaXZhdGVfdmVy aWZpY2F0aW9uX3Rva2Vucy9jb21tb246cHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zX3N0b3Jl IiwKKyAgICAgIi8vY29udGVudC9wdWJsaWMvYnJvd3NlciIsCisgICAgICIvL25ldCIsCisgICAg ICIvL3NlcnZpY2VzL25ldHdvcmsvcHVibGljL2NwcCIsCitAQCAtNDksOSArNDQsNiBAQCBzb3Vy Y2Vfc2V0KCJicm93c2VyX3Rlc3RzIikgeworICAgICAiLy9jaHJvbWUvYnJvd3Nlci9jb250ZW50 X3NldHRpbmdzOmNvbnRlbnRfc2V0dGluZ3NfZmFjdG9yeSIsCisgICAgICIvL2Nocm9tZS90ZXN0 OnRlc3Rfc3VwcG9ydCIsCisgICAgICIvL2NvbXBvbmVudHMvY29udGVudF9zZXR0aW5ncy9jb3Jl L2NvbW1vbiIsCistICAgICIvL2NvbXBvbmVudHMvcHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5z L2NvbW1vbjphdGhtX3Rlc3RfaXNzdWVyIiwKKy0gICAgIi8vY29tcG9uZW50cy9wcml2YXRlX3Zl cmlmaWNhdGlvbl90b2tlbnMvY29tbW9uOnByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vuc19kYXRh YmFzZSIsCistICAgICIvL2NvbXBvbmVudHMvcHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zL2Nv bW1vbjpwcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnNfaXNzdWVyX2NvbmZpZyIsCisgICAgICIv L25ldDp0ZXN0X3N1cHBvcnQiLAorICAgICAiLy9zZXJ2aWNlcy9uZXR3b3JrOnRlc3Rfc3VwcG9y dCIsCisgICAgICIvL3VybCIsCitAQCAtNzIsMTEgKzY0LDYgQEAgc291cmNlX3NldCgidW5pdF90 ZXN0cyIpIHsKKyAgICAgIi8vY2hyb21lL3Rlc3Q6dGVzdF9zdXBwb3J0IiwKKyAgICAgIi8vY29t cG9uZW50cy9jb250ZW50X3NldHRpbmdzL2NvcmUvYnJvd3NlciIsCisgICAgICIvL2NvbXBvbmVu dHMvY29udGVudF9zZXR0aW5ncy9jb3JlL2NvbW1vbiIsCistICAgICIvL2NvbXBvbmVudHMvcHJp dmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zL2NvbW1vbjphdGhtX3Rlc3RfaXNzdWVyIiwKKy0gICAg Ii8vY29tcG9uZW50cy9wcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnMvY29tbW9uOnByaXZhdGVf dmVyaWZpY2F0aW9uX3Rva2Vuc19kYXRhYmFzZSIsCistICAgICIvL2NvbXBvbmVudHMvcHJpdmF0 ZV92ZXJpZmljYXRpb25fdG9rZW5zL2NvbW1vbjpwcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnNf aXNzdWVyX2NvbmZpZyIsCistICAgICIvL2NvbXBvbmVudHMvcHJpdmF0ZV92ZXJpZmljYXRpb25f dG9rZW5zL2NvbW1vbjpwcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tlbnNfcGFyYW1ldGVycyIsCist ICAgICIvL2NvbXBvbmVudHMvcHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zL2NvbW1vbjp0ZXN0 X3N1cHBvcnQiLAorICAgICAiLy9jb250ZW50L3Rlc3Q6dGVzdF9zdXBwb3J0IiwKKyAgICAgIi8v bmV0IiwKKyAgICAgIi8vc2VydmljZXMvbmV0d29yazp0ZXN0X3N1cHBvcnQiLAorLS0tIGEvY2hy b21lL2Jyb3dzZXIvcHJvZmlsZXMvQlVJTEQuZ24KKysrKyBiL2Nocm9tZS9icm93c2VyL3Byb2Zp bGVzL0JVSUxELmduCitAQCAtODA5LDcgKzgwOSw2IEBAIHNvdXJjZV9zZXQoInByb2ZpbGVzX2V4 dHJhX3BhcnRzX2ltcGwiKQorICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcml2YWN5X3NhbmRib3g6 aGVhZGVycyIsCisgICAgICIvL2Nocm9tZS9icm93c2VyL3ByaXZhdGVfYWkiLAorICAgICAiLy9j aHJvbWUvYnJvd3Nlci9wcml2YXRlX2luc2lnaHRzIiwKKy0gICAgIi8vY2hyb21lL2Jyb3dzZXIv cHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zIiwKKyAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHVz aF9tZXNzYWdpbmciLAorICAgICAiLy9jaHJvbWUvYnJvd3Nlci9yZWFkaW5nX2xpc3QiLAorICAg ICAiLy9jaHJvbWUvYnJvd3Nlci9yZWR1Y2VfYWNjZXB0X2xhbmd1YWdlIiwKKy0tLSBhL2Nocm9t ZS9icm93c2VyL3Byb2ZpbGVzL2Nocm9tZV9icm93c2VyX21haW5fZXh0cmFfcGFydHNfcHJvZmls ZXMuY2MKKysrKyBiL2Nocm9tZS9icm93c2VyL3Byb2ZpbGVzL2Nocm9tZV9icm93c2VyX21haW5f ZXh0cmFfcGFydHNfcHJvZmlsZXMuY2MKK0BAIC0xMzcxLDcgKzEzNzEsNiBAQCB2b2lkIENocm9t ZUJyb3dzZXJNYWluRXh0cmFQYXJ0c1Byb2ZpbGVzCisgICBQcml2YWN5TWV0cmljc1NlcnZpY2VG YWN0b3J5OjpHZXRJbnN0YW5jZSgpOworICAgUHJpdmFjeVNhbmRib3hTZXJ2aWNlRmFjdG9yeTo6 R2V0SW5zdGFuY2UoKTsKKyAgIFByaXZhY3lTYW5kYm94U2V0dGluZ3NGYWN0b3J5OjpHZXRJbnN0 YW5jZSgpOworLSAgUHJpdmF0ZVZlcmlmaWNhdGlvblRva2Vuc1NlcnZpY2VGYWN0b3J5OjpHZXRJ bnN0YW5jZSgpOworICAgcHJpdmF0ZV9haTo6UHJpdmF0ZUFpU2VydmljZUZhY3Rvcnk6OkdldElu c3RhbmNlKCk7CisgICBQcm9maWxlTmV0d29ya0NvbnRleHRTZXJ2aWNlRmFjdG9yeTo6R2V0SW5z dGFuY2UoKTsKKyAgIFByb2ZpbGVQYXNzd29yZFN0b3JlRmFjdG9yeTo6R2V0SW5zdGFuY2UoKTsK Ky0tLSBhL2Nocm9tZS90ZXN0L0JVSUxELmduCisrKysgYi9jaHJvbWUvdGVzdC9CVUlMRC5nbgor QEAgLTIxMzcsNyArMjEzNyw2IEBAIGlmICghaXNfYW5kcm9pZCkgeworICAgICAgICIvL2Nocm9t ZS9icm93c2VyL3ByaXZhY3lfc2FuZGJveDpoZWFkZXJzIiwKKyAgICAgICAiLy9jaHJvbWUvYnJv d3Nlci9wcml2YWN5X3NhbmRib3g6dGVzdF9zdXBwb3J0IiwKKyAgICAgICAiLy9jaHJvbWUvYnJv d3Nlci9wcml2YXRlX2FpIiwKKy0gICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcml2YXRlX3Zlcmlm aWNhdGlvbl90b2tlbnM6YnJvd3Nlcl90ZXN0cyIsCisgICAgICAgIi8vY2hyb21lL2Jyb3dzZXIv cHJvZmlsZV9yZXNldHRlciIsCisgICAgICAgIi8vY2hyb21lL2Jyb3dzZXIvcHJvZmlsZV9yZXNl dHRlcjpicm93c2VyX3Rlc3RzIiwKKyAgICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcm9maWxlcyIs CitAQCAtNTQwMSw3ICs1NDAwLDYgQEAgdGVzdCgidW5pdF90ZXN0cyIpIHsKKyAgICAgIi8vY2hy b21lL2Jyb3dzZXIvcHJlbG9hZGluZy9wcmVyZW5kZXI6dW5pdF90ZXN0cyIsCisgICAgICIvL2No cm9tZS9icm93c2VyL3ByaXZhY3lfc2FuZGJveDp1bml0X3Rlc3RzIiwKKyAgICAgIi8vY2hyb21l L2Jyb3dzZXIvcHJpdmF0ZV9haTp1bml0X3Rlc3RzIiwKKy0gICAgIi8vY2hyb21lL2Jyb3dzZXIv cHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zOnVuaXRfdGVzdHMiLAorICAgICAiLy9jaHJvbWUv YnJvd3Nlci9wcm9maWxlcyIsCisgICAgICIvL2Nocm9tZS9icm93c2VyL3Byb2ZpbGVzOm1pc2Mi LAorICAgICAiLy9jaHJvbWUvYnJvd3Nlci9wcm9maWxlczpwcm9maWxlX2Rvd25sb2FkZXIiLAor LS0tIGEvY29tcG9uZW50cy9CVUlMRC5nbgorKysrIGIvY29tcG9uZW50cy9CVUlMRC5nbgorQEAg LTMxNCw3ICszMTQsNiBAQCB0ZXN0KCJjb21wb25lbnRzX3VuaXR0ZXN0cyIpIHsKKyAgICAgIi8v Y29tcG9uZW50cy9wb3dlcl9tZXRyaWNzOnVuaXRfdGVzdHMiLAorICAgICAiLy9jb21wb25lbnRz L3ByZWZzOnVuaXRfdGVzdHMiLAorICAgICAiLy9jb21wb25lbnRzL3ByaXZhY3lfc2FuZGJveDp1 bml0X3Rlc3RzIiwKKy0gICAgIi8vY29tcG9uZW50cy9wcml2YXRlX3ZlcmlmaWNhdGlvbl90b2tl bnM6dW5pdF90ZXN0cyIsCisgICAgICIvL2NvbXBvbmVudHMvcHJvZmlsZV9tZXRyaWNzOnVuaXRf dGVzdHMiLAorICAgICAiLy9jb21wb25lbnRzL3Byb3RvX2V4dHJhczp1bml0X3Rlc3RzIiwKKyAg ICAgIi8vY29tcG9uZW50cy9wcm94eV9jb25maWc6dW5pdF90ZXN0cyIsCistLS0gYS9jb21wb25l bnRzL2NvbXBvbmVudF91cGRhdGVyL2luc3RhbGxlcl9wb2xpY2llcy9CVUlMRC5nbgorKysrIGIv Y29tcG9uZW50cy9jb21wb25lbnRfdXBkYXRlci9pbnN0YWxsZXJfcG9saWNpZXMvQlVJTEQuZ24K K0BAIC0zOCw3ICszOCw2IEBAIHN0YXRpY19saWJyYXJ5KCJpbnN0YWxsZXJfcG9saWNpZXNfbm9f Y28KKyAgICAgIi8vY29tcG9uZW50cy9sb29rYWxpa2VzL2NvcmU6cHJvdG8iLAorICAgICAiLy9j b21wb25lbnRzL2xvb2thbGlrZXMvY29yZTpzYWZldHlfdGlwcyIsCisgICAgICIvL2NvbXBvbmVu dHMvcHJlZnMiLAorLSAgICAiLy9jb21wb25lbnRzL3ByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vu cy9jb21tb246cHJpdmF0ZV92ZXJpZmljYXRpb25fdG9rZW5zX2lzc3Vlcl9jb25maWciLAorICAg ICAiLy9jb21wb25lbnRzL3VwZGF0ZV9jbGllbnQiLAorICAgICAiLy9tb2pvL3B1YmxpYy9jcHAv YmFzZTpwcm90b2J1Zl9zdXBwb3J0IiwKKyAgICAgIi8vc2VydmljZXMvbmV0d29yay9wdWJsaWMv Y3BwIiwKK0BAIC0xMDYsOCArMTA1LDYgQEAgc291cmNlX3NldCgidW5pdF90ZXN0cyIpIHsKKyAg ICAgIi8vY29tcG9uZW50cy9oaXN0b3J5X2VtYmVkZGluZ3MvY29yZSIsCisgICAgICIvL2NvbXBv bmVudHMvb3B0aW1pemF0aW9uX2d1aWRlL2NvcmUiLAorICAgICAiLy9jb21wb25lbnRzL29wdGlt aXphdGlvbl9ndWlkZS9wcm90bzpvcHRpbWl6YXRpb25fZ3VpZGVfcHJvdG8iLAorLSAgICAiLy9j b21wb25lbnRzL3ByaXZhdGVfdmVyaWZpY2F0aW9uX3Rva2Vucy9jb21tb246cHJpdmF0ZV92ZXJp ZmljYXRpb25fdG9rZW5zX2lzc3Vlcl9jb25maWciLAorLSAgICAiLy9jb21wb25lbnRzL3ByaXZh dGVfdmVyaWZpY2F0aW9uX3Rva2Vucy9jb21tb246dGVzdF9zdXBwb3J0IiwKKyAgICAgIi8vbW9q by9wdWJsaWMvY3BwL2Jhc2U6cHJvdG9idWZfc3VwcG9ydCIsCisgICAgICIvL3NlcnZpY2VzL25l dHdvcmsvcHVibGljL2NwcCIsCisgICAgICIvL3Rlc3RpbmcvZ21vY2siLAoKZGlmZiAtLWdpdCBh L2Nocm9taXVtLnNwZWMgYi9jaHJvbWl1bS5zcGVjCmluZGV4IDQ3ZWQ5YzguLjZlNzE0OTEgMTAw NjQ0Ci0tLSBhL2Nocm9taXVtLnNwZWMKKysrIGIvY2hyb21pdW0uc3BlYwpAQCAtMzI3LDggKzMy Nyw3IEBAIFBhdGNoOTM6IGNocm9taXVtLTE0MS1jc3NzX3N0eWxlX3NoZWV0LnBhdGNoCiAKICMg cmV2ZXJ0IHRoZSBwYXRjaCB0byBmaXggdGhlIGJ1aWxkIGVycm9yOiAibGQubGxkOiBlcnJvcjog dW5kZWZpbmVkIHN5bWJvbDogX19zYW5pdGl6ZXJfc2V0X2RlYXRoX2NhbGxiYWNrIgogUGF0Y2g5 NDogY2hyb21pdW0tMTQ4LXY4LXNhbml0aXplLWJ1aWxkLWVycm9yLnBhdGNoCi0jIEZpeCBydXN0 IGJ1aWxkIGVycm9yCi1QYXRjaDk1OiBjaHJvbWl1bS0xNTItYnVpbGQtZXJyb3ItcnVzdC1jYm9y LnBhdGNoCisKICMgRlRCRlMgLSBlcnJvcjogY2Fubm90IGZpbmQgYXR0cmlidXRlIGBzYW5pdGl6 ZWAgaW4gdGhpcyBzY29wZQogIyAgICAtLT4gLi4vLi4vdGhpcmRfcGFydHkvY3JhYmJ5YXZpZi9z cmMvc3JjL2NhcGkvaW8ucnM6MjEwOjQxCiAjICAgICB8CkBAIC00MDMsOCArNDAyLDE0IEBAIFBh dGNoMzExOiBjaHJvbWl1bS0xMjMtZnN0YWNrLXByb3RlY3Rvci1zdHJvbmcucGF0Y2gKICMgRVJS T1IgYXQgLy9idWlsZC9ydXN0L2NydWJpdC9CVUlMRC5nbjoxMjo1OiAKICMgVW5hYmxlIHRvIGxv YWQgdGhpcmRfcGFydHkvcnVzdC10b29sY2hhaW4vbGliL3RoaXJkX3BhcnR5L2NydWJpdC9zdXBw b3J0L3JzX3N0ZC9CVUlMRC5nbgogIyAiJGNydWJpdF9zcmNfZGlyL3N1cHBvcnQvcnNfc3RkOnJz X3N0ZF9jcHAiLAorIyBQYXRjaCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS91bmdvb2dsZWQtc29m dHdhcmUvdW5nb29nbGVkLWNocm9taXVtL3B1bGwvMzk2NgogUGF0Y2gzMTI6IGNocm9taXVtLTE1 NC1mdGJmcy1jcnViaXQucGF0Y2gKIAorIyBGaXggRlRCRlM6CisjIEVSUk9SIFVucmVzb2x2ZWQg ZGVwZW5kZW5jaWVzCisjIFBhdGNoIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3VuZ29vZ2xlZC1z b2Z0d2FyZS91bmdvb2dsZWQtY2hyb21pdW0vcHVsbC8zOTY2CitQYXRjaDMxMzogY2hyb21pdW0t MTU0LWZ0YmZzLXByaXZhdGUtdmVyaWZpY2F0aW9uLXRva2Vucy5wYXRjaAorCiAjIG9sZCBydXN0 IHZlcnNpb24gY2F1c2VzIGJ1aWxkIGVycm9yIG9uIGVsODoKICMgZXJyb3JbRTA1OTldOiBubyBt ZXRob2QgbmFtZWQgYGlzX25vbmVfb3JgIGZvdW5kIGZvciBlbnVtIGBPcHRpb25gIGluIHRoZSBj dXJyZW50IHNjb3BlCiBQYXRjaDMxNDogY2hyb21pdW0tMTM2LXJ1c3Qtc2tyaWZhLWJ1aWxkLWVy cm9yLnBhdGNoCkBAIC0xMTA4LDcgKzExMTMsNiBAQCBRdDYgVUkgZm9yIGNocm9taXVtLgogJXBh dGNoIC1QOTIgLXAxIC1iIC5ub2RlanMtY2hlY2t2ZXJzaW9uCiAlcGF0Y2ggLVA5MyAtcDEgLWIg LmZ0YmZzLWNzc3Nfc3R5bGVfc2hlZXQKICVwYXRjaCAtUDk0IC1wMSAtUiAtYiAudjgtc2FuaXRp emUtYnVpbGQtZXJyb3IKLSVwYXRjaCAtUDk1IC1wMSAtYiAuYnVpbGQtZXJyb3ItcnVzdC1jYm9y CiAlcGF0Y2ggLVA5NiAtcDEgLWIgLmNyYWJieWF2aWYtZnRiZnMtb2xkLXJ1c3QKIAogJWlmICEg JXtidW5kbGVmZm1wZWdmcmVlfQpAQCAtMTE2Miw3ICsxMTY2LDggQEAgUXQ2IFVJIGZvciBjaHJv bWl1bS4KICVwYXRjaCAtUDMxNSAtcDEgLWIgLnJ1c3RjLWZ0YmZzCiAlcGF0Y2ggLVAzMTAgLXAx IC1iIC5ydXN0LUZUQkZTLXN1cHByZXNzLXdhcm5pbmdzCiAlcGF0Y2ggLVAzMTEgLXAxIC1iIC5m c3RhY2stcHJvdGVjdG9yLXN0cm9uZwotJXBhdGNoIC1QMzEyIC1wMSAtUiAtYiAuZnRiZnMtY3J1 Yml0CislcGF0Y2ggLVAzMTIgLXAxIC1iIC5mdGJmcy1jcnViaXQKKyVwYXRjaCAtUDMxMyAtcDEg LWIgLmZ0YmZzLXByaXZhdGUtdmVyaWZpY2F0aW9uLXRva2VucwogCiAlaWYgMCV7P3JoZWx9ICYm IDAlez9yaGVsfSA8IDEwCiAlcGF0Y2ggLVAzNTQgLXAxIC1iIC5zcGxpdC10aHJlc2hvbGQtZm9y LXJlZy13aXRoLWhpbnQKQEAgLTE0MDMsNyArMTQwOCw2IEBAIENIUk9NSVVNX0NPUkVfR05fREVG SU5FUys9JyBob3N0X3Rvb2xjaGFpbj0iLy9idWlsZC90b29sY2hhaW4vbGludXgvdW5idW5kbGU6 ZGVmCiBDSFJPTUlVTV9CUk9XU0VSX0dOX0RFRklORVMrPScgdXNlX2N1c3RvbV9saWJjeHg9ZmFs c2UnCiAlZW5kaWYKIENIUk9NSVVNX0NPUkVfR05fREVGSU5FUys9JyBpc19kZWJ1Zz1mYWxzZSBk Y2hlY2tfYWx3YXlzX29uPWZhbHNlIGRjaGVja19pc19jb25maWd1cmFibGU9ZmFsc2UnCi1DSFJP TUlVTV9DT1JFX0dOX0RFRklORVMrPScgZW5hYmxlX2VudGVycHJpc2VfY29tcGFuaW9uPWZhbHNl JwogQ0hST01JVU1fQ09SRV9HTl9ERUZJTkVTKz0nIHN5c3RlbV9saWJkaXI9IiV7X2xpYn0iJwog CiAlaWYgJXtvZmZpY2lhbF9idWlsZH0K