ZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2NoYW5nZS50eHQgYi9ydW50aW1lL2RvYy9jaGFuZ2UudHh0CmluZGV4IDRjYzY3MTEuLjljNjc5NTMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2NoYW5nZS50eHQKKysrIGIvcnVudGltZS9kb2MvY2hhbmdlLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpjaGFuZ2UudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAzMAorKmNoYW5nZS50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWF5IDA1CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0xNDI5LDggKzE0MjksOSBAQAogImMiCWF1dG9tYXRpYyBmb3JtYXR0aW5nIGZvciBjb21tZW50cywgYnV0IG5vdCB0ZXh0IChnb29kIGZvciBDIGNvZGUpCiAidGMiCWF1dG9tYXRpYyBmb3JtYXR0aW5nIGZvciB0ZXh0IGFuZCBjb21tZW50cwogCi1Ob3RlIHRoYXQgd2hlbiAndGV4dHdpZHRoJyBpcyAwLCBWaW0gZG9lcyBubyBmb3JtYXR0aW5nIGFueXdheSAoYnV0IGRvZXMKLWluc2VydCBjb21tZW50IGxlYWRlcnMgYWNjb3JkaW5nIHRvIHRoZSAnY29tbWVudHMnIG9wdGlvbikuCitOb3RlIHRoYXQgd2hlbiAndGV4dHdpZHRoJyBpcyAwLCBWaW0gZG9lcyBubyBhdXRvbWF0aWMgZm9ybWF0dGluZyBhbnl3YXkgKGJ1dAorZG9lcyBpbnNlcnQgY29tbWVudCBsZWFkZXJzIGFjY29yZGluZyB0byB0aGUgJ2NvbW1lbnRzJyBvcHRpb24pLiAgQW4gZXhjZXB0aW9uCitpcyB3aGVuIHRoZSAnYScgZmxhZyBpcyBwcmVzZW50LiB8YXV0by1mb3JtYXR8CiAKIE5vdGUgdGhhdCB3aGVuICdwYXN0ZScgaXMgb24sIFZpbSBkb2VzIG5vIGZvcm1hdHRpbmcgYXQgYWxsLgogCkBAIC0xNDg1LDYgKzE0ODYsOSBAQAogCiAtIEFkZCB0aGUgJ2MnIGZsYWcgdG8gb25seSBhdXRvLWZvcm1hdCBjb21tZW50cy4gIFVzZWZ1bCBpbiBzb3VyY2UgY29kZS4KIAorLSBTZXQgJ3RleHR3aWR0aCcgdG8gdGhlIGRlc2lyZWQgd2lkdGguICBJZiBpdCBpcyB6ZXJvIHRoZW4gNzkgaXMgdXNlZCwgb3IgdGhlCisgIHdpZHRoIG9mIHRoZSBzY3JlZW4gaWYgdGhpcyBpcyBzbWFsbGVyLgorCiBBbmQgYSBmZXcgd2FybmluZ3M6CiAKIC0gV2hlbiBwYXJ0IG9mIHRoZSB0ZXh0IGlzIG5vdCBwcm9wZXJseSBzZXBhcmF0ZWQgaW4gcGFyYWdyYXBocywgbWFraW5nCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9ldmFsLnR4dCBiL3J1bnRpbWUvZG9jL2V2YWwudHh0CmluZGV4IDM2OTZjOGEuLjk3OTQwODkgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2V2YWwudHh0CisrKyBiL3J1bnRpbWUvZG9jL2V2YWwudHh0CkBAIC0xLDQgKzEsNCBAQAotKmV2YWwudHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjBnLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWF5IDA0CisqZXZhbC50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBNYXkgMDUKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTIzNDYsMTIgKzIzNDYsMTMgQEAKIAkJCWV4aXN0cygiIyNDb2xvclNjaGVtZSIpCiA8CQlUaGVyZSBtdXN0IGJlIG5vIHNwYWNlIGJldHdlZW4gdGhlIHN5bWJvbCAoJi8kLyovIykgYW5kIHRoZQogCQluYW1lLgotCQlUcmFpbGluZyBjaGFyYWN0ZXJzIHRoYXQgY2FuJ3QgYmUgcGFydCBvZiB0aGUgbmFtZSBhcmUgb2Z0ZW4KLQkJaWdub3JlZCwgYnV0IGRvbid0IGRlcGVuZCBvbiBpdCwgaXQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlIQotCQlFeGFtcGxlOiA+Ci0JCQlleGlzdHMoIipzdHJmdGltZSgpIikKLTwJCVRoaXMgY3VycmVudGx5IHdvcmtzLCBidXQgaXQgc2hvdWxkIHJlYWxseSBiZTogPgotCQkJZXhpc3RzKCIqc3RyZnRpbWUiKQorCQlUaGVyZSBtdXN0IGJlIG5vIGV4dHJhIGNoYXJhY3RlcnMgYWZ0ZXIgdGhlIG5hbWUsIGFsdGhvdWdoIGluCisJCWEgZmV3IGNhc2VzIHRoaXMgaXMgaWdub3JlZC4gIFRoYXQgbWF5IGJlY29tZSBtb3JlIHN0cmljdCBpbgorCQl0aGUgZnV0dXJlLCB0aHVzIGRvbid0IGNvdW50IG9uIGl0IQorCQlXb3JraW5nIGV4YW1wbGU6ID4KKwkJCWV4aXN0cygiOm1ha2UiKQorPAkJTk9UIHdvcmtpbmcgZXhhbXBsZTogPgorCQkJZXhpc3RzKCI6bWFrZSBpbnN0YWxsIikKIAogPAkJTm90ZSB0aGF0IHRoZSBhcmd1bWVudCBtdXN0IGJlIGEgc3RyaW5nLCBub3QgdGhlIG5hbWUgb2YgdGhlCiAJCXZhcmlhYmxlIGl0c2VsZi4gIEZvciBleGFtcGxlOiA+CkBAIC0yNjc4LDIxICsyNjc5LDI1IEBACiAJCQk6ZWNobyAidG9kbyBteXZhciA9ICIgLiBnZXRidWZ2YXIoInRvZG8iLCAibXl2YXIiKQogPAogZ2V0Y2hhcihbZXhwcl0pCQkJCQkJKmdldGNoYXIoKSoKLQkJR2V0IGEgc2luZ2xlIGNoYXJhY3RlciBmcm9tIHRoZSB1c2VyLiAgSWYgaXQgaXMgYW4gOC1iaXQKLQkJY2hhcmFjdGVyLCB0aGUgcmVzdWx0IGlzIGEgbnVtYmVyLiAgT3RoZXJ3aXNlIGEgU3RyaW5nIGlzCi0JCXJldHVybmVkIHdpdGggdGhlIGVuY29kZWQgY2hhcmFjdGVyLiAgRm9yIGEgc3BlY2lhbCBrZXkgaXQncyBhCi0JCXNlcXVlbmNlIG9mIGJ5dGVzIHN0YXJ0aW5nIHdpdGggMHg4MCAoZGVjaW1hbDogMTI4KS4KKwkJR2V0IGEgc2luZ2xlIGNoYXJhY3RlciBmcm9tIHRoZSB1c2VyIG9yIGlucHV0IHN0cmVhbS4KIAkJSWYgW2V4cHJdIGlzIG9taXR0ZWQsIHdhaXQgdW50aWwgYSBjaGFyYWN0ZXIgaXMgYXZhaWxhYmxlLgogCQlJZiBbZXhwcl0gaXMgMCwgb25seSBnZXQgYSBjaGFyYWN0ZXIgd2hlbiBvbmUgaXMgYXZhaWxhYmxlLgorCQkJUmV0dXJuIHplcm8gb3RoZXJ3aXNlLgogCQlJZiBbZXhwcl0gaXMgMSwgb25seSBjaGVjayBpZiBhIGNoYXJhY3RlciBpcyBhdmFpbGFibGUsIGl0IGlzCi0JCQkJbm90IGNvbnN1bWVkLiAgSWYgb25lIGlzIGF2YWlsYWJsZSBhIG5vbi16ZXJvCi0JCQkJbnVtYmVyIGlzIHJldHVybmVkLiAgRm9yIGEgb25lLWJ5dGUgY2hhcmFjdGVyCi0JCQkJaXQgaXMgdGhlIGNoYXJhY3RlciBpdHNlbGYuCi0JCUlmIGEgbm9ybWFsIGNoYXJhY3RlciBhdmFpbGFibGUsIGl0IGlzIHJldHVybmVkIGFzIGEgTnVtYmVyLgotCQlVc2UgbnIyY2hhcigpIHRvIGNvbnZlcnQgaXQgdG8gYSBTdHJpbmcuCi0JCVRoZSByZXR1cm5lZCB2YWx1ZSBpcyB6ZXJvIGlmIG5vIGNoYXJhY3RlciBpcyBhdmFpbGFibGUuCi0JCVRoZSByZXR1cm5lZCB2YWx1ZSBpcyBhIHN0cmluZyBvZiBjaGFyYWN0ZXJzIGZvciBzcGVjaWFsIGtleXMKLQkJYW5kIHdoZW4gYSBtb2RpZmllciAoc2hpZnQsIGNvbnRyb2wsIGFsdCkgd2FzIHVzZWQuCisJCQlub3QgY29uc3VtZWQuICBSZXR1cm4gemVybyBpZiBubyBjaGFyYWN0ZXIgYXZhaWxhYmxlLgorCisJCVdpdGhvdXQge2V4cHJ9IGFuZCB3aGVuIHtleHByfSBpcyAwIGEgd2hvbGUgY2hhcmFjdGVyIG9yCisJCXNwZWNpYWwga2V5IGlzIHJldHVybmVkLiAgSWYgaXQgaXMgYW4gOC1iaXQgY2hhcmFjdGVyLCB0aGUKKwkJcmVzdWx0IGlzIGEgbnVtYmVyLiAgVXNlIG5yMmNoYXIoKSB0byBjb252ZXJ0IGl0IHRvIGEgU3RyaW5nLgorCQlPdGhlcndpc2UgYSBTdHJpbmcgaXMgcmV0dXJuZWQgd2l0aCB0aGUgZW5jb2RlZCBjaGFyYWN0ZXIuCisJCUZvciBhIHNwZWNpYWwga2V5IGl0J3MgYSBzZXF1ZW5jZSBvZiBieXRlcyBzdGFydGluZyB3aXRoIDB4ODAKKwkJKGRlY2ltYWw6IDEyOCkuICBUaGUgcmV0dXJuZWQgdmFsdWUgaXMgYWxzbyBhIFN0cmluZyB3aGVuIGEKKwkJbW9kaWZpZXIgKHNoaWZ0LCBjb250cm9sLCBhbHQpIHdhcyB1c2VkIHRoYXQgaXMgbm90IGluY2x1ZGVkCisJCWluIHRoZSBjaGFyYWN0ZXIuCisKKwkJV2hlbiB7ZXhwcn0gaXMgMSBvbmx5IHRoZSBmaXJzdCBieXRlIGlzIHJldHVybmVkLiAgRm9yIGEKKwkJb25lLWJ5dGUgY2hhcmFjdGVyIGl0IGlzIHRoZSBjaGFyYWN0ZXIgaXRzZWxmLgorCiAJCVRoZXJlIGlzIG5vIHByb21wdCwgeW91IHdpbGwgc29tZWhvdyBoYXZlIHRvIG1ha2UgY2xlYXIgdG8gdGhlCiAJCXVzZXIgdGhhdCBhIGNoYXJhY3RlciBoYXMgdG8gYmUgdHlwZWQuCiAJCVRoZXJlIGlzIG5vIG1hcHBpbmcgZm9yIHRoZSBjaGFyYWN0ZXIuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9oZWxwLnR4dCBiL3J1bnRpbWUvZG9jL2hlbHAudHh0CmluZGV4IDc4ODE0M2EuLjc5YWU1YjkgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2hlbHAudHh0CisrKyBiL3J1bnRpbWUvZG9jL2hlbHAudHh0CkBAIC0xLDQgKzEsNCBAQAotKmhlbHAudHh0KglGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IE1heSAwNAorKmhlbHAudHh0KglGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IE1heSAwNQogCiAJCQlWSU0gLSBtYWluIGhlbHAgZmlsZQogCQkJCQkJCQkJIGsKQEAgLTIwMiw2ICsyMDIsMTIgQEAKIHx0ZXN0LnR4dHwJVGVzdGluZyB0aGUgaOlscCBj9m1t5W5kIG70dwogfHR5cGVjb3JyLnR4dHwJUGx1Z2luIGZvciBjb3JyZWN0aW5nIHR5cGluZyBtaXN0YWtlcwogfGhlbHBwLnR4dHwJRHVtbXkgbGluZSB0byBhdm9pZCBhbiBlcnJvciBtZXNzYWdlCit8Y2VjdXRpbC50eHR8CURyQ2hpcCdzIFV0aWxpdGllcwkJCQlKdW4gMTEsIDIwMDQKK3xleGFtcGxlLnR4dHwJRXhhbXBsZSBmb3IgYSBsb2NhbGx5IGFkZGVkIGhlbHAgZmlsZQorfG1hdGNoaXQudHh0fCAgIEV4dGVuZGVkICIlIiBtYXRjaGluZworfHRlc3QudHh0fAlUZXN0aW5nIHRoZSBo6WxwIGP2bW3lbmQgbvR3Cit8dHlwZWNvcnIudHh0fAlQbHVnaW4gZm9yIGNvcnJlY3RpbmcgdHlwaW5nIG1pc3Rha2VzCit8aGVscHAudHh0fAlEdW1teSBsaW5lIHRvIGF2b2lkIGFuIGVycm9yIG1lc3NhZ2UKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqYmFycyoJCUJhcnMgZXhhbXBsZQpAQCAtMjEwLDcgKzIxNiw3IEBACiBDVFJMLVQsIENUUkwtTywgZzxSaWdodE1vdXNlPiwgb3IgPEMtUmlnaHRNb3VzZT4gdG8gZ28gYmFjayB0byB3aGVyZSB5b3Ugd2VyZS4KIAogTm90ZSB0aGF0IHRhZ3MgYXJlIHdpdGhpbiB8IGNoYXJhY3RlcnMsIGJ1dCB3aGVuIGhpZ2hsaWdodGluZyBpcyBlbmFibGVkIHRoZXNlCi1hcmUgaGlkZGVuLiAgVGhhdCBtYWtlcyBpdCBlYXNpZXIgdG8gcmVhZCB0aGUgY29tbWFuZC4KK2FyZSBoaWRkZW4uICBUaGF0IG1ha2VzIGl0IGVhc2llciB0byByZWFkIGEgY29tbWFuZC4KIAogQW55d2F5LCB5b3UgY2FuIHVzZSBDVFJMLV0gb24gYW55IHdvcmQsIGFsc28gd2hlbiBpdCBpcyBub3Qgd2l0aGluIHwsIGFuZCBWaW0KIHdpbGwgdHJ5IHRvIGZpbmQgaGVscCBmb3IgaXQuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9pbnNlcnQudHh0IGIvcnVudGltZS9kb2MvaW5zZXJ0LnR4dAppbmRleCA0OGQ0NTUwLi45N2U5NjRlIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pbnNlcnQudHh0CisrKyBiL3J1bnRpbWUvZG9jL2luc2VydC50eHQKQEAgLTEsNCArMSw0IEBACi0qaW5zZXJ0LnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGcuICBMYXN0IGNoYW5nZTogMjAwNiBNYXkgMDMKKyppbnNlcnQudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wZy4gIExhc3QgY2hhbmdlOiAyMDA2IE1heSAwNQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMTAyMCw4ICsxMDIwLDkgQEAKIAlpbmZvCQltb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBpdGVtLCBjYW4gYmUgZGlzcGxheWVkIGluIGEKIAkJCXByZXZpZXcgd2luZG93CiAJa2luZAkJc2luZ2xlIGxldHRlciBpbmRpY2F0aW5nIHRoZSB0eXBlIG9mIGNvbXBsZXRpb24KLQlpY2FzZQkJd2hlbiBub24temVybyBjYXNlIGlzIHRvIGJlIGlnbm9yZWQ7IHdoZW4gb21pdHRlZAotCQkJdGhlICdpZ25vcmVjYXNlJyBvcHRpb24gaXMgdXNlZAorCWljYXNlCQl3aGVuIG5vbi16ZXJvIGNhc2UgaXMgdG8gYmUgaWdub3JlZCB3aGVuIGNvbXBhcmluZworCQkJaXRlbXMgdG8gYmUgZXF1YWw7IHdoZW4gb21pdHRlZCB6ZXJvIGlzIHVzZWQsIHRodXMKKwkJCWl0ZW1zIHRoYXQgb25seSBkaWZmZXIgaW4gY2FzZSBhcmUgYWRkZWQKIAlkdXAJCXdoZW4gbm9uLXplcm8gdGhpcyBtYXRjaCB3aWxsIGJlIGFkZGVkIGV2ZW4gd2hlbiBhbgogCQkJaXRlbSB3aXRoIHRoZSBzYW1lIHdvcmQgaXMgYWxyZWFkeSBwcmVzZW50LgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2Z0cGx1Z2luL3J1YnkudmltIGIvcnVudGltZS9mdHBsdWdpbi9ydWJ5LnZpbQppbmRleCA0MGQxYzU1Li42NmNmY2M3IDEwMDY0NAotLS0gYS9ydW50aW1lL2Z0cGx1Z2luL3J1YnkudmltCisrKyBiL3J1bnRpbWUvZnRwbHVnaW4vcnVieS52aW0KQEAgLTEsNiArMSw2IEBACiAiIFZpbSBmaWxldHlwZSBwbHVnaW4KICIgTGFuZ3VhZ2U6CQlSdWJ5Ci0iIE1haW50YWluZXI6CQlHYXZpbiBTaW5jbGFpciA8Z3NpbmNsYWlyIGF0IHNveWFiZWFuLmNvbS5hdT4KKyIgTWFpbnRhaW5lcjoJCUdhdmluIFNpbmNsYWlyIDxnc2luY2xhaXIgYXQgZ21haWwuY29tPgogIiBJbmZvOgkJCSRJZCQKICIgVVJMOgkJCWh0dHA6Ly92aW0tcnVieS5ydWJ5Zm9yZ2Uub3JnCiAiIEFub24gQ1ZTOgkJU2VlIGFib3ZlIHNpdGUKQEAgLTM4LDcgKzM4LDggQEAKICAgICBcCSAgJ1wlKFwlKF5cfDtcKVxzKlwpXEA8PVw8cmVzY3VlXD4nIC4KICAgICBcICdcKScgLgogICAgIFwgJzonIC4KLSAgICBcICdcJShcJShcLlx8XDpcOlwpXHMqXHxcOlwpXEA8IVw8ZW5kXD4nCisgICAgXCAnXCUoXCUoXC5cfFw6XDpcKVxzKlx8XDpcKVxAPCFcPGVuZFw+JyAuCisgICAgXCAnLHs6fSxcWzpcXSwoOiknCiAKICAgbGV0IGI6bWF0Y2hfc2tpcCA9CiAgICAgIFwgInN5bklEYXR0cihzeW5JRChsaW5lKCcuJyksY29sKCcuJyksMCksJ25hbWUnKSA9fiAnIiAuCmRpZmYgLS1naXQgYS9ydW50aW1lL2luZGVudC9odG1sLnZpbSBiL3J1bnRpbWUvaW5kZW50L2h0bWwudmltCmluZGV4IGNmZWE3ZDguLmJlMzQ0MDkgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvaW5kZW50L2h0bWwudmltCisrKyBiL3J1bnRpbWUvaW5kZW50L2h0bWwudmltCkBAIC0xLDYgKzEsNyBAQAogIiBEZXNjcmlwdGlvbjoJaHRtbCBpbmRlbnRlcgogIiBBdXRob3I6CUpvaGFubmVzIFplbGxuZXIgPGpvaGFubmVzQHplbGxuZXIub3JnPgogIiBMYXN0IENoYW5nZToJVHVlLCAyNyBBcHIgMjAwNCAxMDoyODozOSBDRVNUCisiIAkJUmVzdG9yaW5nICdjcG8nIGFuZCAnaWMnIGFkZGVkIGJ5IEJyYW0gMjAwNiBNYXkgNQogIiBHbG9iYWxzOglnOmh0bWxfaW5kZW50X3RhZ3MJICAgLS0gaW5kZW50aW5nIHRhZ3MKICIJCWc6aHRtbF9pbmRlbnRfc3RyaWN0ICAgICAgIC0tIGluaGliaXQgJ08gTycgZWxlbWVudHMKICIJCWc6aHRtbF9pbmRlbnRfc3RyaWN0X3RhYmxlIC0tIGluaGliaXQgJ08gLScgZWxlbWVudHMKQEAgLTExNiw2ICsxMTcsNyBAQAogCiBkZWxmdW4gPFNJRD5IdG1sSW5kZW50UHVzaAogCitsZXQgczpjcG9fc2F2ZSA9ICZjcG8KIHNldCBjcG8tPUMKIAogIiBbLS0gY291bnQgaW5kZW50LWluY3JlYXNpbmcgdGFncyBvZiBsaW5lIGE6bG51bSAtLV0KQEAgLTE4Myw2ICsxODUsOSBAQAogCQlcIHx8IDAgPCBzZWFyY2hwYWlyKCdcYzxwcmU+JywgJycsICdcYzwvcHJlPicsICduV2InKQogCQlcIHx8IDAgPCBzZWFyY2hwYWlyKCdcYzxwcmU+JywgJycsICdcYzwvcHJlPicsICduVycpCiAJIiB3ZSdyZSBpbiBhIGxpbmUgd2l0aCA8L3ByZT4gb3IgaW5zaWRlIDxwcmU+IC4uLiA8L3ByZT4KKwlpZiByZXN0b3JlX2ljID09IDAKKwkgIHNldGxvY2FsIG5vaWMKKwllbmRpZgogCXJldHVybiAtMQogICAgIGVuZGlmCiAKQEAgLTE5Miw2ICsxOTcsOSBAQAogICAgIFwgfHwgMCA8IHNlYXJjaHBhaXIoanMsICcnLCAnPC9zY3JpcHQ+JywgJ25XJykKIAkiIHdlJ3JlIGluc2lkZSBqYXZhc2NyaXB0CiAJaWYgZ2V0bGluZShsbnVtKSAhfiBqcyAmJiBnZXRsaW5lKGE6bG51bSkgIT0gJzwvc2NyaXB0PicKKwkgICAgaWYgcmVzdG9yZV9pYyA9PSAwCisJICAgICAgc2V0bG9jYWwgbm9pYworCSAgICBlbmRpZgogCSAgICByZXR1cm4gY2luZGVudChhOmxudW0pCiAJZW5kaWYKICAgICBlbmRpZgpAQCAtMjAyLDYgKzIxMCw5IEBACiAJIiBzdGFydGluZyA8cHJlPiB0byByZXN0b3JlIHRoZSBpbmRlbnQuCiAJbGV0IHByZWxpbmUgPSBwcmV2bm9uYmxhbmsoc2VhcmNoKCdcYzxwcmU+JywgJ2JXJykgLSAxKQogCWlmIHByZWxpbmUgPiAwCisJICAgIGlmIHJlc3RvcmVfaWMgPT0gMAorCSAgICAgIHNldGxvY2FsIG5vaWMKKwkgICAgZW5kaWYKIAkgICAgcmV0dXJuIGluZGVudChwcmVsaW5lKQogCWVuZGlmCiAgICAgZW5kaWYKQEAgLTIxNiw0ICsyMjcsNyBAQAogICAgIHJldHVybiBpbmRlbnQobG51bSkgKyAoJnN3ICogaW5kKQogZW5kZnVuCiAKK2xldCAmY3BvID0gczpjcG9fc2F2ZQordW5sZXQgczpjcG9fc2F2ZQorCiAiIFstLSBFT0YgPHJ1bnRpbWU+L2luZGVudC9odG1sLnZpbSAtLV0KZGlmZiAtLWdpdCBhL3NyYy9lZGl0LmMgYi9zcmMvZWRpdC5jCmluZGV4IDJmZjE3MjIuLmUyOThhOGMgMTAwNjQ0Ci0tLSBhL3NyYy9lZGl0LmMKKysrIGIvc3JjL2VkaXQuYwpAQCAtMjgwNiw3ICsyODA2LDcgQEAKIAkJCXB0ciA9IGZpbmRfd29yZF9lbmQocHRyKTsKIAkJICAgIGFkZF9yID0gaW5zX2NvbXBsX2FkZF9pbmZlcmNhc2UocmVnbWF0Y2gtPnN0YXJ0cFswXSwKIAkJCQkJICAoaW50KShwdHIgLSByZWdtYXRjaC0+c3RhcnRwWzBdKSwKLQkJCQkJCSAgICAgcF9pYywgZmlsZXNbaV0sICpkaXIsIDApOworCQkJCQkJICAgICBGQUxTRSwgZmlsZXNbaV0sICpkaXIsIDApOwogCQkgICAgaWYgKHRoZXNhdXJ1cykKIAkJICAgIHsKIAkJCWNoYXJfdSAqd3N0YXJ0OwpAQCAtMjg0Miw3ICsyODQyLDcgQEAKIAkJCQlwdHIgPSBmaW5kX3dvcmRfZW5kKHB0cik7CiAJCQkgICAgYWRkX3IgPSBpbnNfY29tcGxfYWRkX2luZmVyY2FzZSh3c3RhcnQsCiAJCQkJICAgIChpbnQpKHB0ciAtIHdzdGFydCksCi0JCQkJICAgIHBfaWMsIGZpbGVzW2ldLCAqZGlyLCAwKTsKKwkJCQkgICAgRkFMU0UsIGZpbGVzW2ldLCAqZGlyLCAwKTsKIAkJCX0KIAkJICAgIH0KIAkJICAgIGlmIChhZGRfciA9PSBPSykKQEAgLTM1MzQsNyArMzUzNCw3IEBACiAgICAgaW50CQlkaXI7CiB7CiAgICAgY2hhcl91CSp3b3JkOwotICAgIGludAkJaWNhc2UgPSBwX2ljOworICAgIGludAkJaWNhc2UgPSBGQUxTRTsKICAgICBpbnQJCWR1cCA9IEZBTFNFOwogICAgIGNoYXJfdQkqKGNwdGV4dFtDUFRfQ09VTlRdKTsKIApAQCAtMzc1Myw3ICszNzUzLDcgQEAKIAkJICAgIFRBR19JTlNfQ09NUCB8IChjdHJsX3hfbW9kZSA/IFRBR19WRVJCT1NFIDogMCksCiAJCSAgICBUQUdfTUFOWSwgY3VyYnVmLT5iX2ZmbmFtZSkgPT0gT0sgJiYgbnVtX21hdGNoZXMgPiAwKQogCSAgICB7Ci0JCWluc19jb21wbF9hZGRfbWF0Y2hlcyhudW1fbWF0Y2hlcywgbWF0Y2hlcywgcF9pYyk7CisJCWluc19jb21wbF9hZGRfbWF0Y2hlcyhudW1fbWF0Y2hlcywgbWF0Y2hlcywgRkFMU0UpOwogCSAgICB9CiAJICAgIHBfaWMgPSBzYXZlX3BfaWM7CiAJICAgIGJyZWFrOwpAQCAtMzkyOCw3ICszOTI4LDcgQEAKIAkJCSAgICBjb250aW51ZTsKIAkJICAgIH0KIAkJfQotCQlpZiAoaW5zX2NvbXBsX2FkZF9pbmZlcmNhc2UocHRyLCBsZW4sIHBfaWMsCisJCWlmIChpbnNfY29tcGxfYWRkX2luZmVyY2FzZShwdHIsIGxlbiwgRkFMU0UsCiAJCQkJIGluc19idWYgPT0gY3VyYnVmID8gTlVMTCA6IGluc19idWYtPmJfc2ZuYW1lLAogCQkJCQkgICAwLCBmbGFncykgIT0gTk9URE9ORSkKIAkJewpAQCAtNTgxOCw3ICs1ODE4LDcgQEAKICAqLwogICAgIGludAogY29tcF90ZXh0d2lkdGgoZmYpCi0gICAgaW50CQlmZjsJLyogZm9yY2UgZm9ybWF0dGluZyAoZm9yICJRIiBjb21tYW5kKSAqLworICAgIGludAkJZmY7CS8qIGZvcmNlIGZvcm1hdHRpbmcgKGZvciAiZ3EiIGNvbW1hbmQpICovCiB7CiAgICAgaW50CQl0ZXh0d2lkdGg7CiAKZGlmZiAtLWdpdCBhL3NyYy9ndWlfZ3RrLmMgYi9zcmMvZ3VpX2d0ay5jCmluZGV4IDBkYTE0NGYuLjM5N2I0NTEgMTAwNjQ0Ci0tLSBhL3NyYy9ndWlfZ3RrLmMKKysrIGIvc3JjL2d1aV9ndGsuYwpAQCAtMjIyMSwxNiArMjIyMSw2IEBACiB7CiAgICAgRGlhbG9nSW5mbyAqZGkgPSAoRGlhbG9nSW5mbyAqKWRhdGE7CiAKLSNpZm5kZWYgSEFWRV9HVEsyCi0gICAgLyogSWdub3JlIGhpdHRpbmcgIkVudGVyIiBpZiB0aGVyZSBpcyBubyBkZWZhdWx0IGJ1dHRvbi4gKi8KLSAgICBpZiAoZXZlbnQtPmtleXZhbCA9PSBHREtfUmV0dXJuKQotICAgIHsKLQlpZiAoIWRpLT5pZ25vcmVfZW50ZXIpCi0JICAgIGd0a19kaWFsb2dfcmVzcG9uc2UoZGktPmRpYWxvZywgR1RLX1JFU1BPTlNFX0FDQ0VQVCk7Ci0JcmV0dXJuIFRSVUU7Ci0gICAgfQotI2VuZGlmCi0KICAgICAvKiBDbG9zZSB0aGUgZGlhbG9nIHdoZW4gaGl0dGluZyAiRXNjIi4gKi8KICAgICBpZiAoZXZlbnQtPmtleXZhbCA9PSBHREtfRXNjYXBlKQogICAgIHsKZGlmZiAtLWdpdCBhL3NyYy9zY3JlZW4uYyBiL3NyYy9zY3JlZW4uYwppbmRleCBmNTdhZGMwNC4uMjIyY2QzMiAxMDA2NDQKLS0tIGEvc3JjL3NjcmVlbi5jCisrKyBiL3NyYy9zY3JlZW4uYwpAQCAtMjYyNiw2ICsyNjI2LDkgQEAKICAgICBpbnQJCXByZXZfYyA9IDA7CQkvKiBwcmV2aW91cyBBcmFiaWMgY2hhcmFjdGVyICovCiAgICAgaW50CQlwcmV2X2MxID0gMDsJCS8qIGZpcnN0IGNvbXBvc2luZyBjaGFyIGZvciBwcmV2X2MgKi8KICNlbmRpZgorI2lmIGRlZmluZWQoRkVBVF9ESUZGKSB8fCBkZWZpbmVkKExJTkVfQVRUUikKKyAgICBpbnQJCWRpZF9saW5lX2F0dHIgPSAwOworI2VuZGlmCiAKICAgICAvKiBkcmF3X3N0YXRlOiBpdGVtcyB0aGF0IGFyZSBkcmF3biBpbiBzZXF1ZW5jZTogKi8KICNkZWZpbmUgV0xfU1RBUlQJMAkJLyogbm90aGluZyBkb25lIHlldCAqLwpAQCAtNDEzMyw2ICs0MTM2LDEzIEBACiAJCSAgICAvKiBIaWdobGlnaHQgdW50aWwgdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIHdpbmRvdyAqLwogCQkgICAgYyA9ICcgJzsKIAkJICAgIC0tcHRyOwkgICAgLyogcHV0IGl0IGJhY2sgYXQgdGhlIE5VTCAqLworCisJCSAgICAvKiBSZW1lbWJlciB3ZSBkbyB0aGUgY2hhciBmb3IgbGluZSBoaWdobGlnaHRpbmcuICovCisJCSAgICArK2RpZF9saW5lX2F0dHI7CisKKwkJICAgIC8qIGRvbid0IGRvIHNlYXJjaCBITCBmb3IgdGhlIHJlc3Qgb2YgdGhlIGxpbmUgKi8KKwkJICAgIGlmIChsaW5lX2F0dHIgIT0gMCAmJiBjaGFyX2F0dHIgPT0gc2VhcmNoX2F0dHIgJiYgY29sID4gMCkKKwkJCWNoYXJfYXR0ciA9IGxpbmVfYXR0cjsKICMgaWZkZWYgRkVBVF9ESUZGCiAJCSAgICBpZiAoZGlmZl9obGYgPT0gSExGX1RYRCkKIAkJICAgIHsKQEAgLTQyMjQsMjIgKzQyMzQsMzQgQEAKIAl9CiAKIAkvKgotCSAqIEF0IGVuZCBvZiB0aGUgdGV4dCBsaW5lLgorCSAqIEF0IGVuZCBvZiB0aGUgdGV4dCBsaW5lIG9yIGp1c3QgYWZ0ZXIgdGhlIGxhc3QgY2hhcmFjdGVyLgogCSAqLwotCWlmIChjID09IE5VTCkKKwlpZiAoYyA9PSBOVUwKKyNpZiBkZWZpbmVkKEZFQVRfRElGRikgfHwgZGVmaW5lZChMSU5FX0FUVFIpCisJCXx8IGRpZF9saW5lX2F0dHIgPT0gMQorI2VuZGlmCisJCSkKIAl7CisjaWZkZWYgRkVBVF9TRUFSQ0hfRVhUUkEKKwkgICAgbG9uZyBwcmV2Y29sID0gKGxvbmcpKHB0ciAtIGxpbmUpIC0gKGMgPT0gTlVMKTsKKyNlbmRpZgorCiAJICAgIC8qIGludmVydCBhdCBsZWFzdCBvbmUgY2hhciwgdXNlZCBmb3IgVmlzdWFsIGFuZCBlbXB0eSBsaW5lIG9yCiAJICAgICAqIGhpZ2hsaWdodCBtYXRjaCBhdCBlbmQgb2YgbGluZS4gSWYgaXQncyBiZXlvbmQgdGhlIGxhc3QKIAkgICAgICogY2hhciBvbiB0aGUgc2NyZWVuLCBqdXN0IG92ZXJ3cml0ZSB0aGF0IG9uZSAodHJpY2t5ISkgIE5vdAogCSAgICAgKiBuZWVkZWQgd2hlbiBhICckJyB3YXMgZGlzcGxheWVkIGZvciAnbGlzdCcuICovCiAJICAgIGlmIChsY3NfZW9sID09IGxjc19lb2xfb25lCi0JCSAgICAmJiAoKGFyZWFfYXR0ciAhPSAwICYmIHZjb2wgPT0gZnJvbWNvbCkKKwkJICAgICYmICgoYXJlYV9hdHRyICE9IDAgJiYgdmNvbCA9PSBmcm9tY29sICYmIGMgPT0gTlVMKQogI2lmZGVmIEZFQVRfU0VBUkNIX0VYVFJBCiAJCQkvKiBoaWdobGlnaHQgJ2hsc2VhcmNoJyBtYXRjaCBhdCBlbmQgb2YgbGluZSAqLwotCQkJfHwgKHB0ciAtIGxpbmUpIC0gMSA9PSAobG9uZylzZWFyY2hfaGwuc3RhcnRjb2wKLQkJCXx8IChwdHIgLSBsaW5lKSAtIDEgPT0gKGxvbmcpbWF0Y2hfaGxbMF0uc3RhcnRjb2wKLQkJCXx8IChwdHIgLSBsaW5lKSAtIDEgPT0gKGxvbmcpbWF0Y2hfaGxbMV0uc3RhcnRjb2wKLQkJCXx8IChwdHIgLSBsaW5lKSAtIDEgPT0gKGxvbmcpbWF0Y2hfaGxbMl0uc3RhcnRjb2wKKwkJCXx8ICgocHJldmNvbCA9PSAobG9uZylzZWFyY2hfaGwuc3RhcnRjb2wKKwkJCQl8fCBwcmV2Y29sID09IChsb25nKW1hdGNoX2hsWzBdLnN0YXJ0Y29sCisJCQkJfHwgcHJldmNvbCA9PSAobG9uZyltYXRjaF9obFsxXS5zdGFydGNvbAorCQkJCXx8IHByZXZjb2wgPT0gKGxvbmcpbWF0Y2hfaGxbMl0uc3RhcnRjb2wpCisjIGlmIGRlZmluZWQoRkVBVF9ESUZGKSB8fCBkZWZpbmVkKExJTkVfQVRUUikKKwkJCSAgICAmJiBkaWRfbGluZV9hdHRyIDw9IDEKKyMgZW5kaWYKKwkJCSAgICkKICNlbmRpZgogCQkgICAgICAgKSkKIAkgICAgewpAQCAtNDI5Nyw3ICs0MzE5LDEzIEBACiAJCSAgICArK2NvbDsKIAkJKyt2Y29sOwogCSAgICB9CisJfQogCisJLyoKKwkgKiBBdCBlbmQgb2YgdGhlIHRleHQgbGluZS4KKwkgKi8KKwlpZiAoYyA9PSBOVUwpCisJewogI2lmZGVmIEZFQVRfU1lOX0hMCiAJICAgIC8qIEhpZ2hsaWdodCAnY3Vyc29yY29sdW1uJyBwYXN0IGVuZCBvZiB0aGUgbGluZS4gKi8KIAkgICAgaWYgKHdwLT53X3Bfd3JhcCkKZGlmZiAtLWdpdCBhL3NyYy9zZWFyY2guYyBiL3NyYy9zZWFyY2guYwppbmRleCAwZTUzNWFiLi5hOGEzOTBlIDEwMDY0NAotLS0gYS9zcmMvc2VhcmNoLmMKKysrIGIvc3JjL3NlYXJjaC5jCkBAIC00ODcxLDcgKzQ4NzEsNyBAQAogCQkJZ290byBleGl0X21hdGNoZWQ7CiAJCX0KIAotCQlhZGRfciA9IGluc19jb21wbF9hZGRfaW5mZXJjYXNlKGF1eCwgaSwgcF9pYywKKwkJYWRkX3IgPSBpbnNfY29tcGxfYWRkX2luZmVyY2FzZShhdXgsIGksIEZBTFNFLAogCQkJY3Vycl9mbmFtZSA9PSBjdXJidWYtPmJfZm5hbWUgPyBOVUxMIDogY3Vycl9mbmFtZSwKIAkJCWRpciwgcmV1c2UpOwogCQlpZiAoYWRkX3IgPT0gT0spCkBAIC01MTEwLDcgKzUxMTAsNyBAQAogCiAgICAgaWYgKGRpZF9zaG93KQogCW1zZ19wdXRjaGFyKCdcbicpOwkvKiBjdXJzb3IgYmVsb3cgbGFzdCBvbmUgKi8KLSAgICBlbHNlCisgICAgZWxzZSBpZiAoIW1zZ19zaWxlbnQpCiAJZ290b2NtZGxpbmUoVFJVRSk7CS8qIGN1cnNvciBhdCBzdGF0dXMgbGluZSAqLwogICAgIGlmIChnb3RfaW50KQkJLyogJ3EnIHR5cGVkIGF0ICItLW1vcmUtLSIgbWVzc2FnZSAqLwogCXJldHVybjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0ZGlyL3Rlc3Q2MC5pbiBiL3NyYy90ZXN0ZGlyL3Rlc3Q2MC5pbgppbmRleCAyYzQxNGIzLi5kNWEwZDdjIDEwMDY0NAotLS0gYS9zcmMvdGVzdGRpci90ZXN0NjAuaW4KKysrIGIvc3JjL3Rlc3RkaXIvdGVzdDYwLmluCkBAIC0xOCw2ICsxOCw4IEBACiAKICAgICAiIHZhbGlkIGF1dG9jbWQgZ3JvdXAKICAgICBsZXQgdGVzdF9jYXNlcyArPSBbWycjbXlhZ3JvdXAnLCAxXV0KKyAgICAiIHZhbGlkIGF1dG9jbWQgZ3JvdXAgd2l0aCBnYXJiYWdlCisgICAgbGV0IHRlc3RfY2FzZXMgKz0gW1snI215YWdyb3VwK2InLCAwXV0KICAgICAiIFZhbGlkIGF1dG9jbWQgZ3JvdXAgYW5kIGV2ZW50CiAgICAgbGV0IHRlc3RfY2FzZXMgKz0gW1snI215YWdyb3VwI0J1ZkVudGVyJywgMV1dCiAgICAgIiBWYWxpZCBhdXRvY21kIGdyb3VwLCBldmVudCBhbmQgcGF0dGVybgpAQCAtNTEsNiArNTMsOCBAQAogICAgIGxldCB0ZXN0X2Nhc2VzICs9IFtbJyZ0ZXh0d2lkdGgnLCAxXV0KICAgICAiIEV4aXN0aW5nIGFuZCB3b3JraW5nIG9wdGlvbiAoc2hvcnQgZm9ybSkKICAgICBsZXQgdGVzdF9jYXNlcyArPSBbWycmdHcnLCAxXV0KKyAgICAiIEV4aXN0aW5nIGFuZCB3b3JraW5nIG9wdGlvbiB3aXRoIGdhcmJhZ2UKKyAgICBsZXQgdGVzdF9jYXNlcyArPSBbWycmdHctJywgMF1dCiAgICAgIiBHbG9iYWwgb3B0aW9uCiAgICAgbGV0IHRlc3RfY2FzZXMgKz0gW1snJmc6ZXJyb3Jmb3JtYXQnLCAxXV0KICAgICAiIExvY2FsIG9wdGlvbgpAQCAtNjQsNiArNjgsOCBAQAogCiAgICAgIiBFeGlzdGluZyBhbmQgd29ya2luZyBvcHRpb24gKGxvbmcgZm9ybSkKICAgICBsZXQgdGVzdF9jYXNlcyArPSBbWycraW5jc2VhcmNoJywgMV1dCisgICAgIiBFeGlzdGluZyBhbmQgd29ya2luZyBvcHRpb24gd2l0aCBnYXJiYWdlCisgICAgbGV0IHRlc3RfY2FzZXMgKz0gW1snK2luY3NlYXJjaCExJywgMF1dCiAgICAgIiBFeGlzdGluZyBhbmQgd29ya2luZyBvcHRpb24gKHNob3J0IGZvcm0pCiAgICAgbGV0IHRlc3RfY2FzZXMgKz0gW1snK2lzJywgMV1dCiAgICAgIiBFeGlzdGluZyBvcHRpb24gdGhhdCBpcyBoaWRkZW4uCkBAIC03Nyw4ICs4MywxMiBAQAogCiAgICAgIiBWYWxpZCBpbnRlcm5hbCBmdW5jdGlvbgogICAgIGxldCB0ZXN0X2Nhc2VzICs9IFtbJypidWZucicsIDFdXQorICAgICIgVmFsaWQgaW50ZXJuYWwgZnVuY3Rpb24gd2l0aCAoKQorICAgIGxldCB0ZXN0X2Nhc2VzICs9IFtbJypidWZucigpJywgMV1dCiAgICAgIiBOb24tZXhpc3RpbmcgaW50ZXJuYWwgZnVuY3Rpb24KICAgICBsZXQgdGVzdF9jYXNlcyArPSBbWycqbXl4eXpmdW5jJywgMF1dCisgICAgIiBWYWxpZCBpbnRlcm5hbCBmdW5jdGlvbiB3aXRoIGdhcmJhZ2UKKyAgICBsZXQgdGVzdF9jYXNlcyArPSBbWycqYnVmbnImNicsIDBdXQogCiAgICAgIiBWYWxpZCB1c2VyIGRlZmluZWQgZnVuY3Rpb24KICAgICBsZXQgdGVzdF9jYXNlcyArPSBbWycqVGVzdEV4aXN0cycsIDFdXQpAQCAtMTAwLDYgKzExMCwxNCBAQAogCWVjaG8gIkZBSUxFRCIKICAgICBlbmRpZgogCisgICAgIiBWYWxpZCBpbnRlcm5hbCBjb21tYW5kIChmdWxsIG1hdGNoKSB3aXRoIGdhcmJhZ2UKKyAgICBlY2hvICc6ZWRpdC9hOiAwJworICAgIGlmIGV4aXN0cygnOmVkaXQvYScpID09IDAKKwllY2hvICJPSyIKKyAgICBlbHNlCisJZWNobyAiRkFJTEVEIgorICAgIGVuZGlmCisKICAgICAiIFZhbGlkIGludGVybmFsIGNvbW1hbmQgKHBhcnRpYWwgbWF0Y2gpCiAgICAgZWNobyAnOnE6IDEnCiAgICAgaWYgZXhpc3RzKCc6cScpID09IDEKQEAgLTE3MSw2ICsxODksMTUgQEAKIAllY2hvICJGQUlMRUQiCiAgICAgZW5kaWYKIAorICAgICIgVmFsaWQgbG9jYWwgdmFyaWFibGUgd2l0aCBnYXJiYWdlCisgICAgbGV0IGxvY2FsX3ZhciA9IDEKKyAgICBlY2hvICdsb2NhbF92YXIlbjogMCcKKyAgICBpZiAhZXhpc3RzKCdsb2NhbF92YXIlbicpCisJZWNobyAiT0siCisgICAgZWxzZQorCWVjaG8gIkZBSUxFRCIKKyAgICBlbmRpZgorCiAgICAgIiBOb24tZXhpc3RpbmcgbG9jYWwgdmFyaWFibGUKICAgICB1bmxldCBsb2NhbF92YXIKICAgICBlY2hvICdsb2NhbF92YXI6IDAnCkBAIC0xODksNiArMjE2LDMwIEBACiAJZWNobyAiRkFJTEVEIgogICAgIGVuZGlmCiAKKyAgICAiIFZhbGlkIGxvY2FsIGxpc3QgaXRlbQorICAgIGVjaG8gJ2xvY2FsX2xpc3RbMV06IDEnCisgICAgaWYgZXhpc3RzKCdsb2NhbF9saXN0WzFdJykKKwllY2hvICJPSyIKKyAgICBlbHNlCisJZWNobyAiRkFJTEVEIgorICAgIGVuZGlmCisKKyAgICAiIFZhbGlkIGxvY2FsIGxpc3QgaXRlbSB3aXRoIGdhcmJhZ2UKKyAgICBlY2hvICdsb2NhbF9saXN0WzFdKzU6IDAnCisgICAgaWYgIWV4aXN0cygnbG9jYWxfbGlzdFsxXSs1JykKKwllY2hvICJPSyIKKyAgICBlbHNlCisJZWNobyAiRkFJTEVEIgorICAgIGVuZGlmCisKKyAgICAiIEludmFsaWQgbG9jYWwgbGlzdCBpdGVtCisgICAgZWNobyAnbG9jYWxfbGlzdFsyXTogMCcKKyAgICBpZiAhZXhpc3RzKCdsb2NhbF9saXN0WzJdJykKKwllY2hvICJPSyIKKyAgICBlbHNlCisJZWNobyAiRkFJTEVEIgorICAgIGVuZGlmCisKICAgICAiIE5vbi1leGlzdGluZyBsb2NhbCBsaXN0CiAgICAgdW5sZXQgbG9jYWxfbGlzdAogICAgIGVjaG8gJ2xvY2FsX2xpc3Q6IDAnCkBAIC0yNDUsNiArMjk2LDE0IEBACiAJZWNobyAiRkFJTEVEIgogICAgIGVuZGlmCiAKKyAgICAiIEV4aXN0aW5nIGdsb2JhbCB2YXJpYWJsZSB3aXRoIGdhcmJhZ2UKKyAgICBlY2hvICdnOmdsb2JhbF92YXItbjogMScKKyAgICBpZiAhZXhpc3RzKCdnOmdsb2JhbF92YXItbicpCisJZWNobyAiT0siCisgICAgZWxzZQorCWVjaG8gIkZBSUxFRCIKKyAgICBlbmRpZgorCiAgICAgIiBOb24tZXhpc3RpbmcgZ2xvYmFsIHZhcmlhYmxlCiAgICAgdW5sZXQgZzpnbG9iYWxfdmFyCiAgICAgZWNobyAnZzpnbG9iYWxfdmFyOiAwJwpkaWZmIC0tZ2l0IGEvc3JjL3ZlcnNpb24uaCBiL3NyYy92ZXJzaW9uLmgKaW5kZXggNjMyM2Y0Ni4uMzg5MjE5ZCAxMDA2NDQKLS0tIGEvc3JjL3ZlcnNpb24uaAorKysgYi9zcmMvdmVyc2lvbi5oCkBAIC0zNSw2ICszNSw2IEBACiAgKi8KICNkZWZpbmUgVklNX1ZFUlNJT05fTk9ET1QJInZpbTcwZyIKICNkZWZpbmUgVklNX1ZFUlNJT05fU0hPUlQJIjcuMGciCi0jZGVmaW5lIFZJTV9WRVJTSU9OX01FRElVTQkiNy4wZzAzIEJFVEEiCi0jZGVmaW5lIFZJTV9WRVJTSU9OX0xPTkcJIlZJTSAtIFZpIElNcHJvdmVkIDcuMGcwMyBCRVRBICgyMDA2IE1heSA0KSIKLSNkZWZpbmUgVklNX1ZFUlNJT05fTE9OR19EQVRFCSJWSU0gLSBWaSBJTXByb3ZlZCA3LjBnMDMgQkVUQSAoMjAwNiBNYXkgNCwgY29tcGlsZWQgIgorI2RlZmluZSBWSU1fVkVSU0lPTl9NRURJVU0JIjcuMGcwNCBCRVRBIgorI2RlZmluZSBWSU1fVkVSU0lPTl9MT05HCSJWSU0gLSBWaSBJTXByb3ZlZCA3LjBnMDQgQkVUQSAoMjAwNiBNYXkgNSkiCisjZGVmaW5lIFZJTV9WRVJTSU9OX0xPTkdfREFURQkiVklNIC0gVmkgSU1wcm92ZWQgNy4wZzA0IEJFVEEgKDIwMDYgTWF5IDUsIGNvbXBpbGVkICIK