ZGlmZiAtLWdpdCBhL2NvbnN0YW50cy9hbm5vdGF0aW9uX2NvbW1vbi5oIGIvY29uc3RhbnRzL2Fubm90YXRpb25fY29tbW9uLmgKaW5kZXggNmY5NmU2Mi4uYmU2NDIwNiAxMDA2NDQKLS0tIGEvY29uc3RhbnRzL2Fubm90YXRpb25fY29tbW9uLmgKKysrIGIvY29uc3RhbnRzL2Fubm90YXRpb25fY29tbW9uLmgKQEAgLTI5LDYgKzI5LDkgQEAKIC8vIEVudHJpZXMgZm9yIHBvbHlnb24gYW5kIHBvbHlsaW5lIGFubm90YXRpb25zLgogY29uc3RleHByIGNoYXIga1ZlcnRpY2VzW10gPSAiVmVydGljZXMiOwogCisvLyBFbnRyaWVzIGZvciBpbmsgYW5ub3RhdGlvbnMKK2NvbnN0ZXhwciBjaGFyIGtJbmtMaXN0W10gPSAiSW5rTGlzdCI7CisKIH0gIC8vIG5hbWVzcGFjZSBhbm5vdGF0aW9uCiB9ICAvLyBuYW1lc3BhY2UgcGRmaXVtCiAKZGlmZiAtLWdpdCBhL2ZwZGZzZGsvZnBkZl9hbm5vdC5jcHAgYi9mcGRmc2RrL2ZwZGZfYW5ub3QuY3BwCmluZGV4IDEzYzczZjYuLjUxYjQzMzIgMTAwNjQ0Ci0tLSBhL2ZwZGZzZGsvZnBkZl9hbm5vdC5jcHAKKysrIGIvZnBkZnNkay9mcGRmX2Fubm90LmNwcApAQCAtMjk2LDYgKzI5NiwxOCBAQAogICByZXR1cm4gcEZvcm1Db250cm9sID8gcEZvcm0tPkdldFdpZGdldChwRm9ybUNvbnRyb2wpIDogbnVsbHB0cjsKIH0KIAorQ1BERl9BcnJheSogR2V0SW5rTGlzdChGUERGX0FOTk9UQVRJT04gYW5ub3QpIHsKKyAgRlBERl9BTk5PVEFUSU9OX1NVQlRZUEUgc3VidHlwZSA9IEZQREZBbm5vdF9HZXRTdWJ0eXBlKGFubm90KTsKKyAgaWYgKHN1YnR5cGUgIT0gRlBERl9BTk5PVF9JTkspCisgICAgcmV0dXJuIDA7CisKKyAgQ1BERl9EaWN0aW9uYXJ5KiBhbm5vdF9kaWN0ID0gR2V0QW5ub3REaWN0RnJvbUZQREZBbm5vdGF0aW9uKGFubm90KTsKKyAgaWYgKCFhbm5vdF9kaWN0KQorICAgIHJldHVybiAwOworCisgIHJldHVybiBhbm5vdF9kaWN0LT5HZXRBcnJheUZvcihwZGZpdW06OmFubm90YXRpb246OmtJbmtMaXN0KTsKK30KKwogfSAgLy8gbmFtZXNwYWNlCiAKIEZQREZfRVhQT1JUIEZQREZfQk9PTCBGUERGX0NBTExDT05WCkBAIC04MzcsNiArODQ5LDQ0IEBACiAgIHJldHVybiBwb2ludHNfbGVuOwogfQogCitGUERGX0VYUE9SVCB1bnNpZ25lZCBsb25nIEZQREZfQ0FMTENPTlYKK0ZQREZBbm5vdF9HZXRJbmtMaXN0Q291bnQoRlBERl9BTk5PVEFUSU9OIGFubm90KSB7CisgIENQREZfQXJyYXkqIGlua19saXN0ID0gR2V0SW5rTGlzdChhbm5vdCk7CisgIGlmICghaW5rX2xpc3QpCisgICAgcmV0dXJuIDA7CisKKyAgcmV0dXJuIGlua19saXN0LT5zaXplKCk7Cit9CisKK0ZQREZfRVhQT1JUIHVuc2lnbmVkIGxvbmcgRlBERl9DQUxMQ09OVgorRlBERkFubm90X0dldElua0xpc3RQYXRoKEZQREZfQU5OT1RBVElPTiBhbm5vdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHBhdGhfaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgRlNfUE9JTlRGKiBidWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsZW5ndGgpIHsKKyAgdW5zaWduZWQgbG9uZyBwYXRoX2NvdW50ID0gRlBERkFubm90X0dldElua0xpc3RDb3VudChhbm5vdCk7CisgIGlmIChwYXRoX2luZGV4ID49IHBhdGhfY291bnQpCisgICAgcmV0dXJuIDA7CisKKyAgQ1BERl9BcnJheSogaW5rX2xpc3QgPSBHZXRJbmtMaXN0KGFubm90KTsKKyAgaWYgKCFpbmtfbGlzdCkKKyAgICByZXR1cm4gMDsKKworICBDUERGX0FycmF5KiBwYXRoID0gaW5rX2xpc3QtPkdldEFycmF5QXQocGF0aF9pbmRleCk7CisgIGlmICghcGF0aCkKKyAgICByZXR1cm4gMDsKKworICAvLyBUcnVuY2F0ZSB0byBhbiBldmVuIG51bWJlci4KKyAgdW5zaWduZWQgbG9uZyBwb2ludHNfbGVuID0gcGF0aC0+c2l6ZSgpIC8gMjsKKyAgaWYgKGJ1ZmZlciAmJiBsZW5ndGggPj0gcG9pbnRzX2xlbikgeworICAgIGZvciAodW5zaWduZWQgbG9uZyBpID0gMDsgaSA8IHBvaW50c19sZW47ICsraSkgeworICAgICAgYnVmZmVyW2ldLnggPSBwYXRoLT5HZXROdW1iZXJBdChpICogMik7CisgICAgICBidWZmZXJbaV0ueSA9IHBhdGgtPkdldE51bWJlckF0KGkgKiAyICsgMSk7CisgICAgfQorICB9CisKKyAgcmV0dXJuIHBvaW50c19sZW47Cit9CisKIEZQREZfRVhQT1JUIEZQREZfQk9PTCBGUERGX0NBTExDT05WIEZQREZBbm5vdF9IYXNLZXkoRlBERl9BTk5PVEFUSU9OIGFubm90LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGUERGX0JZVEVTVFJJTkcga2V5KSB7CiAgIENQREZfRGljdGlvbmFyeSogcEFubm90RGljdCA9IEdldEFubm90RGljdEZyb21GUERGQW5ub3RhdGlvbihhbm5vdCk7CmRpZmYgLS1naXQgYS9mcGRmc2RrL2ZwZGZfYW5ub3RfZW1iZWRkZXJ0ZXN0LmNwcCBiL2ZwZGZzZGsvZnBkZl9hbm5vdF9lbWJlZGRlcnRlc3QuY3BwCmluZGV4IDJiNjZlMzIuLjIzM2Y4NDIgMTAwNjQ0Ci0tLSBhL2ZwZGZzZGsvZnBkZl9hbm5vdF9lbWJlZGRlcnRlc3QuY3BwCisrKyBiL2ZwZGZzZGsvZnBkZl9hbm5vdF9lbWJlZGRlcnRlc3QuY3BwCkBAIC0zMjMyLDcgKzMyMzIsNyBAQAogICAgIFNjb3BlZEZQREZBbm5vdGF0aW9uIGFubm90KEZQREZQYWdlX0dldEFubm90KHBhZ2UsIDApKTsKICAgICBBU1NFUlRfVFJVRShhbm5vdCk7CiAKLSAgICAvLyBGUERGU2lnbmF0dXJlT2JqX0dldFRpbWUoKSBwb3NpdGl2ZSB0ZXN0aW5nLgorICAgIC8vIEZQREZBbm5vdF9HZXRWZXJ0aWNlcygpIHBvc2l0aXZlIHRlc3RpbmcuCiAgICAgdW5zaWduZWQgbG9uZyBzaXplID0gRlBERkFubm90X0dldFZlcnRpY2VzKGFubm90LmdldCgpLCBudWxscHRyLCAwKTsKICAgICBjb25zdCBzaXplX3Qga0V4cGVjdGVkU2l6ZSA9IDM7CiAgICAgQVNTRVJUX0VRKGtFeHBlY3RlZFNpemUsIHNpemUpOwpAQCAtMzI4OCwzICszMjg4LDkyIEBACiAKICAgVW5sb2FkUGFnZShwYWdlKTsKIH0KKworVEVTVF9GKEZQREZBbm5vdEVtYmVkZGVyVGVzdCwgSW5rQW5ub3RhdGlvbikgeworICBBU1NFUlRfVFJVRShPcGVuRG9jdW1lbnQoImlua19hbm5vdC5wZGYiKSk7CisgIEZQREZfUEFHRSBwYWdlID0gTG9hZFBhZ2UoMCk7CisgIEFTU0VSVF9UUlVFKHBhZ2UpOworICBFWFBFQ1RfRVEoMiwgRlBERlBhZ2VfR2V0QW5ub3RDb3VudChwYWdlKSk7CisKKyAgeworICAgIFNjb3BlZEZQREZBbm5vdGF0aW9uIGFubm90KEZQREZQYWdlX0dldEFubm90KHBhZ2UsIDApKTsKKyAgICBBU1NFUlRfVFJVRShhbm5vdCk7CisKKyAgICAvLyBGUERGQW5ub3RfR2V0SW5rTGlzdENvdW50KCkgYW5kIEZQREZBbm5vdF9HZXRJbmtMaXN0UGF0aCgpIHBvc2l0aXZlCisgICAgLy8gdGVzdGluZy4KKyAgICB1bnNpZ25lZCBsb25nIHNpemUgPSBGUERGQW5ub3RfR2V0SW5rTGlzdENvdW50KGFubm90LmdldCgpKTsKKyAgICBjb25zdCBzaXplX3Qga0V4cGVjdGVkU2l6ZSA9IDE7CisgICAgQVNTRVJUX0VRKGtFeHBlY3RlZFNpemUsIHNpemUpOworICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcga1BhdGhJbmRleCA9IDA7CisgICAgdW5zaWduZWQgbG9uZyBwYXRoX3NpemUgPQorICAgICAgICBGUERGQW5ub3RfR2V0SW5rTGlzdFBhdGgoYW5ub3QuZ2V0KCksIGtQYXRoSW5kZXgsIG51bGxwdHIsIDApOworICAgIGNvbnN0IHNpemVfdCBrRXhwZWN0ZWRQYXRoU2l6ZSA9IDM7CisgICAgQVNTRVJUX0VRKGtFeHBlY3RlZFBhdGhTaXplLCBwYXRoX3NpemUpOworICAgIHN0ZDo6dmVjdG9yPEZTX1BPSU5URj4gcGF0aF9idWZmZXIocGF0aF9zaXplKTsKKyAgICBFWFBFQ1RfRVEocGF0aF9zaXplLAorICAgICAgICAgICAgICBGUERGQW5ub3RfR2V0SW5rTGlzdFBhdGgoYW5ub3QuZ2V0KCksIGtQYXRoSW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoX2J1ZmZlci5kYXRhKCksIHBhdGhfc2l6ZSkpOworICAgIEVYUEVDVF9GTE9BVF9FUSgxNTkuMGYsIHBhdGhfYnVmZmVyWzBdLngpOworICAgIEVYUEVDVF9GTE9BVF9FUSgyOTYuMGYsIHBhdGhfYnVmZmVyWzBdLnkpOworICAgIEVYUEVDVF9GTE9BVF9FUSgzNTAuMGYsIHBhdGhfYnVmZmVyWzFdLngpOworICAgIEVYUEVDVF9GTE9BVF9FUSg0MTEuMGYsIHBhdGhfYnVmZmVyWzFdLnkpOworICAgIEVYUEVDVF9GTE9BVF9FUSg0NzIuMGYsIHBhdGhfYnVmZmVyWzJdLngpOworICAgIEVYUEVDVF9GTE9BVF9FUSgyNDMuNDJmLCBwYXRoX2J1ZmZlclsyXS55KTsKKworICAgIC8vIEZQREZBbm5vdF9HZXRJbmtMaXN0Q291bnQoKSBhbmQgRlBERkFubm90X0dldElua0xpc3RQYXRoKCkgbmVnYXRpdmUKKyAgICAvLyB0ZXN0aW5nLgorICAgIEVYUEVDVF9FUSgwVSwgRlBERkFubm90X0dldElua0xpc3RDb3VudChudWxscHRyKSk7CisgICAgRVhQRUNUX0VRKDBVLCBGUERGQW5ub3RfR2V0SW5rTGlzdFBhdGgobnVsbHB0ciwgMCwgbnVsbHB0ciwgMCkpOworCisgICAgLy8gb3V0IG9mIGJvdW5kcyBwYXRoX2luZGV4LgorICAgIEVYUEVDVF9FUSgwVSwgRlBERkFubm90X0dldElua0xpc3RQYXRoKG51bGxwdHIsIDQyLCBudWxscHRyLCAwKSk7CisKKyAgICAvLyBwYXRoX2J1ZmZlciBpcyBub3Qgb3ZlcndyaXR0ZW4gaWYgaXQgaXMgdG9vIHNtYWxsLgorICAgIHBhdGhfYnVmZmVyLnJlc2l6ZSgxKTsKKyAgICBwYXRoX2J1ZmZlclswXS54ID0gNDI7CisgICAgcGF0aF9idWZmZXJbMF0ueSA9IDQzOworICAgIHBhdGhfc2l6ZSA9IEZQREZBbm5vdF9HZXRJbmtMaXN0UGF0aCgKKyAgICAgICAgYW5ub3QuZ2V0KCksIGtQYXRoSW5kZXgsIHBhdGhfYnVmZmVyLmRhdGEoKSwgcGF0aF9idWZmZXIuc2l6ZSgpKTsKKyAgICBFWFBFQ1RfRVEoa0V4cGVjdGVkU2l6ZSwgc2l6ZSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKDQyLCBwYXRoX2J1ZmZlclswXS54KTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoNDMsIHBhdGhfYnVmZmVyWzBdLnkpOworICB9CisKKyAgeworICAgIFNjb3BlZEZQREZBbm5vdGF0aW9uIGFubm90KEZQREZQYWdlX0dldEFubm90KHBhZ2UsIDEpKTsKKyAgICBBU1NFUlRfVFJVRShhbm5vdCk7CisKKyAgICAvLyBUaGlzIGhhcyBhbiBvZGQgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBwYXRoIGFycmF5LCBpZ25vcmUgdGhlIGxhc3QKKyAgICAvLyBlbGVtZW50LgorICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSA9IEZQREZBbm5vdF9HZXRJbmtMaXN0Q291bnQoYW5ub3QuZ2V0KCkpOworICAgIGNvbnN0IHNpemVfdCBrRXhwZWN0ZWRTaXplID0gMTsKKyAgICBBU1NFUlRfRVEoa0V4cGVjdGVkU2l6ZSwgc2l6ZSk7CisgICAgY29uc3QgdW5zaWduZWQgbG9uZyBrUGF0aEluZGV4ID0gMDsKKyAgICB1bnNpZ25lZCBsb25nIHBhdGhfc2l6ZSA9CisgICAgICAgIEZQREZBbm5vdF9HZXRJbmtMaXN0UGF0aChhbm5vdC5nZXQoKSwga1BhdGhJbmRleCwgbnVsbHB0ciwgMCk7CisgICAgY29uc3Qgc2l6ZV90IGtFeHBlY3RlZFBhdGhTaXplID0gMzsKKyAgICBBU1NFUlRfRVEoa0V4cGVjdGVkUGF0aFNpemUsIHBhdGhfc2l6ZSk7CisgICAgc3RkOjp2ZWN0b3I8RlNfUE9JTlRGPiBwYXRoX2J1ZmZlcihwYXRoX3NpemUpOworICAgIEVYUEVDVF9FUShwYXRoX3NpemUsCisgICAgICAgICAgICAgIEZQREZBbm5vdF9HZXRJbmtMaXN0UGF0aChhbm5vdC5nZXQoKSwga1BhdGhJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGhfYnVmZmVyLmRhdGEoKSwgcGF0aF9zaXplKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKDI1OS4wZiwgcGF0aF9idWZmZXJbMF0ueCk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKDM5Ni4wZiwgcGF0aF9idWZmZXJbMF0ueSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKDQ1MC4wZiwgcGF0aF9idWZmZXJbMV0ueCk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKDUxMS4wZiwgcGF0aF9idWZmZXJbMV0ueSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKDU3Mi4wZiwgcGF0aF9idWZmZXJbMl0ueCk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKDM0My4wZiwgcGF0aF9idWZmZXJbMl0ueSk7CisgIH0KKworICB7CisgICAgLy8gV3JvbmcgYW5ub3RhdGlvbiB0eXBlLgorICAgIFNjb3BlZEZQREZBbm5vdGF0aW9uIHBvbHlnb25fYW5ub3QoCisgICAgICAgIEZQREZQYWdlX0NyZWF0ZUFubm90KHBhZ2UsIEZQREZfQU5OT1RfUE9MWUdPTikpOworICAgIEVYUEVDVF9FUSgwVSwgRlBERkFubm90X0dldElua0xpc3RDb3VudChwb2x5Z29uX2Fubm90LmdldCgpKSk7CisgICAgY29uc3QgdW5zaWduZWQgbG9uZyBrUGF0aEluZGV4ID0gMDsKKyAgICBFWFBFQ1RfRVEoMFUsIEZQREZBbm5vdF9HZXRJbmtMaXN0UGF0aChwb2x5Z29uX2Fubm90LmdldCgpLCBrUGF0aEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGxwdHIsIDApKTsKKyAgfQorCisgIFVubG9hZFBhZ2UocGFnZSk7Cit9CmRpZmYgLS1naXQgYS9mcGRmc2RrL2ZwZGZfdmlld19jX2FwaV90ZXN0LmMgYi9mcGRmc2RrL2ZwZGZfdmlld19jX2FwaV90ZXN0LmMKaW5kZXggZjMxNTVkNi4uYjQ3YjA0ZiAxMDA2NDQKLS0tIGEvZnBkZnNkay9mcGRmX3ZpZXdfY19hcGlfdGVzdC5jCisrKyBiL2ZwZGZzZGsvZnBkZl92aWV3X2NfYXBpX3Rlc3QuYwpAQCAtNTksNiArNTksOCBAQAogICAgIENISyhGUERGQW5ub3RfR2V0Rm9ybUZpZWxkTmFtZSk7CiAgICAgQ0hLKEZQREZBbm5vdF9HZXRGb3JtRmllbGRUeXBlKTsKICAgICBDSEsoRlBERkFubm90X0dldEZvcm1GaWVsZFZhbHVlKTsKKyAgICBDSEsoRlBERkFubm90X0dldElua0xpc3RDb3VudCk7CisgICAgQ0hLKEZQREZBbm5vdF9HZXRJbmtMaXN0UGF0aCk7CiAgICAgQ0hLKEZQREZBbm5vdF9HZXRMaW5rKTsKICAgICBDSEsoRlBERkFubm90X0dldExpbmtlZEFubm90KTsKICAgICBDSEsoRlBERkFubm90X0dldE51bWJlclZhbHVlKTsKZGlmZiAtLWdpdCBhL3B1YmxpYy9mcGRmX2Fubm90LmggYi9wdWJsaWMvZnBkZl9hbm5vdC5oCmluZGV4IDcxNTk2MDIuLmQxMjEzNDQgMTAwNjQ0Ci0tLSBhL3B1YmxpYy9mcGRmX2Fubm90LmgKKysrIGIvcHVibGljL2ZwZGZfYW5ub3QuaApAQCAtNDEyLDYgKzQxMiwzNCBAQAogICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbGVuZ3RoKTsKIAogLy8gRXhwZXJpbWVudGFsIEFQSS4KKy8vIEdldCB0aGUgbnVtYmVyIG9mIHBhdGhzIGluIHRoZSBpbmsgbGlzdCBvZiBhbiBpbmsgYW5ub3RhdGlvbi4KKy8vCisvLyAgIGFubm90ICAtIGhhbmRsZSB0byBhbiBhbm5vdGF0aW9uLCBhcyByZXR1cm5lZCBieSBlLmcuIEZQREZQYWdlX0dldEFubm90KCkKKy8vCisvLyBSZXR1cm5zIHRoZSBudW1iZXIgb2YgcGF0aHMgaW4gdGhlIGluayBsaXN0IGlmIHRoZSBhbm5vdGF0aW9uIGlzIG9mIHR5cGUgaW5rLAorLy8gMCBvdGhlcndpc2UuCitGUERGX0VYUE9SVCB1bnNpZ25lZCBsb25nIEZQREZfQ0FMTENPTlYKK0ZQREZBbm5vdF9HZXRJbmtMaXN0Q291bnQoRlBERl9BTk5PVEFUSU9OIGFubm90KTsKKworLy8gRXhwZXJpbWVudGFsIEFQSS4KKy8vIEdldCBhIHBhdGggaW4gdGhlIGluayBsaXN0IG9mIGFuIGluayBhbm5vdGF0aW9uLiB8YnVmZmVyfCBpcyBhbiBhcnJheSBvZgorLy8gcG9pbnRzIG9mIHRoZSBwYXRoLiBJZiB8bGVuZ3RofCBpcyBsZXNzIHRoYW4gdGhlIHJldHVybmVkIGxlbmd0aCwgb3IgfGFubm90fAorLy8gb3IgfGJ1ZmZlcnwgaXMgTlVMTCwgfGJ1ZmZlcnwgd2lsbCBub3QgYmUgbW9kaWZpZWQuCisvLworLy8gICBhbm5vdCAgLSBoYW5kbGUgdG8gYW4gYW5ub3RhdGlvbiwgYXMgcmV0dXJuZWQgYnkgZS5nLiBGUERGUGFnZV9HZXRBbm5vdCgpCisvLyAgIHBhdGhfaW5kZXggLSBpbmRleCBvZiB0aGUgcGF0aAorLy8gICBidWZmZXIgLSBidWZmZXIgZm9yIGhvbGRpbmcgdGhlIHBvaW50cy4KKy8vICAgbGVuZ3RoIC0gbGVuZ3RoIG9mIHRoZSBidWZmZXIgaW4gcG9pbnRzLgorLy8KKy8vIFJldHVybnMgdGhlIG51bWJlciBvZiBwb2ludHMgb2YgdGhlIHBhdGggaWYgdGhlIGFubm90YXRpb24gaXMgb2YgdHlwZSBpbmssIDAKKy8vIG90aGVyd2lzZS4KK0ZQREZfRVhQT1JUIHVuc2lnbmVkIGxvbmcgRlBERl9DQUxMQ09OVgorRlBERkFubm90X0dldElua0xpc3RQYXRoKEZQREZfQU5OT1RBVElPTiBhbm5vdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHBhdGhfaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgRlNfUE9JTlRGKiBidWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsZW5ndGgpOworCisvLyBFeHBlcmltZW50YWwgQVBJLgogLy8gQ2hlY2sgaWYgfGFubm90fCdzIGRpY3Rpb25hcnkgaGFzIHxrZXl8IGFzIGEga2V5LgogLy8KIC8vICAgYW5ub3QgIC0gaGFuZGxlIHRvIGFuIGFubm90YXRpb24uCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9pbmtfYW5ub3QuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9pbmtfYW5ub3QuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGE5MGIyOQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2lua19hbm5vdC5pbgpAQCAtMCwwICsxLDQ4IEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCisgIC9Bbm5vdHMgWworICAgIDQgMCBSIDUgMCBSCisgIF0KKyAgL1RhYnMgL1IKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvSW5rCisgIC9OTSAoSW5rLTEpCisgIC9GIDQKKyAgL0lua0xpc3QgW1sxNTkgMjk2IDM1MCA0MTEgNDcyIDI0My40Ml1dCisgIC9QIDMgMCBSCisgIC9DIFsxIDAuOTAxOTYgMF0KKyAgL1JlY3QgWzI5MyA1MzAgMzQ5IDU0Ml0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDUgMH19IDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvSW5rCisgIC9OTSAoSW5rLTIpCisgIC9GIDQKKyAgL0lua0xpc3QgW1syNTkgMzk2IDQ1MCA1MTEgNTcyIDM0MyA0Ml1dCisgIC9QIDMgMCBSCisgIC9DIFsxIDAuOTAxOTYgMF0KKyAgL1JlY3QgWzI5MyA1MzAgMzQ5IDU0Ml0KKz4+CitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2lua19hbm5vdC5wZGYgYi90ZXN0aW5nL3Jlc291cmNlcy9pbmtfYW5ub3QucGRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwNmYyOGQKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9pbmtfYW5ub3QucGRmCkBAIC0wLDAgKzEsNjAgQEAKKyVQREYtMS43CisloPKk9AorMSAwIG9iaiA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKKzIgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKKzMgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQorICAvQW5ub3RzIFsKKyAgICA0IDAgUiA1IDAgUgorICBdCisgIC9UYWJzIC9SCis+PgorZW5kb2JqCis0IDAgb2JqIDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvSW5rCisgIC9OTSAoSW5rLTEpCisgIC9GIDQKKyAgL0lua0xpc3QgW1sxNTkgMjk2IDM1MCA0MTEgNDcyIDI0My40Ml1dCisgIC9QIDMgMCBSCisgIC9DIFsxIDAuOTAxOTYgMF0KKyAgL1JlY3QgWzI5MyA1MzAgMzQ5IDU0Ml0KKz4+CitlbmRvYmoKKzUgMCBvYmogPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9JbmsKKyAgL05NIChJbmstMikKKyAgL0YgNAorICAvSW5rTGlzdCBbWzI1OSAzOTYgNDUwIDUxMSA1NzIgMzQzIDQyXV0KKyAgL1AgMyAwIFIKKyAgL0MgWzEgMC45MDE5NiAwXQorICAvUmVjdCBbMjkzIDUzMCAzNDkgNTQyXQorPj4KK2VuZG9iagoreHJlZgorMCA2CiswMDAwMDAwMDAwIDY1NTM1IGYgCiswMDAwMDAwMDE1IDAwMDAwIG4gCiswMDAwMDAwMDY4IDAwMDAwIG4gCiswMDAwMDAwMTMxIDAwMDAwIG4gCiswMDAwMDAwMjUxIDAwMDAwIG4gCiswMDAwMDAwNDIyIDAwMDAwIG4gCit0cmFpbGVyIDw8CisgIC9Sb290IDEgMCBSCisgIC9TaXplIDYKKz4+CitzdGFydHhyZWYKKzU5MworJSVFT0YK