cnNtaXRoIGFkZGVkIGlubGluZSBjb21tZW50cy4KCj09PT09PT09PT09PT09PT0KQ29tbWVudCBh dDogaW5jbHVkZS9jbGFuZy9CYXNpYy9Nb2R1bGUuaDoyMDMtMjExCkBAIC0yMDIsMSArMjAyLDEx IEBACiAKKyAgLy8vIFxicmllZiBXaGV0aGVyIHRoaXMgbW9kdWxlIHVzZXMgdGhlICdyZXF1aXJl cyBleGNsdWRlZCcgaGFjayB0byBtYXJrIGl0cworICAvLy8gY29udGVudHMgYXMgJ3RleHR1YWwn LgorICAvLy8KKyAgLy8vIE9uIG9sZGVyIERhcndpbiBTREsgdmVyc2lvbnMsICdyZXF1aXJlcyBl eGNsdWRlZCcgaXMgdXNlZCB0byBtYXJrIHRoZQorICAvLy8gY29udGVudHMgb2YgdGhlIERhcndp bi5DLmV4Y2x1ZGVkIChhc3NlcnQuaCkgYW5kIFRjbC5Qcml2YXRlIG1vZHVsZXMgYXMKKyAgLy8v IG5vbi1tb2R1bGFyIGhlYWRlcnMuICBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIHdlIGNv bnRpbnVlIHRvIHN1cHBvcnQKKyAgLy8vIHRoaXMgaWRpb20gZm9yIGp1c3QgdGhlc2UgbW9kdWxl cywgYW5kIG1hcCB0aGUgaGVhZGVycyB0byAndGV4dHVhbCcgdG8KKyAgLy8vIG1hdGNoIHRoZSBv cmlnaW5hbCBpbnRlbnQuCisgIHVuc2lnbmVkIFVzZXNSZXF1aXJlc0V4Y2x1ZGVkSGFjayA6IDE7 CisKLS0tLS0tLS0tLS0tLS0tLQpEbyB3ZSByZWFsbHkgbmVlZCB0byB3cml0ZSB0aGlzIGludG8g dGhlIGBNb2R1bGVgIG9iamVjdD8gQ291bGQgd2UgaW5zdGVhZCBqdXN0IHRyYWNrIHRoaXMgd2hp bGUgd2UncmUgcGFyc2luZyB0aGUgbW9kdWxlIG1hcD8KCj09PT09PT09PT09PT09PT0KQ29tbWVu dCBhdDogbGliL0xleC9Nb2R1bGVNYXAuY3BwOjE1OTAtMTYwMwpAQCArMTU4OSwxNiBAQAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCAmSXNSZXF1aXJlc0V4Y2x1ZGVkSGFj aykgeworICBpZiAoRmVhdHVyZSA9PSAiZXhjbHVkZWQiIHx8IEZlYXR1cmUgPT0gImNwbHVzcGx1 cyIpIHsKKyAgICBzdGQ6OnN0cmluZyBGdWxsTmFtZSA9IE0tPmdldEZ1bGxNb2R1bGVOYW1lKCk7 CisgICAgaWYgKEZ1bGxOYW1lID09ICJEYXJ3aW4uQy5leGNsdWRlZCIgfHwgRnVsbE5hbWUgPT0g IlRjbC5Qcml2YXRlIikgeworICAgICAgLy8gV2Ugd2lsbCBtYXJrIHRoZSBtb2R1bGUgY29udGVu dHMgbm9uLW1vZHVsYXIuIFNlZSBkb2MgY29tbWVudCBmb3IKKyAgICAgIC8vIE1vZHVsZTo6VXNl c1JlcXVpcmVzRXhjbHVkZWRIYWNrLgorICAgICAgSXNSZXF1aXJlc0V4Y2x1ZGVkSGFjayA9IHRy dWU7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSBlbHNlIGlmIChGdWxsTmFtZSA9PSAiSU9L aXQuYXZjIikgeworICAgICAgLy8gVGhpcyBtb2R1bGUgd2FzIG1pc3Rha2VubHkgbWFya2VkICdy ZXF1aXJlcyBjcGx1c3BsdXMnIGluIG9sZGVyIERhcndpbgorICAgICAgLy8gU0RLIHZlcnNpb25z LiBBcyBhIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGhhY2ssIGRvbid0IGFkZCB0aGUKKyAgICAg IC8vIHJlcXVpcmVtZW50LgorICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgfQorCi0tLS0t LS0tLS0tLS0tLS0KUGxlYXNlIGhhbmRsZSB0aGUgYGV4Y2x1ZGVkYCBhbmQgYGNwbHVzcGx1c2Ag Y2FzZXMgc2VwYXJhdGVseSwgdG8ga2VlcCB0aGlzIHNwZWNpYWwgY2FzZSBhcyBuYXJyb3cgYXMg cG9zc2libGUuCgo9PT09PT09PT09PT09PT09CkNvbW1lbnQgYXQ6IGxpYi9MZXgvTW9kdWxlTWFw LmNwcDoxNTkxCkBAICsxNTkwLDMgQEAKKyAgaWYgKEZlYXR1cmUgPT0gImV4Y2x1ZGVkIiB8fCBG ZWF0dXJlID09ICJjcGx1c3BsdXMiKSB7CisgICAgc3RkOjpzdHJpbmcgRnVsbE5hbWUgPSBNLT5n ZXRGdWxsTW9kdWxlTmFtZSgpOworICAgIGlmIChGdWxsTmFtZSA9PSAiRGFyd2luLkMuZXhjbHVk ZWQiIHx8IEZ1bGxOYW1lID09ICJUY2wuUHJpdmF0ZSIpIHsKLS0tLS0tLS0tLS0tLS0tLQpTZWVt cyBsaWtlIG92ZXJraWxsIHRvIGNvbXB1dGUgdGhlIGZ1bGwgbW9kdWxlIG5hbWUgZm9yIGV2ZXJ5 IG1vZHVsZSB0aGF0IGByZXF1aXJlcyBjcGx1c3BsdXNgLiBJbnN0ZWFkLCBob3cgYWJvdXQgd2Fs a2luZyB0aGUgbW9kdWxlIHBhdGggYSBjb21wb25lbnQgYXQgYSB0aW1lIGFuZCBjaGVja2luZyB5 b3UgZ2V0IHRoZSBleHBlY3RlZCBzZXF1ZW5jZSBvZiBjb21wb25lbnRzPwoKPT09PT09PT09PT09 PT09PQpDb21tZW50IGF0OiBsaWIvTGV4L01vZHVsZU1hcC5jcHA6MTg5MS0xOTA4CkBAICsxODkw LDIwIEBACisKKyAgaWYgKEFjdGl2ZU1vZHVsZS0+VXNlc1JlcXVpcmVzRXhjbHVkZWRIYWNrKSB7 CisgICAgLy8gTWFyayB0aGlzIGhlYWRlciAndGV4dHVhbCcgKHNlZSBkb2MgY29tbWVudCBmb3IK KyAgICAvLyBNb2R1bGU6OlVzZXNSZXF1aXJlc0V4Y2x1ZGVkSGFjaykuIEFsdGhvdWdoIGl0ZXJh dGluZyBvdmVyIHRoZSBkaXJlY3RvcnkKKyAgICAvLyBpcyByZWxhdGl2ZWx5IGV4cGVuc2l2ZSwg aW4gcHJhY3RpY2UgdGhpcyBvbmx5IGFwcGxpZXMgdG8gdGhlIHVuY29tbW9ubHkKKyAgICAvLyB1 c2VkIFRjbCBtb2R1bGUgb24gRGFyd2luIHBsYXRmb3Jtcy4KKyAgICBzdGQ6OmVycm9yX2NvZGUg RUM7CisgICAgZm9yIChsbHZtOjpzeXM6OmZzOjpyZWN1cnNpdmVfZGlyZWN0b3J5X2l0ZXJhdG9y IEkoRGlyLT5nZXROYW1lKCksIEVDKSwgRTsKKyAgICAgICAgIEkgIT0gRSAmJiAhRUM7IEkuaW5j cmVtZW50KEVDKSkgeworICAgICAgaWYgKGNvbnN0IEZpbGVFbnRyeSAqRkUgPSBTb3VyY2VNZ3Iu Z2V0RmlsZU1hbmFnZXIoKS5nZXRGaWxlKEktPnBhdGgoKSkpIHsKKyAgICAgICAgLy8gRklYTUU6 IFRha2luZyB0aGUgbmFtZSBmcm9tIHRoZSBGaWxlRW50cnkgaXMgdW5zdGFibGUgYW5kIGNhbiBn aXZlCisgICAgICAgIC8vIGRpZmZlcmVudCByZXN1bHRzIGRlcGVuZGluZyBvbiBob3cgd2UndmUg cHJldmlvdXNseSBuYW1lZCB0aGF0IGZpbGUKKyAgICAgICAgLy8gaW4gdGhpcyBidWlsZC4KKyAg ICAgICAgTW9kdWxlOjpIZWFkZXIgSGVhZGVyID0ge0ZFLT5nZXROYW1lKCksIEZFfTsKKyAgICAg ICAgTWFwLmFkZEhlYWRlcihBY3RpdmVNb2R1bGUsIEhlYWRlciwgTW9kdWxlTWFwOjpUZXh0dWFs SGVhZGVyKTsKKyAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuOworICB9CisKLS0tLS0tLS0tLS0t LS0tLQpJcyB0aGVyZSBhIGJldHRlciB3YXkgb2YgaGFuZGxpbmcgdGhpcz8gSWYgdGhlIHBhcmVu dCBkaXJlY3RvcnkgaXNuJ3QgaXRzZWxmIGFuIHVtYnJlbGxhIGRpcmVjdG9yeSBvZiBzb21lIG1v ZHVsZSwgbWF5YmUgeW91IGNvdWxkIGp1c3QgaWdub3JlIHRoZSB1bWJyZWxsYSBkaXJlY3Rvcnkg ZGVjbGFyYXRpb24gZm9yIHRoaXMgbW9kdWxlIGVudGlyZWx5PwoKClJlcG9zaXRvcnk6CiAgckwg TExWTQoKaHR0cDovL3Jldmlld3MubGx2bS5vcmcvRDExNDAzCgoKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmNmZS1jb21taXRzIG1haWxpbmcgbGlzdApj ZmUtY29tbWl0c0BsaXN0cy5sbHZtLm9yZwpodHRwOi8vbGlzdHMubGx2bS5vcmcvY2dpLWJpbi9t YWlsbWFuL2xpc3RpbmZvL2NmZS1jb21taXRzCg==