ZGlmZiAtLWdpdCBhL3NyYy9qYXZheC9wZXJzaXN0ZW5jZS9FbnRpdHlNYW5hZ2VyLmphdmEgYi9zcmMvamF2YXgvcGVyc2lzdGVuY2UvRW50aXR5TWFuYWdlci5qYXZhCmluZGV4IGZhMzY1NTkuLjJhOTU4MTkgMTAwNjQ0Ci0tLSBhL3NyYy9qYXZheC9wZXJzaXN0ZW5jZS9FbnRpdHlNYW5hZ2VyLmphdmEKKysrIGIvc3JjL2phdmF4L3BlcnNpc3RlbmNlL0VudGl0eU1hbmFnZXIuamF2YQpAQCAtOTIsNyArOTIsNyBAQAogICAgICAqIEByZXR1cm4gdGhlIGZvdW5kIGVudGl0eSBpbnN0YW5jZSBvciBudWxsIGlmIHRoZSBlbnRpdHkgZG9lcyBub3QgZXhpc3QKICAgICAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbgogICAgICAqICAgICAgICAgICAgIGlmIHRoZSBmaXJzdCBhcmd1bWVudCBkb2VzIG5vdCBkZW5vdGUgYW4gZW50aXR5IHR5cGUgb3IgdGhlCi0gICAgICogICAgICAgICAgICAgc2Vjb25kIGFyZ3VtZW50IGlzIGlzIG5vdCBhIHZhbGlkIHR5cGUgZm9yIHRoYXQgZW50aXR5knMKKyAgICAgKiAgICAgICAgICAgICBzZWNvbmQgYXJndW1lbnQgaXMgaXMgbm90IGEgdmFsaWQgdHlwZSBmb3IgdGhhdCBlbnRpdHkncwogICAgICAqICAgICAgICAgICAgIHByaW1hcnkga2V5IG9yIGlzIG51bGwKICAgICAgKi8KICAgICBwdWJsaWMgPFQ+IFQgZmluZChDbGFzczxUPiBlbnRpdHlDbGFzcywgT2JqZWN0IHByaW1hcnlLZXkpOwpAQCAtMTExLDcgKzExMSw3IEBACiAgICAgICogQHJldHVybiB0aGUgZm91bmQgZW50aXR5IGluc3RhbmNlIG9yIG51bGwgaWYgdGhlIGVudGl0eSBkb2VzIG5vdCBleGlzdAogICAgICAqIEB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uCiAgICAgICogICAgICAgICAgICAgaWYgdGhlIGZpcnN0IGFyZ3VtZW50IGRvZXMgbm90IGRlbm90ZSBhbiBlbnRpdHkgdHlwZSBvciB0aGUKLSAgICAgKiAgICAgICAgICAgICBzZWNvbmQgYXJndW1lbnQgaXMgaXMgbm90IGEgdmFsaWQgdHlwZSBmb3IgdGhhdCBlbnRpdHmScworICAgICAqICAgICAgICAgICAgIHNlY29uZCBhcmd1bWVudCBpcyBpcyBub3QgYSB2YWxpZCB0eXBlIGZvciB0aGF0IGVudGl0eSdzCiAgICAgICogICAgICAgICAgICAgcHJpbWFyeSBrZXkgb3IgaXMgbnVsbAogICAgICAqLwogICAgIHB1YmxpYyA8VD4gVCBmaW5kKENsYXNzPFQ+IGVudGl0eUNsYXNzLCBPYmplY3QgcHJpbWFyeUtleSwgTWFwPFN0cmluZywgT2JqZWN0PiBwcm9wZXJ0aWVzKTsKQEAgLTIxNSw3ICsyMTUsNyBAQAogICAgICAqIEByZXR1cm4gdGhlIGZvdW5kIGVudGl0eSBpbnN0YW5jZQogICAgICAqIEB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uCiAgICAgICogICAgICAgICAgICAgaWYgdGhlIGZpcnN0IGFyZ3VtZW50IGRvZXMgbm90IGRlbm90ZSBhbiBlbnRpdHkgdHlwZSBvciB0aGUKLSAgICAgKiAgICAgICAgICAgICBzZWNvbmQgYXJndW1lbnQgaXMgbm90IGEgdmFsaWQgdHlwZSBmb3IgdGhhdCBlbnRpdHmScyBwcmltYXJ5CisgICAgICogICAgICAgICAgICAgc2Vjb25kIGFyZ3VtZW50IGlzIG5vdCBhIHZhbGlkIHR5cGUgZm9yIHRoYXQgZW50aXR5J3MgcHJpbWFyeQogICAgICAqICAgICAgICAgICAgIGtleSBvciBpcyBudWxsCiAgICAgICogQHRocm93cyBFbnRpdHlOb3RGb3VuZEV4Y2VwdGlvbgogICAgICAqICAgICAgICAgICAgIGlmIHRoZSBlbnRpdHkgc3RhdGUgY2Fubm90IGJlIGFjY2Vzc2VkCmRpZmYgLS1naXQgYS9zcmMvamF2YXgvcGVyc2lzdGVuY2UvTWFwcGVkQnlJZC5qYXZhIGIvc3JjL2phdmF4L3BlcnNpc3RlbmNlL01hcHBlZEJ5SWQuamF2YQppbmRleCAzMzI4NWJlLi5iOTlmMWUwIDEwMDY0NAotLS0gYS9zcmMvamF2YXgvcGVyc2lzdGVuY2UvTWFwcGVkQnlJZC5qYXZhCisrKyBiL3NyYy9qYXZheC9wZXJzaXN0ZW5jZS9NYXBwZWRCeUlkLmphdmEKQEAgLTI5LDcgKzI5LDcgQEAKICAqIHJlbGF0aW9uc2hpcCBhdHRyaWJ1dGUgdGhhdCBjb3JyZXNwb25kcyB0byBhbiBFbWJlZGRlZElkIHByaW1hcnkga2V5LCBhbg0KICAqIGF0dHJpYnV0ZSB3aXRoaW4gYW4gRW1iZWRkZWRJZCBwcmltYXJ5IGtleSwgb3IgYSBzaW1wbGUgcHJpbWFyeSBrZXkgb2YgdGhlDQogICogcGFyZW50IGVudGl0eS4gVGhlIHZhbHVlIGF0dHJpYnV0ZSBzcGVjaWZpZXMgdGhlIGF0dHJpYnV0ZSB3aXRoaW4gYSBjb21wb3NpdGUNCi0gKiBrZXkgdG8gd2hpY2ggdGhlIHJlbGF0aW9uc2hpcCBhdHRyaWJ1dGUgY29ycmVzcG9uZHMuIElmIHRoZSBlbnRpdHmScyBwcmltYXJ5DQorICoga2V5IHRvIHdoaWNoIHRoZSByZWxhdGlvbnNoaXAgYXR0cmlidXRlIGNvcnJlc3BvbmRzLiBJZiB0aGUgZW50aXR5J3MgcHJpbWFyeQ0KICAqIGtleSBpcyBvZiB0aGUgc2FtZSBKYXZhIHR5cGUgYXMgdGhlIHByaW1hcnkga2V5IG9mIHRoZSBlbnRpdHkgcmVmZXJlbmNlZCBieQ0KICAqIHRoZSByZWxhdGlvbnNoaXAsIHRoZSB2YWx1ZSBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZC4NCiAgKiANCmRpZmYgLS1naXQgYS9zcmMvamF2YXgvcGVyc2lzdGVuY2UvUXVlcnkuamF2YSBiL3NyYy9qYXZheC9wZXJzaXN0ZW5jZS9RdWVyeS5qYXZhCmluZGV4IDc1OTY5ZWUuLmQxZjY5YWUgMTAwNjQ0Ci0tLSBhL3NyYy9qYXZheC9wZXJzaXN0ZW5jZS9RdWVyeS5qYXZhCisrKyBiL3NyYy9qYXZheC9wZXJzaXN0ZW5jZS9RdWVyeS5qYXZhCkBAIC0zMTIsNyArMzEyLDcgQEAKICAgICAgKiAKICAgICAgKiBAcmV0dXJuIHBhcmFtZXRlciBvYmplY3QKICAgICAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbgotICAgICAqICAgICAgICAgICAgIGlmIHRoZSBwYXJhbWV0ZXIgb2YgdGhlIHNwZWNpZmllZCBuYW1lIGFuZCB0eXBlIGRvZXNuknQgZXhpc3QKKyAgICAgKiAgICAgICAgICAgICBpZiB0aGUgcGFyYW1ldGVyIG9mIHRoZSBzcGVjaWZpZWQgbmFtZSBhbmQgdHlwZSBkb2Vzbid0IGV4aXN0CiAgICAgICovCiAgICAgPFQ+IFBhcmFtZXRlcjxUPiBnZXRQYXJhbWV0ZXIoU3RyaW5nIG5hbWUsIENsYXNzPFQ+IHR5cGUpOwogCkBAIC0zMjEsNyArMzIxLDcgQEAKICAgICAgKiAKICAgICAgKiBAcmV0dXJuIHBhcmFtZXRlciBvYmplY3QKICAgICAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbgotICAgICAqICAgICAgICAgICAgIGlmIHRoZSBwYXJhbWV0ZXIgd2l0aCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uIGFuZCB0eXBlIGRvZXNuknQKKyAgICAgKiAgICAgICAgICAgICBpZiB0aGUgcGFyYW1ldGVyIHdpdGggdGhlIHNwZWNpZmllZCBwb3NpdGlvbiBhbmQgdHlwZSBkb2Vzbid0CiAgICAgICogICAgICAgICAgICAgZXhpc3QKICAgICAgKi8KICAgICA8VD4gUGFyYW1ldGVyPFQ+IGdldFBhcmFtZXRlcihpbnQgcG9zaXRpb24sIENsYXNzPFQ+IHR5cGUpOwo=