ZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvYWNwaWNhL2FjcGljYV8yMDE3MDMwMy5iYiBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvYWNwaWNhL2FjcGljYV8yMDE3MDMwMy5iYgppbmRleCA4Njg1MDViLi41MWFlNzdiIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2FjcGljYS9hY3BpY2FfMjAxNzAzMDMuYmIKKysrIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9hY3BpY2EvYWNwaWNhXzIwMTcwMzAzLmJiCkBAIC0xNyw3ICsxNyw2IEBACiBERVBFTkRTID0gImJpc29uIGZsZXgiCiAKIFNSQ19VUkkgPSAiaHR0cHM6Ly9hY3BpY2Eub3JnL3NpdGVzL2FjcGljYS9maWxlcy9hY3BpY2EtdW5peDItJHtQVn0udGFyLmd6IFwKLSAgICBmaWxlOi8vbm8td2Vycm9yLnBhdGNoIFwKICAgICBmaWxlOi8vcmVuYW1lLXl5X3NjYW5fc3RyaW5nLW1hbnVhbGx5LnBhdGNoIFwKICAgICBmaWxlOi8vbWFuaXB1bGF0ZS1mZHMtaW5zdGVhZC1vZi1GSUxFLnBhdGNoO3N0cmlwbGV2ZWw9MiBcCiAgICAgZmlsZTovLzAwMDEtTGludXgtYWRkLXN1cHBvcnQtZm9yLVgzMi1BQkktY29tcGlsYXRpb24ucGF0Y2ggXApAQCAtNDksNyArNDgsNiBAQAogUFJPVklERVMgPSAiaWFzbCIKIFJQUk9WSURFU18ke1BOfSArPSAiaWFzbCIKIFJSRVBMQUNFU18ke1BOfSArPSAiaWFzbCIKLVJDT05GTElHSFRTXyR7UE59ICs9ICJpYXNsIgorUkNPTkZMSUNUU18ke1BOfSArPSAiaWFzbCIKIAotTkFUSVZFX0lOU1RBTExfV09SS1MgPSAiMSIKIEJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9hY3BpY2EvZmlsZXMvbm8td2Vycm9yLnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9hY3BpY2EvZmlsZXMvbm8td2Vycm9yLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNmU3YjU0Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvYWNwaWNhL2ZpbGVzL25vLXdlcnJvci5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLURlc2NyaXB0aW9uOiByZW1vdmUgLVdlcnJvciBmbGFnCi1Gb3J3YXJkZWQ6IG5vdC1uZWVkZWQKLUF1dGhvcjogRmF0aGkgQm91ZHJhIDxmYXRoaS5ib3VkcmFAbGluYXJvLm9yZz4KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotLS0tCi0gZ2VuZXJhdGUvdW5peC9pYXNsL01ha2VmaWxlIHwgICAxMiArKysrKystLS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQotCi0tLS0gYS9nZW5lcmF0ZS91bml4L2lhc2wvTWFrZWZpbGUKLSsrKyBiL2dlbmVyYXRlL3VuaXgvaWFzbC9NYWtlZmlsZQotQEAgLTI2NiwxOSArMjY2LDE5IEBAICQoT0JKRElSKS9wcnBhcnNlci55Lmg6ICQoT0JKRElSKS9wcnBhcnMKLSAjIGJ5IHRoZSB1dGlsaXRpZXMgYWJvdmUgYW5kIHRoZXkgYXJlIG5vdCBuZWNlc3NhcmlseSBBTlNJIEMsIGV0Yy4KLSAjCi0gJChPQkpESVIpL2FzbGNvbXBpbGVybGV4Lm8gOiAgICQoT0JKRElSKS9hc2xjb21waWxlcmxleC5jCi0tCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtV2FsbCAtV2Vycm9yIC1vJEAgJDwKLSsJJChDQykgLWMgJChDRkxBR1MpIC1XYWxsIC1vJEAgJDwKLSAKLSAkKE9CSkRJUikvYXNsY29tcGlsZXJwYXJzZS5vIDogJChPQkpESVIpL2FzbGNvbXBpbGVycGFyc2UuYwotLQkkKENDKSAtYyAkKENGTEFHUykgLVdhbGwgLVdlcnJvciAtbyRAICQ8Ci0rCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtV2FsbCAtbyRAICQ8Ci0gCi0gJChPQkpESVIpL2R0cGFyc2VybGV4Lm8gOiAgICAgICQoT0JKRElSKS9kdHBhcnNlcmxleC5jCi0tCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtV2FsbCAtV2Vycm9yIC1vJEAgJDwKLSsJJChDQykgLWMgJChDRkxBR1MpIC1XYWxsIC1vJEAgJDwKLSAKLSAkKE9CSkRJUikvZHRwYXJzZXJwYXJzZS5vIDogICAgJChPQkpESVIpL2R0cGFyc2VycGFyc2UuYwotLQkkKENDKSAtYyAkKENGTEFHUykgLVdhbGwgLVdlcnJvciAtbyRAICQ8Ci0rCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtV2FsbCAtbyRAICQ8Ci0gCi0gJChPQkpESVIpL3BycGFyc2VybGV4Lm8gOiAgICAgICQoT0JKRElSKS9wcnBhcnNlcmxleC5jCi0tCSQoQ0MpIC1jICQoQ0ZMQUdTKSAtV2FsbCAtV2Vycm9yIC1vJEAgJDwKLSsJJChDQykgLWMgJChDRkxBR1MpIC1XYWxsIC1vJEAgJDwKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvYXQvYXQvbWFrZWZpbGUtZml4LXBhcmFsbGVsLnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9hdC9hdC9tYWtlZmlsZS1maXgtcGFyYWxsZWwucGF0Y2gKaW5kZXggOTMyYTRjMC4uZDYwNTZkYyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9hdC9hdC9tYWtlZmlsZS1maXgtcGFyYWxsZWwucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9hdC9hdC9tYWtlZmlsZS1maXgtcGFyYWxsZWwucGF0Y2gKQEAgLTE1LDEzICsxNSwxMyBAQAogIE1ha2VmaWxlIHwgICAgNCArKystCiAgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogCi1kaWZmIC0tZ2l0IGEvTWFrZWZpbGUuaW4gYi9NYWtlZmlsZS5pbgotaW5kZXggMmE5YjkxOC4uYWE3YzA0YSAxMDA2NDQKLS0tLSBhL01ha2VmaWxlLmluCi0rKysgYi9NYWtlZmlsZS5pbgotQEAgLTc1LDcgKzc1LDkgQEAgYXQ6ICQoQVRPQkpFQ1RTKQorSW5kZXg6IGF0LTMuMS4yMC9NYWtlZmlsZS5pbgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGF0LTMuMS4yMC5vcmlnL01ha2VmaWxlLmluCisrKysgYXQtMy4xLjIwL01ha2VmaWxlLmluCitAQCAtNzYsNyArNzYsOSBAQCBhdDogJChBVE9CSkVDVFMpCiAgYXRkOiAkKFJVTk9CSkVDVFMpCi0gCSQoQ0MpICQoTERGTEFHUykgLW8gYXRkICQoUlVOT0JKRUNUUykgJChMSUJTKSAkKFBBTUxJQikKKyAJJChDQykgJChMREZMQUdTKSAtbyBhdGQgJChSVU5PQkpFQ1RTKSAkKExJQlMpICQoUEFNTElCKSAkKFNFTElOVVhMSUIpCiAgCiAteS50YWIuYyB5LnRhYi5oOiBwYXJzZXRpbWUueQogK3kudGFiLmg6IHkudGFiLmMKQEAgLTMwLDYgKzMwLDMgQEAKICAJJChZQUNDKSAtZCBwYXJzZXRpbWUueQogIAogIGxleC55eS5jOiBwYXJzZXRpbWUubAotLS0gCi0xLjcuOS41Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvYXQvYXRfMy4xLjIwLmJiIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9hdC9hdF8zLjEuMjAuYmIKaW5kZXggOWI1MzdlZS4uOGZlM2I0MyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9hdC9hdF8zLjEuMjAuYmIKKysrIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9hdC9hdF8zLjEuMjAuYmIKQEAgLTUsNyArNSw3IEBACiBTRUNUSU9OID0gImJhc2UiCiBMSUNFTlNFID0gIkdQTHYyKyIKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTQzMjVhZmQzOTZmZWJjYjY1OWMzNmI0OTUzMzEzNWQ0IgotREVQRU5EUyA9ICJmbGV4IGZsZXgtbmF0aXZlIFwKK0RFUEVORFMgPSAiZmxleCBmbGV4LW5hdGl2ZSBiaXNvbi1uYXRpdmUgXAogICAgICAgICAgICAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3BhbScsICdsaWJwYW0nLCAnJywgZCl9IgogCiBSREVQRU5EU18ke1BOfSA9ICIke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3BhbScsICcke1BBTV9ERVBTfScsICcnLCBkKX0gXApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9iYXNoL2Jhc2guaW5jIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9iYXNoL2Jhc2guaW5jCmluZGV4IGY0ZTFmN2EuLjljMmIwNjUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvYmFzaC9iYXNoLmluYworKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2Jhc2gvYmFzaC5pbmMKQEAgLTYsNyArNiw3IEBACiAKIGluaGVyaXQgYXV0b3Rvb2xzIGdldHRleHQgdGV4aW5mbyB1cGRhdGUtYWx0ZXJuYXRpdmVzIHB0ZXN0CiAKLUVYVFJBX0FVVE9SRUNPTkYgKz0gIi0tZXhjbHVkZT1hdXRvaGVhZGVyIgorRVhUUkFfQVVUT1JFQ09ORiArPSAiLS1leGNsdWRlPWF1dG9oZWFkZXIgLS1leGNsdWRlPWFjbG9jYWwiCiBFWFRSQV9PRUNPTkYgPSAiLS1lbmFibGUtam9iLWNvbnRyb2wgLS13aXRob3V0LWJhc2gtbWFsbG9jIgogCiAjIElmIE5PTl9JTlRFUkFDVElWRV9MT0dJTl9TSEVMTFMgaXMgZGVmaW5lZCwgYWxsIGxvZ2luIHNoZWxscyByZWFkIHRoZQpAQCAtMjUsNyArMjUsNyBAQAogUkRFUEVORFNfJHtQTn1fY2xhc3MtbmF0aXZlc2RrID0gIiIKIFJERVBFTkRTXyR7UE59LXB0ZXN0ICs9ICJtYWtlIgogCi1ERVBFTkRTX2FwcGVuZF9saWJjLWdsaWJjID0gIiBnbGliYy1sb2NhbGUiCitERVBFTkRTX2FwcGVuZF9saWJjLWdsaWJjID0gIiB2aXJ0dWFsL2xpYmMtbG9jYWxlIgogUkRFUEVORFNfJHtQTn0tcHRlc3RfYXBwZW5kX2xpYmMtZ2xpYmMgPSAiIGxvY2FsZS1iYXNlLWZyLWZyIGxvY2FsZS1iYXNlLWRlLWRlIgogCiBVU0VSQUREX1BBQ0tBR0VTID0gIiR7UE59LXB0ZXN0IgpAQCAtMzMsMTIgKzMzLDYgQEAKIAogQ0FDSEVEX0NPTkZJR1VSRVZBUlMgKz0gImhlYWRlcnNkaXI9JHtpbmNsdWRlZGlyfS8ke1BOfSIKIAotZG9fY29uZmlndXJlX3ByZXBlbmQgKCkgewotCWlmIFsgISAtZSAke1N9L2FjaW5jbHVkZS5tNCBdOyB0aGVuCi0JCWNhdCAke1N9L2FjbG9jYWwubTQgPiAke1N9L2FjaW5jbHVkZS5tNAotCWZpCi19Ci0KIGRvX2NvbXBpbGVfcHRlc3QgKCkgewogCW9lX3J1bm1ha2UgYnVpbGR0ZXN0CiB9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2Jhc2gvYmFzaC9leGVjdXRlX2NtZC5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvYmFzaC9iYXNoL2V4ZWN1dGVfY21kLnBhdGNoCmluZGV4IDgxZjhmMGEuLjk5NzBiNGQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvYmFzaC9iYXNoL2V4ZWN1dGVfY21kLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvYmFzaC9iYXNoL2V4ZWN1dGVfY21kLnBhdGNoCkBAIC0xLDggKzEsMTAgQEAKIFVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbZW1iZWRkZWQgc3BlY2lmaWNdCiAKLS0tLSBleGVjdXRlX2NtZC5jLm9yaWcJRnJpIEp1biAgMyAxMzozNDo0MiAyMDExCi0rKysgZXhlY3V0ZV9jbWQuYwlGcmkgSnVuICAzIDEzOjM2OjQxIDIwMTEKLUBAIC0yMjAyLDcgKzIyMDIsMTEgQEAKK0luZGV4OiBleGVjdXRlX2NtZC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZXhlY3V0ZV9jbWQuYy5vcmlnCisrKysgZXhlY3V0ZV9jbWQuYworQEAgLTI0NTksNyArMjQ1OSwxMSBAQCBleGVjdXRlX3BpcGVsaW5lIChjb21tYW5kLCBhc3luY2hyb25vdXMsCiAgICAvKiBJZiB0aGUgYGxhc3RwaXBlJyBvcHRpb24gaXMgc2V0IHdpdGggc2hvcHQsIGFuZCBqb2IgY29udHJvbCBpcyBub3QKICAgICAgIGVuYWJsZWQsIGV4ZWN1dGUgdGhlIGxhc3QgZWxlbWVudCBvZiBub24tYXN5bmMgcGlwZWxpbmVzIGluIHRoZQogICAgICAgY3VycmVudCBzaGVsbCBlbnZpcm9ubWVudC4gKi8KQEAgLTEzLDUgKzE1LDUgQEAKICsjZW5kaWYKICsJCWFzeW5jaHJvbm91cyA9PSAwICYmIHBpcGVfb3V0ID09IE5PX1BJUEUgJiYgcHJldiA+IDApCiAgICAgIHsKLSAgICAgICBsc3RkaW4gPSBtb3ZlX3RvX2hpZ2hfZmQgKDAsIDAsIDI1NSk7CisgICAgICAgbHN0ZGluID0gbW92ZV90b19oaWdoX2ZkICgwLCAxLCAtMSk7CiAgICAgICAgaWYgKGxzdGRpbiA+IDApCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2Jhc2gvYmFzaC9wYXRoZXhwLWRlcC5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvYmFzaC9iYXNoL3BhdGhleHAtZGVwLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwNWJiZGEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2Jhc2gvYmFzaC9wYXRoZXhwLWRlcC5wYXRjaApAQCAtMCwwICsxLDEzIEBACitwYXRoZXhwIGluY2x1ZGVzIGxpYmludGwuaCBidXQgZG9lc24ndCBkZXBlbmQgb24gaXQsIHRodXMgYSBidWlsZCByYWNlIGNhbiBvY2N1ci4KKworVXBzdHJlYW0tU3RhdHVzOiBTdWJtaXR0ZWQgKGh0dHBzOi8vc2F2YW5uYWguZ251Lm9yZy9wYXRjaC9pbmRleC5waHA/OTUwMykKK1NpZ25lZC1vZmYtYnk6IFJvc3MgQnVydG9uIDxyb3NzLmJ1cnRvbkBpbnRlbC5jb20+CisKK2RpZmYgLS1naXQgYS9NYWtlZmlsZS5pbiBiL01ha2VmaWxlLmluCitpbmRleCBjN2I2MmJjMC4uMjQxY2JmMTIgMTAwNjQ0CistLS0gYS9NYWtlZmlsZS5pbgorKysrIGIvTWFrZWZpbGUuaW4KK0BAIC0xMjgxLDIgKzEyODEsMyBAQCBub2pvYnMubzogYmFzaGludGwuaCAke0xJQklOVExfSH0gJChCQVNISU5DRElSKS9nZXR0ZXh0LmgKKyB5LnRhYi5vOiBiYXNoaW50bC5oICR7TElCSU5UTF9IfSAkKEJBU0hJTkNESVIpL2dldHRleHQuaAorK3BhdGhleHAubzogYmFzaGludGwuaCAke0xJQklOVExfSH0gJChCQVNISU5DRElSKS9nZXR0ZXh0LmgKKyBwY29tcGxldGUubzogYmFzaGludGwuaCAke0xJQklOVExfSH0gJChCQVNISU5DRElSKS9nZXR0ZXh0LmgKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvYmFzaC9iYXNoXzQuNC4xMi5iYiBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvYmFzaC9iYXNoXzQuNC4xMi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MzgyYTc3Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9iYXNoL2Jhc2hfNC40LjEyLmJiCkBAIC0wLDAgKzEsMjQgQEAKK3JlcXVpcmUgYmFzaC5pbmMKKworIyBHUEx2MisgKDwgNC4wKSwgR1BMdjMrICg+PSA0LjApCitMSUNFTlNFID0gIkdQTHYzKyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWQzMjIzOWJjYjY3MzQ2M2FiODc0ZTgwZDQ3ZmFlNTA0IgorCitTUkNfVVJJID0gIiR7R05VX01JUlJPUn0vYmFzaC8ke0JQfS50YXIuZ3o7bmFtZT10YXJiYWxsIFwKKyAgICAgICAgICAgZmlsZTovL2V4ZWN1dGVfY21kLnBhdGNoO3N0cmlwbGV2ZWw9MCBcCisgICAgICAgICAgIGZpbGU6Ly9ta2J1aWx0aW5zX2hhdmVfc3RyaW5naXplLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL2J1aWxkLXRlc3RzLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL3Rlc3Qtb3V0cHV0LnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL2ZpeC1ydW4tY29wcm9jLXJ1bi1oZXJlZG9jLXJ1bi1leGVjc2NyaXB0LXJ1bi10ZXN0LWYucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vcnVuLXB0ZXN0IFwKKyAgICAgICAgICAgZmlsZTovL2ZpeC1ydW4tYnVpbHRpbnMucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1oZWxwLWZpeC1wcmludGYtZm9ybWF0LXNlY3VyaXR5LXdhcm5pbmcucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vYmFzaC1tZW1sZWFrLWJ1Zy1maXgtZm9yLWJ1aWx0aW4tY29tbWFuZC1yZWFkLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL3BhdGhleHAtZGVwLnBhdGNoIFwKKyAgICAgICAgICAgIgorCitTUkNfVVJJW3RhcmJhbGwubWQ1c3VtXSA9ICI3YzExMjk3MGNiZGNhZGZjMzMxZTEwZWViNWY2YWE0MSIKK1NSQ19VUklbdGFyYmFsbC5zaGEyNTZzdW1dID0gIjU3ZDg0MzJiZTU0NTQxNTMxYTQ5NmZkNDkwNGZkYzA4YzEyNTQyZjQzNjA1YTkyMDI1OTRmYTVkNWY5ZjIzMzEiCisKKworQkJDTEFTU0VYVEVORCA9ICJuYXRpdmVzZGsiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2Jhc2gvYmFzaF80LjQuYmIgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2Jhc2gvYmFzaF80LjQuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU1NDRkMDcuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9iYXNoL2Jhc2hfNC40LmJiCisrKyAvZGV2L251bGwKQEAgLTEsNTkgKzAsMCBAQAotcmVxdWlyZSBiYXNoLmluYwotCi0jIEdQTHYyKyAoPCA0LjApLCBHUEx2MysgKD49IDQuMCkKLUxJQ0VOU0UgPSAiR1BMdjMrIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9ZDMyMjM5YmNiNjczNDYzYWI4NzRlODBkNDdmYWU1MDQiCi0KLVNSQ19VUkkgPSAiJHtHTlVfTUlSUk9SfS9iYXNoLyR7QlB9LnRhci5nejtuYW1lPXRhcmJhbGwgXAotICAgICAgICAgICAke0dOVV9NSVJST1J9L2Jhc2gvYmFzaC00LjQtcGF0Y2hlcy9iYXNoNDQtMDAxO2FwcGx5PXllcztzdHJpcGxldmVsPTA7bmFtZT1wYXRjaDAwMSBcCi0gICAgICAgICAgICR7R05VX01JUlJPUn0vYmFzaC9iYXNoLTQuNC1wYXRjaGVzL2Jhc2g0NC0wMDI7YXBwbHk9eWVzO3N0cmlwbGV2ZWw9MDtuYW1lPXBhdGNoMDAyIFwKLSAgICAgICAgICAgJHtHTlVfTUlSUk9SfS9iYXNoL2Jhc2gtNC40LXBhdGNoZXMvYmFzaDQ0LTAwMzthcHBseT15ZXM7c3RyaXBsZXZlbD0wO25hbWU9cGF0Y2gwMDMgXAotICAgICAgICAgICAke0dOVV9NSVJST1J9L2Jhc2gvYmFzaC00LjQtcGF0Y2hlcy9iYXNoNDQtMDA0O2FwcGx5PXllcztzdHJpcGxldmVsPTA7bmFtZT1wYXRjaDAwNCBcCi0gICAgICAgICAgICR7R05VX01JUlJPUn0vYmFzaC9iYXNoLTQuNC1wYXRjaGVzL2Jhc2g0NC0wMDU7YXBwbHk9eWVzO3N0cmlwbGV2ZWw9MDtuYW1lPXBhdGNoMDA1IFwKLSAgICAgICAgICAgJHtHTlVfTUlSUk9SfS9iYXNoL2Jhc2gtNC40LXBhdGNoZXMvYmFzaDQ0LTAwNjthcHBseT15ZXM7c3RyaXBsZXZlbD0wO25hbWU9cGF0Y2gwMDYgXAotICAgICAgICAgICAke0dOVV9NSVJST1J9L2Jhc2gvYmFzaC00LjQtcGF0Y2hlcy9iYXNoNDQtMDA3O2FwcGx5PXllcztzdHJpcGxldmVsPTA7bmFtZT1wYXRjaDAwNyBcCi0gICAgICAgICAgICR7R05VX01JUlJPUn0vYmFzaC9iYXNoLTQuNC1wYXRjaGVzL2Jhc2g0NC0wMDg7YXBwbHk9eWVzO3N0cmlwbGV2ZWw9MDtuYW1lPXBhdGNoMDA4IFwKLSAgICAgICAgICAgJHtHTlVfTUlSUk9SfS9iYXNoL2Jhc2gtNC40LXBhdGNoZXMvYmFzaDQ0LTAwOTthcHBseT15ZXM7c3RyaXBsZXZlbD0wO25hbWU9cGF0Y2gwMDkgXAotICAgICAgICAgICAke0dOVV9NSVJST1J9L2Jhc2gvYmFzaC00LjQtcGF0Y2hlcy9iYXNoNDQtMDEwO2FwcGx5PXllcztzdHJpcGxldmVsPTA7bmFtZT1wYXRjaDAxMCBcCi0gICAgICAgICAgICR7R05VX01JUlJPUn0vYmFzaC9iYXNoLTQuNC1wYXRjaGVzL2Jhc2g0NC0wMTE7YXBwbHk9eWVzO3N0cmlwbGV2ZWw9MDtuYW1lPXBhdGNoMDExIFwKLSAgICAgICAgICAgJHtHTlVfTUlSUk9SfS9iYXNoL2Jhc2gtNC40LXBhdGNoZXMvYmFzaDQ0LTAxMjthcHBseT15ZXM7c3RyaXBsZXZlbD0wO25hbWU9cGF0Y2gwMTIgXAotICAgICAgICAgICBmaWxlOi8vZXhlY3V0ZV9jbWQucGF0Y2g7c3RyaXBsZXZlbD0wIFwKLSAgICAgICAgICAgZmlsZTovL21rYnVpbHRpbnNfaGF2ZV9zdHJpbmdpemUucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vYnVpbGQtdGVzdHMucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vdGVzdC1vdXRwdXQucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vZml4LXJ1bi1jb3Byb2MtcnVuLWhlcmVkb2MtcnVuLWV4ZWNzY3JpcHQtcnVuLXRlc3QtZi5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9ydW4tcHRlc3QgXAotICAgICAgICAgICBmaWxlOi8vZml4LXJ1bi1idWlsdGlucy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLWhlbHAtZml4LXByaW50Zi1mb3JtYXQtc2VjdXJpdHktd2FybmluZy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9iYXNoLW1lbWxlYWstYnVnLWZpeC1mb3ItYnVpbHRpbi1jb21tYW5kLXJlYWQucGF0Y2ggXAotICAgICAgICAgICAiCi0KLVNSQ19VUklbdGFyYmFsbC5tZDVzdW1dID0gIjE0ODg4OGE3Yzk1YWMyMzcwNTU1OWI2ZjQ3N2RmZTI1IgotU1JDX1VSSVt0YXJiYWxsLnNoYTI1NnN1bV0gPSAiZDg2YjMzOTJjMTIwMmU4ZmY1YTQyM2IzMDJlNjI4NGRiN2Y4ZjQzNWVhOWYzOWI1YjFiMjBmZDNhYzM2ZGZjYiIKLQotU1JDX1VSSVtwYXRjaDAwMS5tZDVzdW1dID0gIjgxN2QwMWE2YzBhZjZmNzkzMDhhOGI3YjY0OWU1M2Q4IgotU1JDX1VSSVtwYXRjaDAwMS5zaGEyNTZzdW1dID0gIjNlMjhkOTE1MzE3NTJkZjlhOGNiMTY3YWQwN2NjNTQyYWJhZjk0NGRlOTM1M2ZlOGM2YTUzNWM5ZjFmMTdmMGYiCi1TUkNfVVJJW3BhdGNoMDAyLm1kNXN1bV0gPSAiNzY1ZTE0Y2ZmMTJjNzI4NDAwOTc3MmU4ZTI0ZjJmZTAiCi1TUkNfVVJJW3BhdGNoMDAyLnNoYTI1NnN1bV0gPSAiNzAyMGEwMTgzZTE3YTcyMzNlNjY1Yjk3OWM3OGMxODRlYTM2OWNmYWYzZThiNGIxMWY1NTQ3ZWNiN2MxM2M1MyIKLVNSQ19VUklbcGF0Y2gwMDMubWQ1c3VtXSA9ICI0OWU3ZGE5M2JmMDdmNTEwYTJlYjZiYjQzYWMzZTVhMiIKLVNSQ19VUklbcGF0Y2gwMDMuc2hhMjU2c3VtXSA9ICI1MWRmNWE5MTkyZmRlZmUwZGRjYTRiZGYyOTA5MzJmNzRiZTAzZmZkMDUwM2EzZDExMmU0MTk5OTA1ZTcxOGIyIgotU1JDX1VSSVtwYXRjaDAwNC5tZDVzdW1dID0gIjQ1NTdkNjc0YWI1ODMxYTVmYTk4MDUyYWIxOWVkYWY0IgotU1JDX1VSSVtwYXRjaDAwNC5zaGEyNTZzdW1dID0gImFkMDgwYTMwYTRhYzZjMTI3MzM3MzYxN2YyOTYyOGNjMzIwYTM1YzhjZDA2OTEzODk0Nzk0MjkzZGM1MmM4YjMiCi1TUkNfVVJJW3BhdGNoMDA1Lm1kNXN1bV0gPSAiY2NlOTZkZDc3Y2RkMWQyOTNiZWVjMTA4NDhmNmNiYjUiCi1TUkNfVVJJW3BhdGNoMDA1LnNoYTI1NnN1bV0gPSAiMjIxZTRiNzI1Yjc3MGFkMGJiNjkyNGRmM2Y4ZDA0Zjg5ZWVjYTQ1NThmNmU0Yzc3N2RmYTkzZTk2NzA5MDUyOSIKLVNSQ19VUklbcGF0Y2gwMDYubWQ1c3VtXSA9ICJkMzM3OWY4ZDhhYmNlNWM2ZWUzMzhmOTMxYWQwMDhkNSIKLVNSQ19VUklbcGF0Y2gwMDYuc2hhMjU2c3VtXSA9ICI2YThlMmUyYTYxODBkMGYxY2UzOWRjZDY1MTYyMmZiNmQyZmQwNWRiN2M0NTlmNjRhZTQyZDY2N2YxZTM0NGI4IgotU1JDX1VSSVtwYXRjaDAwNy5tZDVzdW1dID0gImVjMzhjNzZjYTQzOWNhN2Y5YzE3OGU5YmFlZGU4NGZjIgotU1JDX1VSSVtwYXRjaDAwNy5zaGEyNTZzdW1dID0gImRlMWNjYzA3YjdiZmM5ZTI1MjQzYWQ4NTRmM2JiYjVkM2ViZjkxNTViMDQ3N2RmMTZhYWYwMGE3YjBkNWVkYWYiCi1TUkNfVVJJW3BhdGNoMDA4Lm1kNXN1bV0gPSAiZTBiYTE4YzFlM2I5NGY5MDVkYTliNWJmOWQzOGI1OGIiCi1TUkNfVVJJW3BhdGNoMDA4LnNoYTI1NnN1bV0gPSAiODYxNDQ3MDA0NjU5MzM2MzZkN2I5NDVlODliNzdkZjk1ZDM2MjAwMzQ3MjViZTE2MWNhMGNhNWE0MmUyMzliYSIKLVNSQ19VUklbcGF0Y2gwMDkubWQ1c3VtXSA9ICJlOTUyZDRmNDRlNjEyMDQ4OTMwYzU1OWQ5MGViOTliYiIKLVNSQ19VUklbcGF0Y2gwMDkuc2hhMjU2c3VtXSA9ICIwYjZiZGQxYTE4YTBkMjBlMzMwY2MzYmM3MWUwNDg4NjRlNGExMzY1MmUyOWRjMGViZjM5MThiZWE3MjkzNDNjIgotU1JDX1VSSVtwYXRjaDAxMC5tZDVzdW1dID0gIjU3YjViMzU5NTVkNjhmOWEwOWRiZWY2Yjg2ZDJjNzgyIgotU1JDX1VSSVtwYXRjaDAxMC5zaGEyNTZzdW1dID0gIjg0NjVjNmYyYzU2YWZlNTU5NDAyMjY1YjM5ZDllOTQzNjg5NTQ5MzBmOWFhN2YzZGZhNmQzNmRkNjY4NjhlMDYiCi1TUkNfVVJJW3BhdGNoMDExLm1kNXN1bV0gPSAiY2M4OTZlMWZhNjk2YjkzZGVkNTY4ZTU1N2UyMzkyZDUiCi1TUkNfVVJJW3BhdGNoMDExLnNoYTI1NnN1bV0gPSAiZGQ1NjQyNmVmN2Q3Mjk1ZTExMDdjMGIzZDA2YzE5MmViOTI5OGY0MDIzYzIwMmNhMmJhNjI2NmM2MTNkMTcwZCIKLVNSQ19VUklbcGF0Y2gwMTIubWQ1c3VtXSA9ICJmYTQ3ZmJmYTU2ZmI3ZTllNTM2N2YxOWE5ZGY1ZmM5ZSIKLVNSQ19VUklbcGF0Y2gwMTIuc2hhMjU2c3VtXSA9ICJmYWMyNzFkMmJmNjM3MmM5OTAzZTNiMzUzY2I5ZWRhMDQ0ZDdmZTM2YjVhYWI1MmYyMWYzZjIxY2Q2YTIwNjNlIgotCi1CQkNMQVNTRVhURU5EID0gIm5hdGl2ZXNkayIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvY3Vwcy9jdXBzLzAwMDEtZG9uLXQtdHJ5LXRvLXJ1bi1nZW5lcmF0ZWQtYmluYXJpZXMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2N1cHMvY3Vwcy8wMDAxLWRvbi10LXRyeS10by1ydW4tZ2VuZXJhdGVkLWJpbmFyaWVzLnBhdGNoCmluZGV4IDUzNzllYjYuLmRiMDEzY2YgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvY3Vwcy9jdXBzLzAwMDEtZG9uLXQtdHJ5LXRvLXJ1bi1nZW5lcmF0ZWQtYmluYXJpZXMucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9jdXBzL2N1cHMvMDAwMS1kb24tdC10cnktdG8tcnVuLWdlbmVyYXRlZC1iaW5hcmllcy5wYXRjaApAQCAtMTAsMTIgKzEwLDEyIEBACiAgcHBkYy9NYWtlZmlsZSB8ICAgMzAgKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiAgMSBmaWxlcyBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKIAotSW5kZXg6IGN1cHMtMi4wLjAvcHBkYy9NYWtlZmlsZQorSW5kZXg6IGN1cHMtMi4yLjYvcHBkYy9NYWtlZmlsZQogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGN1cHMtMi4wLjAub3JpZy9wcGRjL01ha2VmaWxlCi0rKysgY3Vwcy0yLjAuMC9wcGRjL01ha2VmaWxlCi1AQCAtMjQyLDggKzI0Miw4IEBAIGdlbnN0cmluZ3M6CQlnZW5zdHJpbmdzLm8gbGliY3Vwc3BwZGMuYQotIAkkKENYWCkgJChBUkNIRkxBR1MpICQoTERGTEFHUykgLW8gZ2Vuc3RyaW5ncyBnZW5zdHJpbmdzLm8gXAorLS0tIGN1cHMtMi4yLjYub3JpZy9wcGRjL01ha2VmaWxlCisrKysgY3Vwcy0yLjIuNi9wcGRjL01ha2VmaWxlCitAQCAtMjI4LDggKzIyOCw4IEBAIGdlbnN0cmluZ3M6CQlnZW5zdHJpbmdzLm8gbGliY3Vwc3BwZGMuYQorIAkkKExEX0NYWCkgJChBUkNIRkxBR1MpICQoTERGTEFHUykgLW8gZ2Vuc3RyaW5ncyBnZW5zdHJpbmdzLm8gXAogIAkJbGliY3Vwc3BwZGMuYSAuLi9jdXBzLyQoTElCQ1VQU1NUQVRJQykgJChMSUJHU1NBUEkpICQoU1NMTElCUykgXAogIAkJJChETlNTRExJQlMpICQoQ09NTU9OTElCUykgJChMSUJaKQogLQllY2hvIEdlbmVyYXRpbmcgbG9jYWxpemF0aW9uIHN0cmluZ3MuLi4KQEAgLTI1LDggKzI1LDggQEAKICAKICAKICAjCi1AQCAtMjYwLDkgKzI2MCw5IEBAIHBwZGMtc3RhdGljOgkJcHBkYy5vIGxpYmN1cHNwcGRjLmEgLi4vY3UKLSAJJChDWFgpICQoQVJDSEZMQUdTKSAkKExERkxBR1MpIC1vIHBwZGMtc3RhdGljIHBwZGMubyBsaWJjdXBzcHBkYy5hIFwKK0BAIC0yNDYsOSArMjQ2LDkgQEAgcHBkYy1zdGF0aWM6CQlwcGRjLm8gbGliY3Vwc3BwZGMuYSAuLi9jdQorIAkkKExEX0NYWCkgJChBUkNIRkxBR1MpICQoTERGTEFHUykgLW8gcHBkYy1zdGF0aWMgcHBkYy5vIGxpYmN1cHNwcGRjLmEgXAogIAkJLi4vY3Vwcy8kKExJQkNVUFNTVEFUSUMpICQoTElCR1NTQVBJKSAkKFNTTExJQlMpICQoRE5TU0RMSUJTKSBcCiAgCQkkKENPTU1PTkxJQlMpICQoTElCWikKIC0JZWNobyBUZXN0aW5nIFBQRCBjb21waWxlci4uLgpAQCAtMzgsOCArMzgsOCBAQAogIAogIAogICMKLUBAIC0yODgsMTcgKzI4OCwxNyBAQCBwcGRpLXN0YXRpYzoJCXBwZGMtc3RhdGljIHBwZGkubyBsaWJjdXBzCi0gCSQoQ1hYKSAkKEFSQ0hGTEFHUykgJChMREZMQUdTKSAtbyBwcGRpLXN0YXRpYyBwcGRpLm8gbGliY3Vwc3BwZGMuYSBcCitAQCAtMjc0LDE3ICsyNzQsMTcgQEAgcHBkaS1zdGF0aWM6CQlwcGRjLXN0YXRpYyBwcGRpLm8gbGliY3VwcworIAkkKExEX0NYWCkgJChBUkNIRkxBR1MpICQoTERGTEFHUykgLW8gcHBkaS1zdGF0aWMgcHBkaS5vIGxpYmN1cHNwcGRjLmEgXAogIAkJLi4vY3Vwcy8kKExJQkNVUFNTVEFUSUMpICQoTElCR1NTQVBJKSAkKFNTTExJQlMpICQoRE5TU0RMSUJTKSBcCiAgCQkkKENPTU1PTkxJQlMpICQoTElCWikKIC0JZWNobyBUZXN0aW5nIFBQRCBpbXBvcnRlci4uLgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9jdXBzL2N1cHNfMi4yLjQuYmIgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2N1cHMvY3Vwc18yLjIuNC5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWQ5NGI2Ny4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2N1cHMvY3Vwc18yLjIuNC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotcmVxdWlyZSBjdXBzLmluYwotCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLnR4dDttZDU9ZjIxMmI0MzM4ZGIwZGE4Y2I4OTJlOTRiZjI5NDk0NjAiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICJkMjZlNWEwYTU3NGE2OWZlMWQwMTA3OWIyOTMxZmM0OSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICI1OTZkNGRiNzI2NTFjMzM1NDY5YWU1ZjM3YjBkYTcyYWM5Zjk3ZDczZTMwODM4ZDc4NzA2NWY1NTlkZWE5OGNjIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9jdXBzL2N1cHNfMi4yLjYuYmIgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2N1cHMvY3Vwc18yLjIuNi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYWE5MzRiCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9jdXBzL2N1cHNfMi4yLjYuYmIKQEAgLTAsMCArMSw2IEBACityZXF1aXJlIGN1cHMuaW5jCisKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0UudHh0O21kNT1mMjEyYjQzMzhkYjBkYThjYjg5MmU5NGJmMjk0OTQ2MCIKKworU1JDX1VSSVttZDVzdW1dID0gImU5MWMyNmQ4ZDk3YjVhMTYzMGE5NjJmNTMwZjAyMTkyIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjQwMzg1Nzc4YzJiM2JkZjU1MDMwZDFjOTk5NzM0ZTIyNzc0Yzc5ZTM0MjVkOTEzMzljZTY3NzgyNTYyMDE2OWIiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2RpZmZ1dGlscy9kaWZmdXRpbHMuaW5jIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9kaWZmdXRpbHMvZGlmZnV0aWxzLmluYwppbmRleCA3YzViZTUwLi5jOWUzMTMwIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2RpZmZ1dGlscy9kaWZmdXRpbHMuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvZGlmZnV0aWxzL2RpZmZ1dGlscy5pbmMKQEAgLTEwLDMgKzEwLDQgQEAKIEFMVEVSTkFUSVZFXyR7UE59ID0gImRpZmYgY21wIgogQUxURVJOQVRJVkVfUFJJT1JJVFkgPSAiMTAwIgogCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2V0aHRvb2wvZXRodG9vbC9hdm9pZF9wYXJhbGxlbF90ZXN0cy5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvZXRodG9vbC9ldGh0b29sL2F2b2lkX3BhcmFsbGVsX3Rlc3RzLnBhdGNoCmluZGV4IGJmNjYyNjcuLmRlMzgxMDQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvZXRodG9vbC9ldGh0b29sL2F2b2lkX3BhcmFsbGVsX3Rlc3RzLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvZXRodG9vbC9ldGh0b29sL2F2b2lkX3BhcmFsbGVsX3Rlc3RzLnBhdGNoCkBAIC01LDExICs1LDEyIEBACiBVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUKIChkZWZhdWx0IGF1dG9tYWtlIGJlaGF2aW9yIGluY29tcGF0aWJsZSB3aXRoIHB0ZXN0KQogCi1kaWZmIC1ydU4gYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKLS0tLSBhL2NvbmZpZ3VyZS5hYwkyMDE0LTA1LTI4IDE4OjE5OjEzLjUxMzk4MDk3NyArMDIwMAotKysrIGIvY29uZmlndXJlLmFjCTIwMTQtMDUtMjggMTg6MTk6MjEuMTI5NjYwMjE1ICswMjAwCi1AQCAtMiw3ICsyLDcgQEAKLSBBQ19JTklUKGV0aHRvb2wsIDMuMTQsIG5ldGRldkB2Z2VyLmtlcm5lbC5vcmcpCitJbmRleDogZXRodG9vbC00LjEzL2NvbmZpZ3VyZS5hYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGV0aHRvb2wtNC4xMy5vcmlnL2NvbmZpZ3VyZS5hYworKysrIGV0aHRvb2wtNC4xMy9jb25maWd1cmUuYWMKK0BAIC0yLDcgKzIsNyBAQCBkbmwgUHJvY2VzcyB0aGlzIGZpbGUgd2l0aCBhdXRvY29uZiB0byBwCisgQUNfSU5JVChldGh0b29sLCA0LjEzLCBuZXRkZXZAdmdlci5rZXJuZWwub3JnKQogIEFDX1BSRVJFUSgyLjUyKQogIEFDX0NPTkZJR19TUkNESVIoW2V0aHRvb2wuY10pCiAtQU1fSU5JVF9BVVRPTUFLRShbZ251XSkKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvZXRodG9vbC9ldGh0b29sXzQuMTEuYmIgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2V0aHRvb2wvZXRodG9vbF80LjEzLmJiCnNpbWlsYXJpdHkgaW5kZXggODclCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvZXRodG9vbC9ldGh0b29sXzQuMTEuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvZXRodG9vbC9ldGh0b29sXzQuMTMuYmIKaW5kZXggYmVmZTliOS4uYzg2MmE1NyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9ldGh0b29sL2V0aHRvb2xfNC4xMS5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2V0aHRvb2wvZXRodG9vbF80LjEzLmJiCkBAIC0xMSw4ICsxMSw4IEBACiAgICAgICAgICAgIGZpbGU6Ly9hdm9pZF9wYXJhbGxlbF90ZXN0cy5wYXRjaCBcCiAgICAgICAgICAgICIKIAotU1JDX1VSSVttZDVzdW1dID0gIjhmMTA3MjY3OTg4OGM5MzM1ZTQ5YjE3ZWZiNzk4YjRjIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImFmMmZkOTY5MmYzMTU5ZDNhYjFlNDFlNmY5YjdkOGRiMmE0NjkzZjFjYjIyMzQ4Yzg4YmE4OWY3MGYwZTY1MDMiCitTUkNfVVJJW21kNXN1bV0gPSAiMmJhNDRlYjBjYTk2NzUyMzkyZTliZjhkYzgzYmEzMDIiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZDMxMWM0YjU1N2M0NGM1MjQ4YWM1NDM2YjllMTljMzkxYTYwZDhlNDgzMGI2YTdmNDFiZTE2ZDg5YzA1NTZkZSIKIAogaW5oZXJpdCBhdXRvdG9vbHMgcHRlc3QKIFJERVBFTkRTXyR7UE59LXB0ZXN0ICs9ICJtYWtlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9nYXdrL2dhd2stNC4xLjQvdGVzdC1hcnJheWluZDEtUmVtb3ZlLWhhc2hiYW5nLWxpbmUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2dhd2svZ2F3ay00LjEuNC90ZXN0LWFycmF5aW5kMS1SZW1vdmUtaGFzaGJhbmctbGluZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDQyNjJlZC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2dhd2svZ2F3ay00LjEuNC90ZXN0LWFycmF5aW5kMS1SZW1vdmUtaGFzaGJhbmctbGluZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLUZyb20gYTNhM2YyNjA3ODIyM2M0Nzg3MWM3YjUzZTVjMDE1YWQxNjNhZTA0NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEZhYmlvIEJlcnRvbiA8ZmFiaW8uYmVydG9uQG9zc3lzdGVtcy5jb20uYnI+Ci1EYXRlOiBUaHUsIDMgTm92IDIwMTYgMTQ6NTA6NTIgLTAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gdGVzdC9hcnJheWluZDE6IFJlbW92ZSBoYXNoYmFuZyBsaW5lCi1Pcmdhbml6YXRpb246IE8uUy4gU3lzdGVtcyBTb2Z0d2FyZSBMVERBLgotCi1SZW1vdmUgIiMhL3Vzci9sb2NhbC9iaW4vYXdrIC1mIiBhcyBub25lIG9mIHRoZSBvdGhlciBhd2sgc2NyaXB0cyBpbiB0aGUKLXRlc3Qgc3VpdGUgaGF2ZSBhIGhhc2hiYW5nLgotCi1VcHN0cmVhbS1TdGF0dXM6IFN1Ym1pdHRlZCBbMV0KLQotWzFdIGh0dHBzOi8vbGlzdHMuZ251Lm9yZy9hcmNoaXZlL2h0bWwvYnVnLWdhd2svMjAxNi0xMS9tc2cwMDAwMy5odG1sCi0KLVNpZ25lZC1vZmYtYnk6IEZhYmlvIEJlcnRvbiA8ZmFiaW8uYmVydG9uQG9zc3lzdGVtcy5jb20uYnI+Ci0tLS0KLSB0ZXN0L2FycmF5aW5kMS5hd2sgfCAxIC0KLSAxIGZpbGUgY2hhbmdlZCwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvdGVzdC9hcnJheWluZDEuYXdrIGIvdGVzdC9hcnJheWluZDEuYXdrCi1pbmRleCA1ZDRhNmYzLi41OWU4YjRlIDEwMDc1NQotLS0tIGEvdGVzdC9hcnJheWluZDEuYXdrCi0rKysgYi90ZXN0L2FycmF5aW5kMS5hd2sKLUBAIC0xLDQgKzEsMyBAQAotLSMhL3Vzci9sb2NhbC9iaW4vYXdrIC1mCi0gIyB0aGlzIHNjcmlwdCByZW51bXMgcGVkaWdyZWVzIHdpdGggbWV0YWZvdW5kZXJzCi0gIyBzbyB0aGF0IHRoZXkgYXJlIGFkZGVkICpiZWZvcmUqcmVndWxhciBhbmltYWxzCi0gIyBtZiBhcmUgYXNjZXJ0YWluZWQgYmVjYXVzZSB0aGV5IGFyZSBub3QgaW4gdGhlIDFzdCBjb2x1bW4KLS0tIAotMi4xLjQKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9nYXdrL2dhd2stNC4xLjQvcnVuLXB0ZXN0IGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9nYXdrL2dhd2svcnVuLXB0ZXN0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2dhd2svZ2F3ay00LjEuNC9ydW4tcHRlc3QKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvZ2F3ay9nYXdrL3J1bi1wdGVzdApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9nYXdrL2dhd2tfNC4xLjQuYmIgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2dhd2svZ2F3a180LjIuMC5iYgpzaW1pbGFyaXR5IGluZGV4IDg1JQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2dhd2svZ2F3a180LjEuNC5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9nYXdrL2dhd2tfNC4yLjAuYmIKaW5kZXggOTk1ZDM3ZC4uMjdmNzlhMiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9nYXdrL2dhd2tfNC4xLjQuYmIKKysrIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9nYXdrL2dhd2tfNC4yLjAuYmIKQEAgLTE3LDExICsxNywxMCBAQAogCiBTUkNfVVJJID0gIiR7R05VX01JUlJPUn0vZ2F3ay9nYXdrLSR7UFZ9LnRhci5neiBcCiAgICAgICAgICAgIGZpbGU6Ly9ydW4tcHRlc3QgXAotICAgICAgICAgICBmaWxlOi8vdGVzdC1hcnJheWluZDEtUmVtb3ZlLWhhc2hiYW5nLWxpbmUucGF0Y2ggXAogIgogCi1TUkNfVVJJW21kNXN1bV0gPSAiZjIwYzk0Y2E1MWI2ZWJmYzliZmZiOTBmOTVjOGZmYmIiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiOGMwMzA4MGUyYjVhNTYyNjNlODc4M2Y2ZjFmMzA2Mzk4ZDQ1OTFiZTE4MjU0MDQxZjNmNTQ3ZWZlZjk0NGQzNSIKK1NSQ19VUklbbWQ1c3VtXSA9ICIwYjU5OGMzMWJjNzAzZDY2MDgyYmQ5NThkNDE4OTk4MCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJjODgwNDZjNmU4Mzk2ZWU1NDhiY2I5NDFlMTZkZWY4MDliN2I1NWI2MGExMDQ0YjVkZDI1NDA5NGYzNDdjN2Q5IgogCiBpbmhlcml0IGF1dG90b29scyBnZXR0ZXh0IHRleGluZm8gdXBkYXRlLWFsdGVybmF0aXZlcwogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2dob3N0c2NyaXB0L2dob3N0c2NyaXB0L0NWRS0yMDE2LTc5NzcucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2dob3N0c2NyaXB0L2dob3N0c2NyaXB0L0NWRS0yMDE2LTc5NzcucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI3ZWVkMTIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9naG9zdHNjcmlwdC9naG9zdHNjcmlwdC9DVkUtMjAxNi03OTc3LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotRnJvbSA4YWJkMjIwMTBlYjRkYjBmYjFiMTBlNDMwZDVmNWQ4M2UwMTVlZjcwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQ2hyaXMgTGlkZGVsbCA8Y2hyaXMubGlkZGVsbEBhcnRpZmV4LmNvbT4KLURhdGU6IE1vbiwgMyBPY3QgMjAxNiAwMTo0NjoyOCArMDEwMAotU3ViamVjdDogW1BBVENIXSBCdWcgNjk3MTY5OiBCZSByaWdvcm91cyB3aXRoIFNBRkVSIHBlcm1pc3Npb25zCi0KLU9uY2Ugd2UndmUgb3BlbmVkIG91ciBpbnB1dCBmaWxlIGZyb20gdGhlIGNvbW1hbmQgbGluZSwgZW5mb3JjZSB0aGUgU0FGRVIKLXJ1bGVzLgotCi1VcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0Ci1DVkU6IENWRS0yMDE2LTc5NzcKLQotU2lnbmVkLW9mZi1ieTogQ2F0YWxpbiBFbmFjaGUgPGNhdGFsaW4uZW5hY2hlQHdpbmRyaXZlci5jb20+Ci0tLS0KLSBwc2kvemZpbGUuYyB8IDMgKysrCi0gMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvcHNpL3pmaWxlLmMgYi9wc2kvemZpbGUuYwotaW5kZXggYjZjYWVhMi4uMmM2Yzk1OCAxMDA2NDQKLS0tLSBhL3BzaS96ZmlsZS5jCi0rKysgYi9wc2kvemZpbGUuYwotQEAgLTEwODEsNiArMTA4MSw5IEBAIGxpYl9maWxlX29wZW4oZ3NfZmlsZV9wYXRoX3B0ciAgbGliX3BhdGgsIGNvbnN0IGdzX21lbW9yeV90ICptZW0sIGlfY3R4X3QgKmlfY3R4Ci0gICAgIGdzX21haW5faW5zdGFuY2UgKm1pbnN0ID0gZ2V0X21pbnN0X2Zyb21fbWVtb3J5KG1lbSk7Ci0gICAgIGludCBjb2RlOwotIAotKyAgICBpZiAoaV9jdHhfcCAmJiBzdGFydGluZ19hcmdfZmlsZSkKLSsgICAgICAgIGlfY3R4X3AtPnN0YXJ0aW5nX2FyZ19maWxlID0gZmFsc2U7Ci0rCi0gICAgIC8qIHdoZW4gc3RhcnRpbmcgYXJnIGZpbGVzIChAIGZpbGVzKSBpb2Rldl9kZWZhdWx0IGlzIG5vdCB5ZXQgc2V0ICovCi0gICAgIGlmIChpb2RldiA9PSAwKQotICAgICAgICAgaW9kZXYgPSAoZ3hfaW9fZGV2aWNlICopZ3hfaW9fZGV2aWNlX3RhYmxlWzBdOwotLS0gCi0yLjEwLjIKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9naG9zdHNjcmlwdC9naG9zdHNjcmlwdC9naG9zdHNjcmlwdC05LjAyLWdlbmFyY2gucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2dob3N0c2NyaXB0L2dob3N0c2NyaXB0L2dob3N0c2NyaXB0LTkuMDItZ2VuYXJjaC5wYXRjaAppbmRleCBlMjhhOTQ5Li5iNGMxNGVhIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2dob3N0c2NyaXB0L2dob3N0c2NyaXB0L2dob3N0c2NyaXB0LTkuMDItZ2VuYXJjaC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2dob3N0c2NyaXB0L2dob3N0c2NyaXB0L2dob3N0c2NyaXB0LTkuMDItZ2VuYXJjaC5wYXRjaApAQCAtMTIsMTEgKzEyLDEyIEBACiAjIFN1bW1hcnk6IEdlbmVyYXRlIGFyY2guaCBmb3IgcHBjMzIKICMKIAotZGlmZiAtTnJ1IGdob3N0c2NyaXB0LTguNjQub3JpZy9iYXNlL2xpYi5tYWsgZ2hvc3RzY3JpcHQtOC42NC9iYXNlL2xpYi5tYWsKLS0tLSBnaG9zdHNjcmlwdC04LjY0Lm9yaWcvYmFzZS9saWIubWFrCTIwMTAtMDItMTAgMTA6MzA6MDIuMDAwMDAwMDAwICswODAwCi0rKysgZ2hvc3RzY3JpcHQtOC42NC9iYXNlL2xpYi5tYWsJMjAxMC0wMi0xMCAxMDo1NjoyMS4wMDAwMDAwMDAgKzA4MDAKLUBAIC02Nyw4ICs2Nyw4IEBACi0gc3RkcHJlX2g9JChHTFNSQylzdGRwcmUuaCAkKHN0ZHBuX2gpCitJbmRleDogZ2hvc3RzY3JpcHQtOS4yMS9iYXNlL2xpYi5tYWsKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnaG9zdHNjcmlwdC05LjIxLm9yaWcvYmFzZS9saWIubWFrCisrKysgZ2hvc3RzY3JpcHQtOS4yMS9iYXNlL2xpYi5tYWsKK0BAIC03Myw4ICs3Myw4IEBAIGFyY2hfaD0kKEdMR0VOKWFyY2guaAorIHN0ZHByZV9oPSQoR0xTUkMpc3RkcHJlLmgKICBzdGRpbnRfX2g9JChHTFNSQylzdGRpbnRfLmggJChzdGRfaCkKICAKIC0kKEdMR0VOKWFyY2guaCA6ICQoR0VOQVJDSF9YRSkKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvZ2hvc3RzY3JpcHQvZ2hvc3RzY3JpcHRfOS4yMS5iYiBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvZ2hvc3RzY3JpcHQvZ2hvc3RzY3JpcHRfOS4yMS5iYgppbmRleCBiZjk4NWM0Li41MGVjN2UyIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2dob3N0c2NyaXB0L2dob3N0c2NyaXB0XzkuMjEuYmIKKysrIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9naG9zdHNjcmlwdC9naG9zdHNjcmlwdF85LjIxLmJiCkBAIC0zMiw3ICszMiw2IEBACiAgICAgICAgICAgIGZpbGU6Ly9naG9zdHNjcmlwdC05LjAyLWdlbmFyY2gucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vb2JqYXJjaC5oIFwKICAgICAgICAgICAgZmlsZTovL2N1cHMtbm8tZ2NyeXB0LnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL0NWRS0yMDE2LTc5NzcucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vQ1ZFLTIwMTctNzIwNy5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly9DVkUtMjAxNy01OTUxLnBhdGNoIFwKICAgICAgICAgICAgZmlsZTovL0NWRS0yMDE3LTc5NzUucGF0Y2ggXApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9nby1leGFtcGxlcy9nby1oZWxsb3dvcmxkXzAuMS5iYiBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvZ28tZXhhbXBsZXMvZ28taGVsbG93b3JsZF8wLjEuYmIKaW5kZXggMjIyZmM5ZC4uYWI3MGVhOSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9nby1leGFtcGxlcy9nby1oZWxsb3dvcmxkXzAuMS5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2dvLWV4YW1wbGVzL2dvLWhlbGxvd29ybGRfMC4xLmJiCkBAIC03LDYgKzcsNyBAQAogCiBTUkNfVVJJID0gImdpdDovLyR7R09fSU1QT1JUfSIKIFNSQ1JFViA9ICI0NjY5NWQ4MWQxZmFlOTA1YTI3MGZiN2RiOGE0ZDExYTMzNDU2MmZlIgorVVBTVFJFQU1fQ0hFQ0tfQ09NTUlUUyA9ICIxIgogCiBHT19JTVBPUlQgPSAiZ2l0aHViLmNvbS9nb2xhbmcvZXhhbXBsZSIKIEdPX0lOU1RBTEwgPSAiJHtHT19JTVBPUlR9L2hlbGxvIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9ncGVyZi9ncGVyZi5pbmMgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2dwZXJmL2dwZXJmLmluYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYThjZTIzMC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2dwZXJmL2dwZXJmLmluYworKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLURFU0NSSVBUSU9OID0gIkdOVSBncGVyZiBpcyBhIHBlcmZlY3QgaGFzaCBmdW5jdGlvbiBnZW5lcmF0b3IiCi1IT01FUEFHRSA9ICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3BlcmYiCi1TVU1NQVJZICA9ICJHZW5lcmF0ZSBhIHBlcmZlY3QgaGFzaCBmdW5jdGlvbiBmcm9tIGEgc2V0IG9mIGtleXdvcmRzIgotTElDRU5TRSAgPSAiR1BMdjMrIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9ZDMyMjM5YmNiNjczNDYzYWI4NzRlODBkNDdmYWU1MDQgXAotICAgICAgICAgICAgICAgICAgICBmaWxlOi8vc3JjL21haW4uY2M7YmVnaW5saW5lPTg7ZW5kbGluZT0xOTttZDU9ZGVjOGY2MTE4NDVkMDQ3Mzg3ZWQ1NmI1Yjg1ZmE5OWIiCi0KLVNSQ19VUkkgID0gIiR7R05VX01JUlJPUn0vZ3BlcmYvZ3BlcmYtJHtQVn0udGFyLmd6IgotCi1pbmhlcml0IGF1dG90b29scwotCi0jIGF1dG9yZWNvbmYgY291bGRuJ3QgZmluZCBhY2luY2x1ZGUubTQgd2hlbiBzdGVwcGluZyBpbnRvIHN1YmRpcmVjdG9yeS4gSW5zdGVhZCBvZgotIyBkdXBsaWNhdGluZyBhY2luY2x1ZGUubTQgaW4gZXZlcnkgc3ViZGlyZWN0b3J5LCB1c2UgYWJzb2x1dGUgaW5jbHVkZSBwYXRoIHRvIGFjbG9jYWwKLUVYVFJBX0FVVE9SRUNPTkYgKz0gIiAtSSAke1N9IgotCi1kb19jb25maWd1cmVfcHJlcGVuZCgpIHsKLSAgICAgICAgaWYgWyAhIC1lICR7U30vYWNpbmNsdWRlLm00IF07IHRoZW4KLSAgICAgICAgICAgICAgICBjYXQgJHtTfS9hY2xvY2FsLm00ID4gJHtTfS9hY2luY2x1ZGUubTQKLSAgICAgICAgZmkKLX0KLQotQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2dwZXJmL2dwZXJmXzMuMS5iYiBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvZ3BlcmYvZ3BlcmZfMy4xLmJiCmluZGV4IDk0MjgyMGIuLmY2MWIyYTMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvZ3BlcmYvZ3BlcmZfMy4xLmJiCisrKyBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvZ3BlcmYvZ3BlcmZfMy4xLmJiCkBAIC0xLDUgKzEsMTggQEAKLXJlcXVpcmUgZ3BlcmYuaW5jCitERVNDUklQVElPTiA9ICJHTlUgZ3BlcmYgaXMgYSBwZXJmZWN0IGhhc2ggZnVuY3Rpb24gZ2VuZXJhdG9yIgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2dwZXJmIgorU1VNTUFSWSAgPSAiR2VuZXJhdGUgYSBwZXJmZWN0IGhhc2ggZnVuY3Rpb24gZnJvbSBhIHNldCBvZiBrZXl3b3JkcyIKK0xJQ0VOU0UgID0gIkdQTHYzKyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWQzMjIzOWJjYjY3MzQ2M2FiODc0ZTgwZDQ3ZmFlNTA0IFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL3NyYy9tYWluLmNjO2JlZ2lubGluZT04O2VuZGxpbmU9MTk7bWQ1PWRlYzhmNjExODQ1ZDA0NzM4N2VkNTZiNWI4NWZhOTliIgogCi0KK1NSQ19VUkkgID0gIiR7R05VX01JUlJPUn0vJHtCUE59LyR7QlB9LnRhci5neiIKIFNSQ19VUklbbWQ1c3VtXSA9ICI5ZTI1MWMwYTYxOGFkMDgyNGI1MTExN2Q1ZDlkYjg3ZSIKIFNSQ19VUklbc2hhMjU2c3VtXSA9ICI1ODg1NDZiOTQ1YmJhNGI3MGI2YTNhNjE2ZTgwYjRhYjQ2NmUzZjMzMDI0YTM1MmZjMjE5ODExMmNkYmIzYWUyIgorCitpbmhlcml0IGF1dG90b29scworCisjIFRoZSBuZXN0ZWQgY29uZmlndXJlcyBkb24ndCBmaW5kIHRoZSBwYXJlbnQgYWNsb2NhbC5tNCBvdXQgb2YgdGhlIGJveCwgc28gdGVsbAorIyBpdCB3aGVyZSB0byBsb29rIGV4cGxpY2l0bHkgKG1pcnJvcmluZyB0aGUgYmVoYXZpb3VyIG9mIHVwc3RyZWFtJ3MgTWFrZWZpbGUuZGV2ZWwpLgorRVhUUkFfQVVUT1JFQ09ORiArPSAiIC1JICR7U30gLS1leGNsdWRlPWFjbG9jYWwiCisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9ncmVwL2dyZXBfMy4xLmJiIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9ncmVwL2dyZXBfMy4xLmJiCmluZGV4IDA1YjZiOTMuLjcxODEwZGMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvZ3JlcC9ncmVwXzMuMS5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2dyZXAvZ3JlcF8zLjEuYmIKQEAgLTE0LDggKzE0LDYgQEAKIAogaW5oZXJpdCBhdXRvdG9vbHMgZ2V0dGV4dCB0ZXhpbmZvIHBrZ2NvbmZpZwogCi1FWFRSQV9PRUNPTkYgPSAiLS1kaXNhYmxlLXBlcmwtcmVnZXhwIgotCiAjIEZpeCAiQXJndW1lbnQgbGlzdCB0b28gbG9uZyIgZXJyb3Igd2hlbiBsZW4oVE1QRElSKSA9IDQxMAogYWNwYXRocyA9ICItSSAuL200IgogCkBAIC0zNiw2ICszNCw5IEBACiAKIGluaGVyaXQgdXBkYXRlLWFsdGVybmF0aXZlcwogCitQQUNLQUdFQ09ORklHID8/PSAicGNyZSIKK1BBQ0tBR0VDT05GSUdbcGNyZV0gPSAiLS1lbmFibGUtcGVybC1yZWdleHAsLS1kaXNhYmxlLXBlcmwtcmVnZXhwLGxpYnBjcmUiCisKIEFMVEVSTkFUSVZFX1BSSU9SSVRZID0gIjEwMCIKIAogQUxURVJOQVRJVkVfJHtQTn0gPSAiZ3JlcCBlZ3JlcCBmZ3JlcCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvZ3ppcC9maWxlcy8wMDAxLWd6aXAtcG9ydC16ZGlmZi16bGVzcy10by1CdXN5Ym94LnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9nemlwL2ZpbGVzLzAwMDEtZ3ppcC1wb3J0LXpkaWZmLXpsZXNzLXRvLUJ1c3lib3gucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIwZDVhMTkuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9nemlwL2ZpbGVzLzAwMDEtZ3ppcC1wb3J0LXpkaWZmLXpsZXNzLXRvLUJ1c3lib3gucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi1Gcm9tIDVmNzEyNjIxODI5ZWQ4MWE3NTgwNzc0MzEyMjZhODZkZjM3ZmJjM2IgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBEZW55cyBaYWdvcnVpIDxkZW55cy56YWdvcnVpQGdsb2JhbGxvZ2ljLmNvbT4KLURhdGU6IFRodSwgOCBKdW4gMjAxNyAxNjowNTo1MCArMDMwMAotU3ViamVjdDogW1BBVENIXSBnemlwOiBwb3J0IHpkaWZmLCB6bGVzcyB0byBCdXN5Ym94Ci0KLVByb2JsZW0gcmVwb3J0ZWQgYnkgRGVueXMgWmFnb3J1aSAoQnVnIzI2MDg4KS4KLSogdGVzdHMvemRpZmY6IENoZWNrIHRoYXQgZGlmZiB1c2VzIFBPU0lYLWZvcm1hdCBvdXRwdXQuCi0qIHpsZXNzLmluIChsZXNzX3ZlcnNpb24pOiBEb24ndCBleGl0IG1lcmVseSBiZWNhdXNlICdsZXNzIC1WJwotZmFpbHM7IGluc3RlYWQsIGFzc3VtZSAnbGVzcycgaXMgY29tcGF0aWJsZSB3aXRoIGFuIG9sZCB2ZXJzaW9uIG9mCi10aGUgb3JpZ2luYWwgJ2xlc3MnLiAgQnVzeWJveCAnbGVzcyAtVicgZmFpbHMsIGJ1dCBhcHBhcmVudGx5IGl0cwotJ2xlc3MnIHdvcmtzIGFueXdheSBzb21laG93LgotCi1TaWduZWQtb2ZmLWJ5OiBEZW55cyBaYWdvcnVpIDxkZW55cy56YWdvcnVpQGdsb2JhbGxvZ2ljLmNvbT4KLQotVXBzdHJlYW0tU3RhdHVzOiBBY2NlcHRlZAotLS0tCi0gdGVzdHMvemRpZmYgfCA0ICsrKy0KLSB6bGVzcy5pbiAgICB8IDIgKy0KLSAyIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3Rlc3RzL3pkaWZmIGIvdGVzdHMvemRpZmYKLWluZGV4IDBiYjdjN2QuLjljZDRmZDQgMTAwNzU1Ci0tLS0gYS90ZXN0cy96ZGlmZgotKysrIGIvdGVzdHMvemRpZmYKLUBAIC0yMiw3ICsyMiw2IEBACi0gCi0gZWNobyBhID4gYSB8fCBmcmFtZXdvcmtfZmFpbHVyZV8KLSBlY2hvIGIgPiBiIHx8IGZyYW1ld29ya19mYWlsdXJlXwotLWd6aXAgYSBiIHx8IGZyYW1ld29ya19mYWlsdXJlXwotIAotIGNhdCA8PEVPRiA+IGV4cAotIDFjMQotQEAgLTMxLDcgKzMwLDEwIEBAIGNhdCA8PEVPRiA+IGV4cAotID4gYgotIEVPRgotIAotK2RpZmYgYSBiIHwgZGlmZiBleHAgLSB8fCBza2lwXyAiZGlmZiBvdXRwdXQgZm9ybWF0IGlzIGluY29tcGF0aWJsZSB3aXRoIFBPU0lYIgotKwotIGZhaWw9MAotK2d6aXAgYSBiIHx8IGZhaWw9MQotIHpkaWZmIGEuZ3ogYi5neiA+IG91dCAyPiYxCi0gdGVzdCAkPyA9IDEgfHwgZmFpbD0xCi0gCi1kaWZmIC0tZ2l0IGEvemxlc3MuaW4gYi96bGVzcy5pbgotaW5kZXggZTYzNGFmNi4uOTc1OWFlNiAxMDA2NDQKLS0tLSBhL3psZXNzLmluCi0rKysgYi96bGVzcy5pbgotQEAgLTQ3LDcgKzQ3LDcgQEAgaWYgdGVzdCAiJHtMRVNTTUVUQUNIQVJTK3NldH0iICE9IHNldDsgdGhlbgotICAgZXhwb3J0IExFU1NNRVRBQ0hBUlMKLSBmaQotIAotLWxlc3NfdmVyc2lvbj1gbGVzcyAtVmAgfHwgZXhpdAotK2xlc3NfdmVyc2lvbj1gbGVzcyAtViAyPi9kZXYvbnVsbGAKLSBjYXNlICRsZXNzX3ZlcnNpb24gaW4KLSBsZXNzJyAnNDVbMS05XSogfCBcCi0gbGVzcycgJzRbNi05XVswLTldKiB8IFwKLS0tIAotMS45LjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9nemlwL2d6aXAtMS44L3dyb25nLXBhdGgtZml4LnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9nemlwL2d6aXAtMS45L3dyb25nLXBhdGgtZml4LnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggNzAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvZ3ppcC9nemlwLTEuOC93cm9uZy1wYXRoLWZpeC5wYXRjaApyZW5hbWUgdG8gaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9nemlwL2d6aXAtMS45L3dyb25nLXBhdGgtZml4LnBhdGNoCmluZGV4IDRkYzEwMDAuLjdjMzdiYzggMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvZ3ppcC9nemlwLTEuOC93cm9uZy1wYXRoLWZpeC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2d6aXAvZ3ppcC0xLjkvd3JvbmctcGF0aC1maXgucGF0Y2gKQEAgLTEzLDE3ICsxMywyNCBAQAogCiBVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKIAotSW5kZXg6IGd6aXAtMS44L01ha2VmaWxlLmFtCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ3ppcC0xLjgub3JpZy9NYWtlZmlsZS5hbQotKysrIGd6aXAtMS44L01ha2VmaWxlLmFtCi1AQCAtODEsOCArODEsNyBAQCBnemlwLmRvYy5nejogZ3ppcC5kb2MgJChiaW5fUFJPR1JBTVMpCi0gU1VGRklYRVMgPSAuaW4KKy0tLQorIE1ha2VmaWxlLmFtIHwgMyArLS0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9NYWtlZmlsZS5hbSBiL01ha2VmaWxlLmFtCitpbmRleCBkNGVjYzNmLi5lNDY1N2QyIDEwMDY0NAorLS0tIGEvTWFrZWZpbGUuYW0KKysrKyBiL01ha2VmaWxlLmFtCitAQCAtODIsOCArODIsNyBAQCBTVUZGSVhFUyA9IC5pbgogIC5pbjoKLSAJJChBTV9WX0dFTilzZWQgXAorIAkkKEFNX1ZfR0VOKXJtIC1mICRALXQgJEAgXAorICAgICAgICAgICAmJiBzZWQgXAogLQkJLWUgJ3N8L2Jpbi9zaHwkKFNIRUxMKXxnJyBcCiAtCQktZSAnc3xbQF1HUkVQQHwkKEdSRVApfGcnIFwKICsJCS1lICdzfFtAXUdSRVBAfCQoYmFzZV9iaW5kaXIpL2dyZXB8ZycgXAogIAkJLWUgJ3N8W0BdVkVSU0lPTkB8JChWRVJTSU9OKXxnJyBcCiAgCQkkKHNyY2RpcikvJEAuaW4gPiRALXQgXAotIAkgICYmIGNobW9kIGEreCAkQC10IFwKKyAJICAmJiBjaG1vZCBhPXJ4ICRALXQgXAorLS0gCisyLjcuNAorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2d6aXAvZ3ppcF8xLjguYmIgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2d6aXAvZ3ppcF8xLjkuYmIKc2ltaWxhcml0eSBpbmRleCA4NiUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9nemlwL2d6aXBfMS44LmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2d6aXAvZ3ppcF8xLjkuYmIKaW5kZXggZDA5MzIwNy4uYThlZWJhMSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9nemlwL2d6aXBfMS44LmJiCisrKyBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvZ3ppcC9nemlwXzEuOS5iYgpAQCAtMyw3ICszLDYgQEAKIExJQ0VOU0UgPSAiR1BMdjMrIgogCiBTUkNfVVJJID0gIiR7R05VX01JUlJPUn0vZ3ppcC8ke0JQfS50YXIuZ3ogXAotICAgICAgICAgICAgZmlsZTovLzAwMDEtZ3ppcC1wb3J0LXpkaWZmLXpsZXNzLXRvLUJ1c3lib3gucGF0Y2ggXAogICAgICAgICAgICAgZmlsZTovL3J1bi1wdGVzdCIKIFNSQ19VUklfYXBwZW5kX2NsYXNzLXRhcmdldCA9ICIgZmlsZTovL3dyb25nLXBhdGgtZml4LnBhdGNoIgogCkBAIC0zNCw2ICszMyw2IEBACiAgICAgICAgICAgICAke0J9L3Rlc3RzL01ha2VmaWxlID4gJHtEfSR7UFRFU1RfUEFUSH0vc3JjL3Rlc3RzL01ha2VmaWxlCiB9CiAKLVNSQ19VUklbbWQ1c3VtXSA9ICI3MzI1NTMxNTI4MTRiMjJkYzM1YWEwMjY3ZGY1Mjg2YyIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIxZmY3YWVkYjNkNjZhMGQ3M2Y0NDJmNjI2MWU0YjM4NjBkZjZmZDZjOTQwMjVjMmNiMzFhMjAyYzljNjBmZTBlIgorU1JDX1VSSVttZDVzdW1dID0gIjkyOWQ2YTZiODMyZjc1YjI4ZTNlZWVhZmIzMGMxZDliIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjVkMmQzYTM0MzJlZjMyZjI0Y2RiMDYwZDI3ODgzNDUwN2I0ODFhNzVhZGVjYTE4ODUwYzczNTkyZjc3OGY2YWQiCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvaGRwYXJtL2hkcGFybS93aXBlci5zaC1maXgtc3RhdC1wYXRoLnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9oZHBhcm0vaGRwYXJtL3dpcGVyLnNoLWZpeC1zdGF0LXBhdGgucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGFmMWI2MQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvaGRwYXJtL2hkcGFybS93aXBlci5zaC1maXgtc3RhdC1wYXRoLnBhdGNoCkBAIC0wLDAgKzEsMzggQEAKK0Zyb20gZTIzMzAwNmVlMjEyMTA5ZDJhMTQwMWRhYzM3YTlhODUxY2M0OTNkOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFlpIFpoYW8gPHlpLnpoYW9Ad2luZHJpdmVyLmNvbT4KK0RhdGU6IFRodSwgMTQgRGVjIDIwMTcgMTU6MjM6NDcgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gd2lwZXIuc2g6IGZpeCBzdGF0IHBhdGgKKworRml4IHRoZSBzdGF0IHBhdGggZm9yIE9FLgorCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW09FIHNwZWNpZmljXQorCitTaWduZWQtb2ZmLWJ5OiBZaSBaaGFvIDx5aS56aGFvQHdpbmRyaXZlci5jb20+CistLS0KKyB3aXBlci93aXBlci5zaCB8IDMgKy0tCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvd2lwZXIvd2lwZXIuc2ggYi93aXBlci93aXBlci5zaAoraW5kZXggNzllZGRjOC4uOWVmMjg0MCAxMDA3NTUKKy0tLSBhL3dpcGVyL3dpcGVyLnNoCisrKysgYi93aXBlci93aXBlci5zaAorQEAgLTk3LDcgKzk3LDYgQEAgZnVuY3Rpb24gZmluZF9wcm9nKCl7CisgaGFzaCAtciAgIyMgUmVmcmVzaCBiYXNoJ3MgY2FjaGVkIFBBVEggZW50cmllcworIEhEUEFSTT1gZmluZF9wcm9nIC9zYmluL2hkcGFybWAJfHwgZXhpdCAxCisgRklORD1gZmluZF9wcm9nIC91c3IvYmluL2ZpbmRgCXx8IGV4aXQgMQorLVNUQVQ9YGZpbmRfcHJvZyAvdXNyL2Jpbi9zdGF0YAl8fCBleGl0IDEKKyBHQVdLPWBmaW5kX3Byb2cgL3Vzci9iaW4vZ2F3a2AJfHwgZXhpdCAxCisgQkxLSUQ9YGZpbmRfcHJvZyAvc2Jpbi9ibGtpZGAJfHwgZXhpdCAxCisgR1JFUD1gZmluZF9wcm9nIC9iaW4vZ3JlcGAJfHwgZXhpdCAxCitAQCAtMTA1LDcgKzEwNCw3IEBAIElEPWBmaW5kX3Byb2cgL3Vzci9iaW4vaWRgCXx8IGV4aXQgMQorIExTPWBmaW5kX3Byb2cgL2Jpbi9sc2AJCXx8IGV4aXQgMQorIERGPWBmaW5kX3Byb2cgL2Jpbi9kZmAJCXx8IGV4aXQgMQorIFJNPWBmaW5kX3Byb2cgL2Jpbi9ybWAJCXx8IGV4aXQgMQorLVNUQVQ9YGZpbmRfcHJvZyAvdXNyL2Jpbi9zdGF0YAl8fCBleGl0IDEKKytTVEFUPWBmaW5kX3Byb2cgL2Jpbi9zdGF0YAl8fCBleGl0IDEKKyAKKyBbICR2ZXJib3NlIC1ndCAxIF0gJiYgSERQQVJNPSIkSERQQVJNIC0tdmVyYm9zZSIKKyAKKy0tIAorMi43LjQKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9oZHBhcm0vaGRwYXJtXzkuNTIuYmIgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2hkcGFybS9oZHBhcm1fOS41My5iYgpzaW1pbGFyaXR5IGluZGV4IDc5JQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2hkcGFybS9oZHBhcm1fOS41Mi5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9oZHBhcm0vaGRwYXJtXzkuNTMuYmIKaW5kZXggNDlmZGM5NC4uNGMzZWM1YzQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvaGRwYXJtL2hkcGFybV85LjUyLmJiCisrKyBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvaGRwYXJtL2hkcGFybV85LjUzLmJiCkBAIC0xOSwxMiArMTksMTQgQEAKIAogRklMRVNfd2lwZXIgPSAiJHtiaW5kaXJ9L3dpcGVyLnNoIgogCi1SREVQRU5EU193aXBlciA9ICJiYXNoIGdhd2sgc3RhdCIKK1JERVBFTkRTX3dpcGVyID0gImJhc2ggZ2F3ayBjb3JldXRpbHMiCiAKLVNSQ19VUkkgPSAiJHtTT1VSQ0VGT1JHRV9NSVJST1J9L2hkcGFybS8ke0JQfS50YXIuZ3oiCitTUkNfVVJJID0gIiR7U09VUkNFRk9SR0VfTUlSUk9SfS9oZHBhcm0vJHtCUH0udGFyLmd6IFwKKyAgICAgICAgICAgZmlsZTovL3dpcGVyLnNoLWZpeC1zdGF0LXBhdGgucGF0Y2ggXAorICAgICAgICAgICIKIAotU1JDX1VSSVttZDVzdW1dID0gIjQxMDUzOWQwYmYzY2MyNDcxODE1OTQ1ODFlZGJmYjUzIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImMzNDI5Y2Q0MjNlMjcxZmE1NjViZjU4NDU5OGZkNzUxZGQyZTc3M2JiNzE5OWE1OTJiMDZiNWE2MWNlYzRmYjYiCitTUkNfVVJJW21kNXN1bV0gPSAiMWU1NGI1MmUwYzhjYjc5Mzg5ZDRkNDdlYWNiYTQxMWQiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMjY3M2Y1OTFkZjY5MTZjNmExZmFlYzA3MDY5YTdlYjFjYjhlZTMwNzYxNWE2MTVkODA4MTkyZmIwYzAyNjVlNSIKIAogRVhUUkFfT0VNQUtFID0gJ1NUUklQPSJlY2hvIiBMREZMQUdTPSIke0xERkxBR1N9IicKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9pcHRhYmxlcy9pcHRhYmxlcy8wMDAxLWZpeC1idWlsZC13aXRoLW11c2wucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2lwdGFibGVzL2lwdGFibGVzLzAwMDEtZml4LWJ1aWxkLXdpdGgtbXVzbC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjFmODVhNi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2lwdGFibGVzL2lwdGFibGVzLzAwMDEtZml4LWJ1aWxkLXdpdGgtbXVzbC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQ2ICswLDAgQEAKLVtQQVRDSF0gZml4IGJ1aWxkIHdpdGggbXVzbAotCi1EZWZpbmUgYWRkaXRpb25hbCBUQ09QVFMgaWYgbm90IHRoZXJlCi11X2luaXRYIHR5cGVzIGFyZSBpbiBzeXMvdHlwZXMuaCBiZSBleHBsaWNpdCBhYm91dCBpdAotCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLVNpZ25lZC1vZmYtYnk6IE1heGluIEIuIEpvaG4gPG1heGluLmpvaG5AaW50ZWwuY29tPgotLS0tCi1kaWZmIC1OYXVyIGlwdGFibGVzLTEuNi4wLW9yaWdpbi9leHRlbnNpb25zL2xpYnh0X1RDUE9QVFNUUklQLmMgaXB0YWJsZXMtMS42LjAvZXh0ZW5zaW9ucy9saWJ4dF9UQ1BPUFRTVFJJUC5jCi0tLS0gaXB0YWJsZXMtMS42LjAtb3JpZ2luL2V4dGVuc2lvbnMvbGlieHRfVENQT1BUU1RSSVAuYwkyMDE1LTEyLTA5IDE0OjU1OjA2LjAwMDAwMDAwMCArMDIwMAotKysrIGlwdGFibGVzLTEuNi4wL2V4dGVuc2lvbnMvbGlieHRfVENQT1BUU1RSSVAuYwkyMDE1LTEyLTI5IDE0OjQ0OjMyLjU4NTMyNzA3NyArMDIwMAotQEAgLTEyLDYgKzEyLDIxIEBACi0gI2lmbmRlZiBUQ1BPUFRfTUQ1U0lHCi0gIwlkZWZpbmUgVENQT1BUX01ENVNJRyAxOQotICNlbmRpZgotKyNpZm5kZWYgVENQT1BUX01BWFNFRwotKyNkZWZpbmUgVENQT1BUX01BWFNFRyAyCi0rI2VuZGlmCi0rI2lmbmRlZiBUQ1BPUFRfV0lORE9XCi0rI2RlZmluZSBUQ1BPUFRfV0lORE9XIDMKLSsjZW5kaWYKLSsjaWZuZGVmIFRDUE9QVF9TQUNLX1BFUk1JVFRFRAotKyNkZWZpbmUgVENQT1BUX1NBQ0tfUEVSTUlUVEVEIDQKLSsjZW5kaWYKLSsjaWZuZGVmIFRDUE9QVF9TQUNLCi0rI2RlZmluZSBUQ1BPUFRfU0FDSyA1Ci0rI2VuZGlmCi0rI2lmbmRlZiBUQ1BPUFRfVElNRVNUQU1QCi0rI2RlZmluZSBUQ1BPUFRfVElNRVNUQU1QIDgKLSsjZW5kaWYKLSAKLSBlbnVtIHsKLSAJT19TVFJJUF9PUFRJT04gPSAwLAotZGlmZiAtTmF1ciBpcHRhYmxlcy0xLjYuMC1vcmlnaW4vaW5jbHVkZS9saW51eC9uZXRmaWx0ZXJfaXB2NC9pcF90YWJsZXMuaCBpcHRhYmxlcy0xLjYuMC9pbmNsdWRlL2xpbnV4L25ldGZpbHRlcl9pcHY0L2lwX3RhYmxlcy5oCi0tLS0gaXB0YWJsZXMtMS42LjAtb3JpZ2luL2luY2x1ZGUvbGludXgvbmV0ZmlsdGVyX2lwdjQvaXBfdGFibGVzLmgJMjAxNS0xMi0wOSAxNDo1NTowNi4wMDAwMDAwMDAgKzAyMDAKLSsrKyBpcHRhYmxlcy0xLjYuMC9pbmNsdWRlL2xpbnV4L25ldGZpbHRlcl9pcHY0L2lwX3RhYmxlcy5oCTIwMTUtMTItMjkgMTQ6NDA6MjEuMjUwNDY5MTk1ICswMjAwCi1AQCAtMTUsNiArMTUsNyBAQAotICNpZm5kZWYgX0lQVEFCTEVTX0gKLSAjZGVmaW5lIF9JUFRBQkxFU19ICi0gCi0rI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgotIAotICNpbmNsdWRlIDxsaW51eC9uZXRmaWx0ZXJfaXB2NC5oPgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9pcHRhYmxlcy9pcHRhYmxlcy90eXBlcy5oLWFkZC1kZWZpbmVzLXRoYXQtYXJlLXJlcXVpcmVkLWZvci1pZl9wYWNrZXQucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2lwdGFibGVzL2lwdGFibGVzL3R5cGVzLmgtYWRkLWRlZmluZXMtdGhhdC1hcmUtcmVxdWlyZWQtZm9yLWlmX3BhY2tldC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjRlZTI5ZS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2lwdGFibGVzL2lwdGFibGVzL3R5cGVzLmgtYWRkLWRlZmluZXMtdGhhdC1hcmUtcmVxdWlyZWQtZm9yLWlmX3BhY2tldC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLUZyb20gMTk1OTM0OTFmNDNiNzBjMWE3MWMzYjliOGY0ZmY0ZmQxNDUwMDAxNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEJydWNlIEFzaGZpZWxkIDxicnVjZS5hc2hmaWVsZEB3aW5kcml2ZXIuY29tPgotRGF0ZTogRnJpLCAyMyBNYXIgMjAxMiAxNDoyNzoyMCAtMDQwMAotU3ViamVjdDogW1BBVENIXSB0eXBlcy5oOiBhZGQgZGVmaW5lcyB0aGF0IGFyZSByZXF1aXJlZCBmb3IgaWZfcGFja2V0LmgKLQotVGhlIGlwdGFibGVzIGxvY2FsIGxpbnV4L3R5cGVzLmggb3ZlcnJpZGVzIHRoZSBrZXJuZWwvc3lzcm9vdAotdHlwZXMuaC4gQXMgc3VjaCwgd2UgbmVlZCB0byBwcm92aWRlIHNvbWUgZGVmaW5lcyB0aGF0IGFyZSByZXF1aXJlZAotdG8gYnVpbGQgYWdhaW5zdCAzLjIrIGtlcm5lbCBoZWFkZXJzLgotCi1pZm5kZWYgcHJvdGVjdGlvbiBpcyBwcm92aWRlZCBmb3IgdGhlIGRlZmluZXMgdG8gZW5zdXJlIHRoYXQKLWNvbmZpZ3VyYXRpb24gdGhhdCBhbHJlYWR5IGhhdmUgdGhlc2UgZGVmaW5lcyBhcmUgc3RpbGwgYnVpbGRhYmxlLgotCi1UaGlzIGNvbW1pdCBpcyB0ZW1wb3JhcnkgdW50aWwgYSBuZXcgdmVyc2lvbiBvZiBpcHRhYmxlcyBjYW4gYmUKLXVzZWQgdGhhdCBjb250YWlucyB0aGUgZGVmaW5lcy4KLQotVGhpcyBpcyBzaW1pbGFyIHRvIHRoZSBjb21taXQgaW4gdGhlIGlwdGFibGVzIGdpdCByZXBvc2l0b3J5OgotCi0gIGh0dHBzOi8vZ2l0Lm5ldGZpbHRlci5vcmcvY2dpLWJpbi9naXR3ZWIuY2dpP3A9aXB0YWJsZXMuZ2l0O2E9Y29tbWl0O2g9ZGJlNzdjYzk3NGNlZTY1NmVhZTM3ZTc1MDM5ZGQxYTQxMGE0NTM1YgotCi1VcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0Ci0KLVNpZ25lZC1vZmYtYnk6IEJydWNlIEFzaGZpZWxkIDxicnVjZS5hc2hmaWVsZEB3aW5kcml2ZXIuY29tPgotLS0tCi0gaW5jbHVkZS9saW51eC90eXBlcy5oIHwgICAxMCArKysrKysrKysrCi0gMSBmaWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC90eXBlcy5oIGIvaW5jbHVkZS9saW51eC90eXBlcy5oCi1pbmRleCA4YjQ4M2M4Li5lYmY2NDMyIDEwMDY0NAotLS0tIGEvaW5jbHVkZS9saW51eC90eXBlcy5oCi0rKysgYi9pbmNsdWRlL2xpbnV4L3R5cGVzLmgKLUBAIC0zNCw1ICszNCwxNSBAQCB0eXBlZGVmIF9fdTY0IF9fYml0d2lzZSBfX2JlNjQ7Ci0gdHlwZWRlZiBfX3UxNiBfX2JpdHdpc2UgX19zdW0xNjsKLSB0eXBlZGVmIF9fdTMyIF9fYml0d2lzZSBfX3dzdW07Ci0gCi0rI2lmbmRlZiBfX2FsaWduZWRfdTY0Ci0rI2RlZmluZSBfX2FsaWduZWRfdTY0IF9fdTY0IF9fYXR0cmlidXRlX18oKGFsaWduZWQoOCkpKQotKyNlbmRpZgotKyNpZm5kZWYgX19hbGlnbmVkX2JlNjQKLSsjZGVmaW5lIF9fYWxpZ25lZF9iZTY0IF9fYmU2NCBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDgpKSkKLSsjZW5kaWYKLSsjaWZuZGVmIF9fYWxpZ25lZF9sZTY0Ci0rI2RlZmluZSBfX2FsaWduZWRfbGU2NCBfX2xlNjQgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCg4KSkpCi0rI2VuZGlmCi0rCi0gI2VuZGlmIC8qICBfX0FTU0VNQkxZX18gKi8KLSAjZW5kaWYgLyogX0xJTlVYX1RZUEVTX0ggKi8KLS0tIAotMS43LjAuNAotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2lwdGFibGVzL2lwdGFibGVzXzEuNi4xLmJiIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9pcHRhYmxlcy9pcHRhYmxlc18xLjYuMi5iYgpzaW1pbGFyaXR5IGluZGV4IDg3JQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2lwdGFibGVzL2lwdGFibGVzXzEuNi4xLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2lwdGFibGVzL2lwdGFibGVzXzEuNi4yLmJiCmluZGV4IGIzN2M1NWEuLjM4YTgzZDIgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvaXB0YWJsZXMvaXB0YWJsZXNfMS42LjEuYmIKKysrIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9pcHRhYmxlcy9pcHRhYmxlc18xLjYuMi5iYgpAQCAtMTksMTQgKzE5LDEyIEBACiBGSUxFU18ke1BOfSA9KyAiJHtsaWJkaXJ9L3h0YWJsZXMvICR7ZGF0YWRpcn0veHRhYmxlcyIKIAogU1JDX1VSSSA9ICJodHRwOi8vbmV0ZmlsdGVyLm9yZy9wcm9qZWN0cy9pcHRhYmxlcy9maWxlcy9pcHRhYmxlcy0ke1BWfS50YXIuYnoyIFwKLSAgICAgICAgICAgZmlsZTovL3R5cGVzLmgtYWRkLWRlZmluZXMtdGhhdC1hcmUtcmVxdWlyZWQtZm9yLWlmX3BhY2tldC5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDAxLWNvbmZpZ3VyZS1BZGQtb3B0aW9uLXRvLWVuYWJsZS1kaXNhYmxlLWxpYm5mbmV0bGluay5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDAyLWNvbmZpZ3VyZS5hYy1vbmx5LWNoZWNrLWNvbm50cmFjay13aGVuLWxpYm5mbmV0bGluay1lbmFibGVkLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtZml4LWJ1aWxkLXdpdGgtbXVzbC5wYXRjaCBcCiAiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICJhYjM4YTMzODA2YjYxODJjNmY1M2Q2YWZiNDYxOWFkZCIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIwZmMyZDdiZDVkN2JlMTEzMTE3MjY0NjY3ODlkNGM2NWZiNGM4ZTA5NmM5MTgyYjU2Y2U5NzQ0MDg2NGYwY2Y1IgorU1JDX1VSSVttZDVzdW1dID0gIjdkMmI3ODQ3ZTRhYTg4MzJhMTg0MzdiOGE0YzE4NzNkIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjU1ZDAyZGZhNDYyNjMzNDNhNDAxZjI5N2Q0NDE5MGYyYTNlNTExM2M4OTMzOTQ2ZjA5NGVkNDAyMzcwNTM3MzMiCiAKIGluaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZwogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2lwdXRpbHMvZmlsZXMvMDAwMS1GaXgtYnVpbGQtb24tTVVTTC5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvaXB1dGlscy9maWxlcy8wMDAxLUZpeC1idWlsZC1vbi1NVVNMLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlOGNmZWIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2lwdXRpbHMvZmlsZXMvMDAwMS1GaXgtYnVpbGQtb24tTVVTTC5wYXRjaApAQCAtMCwwICsxLDk1IEBACitGcm9tIGM2YzU5NjZkOWZhZTI3YmMyZjBhMzRhYjU5Yjk5OTU1NTExMWJkMmQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBcmljIEJlbHNpdG8gPGxsdWl4aGlAZ21haWwuY29tPgorRGF0ZTogU3VuLCAyOSBPY3QgMjAxNyAyMzoxNzowMyArMDEwMAorU3ViamVjdDogW1BBVENIXSBGaXggYnVpbGQgb24gTVVTTAorCitBZGQgbWlzc2luZyBBSV9JRE4gYW5kIE5JX0lETiBkZWNsYXJhdGlvbnMuCisKK0J1ZzogaHR0cHM6Ly9idWdzLmdlbnRvby5vcmcvNTAzOTE0CisKK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworU2lnbmVkLW9mZi1ieTogQWxleGFuZGVyIEthbmF2aW4gPGFsZXgua2FuYXZpbkBnbWFpbC5jb20+CistLS0KKyBhcnBpbmcuYyAgICAgIHwgIDcgKysrKysrKworIHBpbmcuaCAgICAgICAgfCAxMSArKysrKysrKysrKworIHRyYWNlcGF0aC5jICAgfCAgOCArKysrKysrKworIHRyYWNlcm91dGU2LmMgfCAgNCArKysrCisgNCBmaWxlcyBjaGFuZ2VkLCAzMCBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9hcnBpbmcuYyBiL2FycGluZy5jCitpbmRleCAxYTNmNDBiLi41MzFkMjlkIDEwMDY0NAorLS0tIGEvYXJwaW5nLmMKKysrKyBiL2FycGluZy5jCitAQCAtNDUsNiArNDUsMTMgQEAgc3RydWN0IHN5c2ZzX2RldmF0dHJfdmFsdWVzOworICNpZmRlZiBVU0VfSUROCisgI2luY2x1ZGUgPGlkbmEuaD4KKyAjaW5jbHVkZSA8bG9jYWxlLmg+CisrCisrI2lmbmRlZiBBSV9JRE4KKysjZGVmaW5lIEFJX0lETiAweDAwNDAKKysjZW5kaWYKKysjaWZuZGVmIEFJX0NBTk9OSUROCisrI2RlZmluZSBBSV9DQU5PTklETiAweDAwODAKKysjZW5kaWYKKyAjZW5kaWYKKyAKKyAjaW5jbHVkZSAiU05BUFNIT1QuaCIKK2RpZmYgLS1naXQgYS9waW5nLmggYi9waW5nLmgKK2luZGV4IDc0OWYzZmYuLjIyNzMxNWYgMTAwNjQ0CistLS0gYS9waW5nLmgKKysrKyBiL3BpbmcuaAorQEAgLTM4LDYgKzM4LDE3IEBACisgI2luY2x1ZGUgPGxvY2FsZS5oPgorICNpbmNsdWRlIDxpZG5hLmg+CisgI2luY2x1ZGUgPHN0cmluZ3ByZXAuaD4KKysKKysjaWZuZGVmIEFJX0lETgorKyNkZWZpbmUgQUlfSUROIDB4MDA0MAorKyNlbmRpZgorKyNpZm5kZWYgQUlfQ0FOT05JRE4KKysjZGVmaW5lIEFJX0NBTk9OSUROIDB4MDA4MAorKyNlbmRpZgorKyNpZm5kZWYgTklfSUROCisrI2RlZmluZSBOSV9JRE4gMzIKKysjZW5kaWYKKysKKyAjZGVmaW5lIGdldGFkZHJpbmZvX2ZsYWdzIChBSV9DQU5PTk5BTUUgfCBBSV9JRE4gfCBBSV9DQU5PTklETikKKyAjZGVmaW5lIGdldG5hbWVpbmZvX2ZsYWdzIE5JX0lETgorICNlbHNlCitkaWZmIC0tZ2l0IGEvdHJhY2VwYXRoLmMgYi90cmFjZXBhdGguYworaW5kZXggNzRhODI5ZC4uZGNlYzViOSAxMDA2NDQKKy0tLSBhL3RyYWNlcGF0aC5jCisrKysgYi90cmFjZXBhdGguYworQEAgLTMwLDYgKzMwLDE0IEBACisgI2lmZGVmIFVTRV9JRE4KKyAjaW5jbHVkZSA8aWRuYS5oPgorICNpbmNsdWRlIDxsb2NhbGUuaD4KKysKKysjaWZuZGVmIEFJX0lETgorKyNkZWZpbmUgQUlfSUROIDB4MDA0MAorKyNlbmRpZgorKyNpZm5kZWYgTklfSUROCisrI2RlZmluZSBOSV9JRE4gMzIKKysjZW5kaWYKKysKKyAjZGVmaW5lIGdldG5hbWVpbmZvX2ZsYWdzCU5JX0lETgorICNlbHNlCisgI2RlZmluZSBnZXRuYW1laW5mb19mbGFncwkwCitkaWZmIC0tZ2l0IGEvdHJhY2Vyb3V0ZTYuYyBiL3RyYWNlcm91dGU2LmMKK2luZGV4IDQ4ZmM1YzUuLjhkMWVlYmYgMTAwNjQ0CistLS0gYS90cmFjZXJvdXRlNi5jCisrKysgYi90cmFjZXJvdXRlNi5jCitAQCAtMjUxLDYgKzI1MSwxMCBAQAorICNpbmNsdWRlIDxpZG5hLmg+CisgI2luY2x1ZGUgPGxvY2FsZS5oPgorIAorKyNpZm5kZWYgTklfSUROCisrI2RlZmluZSBOSV9JRE4gMzIKKysjZW5kaWYKKysKKyAjZGVmaW5lIGdldG5hbWVpbmZvX2ZsYWdzCU5JX0lETgorICNlbHNlCisgI2RlZmluZSBnZXRuYW1laW5mb19mbGFncwkwCistLSAKKzIuMTUuMQorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2lwdXRpbHMvZmlsZXMvMDAwMS1GaXgtaGVhZGVyLWluY2x1c2lvbi1mb3ItbXVzbC5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvaXB1dGlscy9maWxlcy8wMDAxLUZpeC1oZWFkZXItaW5jbHVzaW9uLWZvci1tdXNsLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMGVmMDdlLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvaXB1dGlscy9maWxlcy8wMDAxLUZpeC1oZWFkZXItaW5jbHVzaW9uLWZvci1tdXNsLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsOTIgKzAsMCBAQAotRnJvbSBiZTBiYjgxZDcyZmVhNGQyMGRhNzRmNGYyMjM2YWExNDU2ODRmMzMyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLURhdGU6IFdlZCwgNiBKYW4gMjAxNiAxNDoxNDoyMiAtMDgwMAotU3ViamVjdDogW1BBVENIXSBGaXggaGVhZGVyIGluY2x1c2lvbiBmb3IgbXVzbAotCi1GaXggZXJyb3JzIGUuZy4KLQotSW4gZmlsZSBpbmNsdWRlZCBmcm9tIHRyYWNlcGF0aC5jOjE3OjA6Ci0vdXNyL2luY2x1ZGUvbGludXgvZXJycXVldWUuaDozMzoxODoKLWVycm9yOiBhcnJheSB0eXBlIGhhcyBpbmNvbXBsZXRlIGVsZW1lbnQgdHlwZSAnc3RydWN0IHRpbWVzcGVjJwotICBzdHJ1Y3QgdGltZXNwZWMgdHNbM107Ci0gICAgICAgICAgICAgICAgICBeCi10cmFjZXBhdGguYzogSW4gZnVuY3Rpb24gJ21haW4nOgotdHJhY2VwYXRoLmM6MzI5OjE2OiBlcnJvcjogJ0lOVF9NQVgnIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzCi1mdW5jdGlvbikKLSAgICAgIG92ZXJoZWFkLCBJTlRfTUFYKTsKLSAgICAgICAgICAgICAgICBeCi10cmFjZXBhdGguYzozMjk6MTY6IG5vdGU6IGVhY2ggdW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkKLW9uY2UgZm9yIGVhY2ggZnVuY3Rpb24gaXQgYXBwZWFycyBpbgotTWFrZWZpbGU6MTMxOiByZWNpcGUgZm9yIHRhcmdldCAndHJhY2VwYXRoLm8nIGZhaWxlZAotbWFrZTogKioqIFt0cmFjZXBhdGgub10gRXJyb3IgMQotCi1waW5nX2NvbW1vbi5jOiBJbiBmdW5jdGlvbiAnbWFpbl9sb29wJzoKLXBpbmdfY29tbW9uLmM6NzU2OjE1OiBlcnJvcjogJ0haJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcwotZnVuY3Rpb24pCi0gICAgaWYgKDEwMDAgJSBIWiA9PSAwID8gbmV4dCA8PSAxMDAwIC8gSFogOiAobmV4dCA8IElOVF9NQVggLyBIWiAmJgotbmV4dCAqIEhaIDw9IDEwMDApKSB7Ci0KLXByb3RvY29scy90aW1lZC5oIGlzIG5vdCBuZWVkZWQgYW5kIGlzIGFic2VudCBpbiBtdXNsCi0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi0gY2xvY2tkaWZmLmMgICB8IDEgLQotIHBpbmdfY29tbW9uLmMgfCAxICsKLSB0cmFjZXBhdGguYyAgIHwgMiArKwotIHRyYWNlcGF0aDYuYyAgfCAxICsKLSA0IGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvY2xvY2tkaWZmLmMgYi9jbG9ja2RpZmYuYwotaW5kZXggN2MxZWExYi4uMWQ2MzQxZSAxMDA2NDQKLS0tLSBhL2Nsb2NrZGlmZi5jCi0rKysgYi9jbG9ja2RpZmYuYwotQEAgLTE0LDcgKzE0LDYgQEAKLSAjaW5jbHVkZSA8bmV0aW5ldC9pcC5oPgotICNpbmNsdWRlIDxuZXRpbmV0L2lwX2ljbXAuaD4KLSAjZGVmaW5lIFRTUFRZUEVTCi0tI2luY2x1ZGUgPHByb3RvY29scy90aW1lZC5oPgotICNpbmNsdWRlIDxmY250bC5oPgotICNpbmNsdWRlIDxuZXRkYi5oPgotICNpbmNsdWRlIDxhcnBhL2luZXQuaD4KLWRpZmYgLS1naXQgYS9waW5nX2NvbW1vbi5jIGIvcGluZ19jb21tb24uYwotaW5kZXggN2Y4Mjg1MS4uM2NlNjk5ZCAxMDA2NDQKLS0tLSBhL3BpbmdfY29tbW9uLmMKLSsrKyBiL3BpbmdfY29tbW9uLmMKLUBAIC0yLDYgKzIsNyBAQAotICNpbmNsdWRlIDxjdHlwZS5oPgotICNpbmNsdWRlIDxzY2hlZC5oPgotICNpbmNsdWRlIDxtYXRoLmg+Ci0rI2luY2x1ZGUgPGFzbS1nZW5lcmljL3BhcmFtLmg+Ci0gCi0gaW50IG9wdGlvbnM7Ci0gCi1kaWZmIC0tZ2l0IGEvdHJhY2VwYXRoLmMgYi90cmFjZXBhdGguYwotaW5kZXggODllNmQxNi4uYzlkNmRkZCAxMDA2NDQKLS0tLSBhL3RyYWNlcGF0aC5jCi0rKysgYi90cmFjZXBhdGguYwotQEAgLTEyLDYgKzEyLDggQEAKLSAjaW5jbHVkZSA8c3RkaW8uaD4KLSAjaW5jbHVkZSA8c3RkbGliLmg+Ci0gI2luY2x1ZGUgPHVuaXN0ZC5oPgotKyNpbmNsdWRlIDxsaW1pdHMuaD4KLSsjaW5jbHVkZSA8dGltZS5oPgotICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+Ci0gI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Ci0gI2luY2x1ZGUgPGxpbnV4L2VycnF1ZXVlLmg+Ci1kaWZmIC0tZ2l0IGEvdHJhY2VwYXRoNi5jIGIvdHJhY2VwYXRoNi5jCi1pbmRleCAxMjZmYWRmLi45ZDU3NDVjIDEwMDY0NAotLS0tIGEvdHJhY2VwYXRoNi5jCi0rKysgYi90cmFjZXBhdGg2LmMKLUBAIC0xMiw2ICsxMiw3IEBACi0gI2luY2x1ZGUgPHN0ZGlvLmg+Ci0gI2luY2x1ZGUgPHN0ZGxpYi5oPgotICNpbmNsdWRlIDx1bmlzdGQuaD4KLSsjaW5jbHVkZSA8bGltaXRzLmg+Ci0gI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KLSAjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgotICNpbmNsdWRlIDxuZXRpbmV0L2ljbXA2Lmg+Ci0tLSAKLTIuNi40Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvaXB1dGlscy9maWxlcy8wMDAxLUludGlhbGl6ZS1zdHJ1Y3QtZWxlbWVudHMtYnktbmFtZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvaXB1dGlscy9maWxlcy8wMDAxLUludGlhbGl6ZS1zdHJ1Y3QtZWxlbWVudHMtYnktbmFtZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmRhMDFkYy4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2lwdXRpbHMvZmlsZXMvMDAwMS1JbnRpYWxpemUtc3RydWN0LWVsZW1lbnRzLWJ5LW5hbWUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1MiArMCwwIEBACi1Gcm9tIDAwMDYyOWY3NDkwOGEyYTk1ZjYxMDQ0NDRjNzdhZDkzY2Y0MGQ2MmQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotRGF0ZTogV2VkLCAxMyBKYW4gMjAxNiAwODo1MDo1MCArMDAwMAotU3ViamVjdDogW1BBVENIXSBJbnRpYWxpemUgc3RydWN0IGVsZW1lbnRzIGJ5IG5hbWUKLQotbWFrZXMgaXQgcG9ydGFibGUgYWNyb3NzIGdsaWJjIGFuZCBtdXNsCi0KLUZpeGVzIGVycm9ycwotCi18IHBpbmcuYzogSW4gZnVuY3Rpb24gJ3NlbmRfcHJvYmUnOgotfCBwaW5nLmM6NzM1OjE5OiB3YXJuaW5nOiBpbml0aWFsaXphdGlvbiBtYWtlcyBpbnRlZ2VyIGZyb20gcG9pbnRlcgotd2l0aG91dCBhIGNhc3QgWy1XaW50LWNvbnZlcnNpb25dCi18ICAgICAgICAgICAmaW92LCAxLCAmY21zZywgMCwgMCB9OwotfCAgICAgICAgICAgICAgICAgICAgXgotfCBwaW5nLmM6NzM1OjE5OiBub3RlOiAobmVhciBpbml0aWFsaXphdGlvbiBmb3IgJ20uX19wYWQxJykKLXwgcGluZy5jOjczNToxOTogZXJyb3I6IGluaXRpYWxpemVyIGVsZW1lbnQgaXMgbm90IGNvbXB1dGFibGUgYXQgbG9hZAotdGltZQotfCBwaW5nLmM6NzM1OjE5OiBub3RlOiAobmVhciBpbml0aWFsaXphdGlvbiBmb3IgJ20uX19wYWQxJykKLXwgbWFrZTogKioqIFtwaW5nLm9dIEVycm9yIDEKLQotU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLS0tLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLSBwaW5nLmMgfCAxMSArKysrKysrKystLQotIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9waW5nLmMgYi9waW5nLmMKLWluZGV4IDQ5ODk3NjAuLmU2N2YzODEgMTAwNjQ0Ci0tLS0gYS9waW5nLmMKLSsrKyBiL3BpbmcuYwotQEAgLTczMSw4ICs3MzEsMTUgQEAgaW50IHNlbmRfcHJvYmUoKQotIAotIAlkbyB7Ci0gCQlzdGF0aWMgc3RydWN0IGlvdmVjIGlvdiA9IHtvdXRwYWNrLCAwfTsKLS0JCXN0YXRpYyBzdHJ1Y3QgbXNnaGRyIG0gPSB7ICZ3aGVyZXRvLCBzaXplb2Yod2hlcmV0byksCi0tCQkJCQkJICAgJmlvdiwgMSwgJmNtc2csIDAsIDAgfTsKLSsJCXN0YXRpYyBzdHJ1Y3QgbXNnaGRyIG0gPSB7Ci0rCQkJLm1zZ19uYW1lID0gJndoZXJldG8sCi0rCQkJLm1zZ19uYW1lbGVuID0gc2l6ZW9mKHdoZXJldG8pLAotKwkJCS5tc2dfaW92ID0gJmlvdiwKLSsJCQkubXNnX2lvdmxlbiA9IDEsCi0rCQkJLm1zZ19jb250cm9sID0gJmNtc2csCi0rCQkJLm1zZ19jb250cm9sbGVuID0gMCwKLSsJCQkubXNnX2ZsYWdzPSAwLAotKwkJfTsKLSAJCW0ubXNnX2NvbnRyb2xsZW4gPSBjbXNnX2xlbjsKLSAJCWlvdi5pb3ZfbGVuID0gY2M7Ci0gCi0tLSAKLTIuNy4wCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvaXB1dGlscy9maWxlcy9hcnBpbmctZml4LWFycGluZy1oYW5nLWlmLVNJR0FMUk0taXMtYmxvY2tlZC5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvaXB1dGlscy9maWxlcy9hcnBpbmctZml4LWFycGluZy1oYW5nLWlmLVNJR0FMUk0taXMtYmxvY2tlZC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2I1NjI3Ni4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2lwdXRpbHMvZmlsZXMvYXJwaW5nLWZpeC1hcnBpbmctaGFuZy1pZi1TSUdBTFJNLWlzLWJsb2NrZWQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi1hcnBpbmc6IGZpeCBhcnBpbmcgaGFuZyBpZiBTSUdBTFJNIGlzIGJsb2NrZWQKLQotVW5ibG9jayBTSUdBTFJNIHNvIHRoYXQgdGhlIHByZXZpb3VzbHkgY2FsbGVkIGFsYXJtKCkgY2FuIHByZXZlbnQKLXJlY3Zmcm9tKCkgZnJvbSBibG9ja2luZyBmb3JldmVyIGluIGNhc2UgdGhlIGluaGVyaXRlZCBwcm9jbWFzayBpcwotYmxvY2tpbmcgU0lHQUxSTSBhbmQgbm8gcGFja2V0IGlzIHJlY2VpdmVkLgotCi1VcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0Ci0KLVJlcG9ydGVkLWJ5OiBSdWkgUHJpb3IgPHJwcmlvckBkY2MuZmMudXAucHQ+Ci1SSC1CdWd6aWxsYTogIzEwODU5NzEKLVNpZ25lZC1vZmYtYnk6IEphbiBTeW5hY2VrIDxqc3luYWNla0ByZWRoYXQuY29tPgotU2lnbmVkLW9mZi1ieTogWmhlbmJvIEdhbyA8emhlbmJvLmdhb0B3aW5kcml2ZXIuY29tPgotCi1kaWZmIC0tZ2l0IGEvYXJwaW5nLmMub3JpZyBiL2FycGluZy5jCi1pbmRleCAzNTQwOGMxLi4yMDk4MTU5IDEwMDY0NAotLS0tIGEvYXJwaW5nLmMub3JpZwotKysrIGIvYXJwaW5nLmMKLUBAIC0xMjE1LDE2ICsxMjE1LDIyIEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQotIAkJc29ja2xlbl90IGFsZW4gPSBzaXplb2YoZnJvbSk7Ci0gCQlpbnQgY2M7Ci0gCi0rCQlzaWdlbXB0eXNldCgmc3NldCk7Ci0rCQlzaWdhZGRzZXQoJnNzZXQsIFNJR0FMUk0pOwotKwkJc2lnYWRkc2V0KCZzc2V0LCBTSUdJTlQpOwotKwkJLyogVW5ibG9jayBTSUdBTFJNIHNvIHRoYXQgdGhlIHByZXZpb3VzbHkgY2FsbGVkIGFsYXJtKCkKLSsJCSAqIGNhbiBwcmV2ZW50IHJlY3Zmcm9tIGZyb20gYmxvY2tpbmcgZm9yZXZlciBpbiBjYXNlIHRoZQotKwkJICogaW5oZXJpdGVkIHByb2NtYXNrIGlzIGJsb2NraW5nIFNJR0FMUk0gYW5kIG5vIHBhY2tldAotKwkJICogaXMgcmVjZWl2ZWQuICovCi0rCQlzaWdwcm9jbWFzayhTSUdfVU5CTE9DSywgJnNzZXQsICZvc3NldCk7Ci0rCi0gCQlpZiAoKGNjID0gcmVjdmZyb20ocywgcGFja2V0LCBzaXplb2YocGFja2V0KSwgMCwKLSAJCQkJICAgKHN0cnVjdCBzb2NrYWRkciAqKSZmcm9tLCAmYWxlbikpIDwgMCkgewotIAkJCXBlcnJvcigiYXJwaW5nOiByZWN2ZnJvbSIpOwotIAkJCWNvbnRpbnVlOwotIAkJfQotIAotLQkJc2lnZW1wdHlzZXQoJnNzZXQpOwotLQkJc2lnYWRkc2V0KCZzc2V0LCBTSUdBTFJNKTsKLS0JCXNpZ2FkZHNldCgmc3NldCwgU0lHSU5UKTsKLS0JCXNpZ3Byb2NtYXNrKFNJR19CTE9DSywgJnNzZXQsICZvc3NldCk7Ci0rCQlzaWdwcm9jbWFzayhTSUdfQkxPQ0ssICZzc2V0LCBOVUxMKTsKLSAJCXJlY3ZfcGFjayhwYWNrZXQsIGNjLCAoc3RydWN0IHNvY2thZGRyX2xsICopJmZyb20pOwotIAkJc2lncHJvY21hc2soU0lHX1NFVE1BU0ssICZvc3NldCwgTlVMTCk7Ci0gCX0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvaXB1dGlscy9maWxlcy9kZWJpYW4vdGFyZ2V0cy5kaWZmIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9pcHV0aWxzL2ZpbGVzL2RlYmlhbi90YXJnZXRzLmRpZmYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJjYjU1NzYuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9pcHV0aWxzL2ZpbGVzL2RlYmlhbi90YXJnZXRzLmRpZmYKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi1VcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2Rpc2FibGUgZmVhdHVyZV0KLQotSW5kZXg6IGlwdXRpbHMtczIwMTIxMjIxL01ha2VmaWxlCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gaXB1dGlscy1zMjAxMjEyMjEub3JpZy9NYWtlZmlsZQotKysrIGlwdXRpbHMtczIwMTIxMjIxL01ha2VmaWxlCi1AQCAtMTA2LDcgKzEwNiw3IEBAIGVuZGlmCi0gZW5kaWYKLSAKLSAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS1JUFY0X1RBUkdFVFM9dHJhY2VwYXRoIHBpbmcgY2xvY2tkaWZmIHJkaXNjIGFycGluZyB0ZnRwZCByYXJwZAotK0lQVjRfVEFSR0VUUz10cmFjZXBhdGggcGluZyBjbG9ja2RpZmYgYXJwaW5nCi0gSVBWNl9UQVJHRVRTPXRyYWNlcGF0aDYgdHJhY2Vyb3V0ZTYgcGluZzYKLSBUQVJHRVRTPSQoSVBWNF9UQVJHRVRTKSAkKElQVjZfVEFSR0VUUykKLSAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvaXB1dGlscy9maWxlcy9kZWJpYW4vdXNlX2dldGhvc3RieW5hbWUyLmRpZmYgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2lwdXRpbHMvZmlsZXMvZGViaWFuL3VzZV9nZXRob3N0YnluYW1lMi5kaWZmCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkM2IxODg2Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvaXB1dGlscy9maWxlcy9kZWJpYW4vdXNlX2dldGhvc3RieW5hbWUyLmRpZmYKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcgW2Zyb20gb3RoZXIgZGlzdHJvIERlYmlhbl0KLQotSW5kZXg6IGlwdXRpbHMtczIwMTIxMjIxL3RyYWNlcGF0aC5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gaXB1dGlscy1zMjAxMjEyMjEub3JpZy90cmFjZXBhdGguYwotKysrIGlwdXRpbHMtczIwMTIxMjIxL3RyYWNlcGF0aC5jCi1AQCAtMzcwLDkgKzM3MCw5IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQotIAl9Ci0gI2VuZGlmCi0gCi0tCWhlID0gZ2V0aG9zdGJ5bmFtZShwKTsKLSsJaGUgPSBnZXRob3N0YnluYW1lMihhcmd2WzBdLCBBRl9JTkVUKTsKLSAJaWYgKGhlID09IE5VTEwpIHsKLS0JCWhlcnJvcigiZ2V0aG9zdGJ5bmFtZSIpOwotKwkJaGVycm9yKCJnZXRob3N0YnluYW1lMiIpOwotIAkJZXhpdCgxKTsKLSAJfQotIAotSW5kZXg6IGlwdXRpbHMtczIwMTIxMjIxL3BpbmcuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGlwdXRpbHMtczIwMTIxMjIxLm9yaWcvcGluZy5jCi0rKysgaXB1dGlscy1zMjAxMjEyMjEvcGluZy5jCi1AQCAtMjc5LDcgKzI3OSw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQotICNlbHNlCi0gCQkJaWRuID0gdGFyZ2V0OwotICNlbmRpZgotLQkJCWhwID0gZ2V0aG9zdGJ5bmFtZShpZG4pOwotKwkJCWhwID0gZ2V0aG9zdGJ5bmFtZTIoaWRuLCBBRl9JTkVUKTsKLSAJCQlpZiAoIWhwKSB7Ci0gCQkJCWZwcmludGYoc3RkZXJyLCAicGluZzogdW5rbm93biBob3N0ICVzXG4iLCB0YXJnZXQpOwotIAkJCQlleGl0KDIpOwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9pcHV0aWxzL2ZpbGVzL25zZ21scy1wYXRoLWZpeC5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvaXB1dGlscy9maWxlcy9uc2dtbHMtcGF0aC1maXgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkyYmY5NDYuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9pcHV0aWxzL2ZpbGVzL25zZ21scy1wYXRoLWZpeC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLUZpeCBuc2dtbHMgcGF0aCBpc3N1ZQotCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotU2lnbmVkLW9mZi1ieTogWmhhaSBFZHdpbiA8ZWR3aW4uemhhaUBpbnRlbC5jb20+Ci0KLUluZGV4OiBpcHV0aWxzLXMyMDEwMTAwNi9kb2MvTWFrZWZpbGUKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBpcHV0aWxzLXMyMDEwMTAwNi5vcmlnL2RvYy9NYWtlZmlsZQkyMDExLTA5LTEzIDIwOjQyOjI3LjAwMDAwMDAwMCArMDgwMAotKysrIGlwdXRpbHMtczIwMTAxMDA2L2RvYy9NYWtlZmlsZQkyMDExLTA5LTEzIDIxOjAxOjUyLjAwMDAwMDAwMCArMDgwMAotQEAgLTI3LDEwICsyNywxNSBAQAotICMgZG9jYm9vazJtYW4gcHJvZHVjZXMgdXR0ZXJseSB1Z2x5IG91dHB1dCBhbmQgSSBkaWQgbm90IGZpbmQKLSAjIGFueSB3YXkgdG8gY3VzdG9taXplIHRoaXMgYnV0IGhhY2tpbmcgYmFja2VuZCBwZXJsIHNjcmlwdCBhIGxpdHRsZS4KLSAjIFdlbGwsIGhlbmNlLi4uCi0rIyBuc2dtbHMgc2VlbXMgYXBwZW5kIHBhdGggdG8gc2VhcmNoIGRpcmVjdG9yeSBhY2NvcmRpbmcgdG8gdGhlIHN5c2lkIHBhdGguCi0rIyBlLmcuIGlmIGlucHV0IC4uL2luZGV4LmRiLCBpdCB3b3VsZCBzZWFyY2ggJHNlYXJjaF9kaXJlY3RvcnkvLi4vIHJhdGhlciB0aGFuCi0rIyAkc2VhcmNoX2RpcmVjdG9yeSwgd2hpY2ggbGVhZHMgc2VhcmNoaW5nIGZhaWx1cmUuIEZpeGluZyBuc2dtbHMgcHJvYmFibHkKLSsjIGludHJvZHVjZSBzb21lIHNpZGUgZWZmZWN0cywgc28gdXNlIHRoaXMgdWdseSBoYWNrOiBydW5uaW5nIG5zZ21scyBpbiBjdXJyZW50Ci0rIyBkaXJlY3RvcnksIGFuZCBydW5uaW5nIGRvY2Jvb2sybWFuIGluIHRtcCBkaXJlY3RvcnkuCi0gCi0gJChNQU5GSUxFUyk6IGluZGV4LmRiCi0gCUAtbWtkaXIgdG1wLmRiMm1hbgotLQlAc2V0IC1lOyBjZCB0bXAuZGIybWFuOyBuc2dtbHMgLi4vJDwgfCBzZ21sc3BsIC4uL2RvY2Jvb2sybWFuLXNwZWMucGwgOwltdiAkQCAuLgotKwlAc2V0IC1lOyBuc2dtbHMgJDwgPnRtcC5kYjJtYW4vb3V0cHV0OyBjZCB0bXAuZGIybWFuOyBjYXQgb3V0cHV0IHwgc2dtbHNwbCAuLi9kb2Nib29rMm1hbi1zcGVjLnBsIDsJbXYgJEAgLi4KLSAJQC1ybSAtcmYgdG1wLmRiMm1hbgotIAotIGNsZWFuOgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9pcHV0aWxzL2lwdXRpbHNfczIwMTUxMjE4LmJiIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9pcHV0aWxzL2lwdXRpbHNfczIwMTUxMjE4LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NmRlNmZjLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvaXB1dGlscy9pcHV0aWxzX3MyMDE1MTIxOC5iYgorKysgL2Rldi9udWxsCkBAIC0xLDcyICswLDAgQEAKLVNVTU1BUlkgPSAiTmV0d29yayBtb25pdG9yaW5nIHRvb2xzIgotREVTQ1JJUFRJT04gPSAiVXRpbGl0aWVzIGZvciB0aGUgSVAgcHJvdG9jb2wsIGluY2x1ZGluZyB0cmFjZXJvdXRlNiwgXAotdHJhY2VwYXRoLCB0cmFjZXBhdGg2LCBwaW5nLCBwaW5nNiBhbmQgYXJwaW5nLiIKLUhPTUVQQUdFID0gImh0dHA6Ly93d3cuc2tidWZmLm5ldC9pcHV0aWxzIgotU0VDVElPTiA9ICJjb25zb2xlL25ldHdvcmsiCi0KLUxJQ0VOU0UgPSAiQlNEICYgR1BMdjIrIgotCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9waW5nLmM7YmVnaW5saW5lPTE7ZW5kbGluZT0zNTttZDU9ZjljZWIyMDE3MzNlOWE2Y2Y4ZjAwNzY2ZGQyNzhkODIgXAotICAgICAgICAgICAgICAgICAgICBmaWxlOi8vdHJhY2VwYXRoLmM7YmVnaW5saW5lPTE7ZW5kbGluZT0xMDttZDU9MGVjZWEyYmY2MGJmZjJmM2Q4NDAwOTZkODc2NDdmM2QgXAotICAgICAgICAgICAgICAgICAgICBmaWxlOi8vYXJwaW5nLmM7YmVnaW5saW5lPTE7ZW5kbGluZT0xMTttZDU9ZmU4NDMwMWI1YzI2NTVjOTUwZjhiOTJhMDU3ZmFmYTYgXAotICAgICAgICAgICAgICAgICAgICBmaWxlOi8vdGZ0cGQuYztiZWdpbmxpbmU9MTtlbmRsaW5lPTMyO21kNT0yODgzNGJmOGE5MWE1YjhhOTI3NTVkYmVlNzA5ZWY5NiAiCi0KLURFUEVORFMgPSAiZ251dGxzIGxpYmNhcCBsaWJnY3J5cHQiCi0KLQotU1JDX1VSSSA9ICJodHRwOi8vd3d3LnNrYnVmZi5uZXQvaXB1dGlscy8ke0JQTn0tJHtQVn0udGFyLmJ6MiBcCi0gICAgICAgICAgIGZpbGU6Ly9kZWJpYW4vdXNlX2dldGhvc3RieW5hbWUyLmRpZmYgXAotICAgICAgICAgICBmaWxlOi8vZGViaWFuL3RhcmdldHMuZGlmZiBcCi0gICAgICAgICAgIGZpbGU6Ly9uc2dtbHMtcGF0aC1maXgucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1GaXgtaGVhZGVyLWluY2x1c2lvbi1mb3ItbXVzbC5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLUludGlhbGl6ZS1zdHJ1Y3QtZWxlbWVudHMtYnktbmFtZS5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9hcnBpbmctZml4LWFycGluZy1oYW5nLWlmLVNJR0FMUk0taXMtYmxvY2tlZC5wYXRjaCBcCi0gICAgICAgICAgIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiOGFhYTczOTVmMjdkZmY5ZjU3YWUwMTZkNGJjNzUzY2UiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNTQ5ZjU4ZDcxOTUxZTUyYjQ2NTk1ODI5MTM0ZDRlMzMwNjQyZjUyMmY1MDAyNjkxN2ZhZGMzNDlhNTQ4MjVhMSIKLQotVVBTVFJFQU1fQ0hFQ0tfUkVHRVggPSAiaXB1dGlscy0oP1A8cHZlcj5zXGQrKS50YXIiCi0KLUVYVFJBX09FTUFLRSA9ICItZSBNQUtFRkxBR1M9IgotCi1kb19jb21waWxlICgpIHsKLQlvZV9ydW5tYWtlICdDQz0ke0NDfSAtRF9HTlVfU09VUkNFJyBWUEFUSD0iJHtTVEFHSU5HX0xJQkRJUn06JHtTVEFHSU5HX0RJUl9IT1NUfS8ke2Jhc2VfbGliZGlyfSIgYWxsCi19Ci0KLWRvX2luc3RhbGwgKCkgewotCWluc3RhbGwgLW0gMDc1NSAtZCAke0R9JHtiYXNlX2JpbmRpcn0KLQkjIFNVSUQgcm9vdCBwcm9ncmFtcwotCWluc3RhbGwgLW0gNDU1NSBwaW5nICR7RH0ke2Jhc2VfYmluZGlyfS9waW5nCi0JaW5zdGFsbCAtbSA0NTU1IHBpbmc2ICR7RH0ke2Jhc2VfYmluZGlyfS9waW5nNgotCWluc3RhbGwgLW0gNDU1NSB0cmFjZXJvdXRlNiAke0R9JHtiYXNlX2JpbmRpcn0vCi0JaW5zdGFsbCAtbSA0NTU1IGNsb2NrZGlmZiAke0R9JHtiYXNlX2JpbmRpcn0vCi0JIyBPdGhlciBwcm9ncmFtZ3MKLQlmb3IgaSBpbiBhcnBpbmcgdHJhY2VwYXRoIHRyYWNlcGF0aDY7IGRvCi0JICBpbnN0YWxsIC1tIDA3NTUgJGkgJHtEfSR7YmFzZV9iaW5kaXJ9LwotCWRvbmUKLX0KLQotaW5oZXJpdCB1cGRhdGUtYWx0ZXJuYXRpdmVzCi0KLUFMVEVSTkFUSVZFX1BSSU9SSVRZID0gIjEwMCIKLQotQUxURVJOQVRJVkVfJHtQTn0tcGluZyA9ICJwaW5nIgotQUxURVJOQVRJVkVfTElOS19OQU1FW3BpbmddID0gIiR7YmFzZV9iaW5kaXJ9L3BpbmciCi0KLUFMVEVSTkFUSVZFXyR7UE59LXBpbmc2ID0gInBpbmc2IgotQUxURVJOQVRJVkVfTElOS19OQU1FW3Bpbmc2XSA9ICIke2Jhc2VfYmluZGlyfS9waW5nNiIKLQotUEFDS0FHRVMgKz0gIiR7UE59LXBpbmcgJHtQTn0tcGluZzYgJHtQTn0tYXJwaW5nICR7UE59LXRyYWNlcGF0aCAke1BOfS10cmFjZXBhdGg2ICR7UE59LXRyYWNlcm91dGU2ICR7UE59LWNsb2NrZGlmZiIKLQotQUxMT1dfRU1QVFlfJHtQTn0gPSAiMSIKLVJERVBFTkRTXyR7UE59ICs9ICIke1BOfS1waW5nICR7UE59LXBpbmc2ICR7UE59LWFycGluZyAke1BOfS10cmFjZXBhdGggJHtQTn0tdHJhY2VwYXRoNiAke1BOfS10cmFjZXJvdXRlNiAke1BOfS1jbG9ja2RpZmYiCi0KLUZJTEVTXyR7UE59CT0gIiIKLUZJTEVTXyR7UE59LXBpbmcgPSAiJHtiYXNlX2JpbmRpcn0vcGluZy4ke0JQTn0iCi1GSUxFU18ke1BOfS1waW5nNiA9ICIke2Jhc2VfYmluZGlyfS9waW5nNi4ke0JQTn0iCi1GSUxFU18ke1BOfS1hcnBpbmcgPSAiJHtiYXNlX2JpbmRpcn0vYXJwaW5nIgotRklMRVNfJHtQTn0tdHJhY2VwYXRoID0gIiR7YmFzZV9iaW5kaXJ9L3RyYWNlcGF0aCIKLUZJTEVTXyR7UE59LXRyYWNlcGF0aDYgPSAiJHtiYXNlX2JpbmRpcn0vdHJhY2VwYXRoNiIKLUZJTEVTXyR7UE59LXRyYWNlcm91dGU2CT0gIiR7YmFzZV9iaW5kaXJ9L3RyYWNlcm91dGU2IgotRklMRVNfJHtQTn0tY2xvY2tkaWZmID0gIiR7YmFzZV9iaW5kaXJ9L2Nsb2NrZGlmZiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvaXB1dGlscy9pcHV0aWxzX3MyMDE2MTEwNS5iYiBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvaXB1dGlscy9pcHV0aWxzX3MyMDE2MTEwNS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMTI1NzM5Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9pcHV0aWxzL2lwdXRpbHNfczIwMTYxMTA1LmJiCkBAIC0wLDAgKzEsNjIgQEAKK1NVTU1BUlkgPSAiTmV0d29yayBtb25pdG9yaW5nIHRvb2xzIgorREVTQ1JJUFRJT04gPSAiVXRpbGl0aWVzIGZvciB0aGUgSVAgcHJvdG9jb2wsIGluY2x1ZGluZyB0cmFjZXJvdXRlNiwgXAordHJhY2VwYXRoLCB0cmFjZXBhdGg2LCBwaW5nLCBwaW5nNiBhbmQgYXJwaW5nLiIKK0hPTUVQQUdFID0gImh0dHBzOi8vZ2l0aHViLmNvbS9pcHV0aWxzL2lwdXRpbHMiCitTRUNUSU9OID0gImNvbnNvbGUvbmV0d29yayIKKworTElDRU5TRSA9ICJCU0QgJiBHUEx2MisiCisKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL3BpbmcuYztiZWdpbmxpbmU9MTtlbmRsaW5lPTM1O21kNT1mOWNlYjIwMTczM2U5YTZjZjhmMDA3NjZkZDI3OGQ4MiBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly90cmFjZXBhdGguYztiZWdpbmxpbmU9MTtlbmRsaW5lPTEwO21kNT0wZWNlYTJiZjYwYmZmMmYzZDg0MDA5NmQ4NzY0N2YzZCBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9hcnBpbmcuYztiZWdpbmxpbmU9MTtlbmRsaW5lPTExO21kNT1mZTg0MzAxYjVjMjY1NWM5NTBmOGI5MmEwNTdmYWZhNiBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly90ZnRwZC5jO2JlZ2lubGluZT0xO2VuZGxpbmU9MzI7bWQ1PTI4ODM0YmY4YTkxYTViOGE5Mjc1NWRiZWU3MDllZjk2ICIKKworREVQRU5EUyA9ICJnbnV0bHMgbGliY2FwIGxpYmdjcnlwdCIKKworU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL2lwdXRpbHMvaXB1dGlscyBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAxLUZpeC1idWlsZC1vbi1NVVNMLnBhdGNoIFwKKyAgICAgICAgICAgIgorUyA9ICIke1dPUktESVJ9L2dpdCIKK1NSQ1JFViA9ICJiZmZjMGU5NTdiOThkNjI2YWI0Y2VhMjE4Yzg5MjUxMjAxNDI1NDQyIgorCitVUFNUUkVBTV9DSEVDS19HSVRUQUdSRUdFWCA9ICIoP1A8cHZlcj5zXGQrKSIKKworRVhUUkFfT0VNQUtFID0gIi1lIE1BS0VGTEFHUz0iCisKK1BBQ0tBR0VDT05GSUcgPz0gIiIKK1BBQ0tBR0VDT05GSUdbbGliaWRuXSA9ICJVU0VfSUROPXllcyxVU0VfSUROPW5vLGxpYmlkbiIKKworZG9fY29tcGlsZSAoKSB7CisJb2VfcnVubWFrZSAnQ0M9JHtDQ30gLURfR05VX1NPVVJDRScgVlBBVEg9IiR7U1RBR0lOR19MSUJESVJ9OiR7U1RBR0lOR19ESVJfSE9TVH0vJHtiYXNlX2xpYmRpcn0iICR7UEFDS0FHRUNPTkZJR19DT05GQVJHU30gYWxsCit9CisKK2RvX2luc3RhbGwgKCkgeworCWluc3RhbGwgLW0gMDc1NSAtZCAke0R9JHtiYXNlX2JpbmRpcn0KKwkjIFNVSUQgcm9vdCBwcm9ncmFtcworCWluc3RhbGwgLW0gNDU1NSBwaW5nICR7RH0ke2Jhc2VfYmluZGlyfS9waW5nCisJaW5zdGFsbCAtbSA0NTU1IHRyYWNlcm91dGU2ICR7RH0ke2Jhc2VfYmluZGlyfS8KKwlpbnN0YWxsIC1tIDQ1NTUgY2xvY2tkaWZmICR7RH0ke2Jhc2VfYmluZGlyfS8KKwkjIE90aGVyIHByb2dyYW1ncworCWZvciBpIGluIGFycGluZyB0cmFjZXBhdGg7IGRvCisJICBpbnN0YWxsIC1tIDA3NTUgJGkgJHtEfSR7YmFzZV9iaW5kaXJ9LworCWRvbmUKK30KKworaW5oZXJpdCB1cGRhdGUtYWx0ZXJuYXRpdmVzCisKK0FMVEVSTkFUSVZFX1BSSU9SSVRZID0gIjEwMCIKKworQUxURVJOQVRJVkVfJHtQTn0tcGluZyA9ICJwaW5nIgorQUxURVJOQVRJVkVfTElOS19OQU1FW3BpbmddID0gIiR7YmFzZV9iaW5kaXJ9L3BpbmciCisKK1BBQ0tBR0VTICs9ICIke1BOfS1waW5nICR7UE59LWFycGluZyAke1BOfS10cmFjZXBhdGggJHtQTn0tdHJhY2Vyb3V0ZTYgJHtQTn0tY2xvY2tkaWZmIgorCitBTExPV19FTVBUWV8ke1BOfSA9ICIxIgorUkRFUEVORFNfJHtQTn0gKz0gIiR7UE59LXBpbmcgJHtQTn0tYXJwaW5nICR7UE59LXRyYWNlcGF0aCAke1BOfS10cmFjZXJvdXRlNiAke1BOfS1jbG9ja2RpZmYiCisKK0ZJTEVTXyR7UE59CT0gIiIKK0ZJTEVTXyR7UE59LXBpbmcgPSAiJHtiYXNlX2JpbmRpcn0vcGluZy4ke0JQTn0iCitGSUxFU18ke1BOfS1hcnBpbmcgPSAiJHtiYXNlX2JpbmRpcn0vYXJwaW5nIgorRklMRVNfJHtQTn0tdHJhY2VwYXRoID0gIiR7YmFzZV9iaW5kaXJ9L3RyYWNlcGF0aCIKK0ZJTEVTXyR7UE59LXRyYWNlcm91dGU2CT0gIiR7YmFzZV9iaW5kaXJ9L3RyYWNlcm91dGU2IgorRklMRVNfJHtQTn0tY2xvY2tkaWZmID0gIiR7YmFzZV9iaW5kaXJ9L2Nsb2NrZGlmZiIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbGVzcy9sZXNzXzQ4Ny5iYiBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbGVzcy9sZXNzXzUyOS5iYgpzaW1pbGFyaXR5IGluZGV4IDg5JQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xlc3MvbGVzc180ODcuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbGVzcy9sZXNzXzUyOS5iYgppbmRleCAyM2FlNDg0Li5jODZmNzU0IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xlc3MvbGVzc180ODcuYmIKKysrIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sZXNzL2xlc3NfNTI5LmJiCkBAIC0yNyw4ICsyNyw4IEBACiBTUkNfVVJJID0gImh0dHA6Ly93d3cuZ3JlZW53b29kc29mdHdhcmUuY29tLyR7QlBOfS8ke0JQTn0tJHtQVn0udGFyLmd6IFwKIAkgICIKIAotU1JDX1VSSVttZDVzdW1dID0gImRjYzhiZjE4M2E4M2IzNjJkMzdmZTllZjhkZjFmYjYwIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImYzZGM4NDU1Y2IwYjJiNjZlMGM2YjgxNmMwMDE5N2E3MWJmNmQxNzg3MDc4YWRlZWUwYmNmMmFlYTRiMTI3MDYiCitTUkNfVVJJW21kNXN1bV0gPSAiMzIwMThiNTNhMWY3MzE5YWI1NDM0OWJhZjgwZTZhYTgiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZGJhNDJjZDRjMzgxNzRiN2JkMGQ0MjZkOGEzOWRmMmJlNmJjYzFlYzE4OTQ2YTQ2NDI3MTMyOTBmNmJmOWEwYiIKIAogVVBTVFJFQU1fQ0hFQ0tfVVJJID0gImh0dHA6Ly93d3cuZ3JlZW53b29kc29mdHdhcmUuY29tL2xlc3MvZG93bmxvYWQuaHRtbCIKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9saWJhaW8vbGliYWlvL2Rlc3RkaXIucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xpYmFpby9saWJhaW8vZGVzdGRpci5wYXRjaAppbmRleCBkYWQ5NjAxLi4wZjkwNDA2IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xpYmFpby9saWJhaW8vZGVzdGRpci5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xpYmFpby9saWJhaW8vZGVzdGRpci5wYXRjaApAQCAtMiwxNiArMiwxNiBAQAogCiBmcm9tIG9wZW5lbWJlZGRlZCwgYWRkZWQgYnkgUWluZyBIZSA8cWluZy5oZUBpbnRlbC5jb20+CiAKLUluZGV4OiBsaWJhaW8tMC4zLjEwNi9NYWtlZmlsZQorSW5kZXg6IGxpYmFpby0wLjMuMTEwL01ha2VmaWxlCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gbGliYWlvLTAuMy4xMDYub3JpZy9NYWtlZmlsZQkyMDA0LTAyLTI2IDA3OjI1OjEwLjAwMDAwMDAwMCAtMDgwMAotKysrIGxpYmFpby0wLjMuMTA2L01ha2VmaWxlCTIwMDYtMTAtMTQgMDk6MTk6MDcuMDAwMDAwMDAwIC0wNzAwCi1AQCAtMTUsNyArMTUsNyBAQAorLS0tIGxpYmFpby0wLjMuMTEwLm9yaWcvTWFrZWZpbGUKKysrKyBsaWJhaW8tMC4zLjExMC9NYWtlZmlsZQorQEAgLTE1LDcgKzE1LDcgQEAgYWxsOgogIAlAJChNQUtFKSAtQyBzcmMKICAKICBpbnN0YWxsOgogLQlAJChNQUtFKSAtQyBzcmMgaW5zdGFsbCBwcmVmaXg9JChwcmVmaXgpIGluY2x1ZGVkaXI9JChpbmNsdWRlZGlyKSBsaWJkaXI9JChsaWJkaXIpCiArCUAkKE1BS0UpIC1DIHNyYyBpbnN0YWxsIHByZWZpeD0kKERFU1RESVIpJChwcmVmaXgpIGluY2x1ZGVkaXI9JChERVNURElSKSQoaW5jbHVkZWRpcikgbGliZGlyPSQoREVTVERJUikkKGxpYmRpcikKICAKLSAKLSBjbGVhbjoKKyBjaGVjazoKKyAJQCQoTUFLRSkgLUMgaGFybmVzcyBjaGVjawpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9saWJpZG4vbGliaWRuL2xpYmlkbl9maXhfZm9yX2F1dG9tYWtlLTEuMTIucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xpYmlkbi9saWJpZG4vbGliaWRuX2ZpeF9mb3JfYXV0b21ha2UtMS4xMi5wYXRjaAppbmRleCA1NjgzZDNjLi5kYjkxMzE3IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xpYmlkbi9saWJpZG4vbGliaWRuX2ZpeF9mb3JfYXV0b21ha2UtMS4xMi5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xpYmlkbi9saWJpZG4vbGliaWRuX2ZpeF9mb3JfYXV0b21ha2UtMS4xMi5wYXRjaApAQCAtOSwxMiArOSwxMiBAQAogU2lnbmVkLW9mZi1ieTogTml0aW4gQSBLYW1ibGUgPG5pdGluLmEua2FtYmxlQGludGVsLmNvbT4KIDIwMTIvMDUvMDMKIAotSW5kZXg6IGxpYmlkbi0xLjI0L2NvbmZpZ3VyZS5hYworSW5kZXg6IGxpYmlkbi0xLjMzL2NvbmZpZ3VyZS5hYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGxpYmlkbi0xLjI0Lm9yaWcvY29uZmlndXJlLmFjCi0rKysgbGliaWRuLTEuMjQvY29uZmlndXJlLmFjCi1AQCAtMzQsNiArMzQsMTAgQEAgQUNfU1VCU1QoTFRfQ1VSUkVOVCwgMTcpCi0gQUNfU1VCU1QoTFRfUkVWSVNJT04sIDcpCistLS0gbGliaWRuLTEuMzMub3JpZy9jb25maWd1cmUuYWMKKysrKyBsaWJpZG4tMS4zMy9jb25maWd1cmUuYWMKK0BAIC0zMyw2ICszMywxMCBAQCBBQ19TVUJTVChMVF9DVVJSRU5ULCAxNykKKyBBQ19TVUJTVChMVF9SRVZJU0lPTiwgMTYpCiAgQUNfU1VCU1QoTFRfQUdFLCA2KQogIAogKyMgYXV0b21ha2UgMS4xMiBzZWVtcyB0byByZXF1aXJlIHRoaXMsIGJ1dCBhdXRvbWFrZSAxLjExIGRvZXNuJ3QgcmVjb2duaXplIGl0CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xpYm1ubC9saWJtbmxfMS4wLjQuYmIgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xpYm1ubC9saWJtbmxfMS4wLjQuYmIKaW5kZXggYjQ1ODc5OS4uMjMyNjJlOCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9saWJtbmwvbGlibW5sXzEuMC40LmJiCisrKyBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbGlibW5sL2xpYm1ubF8xLjAuNC5iYgpAQCAtMTEsMyArMTEsNSBAQAogU1JDX1VSSVt0YXIuc2hhMjU2c3VtXSA9ICIxNzFmODk2OTlmMjg2YTU4NTRiNzJiOTFkMDZlOGY4ZTM2ODMwNjRjNTkwMWZiMDlkOTU0YTlhYjZmNTUxZjgxIgogCiBpbmhlcml0IGF1dG90b29scyBwa2djb25maWcKKworQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xpYnBpcGVsaW5lL2xpYnBpcGVsaW5lXzEuNS4wLmJiIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9saWJwaXBlbGluZS9saWJwaXBlbGluZV8xLjUuMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNGNjOWU1Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9saWJwaXBlbGluZS9saWJwaXBlbGluZV8xLjUuMC5iYgpAQCAtMCwwICsxLDE0IEBACitTVU1NQVJZID0gInBpcGVsaW5lIG1hbmlwdWxhdGlvbiBsaWJyYXJ5IgorREVTQ1JJUFRJT04gPSAiVGhpcyBpcyBhIEMgbGlicmFyeSBmb3Igc2V0dGluZyB1cCBhbmQgcnVubmluZyBwaXBlbGluZXMgb2YgcHJvY2Vzc2VzLCBcCit3aXRob3V0IG5lZWRpbmcgdG8gaW52b2x2ZSBzaGVsbCBjb21tYW5kLWxpbmUgcGFyc2luZyB3aGljaCBpcyBvZnRlbiBcCitlcnJvci1wcm9uZSBhbmQgaW5zZWN1cmUuIgorSE9NRVBBR0UgPSAiaHR0cDovL2xpYnBpcGVsaW5lLm5vbmdudS5vcmcvIgorTElDRU5TRSA9ICJHUEx2MyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWQzMjIzOWJjYjY3MzQ2M2FiODc0ZTgwZDQ3ZmFlNTA0IgorCitTUkNfVVJJID0gIiR7U0FWQU5OQUhfR05VX01JUlJPUn0vbGlicGlwZWxpbmUvbGlicGlwZWxpbmUtJHtQVn0udGFyLmd6IgorU1JDX1VSSVttZDVzdW1dID0gImI3NDM3YTUwMjAxOTBjZmE4NGYwOWM0MTJkYjM4OTAyIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjBkNzJlMTJlNGYyYWZmZjY3ZmQ3YjlkZjBhMjRkN2JhNDJiNWE3YzkyMTFhYzViM2RjY2NjNWNkOGIyODZmMmIiCisKK2luaGVyaXQgcGtnY29uZmlnIGF1dG90b29scworCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xpYnNvbHYvbGlic29sdi8wMDAxLUFkZC1mYWxsYmFjay1mb3BlbmNvb2tpZS1pbXBsZW1lbnRhdGlvbi5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbGlic29sdi9saWJzb2x2LzAwMDEtQWRkLWZhbGxiYWNrLWZvcGVuY29va2llLWltcGxlbWVudGF0aW9uLnBhdGNoCmluZGV4IGE1NzVkMGUuLmU1Y2I2MGQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbGlic29sdi9saWJzb2x2LzAwMDEtQWRkLWZhbGxiYWNrLWZvcGVuY29va2llLWltcGxlbWVudGF0aW9uLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbGlic29sdi9saWJzb2x2LzAwMDEtQWRkLWZhbGxiYWNrLWZvcGVuY29va2llLWltcGxlbWVudGF0aW9uLnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSA0ZDliNmVjMzBiNzhkMDBlYWQwYTIyZWI1ZDA0N2RjZGJhMzdlOTljIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSA0N2M2ZjFiNDMzMmE5ZTQ5MzVjNDhjY2E4MjY3ODZhNmI4ZmU2ZjU5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogPT9VVEYtOD9xP05lYWw9MjBHb21wYT0yMD0yOD1FMz04Mz04Qj1FMz04Mz1CQz1FMz04Mz1BQj1FMz04Mz1CQj89CiAgPT9VVEYtOD9xPz1FMz04Mj1CMz1FMz04Mj05OT1FMz04Mz1CMz1FMz04Mz04Rj1FMz04Mj05QT0yOT89CiAgPG5nb21wYTEzQGdtYWlsLmNvbT4KQEAgLTEzLDYgKzEzLDcgQEAKIAogVXBzdHJlYW0tU3RhdHVzOiBEZW5pZWQgW2h0dHBzOi8vZ2l0aHViLmNvbS9vcGVuU1VTRS9saWJzb2x2L3B1bGwvMTEyXQogU2lnbmVkLW9mZi1ieTogQWxleGFuZGVyIEthbmF2aW4gPGFsZXgua2FuYXZpbkBnbWFpbC5jb20+CisKIC0tLQogIGV4dC9DTWFrZUxpc3RzLnR4dCAgICAgICAgICAgICAgICAgICAgIHwgICA3ICsrCiAgZXh0L3NvbHZfeGZvcGVuLmMgICAgICAgICAgICAgICAgICAgICAgfCAgMTAgKy0tCkBAIC0yMyw3ICsyNCw3IEBACiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGV4dC9zb2x2X3hmb3Blbl9mYWxsYmFja19mb3BlbmNvb2tpZS5oCiAKIGRpZmYgLS1naXQgYS9leHQvQ01ha2VMaXN0cy50eHQgYi9leHQvQ01ha2VMaXN0cy50eHQKLWluZGV4IDU4NmVkYTguLjQ3N2EyZWYgMTAwNjQ0CitpbmRleCBiODkxN2EyLi5mYWM2YzMyIDEwMDY0NAogLS0tIGEvZXh0L0NNYWtlTGlzdHMudHh0CiArKysgYi9leHQvQ01ha2VMaXN0cy50eHQKIEBAIC00LDYgKzQsMTMgQEAgU0VUIChsaWJzb2x2ZXh0X1NSQ1MKQEAgLTQxLDExICs0MiwxMSBAQAogICAgICBTRVQgKGxpYnNvbHZleHRfU1JDUyAke2xpYnNvbHZleHRfU1JDU30KICAgICAgICAgIHBvb2xfZmlsZWNvbmZsaWN0cy5jIHJlcG9fcnBtZGIuYykKIGRpZmYgLS1naXQgYS9leHQvc29sdl94Zm9wZW4uYyBiL2V4dC9zb2x2X3hmb3Blbi5jCi1pbmRleCBiMDQyMWJmLi4zMTM0NWRkIDEwMDY0NAoraW5kZXggMmM2NGJiNi4uZWIzYTNhZCAxMDA2NDQKIC0tLSBhL2V4dC9zb2x2X3hmb3Blbi5jCiArKysgYi9leHQvc29sdl94Zm9wZW4uYwotQEAgLTEzLDYgKzEzLDEwIEBACi0gI2luY2x1ZGUgPHpsaWIuaD4KK0BAIC0xMiw2ICsxMiwxMCBAQAorICNpbmNsdWRlIDxzdHJpbmcuaD4KICAjaW5jbHVkZSA8ZmNudGwuaD4KICAKICsjaWYgIWRlZmluZWQoSEFWRV9GVU5PUEVOKSAmJiAhZGVmaW5lZChIQVZFX0ZPUEVOQ09PS0lFKQpAQCAtNTUsNyArNTYsNyBAQAogICNpbmNsdWRlICJzb2x2X3hmb3Blbi5oIgogICNpbmNsdWRlICJ1dGlsLmgiCiAgCi1AQCAtMzksNyArNDMsNyBAQCBzdGF0aWMgRklMRSAqY29va2llb3Blbih2b2lkICpjb29raWUsIGNvbnN0IGNoYXIgKm1vZGUsCitAQCAtMjEsNyArMjUsNyBAQCBzdGF0aWMgRklMRSAqY29va2llb3Blbih2b2lkICpjb29raWUsIGNvbnN0IGNoYXIgKm1vZGUsCiAgCXNzaXplX3QgKCpjd3JpdGUpKHZvaWQgKiwgY29uc3QgY2hhciAqLCBzaXplX3QpLAogIAlpbnQgKCpjY2xvc2UpKHZvaWQgKikpCiAgewpAQCAtNjQsNyArNjUsNyBAQAogICAgaWYgKCFjb29raWUpCiAgICAgIHJldHVybiAwOwogICAgcmV0dXJuIGZ1bm9wZW4oY29va2llLAotQEAgLTQ4LDcgKzUyLDcgQEAgc3RhdGljIEZJTEUgKmNvb2tpZW9wZW4odm9pZCAqY29va2llLCBjb25zdCBjaGFyICptb2RlLAorQEAgLTMwLDcgKzM0LDcgQEAgc3RhdGljIEZJTEUgKmNvb2tpZW9wZW4odm9pZCAqY29va2llLCBjb25zdCBjaGFyICptb2RlLAogICAgICAgIChmcG9zX3QgKCopKHZvaWQgKiwgZnBvc190LCBpbnQpKU5VTEwsCQkJCQkvKiBzZWVrZm4gKi8KICAgICAgICBjY2xvc2UKICAgICAgICApOwpAQCAtNzMsNyArNzQsNyBAQAogICAgY29va2llX2lvX2Z1bmN0aW9uc190IGNpbzsKICAKICAgIGlmICghY29va2llKQotQEAgLTYwLDggKzY0LDYgQEAgc3RhdGljIEZJTEUgKmNvb2tpZW9wZW4odm9pZCAqY29va2llLCBjb25zdCBjaGFyICptb2RlLAorQEAgLTQyLDggKzQ2LDYgQEAgc3RhdGljIEZJTEUgKmNvb2tpZW9wZW4odm9pZCAqY29va2llLCBjb25zdCBjaGFyICptb2RlLAogICAgICBjaW8ud3JpdGUgPSBjd3JpdGU7CiAgICBjaW8uY2xvc2UgPSBjY2xvc2U7CiAgICByZXR1cm4gIGZvcGVuY29va2llKGNvb2tpZSwgKm1vZGUgPT0gJ3cnID8gInciIDogInIiLCBjaW8pOwpAQCAtMjQ2LDUgKzI0Nyw1IEBACiArCiArI2VuZGlmCiAtLSAKLTIuMTEuMAorMi40LjAKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9saWJzb2x2L2xpYnNvbHYvMDAwMS1yZXBvX3JwbWRiLmMtaW5jcmVhc2UtTUFYX0hEUl9DTlQtYW5kLU1BWF9IRFJfRFNJWkUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xpYnNvbHYvbGlic29sdi8wMDAxLXJlcG9fcnBtZGIuYy1pbmNyZWFzZS1NQVhfSERSX0NOVC1hbmQtTUFYX0hEUl9EU0laRS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGE0ZTVjYi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xpYnNvbHYvbGlic29sdi8wMDAxLXJlcG9fcnBtZGIuYy1pbmNyZWFzZS1NQVhfSERSX0NOVC1hbmQtTUFYX0hEUl9EU0laRS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLUZyb20gMWM0YzkzNWNiNzNhYzFjY2I5NjkzZGYxYTUxYmEyMThhMjJlOGNhOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IE1pbmcgTGl1IDxsaXUubWluZzUwQGdtYWlsLmNvbT4KLURhdGU6IFNhdCwgMzAgU2VwIDIwMTcgMTE6MTU6MTYgKzA4MDAKLVN1YmplY3Q6IFtQQVRDSF0gcmVwb19ycG1kYi5jOiBpbmNyZWFzZSBNQVhfSERSX0NOVCBhbmQgTUFYX0hEUl9EU0laRQotCi1VcHN0cmVhbS1TdGF0dXM6IFN1Ym1pdHRlZCBbaHR0cHM6Ly9naXRodWIuY29tL29wZW5TVVNFL2xpYnNvbHYvcHVsbC8yMzBdCi0KLVdlIGVuY291bnRlcmVkICdjb3JydXB0IHJwbScgaXNzdWVzIHdoZW4gaW5zdGFsbGluZyBleHRyZW1lIGJpZyBSUE0KLXBhY2thZ2VzIGxpa2UgdGhlIGtlcm5lbC1kZXZzcmMgcGFja2FnZSBvZiBZb2N0byBwcm9qZWN0LgotCi1JdCBjYW4gYmUgZml4ZWQgYnkgaW5jcmVhc2luZyBNQVhfSERSX0NOVCBhbmQgTUFYX0hEUl9EU0laRSBwZXIgdGVzdC4KLQotU2lnbmVkLW9mZi1ieTogTWluZyBMaXUgPGxpdS5taW5nNTBAZ21haWwuY29tPgotLS0tCi0gZXh0L3JlcG9fcnBtZGIuYyB8IDQgKystLQotIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9leHQvcmVwb19ycG1kYi5jIGIvZXh0L3JlcG9fcnBtZGIuYwotaW5kZXggYzcwMDBhOS4uNzAwMDgzNSAxMDA2NDQKLS0tLSBhL2V4dC9yZXBvX3JwbWRiLmMKLSsrKyBiL2V4dC9yZXBvX3JwbWRiLmMKLUBAIC0xNzAsOCArMTcwLDggQEAKLSAjZGVmaW5lIE1BWF9TSUdfQ05UCQkweDEwMDAwMAotICNkZWZpbmUgTUFYX1NJR19EU0laRQkJMHgxMDAwMDAKLSAKLS0jZGVmaW5lIE1BWF9IRFJfQ05UCQkweDEwMDAwMAotLSNkZWZpbmUgTUFYX0hEUl9EU0laRQkJMHgyMDAwMDAwCi0rI2RlZmluZSBNQVhfSERSX0NOVAkJMHgyMDAwMDAKLSsjZGVmaW5lIE1BWF9IRFJfRFNJWkUJCTB4NDAwMDAwMAotIAotIHR5cGVkZWYgc3RydWN0IHJwbWhlYWQgewotICAgaW50IGNudDsKLS0tIAotMi43LjQKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9saWJzb2x2L2xpYnNvbHYvMDAwMi1GaXhlcy10by1pbnRlcm5hbC1mb3BlbmNvb2tpZS1pbXBsZW1lbnRhdGlvbi5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbGlic29sdi9saWJzb2x2LzAwMDItRml4ZXMtdG8taW50ZXJuYWwtZm9wZW5jb29raWUtaW1wbGVtZW50YXRpb24ucGF0Y2gKaW5kZXggZWZiNGUzYS4uOTNiOGNjOSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9saWJzb2x2L2xpYnNvbHYvMDAwMi1GaXhlcy10by1pbnRlcm5hbC1mb3BlbmNvb2tpZS1pbXBsZW1lbnRhdGlvbi5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xpYnNvbHYvbGlic29sdi8wMDAyLUZpeGVzLXRvLWludGVybmFsLWZvcGVuY29va2llLWltcGxlbWVudGF0aW9uLnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSA5OWIxMGNkZjZhMGY4YTI0ZTE2NzBjMTgxM2IxZDk1NjNhZTNmNWI1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSA4NGUxMmJmN2VjZTQ5MDczYzU1OWRmZDU4MDA1MTMyYTYwOTlhOTY0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogPT9VVEYtOD9xP05lYWw9MjBHb21wYT0yMD0yOD1FMz04Mz04Qj1FMz04Mz1CQz1FMz04Mz1BQj1FMz04Mz1CQj89CiAgPT9VVEYtOD9xPz1FMz04Mj1CMz1FMz04Mj05OT1FMz04Mz1CMz1FMz04Mz04Rj1FMz04Mj05QT0yOT89CiAgPG5nb21wYTEzQGdtYWlsLmNvbT4KQEAgLTExLDYgKzExLDcgQEAKIAogVXBzdHJlYW0tU3RhdHVzOiBEZW5pZWQgW2h0dHBzOi8vZ2l0aHViLmNvbS9vcGVuU1VTRS9saWJzb2x2L3B1bGwvMTEyXQogU2lnbmVkLW9mZi1ieTogQWxleGFuZGVyIEthbmF2aW4gPGFsZXgua2FuYXZpbkBnbWFpbC5jb20+CisKIC0tLQogIGV4dC9zb2x2X3hmb3Blbl9mYWxsYmFja19mb3BlbmNvb2tpZS5jIHwgMTkgKysrKysrKysrKy0tLS0tLS0tLQogIGV4dC9zb2x2X3hmb3Blbl9mYWxsYmFja19mb3BlbmNvb2tpZS5oIHwgMTAgKysrKystLS0tLQpAQCAtMTAwLDUgKzEwMSw1IEBACiAgCiAgI2lmbmRlZiBTT0xWX1hGT1BFTl9GQUxMQkFDS19GT1BFTkNPT0tJRV9ICiAtLSAKLTIuMTEuMAorMi40LjAKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9saWJzb2x2L2xpYnNvbHZfMC42LjI4LmJiIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9saWJzb2x2L2xpYnNvbHZfMC42LjMzLmJiCnNpbWlsYXJpdHkgaW5kZXggODIlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbGlic29sdi9saWJzb2x2XzAuNi4yOC5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9saWJzb2x2L2xpYnNvbHZfMC42LjMzLmJiCmluZGV4IDZjOGY3ZmMuLjA0MDFjZWQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbGlic29sdi9saWJzb2x2XzAuNi4yOC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xpYnNvbHYvbGlic29sdl8wLjYuMzMuYmIKQEAgLTgsMTMgKzgsMTIgQEAKIERFUEVORFMgPSAiZXhwYXQgemxpYiBycG0iCiAKIFNSQ19VUkkgPSAiZ2l0Oi8vZ2l0aHViLmNvbS9vcGVuU1VTRS9saWJzb2x2LmdpdCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLXJlcG9fcnBtZGIuYy1pbmNyZWFzZS1NQVhfSERSX0NOVC1hbmQtTUFYX0hEUl9EU0laRS5wYXRjaCBcCiAgICAgICAgICAgIgogU1JDX1VSSV9hcHBlbmRfbGliYy1tdXNsID0gIiBmaWxlOi8vMDAwMS1BZGQtZmFsbGJhY2stZm9wZW5jb29raWUtaW1wbGVtZW50YXRpb24ucGF0Y2ggXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlOi8vMDAwMi1GaXhlcy10by1pbnRlcm5hbC1mb3BlbmNvb2tpZS1pbXBsZW1lbnRhdGlvbi5wYXRjaCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiCiAKLVNSQ1JFViA9ICJiOGE5ZGRkODhlYjRlMGFiMzUxZWI1NWE1MzE4NmI1ZGM1YWMwODI1IgorU1JDUkVWID0gIjY5ZjE4MDM5NzhiYTdhNDZhNTc5MjhmYTRiZTY0MzA3OTI0MTllNGUiCiBVUFNUUkVBTV9DSEVDS19HSVRUQUdSRUdFWCA9ICIoP1A8cHZlcj5cZCsoXC5cZCspKykiCiAKIFMgPSAiJHtXT1JLRElSfS9naXQiCkBAIC0yNSw3ICsyNCw2IEBACiAKIFBBQ0tBR0VTID0rICIke1BOfS10b29scyAke1BOfWV4dCIKIAotRklMRVNfJHtQTn0tZGV2ICs9ICIke2RhdGFkaXJ9L2NtYWtlL01vZHVsZXMvRmluZExpYlNvbHYuY21ha2UiCiBGSUxFU18ke1BOfS10b29scyA9ICIke2JpbmRpcn0vKiIKIEZJTEVTXyR7UE59ZXh0ID0gIiR7bGliZGlyfS8ke1BOfWV4dC5zby4qIgogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xpYnVzZXIvbGlidXNlcl8wLjYyLmJiIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9saWJ1c2VyL2xpYnVzZXJfMC42Mi5iYgppbmRleCAxNzY1MzQ2Li43ZWM1NGViIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xpYnVzZXIvbGlidXNlcl8wLjYyLmJiCisrKyBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbGlidXNlci9saWJ1c2VyXzAuNjIuYmIKQEAgLTIyLDYgKzIyLDkgQEAKIAogREVQRU5EUyA9ICJwb3B0IGxpYnBhbSBnbGliLTIuMCBweXRob24zIgogCitpbmhlcml0IGRpc3Ryb19mZWF0dXJlc19jaGVjaworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gInBhbSIKKwogaW5oZXJpdCBhdXRvdG9vbHMgZ2V0dGV4dCBweXRob24zbmF0aXZlIHB5dGhvbjMtZGlyIHBrZ2NvbmZpZyBndGstZG9jCiAKIEVYVFJBX09FTUFLRSA9ICJQWVRIT05fQ1BQRkxBR1M9LUkke1NUQUdJTkdfSU5DRElSfS8ke1BZVEhPTl9ESVJ9JHtQWVRIT05fQUJJfSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbGlnaHR0cGQvbGlnaHR0cGQvMDAwMS1Vc2UtcGtnLWNvbmZpZy1mb3ItcGNyZS1kZXBlbmRlbmN5LWluc3RlYWQtb2YtY29uZmlnLnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9saWdodHRwZC9saWdodHRwZC8wMDAxLVVzZS1wa2ctY29uZmlnLWZvci1wY3JlLWRlcGVuZGVuY3ktaW5zdGVhZC1vZi1jb25maWcucGF0Y2gKaW5kZXggYjhjN2YzNy4uZjE3YmRjZSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9saWdodHRwZC9saWdodHRwZC8wMDAxLVVzZS1wa2ctY29uZmlnLWZvci1wY3JlLWRlcGVuZGVuY3ktaW5zdGVhZC1vZi1jb25maWcucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9saWdodHRwZC9saWdodHRwZC8wMDAxLVVzZS1wa2ctY29uZmlnLWZvci1wY3JlLWRlcGVuZGVuY3ktaW5zdGVhZC1vZi1jb25maWcucGF0Y2gKQEAgLTEsNCArMSw0IEBACi1Gcm9tIGU3YThjOTI1YjkzMTZhNzJiZGM4ZjMyNzg5ZmZlNTZmZGE1YzQ3ODggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIDIyYWZjNWQ5YWFhMjE1YzNjODdiYTIxYzc3ZDQ3ZGE0NGFiM2IxMTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBBbGV4YW5kZXIgS2FuYXZpbiA8YWxleC5rYW5hdmluQGdtYWlsLmNvbT4KIERhdGU6IEZyaSwgMjYgQXVnIDIwMTYgMTg6MjA6MzIgKzAzMDAKIFN1YmplY3Q6IFtQQVRDSF0gVXNlIHBrZy1jb25maWcgZm9yIHBjcmUgZGVwZW5kZW5jeSBpbnN0ZWFkIG9mIC1jb25maWcgc2NyaXB0LgpAQCAtNywzMSArNywzNiBAQAogVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCiBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kZXIgS2FuYXZpbiA8YWxleC5rYW5hdmluQGdtYWlsLmNvbT4KIC0tLQotIGNvbmZpZ3VyZS5hYyB8IDExICsrKysrKy0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKKyBjb25maWd1cmUuYWMgfCAxNiArKysrKysrKysrKystLS0tCisgMSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCiAKIGRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKLWluZGV4IDFkMTcyYTEuLmE5MjM2ZGEgMTAwNjQ0CitpbmRleCA1MzgzY2VjLi5jMjlhOTAyIDEwMDY0NAogLS0tIGEvY29uZmlndXJlLmFjCiArKysgYi9jb25maWd1cmUuYWMKLUBAIC0zODAsMTEgKzM4MCwxMiBAQCBpZiB0ZXN0ICIkV0lUSF9QQ1JFIiAhPSAibm8iOyB0aGVuCi0gCQkJUENSRV9MSUI9Ii1MJFdJVEhfUENSRS9saWIgLWxwY3JlIgotIAkJCUNQUEZMQUdTPSIkQ1BQRkxBR1MgLUkkV0lUSF9QQ1JFL2luY2x1ZGUiCi0gCQllbHNlCi0tCQkJQUNfUEFUSF9QUk9HKFBDUkVDT05GSUcsIHBjcmUtY29uZmlnKQotLQkJCWlmIHRlc3QgeCIkUENSRUNPTkZJRyIgIT0geDsgdGhlbgotLQkJCQlQQ1JFX0xJQj1gJFBDUkVDT05GSUcgLS1saWJzYAotLQkJCQlDUFBGTEFHUz0iJENQUEZMQUdTIGAkUENSRUNPTkZJRyAtLWNmbGFnc2AiCi0tCQkJZmkKLSsJCQlQS0dfQ0hFQ0tfTU9EVUxFUyhQQ1JFUEtHLCBbbGlicGNyZV0sIFsKK0BAIC02NTEsMTAgKzY1MSwxOCBAQCBBQ19BUkdfV0lUSChbcGNyZV0sCisgKQorIEFDX01TR19SRVNVTFQoWyRXSVRIX1BDUkVdKQorIAorLWlmIHRlc3QgIiRXSVRIX1BDUkUiICE9IG5vOyB0aGVuCistICBpZiB0ZXN0ICIkV0lUSF9QQ1JFIiAhPSB5ZXM7IHRoZW4KKy0gICAgUENSRV9MSUI9Ii1MJFdJVEhfUENSRS9saWIgLWxwY3JlIgorLSAgICBDUFBGTEFHUz0iJENQUEZMQUdTIC1JJFdJVEhfUENSRS9pbmNsdWRlIgorK2lmIHRlc3QgIiRXSVRIX1BDUkUiICE9ICJubyI7IHRoZW4KKysgIFBLR19DSEVDS19NT0RVTEVTKFBDUkVQS0csIFtsaWJwY3JlXSwgWwogKwkJCQlQQ1JFX0xJQj0ke1BDUkVQS0dfTElCU30KICsJCQkJQ1BQRkxBR1M9IiRDUFBGTEFHUyAke1BDUkVQS0dfQ0ZMQUdTfSIKLSsJCQldLCBbCisrICBdLCBbCiArCQkJCUFDX01TR19FUlJPUihbcGNyZSBwa2djb25maWcgbm90IGZvdW5kLCBpbnN0YWxsIHRoZSBwY3JlLWRldmVsIHBhY2thZ2Ugb3IgYnVpbGQgd2l0aCAtLXdpdGhvdXQtcGNyZV0pCi0rCQkJXSkKLSAJCWZpCi0gCi0gICBpZiB0ZXN0IHgiJFBDUkVfTElCIiAhPSB4OyB0aGVuCisrICBdKQorKworKyAgaWYgdGVzdCB4IiRQQ1JFX0xJQiIgIT0geDsgdGhlbgorKyAgICBBQ19ERUZJTkUoW0hBVkVfTElCUENSRV0sIFsxXSwgW2xpYnBjcmVdKQorKyAgICBBQ19ERUZJTkUoW0hBVkVfUENSRV9IXSwgWzFdLCBbcGNyZS5oXSkKKysgICAgQUNfU1VCU1QoUENSRV9MSUIpCisgICBlbHNlCisgICAgIEFDX1BBVEhfUFJPRyhbUENSRUNPTkZJR10sIFtwY3JlLWNvbmZpZ10pCisgICAgIGlmIHRlc3QgLW4gIiRQQ1JFQ09ORklHIjsgdGhlbgogLS0gCi0yLjkuMworMi4xNS4wCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbGlnaHR0cGQvbGlnaHR0cGRfMS40LjQ1LmJiIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9saWdodHRwZC9saWdodHRwZF8xLjQuNDguYmIKc2ltaWxhcml0eSBpbmRleCA5NSUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9saWdodHRwZC9saWdodHRwZF8xLjQuNDUuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbGlnaHR0cGQvbGlnaHR0cGRfMS40LjQ4LmJiCmluZGV4IDA4ZGRhMzMuLjNjNDQ0NGMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbGlnaHR0cGQvbGlnaHR0cGRfMS40LjQ1LmJiCisrKyBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbGlnaHR0cGQvbGlnaHR0cGRfMS40LjQ4LmJiCkBAIC0yMCw4ICsyMCw4IEBACiAgICAgICAgIGZpbGU6Ly8wMDAxLVVzZS1wa2ctY29uZmlnLWZvci1wY3JlLWRlcGVuZGVuY3ktaW5zdGVhZC1vZi1jb25maWcucGF0Y2ggXAogICAgICAgICAiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICJhMTI4ZTFlZGE3Njg5OWNlM2ZkMTE1ZWZhZTVmZTYzMSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIxYzk3MjI1ZGVlYTMzZWVmYmE2ZDQxNThjMmNlZjI3OTEzZDQ3NTUzMjYzNTE2YmJlOWQyZTI3NjBmYzQzYTNmIgorU1JDX1VSSVttZDVzdW1dID0gIjFlM2E5ZWI1MDc4ZjQ4MWUzYThhMWQwYWFhYzhjM2M4IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjBmOGFkNWFhYzc1MjlkN2I5NDhiOWQ3ZThjZDBiNGE5ZTE3NzMwOWQ4NWQ2YmY2NTE2ZTI4ZTZlNDBkNzRmMzYiCiAKIFBBQ0tBR0VDT05GSUcgPz89ICJvcGVuc3NsIHBjcmUgemxpYiBcCiAgICAgJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAnaXB2NicsIGQpfSBcCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xvZ3JvdGF0ZS9sb2dyb3RhdGVfMy4xMi4zLmJiIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sb2dyb3RhdGUvbG9ncm90YXRlXzMuMTMuMC5iYgpzaW1pbGFyaXR5IGluZGV4IDk1JQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xvZ3JvdGF0ZS9sb2dyb3RhdGVfMy4xMi4zLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xvZ3JvdGF0ZS9sb2dyb3RhdGVfMy4xMy4wLmJiCmluZGV4IDYyMGIyMDguLjk5MGNmOTEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbG9ncm90YXRlL2xvZ3JvdGF0ZV8zLjEyLjMuYmIKKysrIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sb2dyb3RhdGUvbG9ncm90YXRlXzMuMTMuMC5iYgpAQCAtMjUsOCArMjUsOCBAQAogICAgICAgICAgICAgZmlsZTovL2Rpc2FibGUtY2hlY2stZGlmZmVyZW50LWZpbGVzeXN0ZW1zLnBhdGNoIFwKICAgICAgICAgICAgICIKIAotU1JDX1VSSVttZDVzdW1dID0gImE1NjBjNTdmYWM4N2M0NWIyZmMxNzQwNmNkZjc5Mjg4IgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjJlNmE0MDFjYWM5MDI0ZGIyMjg4Mjk3ZTNiZTFhOGFiNjBlNzQwMWJhOGU5MTIyNTIxOGFhZjRhMjdlODJhMDciCitTUkNfVVJJW21kNXN1bV0gPSAiNzhlZjI0ZDZmZGRjYzRkZjhlNDEyZGQ3NWM1NTFiNGMiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMzIyMmNhMDMyZjk5YmU4ZDdhNGE4YzZhZDY5ZjNkY2M0OWI5NTExYmZlMzg0YmQ1YTI3MWViY2Q5YmQzZTUyYyIKIAogUEFDS0FHRUNPTkZJRyA/PSAiJHtAYmIudXRpbHMuZmlsdGVyKCdESVNUUk9fRkVBVFVSRVMnLCAnYWNsIHNlbGludXgnLCBkKX0iCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHNiL2xzYl80LjEuYmIgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xzYi9sc2JfNS4wLmJiCnNpbWlsYXJpdHkgaW5kZXggOTYlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHNiL2xzYl80LjEuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHNiL2xzYl81LjAuYmIKaW5kZXggMDc4NTYxMC4uZGY0ODEyZSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sc2IvbHNiXzQuMS5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xzYi9sc2JfNS4wLmJiCkBAIC0yLDcgKzIsNiBAQAogU0VDVElPTiA9ICJjb25zb2xlL3V0aWxzIgogSE9NRVBBR0UgPSAiaHR0cDovL3ByZG93bmxvYWRzLnNvdXJjZWZvcmdlLm5ldC9sc2IiCiBMSUNFTlNFID0gIkdQTHYyKyIKLVBSID0gInIyIgogCiBMU0JfQ09SRSA9ICJsc2ItY29yZS0ke1RBUkdFVF9BUkNIfSIKIExTQl9DT1JFX3g4NiA9ICJsc2ItY29yZS1pYTMyIgpAQCAtNDMsMTIgKzQyLDEyIEBACiAKIAlta2RpciAtcCAke0R9JHtiYXNlX2xpYmRpcn0KIAlta2RpciAtcCAke0R9JHtzeXNjb25mZGlyfS9sc2ItcmVsZWFzZS5kCi0JcHJpbnRmICJMU0JfVkVSU0lPTj1cImNvcmUtNC4xLW5vYXJjaDoiID4gJHtEfSR7c3lzY29uZmRpcn0vbHNiLXJlbGVhc2UKKwlwcmludGYgIkxTQl9WRVJTSU9OPVwiY29yZS01LjAtbm9hcmNoOiIgPiAke0R9JHtzeXNjb25mZGlyfS9sc2ItcmVsZWFzZQogCiAJaWYgWyAiJHtUQVJHRVRfQVJDSH0iID0gImk1ODYiIF0gfHwgWyAiJHtUQVJHRVRfQVJDSH0iID0gImk2ODYiIF07IHRoZW4KLQkJcHJpbnRmICJjb3JlLTQuMS1pYTMyIiA+PiAgJHtEfSR7c3lzY29uZmRpcn0vbHNiLXJlbGVhc2UKKwkJcHJpbnRmICJjb3JlLTUuMC1pYTMyIiA+PiAgJHtEfSR7c3lzY29uZmRpcn0vbHNiLXJlbGVhc2UKIAllbHNlCi0JCXByaW50ZiAiY29yZS00LjEtJHtUQVJHRVRfQVJDSH0iID4+ICAke0R9JHtzeXNjb25mZGlyfS9sc2ItcmVsZWFzZQorCQlwcmludGYgImNvcmUtNS4wLSR7VEFSR0VUX0FSQ0h9IiA+PiAgJHtEfSR7c3lzY29uZmRpcn0vbHNiLXJlbGVhc2UKIAlmaQogCWVjaG8gIlwiIiA+PiAke0R9JHtzeXNjb25mZGlyfS9sc2ItcmVsZWFzZQogCWVjaG8gIkRJU1RSSUJfSUQ9JHtESVNUUk99IiA+PiAke0R9JHtzeXNjb25mZGlyfS9sc2ItcmVsZWFzZQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sc2IvbHNiaW5pdHNjcmlwdHMvMDAwMS1mdW5jdGlvbnMtYXZvaWQtZXhpdC0xLXdoaWNoLWNhdXNlcy1pbml0LXNjcmlwdHMtdG8tLnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sc2IvbHNiaW5pdHNjcmlwdHMvMDAwMS1mdW5jdGlvbnMtYXZvaWQtZXhpdC0xLXdoaWNoLWNhdXNlcy1pbml0LXNjcmlwdHMtdG8tLnBhdGNoCmluZGV4IDE3YzkwMDIuLmMwMDc2NDUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHNiL2xzYmluaXRzY3JpcHRzLzAwMDEtZnVuY3Rpb25zLWF2b2lkLWV4aXQtMS13aGljaC1jYXVzZXMtaW5pdC1zY3JpcHRzLXRvLS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xzYi9sc2Jpbml0c2NyaXB0cy8wMDAxLWZ1bmN0aW9ucy1hdm9pZC1leGl0LTEtd2hpY2gtY2F1c2VzLWluaXQtc2NyaXB0cy10by0ucGF0Y2gKQEAgLTcsMTggKzcsMTUgQEAKICByYy5kL2luaXQuZC9mdW5jdGlvbnMgfCAyICstCiAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCiAKLWRpZmYgLS1naXQgYS9yYy5kL2luaXQuZC9mdW5jdGlvbnMgYi9yYy5kL2luaXQuZC9mdW5jdGlvbnMKLWluZGV4IDY4NTAwNDYuLjExMjIzZjcgMTAwNjQ0Ci0tLS0gYS9yYy5kL2luaXQuZC9mdW5jdGlvbnMKLSsrKyBiL3JjLmQvaW5pdC5kL2Z1bmN0aW9ucwotQEAgLTU5Nyw2ICs1OTcsNiBAQCBpZiBbICIkX3VzZV9zeXN0ZW1jdGwiID0gIjEiIF07IHRoZW4KLSAJZmkKK0luZGV4OiBpbml0c2NyaXB0cy05LjcyL3JjLmQvaW5pdC5kL2Z1bmN0aW9ucworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGluaXRzY3JpcHRzLTkuNzIub3JpZy9yYy5kL2luaXQuZC9mdW5jdGlvbnMKKysrKyBpbml0c2NyaXB0cy05LjcyL3JjLmQvaW5pdC5kL2Z1bmN0aW9ucworQEAgLTY4Niw2ICs2ODYsNiBAQCBpZiBbICIkX3VzZV9zeXN0ZW1jdGwiID0gIjEiIF07IHRoZW4KKyAgICAgZmkKICBmaQogIAogLXN0cnN0ciAiJChjYXQgL3Byb2MvY21kbGluZSkiICJyYy5kZWJ1ZyIgJiYgc2V0IC14CiArc3Ryc3RyICIkKGNhdCAvcHJvYy9jbWRsaW5lKSIgInJjLmRlYnVnIiAmJiBzZXQgLXggfHwgdHJ1ZQogIHJldHVybiAwCi0KLS0tIAotMi4xLjAKLQorIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sc2IvbHNiaW5pdHNjcmlwdHMvZnVuY3Rpb25zLnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sc2IvbHNiaW5pdHNjcmlwdHMvZnVuY3Rpb25zLnBhdGNoCmluZGV4IDljNThkOTAuLmU5MTJkYWEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHNiL2xzYmluaXRzY3JpcHRzL2Z1bmN0aW9ucy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xzYi9sc2Jpbml0c2NyaXB0cy9mdW5jdGlvbnMucGF0Y2gKQEAgLTEsNyArMSw3IEBACi1Gcm9tIDU3NDY4YzVmNGUzNjRiZGFkNTU2NjA0ZGNhMDkwNDZlMWFmY2E5MjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIGU0NmIwNTYyODJjODQyMGYwOTZkNWMzNGQ3OGMwMGY4MTY3ODg3ODQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBGYW4gWGluIDxmYW4ueGluQGpwLmZ1aml0c3UuY29tPgogRGF0ZTogTW9uLCA1IEp1biAyMDE3IDE2OjI2OjQ3ICswOTAwCi1TdWJqZWN0OiBbUEFUQ0hdIFVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbY29uZmlndXJhdGlvbl0KK1N1YmplY3Q6IFtQQVRDSCAxLzJdIFVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbY29uZmlndXJhdGlvbl0KIAogU2lnbmVkLW9mZi1ieTogWGlhb2ZlbmcgWWFuIDx4aWFvZmVuZy55YW5Ad2luZHJpdmVyLmNvbT4KIFNpZ25lZC1vZmYtYnk6IFNhdWwgV29sZCA8c2d3QGxpbnV4LmludGVsLmNvbT4KQEAgLTEwLDIzICsxMCwyNCBAQAogCiBTaWduZWQtb2ZmLWJ5OiBGYW4gWGluIDxmYW4ueGluQGpwLmZ1aml0c3UuY29tPgogVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKIC0tLQotIGluaXRzY3JpcHRzLTkuNzIvcmMuZC9pbml0LmQvZnVuY3Rpb25zIHwgMiArLQorIHJjLmQvaW5pdC5kL2Z1bmN0aW9ucyB8IDIgKy0KICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKIAotZGlmZiAtLWdpdCBhL2luaXRzY3JpcHRzLTkuNzIvcmMuZC9pbml0LmQvZnVuY3Rpb25zIGIvaW5pdHNjcmlwdHMtOS43Mi9yYy5kL2luaXQuZC9mdW5jdGlvbnMKLWluZGV4IDBmNjI3ZjEuLmE2YWEwOTIgMTAwNjQ0Ci0tLS0gYS9pbml0c2NyaXB0cy05LjcyL3JjLmQvaW5pdC5kL2Z1bmN0aW9ucwotKysrIGIvaW5pdHNjcmlwdHMtOS43Mi9yYy5kL2luaXQuZC9mdW5jdGlvbnMKK2RpZmYgLS1naXQgYS9yYy5kL2luaXQuZC9mdW5jdGlvbnMgYi9yYy5kL2luaXQuZC9mdW5jdGlvbnMKK2luZGV4IDJlM2RhOTY0Li4xYTIwNGRlYyAxMDA2NDQKKy0tLSBhL3JjLmQvaW5pdC5kL2Z1bmN0aW9ucworKysrIGIvcmMuZC9pbml0LmQvZnVuY3Rpb25zCiBAQCAtNTksNyArNTksNyBAQCBzeXN0ZW1jdGxfcmVkaXJlY3QgKCkgewogIFsgLXogIiR7Q09MVU1OUzotfSIgXSAmJiBDT0xVTU5TPTgwCiAgCiAgaWYgWyAteiAiJHtDT05TT0xFVFlQRTotfSIgXTsgdGhlbgotLSAgICBpZiBbIC1jICIvZGV2L3N0ZGVyciIgLWEgLXIgIi9kZXYvc3RkZXJyIiBdOyB0aGVuCi0rICAgIGlmIFsgLWMgIi9kZXYvc3RkZXJyIiAtYSAtciAiL2Rldi9zdGRlcnIiIC1hIC1lIC9zYmluL2NvbnNvbGV0eXBlIF07IHRoZW4KKy0gICAgaWYgWyAtYyAiL2Rldi9zdGRlcnIiIF0gJiYgWyAtciAiL2Rldi9zdGRlcnIiIF07IHRoZW4KKysgICAgaWYgWyAtYyAiL2Rldi9zdGRlcnIiIF0gJiYgWyAtciAiL2Rldi9zdGRlcnIiIF0gJiYgWyAtZSAvc2Jpbi9jb25zb2xldHlwZSBdOyB0aGVuCiAgICAgICAgICBDT05TT0xFVFlQRT0iJCgvc2Jpbi9jb25zb2xldHlwZSA8IC9kZXYvc3RkZXJyIDI+L2Rldi9udWxsKSIKICAgICAgZWxzZQogICAgICAgICAgQ09OU09MRVRZUEU9InNlcmlhbCIKIC0tIAotMS45LjEKKzIuMTUuMQogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xzYi9sc2Jpbml0c2NyaXB0c185LjcyLmJiIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sc2IvbHNiaW5pdHNjcmlwdHNfOS43OS5iYgpzaW1pbGFyaXR5IGluZGV4IDczJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xzYi9sc2Jpbml0c2NyaXB0c185LjcyLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xzYi9sc2Jpbml0c2NyaXB0c185Ljc5LmJiCmluZGV4IDJkNzRhNmYuLjQ2ZWRlZWQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHNiL2xzYmluaXRzY3JpcHRzXzkuNzIuYmIKKysrIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sc2IvbHNiaW5pdHNjcmlwdHNfOS43OS5iYgpAQCAtMTAsMTEgKzEwLDEzIEBACiAKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWViZjRlOGI0OTc4MGFiMTg3ZDUxYmQyNmFhYTAyMmM2IgogCi1TPSIke1dPUktESVJ9L2luaXRzY3JpcHRzLSR7UFZ9IgotU1JDX1VSSSA9ICJodHRwOi8vcGtncy5mZWRvcmFwcm9qZWN0Lm9yZy9yZXBvL3BrZ3MvaW5pdHNjcmlwdHMvaW5pdHNjcmlwdHMtJHtQVn0udGFyLmd6L3NoYTUxMi9iNmVkMzhmOTU3NmU5MjI3YzJlY2YwNDdlMmQ2MGUxZTg3MmY0MGQ1MWQxMzg2MWIwYzkxZGRkYjI4MmYxMGY3ZTZiNzk3MDZhNGQxNDM1ZDdhNTdhMTRhMGI3M2ExYjcxNTQxY2ZlNDRjMDBlOGUwM2VmOTZiMDhkZTE5ZWMzMi9pbml0c2NyaXB0cy0ke1BWfS50YXIuZ3ogXAotICAgICAgICAgICBmaWxlOi8vZnVuY3Rpb25zLnBhdGNoO3N0cmlwbGV2ZWw9MiBcCitTID0gIiR7V09SS0RJUn0vZ2l0IgorU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL2ZlZG9yYS1zeXN2L2luaXRzY3JpcHRzIFwKKyAgICAgICAgICAgZmlsZTovL2Z1bmN0aW9ucy5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDAxLWZ1bmN0aW9ucy1hdm9pZC1leGl0LTEtd2hpY2gtY2F1c2VzLWluaXQtc2NyaXB0cy10by0ucGF0Y2ggXAogICAgICAgICAgICIgCitTUkNSRVYgPSAiYTUxYzFiNGY3ZGNmNTViNTY4YjJlZTRjMmIxODA3ODg0OTk0MzQ2OSIKK1VQU1RSRUFNX0NIRUNLX0dJVFRBR1JFR0VYID0gIl4oP1A8cHZlcj5cZCsoXC5cZCspKykiCiAKIFNSQ19VUklbbWQ1c3VtXSA9ICJkNmM3OThmNDBkY2ViMTE3ZTEyMTI2ZDk0Y2IyNWE5YSIKIFNSQ19VUklbc2hhMjU2c3VtXSA9ICIxNzkzNjc3YmRkMWY3ZWU0Y2IwMDg3OGNlNDMzNDYxOTYzNzRmODQ4YTRjOGU0NTU5ZTA4NjA0MGZjNzQ4N2RiIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sc2IvbHNidGVzdC9MU0JfVGVzdC5zaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHNiL2xzYnRlc3QvTFNCX1Rlc3Quc2gKaW5kZXggMGViMjc5My4uMDczZTI0NyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sc2IvbHNidGVzdC9MU0JfVGVzdC5zaAorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xzYi9sc2J0ZXN0L0xTQl9UZXN0LnNoCkBAIC02MCw3ICs2MCw3IEBACiAKIFBBQ0tBR0VTX0RJUj0iL3Zhci9vcHQvbHNiL3Rlc3QvbWFuYWdlci9wYWNrYWdlcy9mdHAubGludXhmb3VuZGF0aW9uLm9yZy9wdWIvbHNiIgogCi1CQVNFX1BBQ0tBR0VTX0RJUj0iJHtQQUNLQUdFU19ESVJ9L2Jhc2UvJHtMU0JfUkVMRUFTRX0vYmluYXJ5IgorQkFTRV9QQUNLQUdFU19ESVI9IiR7UEFDS0FHRVNfRElSfS9iYXNlL3JlbGVhc2VkLWFsbC9iaW5hcnkiCiBSVU5USU1FX0JBU0VfUEFDS0FHRVNfRElSPSIke1BBQ0tBR0VTX0RJUn0vdGVzdF9zdWl0ZXMvcmVsZWFzZWQtYWxsL2JpbmFyeS9ydW50aW1lIgogUlVOVElNRV9QQUNLQUdFU19ESVI9IiR7UEFDS0FHRVNfRElSfS90ZXN0X3N1aXRlcy8ke0xTQl9SRUxFQVNFfS9iaW5hcnkvcnVudGltZSIKIEFQUF9QQUNLQUdFU19ESVI9IiR7UEFDS0FHRVNfRElSfS9hcHAtYmF0dGVyeS8ke0xTQl9SRUxFQVNFfS8ke0xTQl9BUkNIfSIKQEAgLTk4LDcgKzk4LDcgQEAKIGZpCiAKICMgT2ZmaWNpYWwgZG93bmxvYWQgc2VydmVyIGxpc3QuIFlvdSBjYW4gcmVwbGFjZSB0aGVtIHdpdGggeW91ciBvd24gc2VydmVyLgotU0VSVkVSX0lQQUREUj0iMTQwLjIxMS4xNjkuMjMiCitTRVJWRVJfSVBBRERSPSIxNDAuMjExLjE2OS4yOCIKIFNFUlZFUl9OQU1FPSJmdHAubGludXhmb3VuZGF0aW9uLm9yZyIKIAogaWYgISBgZ3JlcCAtRiAtcSAiJHtTRVJWRVJfTkFNRX0iIC9ldGMvaG9zdHNgOyB0aGVuCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xzYi9sc2J0ZXN0L3BhY2thZ2VzX2xpc3QgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xzYi9sc2J0ZXN0L3BhY2thZ2VzX2xpc3QKaW5kZXggOTU5ZjkzMS4uMWE2YzExNiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sc2IvbHNidGVzdC9wYWNrYWdlc19saXN0CisrKyBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHNiL2xzYnRlc3QvcGFja2FnZXNfbGlzdApAQCAtMSw3ICsxLDcgQEAKIExTQl9SRUxFQVNFPSJyZWxlYXNlZC01LjAiCiBMU0JfQVJDSD0ibHNiYXJjaCIKIAotQkFTRV9QQUNLQUdFU19MSVNUPSJsc2Itc2V0dXAtNC4xLjAtMS5ub2FyY2gucnBtIgorQkFTRV9QQUNLQUdFU19MSVNUPSJsc2Itc2V0dXAtNS4wLjAtMi5ub2FyY2gucnBtIgogCiBSVU5USU1FX0JBU0VfUEFDS0FHRVNfTElTVD0ibHNiLWRpc3QtY2hlY2tlci01LjAuMC4xLTEudGFyZ2V0YXJjaC5ycG0gXAogCWxzYi10ZXQzLWxpdGUtMy43LTI3LmxzYjUudGFyZ2V0YXJjaC5ycG0gXApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sc2IvbHNidGVzdC9zZXNzaW9uIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sc2IvbHNidGVzdC9zZXNzaW9uCmluZGV4IDNhYmNjYTcuLjRkNDdlNDAgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHNiL2xzYnRlc3Qvc2Vzc2lvbgorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2xzYi9sc2J0ZXN0L3Nlc3Npb24KQEAgLTIsNyArMiw3IEBACiBWRVJCT1NFX0xFVkVMOiAgIDEKIEFSQ0hJVEVDVFVSRTogICAgdGFyZ2V0YXJjaAogVVNFX0lOVEVSTkVUOiAgICAxCi1TVERfVkVSU0lPTjogICAgIExTQiA0LjEKK1NURF9WRVJTSU9OOiAgICAgTFNCIDUuMAogU1REX1BST0ZJTEU6ICAgICBubwogW2NtZGNoa10KIFJVTjogMQpAQCAtMTI2LDE1ICsxMjYsNiBAQAogQVVUT1JFUExZX1RFU1RTVUlURV9ESVI6IC9vcHQvbHNiL3Rlc3QvcHl0aG9uCiBBVVRPUkVQTFlfUkVTVUxUU19ESVI6IC9vcHQvbHNiL3Rlc3QvcHl0aG9uL3Jlc3VsdHMKIAotW3F0NC1hem92XQotUlVOOiAxCi1WRVJTSU9OOiBsb2NhbHwqCi0KLVtxdDQtYXpvdnxsb2NhbHwqXQotQVVUT1JFUExZX1RFU1RTVUlURV9ESVI6IC9vcHQvbHNiL3Rlc3QvcXQ0LWF6b3YKLUFVVE9SRVBMWV9YMTFfRk9OVF9QQVRIOiBbZGVmYXVsdF0KLUFVVE9SRVBMWV9SRVNVTFRTX0RJUjogL29wdC9sc2IvdGVzdC9xdDQtYXpvdi9yZXN1bHRzCi0KIFt4bWwyLWF6b3ZdCiBSVU46IDEKIFZFUlNJT046IGxvY2FsfCoKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHNiL2xzYnRlc3RfMS4wLmJiIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sc2IvbHNidGVzdF8xLjAuYmIKaW5kZXggMzZmNTJmZC4uYTkwYzAyMyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sc2IvbHNidGVzdF8xLjAuYmIKKysrIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sc2IvbHNidGVzdF8xLjAuYmIKQEAgLTEwLDE0ICsxMCwxMyBAQAogCQkgICBmaWxlOi8vcGFja2FnZXNfbGlzdCBcCiAJCSAgIGZpbGU6Ly9zZXNzaW9uIFwKIAkJICAgIgotUkRFUEVORFNfJHtQTn0gPSAicnBtIgorUkRFUEVORFNfJHtQTn0gPSAibHNiIHJwbSIKIAogUyA9ICIke1dPUktESVJ9IgogCiBkb19pbnN0YWxsKCkgewotCWluc3RhbGwgLWQgJHtEfSR7YmluZGlyfQotCWluc3RhbGwgLW0gMDc1NSAke1N9L0xTQl9UZXN0LnNoICR7RH0ke2JpbmRpcn0KIAlpbnN0YWxsIC1kICAke0R9L29wdC9sc2ItdGVzdAorCWluc3RhbGwgLW0gMDc1NSAke1N9L0xTQl9UZXN0LnNoICR7RH0vb3B0L2xzYi10ZXN0L0xTQl9UZXN0LnNoCiAJaW5zdGFsbCAtbSAwNjQ0ICR7U30vcGFja2FnZXNfbGlzdCAke0R9L29wdC9sc2ItdGVzdC9wYWNrYWdlc19saXN0CiAJaW5zdGFsbCAtbSAwNjQ0ICR7U30vc2Vzc2lvbiAke0R9L29wdC9sc2ItdGVzdC9zZXNzaW9uCiAJaWYgWyAiJHtUQVJHRVRfQVJDSH0iID0gImk1ODYiIF0gfHwgWyAiJHtUQVJHRVRfQVJDSH0iID0gImk2ODYiIF07dGhlbgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sdHAvbHRwLzAwMDEtYWRkLV9HTlVfU09VUkNFLXRvLXBlY19saXN0ZW5lci5jLnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sdHAvbHRwLzAwMDEtYWRkLV9HTlVfU09VUkNFLXRvLXBlY19saXN0ZW5lci5jLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZWM2NmY4Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHRwL2x0cC8wMDAxLWFkZC1fR05VX1NPVVJDRS10by1wZWNfbGlzdGVuZXIuYy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLUZyb20gYWUxMDI0NWMxNWE2MTdiZDU3MzM3OTgxYmI0MmViMzY2MjlmOWI1OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IERlbmdrZSBEdSA8ZGVuZ2tlLmR1QHdpbmRyaXZlci5jb20+Ci1EYXRlOiBXZWQsIDggRmViIDIwMTcgMTU6NTM6MzEgKzA4MDAKLVN1YmplY3Q6IFtQQVRDSCAwMS8yNl0gYWRkIF9HTlVfU09VUkNFIHRvIHBlY19saXN0ZW5lci5jCi0KLUluIHByZXZpb3VzIHBhdGNoIDAwMDctcmVwbGFjZS1TSUdDTEQtd2l0aC1TSUdDSExELnBhdGNoIG1hZGUgYnkgS2hlbSBSYWoKLWNvbnRhaW5zIHR3byBhc3BlY3RzOgotCi0JMS4gcmVwbGFjZSBTSUdDTEQgd2l0aCBTSUdDSExECi0JMi4gYWRkIF9HTlVfU09VUkNFIHRvIHBlY19saXN0ZW5lci5jCi0KLVRoZSByZXBsYWNlIFNJR0NMRCB3aXRoIFNJR0NITEQgaGF2ZSBiZWVuIGludGVncmF0ZWQgdXBzdHJlYW0sIHNvIG1ha2UgYQotYW5vdGhlciBwYXRjaCB0byBhZGQgX0dOVV9TT1VSQ0UgdG8gcGVjX2xpc3RlbmVyLmMgY29tcGx5IHdpdGggS2hlbSBSYWoncwotcHJldmlvdXMgcGF0Y2guCi0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1TaWduZWQtb2ZmLWJ5OiBEZW5na2UgRHUgPGRlbmdrZS5kdUB3aW5kcml2ZXIuY29tPgotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLSUlIG9yaWdpbmFsIHBhdGNoOiAwMDAxLWFkZC1fR05VX1NPVVJDRS10by1wZWNfbGlzdGVuZXIuYy5wYXRjaAotLS0tCi0gdGVzdGNhc2VzL2tlcm5lbC9jb25uZWN0b3JzL3BlYy9wZWNfbGlzdGVuZXIuYyB8IDEgKwotIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQotCi1kaWZmIC0tZ2l0IGEvdGVzdGNhc2VzL2tlcm5lbC9jb25uZWN0b3JzL3BlYy9wZWNfbGlzdGVuZXIuYyBiL3Rlc3RjYXNlcy9rZXJuZWwvY29ubmVjdG9ycy9wZWMvcGVjX2xpc3RlbmVyLmMKLWluZGV4IGQxMWU0ZGMuLmI4YjVlMGQgMTAwNjQ0Ci0tLS0gYS90ZXN0Y2FzZXMva2VybmVsL2Nvbm5lY3RvcnMvcGVjL3BlY19saXN0ZW5lci5jCi0rKysgYi90ZXN0Y2FzZXMva2VybmVsL2Nvbm5lY3RvcnMvcGVjL3BlY19saXN0ZW5lci5jCi1AQCAtMjAsNiArMjAsNyBAQAotIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0gLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSAKLSsjZGVmaW5lIF9HTlVfU09VUkNFCi0gI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KLSAjaW5jbHVkZSA8c3lzL3BvbGwuaD4KLSAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0tLSAKLTIuOC4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHRwL2x0cC8wMDAxLWNvbmZpZ3VyZS1GaXgtZGVmYXVsdC12YWx1ZS1vZi13aXRob3V0LW51bWEtc3dpdGNoLWkucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2x0cC9sdHAvMDAwMS1jb25maWd1cmUtRml4LWRlZmF1bHQtdmFsdWUtb2Ytd2l0aG91dC1udW1hLXN3aXRjaC1pLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhNjI2ODcKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2x0cC9sdHAvMDAwMS1jb25maWd1cmUtRml4LWRlZmF1bHQtdmFsdWUtb2Ytd2l0aG91dC1udW1hLXN3aXRjaC1pLnBhdGNoCkBAIC0wLDAgKzEsMzEgQEAKK0Zyb20gNGFjZTY4YTZiYTUwMTkwN2EwNzQxZGJhNWY1ZjE1NWUwNmE3NGMzNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFBldHIgVm9yZWwgPHB2b3JlbEBzdXNlLmN6PgorRGF0ZTogV2VkLCA3IEZlYiAyMDE4IDExOjA5OjQ5ICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIGNvbmZpZ3VyZTogRml4IGRlZmF1bHQgdmFsdWUgb2YgLS13aXRob3V0LW51bWEgc3dpdGNoIGluIGhlbHAKKworVGhlIGRlZmF1bHQgdmFsdWUgaXMgbm8uCisKK0ZpeGVzOiAzOWE4NWExZjEgKCJjb25maWd1cmU6IGFkZCBrbm9iIHRvIGNvbnRyb2wgbnVtYSBzdXBwb3J0IikKKworU2lnbmVkLW9mZi1ieTogUGV0ciBWb3JlbCA8cHZvcmVsQHN1c2UuY3o+CitVcHN0cmVhbS1TdGF0dXM6IEFjY2VwdGVkCistLS0KKyBjb25maWd1cmUuYWMgfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKK2luZGV4IGIzOWEzMWQuLmQ2NmVhMDAgMTAwNjQ0CistLS0gYS9jb25maWd1cmUuYWMKKysrKyBiL2NvbmZpZ3VyZS5hYworQEAgLTg2LDcgKzg2LDcgQEAgZmkKKyAjIE51bWEKKyBBQ19BUkdfV0lUSChbbnVtYV0sCisgICBBQ19IRUxQX1NUUklORyhbLS13aXRob3V0LW51bWFdLAorLSAgICBbd2l0aG91dCBudW1hIHN1cHBvcnQgKGRlZmF1bHQ9eWVzKV0pLAorKyAgICBbd2l0aG91dCBudW1hIHN1cHBvcnQgKGRlZmF1bHQ9bm8pXSksCisgICBbd2l0aF9udW1hPW5vXSwKKyAgIFt3aXRoX251bWE9eWVzXQorICkKKy0tIAorMi43LjQKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sdHAvbHRwLzAwMDEtY29uZmlndXJlLWFkZC1rbm9iLXRvLWNvbnRyb2wtbnVtYS1zdXBwb3J0LnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sdHAvbHRwLzAwMDEtY29uZmlndXJlLWFkZC1rbm9iLXRvLWNvbnRyb2wtbnVtYS1zdXBwb3J0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhYWEyODcKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2x0cC9sdHAvMDAwMS1jb25maWd1cmUtYWRkLWtub2ItdG8tY29udHJvbC1udW1hLXN1cHBvcnQucGF0Y2gKQEAgLTAsMCArMSw1MCBAQAorRnJvbSAzOWE4NWExZjFlNjYyNGY1NTQyMTViYTRiNjg0M2QzNjg5YTg0MTVlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQW5kZXJzIFJveGVsbCA8YW5kZXJzLnJveGVsbEBsaW5hcm8ub3JnPgorRGF0ZTogTW9uLCA1IEZlYiAyMDE4IDExOjU2OjA0ICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIGNvbmZpZ3VyZTogYWRkIGtub2IgdG8gY29udHJvbCBudW1hIHN1cHBvcnQKKworQWxsb3cgdG8gZGlzYWJsZSBudW1hIGZyb20gdGhlIHRvcCBsZXZlbC4KKworQmFzZWQgb24gcGF0Y2g6CitodHRwOi8vY2dpdC5vcGVuZW1iZWRkZWQub3JnL29wZW5lbWJlZGRlZC1jb3JlL2NvbW1pdC9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHRwP2lkPTRjNzg3MzU1MmUxM2RmZGJhOTZhZmNhNzU2MmMzOThkMjk2NmNhNzEKKworUmVwb3J0ZWQtYnk6IFJveSBMaSA8cm9uZ3FpbmcubGlAd2luZHJpdmVyLmNvbT4KK1NpZ25lZC1vZmYtYnk6IEFuZGVycyBSb3hlbGwgPGFuZGVycy5yb3hlbGxAbGluYXJvLm9yZz4KK1NpZ25lZC1vZmYtYnk6IFBldHIgVm9yZWwgPHB2b3JlbEBzdXNlLmN6PgorVXBzdHJlYW0tU3RhdHVzOiBBY2NlcHRlZAorLS0tCisgY29uZmlndXJlLmFjIHwgMTAgKysrKysrKysrKworIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKK2luZGV4IDVjOGQ0ZWEuLmIzOWEzMWQgMTAwNjQ0CistLS0gYS9jb25maWd1cmUuYWMKKysrKyBiL2NvbmZpZ3VyZS5hYworQEAgLTgzLDYgKzgzLDE0IEBAIGVsc2UKKyAgICAgQUNfU1VCU1QoW1dJVEhfRVhQRUNUXSxbIm5vIl0pCisgZmkKKyAKKysjIE51bWEKKytBQ19BUkdfV0lUSChbbnVtYV0sCisrICBBQ19IRUxQX1NUUklORyhbLS13aXRob3V0LW51bWFdLAorKyAgICBbd2l0aG91dCBudW1hIHN1cHBvcnQgKGRlZmF1bHQ9eWVzKV0pLAorKyAgW3dpdGhfbnVtYT1ub10sCisrICBbd2l0aF9udW1hPXllc10KKyspCisrCisgIyBQZXJsCisgQUNfQVJHX1dJVEgoW3BlcmxdLAorICAgW0FDX0hFTFBfU1RSSU5HKFstLXdpdGgtcGVybF0sCitAQCAtMTU3LDcgKzE2NSw5IEBAIExUUF9DSEVDS19TRUxJTlVYCisgTFRQX0NIRUNLX1NJR05BTAorIExUUF9DSEVDS19TWVNDQUxMX0VWRU5URkQKKyBMVFBfQ0hFQ0tfU1lTQ0FMTF9NT0RJRllfTERUCisraWYgdGVzdCAieCR3aXRoX251bWEiID0geHllczsgdGhlbgorIExUUF9DSEVDS19TWVNDQUxMX05VTUEKKytmaQorIExUUF9DSEVDS19TWVNDQUxMX1FVT1RBQ1RMCisgTFRQX0NIRUNLX1NZU0NBTExfU0lHTkFMRkQKKyBMVFBfQ0hFQ0tfU1lTQ0FMTF9VTlNIQVJFCistLSAKKzIuNy40CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHRwL2x0cC8wMDAyLUFkZC1rbm9iLXRvLWNvbnRyb2wtd2hldGhlci1udW1hLXN1cHBvcnQtc2hvdWxkLWJlLWMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2x0cC9sdHAvMDAwMi1BZGQta25vYi10by1jb250cm9sLXdoZXRoZXItbnVtYS1zdXBwb3J0LXNob3VsZC1iZS1jLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ODY1MDIwLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHRwL2x0cC8wMDAyLUFkZC1rbm9iLXRvLWNvbnRyb2wtd2hldGhlci1udW1hLXN1cHBvcnQtc2hvdWxkLWJlLWMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi1Gcm9tIDg2N2FkNWQ1ZDY0YjliMjdlZTMyMTQ4MDI3NTMyZGIwYTAwZjY0MzMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiAiUm95LkxpIiA8cm9uZ3FpbmcubGlAd2luZHJpdmVyLmNvbT4KLURhdGU6IFRodSwgNyBKYW4gMjAxNiAxNzozMzoyNiArMDAwMAotU3ViamVjdDogW1BBVENIIDAyLzMyXSBBZGQga25vYiB0byBjb250cm9sIHdoZXRoZXIgbnVtYSBzdXBwb3J0IHNob3VsZCBiZQotIGNoZWNrZWQKLQotb3RoZXJ3aXNlIHVuZGV0ZXJtaW5pc3RpYyBkZXBlbmRlbmN5IHdpbGwgYmUgZ2VuZXJhdGVkCi1kdXJpbmcgYnVpbGQgZGVwZW5kaW5nIHVwb25nIG51bWEgYmVpbmcgc3RhZ2VkIG9yIG5vdAotCi1TaWduZWQtb2ZmLWJ5OiBSb3kuTGkgPHJvbmdxaW5nLmxpQHdpbmRyaXZlci5jb20+Ci1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0tLS0KLSBtNC9sdHAtbnVtYS5tNCB8IDEwICsrKysrKysrKy0KLSAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9tNC9sdHAtbnVtYS5tNCBiL200L2x0cC1udW1hLm00Ci1pbmRleCA2MGFlMDdiLi5lZDcwNzhkIDEwMDY0NAotLS0tIGEvbTQvbHRwLW51bWEubTQKLSsrKyBiL200L2x0cC1udW1hLm00Ci1AQCAtMjQsNyArMjQsMTMgQEAgZG5sIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBkbmwKLSBBQ19ERUZVTihbTFRQX0NIRUNLX1NZU0NBTExfTlVNQV0sCi0gW2RubAotLUFDX0NIRUNLX0hFQURFUlMoW2xpbnV4L21lbXBvbGljeS5oIG51bWEuaCBudW1haWYuaF0sWwotK0FDX01TR19DSEVDS0lORyhbZm9yIG51bWFdKQotK0FDX0FSR19XSVRIKAotKwlbbnVtYV0sCi0rCUFDX0hFTFBfU1RSSU5HKFstLXdpdGhvdXQtbnVtYV0sCi0rCVt3aXRob3V0IG51bWEgc3VwcG9ydF0pLAotKwlbXSwKLSsJW0FDX0NIRUNLX0hFQURFUlMoW2xpbnV4L21lbXBvbGljeS5oIG51bWEuaCBudW1haWYuaF0sWwotIAlMVFBfU1lTQ0FMTF9OVU1BX0hFQURFUlM9eWVzCi0gCUFDX0NIRUNLX0xJQihudW1hLG51bWFfYWxsb2Nfb25ub2RlLFtoYXZlX251bWFfYWxsb2Nfb25ub2RlPSJ5ZXMiXSkKLSAJaWYgIHRlc3QgIngkaGF2ZV9udW1hX2FsbG9jX29ubm9kZSIgPSAieHllcyI7IHRoZW4KLUBAIC00OCwzICs1NCw1IEBAIGlmIHRlc3QgIngkaGF2ZV9tcG9sX2NvbnN0YW50cyIgPSAieHllcyI7IHRoZW4KLSAJQUNfREVGSU5FKEhBVkVfTVBPTF9DT05TVEFOVFMsMSxbZGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgYWxsIGNvbnN0YW50cyByZXF1aXJlZCB0byB1c2UgbWJpbmQgdGVzdHNdKQotIGZpCi0gKV0pCi0rQUNfTVNHX1JFU1VMVChbJHdpdGhfbnVtYV0pCi0rXSkKLS0tIAotMi43LjAKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sdHAvbHRwLzAwMDQtYnVpbGQtQWRkLW9wdGlvbi10by1zZWxlY3QtbGliYy1pbXBsZW1lbnRhdGlvbi5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHRwL2x0cC8wMDA0LWJ1aWxkLUFkZC1vcHRpb24tdG8tc2VsZWN0LWxpYmMtaW1wbGVtZW50YXRpb24ucGF0Y2gKaW5kZXggY2Y3NDQ2My4uODRhYjM3ZSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sdHAvbHRwLzAwMDQtYnVpbGQtQWRkLW9wdGlvbi10by1zZWxlY3QtbGliYy1pbXBsZW1lbnRhdGlvbi5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2x0cC9sdHAvMDAwNC1idWlsZC1BZGQtb3B0aW9uLXRvLXNlbGVjdC1saWJjLWltcGxlbWVudGF0aW9uLnBhdGNoCkBAIC0yMiwxMCArMjIsMTAgQEAKICB0ZXN0Y2FzZXMvcmVhbHRpbWUvc3RyZXNzL3BpLXRlc3RzL01ha2VmaWxlIHwgNSArKysrKwogIDggZmlsZXMgY2hhbmdlZCwgMzUgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKIAotZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKLWluZGV4IDI5N2Y4ZTcuLjkwNmIyODAgMTAwNjQ0Ci0tLS0gYS9NYWtlZmlsZQotKysrIGIvTWFrZWZpbGUKK0luZGV4OiBnaXQvTWFrZWZpbGUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnaXQub3JpZy9NYWtlZmlsZQorKysrIGdpdC9NYWtlZmlsZQogQEAgLTQ5LDYgKzQ5LDExIEBAIFNLSVBfSURDSEVDSwkJPz0gMAogIFVDTElOVVgJCQk/PSAwCiAgZXhwb3J0IFVDTElOVVgKQEAgLTM4LDExICszOCwxMSBAQAogICMgQ0xFQU5fVEFSR0VUUzoJVGFyZ2V0cyB3aGljaCBleGlzdCBzb2xlbHkgaW4gY2xlYW4uCiAgIyBDT01NT05fVEFSR0VUUzoJVGFyZ2V0cyB3aGljaCBleGlzdCBpbiBhbGwsIGNsZWFuLCBhbmQgaW5zdGFsbC4KICAjIElOU1RBTExfVEFSR0VUUzoJVGFyZ2V0cyB3aGljaCBleGlzdCBpbiBjbGVhbiBhbmQgaW5zdGFsbCAoY29udGFpbnMKLWRpZmYgLS1naXQgYS90ZXN0Y2FzZXMva2VybmVsL01ha2VmaWxlIGIvdGVzdGNhc2VzL2tlcm5lbC9NYWtlZmlsZQotaW5kZXggNTBhMTJmYS4uNGYxOTg3ZiAxMDA2NDQKLS0tLSBhL3Rlc3RjYXNlcy9rZXJuZWwvTWFrZWZpbGUKLSsrKyBiL3Rlc3RjYXNlcy9rZXJuZWwvTWFrZWZpbGUKLUBAIC00NywxMyArNDcsMTYgQEAgU1VCRElSUwkJCSs9IGNvbm5lY3RvcnMgXAorSW5kZXg6IGdpdC90ZXN0Y2FzZXMva2VybmVsL01ha2VmaWxlCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2l0Lm9yaWcvdGVzdGNhc2VzL2tlcm5lbC9NYWtlZmlsZQorKysrIGdpdC90ZXN0Y2FzZXMva2VybmVsL01ha2VmaWxlCitAQCAtNDgsMTMgKzQ4LDE2IEBAIFNVQkRJUlMJCQkrPSBjb25uZWN0b3JzIFwKICAJCQkgICBsb2dnaW5nIFwKICAJCQkgICBtZW0gXAogIAkJCSAgIG51bWEgXApAQCAtNjAsMTAgKzYwLDEwIEBACiAgaWZlcSAoJChXSVRIX1BPV0VSX01BTkFHRU1FTlRfVEVTVFNVSVRFKSx5ZXMpCiAgU1VCRElSUwkJCSs9IHBvd2VyX21hbmFnZW1lbnQKICBlbmRpZgotZGlmZiAtLWdpdCBhL3Rlc3RjYXNlcy9rZXJuZWwvc2NoZWQvTWFrZWZpbGUgYi90ZXN0Y2FzZXMva2VybmVsL3NjaGVkL01ha2VmaWxlCi1pbmRleCA2MjQ1ZWQwLi5hYTRlYjdmIDEwMDY0NAotLS0tIGEvdGVzdGNhc2VzL2tlcm5lbC9zY2hlZC9NYWtlZmlsZQotKysrIGIvdGVzdGNhc2VzL2tlcm5lbC9zY2hlZC9NYWtlZmlsZQorSW5kZXg6IGdpdC90ZXN0Y2FzZXMva2VybmVsL3NjaGVkL01ha2VmaWxlCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2l0Lm9yaWcvdGVzdGNhc2VzL2tlcm5lbC9zY2hlZC9NYWtlZmlsZQorKysrIGdpdC90ZXN0Y2FzZXMva2VybmVsL3NjaGVkL01ha2VmaWxlCiBAQCAtMjMsNSArMjMsNyBAQAogIHRvcF9zcmNkaXIJCT89IC4uLy4uLy4uCiAgCkBAIC03MywxMSArNzMsMTEgQEAKICsJRklMVEVSX09VVF9ESVJTICs9IHByb2Nlc3Nfc3RyZXNzCiArZW5kaWYKICBpbmNsdWRlICQodG9wX3NyY2RpcikvaW5jbHVkZS9tay9nZW5lcmljX3RydW5rX3RhcmdldC5tawotZGlmZiAtLWdpdCBhL3Rlc3RjYXNlcy9rZXJuZWwvc3lzY2FsbHMvTWFrZWZpbGUgYi90ZXN0Y2FzZXMva2VybmVsL3N5c2NhbGxzL01ha2VmaWxlCi1pbmRleCA4YWNiMzk1Li5iNzQ5MTI2IDEwMDY0NAotLS0tIGEvdGVzdGNhc2VzL2tlcm5lbC9zeXNjYWxscy9NYWtlZmlsZQotKysrIGIvdGVzdGNhc2VzL2tlcm5lbC9zeXNjYWxscy9NYWtlZmlsZQotQEAgLTI4LDUgKzI4LDEwIEBAIGlmZXEgKCQoVUNMSU5VWCksMSkKK0luZGV4OiBnaXQvdGVzdGNhc2VzL2tlcm5lbC9zeXNjYWxscy9NYWtlZmlsZQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdpdC5vcmlnL3Rlc3RjYXNlcy9rZXJuZWwvc3lzY2FsbHMvTWFrZWZpbGUKKysrKyBnaXQvdGVzdGNhc2VzL2tlcm5lbC9zeXNjYWxscy9NYWtlZmlsZQorQEAgLTI4LDYgKzI4LDExIEBAIGlmZXEgKCQoVUNMSU5VWCksMSkKICBGSUxURVJfT1VUX0RJUlMJKz0gY2FwZ2V0IGNhcHNldCBjaG1vZCBjaG93biBjbG9uZSBmb3JrIGdldGNvbnRleHQgbGxzZWVrIFwKICAJCSAgIG1pbmNvcmUgbXByb3RlY3QgbmZ0dyBwcm9maWwgcmVtYXBfZmlsZV9wYWdlcyBzYnJrCiAgZW5kaWYKQEAgLTg3LDEyICs4NywxMyBAQAogKwkJICAgdXN0YXQKICtlbmRpZgogIAotIGluY2x1ZGUgJCh0b3Bfc3JjZGlyKS9pbmNsdWRlL21rL2dlbmVyaWNfdHJ1bmtfdGFyZ2V0Lm1rCi1kaWZmIC0tZ2l0IGEvdGVzdGNhc2VzL25ldHdvcmsvbmZzdjQvYWNsL01ha2VmaWxlIGIvdGVzdGNhc2VzL25ldHdvcmsvbmZzdjQvYWNsL01ha2VmaWxlCi1pbmRleCA4YmM3OGMyLi5jMzZjZjUwIDEwMDY0NAotLS0tIGEvdGVzdGNhc2VzL25ldHdvcmsvbmZzdjQvYWNsL01ha2VmaWxlCi0rKysgYi90ZXN0Y2FzZXMvbmV0d29yay9uZnN2NC9hY2wvTWFrZWZpbGUKLUBAIC0yNiw0ICsyNiw4IEBAIGluY2x1ZGUgJCh0b3Bfc3JjZGlyKS9pbmNsdWRlL21rL2Vudl9wcmUubWsKKyBpZmVxICgkKFVDTElCQyksMSkKKyBGSUxURVJfT1VUX0RJUlMJKz0gcHJvZmlsCitJbmRleDogZ2l0L3Rlc3RjYXNlcy9uZXR3b3JrL25mc3Y0L2FjbC9NYWtlZmlsZQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdpdC5vcmlnL3Rlc3RjYXNlcy9uZXR3b3JrL25mc3Y0L2FjbC9NYWtlZmlsZQorKysrIGdpdC90ZXN0Y2FzZXMvbmV0d29yay9uZnN2NC9hY2wvTWFrZWZpbGUKK0BAIC0yNiw0ICsyNiw4IEBAIGluY2x1ZGUgJCh0b3Bfc3JjZGlyKS9pbmNsdWRlL21rL2Vudl9wcmUKICAKICBMRExJQlMJCQkrPSAkKEFDTF9MSUJTKQogIApAQCAtMTAxLDEwICsxMDIsMTAgQEAKICtlbmRpZgogKwogIGluY2x1ZGUgJCh0b3Bfc3JjZGlyKS9pbmNsdWRlL21rL2dlbmVyaWNfbGVhZl90YXJnZXQubWsKLWRpZmYgLS1naXQgYS90ZXN0Y2FzZXMvbmV0d29yay9ycGMvYmFzaWNfdGVzdHMvTWFrZWZpbGUgYi90ZXN0Y2FzZXMvbmV0d29yay9ycGMvYmFzaWNfdGVzdHMvTWFrZWZpbGUKLWluZGV4IDMxNjA4MTMuLjliZGY1ZDAgMTAwNjQ0Ci0tLS0gYS90ZXN0Y2FzZXMvbmV0d29yay9ycGMvYmFzaWNfdGVzdHMvTWFrZWZpbGUKLSsrKyBiL3Rlc3RjYXNlcy9uZXR3b3JrL3JwYy9iYXNpY190ZXN0cy9NYWtlZmlsZQorSW5kZXg6IGdpdC90ZXN0Y2FzZXMvbmV0d29yay9ycGMvYmFzaWNfdGVzdHMvTWFrZWZpbGUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnaXQub3JpZy90ZXN0Y2FzZXMvbmV0d29yay9ycGMvYmFzaWNfdGVzdHMvTWFrZWZpbGUKKysrKyBnaXQvdGVzdGNhc2VzL25ldHdvcmsvcnBjL2Jhc2ljX3Rlc3RzL01ha2VmaWxlCiBAQCAtMjMsNCArMjMsOSBAQAogIHRvcF9zcmNkaXIJCT89IC4uLy4uLy4uLy4uCiAgCkBAIC0xMTUsMTEgKzExNiwxMSBAQAogK2VuZGlmCiArCiAgaW5jbHVkZSAkKHRvcF9zcmNkaXIpL2luY2x1ZGUvbWsvZ2VuZXJpY190cnVua190YXJnZXQubWsKLWRpZmYgLS1naXQgYS90ZXN0Y2FzZXMvcmVhbHRpbWUvZnVuYy9waS10ZXN0cy9NYWtlZmlsZSBiL3Rlc3RjYXNlcy9yZWFsdGltZS9mdW5jL3BpLXRlc3RzL01ha2VmaWxlCi1pbmRleCA3YTdhNTdhLi41ODA4ODY2IDEwMDY0NAotLS0tIGEvdGVzdGNhc2VzL3JlYWx0aW1lL2Z1bmMvcGktdGVzdHMvTWFrZWZpbGUKLSsrKyBiL3Rlc3RjYXNlcy9yZWFsdGltZS9mdW5jL3BpLXRlc3RzL01ha2VmaWxlCi1AQCAtMjcsNSArMjcsOSBAQCBpbmNsdWRlICQodG9wX3NyY2RpcikvaW5jbHVkZS9tay9lbnZfcHJlLm1rCitJbmRleDogZ2l0L3Rlc3RjYXNlcy9yZWFsdGltZS9mdW5jL3BpLXRlc3RzL01ha2VmaWxlCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2l0Lm9yaWcvdGVzdGNhc2VzL3JlYWx0aW1lL2Z1bmMvcGktdGVzdHMvTWFrZWZpbGUKKysrKyBnaXQvdGVzdGNhc2VzL3JlYWx0aW1lL2Z1bmMvcGktdGVzdHMvTWFrZWZpbGUKK0BAIC0yNyw1ICsyNyw5IEBAIGluY2x1ZGUgJCh0b3Bfc3JjZGlyKS9pbmNsdWRlL21rL2Vudl9wcmUKICBpbmNsdWRlICQoYWJzX3NyY2RpcikvLi4vLi4vY29uZmlnLm1rCiAgCiAgTUFLRV9UQVJHRVRTCQk6PSB0ZXN0cGktMCB0ZXN0cGktMSB0ZXN0cGktMiB0ZXN0cGktNCB0ZXN0cGktNSB0ZXN0cGktNiB0ZXN0cGktNyBzYnJrX211dGV4CkBAIC0xMjksMTAgKzEzMCwxMCBAQAogKwogIAogIGluY2x1ZGUgJCh0b3Bfc3JjZGlyKS9pbmNsdWRlL21rL2dlbmVyaWNfbGVhZl90YXJnZXQubWsKLWRpZmYgLS1naXQgYS90ZXN0Y2FzZXMvcmVhbHRpbWUvc3RyZXNzL3BpLXRlc3RzL01ha2VmaWxlIGIvdGVzdGNhc2VzL3JlYWx0aW1lL3N0cmVzcy9waS10ZXN0cy9NYWtlZmlsZQotaW5kZXggNWVkYzNiNC4uYWE1OTg3YSAxMDA2NDQKLS0tLSBhL3Rlc3RjYXNlcy9yZWFsdGltZS9zdHJlc3MvcGktdGVzdHMvTWFrZWZpbGUKLSsrKyBiL3Rlc3RjYXNlcy9yZWFsdGltZS9zdHJlc3MvcGktdGVzdHMvTWFrZWZpbGUKK0luZGV4OiBnaXQvdGVzdGNhc2VzL3JlYWx0aW1lL3N0cmVzcy9waS10ZXN0cy9NYWtlZmlsZQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdpdC5vcmlnL3Rlc3RjYXNlcy9yZWFsdGltZS9zdHJlc3MvcGktdGVzdHMvTWFrZWZpbGUKKysrKyBnaXQvdGVzdGNhc2VzL3JlYWx0aW1lL3N0cmVzcy9waS10ZXN0cy9NYWtlZmlsZQogQEAgLTI0LDQgKzI0LDkgQEAgdG9wX3NyY2RpcgkJPz0gLi4vLi4vLi4vLi4KICAKICBpbmNsdWRlICQodG9wX3NyY2RpcikvaW5jbHVkZS9tay9lbnZfcHJlLm1rCkBAIC0xNDMsNiArMTQ0LDMgQEAKICtlbmRpZgogKwogIGluY2x1ZGUgJCh0b3Bfc3JjZGlyKS9pbmNsdWRlL21rL2dlbmVyaWNfbGVhZl90YXJnZXQubWsKLS0tIAotMi43LjAKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sdHAvbHRwLzAwMTEtUmVuYW1lLXNpZ3NldC12YXJpYWJsZS10by1zaWdzZXQxLnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sdHAvbHRwLzAwMTEtUmVuYW1lLXNpZ3NldC12YXJpYWJsZS10by1zaWdzZXQxLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNWY2YmE3Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHRwL2x0cC8wMDExLVJlbmFtZS1zaWdzZXQtdmFyaWFibGUtdG8tc2lnc2V0MS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEzOSArMCwwIEBACi1Gcm9tIGRjMTkwNWI2ZDk3MmY5MTc2YjQwZGEyNzBjODNkOGZiNGQxNzUxYjUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBEZW5na2UgRHUgPGRlbmdrZS5kdUB3aW5kcml2ZXIuY29tPgotRGF0ZTogV2VkLCA4IEZlYiAyMDE3IDE2OjEyOjM0ICswODAwCi1TdWJqZWN0OiBbUEFUQ0ggMi81XSBSZW5hbWUgc2lnc2V0IHZhcmlhYmxlIHRvIHNpZ3NldDEKLQotc2lnc2V0IEFQSSBmcm9tIHNpZ25hbC5oIGlzIHNoYWRvd2VkIGJ5IHRoaXMgbmFtZSBjb25mbGljdAotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotU2lnbmVkLW9mZi1ieTogRGVuZ2tlIER1IDxkZW5na2UuZHVAd2luZHJpdmVyLmNvbT4KLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0tLS0KLSB0ZXN0Y2FzZXMva2VybmVsL21lbS9zaG10L3NobXQwNC5jICAgICAgICAgICAgICAgICAgICB8IDEwICsrKysrLS0tLS0KLSB0ZXN0Y2FzZXMva2VybmVsL21lbS9zaG10L3NobXQwNi5jICAgICAgICAgICAgICAgICAgICB8IDEwICsrKysrLS0tLS0KLSB0ZXN0Y2FzZXMva2VybmVsL3N5c2NhbGxzL3NpZ3Byb2NtYXNrL3NpZ3Byb2NtYXNrMDEuYyB8IDEwICsrKysrLS0tLS0KLSAzIGZpbGVzIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvdGVzdGNhc2VzL2tlcm5lbC9tZW0vc2htdC9zaG10MDQuYyBiL3Rlc3RjYXNlcy9rZXJuZWwvbWVtL3NobXQvc2htdDA0LmMKLWluZGV4IGIyNjgyZGEuLjNmMzVmYWQgMTAwNjQ0Ci0tLS0gYS90ZXN0Y2FzZXMva2VybmVsL21lbS9zaG10L3NobXQwNC5jCi0rKysgYi90ZXN0Y2FzZXMva2VybmVsL21lbS9zaG10L3NobXQwNC5jCi1AQCAtNTYsNyArNTYsNyBAQCBpbnQgVFNUX1RPVEFMID0gMjsJCS8qIFRvdGFsIG51bWJlciBvZiB0ZXN0IGNhc2VzLiAqLwotIC8qKioqKioqKioqKioqKi8KLSAKLSBrZXlfdCBrZXk7Ci0tc2lnc2V0X3Qgc2V0OwotK3NpZ3NldF90IHNldDE7Ci0gCi0gI2RlZmluZSAgU0laRSAgMTYqMTAyNAotIAotQEAgLTcxLDkgKzcxLDkgQEAgaW50IG1haW4odm9pZCkKLSAKLSAJa2V5ID0gKGtleV90KSBnZXRwaWQoKTsKLSAKLS0Jc2lnZW1wdHlzZXQoJnNldCk7Ci0tCXNpZ2FkZHNldCgmc2V0LCBTSUdVU1IxKTsKLS0Jc2lncHJvY21hc2soU0lHX0JMT0NLLCAmc2V0LCBOVUxMKTsKLSsJc2lnZW1wdHlzZXQoJnNldDEpOwotKwlzaWdhZGRzZXQoJnNldDEsIFNJR1VTUjEpOwotKwlzaWdwcm9jbWFzayhTSUdfQkxPQ0ssICZzZXQxLCBOVUxMKTsKLSAKLSAJcGlkID0gZm9yaygpOwotIAlzd2l0Y2ggKHBpZCkgewotQEAgLTE0OCw3ICsxNDgsNyBAQCBpbnQgY2hpbGQodm9pZCkKLSAJY2hhciAqY3A7Ci0gCWludCBzaWc7Ci0gCi0tCXNpZ3dhaXQoJnNldCwgJnNpZyk7Ci0rCXNpZ3dhaXQoJnNldDEsICZzaWcpOwotIAljaGxkX3BpZCA9IGdldHBpZCgpOwotIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotIAotZGlmZiAtLWdpdCBhL3Rlc3RjYXNlcy9rZXJuZWwvbWVtL3NobXQvc2htdDA2LmMgYi90ZXN0Y2FzZXMva2VybmVsL21lbS9zaG10L3NobXQwNi5jCi1pbmRleCBkZDY5ZGU3Li41NmZiMWRhIDEwMDY0NAotLS0tIGEvdGVzdGNhc2VzL2tlcm5lbC9tZW0vc2htdC9zaG10MDYuYwotKysrIGIvdGVzdGNhc2VzL2tlcm5lbC9tZW0vc2htdC9zaG10MDYuYwotQEAgLTU3LDcgKzU3LDcgQEAgaW50IFRTVF9UT1RBTCA9IDI7CQkvKiBUb3RhbCBudW1iZXIgb2YgdGVzdCBjYXNlcy4gKi8KLSAvKioqKioqKioqKioqKiovCi0gCi0ga2V5X3Qga2V5OwotLXNpZ3NldF90IHNldDsKLStzaWdzZXRfdCBzZXQxOwotIAotIGludCBjaGlsZCgpOwotIHN0YXRpYyBpbnQgcm1fc2htKGludCk7Ci1AQCAtNzAsOSArNzAsOSBAQCBpbnQgbWFpbih2b2lkKQotIAotIAlrZXkgPSAoa2V5X3QpIGdldHBpZCgpOwotIAotLQlzaWdlbXB0eXNldCgmc2V0KTsKLS0Jc2lnYWRkc2V0KCZzZXQsIFNJR1VTUjEpOwotLQlzaWdwcm9jbWFzayhTSUdfQkxPQ0ssICZzZXQsIE5VTEwpOwotKwlzaWdlbXB0eXNldCgmc2V0MSk7Ci0rCXNpZ2FkZHNldCgmc2V0MSwgU0lHVVNSMSk7Ci0rCXNpZ3Byb2NtYXNrKFNJR19CTE9DSywgJnNldDEsIE5VTEwpOwotIAotIAlwaWQgPSBmb3JrKCk7Ci0gCXN3aXRjaCAocGlkKSB7Ci1AQCAtMTQ3LDcgKzE0Nyw3IEBAIGludCBjaGlsZCh2b2lkKQotIAljaGFyICpjcDsKLSAJaW50IHNpZzsKLSAKLS0Jc2lnd2FpdCgmc2V0LCAmc2lnKTsKLSsJc2lnd2FpdCgmc2V0MSwgJnNpZyk7Ci0gCWNobGRfcGlkID0gZ2V0cGlkKCk7Ci0gCi0gCWlmICgoc2htaWQgPSBzaG1nZXQoa2V5LCBTSVpFLCAwKSkgPCAwKSB7Ci1kaWZmIC0tZ2l0IGEvdGVzdGNhc2VzL2tlcm5lbC9zeXNjYWxscy9zaWdwcm9jbWFzay9zaWdwcm9jbWFzazAxLmMgYi90ZXN0Y2FzZXMva2VybmVsL3N5c2NhbGxzL3NpZ3Byb2NtYXNrL3NpZ3Byb2NtYXNrMDEuYwotaW5kZXggMjMyZDI1YS4uMDZkOTAyZiAxMDA2NDQKLS0tLSBhL3Rlc3RjYXNlcy9rZXJuZWwvc3lzY2FsbHMvc2lncHJvY21hc2svc2lncHJvY21hc2swMS5jCi0rKysgYi90ZXN0Y2FzZXMva2VybmVsL3N5c2NhbGxzL3NpZ3Byb2NtYXNrL3NpZ3Byb2NtYXNrMDEuYwotQEAgLTkxLDcgKzkxLDcgQEAgaW50IFRTVF9UT1RBTCA9IDE7Ci0gaW50IHNpZ19jYXRjaCA9IDA7CQkvKiB2YXJpYWJsZSB0byBibG9ja2VkL3VuYmxvY2tlZCBzaWduYWxzICovCi0gCi0gc3RydWN0IHNpZ2FjdGlvbiBzYV9uZXc7CS8qIHN0cnVjdCB0byBob2xkIHNpZ25hbCBpbmZvICovCi0tc2lnc2V0X3Qgc2V0OwkJLyogc2lnbmFsIHNldCB0byBob2xkIHNpZ25hbCBsaXN0cyAqLwotK3NpZ3NldF90IHNldDE7CQkvKiBzaWduYWwgc2V0IHRvIGhvbGQgc2lnbmFsIGxpc3RzICovCi0gc2lnc2V0X3Qgc2lnc2V0MjsKLSAKLSBpbnQgbWFpbihpbnQgYWMsIGNoYXIgKiphdikKLUBAIC0xMTIsNyArMTEyLDcgQEAgaW50IG1haW4oaW50IGFjLCBjaGFyICoqYXYpCi0gCQkgKiBzbyB0aGF0LCBzaWduYWwgd2lsbCBub3QgYmUgZGVsaXZlcmVkIHRvCi0gCQkgKiB0aGUgdGVzdCBwcm9jZXNzLgotIAkJICovCi0tCQlURVNUKHNpZ3Byb2NtYXNrKFNJR19CTE9DSywgJnNldCwgMCkpOwotKwkJVEVTVChzaWdwcm9jbWFzayhTSUdfQkxPQ0ssICZzZXQxLCAwKSk7Ci0gCi0gCQkvKiBHZXQgdGhlIHByb2Nlc3MgaWQgb2YgdGVzdCBwcm9jZXNzICovCi0gCQlteV9waWQgPSBnZXRwaWQoKTsKLUBAIC0xNjUsNyArMTY1LDcgQEAgaW50IG1haW4oaW50IGFjLCBjaGFyICoqYXYpCi0gCQkJCSAqLwotIAkJCQllcnJubyA9IDA7Ci0gCQkJCWlmIChzaWdwcm9jbWFzayhTSUdfVU5CTE9DSywKLS0JCQkJCQkmc2V0LCAwKSA9PSAtMSkgewotKwkJCQkJCSZzZXQxLCAwKSA9PSAtMSkgewotIAkJCQkJdHN0X2Jya20oVEZBSUwsIGNsZWFudXAsCi0gCQkJCQkJICJzaWdwcm9jbWFzaygpIGZhaWxlZCAiCi0gCQkJCQkJICJ0byB1bmJsb2NrIHNpZ25hbCwgIgotQEAgLTIxMiw3ICsyMTIsNyBAQCB2b2lkIHNldHVwKHZvaWQpCi0gCSAqIEluaXRpYWxpc2UgdGhlIHNpZ25hbCBzZXRzIHdpdGggdGhlIGxpc3QgdGhhdAotIAkgKiBleGNsdWRlcy9pbmNsdWRlcyAgYWxsIHN5c3RlbS1kZWZpbmVkIHNpZ25hbHMuCi0gCSAqLwotLQlpZiAoc2lnZW1wdHlzZXQoJnNldCkgPT0gLTEpIHsKLSsJaWYgKHNpZ2VtcHR5c2V0KCZzZXQxKSA9PSAtMSkgewotIAkJdHN0X2Jya20oVEZBSUwsIGNsZWFudXAsCi0gCQkJICJzaWdlbXB0eXNldCgpIGZhaWxlZCwgZXJybm89JWQgOiAlcyIsCi0gCQkJIGVycm5vLCBzdHJlcnJvcihlcnJubykpOwotQEAgLTIzNSw3ICsyMzUsNyBAQCB2b2lkIHNldHVwKHZvaWQpCi0gCSAqIEFkZCBzcGVjaWZpZWQgc2lnbmFsIChTSUdJTlQpIHRvIHRoZSBzaWduYWwgc2V0Ci0gCSAqIHdoaWNoIGV4Y2x1ZGVzIHN5c3RlbS1kZWZpbmVkIHNpZ25hbHMuCi0gCSAqLwotLQlpZiAoc2lnYWRkc2V0KCZzZXQsIFNJR0lOVCkgPT0gLTEpIHsKLSsJaWYgKHNpZ2FkZHNldCgmc2V0MSwgU0lHSU5UKSA9PSAtMSkgewotIAkJdHN0X2Jya20oVEZBSUwsIGNsZWFudXAsCi0gCQkJICJzaWdhZGRzZXQoKSBmYWlsZWQsIGVycm5vPSVkIDogJXMiLAotIAkJCSBlcnJubywgc3RyZXJyb3IoZXJybm8pKTsKLS0tIAotMi43LjQKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sdHAvbHRwLzAwMjEtRGVmaW5lLV9HTlVfU09VUkNFLWZvci1NUkVNQVBfTUFZTU9WRS1kZWZpbml0aW9uLnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sdHAvbHRwLzAwMjEtRGVmaW5lLV9HTlVfU09VUkNFLWZvci1NUkVNQVBfTUFZTU9WRS1kZWZpbml0aW9uLnBhdGNoCmluZGV4IDNlNzljOWYuLjQ2Mjk3NmQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHRwL2x0cC8wMDIxLURlZmluZS1fR05VX1NPVVJDRS1mb3ItTVJFTUFQX01BWU1PVkUtZGVmaW5pdGlvbi5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2x0cC9sdHAvMDAyMS1EZWZpbmUtX0dOVV9TT1VSQ0UtZm9yLU1SRU1BUF9NQVlNT1ZFLWRlZmluaXRpb24ucGF0Y2gKQEAgLTE4LDEwICsxOCwxMCBAQAogIHRlc3RjYXNlcy9rZXJuZWwvc3lzY2FsbHMvbXJlbWFwL21yZW1hcDAzLmMgfCAyICsrCiAgMyBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIAotZGlmZiAtLWdpdCBhL3Rlc3RjYXNlcy9rZXJuZWwvc3lzY2FsbHMvbXJlbWFwL21yZW1hcDAxLmMgYi90ZXN0Y2FzZXMva2VybmVsL3N5c2NhbGxzL21yZW1hcC9tcmVtYXAwMS5jCi1pbmRleCBkNjNkMWU0Li4yNGNhMTc0IDEwMDY0NAotLS0tIGEvdGVzdGNhc2VzL2tlcm5lbC9zeXNjYWxscy9tcmVtYXAvbXJlbWFwMDEuYwotKysrIGIvdGVzdGNhc2VzL2tlcm5lbC9zeXNjYWxscy9tcmVtYXAvbXJlbWFwMDEuYworSW5kZXg6IGdpdC90ZXN0Y2FzZXMva2VybmVsL3N5c2NhbGxzL21yZW1hcC9tcmVtYXAwMS5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2l0Lm9yaWcvdGVzdGNhc2VzL2tlcm5lbC9zeXNjYWxscy9tcmVtYXAvbXJlbWFwMDEuYworKysrIGdpdC90ZXN0Y2FzZXMva2VybmVsL3N5c2NhbGxzL21yZW1hcC9tcmVtYXAwMS5jCiBAQCAtNzYsMTAgKzc2LDEyIEBACiAgICovCiAgI2luY2x1ZGUgPHVuaXN0ZC5oPgpAQCAtMzUsMTEgKzM1LDExIEBACiArI3VuZGVmIF9HTlVfU09VUkNFCiAgCiAgI2luY2x1ZGUgInRlc3QuaCIKLSAKLWRpZmYgLS1naXQgYS90ZXN0Y2FzZXMva2VybmVsL3N5c2NhbGxzL21yZW1hcC9tcmVtYXAwMi5jIGIvdGVzdGNhc2VzL2tlcm5lbC9zeXNjYWxscy9tcmVtYXAvbXJlbWFwMDIuYwotaW5kZXggNWE1MWI5YS4uYTUzMGE2YiAxMDA2NDQKLS0tLSBhL3Rlc3RjYXNlcy9rZXJuZWwvc3lzY2FsbHMvbXJlbWFwL21yZW1hcDAyLmMKLSsrKyBiL3Rlc3RjYXNlcy9rZXJuZWwvc3lzY2FsbHMvbXJlbWFwL21yZW1hcDAyLmMKKyAjaW5jbHVkZSAic2FmZV9tYWNyb3MuaCIKK0luZGV4OiBnaXQvdGVzdGNhc2VzL2tlcm5lbC9zeXNjYWxscy9tcmVtYXAvbXJlbWFwMDIuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdpdC5vcmlnL3Rlc3RjYXNlcy9rZXJuZWwvc3lzY2FsbHMvbXJlbWFwL21yZW1hcDAyLmMKKysrKyBnaXQvdGVzdGNhc2VzL2tlcm5lbC9zeXNjYWxscy9tcmVtYXAvbXJlbWFwMDIuYwogQEAgLTc1LDkgKzc1LDExIEBACiAgI2luY2x1ZGUgPGVycm5vLmg+CiAgI2luY2x1ZGUgPHVuaXN0ZC5oPgpAQCAtNTIsMTAgKzUyLDEwIEBACiAgCiAgI2luY2x1ZGUgInRlc3QuaCIKICAKLWRpZmYgLS1naXQgYS90ZXN0Y2FzZXMva2VybmVsL3N5c2NhbGxzL21yZW1hcC9tcmVtYXAwMy5jIGIvdGVzdGNhc2VzL2tlcm5lbC9zeXNjYWxscy9tcmVtYXAvbXJlbWFwMDMuYwotaW5kZXggMTJlMzgyOS4uOWIzOWY4YiAxMDA2NDQKLS0tLSBhL3Rlc3RjYXNlcy9rZXJuZWwvc3lzY2FsbHMvbXJlbWFwL21yZW1hcDAzLmMKLSsrKyBiL3Rlc3RjYXNlcy9rZXJuZWwvc3lzY2FsbHMvbXJlbWFwL21yZW1hcDAzLmMKK0luZGV4OiBnaXQvdGVzdGNhc2VzL2tlcm5lbC9zeXNjYWxscy9tcmVtYXAvbXJlbWFwMDMuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdpdC5vcmlnL3Rlc3RjYXNlcy9rZXJuZWwvc3lzY2FsbHMvbXJlbWFwL21yZW1hcDAzLmMKKysrKyBnaXQvdGVzdGNhc2VzL2tlcm5lbC9zeXNjYWxscy9tcmVtYXAvbXJlbWFwMDMuYwogQEAgLTc2LDkgKzc2LDExIEBACiAgI2luY2x1ZGUgPGVycm5vLmg+CiAgI2luY2x1ZGUgPHVuaXN0ZC5oPgpAQCAtNjgsNiArNjgsMyBAQAogIAogICNpbmNsdWRlICJ0ZXN0LmgiCiAgCi0tLSAKLTIuNy4wCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHRwL2x0cC8wMDI1LW1jX2dldGhvc3QtaW5jbHVkZS1zeXMtdHlwZXMuaC5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHRwL2x0cC8wMDI1LW1jX2dldGhvc3QtaW5jbHVkZS1zeXMtdHlwZXMuaC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWZjYmE2My4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2x0cC9sdHAvMDAyNS1tY19nZXRob3N0LWluY2x1ZGUtc3lzLXR5cGVzLmgucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi1Gcm9tIDlkMTRlZGZjMTJlZWZhYzkwMGRkNTQ3MjlhODhiM2NjZjkxYzFjNDMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotRGF0ZTogRnJpLCA4IEphbiAyMDE2IDA3OjE4OjE1ICswMDAwCi1TdWJqZWN0OiBbUEFUQ0ggMjUvMzJdIG1jX2dldGhvc3Q6IGluY2x1ZGUgc3lzL3R5cGVzLmgKLQotRml4IGJ1aWxkIG9uIG11c2wKLWVycm9yOiB1bmtub3duIHR5cGUgbmFtZSAndV9jaGFyJwotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLS0tLQotIHRlc3RjYXNlcy9uZXR3b3JrL211bHRpY2FzdC9tY19nZXRob3N0L21jX2dldGhvc3QuYyB8IDEgKwotIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQotCi1kaWZmIC0tZ2l0IGEvdGVzdGNhc2VzL25ldHdvcmsvbXVsdGljYXN0L21jX2dldGhvc3QvbWNfZ2V0aG9zdC5jIGIvdGVzdGNhc2VzL25ldHdvcmsvbXVsdGljYXN0L21jX2dldGhvc3QvbWNfZ2V0aG9zdC5jCi1pbmRleCA1YjlhNzkwLi5jNzk5ZTJhIDEwMDY0NAotLS0tIGEvdGVzdGNhc2VzL25ldHdvcmsvbXVsdGljYXN0L21jX2dldGhvc3QvbWNfZ2V0aG9zdC5jCi0rKysgYi90ZXN0Y2FzZXMvbmV0d29yay9tdWx0aWNhc3QvbWNfZ2V0aG9zdC9tY19nZXRob3N0LmMKLUBAIC02LDYgKzYsNyBAQAotIAotICNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KLSAjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgotKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSAjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgotICNpbmNsdWRlIDxhcnBhL2luZXQuaD4KLSAjaW5jbHVkZSA8YXJwYS9uYW1lc2VyLmg+Ci0tLSAKLTIuNy4wCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHRwL2x0cC8wMDI3LXN5c2NvbmYwMS1Vc2UtX1NDXzJfQ19WRVJTSU9OLWNvbmRpdGlvbmFsbHkucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2x0cC9sdHAvMDAyNy1zeXNjb25mMDEtVXNlLV9TQ18yX0NfVkVSU0lPTi1jb25kaXRpb25hbGx5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZGY2ZjI3Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHRwL2x0cC8wMDI3LXN5c2NvbmYwMS1Vc2UtX1NDXzJfQ19WRVJTSU9OLWNvbmRpdGlvbmFsbHkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi1Gcm9tIDE0NzEwMTIxNjRiYThmMjYwNDZkNGIxY2U1NTMxYTBkOTI4MDVlZjUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBEZW5na2UgRHUgPGRlbmdrZS5kdUB3aW5kcml2ZXIuY29tPgotRGF0ZTogV2VkLCA4IEZlYiAyMDE3IDE2OjIxOjE2ICswODAwCi1TdWJqZWN0OiBbUEFUQ0ggNC81XSBzeXNjb25mMDE6IFVzZSBfU0NfMl9DX1ZFUlNJT04gY29uZGl0aW9uYWxseQotCi1fU0NfMl9DX1ZFUlNJT04gaXMgbm90IGF2YWlsYWJsZSBvbiBtdXNsCi0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1TaWduZWQtb2ZmLWJ5OiBEZW5na2UgRHUgPGRlbmdrZS5kdUB3aW5kcml2ZXIuY29tPgotCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLS0tLQotIHRlc3RjYXNlcy9rZXJuZWwvc3lzY2FsbHMvc3lzY29uZi9zeXNjb25mMDEuYyB8IDIgKysKLSAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS90ZXN0Y2FzZXMva2VybmVsL3N5c2NhbGxzL3N5c2NvbmYvc3lzY29uZjAxLmMgYi90ZXN0Y2FzZXMva2VybmVsL3N5c2NhbGxzL3N5c2NvbmYvc3lzY29uZjAxLmMKLWluZGV4IDU4M2RlZWYuLmRlOTM2OTUgMTAwNjQ0Ci0tLS0gYS90ZXN0Y2FzZXMva2VybmVsL3N5c2NhbGxzL3N5c2NvbmYvc3lzY29uZjAxLmMKLSsrKyBiL3Rlc3RjYXNlcy9rZXJuZWwvc3lzY2FsbHMvc3lzY29uZi9zeXNjb25mMDEuYwotQEAgLTEwMyw3ICsxMDMsOSBAQCBpbnQgbWFpbih2b2lkKQotIAl0ZXN0X3N5c2NvbmYoX1NDXzJfQ19CSU5EKTsKLSAJdGVzdF9zeXNjb25mKF9TQ18yX0NfREVWKTsKLSAjaWZkZWYgX1NDXzJfQ19WRVJTSU9OCi0rI2lmZGVmIF9fR0xJQkNfXwotIAl0ZXN0X3N5c2NvbmYoX1NDXzJfQ19WRVJTSU9OKTsKLSsjZW5kaWYKLSAjZWxzZQotIAl0c3RfcmVzbShUQ09ORiwgIl9TQ18yX0NfVkVSU0lPTiBub3QgZGVmaW5lZCIpOwotICNlbmRpZgotLS0gCi0yLjcuNAotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2x0cC9sdHAvMDAzMC1saWItVXNlLVBUSFJFQURfTVVURVhfUkVDVVJTSVZFLWluLXBsYWNlLW9mLVBUSFJFQURfLnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sdHAvbHRwLzAwMzAtbGliLVVzZS1QVEhSRUFEX01VVEVYX1JFQ1VSU0lWRS1pbi1wbGFjZS1vZi1QVEhSRUFEXy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWZhNmQwNi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2x0cC9sdHAvMDAzMC1saWItVXNlLVBUSFJFQURfTVVURVhfUkVDVVJTSVZFLWluLXBsYWNlLW9mLVBUSFJFQURfLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotRnJvbSAwMGJhN2NkZDA2MDhiMTUwNzAyNzQyOGY5Zjg3YjFjYjk3NDczNzJiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogRGVuZ2tlIER1IDxkZW5na2UuZHVAd2luZHJpdmVyLmNvbT4KLURhdGU6IFRodSwgOSBGZWIgMjAxNyAxNTo1NDo1MyArMDgwMAotU3ViamVjdDogW1BBVENIXSBsaWI6IFVzZSBQVEhSRUFEX01VVEVYX1JFQ1VSU0lWRSBpbiBwbGFjZSBvZgotIFBUSFJFQURfUkVDVVJTSVZFX01VVEVYX0lOSVRJQUxJWkVSX05QIGZvciBub24tZ2xpYmMKLQotZS5nLiBtdXNsIGRvZXMgbm90IGltcGxlbWVudCB0aGUgX05QIG11dGV4IHR5cGVzCi0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1TaWduZWQtb2ZmLWJ5OiBEZW5na2UgRHUgPGRlbmdrZS5kdUB3aW5kcml2ZXIuY29tPgotCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLS0tLQotIGxpYi90c3RfcmVzLmMgfCA0ICsrKysKLSAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9saWIvdHN0X3Jlcy5jIGIvbGliL3RzdF9yZXMuYwotaW5kZXggNjFkYWFlYi4uNDM1MjI0ZiAxMDA2NDQKLS0tLSBhL2xpYi90c3RfcmVzLmMKLSsrKyBiL2xpYi90c3RfcmVzLmMKLUBAIC03OSw3ICs3OSwxMSBAQCBpbnQgVEVTVF9FUlJOTzsKLSAJYXNzZXJ0KHN0cmxlbihidWYpID4gMCk7CQlcCi0gfSB3aGlsZSAoMCkKLSAKLSsjaWZkZWYgX19HTElCQ19fCi0gc3RhdGljIHB0aHJlYWRfbXV0ZXhfdCB0bXV0ZXggPSBQVEhSRUFEX1JFQ1VSU0lWRV9NVVRFWF9JTklUSUFMSVpFUl9OUDsKLSsjZWxzZQotK3N0YXRpYyBwdGhyZWFkX211dGV4X3QgdG11dGV4ID0geyAgUFRIUkVBRF9NVVRFWF9SRUNVUlNJVkUgfTsKLSsjZW5kaWYKLSAKLSBzdGF0aWMgdm9pZCBjaGVja19lbnYodm9pZCk7Ci0gc3RhdGljIHZvaWQgdHN0X2NvbmRlbnNlKGludCB0bnVtLCBpbnQgdHR5cGUsIGNvbnN0IGNoYXIgKnRtZXNnKTsKLS0tIAotMi43LjQKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sdHAvbHRwLzAwMzMtc2htYXQxLUNvdmVyLUdOVS1zcGVjaWZpYy1jb2RlLXVuZGVyLV9fVVNFX0dOVS5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHRwL2x0cC8wMDMzLXNobWF0MS1Db3Zlci1HTlUtc3BlY2lmaWMtY29kZS11bmRlci1fX1VTRV9HTlUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg2OGUxY2YuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sdHAvbHRwLzAwMzMtc2htYXQxLUNvdmVyLUdOVS1zcGVjaWZpYy1jb2RlLXVuZGVyLV9fVVNFX0dOVS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQxICswLDAgQEAKLUZyb20gNWUzZGVhNjY5ZTViMGI3NjlmMzIyZDU0YTNiYjlmMzIwYjUzMjdkYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1EYXRlOiBUdWUsIDIyIE1hciAyMDE2IDE1OjQ3OjE0ICswMDAwCi1TdWJqZWN0OiBbUEFUQ0ggMjYvMjZdIHNobWF0MTogQ292ZXIgR05VIHNwZWNpZmljIGNvZGUgdW5kZXIgX19VU0VfR05VCi0KLW9uIHg4Niwgd2UgdXNlIHVjX21jb250ZXh0IGVsZW1lbnQgZnJvbSBzaWdjb250ZXh0Ci13aGljaCBpcyBtYXJrZWQgZ251LXNwZWNpZmljIGluIGdsaWJjLCB0aGlzIHBhdGNoCi1hZGRzIHRoaXMgY29uZGl0aW9uIGFyb3VuZCB0aGUgY29kZQotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotIHRlc3RjYXNlcy9rZXJuZWwvbWVtL210ZXN0MDYvc2htYXQxLmMgfCA0ICsrLS0KLSAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvdGVzdGNhc2VzL2tlcm5lbC9tZW0vbXRlc3QwNi9zaG1hdDEuYyBiL3Rlc3RjYXNlcy9rZXJuZWwvbWVtL210ZXN0MDYvc2htYXQxLmMKLWluZGV4IDBkNmQ3YTQuLmJlZTY5ZjYgMTAwNjQ0Ci0tLS0gYS90ZXN0Y2FzZXMva2VybmVsL21lbS9tdGVzdDA2L3NobWF0MS5jCi0rKysgYi90ZXN0Y2FzZXMva2VybmVsL21lbS9tdGVzdDA2L3NobWF0MS5jCi1AQCAtMTExLDcgKzExMSw3IEBAIGludCBkb25lX3NobWF0ID0gMDsJCS8qIGRpc2FsbG93IHJlYWQgYW5kIHdyaXRlcyBiZWZvcmUgc2htYXQgICAgICAqLwotIHN0YXRpYyB2b2lkIHNpZ19oYW5kbGVyKGludCBzaWduYWwsCS8qIHNpZ25hbCBudW1iZXIsIHNldCB0byBoYW5kbGUgU0lHQUxSTSAgICAgICAqLwotIAkJCWludCBjb2RlLCBzdHJ1Y3QgdWNvbnRleHQgKnV0KQotIHsJCQkJLyogY29udGFpbnMgcG9pbnRlciB0byBzaWdjb250ZXh0IHN0cnVjdHVyZSAgICovCi0tI2lmZGVmIF9faTM4Nl9fCi0rI2lmIGRlZmluZWQoX19pMzg2X18pICYmIGRlZmluZWQoX19VU0VfR05VKQotIAl1bnNpZ25lZCBsb25nIGV4Y2VwdDsJLyogZXhjZXB0aW9uIHR5cGUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0gCWludCByZXQgPSAwOwkJLyogZXhpdCBjb2RlIGZyb20gc2lnbmFsIGhhbmRsZXIuICAgICAgICAgICAgICovCi0gCXN0cnVjdCBzaWdjb250ZXh0ICpzY3AgPQkvKiBwb2ludGVyIHRvIHNpZ2NvbnRleHQgc3RydWN0dXJlICAgICAgICAgICAgKi8KLUBAIC0xMjIsNyArMTIyLDcgQEAgc3RhdGljIHZvaWQgc2lnX2hhbmRsZXIoaW50IHNpZ25hbCwJLyogc2lnbmFsIG51bWJlciwgc2V0IHRvIGhhbmRsZSBTSUdBTFJNCi0gCQlmcHJpbnRmKHN0ZG91dCwgIlRlc3QgZW5kZWQsIHN1Y2Nlc3NcbiIpOwotIAkJZXhpdCgwKTsKLSAJfQotLSNpZmRlZiBfX2kzODZfXwotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSAmJiBkZWZpbmVkKF9fVVNFX0dOVSkKLSAJZWxzZSB7Ci0gCQlleGNlcHQgPSBzY3AtPnRyYXBubzsKLSAJCWZwcmludGYoc3RkZXJyLCAic2lnbmFsIGNhdWdodCAtIFslZF0gIiwgc2lnbmFsKTsKLS0tIAotMS45LjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sdHAvbHRwLzAwMzctbHRwLWZpeC1QQUdFX1NJWkUtcmVkZWZpbml0aW9uLWFuZC1PX0NSRUFULXVuZGVjbGVhci5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHRwL2x0cC8wMDM3LWx0cC1maXgtUEFHRV9TSVpFLXJlZGVmaW5pdGlvbi1hbmQtT19DUkVBVC11bmRlY2xlYXIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4NzM4YWUuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sdHAvbHRwLzAwMzctbHRwLWZpeC1QQUdFX1NJWkUtcmVkZWZpbml0aW9uLWFuZC1PX0NSRUFULXVuZGVjbGVhci5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExMyArMCwwIEBACi1Gcm9tIGE5ZDU1OTVkMmZhMmFiMjUyZjFjYWJmNjNmNGI2NWMzZWZiYWZlYjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBEZW5na2UgRHUgPGRlbmdrZS5kdUB3aW5kcml2ZXIuY29tPgotRGF0ZTogVGh1LCAxMCBBdWcgMjAxNyAxNToyNzowMyArMDgwMAotU3ViamVjdDogW1BBVENIXSBsdHA6IGZpeCBQQUdFX1NJWkUgcmVkZWZpbml0aW9uIGFuZCBPX0NSRUFUIHVuZGVjbGVhciB3aGVuCi0gYnVpbGQgd2l0aCBtdXNsCi0KLWVycm9yIDE6Ci0KLXxzdGFja19jbGFzaC5jOjUwOjIyOiBlcnJvcjogZXhwZWN0ZWQgaWRlbnRpZmllciBvciAnKCcgYmVmb3JlIG51bWVyaWMgY29uc3RhbnQKLXwgc3RhdGljIHVuc2lnbmVkIGxvbmcgUEFHRV9TSVpFOwotCi1UaGlzIGlzIGJlY2F1c2UgdGhlIG11c2wgbGliYyBhbHJlYWR5IGNvbnRhaW4gUEFHRV9TSVpFIGRlZmluaXRpb24gaW4gbGltaXRzLmMsCi13ZSBjYW4gY2hlY2sgaXQgaGVyZToKLQotICAgIGh0dHBzOi8vZ2l0Lm11c2wtbGliYy5vcmcvY2dpdC9tdXNsL3RyZWUvaW5jbHVkZS9saW1pdHMuaCNuNDMKLQotZXJyb3IgMjoKLQotfGNrMDEuYzoxNTc6MjI6IGVycm9yOiAnT19DUkVBVCcgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pOyBkaWQgeW91IG1lYW4gJ1NfSVJFQUQnPwotfCAgIGZkID0gb3BlbihmaWxlbmFtZSwgT19DUkVBVCB8IE9fVFJVTkMgfCBPX1JEV1IsIDA2NDQpOwotfCAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fgotfCAgICAgICAgICAgICAgICAgICAgICAgU19JUkVBRAotCi1UaGlzIGlzIGJlY2F1c2UgdGhlIG11c2wgbGliYyBwdXQgdGhvc2UgaW4gZmNudGwuaCwgc28gd2Ugc2hvdWxkIGluY2x1ZGUgdGhhdAotZmlsZS4KLQotVXBzdHJlYW0tU3RhdHVzOiBTdWJtaXR0ZWQgWyBodHRwczovL2dpdGh1Yi5jb20vbGludXgtdGVzdC1wcm9qZWN0L2x0cC9wdWxsLzE5NCBdCi0KLVNpZ25lZC1vZmYtYnk6IERlbmdrZSBEdSA8ZGVuZ2tlLmR1QHdpbmRyaXZlci5jb20+Ci0tLS0KLSB0ZXN0Y2FzZXMvY3ZlL3N0YWNrX2NsYXNoLmMgICAgICAgICAgICAgICB8IDEyICsrKysrKy0tLS0tLQotIHRlc3RjYXNlcy9rZXJuZWwvc3lzY2FsbHMvZmxvY2svZmxvY2swMS5jIHwgIDEgKwotIHRlc3RjYXNlcy9rZXJuZWwvc3lzY2FsbHMvZmxvY2svZmxvY2swMi5jIHwgIDEgKwotIDMgZmlsZXMgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvdGVzdGNhc2VzL2N2ZS9zdGFja19jbGFzaC5jIGIvdGVzdGNhc2VzL2N2ZS9zdGFja19jbGFzaC5jCi1pbmRleCAyZWYxYTgyLi43YzQ1OTkxIDEwMDY0NAotLS0tIGEvdGVzdGNhc2VzL2N2ZS9zdGFja19jbGFzaC5jCi0rKysgYi90ZXN0Y2FzZXMvY3ZlL3N0YWNrX2NsYXNoLmMKLUBAIC00Nyw3ICs0Nyw3IEBACi0gI2luY2x1ZGUgInRzdF90ZXN0LmgiCi0gI2luY2x1ZGUgInRzdF9zYWZlX3N0ZGlvLmgiCi0gCi0tc3RhdGljIHVuc2lnbmVkIGxvbmcgUEFHRV9TSVpFOwotK3N0YXRpYyB1bnNpZ25lZCBsb25nIFBBR0VfU0laRV90c3Q7Ci0gc3RhdGljIHVuc2lnbmVkIGxvbmcgUEFHRV9NQVNLOwotIHN0YXRpYyB1bnNpZ25lZCBsb25nIEdBUF9QQUdFUyA9IDI1NjsKLSBzdGF0aWMgdW5zaWduZWQgbG9uZyBUSFJFU0hPTEQ7Ci1AQCAtNjYsNyArNjYsNyBAQCB2b2lkIGV4aGF1c3Rfc3RhY2tfaW50b19zaWdzZWd2KHZvaWQpCi0gCWV4aGF1c3Rfc3RhY2tfaW50b19zaWdzZWd2KCk7Ci0gfQotIAotLSNkZWZpbmUgTUFQUEVEX0xFTiBQQUdFX1NJWkUKLSsjZGVmaW5lIE1BUFBFRF9MRU4gUEFHRV9TSVpFX3RzdAotIHN0YXRpYyB1bnNpZ25lZCBsb25nIG1hcHBlZF9hZGRyOwotIAotIHZvaWQgc2Vndl9oYW5kbGVyKGludCBzaWcsIHNpZ2luZm9fdCAqaW5mbywgdm9pZCAqZGF0YSBMVFBfQVRUUklCVVRFX1VOVVNFRCkKLUBAIC0xNTAsNyArMTUwLDcgQEAgdm9pZCBkb19jaGlsZCh2b2lkKQotIAlzdGFja190IHNpZ25hbF9zdGFjazsKLSAJc3RydWN0IHNpZ2FjdGlvbiBzZWd2X3NpZyA9IHsuc2Ffc2lnYWN0aW9uID0gc2Vndl9oYW5kbGVyLCAuc2FfZmxhZ3MgPSBTQV9PTlNUQUNLfFNBX1NJR0lORk99OwotIAl2b2lkICptYXA7Ci0tCXVuc2lnbmVkIGxvbmcgZ2FwID0gR0FQX1BBR0VTICogUEFHRV9TSVpFOwotKwl1bnNpZ25lZCBsb25nIGdhcCA9IEdBUF9QQUdFUyAqIFBBR0VfU0laRV90c3Q7Ci0gCXN0cnVjdCBybGltaXQgcmxpbWl0OwotIAotIAlybGltaXQucmxpbV9jdXIgPSBybGltaXQucmxpbV9tYXggPSBSTElNX0lORklOSVRZOwotQEAgLTIwMCw4ICsyMDAsOCBAQCB2b2lkIHNldHVwKHZvaWQpCi0gewotIAljaGFyIGJ1Zls0MDk2XSwgKnA7Ci0gCi0tCVBBR0VfU0laRSA9IHN5c2NvbmYoX1NDX1BBR0VTSVpFKTsKLS0JUEFHRV9NQVNLID0gfihQQUdFX1NJWkUgLSAxKTsKLSsJUEFHRV9TSVpFX3RzdCA9IHN5c2NvbmYoX1NDX1BBR0VTSVpFKTsKLSsJUEFHRV9NQVNLID0gfihQQUdFX1NJWkVfdHN0IC0gMSk7Ci0gCi0gCWJ1Zls0MDk1XSA9ICdcMCc7Ci0gCVNBRkVfRklMRV9TQ0FORigiL3Byb2MvY21kbGluZSIsICIlNDA5NVteXG5dIiwgYnVmKTsKLUBAIC0yMTQsNyArMjE0LDcgQEAgdm9pZCBzZXR1cCh2b2lkKQotIAkJdHN0X3JlcyhUSU5GTywgInN0YWNrX2d1YXJkX2dhcCA9ICVsZCIsIEdBUF9QQUdFUyk7Ci0gCX0KLSAKLS0JVEhSRVNIT0xEID0gKEdBUF9QQUdFUyAtIDEpICogUEFHRV9TSVpFOwotKwlUSFJFU0hPTEQgPSAoR0FQX1BBR0VTIC0gMSkgKiBQQUdFX1NJWkVfdHN0OwotIAotIAl7Ci0gCQl2b2xhdGlsZSBpbnQgKmEgPSBhbGxvY2EoMTI4KTsKLWRpZmYgLS1naXQgYS90ZXN0Y2FzZXMva2VybmVsL3N5c2NhbGxzL2Zsb2NrL2Zsb2NrMDEuYyBiL3Rlc3RjYXNlcy9rZXJuZWwvc3lzY2FsbHMvZmxvY2svZmxvY2swMS5jCi1pbmRleCAzZTE3YmU0Li4wNmQ4OWUzIDEwMDY0NAotLS0tIGEvdGVzdGNhc2VzL2tlcm5lbC9zeXNjYWxscy9mbG9jay9mbG9jazAxLmMKLSsrKyBiL3Rlc3RjYXNlcy9rZXJuZWwvc3lzY2FsbHMvZmxvY2svZmxvY2swMS5jCi1AQCAtNjksNiArNjksNyBAQAotICNpbmNsdWRlIDxzdGRpby5oPgotICNpbmNsdWRlIDxzeXMvd2FpdC5oPgotICNpbmNsdWRlIDxzeXMvZmlsZS5oPgotKyNpbmNsdWRlIDxmY250bC5oPgotICNpbmNsdWRlICJ0ZXN0LmgiCi0gCi0gdm9pZCBzZXR1cCh2b2lkKTsKLWRpZmYgLS1naXQgYS90ZXN0Y2FzZXMva2VybmVsL3N5c2NhbGxzL2Zsb2NrL2Zsb2NrMDIuYyBiL3Rlc3RjYXNlcy9rZXJuZWwvc3lzY2FsbHMvZmxvY2svZmxvY2swMi5jCi1pbmRleCA0MTRkZjY4Li45ZGRmNzI5IDEwMDY0NAotLS0tIGEvdGVzdGNhc2VzL2tlcm5lbC9zeXNjYWxscy9mbG9jay9mbG9jazAyLmMKLSsrKyBiL3Rlc3RjYXNlcy9rZXJuZWwvc3lzY2FsbHMvZmxvY2svZmxvY2swMi5jCi1AQCAtNzUsNiArNzUsNyBAQAotICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSAjaW5jbHVkZSA8c3lzL2ZpbGUuaD4KLSAjaW5jbHVkZSA8c3lzL3dhaXQuaD4KLSsjaW5jbHVkZSA8ZmNudGwuaD4KLSAjaW5jbHVkZSA8ZXJybm8uaD4KLSAjaW5jbHVkZSA8c3RkaW8uaD4KLSAjaW5jbHVkZSAidGVzdC5oIgotLS0gCi0yLjcuNAotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2x0cC9sdHAvMDAzOC1jb21tYW5kcy1nZGIwMS1yZXBsYWNlLXN0ZGluLXdpdGgtZGV2LW51bGwucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2x0cC9sdHAvMDAzOC1jb21tYW5kcy1nZGIwMS1yZXBsYWNlLXN0ZGluLXdpdGgtZGV2LW51bGwucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY3YzBhNGIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sdHAvbHRwLzAwMzgtY29tbWFuZHMtZ2RiMDEtcmVwbGFjZS1zdGRpbi13aXRoLWRldi1udWxsLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotRnJvbSAyZjZhYjhmNjk0YjI2YjdmMjU2NjYyNGY2ZDFmMjM3ODhkNmFiOGEwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSmFuIFN0YW5jZWsgPGpzdGFuY2VrQHJlZGhhdC5jb20+Ci1EYXRlOiBNb24sIDExIFNlcCAyMDE3IDEyOjU3OjU4ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIGNvbW1hbmRzL2dkYjAxOiByZXBsYWNlIHN0ZGluIHdpdGggL2Rldi9udWxsCi0KLUlmIHRoaXMgdGVzdGNhc2UgcnVucyBhcyBiYWNrZ3JvdW5kIHByb2Nlc3MsIGdkYiBjYW4gcmVjZWl2ZQotU0lHVFRPVSBhbmQgdGhlbiB0ZXN0Y2FzZSBnZXRzIHN0dWNrLgotCi1TaWduZWQtb2ZmLWJ5OiBKYW4gU3RhbmNlayA8anN0YW5jZWtAcmVkaGF0LmNvbT4KLQotVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydAotW2h0dHBzOi8vZ2l0aHViLmNvbS9saW51eC10ZXN0LXByb2plY3QvbHRwL2NvbW1pdC8yZjZhYjhmNjk0YjI2YjdmMjU2NjYyNGY2ZDFmMjM3ODhkNmFiOGEwXQotCi1TaWduZWQtb2ZmLWJ5OiBZaSBaaGFvIDx5aS56aGFvQHdpbmRyaXZlci5jb20+Ci0tLS0KLSB0ZXN0Y2FzZXMvY29tbWFuZHMvZ2RiL2dkYjAxLnNoIHwgMiArLQotIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvdGVzdGNhc2VzL2NvbW1hbmRzL2dkYi9nZGIwMS5zaCBiL3Rlc3RjYXNlcy9jb21tYW5kcy9nZGIvZ2RiMDEuc2gKLWluZGV4IDA3YWUzNmYuLmUzYTViNTEgMTAwNzU1Ci0tLS0gYS90ZXN0Y2FzZXMvY29tbWFuZHMvZ2RiL2dkYjAxLnNoCi0rKysgYi90ZXN0Y2FzZXMvY29tbWFuZHMvZ2RiL2dkYjAxLnNoCi1AQCAtMjksNyArMjksNyBAQCBUU1RfTkVFRFNfQ01EUz0iZ2RiIC9iaW4vY2F0IgotIAotIHNpbXBsZV90ZXN0KCkKLSB7Ci0tCWdkYiAvYmluL2NhdCAtZXggInJ1biAvZXRjL3Bhc3N3ZCIgLWV4IHF1aXQKLSsJZ2RiIC9iaW4vY2F0IC1leCAicnVuIC9ldGMvcGFzc3dkIiAtZXggcXVpdCA8IC9kZXYvbnVsbAotIAlSQz0kPwotIAlpZiBbICRSQyAtZXEgMCBdIDsgdGhlbgotIAkJdHN0X3JlcyBUUEFTUyAiZ2RiIGF0dGFjaGVkIHRvIHByb2Nlc3MgYW5kIGNvbXBsZXRlZCBydW4iCi0tLSAKLTIuNy40Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHRwL2x0cC8wMDM5LWNvbW1hbmRzLWFyMDEtRml4LWZvci10ZXN0LWluLWRldGVybWluaXN0aWMtbW9kZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHRwL2x0cC8wMDM5LWNvbW1hbmRzLWFyMDEtRml4LWZvci10ZXN0LWluLWRldGVybWluaXN0aWMtbW9kZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lN2M5MjdlCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sdHAvbHRwLzAwMzktY29tbWFuZHMtYXIwMS1GaXgtZm9yLXRlc3QtaW4tZGV0ZXJtaW5pc3RpYy1tb2RlLnBhdGNoCkBAIC0wLDAgKzEsMjUyIEBACitGcm9tIDA0ZGE5NDc4ODg3ZTcwNWVhMzhlNGYwOTc0OTJkYTIwZTY1MTY4NmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBHdWFuZ3dlbiBGZW5nIDxmZW5nZ3ctZm5zdEBjbi5mdWppdHN1LmNvbT4KK0RhdGU6IFdlZCwgMTMgU2VwIDIwMTcgMTU6NDg6NDIgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gY29tbWFuZHMvYXIwMTogRml4IGZvciB0ZXN0IGluIGRldGVybWluaXN0aWMgbW9kZQorCitJZiBiaW51dGlscyB3YXMgY29uZmlndXJlZCB3aXRoIC0tZW5hYmxlLWRldGVybWluaXN0aWMtYXJjaGl2ZXMsCithciB3aWxsIHJ1biBpbiBkZXRlcm1pbmlzdGljIG1vZGUgYnkgZGVmYXVsdCwgYW5kIHVzZSB6ZXJvIGZvcgordGltZXN0YW1wcyBhbmQgdWlkcy9naWRzLCB3aGljaCBtYWtlcyB0aGUgdGVzdCBjYXNlIGFibm9ybWFsLgorCitGaXggdGhpcyBieSBhZGQgdGhlICJVIiBtb2RpZmllciB3aGVuIGRldGVybWluaXN0aWMgbW9kZSBpcyBkZWZhdWx0LgorCitTaWduZWQtb2ZmLWJ5OiBHdWFuZ3dlbiBGZW5nIDxmZW5nZ3ctZm5zdEBjbi5mdWppdHN1LmNvbT4KK1NpZ25lZC1vZmYtYnk6IEZlaSBKaWUgPGZlaWouZm5zdEBjbi5mdWppdHN1LmNvbT4KKworVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydAorW2h0dHA6Ly9saXN0cy5saW51eC5pdC9waXBlcm1haWwvbHRwLzIwMTctU2VwdGVtYmVyLzAwNTY2OC5odG1sXQorCitTaWduZWQtb2ZmLWJ5OiBZaSBaaGFvIDx5aS56aGFvQHdpbmRyaXZlci5jb20+CistLS0KKyB0ZXN0Y2FzZXMvY29tbWFuZHMvYXIvYXIwMSB8IDkyICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNTIgaW5zZXJ0aW9ucygrKSwgNDAgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS90ZXN0Y2FzZXMvY29tbWFuZHMvYXIvYXIwMSBiL3Rlc3RjYXNlcy9jb21tYW5kcy9hci9hcjAxCitpbmRleCBkZGFiMmUwLi5kNjg4Zjc2IDEwMDY0NAorLS0tIGEvdGVzdGNhc2VzL2NvbW1hbmRzL2FyL2FyMDEKKysrKyBiL3Rlc3RjYXNlcy9jb21tYW5kcy9hci9hcjAxCitAQCAtMjMsMTQgKzIzLDI2IEBACisgIyBUaGlzIGlzIGEgYmFzaWMgYXIgY29tbWFuZCB0ZXN0LgorICMKKyBUU1RfQ05UPTE3CisrVFNUX1NFVFVQPXNldHVwCisgVFNUX1RFU1RGVU5DPXRlc3QKKyBUU1RfTkVFRFNfVE1QRElSPTEKKyAuIHRzdF90ZXN0LnNoCisgCisrc2V0dXAoKQorK3sKKysJYXIgLS1oZWxwIHwgZ3JlcCAidXNlIHplcm8gZm9yIHRpbWVzdGFtcHMgYW5kIHVpZHMvZ2lkcyAoZGVmYXVsdCkiIFwKKysJCT4vZGV2L251bGwKKysJaWYgWyAkPyAtZXEgMCBdOyB0aGVuCisrCQlNT0Q9IlUiCisrCWVsc2UKKysJCU1PRD0iIgorKwlmaQorK30KKysKKyB0ZXN0MSgpCisgeworLQlST0QgYXIgLWNyIGxpYi5hICRUU1RfREFUQVJPT1QvZmlsZTEuaW4gJFRTVF9EQVRBUk9PVC9maWxlMy5pbgorLQlST0QgYXIgLXJhIGZpbGUxLmluIGxpYi5hICRUU1RfREFUQVJPT1QvZmlsZTIuaW4KKysJUk9EIGFyIC1jciIkTU9EIiBsaWIuYSAkVFNUX0RBVEFST09UL2ZpbGUxLmluICRUU1RfREFUQVJPT1QvZmlsZTMuaW4KKysJUk9EIGFyIC1yYSIkTU9EIiBmaWxlMS5pbiBsaWIuYSAkVFNUX0RBVEFST09UL2ZpbGUyLmluCisgCVJPRCBhciAtdCBsaWIuYSBcPiBhci5vdXQKKyAKKyAJcHJpbnRmICJmaWxlMS5pblxuZmlsZTIuaW5cbmZpbGUzLmluXG4iID4gYXIuZXhwCitAQCAtNDcsOSArNTksOSBAQCB0ZXN0MSgpCisgCisgdGVzdDIoKQorIHsKKy0JUk9EIGFyIC1jciBsaWIuYSAkVFNUX0RBVEFST09UL2ZpbGUxLmluICRUU1RfREFUQVJPT1QvZmlsZTIuaW4gXAorLQkJICAgICAgICAgJFRTVF9EQVRBUk9PVC9maWxlMy5pbiAkVFNUX0RBVEFST09UL2ZpbGU0LmluCistCVJPRCBhciAtbWEgZmlsZTEuaW4gbGliLmEgZmlsZTQuaW4KKysJUk9EIGFyIC1jciIkTU9EIiBsaWIuYSAkVFNUX0RBVEFST09UL2ZpbGUxLmluICRUU1RfREFUQVJPT1QvZmlsZTIuaW4gXAorKwkJCSAgICAgICAkVFNUX0RBVEFST09UL2ZpbGUzLmluICRUU1RfREFUQVJPT1QvZmlsZTQuaW4KKysJUk9EIGFyIC1tYSIkTU9EIiBmaWxlMS5pbiBsaWIuYSBmaWxlNC5pbgorIAlST0QgYXIgLXQgbGliLmEgXD4gYXIub3V0CisgCisgCXByaW50ZiAiZmlsZTEuaW5cbmZpbGU0LmluXG5maWxlMi5pblxuZmlsZTMuaW5cbiIgPiBhci5leHAKK0BAIC02Niw4ICs3OCw4IEBAIHRlc3QyKCkKKyAKKyB0ZXN0MygpCisgeworLQlST0QgYXIgLWNyIGxpYi5hICRUU1RfREFUQVJPT1QvZmlsZTEuaW4gJFRTVF9EQVRBUk9PVC9maWxlMy5pbgorLQlST0QgYXIgLXJiIGZpbGUzLmluIGxpYi5hICRUU1RfREFUQVJPT1QvZmlsZTIuaW4KKysJUk9EIGFyIC1jciIkTU9EIiBsaWIuYSAkVFNUX0RBVEFST09UL2ZpbGUxLmluICRUU1RfREFUQVJPT1QvZmlsZTMuaW4KKysJUk9EIGFyIC1yYiIkTU9EIiBmaWxlMy5pbiBsaWIuYSAkVFNUX0RBVEFST09UL2ZpbGUyLmluCisgCVJPRCBhciAtdCBsaWIuYSBcPiBhci5vdXQKKyAKKyAJcHJpbnRmICJmaWxlMS5pblxuZmlsZTIuaW5cbmZpbGUzLmluXG4iID4gYXIuZXhwCitAQCAtODQsOSArOTYsOSBAQCB0ZXN0MygpCisgCisgdGVzdDQoKQorIHsKKy0JUk9EIGFyIC1jciBsaWIuYSAkVFNUX0RBVEFST09UL2ZpbGUxLmluICRUU1RfREFUQVJPT1QvZmlsZTMuaW4gXAorLQkgICAgICAgICAgICAgICAgICRUU1RfREFUQVJPT1QvZmlsZTIuaW4KKy0JUk9EIGFyIC1tYiBmaWxlMy5pbiBsaWIuYSBmaWxlMi5pbgorKwlST0QgYXIgLWNyIiRNT0QiIGxpYi5hICRUU1RfREFUQVJPT1QvZmlsZTEuaW4gJFRTVF9EQVRBUk9PVC9maWxlMy5pbiBcCisrCQkJICAgICAgICRUU1RfREFUQVJPT1QvZmlsZTIuaW4KKysJUk9EIGFyIC1tYiIkTU9EIiBmaWxlMy5pbiBsaWIuYSBmaWxlMi5pbgorIAlST0QgYXIgLXQgbGliLmEgXD4gYXIub3V0CisgCisgCXByaW50ZiAiZmlsZTEuaW5cbmZpbGUyLmluXG5maWxlMy5pblxuIiA+IGFyLmV4cAorQEAgLTEwMyw3ICsxMTUsNyBAQCB0ZXN0NCgpCisgCisgdGVzdDUoKQorIHsKKy0JUk9EIGFyIC1jciBsaWIuYSAkVFNUX0RBVEFST09UL2ZpbGUxLmluIFw+IGFyLm91dAorKwlST0QgYXIgLWNyIiRNT0QiIGxpYi5hICRUU1RfREFUQVJPT1QvZmlsZTEuaW4gXD4gYXIub3V0CisgCisgCWlmIFsgLXMgYXIub3V0IF07IHRoZW4KKyAJCXRzdF9yZXMgVEZBSUwgImFyIHByb2R1Y2VkIG91dHB1dCB1bmV4cGVjdGVkbHkgKC1jKSIKK0BAIC0xMTcsNyArMTI5LDcgQEAgdGVzdDUoKQorIAorIHRlc3Q2KCkKKyB7CistCVJPRCBhciAtcWMgbGliLmEgJFRTVF9EQVRBUk9PVC9maWxlMS5pbiBcPiBhci5vdXQKKysJUk9EIGFyIC1xYyIkTU9EIiBsaWIuYSAkVFNUX0RBVEFST09UL2ZpbGUxLmluIFw+IGFyLm91dAorIAorIAlpZiBbIC1zIGFyLm91dCBdOyB0aGVuCisgCQl0c3RfcmVzIFRGQUlMICJhciBwcm9kdWNlZCBvdXRwdXQgdW5leHBlY3RlZGx5ICgtcWMpIgorQEAgLTEzMSw5ICsxNDMsOSBAQCB0ZXN0NigpCisgCisgdGVzdDcoKQorIHsKKy0JUk9EIGFyIC1jciBsaWIuYSAkVFNUX0RBVEFST09UL2ZpbGUxLmluICRUU1RfREFUQVJPT1QvZmlsZTIuaW4gXAorLQkgICAgICAgICAgICAgICAgICRUU1RfREFUQVJPT1QvZmlsZTMuaW4KKy0JUk9EIGFyIC1kIGxpYi5hIGZpbGUxLmluIGZpbGUyLmluCisrCVJPRCBhciAtY3IiJE1PRCIgbGliLmEgJFRTVF9EQVRBUk9PVC9maWxlMS5pbiAkVFNUX0RBVEFST09UL2ZpbGUyLmluIFwKKysJCQkgICAgICAgJFRTVF9EQVRBUk9PVC9maWxlMy5pbgorKwlST0QgYXIgLWQiJE1PRCIgbGliLmEgZmlsZTEuaW4gZmlsZTIuaW4KKyAJUk9EIGFyIC10IGxpYi5hIFw+IGFyLm91dAorIAorIAlwcmludGYgImZpbGUzLmluXG4iID4gYXIuZXhwCitAQCAtMTUwLDkgKzE2Miw5IEBAIHRlc3Q3KCkKKyAKKyB0ZXN0OCgpCisgeworLQlST0QgYXIgLWNyIGxpYi5hICRUU1RfREFUQVJPT1QvZmlsZTEuaW4gJFRTVF9EQVRBUk9PVC9maWxlMi5pbiBcCistCSAgICAgICAgICAgICAgICAgJFRTVF9EQVRBUk9PVC9maWxlMy5pbgorLQlST0QgYXIgLWQgbGliLmEKKysJUk9EIGFyIC1jciIkTU9EIiBsaWIuYSAkVFNUX0RBVEFST09UL2ZpbGUxLmluICRUU1RfREFUQVJPT1QvZmlsZTIuaW4gXAorKwkJCSAgICAgICAkVFNUX0RBVEFST09UL2ZpbGUzLmluCisrCVJPRCBhciAtZCIkTU9EIiBsaWIuYQorIAlST0QgYXIgLXQgbGliLmEgXD4gYXIub3V0CisgCisgCXByaW50ZiAiZmlsZTEuaW5cbmZpbGUyLmluXG5maWxlMy5pblxuIiA+IGFyLmV4cAorQEAgLTE2OSw4ICsxODEsOCBAQCB0ZXN0OCgpCisgCisgdGVzdDkoKQorIHsKKy0JUk9EIGFyIC1jciBsaWIuYSAkVFNUX0RBVEFST09UL2ZpbGUxLmluICRUU1RfREFUQVJPT1QvZmlsZTMuaW4KKy0JUk9EIGFyIC1yaSBmaWxlMy5pbiBsaWIuYSAkVFNUX0RBVEFST09UL2ZpbGUyLmluCisrCVJPRCBhciAtY3IiJE1PRCIgbGliLmEgJFRTVF9EQVRBUk9PVC9maWxlMS5pbiAkVFNUX0RBVEFST09UL2ZpbGUzLmluCisrCVJPRCBhciAtcmkiJE1PRCIgZmlsZTMuaW4gbGliLmEgJFRTVF9EQVRBUk9PVC9maWxlMi5pbgorIAlST0QgYXIgLXQgbGliLmEgXD4gYXIub3V0CisgCisgCXByaW50ZiAiZmlsZTEuaW5cbmZpbGUyLmluXG5maWxlMy5pblxuIiA+IGFyLmV4cAorQEAgLTE4Nyw5ICsxOTksOSBAQCB0ZXN0OSgpCisgCisgdGVzdDEwKCkKKyB7CistCVJPRCBhciAtY3IgbGliLmEgJFRTVF9EQVRBUk9PVC9maWxlMS5pbiAkVFNUX0RBVEFST09UL2ZpbGUzLmluIFwKKy0JICAgICAgICAgICAgICAgICAkVFNUX0RBVEFST09UL2ZpbGUyLmluCistCVJPRCBhciAtbWkgZmlsZTMuaW4gbGliLmEgZmlsZTIuaW4KKysJUk9EIGFyIC1jciIkTU9EIiBsaWIuYSAkVFNUX0RBVEFST09UL2ZpbGUxLmluICRUU1RfREFUQVJPT1QvZmlsZTMuaW4gXAorKwkJCSAgICAgICAkVFNUX0RBVEFST09UL2ZpbGUyLmluCisrCVJPRCBhciAtbWkiJE1PRCIgZmlsZTMuaW4gbGliLmEgZmlsZTIuaW4KKyAJUk9EIGFyIC10IGxpYi5hIFw+IGFyLm91dAorIAorIAlwcmludGYgImZpbGUxLmluXG5maWxlMi5pblxuZmlsZTMuaW5cbiIgPiBhci5leHAKK0BAIC0yMDYsOSArMjE4LDkgQEAgdGVzdDEwKCkKKyAKKyB0ZXN0MTEoKQorIHsKKy0JUk9EIGFyIC1jciBsaWIuYSAkVFNUX0RBVEFST09UL2ZpbGUxLmluICRUU1RfREFUQVJPT1QvZmlsZTMuaW4gXAorLQkgICAgICAgICAgICAgICAgICRUU1RfREFUQVJPT1QvZmlsZTIuaW4KKy0JUk9EIGFyIC1tIGxpYi5hIGZpbGUzLmluCisrCVJPRCBhciAtY3IiJE1PRCIgbGliLmEgJFRTVF9EQVRBUk9PVC9maWxlMS5pbiAkVFNUX0RBVEFST09UL2ZpbGUzLmluIFwKKysJCQkgICAgICAgJFRTVF9EQVRBUk9PVC9maWxlMi5pbgorKwlST0QgYXIgLW0iJE1PRCIgbGliLmEgZmlsZTMuaW4KKyAJUk9EIGFyIC10IGxpYi5hIFw+IGFyLm91dAorIAorIAlwcmludGYgImZpbGUxLmluXG5maWxlMi5pblxuZmlsZTMuaW5cbiIgPiBhci5leHAKK0BAIC0yMjUsOSArMjM3LDkgQEAgdGVzdDExKCkKKyAKKyB0ZXN0MTIoKQorIHsKKy0JUk9EIGFyIC1jciBsaWIuYSAkVFNUX0RBVEFST09UL2ZpbGUxLmluICRUU1RfREFUQVJPT1QvZmlsZTIuaW4gXAorLQkgICAgICAgICAgICAgICAgICRUU1RfREFUQVJPT1QvZmlsZTMuaW4KKy0JUk9EIGFyIC1wIGxpYi5hIFw+IGFyLm91dAorKwlST0QgYXIgLWNyIiRNT0QiIGxpYi5hICRUU1RfREFUQVJPT1QvZmlsZTEuaW4gJFRTVF9EQVRBUk9PVC9maWxlMi5pbiBcCisrCQkJICAgICAgICRUU1RfREFUQVJPT1QvZmlsZTMuaW4KKysJUk9EIGFyIC1wIiRNT0QiIGxpYi5hIFw+IGFyLm91dAorIAorIAlwcmludGYgIlRoaXMgaXMgZmlsZSBvbmVcblRoaXMgaXMgZmlsZSB0d29cblRoaXMgaXMgZmlsZSB0aHJlZVxuIiA+IGFyLmV4cAorIAorQEAgLTI0NCw5ICsyNTYsOSBAQCB0ZXN0MTIoKQorIHRlc3QxMygpCisgeworIAorLQlST0QgYXIgLWNyIGxpYi5hICRUU1RfREFUQVJPT1QvZmlsZTEuaW4gJFRTVF9EQVRBUk9PVC9maWxlMi5pbiBcCistCSAgICAgICAgICAgICAgICAgJFRTVF9EQVRBUk9PVC9maWxlMy5pbgorLQlST0QgYXIgLXEgbGliLmEgJFRTVF9EQVRBUk9PVC9maWxlNC5pbgorKwlST0QgYXIgLWNyIiRNT0QiIGxpYi5hICRUU1RfREFUQVJPT1QvZmlsZTEuaW4gJFRTVF9EQVRBUk9PVC9maWxlMi5pbiBcCisrCQkJICAgICAgICRUU1RfREFUQVJPT1QvZmlsZTMuaW4KKysJUk9EIGFyIC1xIiRNT0QiIGxpYi5hICRUU1RfREFUQVJPT1QvZmlsZTQuaW4KKyAJUk9EIGFyIC10IGxpYi5hIFw+IGFyLm91dAorIAorIAlwcmludGYgImZpbGUxLmluXG5maWxlMi5pblxuZmlsZTMuaW5cbmZpbGU0LmluXG4iID4gYXIuZXhwCitAQCAtMjY0LDE0ICsyNzYsMTQgQEAgdGVzdDEzKCkKKyB0ZXN0MTQoKQorIHsKKyAJUk9EIHRvdWNoIGZpbGUwLmluCistCVJPRCBhciAtY3IgbGliLmEgZmlsZTAuaW4gJFRTVF9EQVRBUk9PVC9maWxlMS5pbgorKwlST0QgYXIgLWNyIiRNT0QiIGxpYi5hIGZpbGUwLmluICRUU1RfREFUQVJPT1QvZmlsZTEuaW4KKyAKKyAJZmlsZTBfbXRpbWUxPSQoYXIgLXR2IGxpYi5hIHwgZ3JlcCBmaWxlMC5pbikKKyAJZmlsZTFfbXRpbWUxPSQoYXIgLXR2IGxpYi5hIHwgZ3JlcCBmaWxlMS5pbikKKyAKKyAJdG91Y2ggLWMgLXQgJChkYXRlIC0tZGF0ZT0nbmV4dCBkYXknICsiJVklbSVkJUglTSIpIGZpbGUwLmluCisgCistCVJPRCBhciAtcnUgbGliLmEgZmlsZTAuaW4gJFRTVF9EQVRBUk9PVC9maWxlMS5pbgorKwlST0QgYXIgLXJ1IiRNT0QiIGxpYi5hIGZpbGUwLmluICRUU1RfREFUQVJPT1QvZmlsZTEuaW4KKyAKKyAJZmlsZTBfbXRpbWUyPSQoYXIgLXR2IGxpYi5hIHwgZ3JlcCBmaWxlMC5pbikKKyAJZmlsZTFfbXRpbWUyPSQoYXIgLXR2IGxpYi5hIHwgZ3JlcCBmaWxlMS5pbikKK0BAIC0yOTMsNyArMzA1LDcgQEAgdGVzdDE0KCkKKyAKKyB0ZXN0MTUoKQorIHsKKy0JUk9EIGFyIC1jciBsaWIuYSAkVFNUX0RBVEFST09UL2ZpbGUxLmluCisrCVJPRCBhciAtY3IiJE1PRCIgbGliLmEgJFRTVF9EQVRBUk9PVC9maWxlMS5pbgorIAlST0QgYXIgLXR2IGxpYi5hIFw+IGFyLm91dAorIAorIAlpZiBncmVwIC1xICdbcnd4LV1cezlcfSBbMC05XS4qL1swLTldLipccypbMC05XS4qLipmaWxlMS5pbicgYXIub3V0OyB0aGVuCitAQCAtMzA4LDkgKzMyMCw5IEBAIHRlc3QxNSgpCisgCisgdGVzdDE2KCkKKyB7CistCVJPRCBhciAtY3IgbGliLmEgJFRTVF9EQVRBUk9PVC9maWxlMS5pbiAkVFNUX0RBVEFST09UL2ZpbGUyLmluIFwKKy0JICAgICAgICAgICAgICAgICAkVFNUX0RBVEFST09UL2ZpbGUzLmluCistCVJPRCBhciAteHYgbGliLmEgXD4gYXIub3V0CisrCVJPRCBhciAtY3IiJE1PRCIgbGliLmEgJFRTVF9EQVRBUk9PVC9maWxlMS5pbiAkVFNUX0RBVEFST09UL2ZpbGUyLmluIFwKKysJCQkgICAgICAgJFRTVF9EQVRBUk9PVC9maWxlMy5pbgorKwlST0QgYXIgLXh2IiRNT0QiIGxpYi5hIFw+IGFyLm91dAorIAorIAlwcmludGYgInggLSBmaWxlMS5pblxueCAtIGZpbGUyLmluXG54IC0gZmlsZTMuaW5cbiIgPiBhci5leHAKKyAKK0BAIC0zMzIsOCArMzQ0LDggQEAgdGVzdDE2KCkKKyAKKyB0ZXN0MTcoKQorIHsKKy0JUk9EIGFyIC1jciBsaWIuYSAkVFNUX0RBVEFST09UL2ZpbGUxLmluICRUU1RfREFUQVJPT1QvZmlsZTIuaW4KKy0JUk9EIGFyIC14diBsaWIuYSBmaWxlMi5pbiBcPiBhci5vdXQKKysJUk9EIGFyIC1jciIkTU9EIiBsaWIuYSAkVFNUX0RBVEFST09UL2ZpbGUxLmluICRUU1RfREFUQVJPT1QvZmlsZTIuaW4KKysJUk9EIGFyIC14diIkTU9EIiBsaWIuYSBmaWxlMi5pbiBcPiBhci5vdXQKKyAKKyAJcHJpbnRmICJ4IC0gZmlsZTIuaW5cbiIgPiBhci5leHAKKyAKKy0tIAorMi43LjQKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sdHAvbHRwLzAwNDAtc2FmZV9tYWNyb3MtbWFrZS1pc19mdXNlLXJldHVybi16ZXJvLWlmLWZzX3R5cGUtaXMtTi5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHRwL2x0cC8wMDQwLXNhZmVfbWFjcm9zLW1ha2UtaXNfZnVzZS1yZXR1cm4temVyby1pZi1mc190eXBlLWlzLU4ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTA5NmE4NQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHRwL2x0cC8wMDQwLXNhZmVfbWFjcm9zLW1ha2UtaXNfZnVzZS1yZXR1cm4temVyby1pZi1mc190eXBlLWlzLU4ucGF0Y2gKQEAgLTAsMCArMSw0MCBAQAorRnJvbSA2N2FmN2RiZThiZGYyOWY5ZWQ5ODBkOGQyOWZlZWFlMzJhMGE3YTFkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTGkgV2FuZyA8bGl3YW5nQHJlZGhhdC5jb20+CitEYXRlOiBUdWUsIDIzIEphbiAyMDE4IDE3OjQ2OjM1ICswODAwCitTdWJqZWN0OiBbUEFUQ0hdIHNhZmVfbWFjcm9zOiBtYWtlIGlzX2Z1c2UoKSByZXR1cm4gemVybyBpZiBmc190eXBlIGlzIE5VTEwKKworVGhpcyBjb21tbWl0IDI4NTA3ZTUxNGMoc2FmZV9tb3VudDogRG8gbm90IHRyeSBtb3VudCgpIHN5c2NhbGwgZm9yIEZVU0UgZnMpCitpbnZvbHZlcyBGVVNFIGZzIGNoZWNrIGluIHNhZmVfbW91bnQoKSwgYnV0IHdlJ2QgYmV0dGVyIGd1YXJhbnRlZSB0aGUgImZzX3R5cGUiCitpcyBsZWdhbCB0byBjaGVjayBpbiBpc19mdXNlKCkgZnVuY3Rpb24gb3RoZXJ3aXNlIHN5c3RlbSB3aWxsIGtpbGwgdGhlIHByb2dyYW0uCisKKyAgY21kbGluZT0iZmFub3RpZnkwNiIKKyAgY29udGFjdHM9IiIKKyAgYW5hbHlzaXM9ZXhpdAorICA8PDx0ZXN0X291dHB1dD4+PgorICB0c3RfdGVzdC5jOjk4MDogSU5GTzogVGltZW91dCBwZXIgcnVuIGlzIDBoIDEwbSAwMHMKKyAgdHN0X3Rlc3QuYzoxMDI1OiBCUk9LOiBUZXN0IGtpbGxlZCBieSBTSUdTRUdWIQorCitTaWduZWQtb2ZmLWJ5OiBMaSBXYW5nIDxsaXdhbmdAcmVkaGF0LmNvbT4KK0Fja2VkLWJ5OiBKYW4gU3RhbmNlayA8anN0YW5jZWtAcmVkaGF0LmNvbT4KK1Vwc3RyZWFtLVN0YXR1czogQWNjZXB0ZWQgW2h0dHBzOi8vZ2l0aHViLmNvbS9saW51eC10ZXN0LXByb2plY3QvbHRwL2NvbW1pdC82N2FmN2RiZThiZGYyOWY5ZWQ5ODBkOGQyOWZlZWFlMzJhMGE3YTFkXQorLS0tCisgbGliL3NhZmVfbWFjcm9zLmMgfCAzICsrKworIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2xpYi9zYWZlX21hY3Jvcy5jIGIvbGliL3NhZmVfbWFjcm9zLmMKK2luZGV4IGM0OGU0MzZkYy4uYWJkZWNhMDEzIDEwMDY0NAorLS0tIGEvbGliL3NhZmVfbWFjcm9zLmMKKysrKyBiL2xpYi9zYWZlX21hY3Jvcy5jCitAQCAtNzA4LDYgKzcwOCw5IEBAIHN0YXRpYyBpbnQgaXNfZnVzZShjb25zdCBjaGFyICpmc190eXBlKQorIHsKKyAJdW5zaWduZWQgaW50IGk7CisgCisrCWlmICghZnNfdHlwZSkKKysJCXJldHVybiAwOworKworIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShmdXNlX2ZzX3R5cGVzKTsgaSsrKSB7CisgCQlpZiAoIXN0cmNtcChmdXNlX2ZzX3R5cGVzW2ldLCBmc190eXBlKSkKKyAJCQlyZXR1cm4gMTsKKy0tIAorMi4xMS4wCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHRwL2x0cF8yMDE3MDUxNi5iYiBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHRwL2x0cF8yMDE4MDExOC5iYgpzaW1pbGFyaXR5IGluZGV4IDgyJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2x0cC9sdHBfMjAxNzA1MTYuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbHRwL2x0cF8yMDE4MDExOC5iYgppbmRleCA2NTNjYmZkLi4xNGZiNDFiIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL2x0cC9sdHBfMjAxNzA1MTYuYmIKKysrIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9sdHAvbHRwXzIwMTgwMTE4LmJiCkBAIC0yMSwxMSArMjEsMTEgQEAKIEVYVFJBX09FTUFLRV9hcHBlbmRfbGliYy1tdXNsID0gIiBMSUJDPW11c2wgIgogQ0ZMQUdTX2FwcGVuZF9wb3dlcnBjNjQgPSAiIC1EX19TQU5FX1VTRVJTUEFDRV9UWVBFU19fIgogQ0ZMQUdTX2FwcGVuZF9taXBzYXJjaG42NCA9ICIgLURfX1NBTkVfVVNFUlNQQUNFX1RZUEVTX18iCi1TUkNSRVYgPSAiMTg5MTZhMmU2ZDhjOTk3YjdiMjlkY2ZhOTU1MGQ1YTE1YjIyZWQyMiIKK1NSQ1JFViA9ICI3MzFjZDM0ZTY4MmQyOTdiMjA3NjY4YmU4YjFkMTUzMjBhOWFjMWIxIgogCiBTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vbGludXgtdGVzdC1wcm9qZWN0L2x0cC5naXQgXAotICAgICAgICAgICBmaWxlOi8vMDAwMS1hZGQtX0dOVV9TT1VSQ0UtdG8tcGVjX2xpc3RlbmVyLmMucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMi1BZGQta25vYi10by1jb250cm9sLXdoZXRoZXItbnVtYS1zdXBwb3J0LXNob3VsZC1iZS1jLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtY29uZmlndXJlLWFkZC1rbm9iLXRvLWNvbnRyb2wtbnVtYS1zdXBwb3J0LnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtY29uZmlndXJlLUZpeC1kZWZhdWx0LXZhbHVlLW9mLXdpdGhvdXQtbnVtYS1zd2l0Y2gtaS5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDAzLUFkZC1rbm9iLXRvLWNvbnRyb2wtdGlycGMtc3VwcG9ydC5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDA0LWJ1aWxkLUFkZC1vcHRpb24tdG8tc2VsZWN0LWxpYmMtaW1wbGVtZW50YXRpb24ucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vMDAwNS1rZXJuZWwtY29udHJvbGxlcnMtTGluay13aXRoLWxpYmZ0cy1leHBsaWNpdGx5LW9uLW11LnBhdGNoIFwKQEAgLTMzLDIzICszMywxOCBAQAogICAgICAgICAgICBmaWxlOi8vMDAwOC1DaGVjay1pZi1fX0dMSUJDX1BSRVJFUS1pcy1kZWZpbmVkLWJlZm9yZS11c2luZy1pdC5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDA5LWZpeC1yZWRlZmluaXRpb24tb2Ytc3RydWN0LW1zZ2J1Zi1lcnJvci1idWlsZGluZy13aXQucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vMDAxMC1yZXBsYWNlLV9fQkVHSU5fREVDTFMtYW5kLV9fRU5EX0RFQ0xTLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMTEtUmVuYW1lLXNpZ3NldC12YXJpYWJsZS10by1zaWdzZXQxLnBhdGNoIFwKICAgICAgICAgICAgZmlsZTovLzAwMTgtZ3VhcmQtbWFsbG9jb3B0LXdpdGgtX19HTElCQ19fLnBhdGNoIFwKICAgICAgICAgICAgZmlsZTovLzAwMjAtZ2V0ZGVudHMtZGVmaW5lLWdldGRlbnRzLWdldGRlbnRzNjQtb25seS1mb3ItZ2xpYmMucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vMDAyMS1EZWZpbmUtX0dOVV9TT1VSQ0UtZm9yLU1SRU1BUF9NQVlNT1ZFLWRlZmluaXRpb24ucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vMDAyMy1wdHJhY2UtVXNlLWludC1pbnN0ZWFkLW9mLWVudW0tX19wdHJhY2VfcmVxdWVzdC5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDI0LXJ0X3NpZ2FjdGlvbi1ydF9zaWdwcm9jbWFyay1EZWZpbmUtX0dOVV9TT1VSQ0UucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAyNS1tY19nZXRob3N0LWluY2x1ZGUtc3lzLXR5cGVzLmgucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vMDAyNi1jcmFzaDAxLURlZmluZS1fR05VX1NPVVJDRS5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDI3LXN5c2NvbmYwMS1Vc2UtX1NDXzJfQ19WRVJTSU9OLWNvbmRpdGlvbmFsbHkucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vMDAyOC1ydF9zaWdhY3Rpb24uaC1Vc2Utc2lnaGFuZGxlcl90LWluc3RlYWQtb2YtX19zaWdoYW5kLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMzAtbGliLVVzZS1QVEhSRUFEX01VVEVYX1JFQ1VSU0lWRS1pbi1wbGFjZS1vZi1QVEhSRUFEXy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDMzLXNobWF0MS1Db3Zlci1HTlUtc3BlY2lmaWMtY29kZS11bmRlci1fX1VTRV9HTlUucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vMDAzNC1wZXJpb2RpY19vdXRwdXQucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vMDAzNS1maXgtdGVzdF9wcm9jX2tpbGwtaGFuZy5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDM2LXRlc3RjYXNlcy1uZXR3b3JrLW5mc3Y0LWFjbC1hY2wxLmMtU2VjdXJpdHktZml4LW9uLXMucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAzNy1sdHAtZml4LVBBR0VfU0laRS1yZWRlZmluaXRpb24tYW5kLU9fQ1JFQVQtdW5kZWNsZWFyLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMzgtY29tbWFuZHMtZ2RiMDEtcmVwbGFjZS1zdGRpbi13aXRoLWRldi1udWxsLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMzktY29tbWFuZHMtYXIwMS1GaXgtZm9yLXRlc3QtaW4tZGV0ZXJtaW5pc3RpYy1tb2RlLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwNDAtc2FmZV9tYWNyb3MtbWFrZS1pc19mdXNlLXJldHVybi16ZXJvLWlmLWZzX3R5cGUtaXMtTi5wYXRjaCBcCiAgICAgICAgICAgICIKIAogUyA9ICIke1dPUktESVJ9L2dpdCIKQEAgLTEwMSwyMCArOTYsMTggQEAKICAgICBsb2dyb3RhdGUgXAogICAgIHBlcmwgXAogICAgIHB5dGhvbi1jb3JlIFwKKyAgICBwcm9jcHMgXAogICAgIHVuemlwIFwKICAgICB1dGlsLWxpbnV4IFwKICAgICB3aGljaCBcCisgICAgdGFyIFwKICIKIAotRklMRVNfJHtQTn0tc3RhdGljZGV2ICs9ICIvb3B0L2x0cC9saWIvbGlibWVtLmEgL29wdC9sdHAvdGVzdGNhc2VzL2RhdGEvbm0wMS9saWIuYSIKK0ZJTEVTXyR7UE59ICs9ICIvb3B0L2x0cC8qIC9vcHQvbHRwL3J1bnRlc3QvKiAvb3B0L2x0cC9zY2VuYXJpb19ncm91cHMvKiAvb3B0L2x0cC90ZXN0Y2FzZXMvYmluLyogL29wdC9sdHAvdGVzdGNhc2VzL2Jpbi8qL2Jpbi8qIC9vcHQvbHRwL3Rlc3RzY3JpcHRzLyogL29wdC9sdHAvdGVzdGNhc2VzL29wZW5fcG9zaXhfdGVzdHN1aXRlLyogL29wdC9sdHAvdGVzdGNhc2VzL29wZW5fcG9zaXhfdGVzdHN1aXRlL2NvbmZvcm1hbmNlLyogL29wdC9sdHAvdGVzdGNhc2VzL29wZW5fcG9zaXhfdGVzdHN1aXRlL0RvY3VtZW50YXRpb24vKiAvb3B0L2x0cC90ZXN0Y2FzZXMvb3Blbl9wb3NpeF90ZXN0c3VpdGUvZnVuY3Rpb25hbC8qIC9vcHQvbHRwL3Rlc3RjYXNlcy9vcGVuX3Bvc2l4X3Rlc3RzdWl0ZS9pbmNsdWRlLyogL29wdC9sdHAvdGVzdGNhc2VzL29wZW5fcG9zaXhfdGVzdHN1aXRlL3NjcmlwdHMvKiAvb3B0L2x0cC90ZXN0Y2FzZXMvb3Blbl9wb3NpeF90ZXN0c3VpdGUvc3RyZXNzLyogL29wdC9sdHAvdGVzdGNhc2VzL29wZW5fcG9zaXhfdGVzdHN1aXRlL3Rvb2xzLyogL29wdC9sdHAvdGVzdGNhc2VzL2RhdGEvbm0wMS9saWIuYSAvb3B0L2x0cC9saWIvbGlibWVtLmEiCiAKLUZJTEVTXyR7UE59ICs9ICIvb3B0L2x0cC8qIC9vcHQvbHRwL3J1bnRlc3QvKiAvb3B0L2x0cC9zY2VuYXJpb19ncm91cHMvKiAvb3B0L2x0cC90ZXN0Y2FzZXMvYmluLyogL29wdC9sdHAvdGVzdGNhc2VzL2Jpbi8qL2Jpbi8qIC9vcHQvbHRwL3Rlc3RzY3JpcHRzLyogL29wdC9sdHAvdGVzdGNhc2VzL29wZW5fcG9zaXhfdGVzdHN1aXRlLyogL29wdC9sdHAvdGVzdGNhc2VzL29wZW5fcG9zaXhfdGVzdHN1aXRlL2NvbmZvcm1hbmNlLyogL29wdC9sdHAvdGVzdGNhc2VzL29wZW5fcG9zaXhfdGVzdHN1aXRlL0RvY3VtZW50YXRpb24vKiAvb3B0L2x0cC90ZXN0Y2FzZXMvb3Blbl9wb3NpeF90ZXN0c3VpdGUvZnVuY3Rpb25hbC8qIC9vcHQvbHRwL3Rlc3RjYXNlcy9vcGVuX3Bvc2l4X3Rlc3RzdWl0ZS9pbmNsdWRlLyogL29wdC9sdHAvdGVzdGNhc2VzL29wZW5fcG9zaXhfdGVzdHN1aXRlL3NjcmlwdHMvKiAvb3B0L2x0cC90ZXN0Y2FzZXMvb3Blbl9wb3NpeF90ZXN0c3VpdGUvc3RyZXNzLyogL29wdC9sdHAvdGVzdGNhc2VzL29wZW5fcG9zaXhfdGVzdHN1aXRlL3Rvb2xzLyoiCi0KLSMgQXZvaWQgZ2VuZXJhdGVkIGJpbmFyaWVzIHN0cmlwcGluZy4gT3RoZXJ3aXNlIHNvbWUgb2YgdGhlIGx0cCB0ZXN0cyBzdWNoIGFzIGxkZDAxICYgbm0wMSBmYWlscwotSU5ISUJJVF9QQUNLQUdFX1NUUklQID0gIjEiCi1JTkhJQklUX1BBQ0tBR0VfREVCVUdfU1BMSVQgPSAiMSIKLSMgSG93ZXZlciwgdGVzdF9hcmNoX3N0cmlwcGVkIGlzIGFscmVhZHkgc3RyaXBwZWQsIHNvLi4uCi1JTlNBTkVfU0tJUF8ke1BOfSArPSAiYWxyZWFkeS1zdHJpcHBlZCIKKyMgQXZvaWQgc3RyaXBwaW5nIHNvbWUgZ2VuZXJhdGVkIGJpbmFyaWVzIG90aGVyd2lzZSBzb21lIG9mIHRoZSBsdHAgdGVzdHMgc3VjaCBhcyBsZGQwMSAmIG5tMDEgZmFpbAorSU5ISUJJVF9QQUNLQUdFX1NUUklQX0ZJTEVTID0gIi9vcHQvbHRwL3Rlc3RjYXNlcy9iaW4vbm0wMSAvb3B0L2x0cC90ZXN0Y2FzZXMvYmluL2xkZDAxIgorSU5TQU5FX1NLSVBfJHtQTn0gKz0gImFscmVhZHktc3RyaXBwZWQgc3RhdGljZGV2IgogCiAjIEF2b2lkIGZpbGUgZGVwZW5kZW5jeSBzY2FucywgYXMgTFRQIGNoZWNrcyBmb3IgdGhpbmdzIHRoYXQgbWF5IG9yIG1heSBub3QKICMgZXhpc3Qgb24gdGhlIHJ1bm5pbmcgc3lzdGVtLiAgRm9yIGluc3RhbmNlIGl0IGhhcyBzcGVjaWZpYyBjaGVja3MgZm9yCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi1kYi9tYW4tZGJfMi44LjEuYmIgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi1kYi9tYW4tZGJfMi44LjEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODMyOGE2NwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWFuLWRiL21hbi1kYl8yLjguMS5iYgpAQCAtMCwwICsxLDQzIEBACitTVU1NQVJZID0gIkFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBzdGFuZGFyZCBVbml4IGRvY3VtZW50YXRpb24gc3lzdGVtIGFjY2Vzc2VkIHVzaW5nIHRoZSBtYW4gY29tbWFuZCIKK0hPTUVQQUdFID0gImh0dHA6Ly9tYW4tZGIubm9uZ251Lm9yZy8iCitMSUNFTlNFID0gIkxHUEx2Mi4xICYgR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9kb2NzL0NPUFlJTkcuTElCO21kNT1hNmY4OWUyMTAwZDliNmNkZmZjZWE0ZjM5OGUzNzM0MyBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9kb2NzL0NPUFlJTkc7bWQ1PWViNzIzYjYxNTM5ZmVlZjAxM2RlNDc2ZTY4YjVjNTBhIgorCitTUkNfVVJJID0gIiR7U0FWQU5OQUhfTk9OR05VX01JUlJPUn0vbWFuLWRiL21hbi1kYi0ke1BWfS50YXIueHoiCitTUkNfVVJJW21kNXN1bV0gPSAiNTE4NDI5NzhlMDY2ODYyODY0MjFmOTQ5OGQxMDA5YjciCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYTZhZWM2NDFjYTNkOTk0MmIwNTRjYzBlOWMzZjA1Y2I0NmEzYTk5MmJjMDAwNjc5NTc1NWUyZmVkMTM1N2YzZSIKKworREVQRU5EUyA9ICJsaWJwaXBlbGluZSBnZGJtIGdyb2ZmLW5hdGl2ZSIKKworIyB8IC91c3Ivc3JjL2RlYnVnL21hbi1kYi8yLjguMC1yMC9tYW4tZGItMi44LjAvc3JjL3doYXRpcy5jOjkzOTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgX25sX21zZ19jYXRfY250cicKK1VTRV9OTFNfbGliYy1tdXNsID0gIm5vIgorCitpbmhlcml0IGdldHRleHQgcGtnY29uZmlnIGF1dG90b29scworCitFWFRSQV9PRUNPTkYgPSAiLS13aXRoLXBhZ2VyPWxlc3MgLS1kaXNhYmxlLWNhY2hlLW93bmVyIgorCitkb19pbnN0YWxsX2FwcGVuZF9saWJjLW11c2woKSB7CisgICAgICAgIHJtIC1mICR7RH0ke2xpYmRpcn0vY2hhcnNldC5hbGlhcworfQorCitGSUxFU18ke1BOfSArPSAiJHtwcmVmaXh9L2xpYi90bXBmaWxlcy5kIgorCitGSUxFU18ke1BOfS1kZXYgKz0gIiR7bGliZGlyfS9tYW4tZGIvbGlibWFuLnNvICR7bGliZGlyfS8ke0JQTn0vbGlibWFuZGIuc28iCisKK1JERVBFTkRTXyR7UE59ICs9ICJncm9mZiIKK1JSRUNPTU1FTkRTXyR7UE59ICs9ICJsZXNzIgorUlBST1ZJREVTXyR7UE59ICs9ICIgbWFuIgorCitkZWYgY29tcHJlc3NfcGtnKGQpOgorICAgIGlmIGJiLnV0aWxzLmNvbnRhaW5zKCJJTkhFUklUIiwgImNvbXByZXNzX2RvYyIsIFRydWUsIEZhbHNlLCBkKToKKyAgICAgICAgIGNvbXByZXNzID0gZC5nZXRWYXIoIkRPQ19DT01QUkVTUyIpCisgICAgICAgICBpZiBjb21wcmVzcyA9PSAiZ3oiOgorICAgICAgICAgICAgIHJldHVybiAiZ3ppcCIKKyAgICAgICAgIGVsaWYgY29tcHJlc3MgPT0gImJ6MiI6CisgICAgICAgICAgICAgcmV0dXJuICJiemlwMiIKKyAgICAgICAgIGVsaWYgY29tcHJlc3MgPT0gInh6IjoKKyAgICAgICAgICAgICByZXR1cm4gInh6IgorICAgIHJldHVybiAiIgorCitSREVQRU5EU18ke1BOfSArPSAiJHtAY29tcHJlc3NfcGtnKGQpfSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWFuLXBhZ2VzL21hbi1wYWdlc180LjExLmJiIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4tcGFnZXMvbWFuLXBhZ2VzXzQuMTQuYmIKc2ltaWxhcml0eSBpbmRleCA3OCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4tcGFnZXMvbWFuLXBhZ2VzXzQuMTEuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWFuLXBhZ2VzL21hbi1wYWdlc180LjE0LmJiCmluZGV4IGEzMDc3YTkuLmY4YmQwOTAgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWFuLXBhZ2VzL21hbi1wYWdlc180LjExLmJiCisrKyBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWFuLXBhZ2VzL21hbi1wYWdlc180LjE0LmJiCkBAIC00LDExICs0LDExIEBACiBIT01FUEFHRSA9ICJodHRwOi8vd3d3Lmtlcm5lbC5vcmcvcHViL2xpbnV4L2RvY3MvbWFuLXBhZ2VzIgogTElDRU5TRSA9ICJHUEx2MisiCiAKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL1JFQURNRTttZDU9OGYyYTNkNDMwNTdkNDU4ZTUwNjY3MTQ5ODA1NjdhNjAiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9SRUFETUU7bWQ1PTc5NGY3MDE2MTdjYzAzZmU1MGM1MzI1NzY2MGQ4ZWM0IgogU1JDX1VSSSA9ICIke0tFUk5FTE9SR19NSVJST1J9L2xpbnV4L2RvY3MvJHtCUE59L0FyY2hpdmUvJHtCUH0udGFyLmd6IgogCi1TUkNfVVJJW21kNXN1bV0gPSAiNDA4MzAwZWQwOWQxYWQ1OTM4MDcwMTU4YjIxZGExZDEiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZTZkYjkxYTI0ZTY4YzdjNzY1YjdiOGU2MGYxNTkxZWQxMDQ5YmMyZGMzMTQzZGI3NzllYWU0ODM4Yjg5ZDE5NSIKK1NSQ19VUklbbWQ1c3VtXSA9ICI4MmJkMmQwNWM0ZDBkYmE1ZTdhOTBkMzljOTU1NTE5NyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJhZWViYzZiMDlhMTFlN2Y3YmJjOThmMzk4NGZlOGI4YjJiZGU5ZDJmNWY5ZGNiZDQzNDhhOWUwZDkzNzA0MjM4IgogCiBSREVQRU5EU18ke1BOfSA9ICJtYW4iCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWFuL21hbi9jb25maWd1cmVfc2VkLnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4vbWFuL2NvbmZpZ3VyZV9zZWQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ0OWU2ODMuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4vbWFuL2NvbmZpZ3VyZV9zZWQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi1tYW46IHJlcGxhY2UgJywnIHdpdGggJyMnCi0KLVNvbWV0aW1lcywgdGhlIHBhcmFtZXRlcnMgb2YgQ0MvQlVJTERfQ0MgY29udGFpbnMgdGhlICcsJywgd2hpY2gKLWNhdXNlIHRoZSBzZWQgY29tbWFuZCBmYWlsZWQsIHNvIHJlcGxhY2UgdGhlICcsJyB3aXRoICcjJwotCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotU2lnbmVkLW9mZi1ieTogWXVlIFRhbyA8WXVlLlRhb0B3aW5kcml2ZXIuY29tPgotU2lnbmVkLW9mZi1ieTogV2Vuem9uZyBGYW4gPHdlbnpvbmcuZmFuQHdpbmRyaXZlci5jb20+Ci0tLS0KLSBjb25maWd1cmUgfCA0ICsrLS0KLSAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCi1pbmRleCA5ZjYyY2Y5Li45YTU2NWFlIDEwMDc1NQotLS0tIGEvY29uZmlndXJlCi0rKysgYi9jb25maWd1cmUKLUBAIC0xMzIxLDkgKzEzMjEsOSBAQCBkbwotICAgZWNobyAiQ3JlYXRpbmcgJGluZmlsZSBmcm9tICRpbmZpbGUuaW4iCi0gICBzZWQgLWUgJwotIHMsQHZlcnNpb25ALCR2ZXJzaW9uLAotLXMsQENDQCwkQ0MsCi0rcyNAQ0NAIyRDQyMKLSBzLEBFWEVFWFRALCRFWEVFWFQsCi0tcyxAQlVJTERfQ0NALCRCVUlMRF9DQywKLStzI0BCVUlMRF9DQ0AjJEJVSUxEX0NDIwotIHMsQElOU1RBTExALCRJTlNUQUxMLAotIHMsQERFRlNALCRERUZTLAotIHMsQExJQlNALCRMSUJTLAotLS0gCi0xLjkuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi9tYW4vbWFuLTEuNWctbm9ucm9vdGJ1aWxkLnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4vbWFuL21hbi0xLjVnLW5vbnJvb3RidWlsZC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmY4MzRiZC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi9tYW4vbWFuLTEuNWctbm9ucm9vdGJ1aWxkLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLVNpZ25lZC1vZmYtYnk6IFNjb3R0IEdhcm1hbiA8c2NvdHQuYS5nYXJtYW5AaW50ZWwuY29tPgotCi1kaWZmIC11IC1yIG1hbi0xLjVnLm9sZC9jb25maWd1cmUgbWFuLTEuNWcvY29uZmlndXJlCi0tLS0gbWFuLTEuNWcub2xkL2NvbmZpZ3VyZQlXZWQgQXByICA3IDA0OjE2OjA1IDE5OTkKLSsrKyBtYW4tMS41Zy9jb25maWd1cmUJTW9uIE1heSAxNSAxNToyMjo0NCAyMDAwCi1AQCAtNzkxLDcgKzc5MSw3IEBACi0gICAgIHJlYWQgbW9kZQotICAgICBpZiB0ZXN0ICIkbW9kZSIgIT0gIiI7IHRoZW4gbWFuX21vZGU9JG1vZGU7IGZpCi0gICBmaQotLSAgbWFuX2luc3RhbGxfZmxhZ3M9Ii1tICRtYW5fbW9kZSAtbyAkbWFuX3VzZXIgLWcgJG1hbl9ncm91cCIKLSsgIG1hbl9pbnN0YWxsX2ZsYWdzPSIiCi0gZmkKLSAKLSAjIFdoYXQgc2VjdGlvbnMgZG8gd2UgYW50aWNpcGF0ZT8KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWFuL21hbi9tYW4tMS41aDEtZ2VuY2F0LnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4vbWFuL21hbi0xLjVoMS1nZW5jYXQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA0NGIxNGMuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4vbWFuL21hbi0xLjVoMS1nZW5jYXQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotU2lnbmVkLW9mZi1ieTogU2NvdHQgR2FybWFuIDxzY290dC5hLmdhcm1hbkBpbnRlbC5jb20+Ci0KLS0tLSBnZW5jYXQvZ2VubGliLmMJMjAwNi0wOC0wMiAyMDoxMTo0NC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZW5jYXQvZ2VubGliLmMub2RlbgkyMDA4LTEyLTIxIDE5OjE4OjUwLjAwMDAwMDAwMCArMDEwMAotQEAgLTQ3LDYgKzQ3LDcgQEAgdXAtdG8tZGF0ZS4gIE1hbnkgdGhhbmtzLgotIDAxLzE0LzkxICAgNCBuYXpndWwJT2ZmIGJ5IG9uZSBvbiBudW1iZXIgc3BlY2lmaWVkIGVudHJpZXMKLSAqLwotIAotKyN1bmRlZiBfR05VX1NPVVJDRQotICNpbmNsdWRlIDxzdGRpby5oPgotICNpbmNsdWRlIDxzdGRsaWIuaD4KLSAjaWZkZWYgU1lTVgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4vbWFuL21hbi0xLjVoMS1tYWtlLnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4vbWFuL21hbi0xLjVoMS1tYWtlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NjMxZWIyLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWFuL21hbi9tYW4tMS41aDEtbWFrZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1TaWduZWQtb2ZmLWJ5OiBTY290dCBHYXJtYW4gPHNjb3R0LmEuZ2FybWFuQGludGVsLmNvbT4KLQotLS0tIG1hbi0xLjVnL21hbi9NYWtlZmlsZS5pbi5taWtlCUZyaSBBcHIgIDkgMTM6MzU6NTQgMTk5OQotKysrIG1hbi0xLjVnL21hbi9NYWtlZmlsZS5pbglGcmkgQXByICA5IDEzOjM2OjQ1IDE5OTkKLUBAIC0xLDggKzEsOCBAQAotICMgb25seSBleGVjdXRlZCBmcm9tIGEgc3ViZGlyCi0gTUFOMSA9IG1hbiB3aGF0aXMgYXByb3BvcwotLU1BTjUgPSBtYW4uY29uZgotK01BTjUgPSBtYW4uY29uZmlnCi0gTUFOOCA9IG1ha2V3aGF0aXMKLS1BTEwgPSBtYW4uMSB3aGF0aXMuMSBhcHJvcG9zLjEgbWFuLmNvbmYuNQotK0FMTCA9IG1hbi4xIHdoYXRpcy4xIGFwcm9wb3MuMSBtYW4uY29uZmlnLjUKLSBNQVlCRTggPSBtYWtld2hhdGlzCi0gCi0gLlNVRkZJWEVTOiAubWFuIC4xIC41IC44CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi9tYW4vbWFuLTEuNWkyLWluaXRpYWwucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi9tYW4vbWFuLTEuNWkyLWluaXRpYWwucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZlNTZjMDcuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4vbWFuL21hbi0xLjVpMi1pbml0aWFsLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLVNpZ25lZC1vZmYtYnk6IFNjb3R0IEdhcm1hbiA8c2NvdHQuYS5nYXJtYW5AaW50ZWwuY29tPgotCi0tLS0gbWFuLTEuNWkyL3NyYy9tYWtld2hhdGlzLnNoLmluaXRpYWwJVHVlIEp1bCAgMyAxNTozODozOSAyMDAxCi0rKysgbWFuLTEuNWkyL3NyYy9tYWtld2hhdGlzLnNoCVR1ZSBKdWwgIDMgMTU6Mzk6MzkgMjAwMQotQEAgLTgxLDggKzgxLDEwIEBACi0gCWNvbnRpbnVlOzsKLSAgICAgLXMpIHNldHNlY3Rpb25zPTEKLSAJY29udGludWU7OwotLSAgICAtdSkgZmluZGFyZz0iLW5ld2VyIC92YXIvY2FjaGUvbWFuL3doYXRpcyIKLS0JdXBkYXRlPTEKLSsgICAgLXUpIGlmIFsgLWUgL3Zhci9jYWNoZS9tYW4vd2hhdGlzIF07IHRoZW4KLSsJICBmaW5kYXJnPSItbmV3ZXIgL3Zhci9jYWNoZS9tYW4vd2hhdGlzIgotKwkgIHVwZGF0ZT0xCi0rCWZpCi0gCWNvbnRpbnVlOzsKLSAgICAgLXYpIHZlcmJvc2U9MQotIAljb250aW51ZTs7CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi9tYW4vbWFuLTEuNWkyLW5ld2xpbmUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi9tYW4vbWFuLTEuNWkyLW5ld2xpbmUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYxMWRmNWQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4vbWFuL21hbi0xLjVpMi1uZXdsaW5lLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLVNpZ25lZC1vZmYtYnk6IFNjb3R0IEdhcm1hbiA8c2NvdHQuYS5nYXJtYW5AaW50ZWwuY29tPgotCi0tLS0gc3JjL21hbi5jCTIwMDgtMTItMjEgMTk6MTc6MzEuMDAwMDAwMDAwICswMTAwCi0rKysgc3JjL21hbi5jLm9kZW4JMjAwOC0xMi0yMSAxOToxNzozOC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0zOTEsNyArMzkxLDcgQEAgYWdhaW46Ci0gCSAgYmVnKys7Ci0gCi0gICAgICBlbmQgPSBiZWc7Ci0tICAgICB3aGlsZSAoKmVuZCAhPSAnICcgJiYgKmVuZCAhPSAnXHQnICYmICplbmQgIT0gJ1xuJyAmJiAqZW5kICE9ICdcMCcpCi0rICAgICB3aGlsZSAoKmVuZCAhPSAnICcgJiYgKmVuZCAhPSAnXHQnICYmICplbmQgIT0gJ1xuJyAmJiAqZW5kICE9ICdcMCcgJiYgKGVuZC1idWYpPEJVRlNJWkUpCi0gCSAgZW5kKys7CQkvKiBub3RlIHRoYXQgYnVmIGlzIE5VTC10ZXJtaW5hdGVkICovCi0gICAgICAqZW5kID0gJ1wwJzsKLSAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWFuL21hbi9tYW4tMS41aTItb3ZlcmZsb3cucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi9tYW4vbWFuLTEuNWkyLW92ZXJmbG93LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MmQyODgxLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWFuL21hbi9tYW4tMS41aTItb3ZlcmZsb3cucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotU2lnbmVkLW9mZi1ieTogU2NvdHQgR2FybWFuIDxzY290dC5hLmdhcm1hbkBpbnRlbC5jb20+Ci0KLS0tLSBtYW4tMS41aTIvc3JjL21hbi5jLm92ZXJmbG93CU1vbiBKdW4gMjUgMDA6MDE6NDUgMjAwMQotKysrIG1hbi0xLjVpMi9zcmMvbWFuLmMJTW9uIEp1biAyNSAwMDowMTo0NSAyMDAxCi1AQCAtMzgxLDYgKzM4MSw5IEBACi0gCSAgc3RyY2F0KG5hbWUsICIvIik7Ci0gCSAgc3RyY2F0KG5hbWUsIGJlZyk7Ci0gICAgICB9Ci0rICAgICAvKiBJZiB0aGlzIGlzIHRvbyBsb25nLCBiYWQgdGhpbmdzIGhhdmUgYWxyZWFkeSBoYXBwZW5lZC4gKgotKyAgICAgICogd2Ugc2hvdWxkIHF1aXQgSU1NRURJQVRFTFkuICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0rICAgICBpZihzdHJsZW4obmFtZSk+c2l6ZW9mKHVsdG5hbWUpKSBfZXhpdCgxKTsKLSAKLSAgICAgIGdvdG8gYWdhaW47Ci0gfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4vbWFuL21hbi0xLjVqLWkxOG4ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi9tYW4vbWFuLTEuNWotaTE4bi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmFlMDljMC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi9tYW4vbWFuLTEuNWotaTE4bi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1TaWduZWQtb2ZmLWJ5OiBTY290dCBHYXJtYW4gPHNjb3R0LmEuZ2FybWFuQGludGVsLmNvbT4KLQotLS0tIG1hbi0xLjVqL21zZ3MvaW5zdC5zaC5pMThuCVdlZCBBcHIgMjUgMTA6NDA6NTAgMjAwMQotKysrIG1hbi0xLjVqL21zZ3MvaW5zdC5zaAlXZWQgQXByIDI1IDEwOjQxOjE3IDIwMDEKLUBAIC0yNyw4ICsyNyw3IEBACi0gZm9yIGogaW4gJE07IGRvCi0gICBpZiBbIC1mICRqIF07IHRoZW4KLSAgICAgaT1gZWNobyAkaiB8IHNlZCAtZSAncy9tZXNzLi8vOyBzLy5jYXQvLydgCi0tICAgIGRlc3Q9YGVjaG8gJGxvY2RpciB8IHNlZCAtZSAicy8lTi9tYW4vOyBzLyVMLyRpLyJgCi0tICAgIGRlc3Q9JHtQUkVGSVh9JGRlc3QKLSsgICAgZGVzdD0ke1BSRUZJWH0vYGVjaG8gJGxvY2RpciB8IHNlZCAtZSAicy8lTi9tYW4vOyBzLyVMLyRpLyJgCi0gICAgIGVjaG8gIm1rZGlyIC1wIGBkaXJuYW1lICRkZXN0YCIKLSAgICAgbWtkaXIgLXAgYGRpcm5hbWUgJGRlc3RgOwotICAgICBlY2hvICJpbnN0YWxsIC1jIC1tIDY0NCAkaiAkZGVzdCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWFuL21hbi9tYW4tMS41ai1ub2NhY2hlLnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4vbWFuL21hbi0xLjVqLW5vY2FjaGUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc1MWRkZGQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4vbWFuL21hbi0xLjVqLW5vY2FjaGUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotU2lnbmVkLW9mZi1ieTogU2NvdHQgR2FybWFuIDxzY290dC5hLmdhcm1hbkBpbnRlbC5jb20+Ci0KLS0tLSBtYW4tMS41ai9zcmMvbWFuLmNvbmYuaW4ubm9jYWNoZQlUaHUgTm92IDIyIDE1OjA3OjEyIDIwMDEKLSsrKyBtYW4tMS41ai9zcmMvbWFuLmNvbmYuaW4JVGh1IE5vdiAyMiAxNTowNzoxMiAyMDAxCi1AQCAtODEsNiArODEsOSBAQAotICMgCi0gI05PQ0FDSEUKLSAjCi0rIyBOT0NBQ0hFIGtlZXBzIG1hbiBmcm9tIGNyZWF0aW5nIGNhY2hlIHBhZ2VzCi0rTk9DQUNIRQotKyMKLSAjIFVzZWZ1bCBwYXRocyAtIG5vdGUgdGhhdCBDT0wgc2hvdWxkIG5vdCBiZSBkZWZpbmVkIHdoZW4KLSAjIE5ST0ZGIGlzIGRlZmluZWQgYXMgImdyb2ZmIC1UYXNjaWkiIG9yICJncm9mZiAtVGxhdGluMSI7Ci0gIyBub3Qgb25seSBpcyBpdCBzdXBlcmZsdW91cywgYnV0IGl0IGFjdHVhbGx5IGRhbWFnZXMgdGhlIG91dHB1dC4KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWFuL21hbi9tYW4tMS41ai11dGY4LnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4vbWFuL21hbi0xLjVqLXV0ZjgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMzZDNlNGMuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4vbWFuL21hbi0xLjVqLXV0ZjgucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw2MSArMCwwIEBACi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotU2lnbmVkLW9mZi1ieTogU2NvdHQgR2FybWFuIDxzY290dC5hLmdhcm1hbkBpbnRlbC5jb20+Ci0KLS0tLSBtYW4tMS41ai9jb25maWd1cmUudXRmOAlUaHUgTm92IDIyIDE1OjAyOjM1IDIwMDEKLSsrKyBtYW4tMS41ai9jb25maWd1cmUJVGh1IE5vdiAyMiAxNTowMzoxNSAyMDAxCi1AQCAtNDA4LDkgKzQwOCw5IEBACi0gICBGZ2F3az0vYmluL2dhd2sKLSAgIEZhd2s9L2Jpbi9nYXdrCi0gICBGbWF3az1taXNzaW5nCi0tICB0cm9mZj0iIgotLSAgbnJvZmY9IiIKLS0gIGpucm9mZj0iIgotKyAgdHJvZmY9L3Vzci9iaW4vdHJvZmYKLSsgIG5yb2ZmPS91c3IvYmluL25yb2ZmCi0rICBqbnJvZmY9L3Vzci9iaW4vbnJvZmYKLSAgIGVxbj0iIgotICAgbmVxbj0iIgotICAgam5lcW49IiIKLUBAIC00NTMsNiArNDUzLDggQEAKLSAgICAgZG9uZQotICAgZG9uZQotICAgRmdyb2ZmPS91c3IvYmluL2dyb2ZmCi0rICBGbnJvZmY9L3Vzci9iaW4vbnJvZmYKLSsgIEZqbnJvZmY9L3Vzci9iaW4vbnJvZmYKLSAgIEZnZXFuPS91c3IvYmluL2dlcW4KLSAgIEZndGJsPS91c3IvYmluL2d0YmwKLSAgIEZjb2w9L3Vzci9iaW4vY29sCi1AQCAtNDg1LDI1ICs0ODcsMjUgQEAKLSAgIHRoZW4KLSAgICAgaWYgdGVzdCAkRm5yb2ZmID0gIm1pc3NpbmciCi0gICAgIHRoZW4KLS0gICAgICBucm9mZj0ibnJvZmYgLVRsYXRpbjEgLW1hbmRvYyIKLSsgICAgICBucm9mZj0ibnJvZmYgLVR1dGY4IC1tYW5kb2MiCi0gICAgIGVsc2UKLS0gICAgICBucm9mZj0iJEZucm9mZiAtVGxhdGluMSAtbWFuZG9jIgotKyAgICAgIG5yb2ZmPSIkRm5yb2ZmIC1UdXRmOCAtbWFuZG9jIgotICAgICBmaQotICAgICB0cm9mZj0idHJvZmYgLW1hbmRvYyIKLSAgICAgZWNobyAiV2FybmluZzogY291bGQgbm90IGZpbmQgZ3JvZmYiCi0gICBlbHNlCi0gICAgIGlmIHRlc3QgJEZucm9mZiA9ICJtaXNzaW5nIgotICAgICB0aGVuCi0tICAgICAgbnJvZmY9IiRGZ3JvZmYgLVRsYXRpbjEgLW1hbmRvYyIKLSsgICAgICBucm9mZj0iJEZncm9mZiAtVHV0ZjggLW1hbmRvYyIKLSAgICAgZWxzZQotLSAgICAgIG5yb2ZmPSIkRm5yb2ZmIC1UbGF0aW4xIC1tYW5kb2MiCi0rICAgICAgbnJvZmY9IiRGbnJvZmYgLVR1dGY4IC1tYW5kb2MiCi0gICAgIGZpCi0gICAgIHRyb2ZmPSIkRmdyb2ZmIC1UcHMgLW1hbmRvYyIKLS0gICAgam5yb2ZmPSIkRmdyb2ZmIC1UbmlwcG9uIC1tYW5kb2NqIgotKyAgICBqbnJvZmY9IiRGam5yb2ZmIC1UdXRmOCAtbWFuZG9jaiIKLSAgIGZpCi0gICBlcW49IiRGZ2VxbiAtVHBzIgotLSAgbmVxbj0iJEZnZXFuIC1UbGF0aW4xIgotLSAgam5lcW49IiRGZ2VxbiAtVG5pcHBvbiIKLSsgIG5lcW49IiRGZ2VxbiAtVHV0ZjgiCi0rICBqbmVxbj0iJEZnZXFuIC1UdXRmOCIKLSAgIHRibD0iJEZndGJsIgotICAgY29sPSIkRmNvbCIKLSAgIHZncmluZD0iJEZ2Z3JpbmQiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi9tYW4vbWFuLTEuNWstY29uZnBhdGgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi9tYW4vbWFuLTEuNWstY29uZnBhdGgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI1NzQ2YzIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4vbWFuL21hbi0xLjVrLWNvbmZwYXRoLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLVNpZ25lZC1vZmYtYnk6IFNjb3R0IEdhcm1hbiA8c2NvdHQuYS5nYXJtYW5AaW50ZWwuY29tPgotCi0tLS0gY29uZmlndXJlCTIwMDYtMDUtMDEgMTk6NTY6MTQuMDAwMDAwMDAwICswMjAwCi0rKysgY29uZmlndXJlLm9kZW4JMjAwOC0xMi0yMSAxOToxNjo1MC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0xOTgsNyArMTk4LDcgQEAKLSAgICAgY29uZmRpcj0iJHtjb25mcHJlZml4fS9zaGFyZS9taXNjIgotICAgZmkKLSBmaQotLWNvbmZmaWxlbmFtZT0ibWFuLmNvbmYiCi0rY29uZmZpbGVuYW1lPSJtYW4uY29uZmlnIgotIAotIGlmIHRlc3QgIiRSQU5ET00iID0gIiRSQU5ET00iOyB0aGVuCi0gICAjIFBsYWluIG9sZCBCb3VybmUgc2hlbGwuCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi9tYW4vbWFuLTEuNWstbm9uYXNjaWkucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi9tYW4vbWFuLTEuNWstbm9uYXNjaWkucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ2NjJkOWIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4vbWFuL21hbi0xLjVrLW5vbmFzY2lpLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLVNpZ25lZC1vZmYtYnk6IFNjb3R0IEdhcm1hbiA8c2NvdHQuYS5nYXJtYW5AaW50ZWwuY29tPgotCi0tLS0gLi9zcmMvYXByb3Bvcy5zaC5ub25hc2NpaQkyMDAxLTExLTIzIDAwOjMwOjQyLjAwMDAwMDAwMCArMDEwMAotKysrIC4vc3JjL2Fwcm9wb3Muc2gJMjAwMi0wOC0xMyAxNTo0NDo1My4wMDAwMDAwMDAgKzAyMDAKLUBAIC0xOCw5ICsxOCw5IEBACi0gCi0gIyBXaGVuIG1hbiBwYWdlcyBpbiB5b3VyIGZhdm9yaXRlIGxvY2FsZSBsb29rIHRvIGdyZXAgbGlrZSBiaW5hcnkgZmlsZXMKLSAjIChhbmQgeW91IHVzZSBHTlUgZ3JlcCkgeW91IG1heSB3YW50IHRvIGFkZCB0aGUgJ2EnIG9wdGlvbiB0byAqZ3JlcG9wdDEuCi0tYXByb3Bvc2dyZXBvcHQxPSdpJwotK2Fwcm9wb3NncmVwb3B0MT0naWEnCi0gYXByb3Bvc2dyZXBvcHQyPScnCi0td2hhdGlzZ3JlcG9wdDE9J2l3JwotK3doYXRpc2dyZXBvcHQxPSdpd2EnCi0gd2hhdGlzZ3JlcG9wdDI9J14nCi0gZ3JlcG9wdDE9JCVhcHJvcG9zX29yX3doYXRpcyVncmVwb3B0MQotIGdyZXBvcHQyPSQlYXByb3Bvc19vcl93aGF0aXMlZ3JlcG9wdDIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWFuL21hbi9tYW4tMS41ay1zb2ZpeC5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWFuL21hbi9tYW4tMS41ay1zb2ZpeC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTBiOTI1Mi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi9tYW4vbWFuLTEuNWstc29maXgucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotU2lnbmVkLW9mZi1ieTogU2NvdHQgR2FybWFuIDxzY290dC5hLmdhcm1hbkBpbnRlbC5jb20+Ci0KLS0tLSBtYW4tMS41ai9zcmMvbWFuLmMuc29maXgJVGh1IE5vdiAyMiAxNDo1MTo0NCAyMDAxCi0rKysgbWFuLTEuNWovc3JjL21hbi5jCVRodSBOb3YgMjIgMTQ6NTI6NDQgMjAwMQotQEAgLTMwMCw3ICszMDAsNyBAQAotIAotICAgICAgaWYgKHN0cmxlbihuYW1lMCkgPj0gc2l6ZW9mKHVsdG5hbWUpKQotIAkgICAgIHJldHVybiBuYW1lMDsKLS0gICAgIHN0cmNweSh1bHRuYW1lLCBuYW1lMCk7Ci0rICAgICBzdHJuY3B5KHVsdG5hbWUsIG5hbWUwLCBCVUZTSVpFLTMyKTsKLSAgICAgIG5hbWUgPSB1bHRuYW1lOwotIAotIGFnYWluOgotQEAgLTMzMiw3ICszMzIsNyBAQAotIAkgICAqIC5zbyBmaWxlcyAtIHdlIGNvdWxkIGdsb2IgZm9yIGFsbCBwb3NzaWJsZSBleHRlbnNpb25zLAotIAkgICAqIGZvciBub3c6IG9ubHkgdHJ5IC5negotIAkgICAqLwotLQkgIGVsc2UgaWYgKGZwID09IE5VTEwgJiYgZ2V0X2V4cGFuZGVyKCIuZ3oiKSAmJgotKwkgIGlmIChmcCA9PSBOVUxMICYmIGdldF9leHBhbmRlcigiLmd6IikgJiYKLSAJCSAgIHN0cmxlbihuYW1lKStzdHJsZW4oIi5neiIpIDwgQlVGU0laRSkgewotIAkgICAgICAgc3RyY2F0KG5hbWUsICIuZ3oiKTsKLSAJICAgICAgIGZwID0gZm9wZW4gKG5hbWUsICJyIik7CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi9tYW4vbWFuLTEuNW0yLWJ1ZzExNjIxLnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4vbWFuL21hbi0xLjVtMi1idWcxMTYyMS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDUxMjk5OS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi9tYW4vbWFuLTEuNW0yLWJ1ZzExNjIxLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLVNpZ25lZC1vZmYtYnk6IFNjb3R0IEdhcm1hbiA8c2NvdHQuYS5nYXJtYW5AaW50ZWwuY29tPgotCi0tLS0gLi9jb25maWd1cmUuYWQJMjAwMy0xMi0xMSAxOToxNzoxMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyAuL2NvbmZpZ3VyZQkyMDAzLTEyLTExIDE5OjE3OjI3LjAwMDAwMDAwMCArMDEwMAotQEAgLTI2LDcgKzI2LDcgQEAKLSAjIChJbmRlZWQsIC1yIG1heSBjYXVzZSB0aGUgdGVybWluYWwgdG8gZ2V0IGludG8gZnVubnkgc3RhdGVzLgotICMgVmVyeSBpbmNvbnZlbmllbnQuIEZvciB2aWV3aW5nIHBhZ2VzIGluIHN0cmFuZ2UgbG9jYWxlcywgc2V0IExDXyouKQotICMKLS1ERUZBVUxUTEVTU09QVD0iLWlzIgotK0RFRkFVTFRMRVNTT1BUPSItaXNyIgotICMKLSAjIE5vdGUgdGhhdCBub3QgY3JlYXRpbmcgYW55IGNhdCBkaXJlY3RvcmllcyAoL3Zhci9jYWNoZS9tYW4gb3Igc28pCi0gIyBhbmQgbm90IG1ha2luZyBtYW4gc3VpZCBvciBzZ2lkIGlzIHJlY29tbWVuZGVkLgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4vbWFuL21hbi0xLjVtMi1idWlsZHJvb3QucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi9tYW4vbWFuLTEuNW0yLWJ1aWxkcm9vdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmM5N2Y1Ni4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi9tYW4vbWFuLTEuNW0yLWJ1aWxkcm9vdC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDUyICswLDAgQEAKLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1TaWduZWQtb2ZmLWJ5OiBTY290dCBHYXJtYW4gPHNjb3R0LmEuZ2FybWFuQGludGVsLmNvbT4KLQotLS0tIC4vY29uZmlndXJlLmxlc3MJMjAwMy0xMi0xMSAxOToxODoxNS4wMDAwMDAwMDAgKzAxMDAKLSsrKyAuL2NvbmZpZ3VyZQkyMDAzLTEyLTExIDE5OjIwOjAzLjAwMDAwMDAwMCArMDEwMAotQEAgLTQwMSwxOCArNDAxLDEzIEBACi0gCi0gaWYgdGVzdCAiJGFucyIgPSAiZmFsc2UiCi0gdGhlbgotLSAgZm9yIGkgaW4gbW9yZSBsZXNzIGNtcCBjYXQgYXdrIGdhd2sgbWF3awotLSAgZG8KLS0gICAgZXZhbCBGJGk9Im1pc3NpbmciCi0tICAgIGZvciBqIGluICRERUZQQVRICi0tICAgIGRvCi0tICAgICAgaWYgdGVzdCAtZiAkai8kaQotLSAgICAgIHRoZW4KLS0JZXZhbCBGJGk9JGovJGkKLS0JYnJlYWsKLS0gICAgICBmaQotLSAgICBkb25lCi0tICBkb25lCi0rICBGbW9yZT0vYmluL21vcmUKLSsgIEZsZXNzPS91c3IvYmluL2xlc3MKLSsgIEZjbXA9L3Vzci9iaW4vY21wCi0rICBGY2F0PS9iaW4vY2F0Ci0rICBGZ2F3az0vYmluL2dhd2sKLSsgIEZhd2s9L2Jpbi9nYXdrCi0rICBGbWF3az1taXNzaW5nCi0gICB0cm9mZj0iIgotICAgbnJvZmY9IiIKLSAgIGpucm9mZj0iIgotQEAgLTQ1Nyw2ICs0NTIsMTkgQEAKLSAgICAgICBmaQotICAgICBkb25lCi0gICBkb25lCi0rICBGZ3JvZmY9L3Vzci9iaW4vZ3JvZmYKLSsgIEZnZXFuPS91c3IvYmluL2dlcW4KLSsgIEZndGJsPS91c3IvYmluL2d0YmwKLSsgIEZjb2w9L3Vzci9iaW4vY29sCi0rICBGZ3JlZmVyPS91c3IvYmluL2dyZWZlcgotKyAgRmdwaWM9L3Vzci9iaW4vZ3BpYwotKyAgRm1vcmU9L2Jpbi9tb3JlCi0rICBGbGVzcz0vdXNyL2Jpbi9sZXNzCi0rICBGY21wPS91c3IvYmluL2NtcAotKyAgRmNhdD0vYmluL2NhdAotKyAgRmdhd2s9L2Jpbi9nYXdrCi0rCi0rCi0gICBmb3IgaSBpbiBlcW4gdGJsIHJlZmVyIHBpYwotICAgZG8KLSAgICAgaWYgdGVzdCBgZXZhbCBlY2hvIFxcJEZnJGlgID0gIm1pc3NpbmciCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi9tYW4vbWFuLTEuNW0yLW5vLWNvbG9yLWZvci1wcmludGluZy5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWFuL21hbi9tYW4tMS41bTItbm8tY29sb3ItZm9yLXByaW50aW5nLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjODVmZjFkLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWFuL21hbi9tYW4tMS41bTItbm8tY29sb3ItZm9yLXByaW50aW5nLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLVNpZ25lZC1vZmYtYnk6IFNjb3R0IEdhcm1hbiA8c2NvdHQuYS5nYXJtYW5AaW50ZWwuY29tPgotCi0tLS0gbWFuLTEuNW0yL2NvbmZpZ3VyZS5jb2xvcgkyMDA2LTA5LTE2IDE4OjI3OjM3LjAwMDAwMDAwMCArMDIwMAotKysrIG1hbi0xLjVtMi9jb25maWd1cmUJMjAwNi0wOS0xNiAxODoyODo0NC4wMDAwMDAwMDAgKzAyMDAKLUBAIC01MzksNiArNTM5LDggQEAKLSAgICAgdHJvZmY9IiR0cm9mZiAtYyIKLSAgICAgbnJvZmY9IiRucm9mZiAtYyIKLSAgICAgam5yb2ZmPSIkam5yb2ZmIC1jIgotK2Vsc2UKLSsgICAgdHJvZmY9IiR0cm9mZiAtYyIKLSBmaQotIAotIGlmIFsgeCRkZWZhdWx0ID0geCBdOyB0aGVuCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi9tYW4vbWFuLTEuNW0yLXNpZ3BpcGUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi9tYW4vbWFuLTEuNW0yLXNpZ3BpcGUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhhZjc4ZWEuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4vbWFuL21hbi0xLjVtMi1zaWdwaXBlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLVNpZ25lZC1vZmYtYnk6IFNjb3R0IEdhcm1hbiA8c2NvdHQuYS5nYXJtYW5AaW50ZWwuY29tPgotCi0tLS0gbWFuLTEuNW0yL3NyYy91dGlsLmNfc2lncGlwZQkyMDA2LTEyLTA5IDEzOjQzOjIxLjAwMDAwMDAwMCArMDEwMAotKysrIG1hbi0xLjVtMi9zcmMvdXRpbC5jCTIwMDYtMTItMDkgMTM6NTM6MTMuMDAwMDAwMDAwICswMTAwCi1AQCAtMTE2LDExICsxMTYsMTQgQEAKLSBzdGF0aWMgaW50Ci0gc3lzdGVtMSAoY29uc3QgY2hhciAqY29tbWFuZCkgewotIAl2b2lkICgqcHJldl9oYW5kbGVyKShpbnQpID0gc2lnbmFsIChTSUdJTlQsY2F0Y2hfaW50KTsKLSsJc2lnbmFsIChTSUdQSVBFLFNJR19JR04pOwotIAlpbnQgcmV0ID0gc3lzdGVtKGNvbW1hbmQpOwotIAotIAkvKiBjaGlsZCB0ZXJtaW5hdGVkIHdpdGggc2lnbmFsPyAqLwotIAlpZiAoV0lGU0lHTkFMRUQocmV0KSAmJgotLQkgICAgKFdURVJNU0lHKHJldCkgPT0gU0lHSU5UIHx8IFdURVJNU0lHKHJldCkgPT0gU0lHUVVJVCkpCi0rCSAgICAoV1RFUk1TSUcocmV0KSA9PSBTSUdJTlQgfHwKLSsJCSBXVEVSTVNJRyhyZXQpID09IFNJR1BJUEUgfHwKLSsJCSBXVEVSTVNJRyhyZXQpID09IFNJR1FVSVQpKQotIAkJZXhpdCgxKTsKLSAKLSAJLyogb3Igd2UgY2F1Z2h0IGFuIGludGVycnVwdD8gKi8KLUBAIC0xMjgsNiArMTMxLDcgQEAKLSAJCWV4aXQoMSk7Ci0gCi0gCXNpZ25hbChTSUdJTlQscHJldl9oYW5kbGVyKTsKLSsJc2lnbmFsKFNJR1BJUEUsU0lHX0RGTCk7Ci0gCXJldHVybiByZXQ7Ci0gfQotIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4vbWFuL21hbi0xLjZlLWkxOG5fd2hhdGlzLnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4vbWFuL21hbi0xLjZlLWkxOG5fd2hhdGlzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMzIxMzI1Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWFuL21hbi9tYW4tMS42ZS1pMThuX3doYXRpcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE0NSArMCwwIEBACi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotU2lnbmVkLW9mZi1ieTogU2NvdHQgR2FybWFuIDxzY290dC5hLmdhcm1hbkBpbnRlbC5jb20+Ci0KLWRpZmYgLU5hdXIgbWFuLTEuNmUub3JpZy9zcmMvYXByb3Bvcy5zaCBtYW4tMS42ZS9zcmMvYXByb3Bvcy5zaAotLS0tIG1hbi0xLjZlLm9yaWcvc3JjL2Fwcm9wb3Muc2gJMjAwNy0wNS0xOCAxMzo0OTozMS4wMDAwMDAwMDAgLTAzMDAKLSsrKyBtYW4tMS42ZS9zcmMvYXByb3Bvcy5zaAkyMDA3LTA1LTE4IDE0OjI0OjMzLjAwMDAwMDAwMCAtMDMwMAotQEAgLTYwLDE2ICs2MCw1NiBAQAotICAgICBlc2FjCi0gZG9uZQotIAotKyMgbGlzdCBvZiBsYW5ndWFnZXMgdG8gbG9vayBmb3IKLStMQU5HX0xJU1Q9YGVjaG8gJExBTkdVQUdFOiRMQ19BTEw6JExDX01FU1NBR0VTOiRMQU5HIHwgdHIgJzonICcgJ2AKLStESVJfTElTVD0iIgotK2ZvciBkIGluIC92YXIvY2FjaGUvbWFuICRtYW5wYXRoIC91c3IvbGliCi0rZG8KLSsgICAgZm9yIGwgaW4gJExBTkdfTElTVAotKyAgICBkbwotKyAgICAgICAgaWYgWyAtZCAkZC8kbCBdCi0rICAgICAgICB0aGVuCi0rICAgICAgICAgICAgIyBjaGVjayB0aGF0IHRoZSBwYXRoIGlzIG5vdCBhbHJlYWR5IGluIHRoZSBsaXN0Ci0rICAgICAgICAgICAgaWYgISBlY2hvICIkRElSX0xJU1QiIHwgZ3JlcCAiICRkLyRsXGIiID4gL2Rldi9udWxsCi0rICAgICAgICAgICAgdGhlbgotKyAgICAgICAgICAgICAgICBESVJfTElTVD0iJERJUl9MSVNUICRkLyRsIgotKyAgICAgICAgICAgIGZpCi0rICAgICAgICBmaQotKyAgICBkb25lCi0rICAgIERJUl9MSVNUPSIkRElSX0xJU1QgJGQiCi0rICAgICMgY2hlY2sgdGhhdCB0aGUgcGF0aCBpcyBub3QgYWxyZWFkeSBpbiB0aGUgbGlzdAotKyAgICBpZiAhIGVjaG8gIiRESVJfTElTVCIgfCBncmVwICIgJGRcYiIgPiAvZGV2L251bGwKLSsgICAgdGhlbgotKyAgICAgICAgRElSX0xJU1Q9IiRESVJfTElTVCAkZC8kbCIKLSsgICAgZmkKLStkb25lCi0rCi0gd2hpbGUgWyAiJDEiICE9ICIiIF0KLSBkbwotICAgICBmb3VuZD0wCi0tICAgIGZvciBkIGluIC92YXIvY2FjaGUvbWFuICRtYW5wYXRoIC91c3IvbGliCi0rICAgICMgaW4gb3JkZXIgbm90IHRvIGRpc3BsYXkgbGluZXMgaW4gbW9yZSB0aGFuIG9uZSBsYW5ndWFnZSBmb3IKLSsgICAgIyBhIHNhbWUgbWFuIHBhZ2U7IHdlIGNoZWNrIHRoYXQgYSBnaXZlbiBtYW4gcGFnZSBuYW1lCi0rICAgICMgaGFzbid0IGFscmVhZHkgYmVlbiBkaXNwbGF5ZWQKLSsgICAgQkFaPSIiCi0rICAgIGZvciBkIGluICRESVJfTElTVAotICAgICBkbwotICAgICAgICAgaWYgWyAtZiAkZC93aGF0aXMgXQotICAgICAgICAgdGhlbgotLSAgICAgICAgICAgIGlmIGdyZXAgLSIkZ3JlcG9wdDEiICIkZ3JlcG9wdDIiIiQxIiAkZC93aGF0aXMKLSsgICAgICAgICAgICBpZiBGT089YGdyZXAgLSIkZ3JlcG9wdDEiICIkZ3JlcG9wdDIiIiQxIiAkZC93aGF0aXNgCi0gICAgICAgICAgICAgdGhlbgotLSAgICAgICAgICAgICAgICBmb3VuZD0xCi0rICAgICAgICAgICAgICAgICMgdGhlIExDX0FMTD1DIGlzIG5lZWRlZCBpbiBjYXNlIHRoZSB0ZXh0IGlzCi0rICAgICAgICAgICAgICAgICMgaW4gYSBkaWZmZXJlbnQgZW5jb2RpbmcgdGhhbiB0aGUgbG9jYWxlCi0rICAgICAgICAgICAgICAgIEJBUj1gZWNobyAtZSAiJEZPTyIgfCBMQ19BTEw9QyBzZWQgJ3MvIC0gLiokLy8nIHwgdHIgJyBbXScgJ18nIHwgc29ydCAtdWAKLSsgICAgICAgICAgICAgICAgZm9yIGkgaW4gJEJBUgotKyAgICAgICAgICAgICAgICBkbwotKyAgICAgICAgICAgICAgICAgICAgaWYgISBlY2hvICIkQkFaIiB8IGdyZXAgIiRpIiA+IC9kZXYvbnVsbAotKyAgICAgICAgICAgICAgICAgICAgdGhlbgotKyAgICAgICAgICAgICAgICAgICAgICAgIEJBWj0iJEJBWiAkaSIKLSsgICAgICAgICAgICAgICAgICAgICAgICBpPSJeYGVjaG8gJGkgfCBzZWQgJ3M6X1wrOlxcXChcW18gXF1cXFx8XFxcW1xcXHxcXFxdXFxcKVxcXCs6ZydgIgotKyAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gLWUgIiRGT08iIHwgZ3JlcCAiJGkiCi0rICAgICAgICAgICAgICAgICAgICAgICAgZm91bmQ9MQotKyAgICAgICAgICAgICAgICAgICAgZmkKLSsgICAgICAgICAgICAgICAgZG9uZQotICMgU29tZSBwZW9wbGUgYXJlIHNhdGlzZmllZCB3aXRoIGEgc2luZ2xlIG9jY3VycmVuY2UKLSAjIEJ1dCBpdCBpcyBiZXR0ZXIgdG8gZ2l2ZSBhbGwKLSAjICAgICAgICAgICAgICAgYnJlYWsKLWRpZmYgLU5hdXIgbWFuLTEuNmUub3JpZy9zcmMvbWFrZXdoYXRpcy5zaCBtYW4tMS42ZS9zcmMvbWFrZXdoYXRpcy5zaAotLS0tIG1hbi0xLjZlLm9yaWcvc3JjL21ha2V3aGF0aXMuc2gJMjAwNy0wNS0xOCAxMzo0OTozMS4wMDAwMDAwMDAgLTAzMDAKLSsrKyBtYW4tMS42ZS9zcmMvbWFrZXdoYXRpcy5zaAkyMDA3LTA1LTE4IDEzOjUwOjA3LjAwMDAwMDAwMCAtMDMwMAotQEAgLTQxLDEyICs0MSwzMiBAQAotIAotIHByb2dyYW09YGJhc2VuYW1lICQwYAotIAotKyMgdGhpcyBhbGxvd3MgdG8gZGVmaW5lIGxhbmd1YWdlIHNwZWNpZmljIHZhbHVlcyBmcm8gTkFNRSwgREVTQ1JJUFRJT04KLSsjIGlmIG5vdCBkZWZpbmVkLCB1c2luZyB0aG9zZSBkZWZhdWx0IHZhbHVlcwotK2lmIFsgLXogIiRNQU5fTkFNRSIgXQotK3RoZW4KLSsJTUFOX05BTUU9ItCY0JzQlXxOT018Sk3DiU5PfE5BVk58zp/Onc6fzpzOkXxOT01CUkV8TklNRXxJWkVOQXxOSU1JfElNRXxcCi0rTsOJVnxOT01FfOWQjeWJjXzsnbTrpoR8TkFBTXxOQVpXQXxOVU1FfNCY0JzQr3xNRU5PfNCd0JDQl9CS0JB85ZCN56ewfOWQjeeosSIKLStmaQotK2lmIFsgLXogIiRNQU5fREVTQ1JJUFRJT04iIF0KLSt0aGVuCi0rCU1BTl9ERVNDUklQVElPTj0i0J7Qn9CY0KHQkNCd0JjQlXxERVNDUklQQ0nDk3xQT1BJU3xCRVNLUklWRUxTRXxCRVNDSFJFSUJVTkd8XAotK86gzpXOoc6ZzpPOoc6RzqbOl3xERVNDUklQQ0nDk058S0lSSkVMRFVTfEFaQUxQRU5BfEtVVkFVU3xPUElTfExFw41Sw4FTfERFU0NSSVpJT05FfFwKLSvoqqzmmI587ISk66qFfEJFU0NIUklKVklOR3xERVNDUknDh8ODT3xERVNDUklFUkV80J7Qn9CY0KF85o+P6L+wIgotK2ZpCi0rIyBtYWtlIHRoZW0gaW50byBhd2sgcmVnZXhwCi0rTUFOX05BTUU9Il4oJHtNQU5fTkFNRX0pIjsKLStNQU5fREVTQ1JJUFRJT049Il4oJHtNQU5fREVTQ1JJUFRJT059KSI7Ci0rCi0gIyBJbiBjYXNlIGJvdGggL3Vzci9tYW4gYW5kIC91c3Ivc2hhcmUvbWFuIGV4aXN0LCB0aGUgZm9ybWVyIGlzIGxvY2FsCi0gIyBhbmQgc2hvdWxkIGJlIGZpcnN0LgotICMgSXQgaXMgYSBidWcgdG8gYWRkIC92YXIvY2FjaGUvbWFuIHRvIERFRkNBVFBBVEguCi0gZG09Ci0gZm9yIGQgaW4gL3Vzci9zaGFyZS9tYW4gL3Vzci9tYW4gL3Vzci9YMTFSNi9tYW4gL3Vzci9sb2NhbC9tYW4KLSBkbwotKyAgICBpZiBbIC1uICIkTEFORyIgLWEgLWQgIiRkLyRMQU5HIiBdOyB0aGVuCi0rCWlmIFsgeCRkbSA9IHggXTsgdGhlbiBkbT0iJGQvJExBTkciOyBlbHNlIGRtPSRkbToiJGQvJExBTkciOyBmaQotKyAgICBmaQotICAgICBpZiBbIC1kICRkIF07IHRoZW4KLSAJaWYgWyB4JGRtID0geCBdOyB0aGVuIGRtPSRkOyBlbHNlIGRtPSRkbTokZDsgZmkKLSAgICAgZmkKLUBAIC01NSw2ICs3NSw5IEBACi0gZGM9Ci0gZm9yIGQgaW4gL3Zhci9jYWNoZS9tYW4gL3Vzci9zaGFyZS9tYW4vcHJlZm9ybWF0IC91c3IvbWFuL3ByZWZvcm1hdCAvdXNyL3NoYXJlL21hbiAvdXNyL21hbgotIGRvCi0rICAgIGlmIFsgLW4gIiRMQU5HIiAtYSAtZCAiJGQvJExBTkciIF07IHRoZW4KLSsJaWYgWyB4JGRjID0geCBdOyB0aGVuIGRtPSIkZC8kTEFORyI7IGVsc2UgZG09JGRjOiIkZC8kTEFORyI7IGZpCi0rICAgIGZpCi0gICAgIGlmIFsgLWQgJGQgXTsgdGhlbgotIAlpZiBbIHgkZGMgPSB4IF07IHRoZW4gZGM9JGQ7IGVsc2UgZGM9JGRjOiRkOyBmaQotICAgICBmaQotQEAgLTE5NCw3ICsyMTcsNyBAQAotIAkgICAgc2VjdGlvbj0kaQotIAkgICAgY3VyZGlyPSRtYW5kaXIvJHtwYWdlc30kaQotIAkgICAgZXhwb3J0IHNlY3Rpb24gdmVyYm9zZSBjdXJkaXIKLS0JICAgIGZpbmQgJG1hbmRpci8ke3BhZ2VzfSRpLy4gLW5hbWUgJyonICRmaW5kYXJnMCAkZmluZGFyZyAtcHJpbnQgfCAkQVdLICcKLSsJICAgIGZpbmQgJG1hbmRpci8ke3BhZ2VzfSRpLy4gLW5hbWUgJyonICRmaW5kYXJnMCAkZmluZGFyZyAtcHJpbnQgfCBMQ19BTEw9QyAkQVdLIC12IE1BTl9OQU1FPSIkTUFOX05BTUUiIC12IE1BTl9ERVNDUklQVElPTj0iJE1BTl9ERVNDUklQVElPTiIgJwotIAotIAkgICAgZnVuY3Rpb24gcmVhZGxpbmUoKSB7Ci0gCSAgICAgIGlmICh1c2VfemNhdCB8fCB1c2VfYnpjYXQpIHsKLUBAIC0yNjEsMTMgKzI4NCw3IEBACi0gCQlnc3ViKC8uXGIvLCAiIik7Ci0gCQlpZiAoKCQxIH4gL15cLltTc11bSGhdLyAmJgotIAkJICAoJDIgfiAvW05uXVtBYV1bTW1dW0VlXS8gfHwKLS0JCSAgICQyIH4gL15KTclOTy8gfHwgJDIgfiAvXk5BVk4vIHx8ICQyIH4gL15OVU1FLyB8fAotLQkJICAgJDIgfiAvXkJFWkVJQ0hOVU5HLyB8fCAkMiB+IC9eTk9NQlJFLyB8fAotLQkJICAgJDIgfiAvXk5JTUkvIHx8ICQyIH4gL15OT00vIHx8ICQyIH4gL15JTUUvIHx8Ci0tCQkgICAkMiB+IC9eTlvJRV1WLyB8fCAkMiB+IC9eTkFNQS8gfHwgJDIgfiAvXsy+wbAvIHx8Ci0tCQkgICAkMiB+IC9ezL6+zi8gfHwgJDIgfiAvXsDMuKcvIHx8ICQyIH4gL15OQVpXQS8gfHwKLS0JCSAgICQyIH4gL17u4fr34e7p5S8gfHwgJDIgfiAvXsP7s8YvIHx8ICQyIH4gL16mV7rZLyB8fAotLQkJICAgJDIgfiAvXk5PTUUvIHx8ICQyIH4gL15OQUFNLyB8fCAkMiB+IC9eyMzFLykpIHx8Ci0rCQkgICAkMiB+IE1BTl9OQU1FICkpIHx8Ci0gCQkgIChwYWdlcyA9PSAiY2F0IiAmJiAkMSB+IC9eTkFNRS8pKSB7Ci0gCQkgICAgaWYgKCFpbnNoKSB7Ci0gCQkgICAgICBpbnNoID0gMTsKLUBAIC0yNzgsNiArMjk1LDcgQEAKLSAJCSAgaWYgKCQxIH4gL15cLltTc11bSGhZU10vIHx8Ci0gCQkgICAgKHBhZ2VzID09ICJjYXQiICYmCi0gCQkgICAgKCQxIH4gL15TW3lZZUVdLyB8fCAkMSB+IC9eREVTQ1JJUFRJT04vIHx8Ci0rCQkgICAgICQxIH4gTUFOX0RFU0NSSVBUSU9OIHx8Ci0gCQkgICAgICQxIH4gL15DT01NQU5ELyB8fCAkMSB+IC9eT1ZFUlZJRVcvIHx8Ci0gCQkgICAgICQxIH4gL15TVFJVQ1RVUkVTLyB8fCAkMSB+IC9eSU5UUk9EVUNUSU9OLyB8fAotIAkJICAgICAkMCB+IC9eW14gXS8pKSkgewpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4vbWFuL21hbi0xLjZlLW1hbmRpcnMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi9tYW4vbWFuLTEuNmUtbWFuZGlycy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjI0MDA2NC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi9tYW4vbWFuLTEuNmUtbWFuZGlycy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1TaWduZWQtb2ZmLWJ5OiBTY290dCBHYXJtYW4gPHNjb3R0LmEuZ2FybWFuQGludGVsLmNvbT4KLQotLS0tIG1hbi0xLjZlLm9yaWcvc3JjL21hbi5jb25mLmluCTIwMDUtMDgtMjAgMjA6MjY6MDYuMDAwMDAwMDAwIC0wMzAwCi0rKysgbWFuLTEuNmUvc3JjL21hbi5jb25mLmluCTIwMDctMDUtMTggMTA6MzA6MjkuMDAwMDAwMDAwIC0wMzAwCi1AQCAtMzYsMTEgKzM2LDEyIEBACi0gIwotICMgRXZlcnkgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgTUFOUEFUSCBpbmNsdWRlcyB0aGVzZSBmaWVsZHMKLSAjCi0tTUFOUEFUSAkvdXNyL21hbgotIE1BTlBBVEgJL3Vzci9zaGFyZS9tYW4KLStNQU5QQVRICS91c3IvWDExUjYvbWFuCi0gTUFOUEFUSAkvdXNyL2xvY2FsL21hbgotIE1BTlBBVEgJL3Vzci9sb2NhbC9zaGFyZS9tYW4KLS1NQU5QQVRICS91c3IvWDExUjYvbWFuCi0rTUFOUEFUSAkvdXNyL2tlcmJlcm9zL21hbgotK01BTlBBVEgJL3Vzci9tYW4KLSAjCi0gIyBVbmNvbW1lbnQgaWYgeW91IHdhbnQgdG8gaW5jbHVkZSBvbmUgb2YgdGhlc2UgYnkgZGVmYXVsdAotICMKLUBAIC02Nyw2ICs2OCw5IEBACi0gTUFOUEFUSF9NQVAJL3Vzci9YMTFSNi9iaW4JCS91c3IvWDExUjYvbWFuCi0gTUFOUEFUSF9NQVAJL3Vzci9iaW4vWDExCQkvdXNyL1gxMVI2L21hbgotIE1BTlBBVEhfTUFQCS91c3IvYmluL21oCQkvdXNyL3NoYXJlL21hbgotK01BTlBBVEhfTUFQCS91c3Iva2VyYmVyb3MvYmluCQkvdXNyL2tlcmJlcm9zL21hbgotK01BTlBBVEhfTUFQCS91c3Iva2VyYmVyb3Mvc2JpbgkJL3Vzci9rZXJiZXJvcy9tYW4KLSsKLSAjCi0gIyBOT0FVVE9QQVRIIGtlZXBzIG1hbiBmcm9tIGF1dG9tYXRpY2FsbHkgYWRkaW5nIGRpcmVjdG9yaWVzIHRoYXQgbG9vayBsaWtlCi0gIyBtYW51YWwgcGFnZSBkaXJlY3RvcmllcyB0byB0aGUgcGF0aC4KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWFuL21hbi9tYW4tMS42ZS1uZXdfc2VjdGlvbnMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi9tYW4vbWFuLTEuNmUtbmV3X3NlY3Rpb25zLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYjk3NzNjLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWFuL21hbi9tYW4tMS42ZS1uZXdfc2VjdGlvbnMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotU2lnbmVkLW9mZi1ieTogU2NvdHQgR2FybWFuIDxzY290dC5hLmdhcm1hbkBpbnRlbC5jb20+Ci0KLS0tLSBtYW4tMS42ZS5vcmlnL2NvbmZpZ3VyZQkyMDA2LTA1LTAxIDE0OjU2OjE0LjAwMDAwMDAwMCAtMDMwMAotKysrIG1hbi0xLjZlL2NvbmZpZ3VyZQkyMDA3LTA1LTE4IDE0OjM1OjQzLjAwMDAwMDAwMCAtMDMwMAotQEAgLTk2MCw3ICs5NjAsNyBAQAotIAotICMgV2hhdCBzZWN0aW9ucyBkbyB3ZSBhbnRpY2lwYXRlPwotIAotLXRtcHNlY3Rpb25zPSIxIDFwIDggMiAzIDNwIDQgNSA2IDcgOSAwcCB0Y2wgbiBsIHAgbyIKLSt0bXBzZWN0aW9ucz0iMSAxcCA4IDIgMyAzcCAzcG0gNCA1IDYgNyA5IDBwIHRjbCBuIGwgcCBvIgotIAotIGlmIFsgeCRkZWZhdWx0ID0geCBdOyB0aGVuCi0gICBlY2hvICIiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi9tYW4vbWFuLTEuNmUtcm9fdXNyLnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4vbWFuL21hbi0xLjZlLXJvX3Vzci5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWQxY2IwYy4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi9tYW4vbWFuLTEuNmUtcm9fdXNyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLVNpZ25lZC1vZmYtYnk6IFNjb3R0IEdhcm1hbiA8c2NvdHQuYS5nYXJtYW5AaW50ZWwuY29tPgotCi1JbmRleDogbWFuLTEuNmYvc3JjL21ha2V3aGF0aXMuc2gKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBtYW4tMS42Zi5vcmlnL3NyYy9tYWtld2hhdGlzLnNoCTIwMTAtMTItMjkgMTM6NDI6MzQuMDAwMDAwMDAwIC0wODAwCi0rKysgbWFuLTEuNmYvc3JjL21ha2V3aGF0aXMuc2gJMjAxMC0xMi0yOSAxMzo0MjozNS42Njc0MjgzNDcgLTA4MDAKLUBAIC0xMjQsNyArMTI0LDcgQEAKLSAJY29udGludWU7OwotICAgICAtcykgc2V0c2VjdGlvbnM9MQotIAljb250aW51ZTs7Ci0tICAgIC11KSBmaW5kYXJnPSItY3RpbWUgMCIKLSsgICAgLXUpIGZpbmRhcmc9Ii1uZXdlciAvdmFyL2NhY2hlL21hbi93aGF0aXMiCi0gCXVwZGF0ZT0xCi0gCWNvbnRpbnVlOzsKLSAgICAgLXYpIHZlcmJvc2U9MQotQEAgLTE2NSwxNCArMTY1LDcgQEAKLSAjIGZpcnN0IHRydW5jYXRlIGFsbCB0aGUgd2hhdGlzIGZpbGVzIHRoYXQgd2lsbCBiZSBjcmVhdGVkIG5ldywKLSAjIHRoZW4gb25seSB1cGRhdGUgLSB3ZSBtaWdodCB2aXNpdCB0aGUgc2FtZSBkaXJlY3RvcnkgdHdpY2UKLSBpZiBbIHgkdXBkYXRlID0geCBdOyB0aGVuCi0tICAgZm9yIHBhZ2VzIGluIG1hbiBjYXQKLS0gICBkbwotLSAgICAgIGV2YWwgcGF0aD0iXCQkcGFnZXMicGF0aAotLSAgICAgIGZvciBtYW5kaXIgaW4gJHBhdGgKLS0gICAgICBkbwotLQkgY3AgL2Rldi9udWxsICRtYW5kaXIvd2hhdGlzCi0tICAgICAgZG9uZQotLSAgIGRvbmUKLSsgICBjcCAvZGV2L251bGwgL3Zhci9jYWNoZS9tYW4vd2hhdGlzCi0gZmkKLSAKLSBmb3IgcGFnZXMgaW4gbWFuIGNhdApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4vbWFuL21hbi0xLjZlLXNlY3VyaXR5LnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4vbWFuL21hbi0xLjZlLXNlY3VyaXR5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMTJhODgyLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWFuL21hbi9tYW4tMS42ZS1zZWN1cml0eS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDYyICswLDAgQEAKLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1TaWduZWQtb2ZmLWJ5OiBTY290dCBHYXJtYW4gPHNjb3R0LmEuZ2FybWFuQGludGVsLmNvbT4KLQotZGlmZiAtTmF1ciBtYW4tMS42ZS5vcmlnL3NyYy9tYWtld2hhdGlzLnNoIG1hbi0xLjZlL3NyYy9tYWtld2hhdGlzLnNoCi0tLS0gbWFuLTEuNmUub3JpZy9zcmMvbWFrZXdoYXRpcy5zaAkyMDA2LTA3LTE5IDAxOjU4OjA4LjAwMDAwMDAwMCAtMDMwMAotKysrIG1hbi0xLjZlL3NyYy9tYWtld2hhdGlzLnNoCTIwMDctMDUtMTggMTA6MTg6MzEuMDAwMDAwMDAwIC0wMzAwCi1AQCAtNDUsNyArNDUsNyBAQAotICMgYW5kIHNob3VsZCBiZSBmaXJzdC4KLSAjIEl0IGlzIGEgYnVnIHRvIGFkZCAvdmFyL2NhY2hlL21hbiB0byBERUZDQVRQQVRILgotIGRtPQotLWZvciBkIGluIC91c3IvbWFuIC91c3Ivc2hhcmUvbWFuIC91c3IvWDExUjYvbWFuIC91c3IvbG9jYWwvbWFuCi0rZm9yIGQgaW4gL3Vzci9zaGFyZS9tYW4gL3Vzci9tYW4gL3Vzci9YMTFSNi9tYW4gL3Vzci9sb2NhbC9tYW4KLSBkbwotICAgICBpZiBbIC1kICRkIF07IHRoZW4KLSAJaWYgWyB4JGRtID0geCBdOyB0aGVuIGRtPSRkOyBlbHNlIGRtPSRkbTokZDsgZmkKLUBAIC01Myw3ICs1Myw3IEBACi0gZG9uZQotIERFRk1BTlBBVEg9JGRtCi0gZGM9Ci0tZm9yIGQgaW4gL3Vzci9tYW4vcHJlZm9ybWF0IC91c3IvbWFuIC91c3Ivc2hhcmUvbWFuL3ByZWZvcm1hdCAvdXNyL3NoYXJlL21hbgotK2ZvciBkIGluIC92YXIvY2FjaGUvbWFuIC91c3Ivc2hhcmUvbWFuL3ByZWZvcm1hdCAvdXNyL21hbi9wcmVmb3JtYXQgL3Vzci9zaGFyZS9tYW4gL3Vzci9tYW4KLSBkbwotICAgICBpZiBbIC1kICRkIF07IHRoZW4KLSAJaWYgWyB4JGRjID0geCBdOyB0aGVuIGRjPSRkOyBlbHNlIGRjPSRkYzokZDsgZmkKLUBAIC03NiwxMiArNzYsMTIgQEAKLSAjIFdlIHRyeSBoZXJlIHRvIGJlIGNhcmVmdWwgKGFuZCBhdm9pZCBwcmVjb25zdHJ1Y3RlZCBzeW1saW5rcykKLSAjIGluIGNhc2UgbWFrZXdoYXRpcyBpcyBydW4gYXMgcm9vdCwgYnkgY3JlYXRpbmcgYSBzdWJkaXJlY3Rvcnkgb2YgL3RtcC4KLSAKLS1UTVBGSUxFRElSPS90bXAvd2hhdGlzLnRtcC5kaXIuJCQKLS1ybSAtcmYgJFRNUEZJTEVESVIKLS1pZiAhIG1rZGlyIC1tIDA3MDAgJFRNUEZJTEVESVI7IHRoZW4KLS0gICAgZWNobyBDb3VsZCBub3QgY3JlYXRlICRUTVBGSUxFRElSCi0tICAgIGV4aXQgMTsKLStUTVBGSUxFRElSPWBta3RlbXAgLWQgL3RtcC9tYWtld2hhdGlzWFhYWFhYYAotK2lmIFsgJD8gLW5lIDAgXTsgdGhlbgotKyAgIGVjaG8gIiQwOiBDYW4ndCBjcmVhdGUgdGVtcCBmaWxlLCBleGl0aW5nLi4uIgotKyAgIGV4aXQgMQotIGZpCi0rY2htb2QgMDcwMCAkVE1QRklMRURJUgotIFRNUEZJTEU9JFRNUEZJTEVESVIvdwotIAotICMgbWFrZSBzdXJlIFRNUEZJTEVESVIgaXMgZGVsZXRlZCBpZiBwcm9ncmFtIGlzIGtpbGxlZCBvciB0ZXJtaW5hdGVzCi1kaWZmIC1OYXVyIG1hbi0xLjZlLm9yaWcvc3JjL21hbi5jIG1hbi0xLjZlL3NyYy9tYW4uYwotLS0tIG1hbi0xLjZlLm9yaWcvc3JjL21hbi5jCTIwMDYtMDUtMDEgMTc6MzQ6MjIuMDAwMDAwMDAwIC0wMzAwCi0rKysgbWFuLTEuNmUvc3JjL21hbi5jCTIwMDctMDUtMTggMTA6MTE6MzMuMDAwMDAwMDAwIC0wMzAwCi1AQCAtMTIzNCw3ICsxMjM0LDYgQEAKLSAjZW5kaWYKLSAKLSAKLS0jaWYgMAotICAgICAgewotIAkvKiBUaGVyZSBhcmUgbm8ga25vd24gY2FzZXMgb2YgYnVmZmVyIG92ZXJmbG93IGNhdXNlZCBieQotIAkgICBleGNlc3NpdmVseSBsb25nIGVudmlyb25tZW50IHZhcmlhYmxlcy4gSW4gY2FzZSB5b3UgZmluZCBvbmUsCi1AQCAtMTI1Nyw3ICsxMjU2LDYgQEAKLSAJICAgTUFOX0lDT05WX1BBVEgsIE1BTl9JQ09OVl9PUFQsIE1BTl9JQ09OVl9JTlBVVF9DSEFSU0VULAotIAkgICBNQU5fSUNPTlZfT1VUUFVUX0NIQVJTRVQsIE5MU1BBVEgsIFBBVEggKi8KLSAgICAgIH0KLS0jZW5kaWYKLSAKLSAKLSAjaWZuZGVmIF9fRnJlZUJTRF9fIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4vbWFuL21hbi0xLjZlLXVzZV9pMThuX3ZhcnNfaW5fYV9zdGRfd2F5LnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4vbWFuL21hbi0xLjZlLXVzZV9pMThuX3ZhcnNfaW5fYV9zdGRfd2F5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NjhmNzQyLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWFuL21hbi9tYW4tMS42ZS11c2VfaTE4bl92YXJzX2luX2Ffc3RkX3dheS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE2MCArMCwwIEBACi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotU2lnbmVkLW9mZi1ieTogU2NvdHQgR2FybWFuIDxzY290dC5hLmdhcm1hbkBpbnRlbC5jb20+Ci0KLWRpZmYgLU5hdXIgbWFuLTEuNmUub3JpZy9jYXRvcGVuL2NhdG9wZW4uYyBtYW4tMS42ZS9jYXRvcGVuL2NhdG9wZW4uYwotLS0tIG1hbi0xLjZlLm9yaWcvY2F0b3Blbi9jYXRvcGVuLmMJMjAwNS0wOC0yMCAyMDoyNjowNi4wMDAwMDAwMDAgLTAzMDAKLSsrKyBtYW4tMS42ZS9jYXRvcGVuL2NhdG9wZW4uYwkyMDA3LTA1LTE4IDExOjMxOjA1LjAwMDAwMDAwMCAtMDMwMAotQEAgLTksMjIgKzksNjMgQEAKLSBleHRlcm4gY2hhciAqaW5kZXggKGNvbnN0IGNoYXIgKiwgaW50KTsgICAgICAgICAvKiBub3QgYWx3YXlzIGluIDxzdHJpbmcuaD4gKi8KLSBleHRlcm4gY2hhciAqbXlfbWFsbG9jKGludCk7CS8qIGluIHV0aWwuYyAqLwotIAotKy8qIGlmIHRoZSBwcm9ncmFtIGhhcyBzZ2lkL3N1aWQgcHJpdmlsZWdlcyB0aGVuIGdldGVudiBkb2Vzbid0IHJldHVybgotKyAqIE5MU1BBVEg7IHNvIHdlIHNldCBoZXJlIGEgZ29vZCBkZWZhdWx0IHZhbHVlLgotKyAqLwotICNpZm5kZWYgREVGQVVMVF9OTFNQQVRICi0gIyBpZiBfX0dMSUJDX18gPj0gMgotLSMgIGRlZmluZSBERUZBVUxUX05MU1BBVEggIi91c3Ivc2hhcmUvbG9jYWxlLyVMLyVOIgotKyMgIGRlZmluZSBERUZBVUxUX05MU1BBVEggIi91c3Ivc2hhcmUvbG9jYWxlLyVMLyVOOi91c3Ivc2hhcmUvbG9jYWxlLyVsXyV0LyVOOi91c3Ivc2hhcmUvbG9jYWxlLyVsLyVOIgotICMgZWxzZQotICMgIGRlZmluZSBERUZBVUxUX05MU1BBVEggIi91c3IvbGliL2xvY2FsZS8lTi8lTCIKLSAjIGVuZGlmCi0gI2VuZGlmCi0gCi0tc3RhdGljIG5sX2NhdGQgbXlfY2F0b3BlbnBhdGgoY2hhciAqbmFtZSwgY2hhciAqcGF0aCk7Ci0rc3RhdGljIG5sX2NhdGQgbXlfY2F0b3BlbnBhdGgoY2hhciAqbmFtZSwgY2hhciAqcGF0aCwgY2hhciAqbGFuZyk7Ci0gCi0gc3RhdGljCQkJCS8qIHRoaXMgc291cmNlIGluY2x1ZGVkIGluIGdyaXBlcy5jICovCi0gbmxfY2F0ZAotIG15X2NhdG9wZW4oY2hhciAqbmFtZSwgaW50IG9mbGFnKSB7Ci0tICBubF9jYXRkIGZkOwotKyAgbmxfY2F0ZCBmZCA9IChubF9jYXRkKSAtMTsKLSsKLSsgIC8qIHVzaW5nIGZpcnN0IHRoZSBteV9jYXRvcGVucGF0aCwgd2hpY2ggbG9va3Mgd2l0aCBMQU5HVUFHRQotKyAgICogYW5kIG9ubHkgaWYgaXQgZmFpbHMgcmVzc29ydCB0byBjYXRvcGVuLCBpdCBnaXZlcyBiZXR0ZXIgaTE4bgotKyAgICovCi0rICB7Ci0rICAgIGNoYXIgKm5sc3BhdGgsICpsYW5nLCAqczsKLSAKLS0gIGZkID0gY2F0b3BlbihuYW1lLCBvZmxhZyk7Ci0rICAgIC8qCi0rICAgICAqICJJZiBOTFNQQVRIIGRvZXMgbm90IGV4aXN0IGluIHRoZSBlbnZpcm9ubWVudCwgb3IgaWYgYQotKyAgICAgKiBtZXNzYWdlIGNhdGFsb2cgY2Fubm90IGJlIG9wZW5lZCBpbiBhbnkgb2YgdGhlIHBhdGhzIHNwZWNpZmllZAotKyAgICAgKiBieSBOTFNQQVRILCB0aGVuIGFuIGltcGxlbWVudGF0aW9uIGRlZmluZWQgZGVmYXVsdCBwYXRoIGlzIHVzZWQiCi0rICAgICAqLwotKyAgICBubHNwYXRoID0gZ2V0ZW52KCJOTFNQQVRIIik7Ci0rICAgIGlmICghbmxzcGF0aCkKLSsgICAgICBubHNwYXRoID0gREVGQVVMVF9OTFNQQVRIOwotKyAKLSsgICAgbGFuZyA9IGdldGVudigiTEFOR1VBR0UiKTsKLSsgICAgaWYgKCFsYW5nKQotKyAgICAgIGxhbmcgPSBnZXRlbnYoIkxDX0FMTCIpOwotKyAgICBpZiAoIWxhbmcpCi0rICAgICAgbGFuZyA9IGdldGVudigiTENfTUVTU0FHRVMiKTsKLSsgICAgaWYgKCFsYW5nKQotKyAgICAgIGxhbmcgPSBnZXRlbnYoIkxBTkciKTsKLSsgICAgaWYgKCFsYW5nKQotKyAgICAgIGxhbmcgPSAiIjsKLSsgCi0rICAgIHdoaWxlKCpsYW5nICYmIChmZCA9PSAobmxfY2F0ZCkgLTEpKSB7Ci0rICAgICAgcyA9IGluZGV4KGxhbmcsICc6Jyk7Ci0rICAgICAgaWYgKHMpICpzID0gMDsKLSsgICAgICAgIGZkID0gbXlfY2F0b3BlbnBhdGgobmFtZSwgbmxzcGF0aCwgbGFuZyk7Ci0rICAgICAgaWYgKHMpIGxhbmc9cysxOwotKyAgICAgIGVsc2UgbGFuZyA9ICIiOwotKyAgICB9Ci0rICAgIGlmIChmZCA9PSAobmxfY2F0ZCkgLTEpCi0rICAgICAgZmQgPSBteV9jYXRvcGVucGF0aChuYW1lLCBubHNwYXRoLCAiZW4iKTsKLSsgIH0KLSsKLSsgIC8qIHN0aWxsIG5vdCBmb3VuZCwgdXNlIHRoZSBzeXN0ZW0gY2F0b3BlbiAqLwotKyAgaWYgKGZkID09IChubF9jYXRkKSAtMSkKLSsgICAgZmQgPSBjYXRvcGVuKG5hbWUsIG9mbGFnKTsKLSAKLSAgIGlmIChmZCA9PSAobmxfY2F0ZCkgLTEgJiYgb2ZsYWcpIHsKLSAgICAgb2ZsYWcgPSAwOwotQEAgLTMyLDggKzczLDYgQEAKLSAgIH0KLSAKLSAgIGlmIChmZCA9PSAobmxfY2F0ZCkgLTEpIHsKLS0gICAgY2hhciAqbmxzcGF0aDsKLS0KLSAgICAgLyogVGhlIGxpYmMgY2F0b3BlbiBmYWlscyAtIGxldCB1cyBzZWUgaWYgd2UgY2FuIGRvIGJldHRlciAqLwotICAgICAvKiBUaGUgcXVvdGVzIGJlbG93IGFyZSBmcm9tIFgvT3BlbiwgWFBHIDE5ODcsIFZvbC4gMy4gKi8KLSAKLUBAIC01OCwxNyArOTcsNiBAQAotICNlbmRpZgotICAgICB9Ci0gCi0tICAgIC8qCi0tICAgICAqICJJZiBOTFNQQVRIIGRvZXMgbm90IGV4aXN0IGluIHRoZSBlbnZpcm9ubWVudCwgb3IgaWYgYQotLSAgICAgKiBtZXNzYWdlIGNhdGFsb2cgY2Fubm90IGJlIG9wZW5lZCBpbiBhbnkgb2YgdGhlIHBhdGhzIHNwZWNpZmllZAotLSAgICAgKiBieSBOTFNQQVRILCB0aGVuIGFuIGltcGxlbWVudGF0aW9uIGRlZmluZWQgZGVmYXVsdCBwYXRoIGlzIHVzZWQiCi0tICAgICAqLwotLQotLSAgICBubHNwYXRoID0gZ2V0ZW52KCJOTFNQQVRIIik7Ci0tICAgIGlmIChubHNwYXRoKQotLSAgICAgIGZkID0gbXlfY2F0b3BlbnBhdGgobmFtZSwgbmxzcGF0aCk7Ci0tICAgIGlmIChmZCA9PSAobmxfY2F0ZCkgLTEpCi0tICAgICAgZmQgPSBteV9jYXRvcGVucGF0aChuYW1lLCBERUZBVUxUX05MU1BBVEgpOwotICAgfQotICAgcmV0dXJuIGZkOwotIH0KLUBAIC05MCwxNSArMTE4LDEzIEBACi0gICoKLSAgKi8KLSBzdGF0aWMgbmxfY2F0ZAotLW15X2NhdG9wZW5wYXRoKGNoYXIgKm5hbWUsIGNoYXIgKm5sc3BhdGgpIHsKLS0gIGludCBmZDsKLStteV9jYXRvcGVucGF0aChjaGFyICpuYW1lLCBjaGFyICpubHNwYXRoLCBjaGFyICpsYW5nKSB7Ci0gICBubF9jYXRkIGNmZCA9IChubF9jYXRkKSAtMTsKLS0gIGNoYXIgKnBhdGgwLCAqcGF0aCwgKnMsICpmaWxlLCAqbGFuZywgKmxhbmdfbCwgKmxhbmdfdCwgKmxhbmdfYzsKLSsgIGNoYXIgKnBhdGgwLCAqcGF0aCwgKnMsICpmaWxlLCAqbGFuZ19sLCAqbGFuZ190LCAqbGFuZ19jOwotICAgaW50IGxhbmdzeiwgbmFtZXN6LCBzeiwgbGFuZ19sX3N6LCBsYW5nX3Rfc3osIGxhbmdfY19zejsKLSAKLSAgIG5hbWVzeiA9IHN0cmxlbihuYW1lKTsKLSAKLS0gIGxhbmcgPSBnZXRlbnYoIkxBTkciKTsKLSAgIGlmICghbGFuZykKLSAgICAgbGFuZyA9ICIiOwotICAgbGFuZ3N6ID0gc3RybGVuKGxhbmcpOwotQEAgLTE5NCwxNCArMjIwLDkgQEAKLSAgICAgICBwYXRoID0gcysxOwotICAgICB9IGVsc2UKLSAgICAgICBwYXRoID0gMDsKLS0gICAgZmQgPSBvcGVuKGZpbGUsIE9fUkRPTkxZKTsKLS0gICAgaWYgKGZkICE9IC0xKSB7Ci0tICAgICAgLyogd2UgZm91bmQgdGhlIHJpZ2h0IGNhdGFsb2cgLSBidXQgd2UgZG9uJ3Qga25vdyB0aGUKLS0JIHR5cGUgb2YgbmxfY2F0ZCwgc28gY2xvc2UgaXQgYWdhaW4gYW5kIGFzayBsaWJjICovCi0tICAgICAgY2xvc2UoZmQpOwotLSAgICAgIGNmZCA9IGNhdG9wZW4oZmlsZSwgMCk7Ci0tICAgICAgYnJlYWs7Ci0tICAgIH0KLSsJY2ZkID0gY2F0b3BlbihmaWxlLCAwKTsKLSsJaWYgKGNmZCAhPSAobmxfY2F0ZCkgLTEpCi0rCQkJYnJlYWs7Ci0gICB9Ci0gCi0gICBmcmVlKHBhdGgwKTsKLWRpZmYgLU5hdXIgbWFuLTEuNmUub3JpZy9zcmMvbWFucGF0aC5jIG1hbi0xLjZlL3NyYy9tYW5wYXRoLmMKLS0tLSBtYW4tMS42ZS5vcmlnL3NyYy9tYW5wYXRoLmMJMjAwNi0wOC0wMyAxODoxODozMy4wMDAwMDAwMDAgLTAzMDAKLSsrKyBtYW4tMS42ZS9zcmMvbWFucGF0aC5jCTIwMDctMDUtMTggMTE6MDI6NDguMDAwMDAwMDAwIC0wMzAwCi1AQCAtMjgyLDEzICsyODIsMTQgQEAKLSAJCS8qIFdlIGNhbm5vdCB1c2UgImxhbmcgPSBzZXRsb2NhbGUoTENfTUVTU0FHRVMsIE5VTEwpIiBvciBzbzoKLSAJCSAgIHRoZSByZXR1cm4gdmFsdWUgb2Ygc2V0bG9jYWxlIGlzIGFuIG9wYXF1ZSBzdHJpbmcuICovCi0gCQkvKiBQT1NJWCBwcmVzY3JpYmVzIHRoZSBvcmRlcjogTENfQUxMLCBMQ19NRVNTQUdFUywgTEFORyAqLwotLQkJaWYoKGxhbmcgPSBnZXRlbnYoIkxDX0FMTCIpKSAhPSBOVUxMKQotKwkgICAgICAgIC8qIExBTkdVQUdFIGlzIEdOVS9MaW51eCBhbmQgb3ZlcnJ1bGVzIGFsbCAqLwotKwkJaWYoKGxhbmcgPSBnZXRlbnYoIkxBTkdVQUdFIikpICE9IE5VTEwpCi0gCQkJc3BsaXQyKGRpciwgbGFuZywgYWRkX3RvX21hbmRpcmxpc3RfeCwgcGVycnMpOwotLQkJaWYoKGxhbmcgPSBnZXRlbnYoIkxDX01FU1NBR0VTIikpICE9IE5VTEwpCi0rCQllbHNlIGlmKChsYW5nID0gZ2V0ZW52KCJMQ19BTEwiKSkgIT0gTlVMTCkKLSAJCQlzcGxpdDIoZGlyLCBsYW5nLCBhZGRfdG9fbWFuZGlybGlzdF94LCBwZXJycyk7Ci0tCQlpZigobGFuZyA9IGdldGVudigiTEFORyIpKSAhPSBOVUxMKQotKwkJZWxzZSBpZigobGFuZyA9IGdldGVudigiTENfTUVTU0FHRVMiKSkgIT0gTlVMTCkKLSAJCQlzcGxpdDIoZGlyLCBsYW5nLCBhZGRfdG9fbWFuZGlybGlzdF94LCBwZXJycyk7Ci0tCQlpZigobGFuZyA9IGdldGVudigiTEFOR1VBR0UiKSkgIT0gTlVMTCkKLSsJCWVsc2UgaWYoKGxhbmcgPSBnZXRlbnYoIkxBTkciKSkgIT0gTlVMTCkKLSAJCQlzcGxpdDIoZGlyLCBsYW5nLCBhZGRfdG9fbWFuZGlybGlzdF94LCBwZXJycyk7Ci0gCQlhZGRfdG9fbWFuZGlybGlzdF94KGRpciwgMCwgcGVycnMpOwotIAl9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi9tYW4vbWFuLTEuNmUtd2hhdGlzMi5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWFuL21hbi9tYW4tMS42ZS13aGF0aXMyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYzRlZDMxLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWFuL21hbi9tYW4tMS42ZS13aGF0aXMyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTkgKzAsMCBAQAotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLVNpZ25lZC1vZmYtYnk6IFNjb3R0IEdhcm1hbiA8c2NvdHQuYS5nYXJtYW5AaW50ZWwuY29tPgotCi1JbmRleDogbWFuLTEuNmYvc3JjL21ha2V3aGF0aXMuc2gKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBtYW4tMS42Zi5vcmlnL3NyYy9tYWtld2hhdGlzLnNoCTIwMTAtMTItMjkgMTM6NTE6NDUuMDAwMDAwMDAwIC0wODAwCi0rKysgbWFuLTEuNmYvc3JjL21ha2V3aGF0aXMuc2gJMjAxMC0xMi0yOSAxMzo1OTozNS4zOTk3OTk0MTIgLTA4MDAKLUBAIC0xNjQsMTAgKzE2NCwxNSBAQAotIGZpCi0gY2F0cGF0aD1gZWNobyAke2NhdHBhdGh9IHwgdHIgOiAnICdgCi0gCi0rI1dIQVRJU19ESVI9JERFU1RESVIvdmFyL2NhY2hlL21hbi9gZWNobyAkaGVyZXxzZWQgLWUgJ3MhLiovbWFuLyEhZydgCi0rV0hBVElTX0RJUj0kREVTVERJUi92YXIvY2FjaGUvbWFuLyRMQU5HCi0rW1sgLWQgJFdIQVRJU19ESVIgXV0gfHwgbWtkaXIgLXAgJFdIQVRJU19ESVIvCi0rCi0gIyBmaXJzdCB0cnVuY2F0ZSBhbGwgdGhlIHdoYXRpcyBmaWxlcyB0aGF0IHdpbGwgYmUgY3JlYXRlZCBuZXcsCi0gIyB0aGVuIG9ubHkgdXBkYXRlIC0gd2UgbWlnaHQgdmlzaXQgdGhlIHNhbWUgZGlyZWN0b3J5IHR3aWNlCi0gaWYgWyB4JHVwZGF0ZSA9IHggXTsgdGhlbgotLSAgIGNwIC9kZXYvbnVsbCAvdmFyL2NhY2hlL21hbi93aGF0aXMKLSsgICBta2RpciAtcCAkV0hBVElTX0RJUi8KLSsgICAvYmluL2VjaG8gLW4gPiAkV0hBVElTX0RJUi93aGF0aXMKLSBmaQotIAotIGZvciBwYWdlcyBpbiBtYW4gY2F0Ci1AQCAtMTgwLDEzICsxODUsNyBAQAotIAllY2hvICJhYm91dCB0byBlbnRlciAkbWFuZGlyIiA+IC9kZXYvc3RkZXJyCi0gICAgICBmaQotIAotLSAgICAgIyBrbHVkZ2UgZm9yIFNsYWNrd2FyZSdzIC91c3IvbWFuL3ByZWZvcm1hdAotLSAgICAgaWYgWyAkbWFuZGlyID0gL3Vzci9tYW4vcHJlZm9ybWF0IF0KLS0gICAgIHRoZW4KLS0JbWFuZGlyMT0vdXNyL21hbgotLSAgICAgZWxzZQotLQltYW5kaXIxPSRtYW5kaXIKLS0gICAgIGZpCi0rICAgICBtYW5kaXIxPSRXSEFUSVNfRElSCi0gCi0gICAgICAjIGlmICRtYW5kaXIgaXMgb24gYSByZWFkb25seSBwYXJ0aXRpb24sIGFuZCB0aGUgd2hhdGlzIGZpbGUKLSAgICAgICMgaXMgbm90IGEgc3ltbGluaywgdGhlbiBsZXQncyBza2lwIHRyeWluZyB0byB1cGRhdGUgaXQKLUBAIC0yMDcsMTEgKzIwNiw2IEBACi0gCWZpCi0gICAgICBmaQotIAotLSAgICAgaWYgWyAtcyAke21hbmRpcn0vd2hhdGlzIC1hICRwYWdlcyA9IG1hbiAtYSB4JHVwZGF0ZSA9IHggXTsgdGhlbgotLQlpZiBbIHgkdmVyYm9zZSAhPSB4IF07IHRoZW4KLS0JICAgZWNobyBza2lwcGluZyAkbWFuZGlyIC0gd2UgZGlkIGl0IGFscmVhZHkgPiAvZGV2L3N0ZGVycgotLQlmaQotLSAgICAgZWxzZSAgICAgIAotICAgICAgICBoZXJlPWBwd2RgCi0gICAgICAgIGNkICRtYW5kaXIKLSAgICAgICAgZm9yIGkgaW4gJHNlY3Rpb25zCi1AQCAtNDQ3LDcgKzQ0Nyw2IEBACi0KLSAgICAgICAgY2htb2QgNjQ0ICR7bWFuZGlyMX0vd2hhdGlzCi0gICAgICAgIHJtICRUTVBGSUxFCi0tICAgICBmaQotICAgIGRvbmUKLSBkb25lCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi9tYW4vbWFuLTEuNmctY29tcGlsZS13YXJuaW5ncy5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWFuL21hbi9tYW4tMS42Zy1jb21waWxlLXdhcm5pbmdzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NjMxZDJkLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWFuL21hbi9tYW4tMS42Zy1jb21waWxlLXdhcm5pbmdzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTA1ICswLDAgQEAKLUZpeCBhIGJ1aWxkIGVycm9yIHdoZW4gYnVpbGRpbmcgbWFuLmNvbmZpZy41IChhIHJlbW5hbnQgb2YgYSBsb25nCi1hZ28gcHJldmlvdXMgcGF0Y2gpLiBPcHRpbWl6ZWQgdGhlIG1hbnBhZ2VzIE1ha2VmaWxlIGZvciBwYXJhbGxlbAotYnVpbGRzLiBBbHNvLCBmaXggY29tcGlsZSB3YXJuaW5ncyBpbiBhIGNvdXBsZSBvdGhlciBmaWxlcy4KLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLVNpZ25lZC1vZmYtYnk6IEJpbGwgUmFuZGxlIDx3aWxsaWFtLmMucmFuZGxlQGludGVsLmNvbT4KLQotLS0tIG1hbi0xLjZnL21hbi9NYWtlZmlsZS5pbi5vcmlnCTIwMTYtMDMtMjggMTc6MzE6MDguNzIzOTQ5MTgwIC0wNzAwCi0rKysgbWFuLTEuNmcvbWFuL01ha2VmaWxlLmluCTIwMTYtMDMtMjggMTc6NDY6MTIuODY2OTEwMzg2IC0wNzAwCi1AQCAtNSw2ICs1LDEzIEBACi0gQUxMID0gbWFuLjEgd2hhdGlzLjEgYXByb3Bvcy4xIG1hbi5jb25maWcuNQotIE1BWUJFOCA9IG1ha2V3aGF0aXMKLSAKLStTVUJESVJTIDo9ICQoc2hlbGwgZWNobyBAbGFuZ3VhZ2VzQCkKLSsKLSsuUEhPTlk6IHN1YmRpcnMgJChTVUJESVJTKQotKwotK21hbi5jb25maWcubWFuOiBtYW4uY29uZi5tYW4KLSsJQGNwICQ8ICRACi0rCi0gLlNVRkZJWEVTOiAubWFuIC4xIC41IC44Ci0gCi0gLm1hbi4xOgotQEAgLTE5LDExICsyNiwxMSBAQAotIElOU1RBTEwgPSBASU5TVEFMTEAgLWMgLW0gNjQ0Ci0gCi0gIyBXaGVyZSB0byBwdXQgdGhlIG1hbnVhbCBwYWdlcy4KLS1tYW5kaXIgPSAkKERFU1RESVIpJChQUkVGSVgpQG1hbmRpckAkKFNMQU5HKQotK21hbmRpciA6PSAkKERFU1RESVIpJChQUkVGSVgpQG1hbmRpckAkKFNMQU5HKQotIAotIGFsbDoJJChBTEwpCi0gCWZvciBpIGluICQoTUFZQkU4KTsgXAotLQkJZG8gaWYgdGVzdCAtZiAkJGkubWFuOyB0aGVuIG1ha2UgLWYgLi4vTWFrZWZpbGUgJCRpLjg7IGZpOyBkb25lCi0rCQlkbyBpZiB0ZXN0IC1mICQkaS5tYW47IHRoZW4gJChNQUtFKSAtZiAuLi9NYWtlZmlsZSAkJGkuODsgZmk7IGRvbmUKLSAKLSBpbnN0YWxsOiAkKEFMTCkKLSAJbWtkaXIgLXAgJChtYW5kaXIpL21hbjEgJChtYW5kaXIpL21hbjUgJChtYW5kaXIpL21hbjgKLUBAIC0zOCwyNCArNDUsMjcgQEAKLSAJcm0gLWYgY29yZSAqLmluICouQG1hbjFleHRAICouQG1hbjVleHRAICouQG1hbjhleHRAICp+Ci0gCi0gc3BvdGxlc3M6Ci0rCXJtIC1mIG1hbi5jb25maWcubWFuCi0gCi0gc3ViZGlyczoKLS0JQGZvciBpIGluIEBsYW5ndWFnZXNAOyBkbyBpZiB0ZXN0IC1kICQkaTsgdGhlbiBlY2hvOyBcCi0tCQllY2hvICI9PT09IE1ha2luZyB0aGUgYGNhdCAkJGkudHh0YCBtYW4gcGFnZXMuID09PT0iOyBcCi0tCQljZCAkJGk7IG1ha2UgLWYgLi4vTWFrZWZpbGU7IGNkIC4uOyBcCi0tCQllbHNlIGVjaG8gIj09PT0gTm8gJCRpIG1hbiBwYWdlcyBmb3VuZC4gPT09PSI7IGZpOyBkb25lCi0rc3ViZGlyczogJChTVUJESVJTKQotKyQoU1VCRElSUyk6Ci0rCWlmIHRlc3QgLWQgJEA7IHRoZW4gZWNobzsgXAotKwkJZWNobyAiPT09PSBNYWtpbmcgdGhlIGBjYXQgJEAudHh0YCBtYW4gcGFnZXMuID09PT0iOyBcCi0rCQkkKE1BS0UpIC1DICRAIC1mIC4uL01ha2VmaWxlIGFsbDsgXAotKwkJZWxzZSBlY2hvICI9PT09IE5vICRAIG1hbiBwYWdlcyBmb3VuZC4gPT09PSI7IGZpCi0gCi0gaW5zdGFsbHN1YmRpcnM6Ci0gCUBmb3IgaSBpbiBAbGFuZ3VhZ2VzQDsgZG8gaWYgdGVzdCAtZCAkJGk7IHRoZW4gZWNobzsgXAotIAkJZWNobyAiPT09PSBJbnN0YWxsaW5nIHRoZSBgY2F0ICQkaS50eHRgIG1hbiBwYWdlcy4gPT09PSI7IFwKLSAJCWNkICQkaTsgU0xBTkc9LyQkaTsgaWYgdGVzdCAkJFNMQU5HID0gL2VuOyB0aGVuIFNMQU5HPSA7IGZpOyBcCi0tCQlleHBvcnQgU0xBTkc7IG1ha2UgLWYgLi4vTWFrZWZpbGUgaW5zdGFsbDsgY2QgLi47IFwKLSsJCWV4cG9ydCBTTEFORzsgJChNQUtFKSAtZiAuLi9NYWtlZmlsZSBpbnN0YWxsOyBjZCAuLjsgXAotIAkJZWxzZSBlY2hvICI9PT09IE5vICQkaSBtYW4gcGFnZXMgZm91bmQuID09PT0iOyBmaTsgZG9uZQotIAotIGNsZWFuc3ViZGlyczoKLS0JQGZvciBpIGluID8/OyBkbyBjZCAkJGk7IG1ha2UgLWYgLi4vTWFrZWZpbGUgY2xlYW47IGNkIC4uOyBkb25lCi0rCUBmb3IgaSBpbiA/PzsgZG8gJChNQUtFKSAtQyAkJGkgLWYgLi4vTWFrZWZpbGUgY2xlYW47IGRvbmUKLSAJcm0gLWYgY29yZSAqfgotIAotIHNwb3RsZXNzc3ViZGlyczoKLS0JZm9yIGkgaW4gPz87IGRvIGNkICQkaTsgbWFrZSAtZiAuLi9NYWtlZmlsZSBzcG90bGVzczsgY2QgLi47IGRvbmUKLSsJZm9yIGkgaW4gPz87IGRvICQoTUFLRSkgLUMgJCRpIC1mIC4uL01ha2VmaWxlIHNwb3RsZXNzOyBkb25lCi0gCXJtIC1mIE1ha2VmaWxlCi0KLS0tLSBtYW4tMS42Zy9zcmMvZ3JpcGVzLmMub3JpZwkyMDA2LTExLTIxIDExOjUzOjQ0LjAwMDAwMDAwMCAtMDgwMAotKysrIG1hbi0xLjZnL3NyYy9ncmlwZXMuYwkyMDE2LTAzLTMwIDE2OjMyOjMxLjYwMTEwMzQ4NyAtMDcwMAotQEAgLTcsOCArNyw2IEBACi0gCi0gZXh0ZXJuIGNoYXIgKm1zZ1tdOwotIAotLXN0YXRpYyBjaGFyICptYW50ZXh0cyA9ICJtYW4iOwkJLyogZS5nLiAvdXNyL2xpYi9sb2NhbGUvJUwvbWFuLmNhdCAqLwotLQotICNpZmRlZiBOT05MUwotIAotIHN0YXRpYyBjaGFyICoKLUBAIC0zMCw2ICsyOCw4IEBACi0gI2luY2x1ZGUgPG5sX3R5cGVzLmg+Ci0gI2luY2x1ZGUgIi4uL2NhdG9wZW4vY2F0b3Blbi5jIgotIAotK3N0YXRpYyBjaGFyICptYW50ZXh0cyA9ICJtYW4iOwkJLyogZS5nLiAvdXNyL2xpYi9sb2NhbGUvJUwvbWFuLmNhdCAqLwotKwotIG5sX2NhdGQgY2F0ZmQgPSAobmxfY2F0ZCkgLTE7Ci0gaW50IGNhdF9pc19vcGVuID0gMDsKLSAKLS0tLSBtYW4tMS42Zy9zcmMvbWFuZmlsZS5jLm9yaWcJMjAwNS0wOC0yMCAxNjoyNjowNi4wMDAwMDAwMDAgLTA3MDAKLSsrKyBtYW4tMS42Zy9zcmMvbWFuZmlsZS5jCTIwMTYtMDMtMjkgMDk6MTA6MjEuNTI3ODQxMjg1IC0wNzAwCi1AQCAtMjk5LDcgKzI5OSw3IEBACi0gCWNvbnN0IGNoYXIgKigoKnRvY2F0KShjb25zdCBjaGFyICptYW5fZmlsZW5hbWUsIGNvbnN0IGNoYXIgKmV4dCwKLSAJCQkgICAgICBpbnQgZmxhZ3MpKSkgewotICAgICAgY2hhciAqKnNsOwotLSAgICAgc3RydWN0IG1hbnBhZ2UgKnJlczsKLSsgICAgIHN0cnVjdCBtYW5wYWdlICpyZXMgPSAwOwotIAotICAgICAgc3RhbmRhcmRzID0gKGZsYWdzICYgKEZIUyB8IEZTU1RORCB8IERPX0hQIHwgRE9fSVJJWCkpOwotICAgICAgdG9fY2F0X2ZpbGVuYW1lID0gdG9jYXQ7CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi9tYW4vbWFuLTEuNmctY29uZmlndXJlLnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4vbWFuL21hbi0xLjZnLWNvbmZpZ3VyZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTA2Y2M5OC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi9tYW4vbWFuLTEuNmctY29uZmlndXJlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNjggKzAsMCBAQAotVXNlIEJVSUxEX0NDIGFuZCB0YXJnZXQgaW5jbHVkZSBmaWxlcyBmb3IgY29uZmlndXJhdGlvbiB0ZXN0cy4KLUlmIGNyb3NzLWNvbXBpbGluZywgZm9yY2UgcGF0aG5hbWVzIGZvciBoZWxwZXIgcHJvZ3JhbXMsIHNpbmNlCi1hdXRvZGlzY292ZXJ5IGJ5IHRoZSBjb25maWd1cmUgc2NyaXB0IHdpbGwgbm90IHdvcmsuCi0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1TaWduZWQtb2ZmLWJ5OiBCaWxsIFJhbmRsZSA8d2lsbGlhbS5jLnJhbmRsZSBhdCBpbnRlbC5jb20+Ci0KLS0tLSBtYW4tMS42Zy9jb25maWd1cmUub3JpZwkyMDE2LTAzLTI4IDE3OjQ2OjEyLjczNDkxMDk3NiAtMDcwMAotKysrIG1hbi0xLjZnL2NvbmZpZ3VyZQkyMDE2LTAzLTMwIDIxOjQ3OjQ1LjExMDU3MjkwOCAtMDcwMAotQEAgLTIxNiw3ICsyMTYsOCBAQAotIElOQ0xVREVESVI9JHtJTkNMVURFRElSLS91c3IvaW5jbHVkZX0KLSAKLSBybSAtZiBjb25mdGVzdCBjb25mdGVzdC5jCi0tY29tcGlsZT0iJENDICRERUZTIGNvbmZ0ZXN0LmMgLW8gY29uZnRlc3QgJExJQlMgPi9kZXYvbnVsbCAyPiYxIgotKyMgc2luY2Ugd2UgYXJlIGludGVyZXN0ZWQgaW4gdGFyZ2V0IGZlYXR1cmUgc3VwcG9ydCwgdXNlIHRoYXQgc3lzcm9vdAotK2NvbXBpbGU9IiRCVUlMRF9DQyAtaXN5c3RlbS8ke1BLR19DT05GSUdfU1lTUk9PVF9ESVJ9L3Vzci9pbmNsdWRlICRERUZTIGNvbmZ0ZXN0LmMgLW8gY29uZnRlc3QgJExJQlMgPi9kZXYvbnVsbCAyPiYxIgotIAotICMgQ2hlY2sgZm9yIHZhcmlvdXMgaGVhZGVyIGZpbGVzLgotIAotQEAgLTQ1NSwxOSArNDU2LDIzIEBACi0gICAgICAgZmkKLSAgICAgZG9uZQotICAgZG9uZQotLSAgRmdyb2ZmPS91c3IvYmluL2dyb2ZmCi0tICBGbnJvZmY9L3Vzci9iaW4vbnJvZmYKLS0gIEZqbnJvZmY9L3Vzci9iaW4vbnJvZmYKLS0gIEZnZXFuPS91c3IvYmluL2dlcW4KLS0gIEZndGJsPS91c3IvYmluL2d0YmwKLS0gIEZjb2w9L3Vzci9iaW4vY29sCi0tICBGZ3JlZmVyPS91c3IvYmluL2dyZWZlcgotLSAgRmdwaWM9L3Vzci9iaW4vZ3BpYwotLSAgRm1vcmU9L2Jpbi9tb3JlCi0tICBGbGVzcz0vdXNyL2Jpbi9sZXNzCi0tICBGY21wPS91c3IvYmluL2NtcAotLSAgRmNhdD0vYmluL2NhdAotLSAgRmdhd2s9L2Jpbi9nYXdrCi0rICBpZiBbICRCVUlMRF9DQyAhPSAkQ0MgXTsgdGhlbgotKyAgICAjIGNyb3NzIGNvbXBpbGluZyA9PiB0YXJnZXQgZnMgbm90IGF2YWlsYWJsZSwgc28gZm9yY2UgZGVmYXVsdHMKLSsgICAgRmdyb2ZmPS91c3IvYmluL2dyb2ZmCi0rICAgIEZucm9mZj0vdXNyL2Jpbi9ucm9mZgotKyAgICBGam5yb2ZmPS91c3IvYmluL25yb2ZmCi0rICAgIEZnZXFuPS91c3IvYmluL2VxbgotKyAgICBGZ25lcW49L3Vzci9iaW4vbmVxbgotKyAgICBGZ3RibD0vdXNyL2Jpbi90YmwKLSsgICAgRmNvbD0vdXNyL2Jpbi9jb2wKLSsgICAgRmdyZWZlcj0vdXNyL2Jpbi9yZWZlcgotKyAgICBGZ3BpYz0vdXNyL2Jpbi9waWMKLSsgICAgRm1vcmU9L2Jpbi9tb3JlCi0rICAgIEZsZXNzPS91c3IvYmluL2xlc3MKLSsgICAgRmNtcD0vdXNyL2Jpbi9jbXAKLSsgICAgRmNhdD0vYmluL2NhdAotKyAgICBGZ2F3az0vdXNyL2Jpbi9nYXdrCi0rICBmaQotIAotIAotICAgZm9yIGkgaW4gZXFuIHRibCByZWZlciBwaWMKLUBAIC01MDcsOCArNTEyLDggQEAKLSAgICAgam5yb2ZmPSIkRmpucm9mZiAtVHV0ZjggLW1hbmRvY2oiCi0gICBmaQotICAgZXFuPSIkRmdlcW4gLVRwcyIKLS0gIG5lcW49IiRGZ2VxbiAtVHV0ZjgiCi0tICBqbmVxbj0iJEZnZXFuIC1UdXRmOCIKLSsgIG5lcW49IiRGZ25lcW4gLVR1dGY4IgotKyAgam5lcW49IiRGZ25lcW4gLVR1dGY4IgotICAgdGJsPSIkRmd0YmwiCi0gICBjb2w9IiRGY29sIgotICAgdmdyaW5kPSIkRnZncmluZCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWFuL21hbi9tYW4tMS42Zy1wYXJhbGxlbC5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWFuL21hbi9tYW4tMS42Zy1wYXJhbGxlbC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzJhODhiOC4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi9tYW4vbWFuLTEuNmctcGFyYWxsZWwucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi1UaGUgTWFrZWZpbGUgZm9yIG1hbiBoYXMgYSBydWxlIHRvIGNyZWF0ZSB0d28gZ2VuZXJhdGVkIHRhcmdldHMgd2l0aAotYSBwcm9ncmFtIHJ1biBmcm9tIHRoZSBzaGVsbC4gQmVjYXVzZSB0aGUgcnVsZSB3YXMgcnVuIHR3aWNlLCB3aXRoCi1wYXJhbGxlbCBtYWtlLCB0aGUgZ2VuZXJhdGVkIGZpbGVzIHdlcmUgYmVpbmcgb3ZlcndyaXR0ZW4gYXQgdGhlIHNhbWUKLXRpbWUgdGhleSB3ZXJlIGJlaW5nIGNvbXBpbGVkLiBUaGlzIHBhdGNoIGZvcmNlcyB0aGUgcnVsZSB0byBiZSBydW4KLW9ubHkgb25jZS4KLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLVNpZ25lZC1vZmYtYnk6IEJpbGwgUmFuZGxlIDx3aWxsaWFtLmMucmFuZGxlIGF0IGludGVsLmNvbT4KLQotLS0tIG1hbi0xLjZnL3NyYy9NYWtlZmlsZS5pbi5vcmlnCTIwMTAtMTItMzEgMTI6Mjg6NDYuMDAwMDAwMDAwIC0wODAwCi0rKysgbWFuLTEuNmcvc3JjL01ha2VmaWxlLmluCTIwMTYtMDMtMjggMDk6MDk6MTYuODQ1NDU4Nzk4IC0wNzAwCi1AQCAtNDMsOCArNDMsMTAgQEAKLSBtYWtlbXNnOgotIAkkKEJVSUxEX0NDKSAtbyBtYWtlbXNnIG1ha2Vtc2cuYwotIAotLW1zZy5jIGdyaXBlZGVmcy5oOiAuLi9tc2dzL21lc3MuZW4gbWFrZW1zZwotK21zZy5jIGdyaXBlZGVmcy5oOiBnZW5maWxlcy1zdGFtcAotK2dlbmZpbGVzLXN0YW1wOiAuLi9tc2dzL21lc3MuZW4gbWFrZW1zZwotIAkuL21ha2Vtc2cgLi4vbXNncy9tZXNzLmVuIGdyaXBlZGVmcy5oIG1zZy5jCi0rCXRvdWNoIGdlbmZpbGVzLXN0YW1wCi0gCi0gIyBnbG9iLmMgZG9lcyBub3QgaGF2ZSBwcm90b3R5cGVzCi0gZ2xvYi5vOiBnbG9iLmMgbmRpci5oCi1AQCAtMTE3LDQgKzExOSw0IEBACi0gCi0gc3BvdGxlc3M6IGNsZWFuCi0gCXJtIC1mIE1ha2VmaWxlIGNvbmZpZy5zdGF0dXMgcGF0aHMuaCB2ZXJzaW9uLmggbWFuLmNvbmYKLS0Jcm0gLWYgZ3JpcGVkZWZzLmggbXNnLmMgbWVzcy4qLmNhdAotKwlybSAtZiBncmlwZWRlZnMuaCBtc2cuYyBtZXNzLiouY2F0IGdlbmZpbGVzLXN0YW1wCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi9tYW4vbWFuLTEuNmctd2hhdGlzMy5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWFuL21hbi9tYW4tMS42Zy13aGF0aXMzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MzM0NDU2Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWFuL21hbi9tYW4tMS42Zy13aGF0aXMzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotRG8gbm90IHVzZSBhYnNvbHV0ZSBwYXRoIGZvciBhd2sgd2hpbGUgZ2V0dGluZyB0aGUgcGF0aCBvZiBhd2sKLXdoZW4gcnVubmluZyBtYWtld2hhdGlzLgotVGhpcyBjYW4gYXZvaWQgZXJyb3JzIGlmIHBhdGggb2YgYXdrIGNoYW5nZXMuCi0KLVVwc3RyZWFtLVN0YXR1czogU3VibWl0dGVkIFttYW4tMS42Z10KLQotU2lnbmVkLW9mZi1ieTogSmlhbiBMaXUgPGppYW4ubGl1QHdpbmRyaXZlci5jb20+Ci0KLWRpZmYgLU51ciBtYW4tMS42Zy5vcmlnL3NyYy9tYWtld2hhdGlzLnNoIG1hbi0xLjZnL3NyYy9tYWtld2hhdGlzLnNoCi0tLS0gbWFuLTEuNmcub3JpZy9zcmMvbWFrZXdoYXRpcy5zaAkyMDE1LTAyLTI1IDE2OjEzOjEyLjY1NzYxMTQxOSArMDgwMAotKysrIG1hbi0xLjZnL3NyYy9tYWtld2hhdGlzLnNoCTIwMTUtMDItMjUgMTY6MTQ6NDkuMzM0Njk0ODE1ICswODAwCi1AQCAtNjcsNyArNjcsNyBAQAotICMgYnV0IHRoYXQgbGVhZHMgdG8gcHJvYmxlbXMgYW5kIGJ1Z3MuCi0KLSAjIEFXSz0vdXNyL2Jpbi9nYXdrCi0tQVdLPUBhd2tACi0rQVdLPWB3aGljaCBhd2tgCi0KLSAjIEZpbmQgYSBwbGFjZSBmb3Igb3VyIHRlbXBvcmFyeSBmaWxlcy4gSWYgc2VjdXJpdHkgaXMgbm90IGEgY29uY2VybiwgdXNlCi0gIwlUTVBGSUxFPS90bXAvd2hhdGlzJCQ7IFRNUEZJTEVESVI9bm9uZQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4vbWFuL21hbi4xLmd6IGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4vbWFuL21hbi4xLmd6CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMzY4MDQ1Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWFuL21hbi9tYW4uMS5negorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWFuL21hbi9tYW4uNy5neiBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWFuL21hbi9tYW4uNy5negpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTg1YWY4Mi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi9tYW4vbWFuLjcuZ3oKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi9tYW4vbWFuLmNvbmYgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21hbi9tYW4vbWFuLmNvbmYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZjMTBiZTIuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4vbWFuL21hbi5jb25mCisrKyAvZGV2L251bGwKQEAgLTEsMTQxICswLDAgQEAKLSMKLSMgR2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgZnJvbSBtYW4uY29uZi5pbiBieSB0aGUKLSMgY29uZmlndXJlIHNjcmlwdC4KLSMKLSMgbWFuLmNvbmYgZnJvbSBtYW4tMS41cAotIwotIyBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGlzIGZpbGUsIHNlZSB0aGUgbWFuIHBhZ2VzIG1hbigxKQotIyBhbmQgbWFuLmNvbmYoNSkuCi0jCi0jIFRoaXMgZmlsZSBpcyByZWFkIGJ5IG1hbiB0byBjb25maWd1cmUgdGhlIGRlZmF1bHQgbWFucGF0aCAoYWxzbyB1c2VkCi0jIHdoZW4gTUFOUEFUSCBjb250YWlucyBhbiBlbXB0eSBzdWJzdHJpbmcpLCB0byBmaW5kIG91dCB3aGVyZSB0aGUgY2F0Ci0jIHBhZ2VzIGNvcnJlc3BvbmRpbmcgdG8gZ2l2ZW4gbWFuIHBhZ2VzIHNob3VsZCBiZSBzdG9yZWQsCi0jIGFuZCB0byBtYXAgZWFjaCBQQVRIIGVsZW1lbnQgdG8gYSBtYW5wYXRoIGVsZW1lbnQuCi0jIEl0IG1heSBhbHNvIHJlY29yZCB0aGUgcGF0aG5hbWUgb2YgdGhlIG1hbiBiaW5hcnkuIFtUaGlzIGlzIHVudXNlZC5dCi0jIFRoZSBmb3JtYXQgaXM6Ci0jCi0jIE1BTkJJTgkJcGF0aG5hbWUKLSMgTUFOUEFUSAkJbWFucGF0aF9lbGVtZW50CVtjb3JyZXNwb25kaW5nX2NhdGRpcl0KLSMgTUFOUEFUSF9NQVAJCXBhdGhfZWxlbWVudAltYW5wYXRoX2VsZW1lbnQKLSMKLSMgSWYgbm8gY2F0ZGlyIGlzIGdpdmVuLCBpdCBpcyBhc3N1bWVkIHRvIGJlIGVxdWFsIHRvIHRoZSBtYW5kaXIKLSMgKHNvIHRoYXQgdGhpcyBkaXIgaGFzIGJvdGggbWFuMSBldGMuIGFuZCBjYXQxIGV0Yy4gc3ViZGlycykuCi0jIFRoaXMgaXMgdGhlIHRyYWRpdGlvbmFsIFVuaXggc2V0dXAuCi0jIENlcnRhaW4gdmVyc2lvbnMgb2YgdGhlIEZTU1RORCByZWNvbW1lbmQgcHV0dGluZyBmb3JtYXR0ZWQgdmVyc2lvbnMKLSMgb2YgL3Vzci8uLi4vbWFuL21hbngvcGFnZS54IGludG8gL3Zhci9jYXRtYW4vLi4uL2NhdHgvcGFnZS54LgotIyBUaGUga2V5d29yZCBGU1NUTkQgd2lsbCBjYXVzZSB0aGlzIGJlaGF2aW91ci4KLSMgQ2VydGFpbiB2ZXJzaW9ucyBvZiB0aGUgRkhTIHJlY29tbWVuZCBwdXR0aW5nIGZvcm1hdHRlZCB2ZXJzaW9ucyBvZgotIyAvdXNyLy4uLi9zaGFyZS9tYW4vW2xvY2FsZS9dbWFueC9wYWdlLnggaW50bwotIyAvdmFyL2NhY2hlL21hbi8uLi4vW2xvY2FsZS9dY2F0eC9wYWdlLnguCi0jIFRoZSBrZXl3b3JkIEZIUyB3aWxsIGNhdXNlIHRoaXMgYmVoYXZpb3VyIChhbmQgb3ZlcnJpZGVzIEZTU1RORCkuCi0jIEV4cGxpY2l0bHkgZ2l2ZW4gY2F0ZGlycyBvdmVycmlkZS4KLSMKLSMgRlNTVE5ECi1GSFMKLSMKLSMgVGhpcyBmaWxlIGlzIGFsc28gcmVhZCBieSBtYW4gaW4gb3JkZXIgdG8gZmluZCBob3cgdG8gY2FsbCBucm9mZiwgbGVzcywgZXRjLiwKLSMgYW5kIHRvIGRldGVybWluZSB0aGUgY29ycmVzcG9uZGVuY2UgYmV0d2VlbiBleHRlbnNpb25zIGFuZCBkZWNvbXByZXNzb3JzLgotIwotIyBNQU5CSU4JCS91c3IvbG9jYWwvYmluL21hbgotIwotIyBFdmVyeSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBNQU5QQVRIIGluY2x1ZGVzIHRoZXNlIGZpZWxkcwotIwotTUFOUEFUSAkvdXNyL21hbgotTUFOUEFUSAkvdXNyL3NoYXJlL21hbgotTUFOUEFUSAkvdXNyL2xvY2FsL21hbgotTUFOUEFUSAkvdXNyL2xvY2FsL3NoYXJlL21hbgotTUFOUEFUSAkvdXNyL1gxMVI2L21hbgotIwotIyBVbmNvbW1lbnQgaWYgeW91IHdhbnQgdG8gaW5jbHVkZSBvbmUgb2YgdGhlc2UgYnkgZGVmYXVsdAotIwotIyBNQU5QQVRICS9vcHQvKi9tYW4KLSMgTUFOUEFUSAkvdXNyL2xpYi8qL21hbgotIyBNQU5QQVRICS91c3Ivc2hhcmUvKi9tYW4KLSMgTUFOUEFUSAkvdXNyL2tlcmJlcm9zL21hbgotIwotIyBTZXQgdXAgUEFUSCB0byBNQU5QQVRIIG1hcHBpbmcKLSMKLSMgSWYgcGVvcGxlIGFzayBmb3IgIm1hbiBmb28iIGFuZCBoYXZlICIvZGlyL2Jpbi9mb28iIGluIHRoZWlyIFBBVEgKLSMgYW5kIHRoZSBkb2NzIGFyZSBmb3VuZCBpbiAiL2Rpci9tYW4iLCB0aGVuIG5vIG1hcHBpbmcgaXMgcmVxdWlyZWQuCi0jCi0jIFRoZSBiZWxvdyBtYXBwaW5ncyBhcmUgc3VwZXJmbHVvdXMgd2hlbiB0aGUgcmlnaHQgaGFuZCBzaWRlIGlzCi0jIGluIHRoZSBtYW5kYXRvcnkgbWFucGF0aCBhbHJlYWR5LCBidXQgd2lsbCBrZWVwIG1hbiBmcm9tIHN0YXR0aW5nCi0jIGxvdHMgb2Ygb3RoZXIgbmVhcmJ5IGZpbGVzIGFuZCBkaXJlY3Rvcmllcy4KLSMKLU1BTlBBVEhfTUFQCS9iaW4JCQkvdXNyL3NoYXJlL21hbgotTUFOUEFUSF9NQVAJL3NiaW4JCQkvdXNyL3NoYXJlL21hbgotTUFOUEFUSF9NQVAJL3Vzci9iaW4JCS91c3Ivc2hhcmUvbWFuCi1NQU5QQVRIX01BUAkvdXNyL3NiaW4JCS91c3Ivc2hhcmUvbWFuCi1NQU5QQVRIX01BUAkvdXNyL2xvY2FsL2JpbgkJL3Vzci9sb2NhbC9zaGFyZS9tYW4KLU1BTlBBVEhfTUFQCS91c3IvbG9jYWwvc2JpbgkJL3Vzci9sb2NhbC9zaGFyZS9tYW4KLU1BTlBBVEhfTUFQCS91c3IvWDExUjYvYmluCQkvdXNyL1gxMVI2L21hbgotTUFOUEFUSF9NQVAJL3Vzci9iaW4vWDExCQkvdXNyL1gxMVI2L21hbgotTUFOUEFUSF9NQVAJL3Vzci9iaW4vbWgJCS91c3Ivc2hhcmUvbWFuCi0jCi0jIE5PQVVUT1BBVEgga2VlcHMgbWFuIGZyb20gYXV0b21hdGljYWxseSBhZGRpbmcgZGlyZWN0b3JpZXMgdGhhdCBsb29rIGxpa2UKLSMgbWFudWFsIHBhZ2UgZGlyZWN0b3JpZXMgdG8gdGhlIHBhdGguCi0jCi0jTk9BVVRPUEFUSAotIwotIyBOT0NBQ0hFIGtlZXBzIG1hbiBmcm9tIGNyZWF0aW5nIGNhY2hlIHBhZ2VzICgiY2F0IHBhZ2VzIikKLSMgKGdlbmVyYWxseSBvbmUgZW5hYmxlcy9kaXNhYmxlIGNhdCBwYWdlIGNyZWF0aW9uIGJ5IGNyZWF0aW5nL2RlbGV0aW5nCi0jIHRoZSBkaXJlY3RvcnkgdGhleSB3b3VsZCBsaXZlIGluIC0gbWFuIG5ldmVyIGRvZXMgbWtkaXIpCi0jIAotI05PQ0FDSEUKLSMKLSMgVXNlZnVsIHBhdGhzIC0gbm90ZSB0aGF0IENPTCBzaG91bGQgbm90IGJlIGRlZmluZWQgd2hlbgotIyBOUk9GRiBpcyBkZWZpbmVkIGFzICJncm9mZiAtVGFzY2lpIiBvciAiZ3JvZmYgLVRsYXRpbjEiOwotIyBub3Qgb25seSBpcyBpdCBzdXBlcmZsdW91cywgYnV0IGl0IGFjdHVhbGx5IGRhbWFnZXMgdGhlIG91dHB1dC4KLSMgRm9yIHVzZSB3aXRoIHV0Zi04LCBOUk9GRiBzaG91bGQgYmUgIm5yb2ZmIC1tYW5kb2MiIHdpdGhvdXQgLVQgb3B0aW9uLgotIyAoTWF5YmUgLSBidXQgdG9kYXkgSSBuZWVkIC1UbGF0aW4xIHRvIHByZXZlbnQgZG91YmxlIGNvbnZlcnNpb24gdG8gdXRmOC4pCi0jCi0jIElmIHlvdSBoYXZlIGEgbmV3IHRyb2ZmICh2ZXJzaW9uIDEuMTguMT8pIGFuZCBpdHMgY29sb3JlZCBvdXRwdXQKLSMgY2F1c2VzIHByb2JsZW1zLCBhZGQgdGhlIC1jIG9wdGlvbiB0byBUUk9GRiwgTlJPRkYsIEpOUk9GRi4KLSMKLVRST0ZGCQkvdXNyL2Jpbi9ncm9mZiAtVHBzIC1tYW5kb2MKLU5ST0ZGCQkvdXNyL2Jpbi9ucm9mZiAtVGxhdGluMSAtbWFuZG9jCi1KTlJPRkYJCS91c3IvYmluL2dyb2ZmIC1UbmlwcG9uIC1tYW5kb2NqCi1FUU4JCS91c3IvYmluL2VxbiAtVHBzCi1ORVFOCQkvdXNyL2Jpbi9lcW4gLVRsYXRpbjEKLUpORVFOCQkvdXNyL2Jpbi9lcW4gLVRuaXBwb24KLVRCTAkJL3Vzci9iaW4vdGJsCi0jIENPTAkJL3Vzci9iaW4vY29sCi1SRUZFUgkJL3Vzci9iaW4vcmVmZXIKLVBJQwkJL3Vzci9iaW4vcGljCi1WR1JJTkQJCQotR1JBUAkJCi1QQUdFUgkJL3Vzci9iaW4vbGVzcyAtaXNSCi1DQVQJCS9iaW4vY2F0Ci0jCi0jIFRoZSBjb21tYW5kICJtYW4gLWEgeHl6enkiIHdpbGwgc2hvdyBhbGwgbWFuIHBhZ2VzIGZvciB4eXp6eS4KLSMgV2hlbiBDTVAgaXMgZGVmaW5lZCBtYW4gd2lsbCB0cnkgdG8gYXZvaWQgc2hvd2luZyB0aGUgc2FtZQotIyB0ZXh0IHR3aWNlLiAoQnV0IGNvbXByZXNzZWQgcGFnZXMgY29tcGFyZSB1bmVxdWFsLikKLSMKLUNNUAkJL3Vzci9iaW4vY21wIC1zCi0jCi0jIENvbXByZXNzIGNhdCBwYWdlcwotIwotQ09NUFJFU1MJL2Jpbi9iemlwMgotQ09NUFJFU1NfRVhUCS5iejIKLSMKLSMgRGVmYXVsdCBtYW51YWwgc2VjdGlvbnMgKGFuZCBvcmRlcikgdG8gc2VhcmNoIGlmIC1TIGlzIG5vdCBzcGVjaWZpZWQKLSMgYW5kIHRoZSBNQU5TRUNUIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIG5vdCBzZXQuCi0jCi1NQU5TRUNUCQkxOjFwOjg6MjozOjNwOjQ6NTo2Ojc6OTowcDp0Y2w6bjpsOnA6bwotIwotIyBEZWZhdWx0IG9wdGlvbnMgdG8gdXNlIHdoZW4gbWFuIGlzIGludm9rZWQgd2l0aG91dCBvcHRpb25zCi0jIFRoaXMgaXMgbWFpbmx5IGZvciB0aGUgYmVuZWZpdCBvZiB0aG9zZSB0aGF0IHRoaW5rIC1hIHNob3VsZCBiZSB0aGUgZGVmYXVsdAotIyBOb3RlIHRoYXQgc29tZSBzeXN0ZW1zIGhhdmUgL3Vzci9tYW4vYWxsbWFuLCBjYXVzaW5nIHBhZ2VzIHRvIGJlIHNob3duIHR3aWNlLgotIwotI01BTkRFRk9QVElPTlMJLWEKLSMKLSMgRGVjb21wcmVzcyB3aXRoIGdpdmVuIGRlY29tcHJlc3NvciB3aGVuIGlucHV0IGZpbGUgaGFzIGdpdmVuIGV4dGVuc2lvbgotIyBUaGUgY29tbWFuZCBnaXZlbiBtdXN0IGFjdCBhcyBhIGZpbHRlci4KLSMKLS5negkJL2Jpbi9ndW56aXAgLWMKLS5iejIJCS91c3IvYmluL2J1bnppcDIgLWMKLS54egkJL3Vzci9iaW4vdW54eiAtYwotLnoJCQotLloJCS9iaW4vemNhdAotLkYJCQotLlkJCQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4vbWFuL21hbnBhdGguNS5neiBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWFuL21hbi9tYW5wYXRoLjUuZ3oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMwMTJmZjguLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4vbWFuL21hbnBhdGguNS5negorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWFuL21hbl8xLjZnLmJiIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4vbWFuXzEuNmcuYmIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZmNjAzZjguLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYW4vbWFuXzEuNmcuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw4NiArMCwwIEBACi1TVU1NQVJZID0gIk9ubGluZSBkb2N1bWVudGF0aW9uIHRvb2xzIgotREVTQ1JJUFRJT04gPSAiQSBzZXQgb2YgZG9jdW1lbnRhdGlvbiB0b29sczogbWFuLCBhcHJvcG9zIGFuZCB3aGF0aXMiCi1TRUNUSU9OID0gImNvbnNvbGUvdXRpbHMiCi1IT01FUEFHRSA9ICJodHRwOi8vcHJpbWF0ZXMueGltaWFuLmNvbS9+Zmx1Y2lmcmVkaS9tYW4iCi1MSUNFTlNFID0gIkdQTHYyIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9OGNhNDNjYmM4NDJjMjMzNmU4MzU5MjZjMjE2NmMyOGIiCi0KLVBSID0gInIxIgotCi1ERVBFTkRTID0gImdyb2ZmIGxlc3MiCi0KLWRlZiBjb21wcmVzc19wa2coZCk6Ci0gICAgaWYgImNvbXByZXNzX2RvYyIgaW4gKGQuZ2V0VmFyKCJJTkhFUklUIikgb3IgIiIpLnNwbGl0KCk6Ci0gICAgICAgICBjb21wcmVzcyA9IGQuZ2V0VmFyKCJET0NfQ09NUFJFU1MiKQotICAgICAgICAgaWYgY29tcHJlc3MgPT0gImd6IjoKLSAgICAgICAgICAgICByZXR1cm4gImd6aXAiCi0gICAgICAgICBlbGlmIGNvbXByZXNzID09ICJiejIiOgotICAgICAgICAgICAgIHJldHVybiAiYnppcDIiCi0gICAgICAgICBlbGlmIGNvbXByZXNzID09ICJ4eiI6Ci0gICAgICAgICAgICAgcmV0dXJuICJ4eiIKLSAgICByZXR1cm4gIiIKLQotUkRFUEVORFNfJHtQTn0gKz0gIiR7QGNvbXByZXNzX3BrZyhkKX0iCi0KLVNSQ19VUkkgPSAiaHR0cDovL3BrZ3MuZmVkb3JhcHJvamVjdC5vcmcvbG9va2FzaWRlL3BrZ3MvbWFuMmh0bWwvJHtCUH0udGFyLmd6L2JhMTU0ZDU3OTY5MjhiODQxYzljNjlmMGFlMzc2NjYwLyR7QlB9LnRhci5neiBcCi0gICAgICAgICAgIGZpbGU6Ly9tYW4tMS41ay1jb25mcGF0aC5wYXRjaDtzdHJpcGxldmVsPTAgXAotICAgICAgICAgICBmaWxlOi8vbWFuLTEuNWgxLW1ha2UucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vbWFuLTEuNWstbm9uYXNjaWkucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vbWFuLTEuNmUtc2VjdXJpdHkucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vbWFuLTEuNmUtbWFuZGlycy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9tYW4tMS41bTItYnVnMTE2MjEucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vbWFuLTEuNWstc29maXgucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vbWFuLTEuNW0yLWJ1aWxkcm9vdC5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9tYW4tMS42ZS1yb191c3IucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vbWFuLTEuNWkyLW5ld2xpbmUucGF0Y2g7c3RyaXBsZXZlbD0wIFwKLSAgICAgICAgICAgZmlsZTovL21hbi0xLjVqLXV0ZjgucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vbWFuLTEuNWkyLW92ZXJmbG93LnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL21hbi0xLjVqLW5vY2FjaGUucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vbWFuLTEuNWkyLWluaXRpYWwucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vbWFuLTEuNWgxLWdlbmNhdC5wYXRjaDtzdHJpcGxldmVsPTAgXAotICAgICAgICAgICBmaWxlOi8vbWFuLTEuNWctbm9ucm9vdGJ1aWxkLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL21hbi0xLjVqLWkxOG4ucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vbWFuLTEuNmUtd2hhdGlzMi5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9tYW4tMS42ZS11c2VfaTE4bl92YXJzX2luX2Ffc3RkX3dheS5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9tYW4tMS41bTItbm8tY29sb3ItZm9yLXByaW50aW5nLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL21hbi0xLjVtMi1zaWdwaXBlLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL21hbi0xLjZlLWkxOG5fd2hhdGlzLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL21hbi0xLjZlLW5ld19zZWN0aW9ucy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9tYW4uMS5nejt1bnBhY2s9ZmFsc2UgXAotICAgICAgICAgICBmaWxlOi8vbWFuLjcuZ3o7dW5wYWNrPWZhbHNlIFwKLSAgICAgICAgICAgZmlsZTovL21hbi5jb25mIFwKLSAgICAgICAgICAgZmlsZTovL21hbnBhdGguNS5nejt1bnBhY2s9ZmFsc2UgXAotICAgICAgICAgICBmaWxlOi8vbWFuLTEuNmctd2hhdGlzMy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9jb25maWd1cmVfc2VkLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL21hbi0xLjZnLXBhcmFsbGVsLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovL21hbi0xLjZnLWNvbXBpbGUtd2FybmluZ3MucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vbWFuLTEuNmctY29uZmlndXJlLnBhdGNoIFwKLSIKLQotU1JDX1VSSVttZDVzdW1dID0gImJhMTU0ZDU3OTY5MjhiODQxYzljNjlmMGFlMzc2NjYwIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImNjZGNiOGMzZjRlMDA4MDkyM2Q3ZTgxOGYwZTRhMjAyZGIyNmM0NjQxNWVhZWYzNjEzODdjMjA5OTViODk1OWYiCi0KLUNGTEFHUyArPSAiLURTWVNWIgotCi1kb19jb25maWd1cmUgKCkgewotICAgICAgICAke1N9L2NvbmZpZ3VyZSAtZGVmYXVsdCAtY29uZmRpciAvZXRjICtzZ2lkICtmaHMgK2xhbmcgYWxsCi19Ci0KLQotZG9faW5zdGFsbCgpIHsKLSAgICAgICAgb2VfcnVubWFrZSBpbnN0YWxsIERFU1RESVI9JHtEfQotfQotCi1kb19pbnN0YWxsX2FwcGVuZCgpewotCW1rZGlyIC1wICAke0R9JHtzeXNjb25mZGlyfQotICAgICAgICBta2RpciAtcCAke0R9JHtkYXRhZGlyfS9tYW4vbWFuNQotICAgICAgICBta2RpciAtcCAke0R9JHtkYXRhZGlyfS9tYW4vbWFuNwotCWNwICR7V09SS0RJUn0vbWFuLmNvbmYgJHtEfSR7c3lzY29uZmRpcn0vbWFuLmNvbmZpZwotICAgICAgICBjcCAke1dPUktESVJ9L21hbi4xLmd6ICR7RH0ke2RhdGFkaXJ9L21hbi9tYW4xLwotICAgICAgICBjcCAke1dPUktESVJ9L21hbi43Lmd6ICR7RH0ke2RhdGFkaXJ9L21hbi9tYW43LwotICAgICAgICBjcCAke1dPUktESVJ9L21hbnBhdGguNS5neiAke0R9JHtkYXRhZGlyfS9tYW4vbWFuNS8KLX0KLQotCi1SREVQRU5EU18ke1BOfSA9ICJsZXNzIGdyb2ZmIgotRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0vbG9jYWxlICR7c3lzY29uZmRpcn0vbWFuLmNvbmZpZyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWMvZmlsZXMvMDAwMi1UaWNrZXQtMzY5Ny10dHlfaW5pdC11bmlmeS1jdXJzZXMtaW5pdGlhbGl6YXRpb24ucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21jL2ZpbGVzLzAwMDItVGlja2V0LTM2OTctdHR5X2luaXQtdW5pZnktY3Vyc2VzLWluaXRpYWxpemF0aW9uLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNTRkNGQwLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWMvZmlsZXMvMDAwMi1UaWNrZXQtMzY5Ny10dHlfaW5pdC11bmlmeS1jdXJzZXMtaW5pdGlhbGl6YXRpb24ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw2NiArMCwwIEBACi1Gcm9tIDRkNDZhMTA4NjI5YmViNjZhMjkzNjcyZGI3YjQ0Zjg2M2I2NTk4YmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBUaG9tYXMgRGlja2V5IDxkaWNrZXlAaGlzLmNvbT4KLURhdGU6IEZyaSwgMTQgQXByIDIwMTcgMTQ6MDY6MTMgKzAzMDAKLVN1YmplY3Q6IFtQQVRDSF0gVGlja2V0ICMzNjk3OiAodHR5X2luaXQpOiB1bmlmeSBjdXJzZXMgaW5pdGlhbGl6YXRpb24KLQotLi4uZm9yIHZhcmlvdXMgY3Vyc2VzIGltcGxlbWVudGF0aW9ucy4KLQotU2lnbmVkLW9mZi1ieTogQW5kcmV3IEJvcm9kaW4gPGFib3JvZGluQHZtYWlsLnJ1PgotCi1VcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0IFtodHRwczovL2dpdGh1Yi5jb20vTWlkbmlnaHRDb21tYW5kZXIvbWMuZ2l0XQotCi1TaWduZWQtb2ZmLWJ5OiBIb25neHUgSmlhIDxob25neHUuamlhQHdpbmRyaXZlci5jb20+Ci0KLS0tLQotIGxpYi90dHkvdHR5LW5jdXJzZXMuYyB8IDI2ICsrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgMTcgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9saWIvdHR5L3R0eS1uY3Vyc2VzLmMgYi9saWIvdHR5L3R0eS1uY3Vyc2VzLmMKLWluZGV4IGE3YTExZjMuLjhlNjliMzkgMTAwNjQ0Ci0tLS0gYS9saWIvdHR5L3R0eS1uY3Vyc2VzLmMKLSsrKyBiL2xpYi90dHkvdHR5LW5jdXJzZXMuYwotQEAgLTE3OSw2ICsxNzksOCBAQCBtY190dHlfbm9ybWFsaXplX2xpbmVzX2NoYXIgKGNvbnN0IGNoYXIgKmNoKQotIHZvaWQKLSB0dHlfaW5pdCAoZ2Jvb2xlYW4gbW91c2VfZW5hYmxlLCBnYm9vbGVhbiBpc194dGVybSkKLSB7Ci0rICAgIHN0cnVjdCB0ZXJtaW9zIG1vZGU7Ci0rCi0gICAgIGluaXRzY3IgKCk7Ci0gCi0gI2lmZGVmIEhBVkVfRVNDREVMQVkKLUBAIC0xOTQsMjUgKzE5NiwxNSBAQCB0dHlfaW5pdCAoZ2Jvb2xlYW4gbW91c2VfZW5hYmxlLCBnYm9vbGVhbiBpc194dGVybSkKLSAgICAgRVNDREVMQVkgPSAyMDA7Ci0gI2VuZGlmIC8qIEhBVkVfRVNDREVMQVkgKi8KLSAKLS0jaWZkZWYgTkNVUlNFU19WRVJTSU9OCi0rICAgIHRjZ2V0YXR0ciAoU1RESU5fRklMRU5PLCAmbW9kZSk7Ci0gICAgIC8qIHVzZSBDdHJsLWcgdG8gZ2VuZXJhdGUgU0lHSU5UICovCi0tICAgIGN1cl90ZXJtLT5OdHR5Yi5jX2NjW1ZJTlRSXSA9IENUUkwgKCdnJyk7ICAgLyogXmcgKi8KLSsgICAgbW9kZS5jX2NjW1ZJTlRSXSA9IENUUkwgKCdnJyk7ICAvKiBeZyAqLwotICAgICAvKiBkaXNhYmxlIFNJR1FVSVQgdG8gYWxsb3cgdXNlIEN0cmwtXCBrZXkgKi8KLS0gICAgY3VyX3Rlcm0tPk50dHliLmNfY2NbVlFVSVRdID0gTlVMTF9WQUxVRTsKLS0gICAgdGNzZXRhdHRyIChjdXJfdGVybS0+RmlsZWRlcywgVENTQU5PVywgJmN1cl90ZXJtLT5OdHR5Yik7Ci0tI2Vsc2UKLS0gICAgLyogb3RoZXIgY3Vyc2VzIGltcGxlbWVudGF0aW9uIChic2QgY3Vyc2VzLCAuLi4pICovCi0tICAgIHsKLS0gICAgICAgIHN0cnVjdCB0ZXJtaW9zIG1vZGU7Ci0tCi0tICAgICAgICB0Y2dldGF0dHIgKFNURElOX0ZJTEVOTywgJm1vZGUpOwotLSAgICAgICAgLyogdXNlIEN0cmwtZyB0byBnZW5lcmF0ZSBTSUdJTlQgKi8KLS0gICAgICAgIG1vZGUuY19jY1tWSU5UUl0gPSBDVFJMICgnZycpOyAgLyogXmcgKi8KLS0gICAgICAgIC8qIGRpc2FibGUgU0lHUVVJVCB0byBhbGxvdyB1c2UgQ3RybC1cIGtleSAqLwotLSAgICAgICAgbW9kZS5jX2NjW1ZRVUlUXSA9IE5VTExfVkFMVUU7Ci0tICAgICAgICB0Y3NldGF0dHIgKFNURElOX0ZJTEVOTywgVENTQU5PVywgJm1vZGUpOwotLSAgICB9Ci0tI2VuZGlmIC8qIE5DVVJTRVNfVkVSU0lPTiAqLwotKyAgICBtb2RlLmNfY2NbVlFVSVRdID0gTlVMTF9WQUxVRTsKLSsgICAgdGNzZXRhdHRyIChTVERJTl9GSUxFTk8sIFRDU0FOT1csICZtb2RlKTsKLSsKLSsgICAgLyogY3Vyc2VzIHJlbWVtYmVycyB0aGUgImluLXByb2dyYW0iIG1vZGVzIGFmdGVyIHRoaXMgY2FsbCAqLwotKyAgICBkZWZfcHJvZ19tb2RlICgpOwotIAotICAgICB0dHlfc3RhcnRfaW50ZXJydXB0X2tleSAoKTsKLSAKLS0tIAotMi43LjQKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYy9tY180LjguMTkuYmIgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21jL21jXzQuOC4yMC5iYgpzaW1pbGFyaXR5IGluZGV4IDg5JQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21jL21jXzQuOC4xOS5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYy9tY180LjguMjAuYmIKaW5kZXggYjNhMTU2Yy4uNzBkMWI1ZSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYy9tY180LjguMTkuYmIKKysrIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tYy9tY180LjguMjAuYmIKQEAgLTgsMTAgKzgsOSBAQAogCiBTUkNfVVJJID0gImh0dHA6Ly93d3cubWlkbmlnaHQtY29tbWFuZGVyLm9yZy9kb3dubG9hZHMvJHtCUE59LSR7UFZ9LnRhci5iejIgXAogICAgICAgICAgICBmaWxlOi8vMDAwMS1tYy1yZXBsYWNlLXBlcmwtdy13aXRoLXVzZS13YXJuaW5ncy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAyLVRpY2tldC0zNjk3LXR0eV9pbml0LXVuaWZ5LWN1cnNlcy1pbml0aWFsaXphdGlvbi5wYXRjaCBcCiAgICAgICAgICAgICIKLVNSQ19VUklbbWQ1c3VtXSA9ICJlZjQyM2Y1YjZmODBhMWE1YTVmYzUzYjgzMjRjYWI3MCIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJkMGRkZGZhZTcxNDlmYWM5MDNmNzRlZjU1Y2ZjYjJhMTk4ZTBmNzAwNDM0NmM3YmRlZDQzNjY5ZDYxYmE0MzZmIgorU1JDX1VSSVttZDVzdW1dID0gImRjZmM3YWE2MTNjNjIyOTFhMGY3MWY2YjY5OGQ4MjY3IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjJkODVkYWFhNmFiMjZlNTI0OTQ2ZGY0ODIzYWMyZjY5ODAyYmMxNmJjOTY3NzgxYjVlMjhkNWI4NmZjM2I5NzkiCiAKIGluaGVyaXQgYXV0b3Rvb2xzIGdldHRleHQgcGtnY29uZmlnCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWRhZG0vZmlsZXMvZ2NjLTQuOS5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWRhZG0vZmlsZXMvZ2NjLTQuOS5wYXRjaAppbmRleCA1NGJmMWQ3Li5kZjIxMzk5IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21kYWRtL2ZpbGVzL2djYy00LjkucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tZGFkbS9maWxlcy9nY2MtNC45LnBhdGNoCkBAIC03LDEzICs3LDEzIEBACiBTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgogVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCiAKLUluZGV4OiBtZGFkbS0zLjMvc3VwZXItaW50ZWwuYworSW5kZXg6IG1kYWRtLTQuMC9zdXBlci1pbnRlbC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gbWRhZG0tMy4zLm9yaWcvc3VwZXItaW50ZWwuYwkyMDE0LTA1LTAyIDE1OjA4OjIxLjE1NDMxOTY1MSAtMDcwMAotKysrIG1kYWRtLTMuMy9zdXBlci1pbnRlbC5jCTIwMTQtMDUtMDIgMTU6MDk6MzEuNDcwOTg1Nzk0IC0wNzAwCi1AQCAtNTA2MCw3ICs1MDYwLDcgQEAKLSAJc3BhcmUtPmNhY2hlX3NpemUgPSBtcGItPmNhY2hlX3NpemUsCi0gCXNwYXJlLT5wd3JfY3ljbGVfY291bnQgPSBfX2NwdV90b19sZTMyKDEpLAorLS0tIG1kYWRtLTQuMC5vcmlnL3N1cGVyLWludGVsLmMKKysrKyBtZGFkbS00LjAvc3VwZXItaW50ZWwuYworQEAgLTU3MjUsNyArNTcyNSw3IEBAIHN0YXRpYyBpbnQgd3JpdGVfc3VwZXJfaW1zbV9zcGFyZXMoc3RydWMKKyAJc3BhcmUtPmNhY2hlX3NpemUgPSBtcGItPmNhY2hlX3NpemU7CisgCXNwYXJlLT5wd3JfY3ljbGVfY291bnQgPSBfX2NwdV90b19sZTMyKDEpOwogIAogLQlzbnByaW50ZigoY2hhciAqKSBzcGFyZS0+c2lnLCBNQVhfU0lHTkFUVVJFX0xFTkdUSCwKICsJKHZvaWQpc25wcmludGYoKGNoYXIgKikgc3BhcmUtPnNpZywgTUFYX1NJR05BVFVSRV9MRU5HVEgsCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21kYWRtL2ZpbGVzL21kYWRtLTMuMy4yX3gzMl9hYmlfdGltZV90LnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9tZGFkbS9maWxlcy9tZGFkbS0zLjMuMl94MzJfYWJpX3RpbWVfdC5wYXRjaAppbmRleCBjNjU2ZDA3Li4wMGU2NjU3IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21kYWRtL2ZpbGVzL21kYWRtLTMuMy4yX3gzMl9hYmlfdGltZV90LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbWRhZG0vZmlsZXMvbWRhZG0tMy4zLjJfeDMyX2FiaV90aW1lX3QucGF0Y2gKQEAgLTUsMTMgKzUsMTMgQEAKIAogU2lnbmVkLW9mZi1ieTogQW7DrWJhbCBMaW3Ds24gPGFuaWJhbC5saW1vbkBsaW51eC5pbnRlbC5jb20+CiAKLUluZGV4OiBtZGFkbS0zLjMuNC9tb25pdG9yLmMKK0luZGV4OiBtZGFkbS00LjAvbW9uaXRvci5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gbWRhZG0tMy4zLjQub3JpZy9tb25pdG9yLmMKLSsrKyBtZGFkbS0zLjMuNC9tb25pdG9yLmMKLUBAIC0yNTcsOSArMjU3LDEyIEBAIHN0YXRpYyBpbnQgcmVhZF9hbmRfYWN0KHN0cnVjdCBhY3RpdmVfYXIKLSAJCQltZGktPmN1cnJfc3RhdGUgPSByZWFkX2Rldl9zdGF0ZShtZGktPnN0YXRlX2ZkKTsKLSAJCX0KKy0tLSBtZGFkbS00LjAub3JpZy9tb25pdG9yLmMKKysrKyBtZGFkbS00LjAvbW9uaXRvci5jCitAQCAtNDQ1LDkgKzQ0NSwxMiBAQCBzdGF0aWMgaW50IHJlYWRfYW5kX2FjdChzdHJ1Y3QgYWN0aXZlX2FyCisgCQlpZiAoRkRfSVNTRVQobWRpLT5iYl9mZCwgZmRzKSkKKyAJCQljaGVja19mb3JfY2xlYXJlZF9iYihhLCBtZGkpOwogIAl9CiAtCiAgCWdldHRpbWVvZmRheSgmdHYsIE5VTEwpOwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9taW5pY29tL21pbmljb21fMi43LjEuYmIgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21pbmljb20vbWluaWNvbV8yLjcuMS5iYgppbmRleCAxYTMxYTg3Li5lNmFmZTJiIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21pbmljb20vbWluaWNvbV8yLjcuMS5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL21pbmljb20vbWluaWNvbV8yLjcuMS5iYgpAQCAtMjcsMyArMjcsNCBAQAogCWZvciBkIGluIGRvYyBleHRyYXMgbWFuIGxpYiBzcmM7IGRvIG1ha2UgLUMgJGQgREVTVERJUj0ke0R9IGluc3RhbGw7IGRvbmUKIH0KIAorUlJFQ09NTUVORFNfJHtQTn0gKz0gImxyenN6IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9uZXQtdG9vbHMvbmV0LXRvb2xzL25ldC10b29scy0xLjYwLXNjdHAxLnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9uZXQtdG9vbHMvbmV0LXRvb2xzL25ldC10b29scy0xLjYwLXNjdHAxLnBhdGNoCmluZGV4IDEyZWVkMTcuLjc4ZGFmNmMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbmV0LXRvb2xzL25ldC10b29scy9uZXQtdG9vbHMtMS42MC1zY3RwMS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL25ldC10b29scy9uZXQtdG9vbHMvbmV0LXRvb2xzLTEuNjAtc2N0cDEucGF0Y2gKQEAgLTExLDEwICsxMSwxMCBAQAogIHN0YXRpc3RpY3MuYyB8ICA2OCArKysrKysrKystCiAgMiBmaWxlcyBjaGFuZ2VkLCA0NjUgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCiAKLWRpZmYgLS1naXQgYS9uZXRzdGF0LmMgYi9uZXRzdGF0LmMKLWluZGV4IDFmYjllMGMuLjVkMWE0YTEgMTAwNjQ0Ci0tLS0gYS9uZXRzdGF0LmMKLSsrKyBiL25ldHN0YXQuYworSW5kZXg6IG5ldC10b29scy0xLjYwL25ldHN0YXQuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIG5ldC10b29scy0xLjYwLm9yaWcvbmV0c3RhdC5jCisrKysgbmV0LXRvb2xzLTEuNjAvbmV0c3RhdC5jCiBAQCAtNTgsNiArNTgsNyBAQAogICAqCiAgICo5OTA0MjAgezEuMzh9IFR1YW4gSG9hbmcgICAgICAgICAgICAgIHJlbW92ZWQgYSB1c2VsZXNzIGFzc2lnbm1lbnQgZnJvbSBpZ21wX2RvX29uZSgpCkBAIC0yMyw3ICsyMyw3IEBACiAgICoKICAgKiAgICAgICAgICAgICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0CiAgICogICAgICAgICAgICAgIGFuZC9vciAgbW9kaWZ5IGl0IHVuZGVyICB0aGUgdGVybXMgb2YgIHRoZSBHTlUgR2VuZXJhbAotQEAgLTEwNSw3ICsxMDYsNyBAQAorQEAgLTEwNiw3ICsxMDcsNyBAQAogICNlbmRpZgogIAogIC8qIHByb3RvdHlwZXMgZm9yIHN0YXRpc3RpY3MuYyAqLwpAQCAtMzIsNyArMzIsNyBAQAogIHZvaWQgaW5pdHRhYih2b2lkKTsKICB2b2lkIHBhcnNlc25tcDYoaW50LCBpbnQsIGludCk7CiAgdm9pZCBpbml0dGFiNih2b2lkKTsKLUBAIC0xMTgsNiArMTE5LDI4IEBAIHR5cGVkZWYgZW51bSB7CitAQCAtMTE5LDYgKzEyMCwyOCBAQCB0eXBlZGVmIGVudW0gewogICAgICBTU19ESVNDT05ORUNUSU5HCQkvKiBpbiBwcm9jZXNzIG9mIGRpc2Nvbm5lY3RpbmcgICovCiAgfSBzb2NrZXRfc3RhdGU7CiAgCkBAIC02MSw3ICs2MSw3IEBACiAgI2RlZmluZSBTT19BQ0NFUFRDT04gICAgKDE8PDE2KQkvKiBwZXJmb3JtZWQgYSBsaXN0ZW4gICAgICAgICAgICovCiAgI2RlZmluZSBTT19XQUlUREFUQSAgICAgKDE8PDE3KQkvKiB3YWl0IGRhdGEgdG8gcmVhZCAgICAgICAgICAgICovCiAgI2RlZmluZSBTT19OT1NQQUNFICAgICAgKDE8PDE4KQkvKiBubyBzcGFjZSB0byB3cml0ZSAgICAgICAgICAgICovCi1AQCAtMTQ4LDYgKzE3MSw3IEBAIGludCBmbGFnX29wdCA9IDA7CitAQCAtMTQ5LDYgKzE3Miw3IEBAIGludCBmbGFnX29wdCA9IDA7CiAgaW50IGZsYWdfcmF3ID0gMDsKICBpbnQgZmxhZ190Y3AgPSAwOwogIGludCBmbGFnX3VkcCA9IDA7CkBAIC02OSw3ICs2OSw3IEBACiAgaW50IGZsYWdfaWdtcD0gMDsKICBpbnQgZmxhZ19yb20gPSAwOwogIGludCBmbGFnX2V4cCA9IDE7Ci1AQCAtOTkwLDYgKzEwMTQsMzY1IEBAIHN0YXRpYyBpbnQgdWRwX2luZm8odm9pZCkKK0BAIC05OTUsNiArMTAxOSwzNjUgQEAgc3RhdGljIGludCB1ZHBfaW5mbyh2b2lkKQogIAkgICAgICAgdWRwX2RvX29uZSk7CiAgfQogIApAQCAtNDM1LDcgKzQzNSw3IEBACiAgc3RhdGljIHZvaWQgcmF3X2RvX29uZShpbnQgbG5yLCBjb25zdCBjaGFyICpsaW5lKQogIHsKICAgICAgY2hhciBidWZmZXJbODE5Ml0sIGxvY2FsX2FkZHJbNjRdLCByZW1fYWRkcls2NF07Ci1AQCAtMTU0OSw3ICsxOTMyLDcgQEAgc3RhdGljIHZvaWQgdXNhZ2Uodm9pZCkKK0BAIC0xNTU4LDcgKzE5NDEsNyBAQCBzdGF0aWMgdm9pZCB1c2FnZSh2b2lkKQogICAgICBmcHJpbnRmKHN0ZGVyciwgXygiICAgICAgICAtRiwgLS1maWIgICAgICAgICAgICAgICAgZGlzcGxheSBGb3J3YXJkaW5nIEluZm9ybWF0aW9uIEJhc2UgKGRlZmF1bHQpXG4iKSk7CiAgICAgIGZwcmludGYoc3RkZXJyLCBfKCIgICAgICAgIC1DLCAtLWNhY2hlICAgICAgICAgICAgICBkaXNwbGF5IHJvdXRpbmcgY2FjaGUgaW5zdGVhZCBvZiBGSUJcblxuIikpOwogIApAQCAtNDQ0LDcgKzQ0NCw3IEBACiAgICAgIGZwcmludGYoc3RkZXJyLCBfKCIgIDxBRj49VXNlICctNnwtNCcgb3IgJy1BIDxhZj4nIG9yICctLTxhZj4nOyBkZWZhdWx0OiAlc1xuIiksIERGTFRfQUYpOwogICAgICBmcHJpbnRmKHN0ZGVyciwgXygiICBMaXN0IG9mIHBvc3NpYmxlIGFkZHJlc3MgZmFtaWxpZXMgKHdoaWNoIHN1cHBvcnQgcm91dGluZyk6XG4iKSk7CiAgICAgIHByaW50X2FmbGlzdCgxKTsgLyogMSA9IHJvdXRlYWJsZSAqLwotQEAgLTE1NzQsNiArMTk1Nyw3IEBAIGludCBtYWluCitAQCAtMTU4Myw2ICsxOTY2LDcgQEAgaW50IG1haW4KICAJeyJwcm90b2NvbCIsIDEsIDAsICdBJ30sCiAgCXsidGNwIiwgMCwgMCwgJ3QnfSwKICAJeyJ1ZHAiLCAwLCAwLCAndSd9LApAQCAtNDUyLDcgKzQ1Miw3IEBACiAgCXsicmF3IiwgMCwgMCwgJ3cnfSwKICAJeyJ1bml4IiwgMCwgMCwgJ3gnfSwKICAJeyJsaXN0ZW5pbmciLCAwLCAwLCAnbCd9LAotQEAgLTE2MDQsNyArMTk4OCw3IEBAIGludCBtYWluCitAQCAtMTYxMyw3ICsxOTk3LDcgQEAgaW50IG1haW4KICAgICAgZ2V0cm91dGVfaW5pdCgpOwkJLyogU2V0IHVwIEFGIHJvdXRpbmcgc3VwcG9ydCAqLwogIAogICAgICBhZm5hbWVbMF0gPSAnXDAnOwpAQCAtNDYxLDcgKzQ2MSw3IEBACiAgCXN3aXRjaCAoaSkgewogIAljYXNlIC0xOgogIAkgICAgYnJlYWs7Ci1AQCAtMTY5NiwxMCArMjA4MCwxMiBAQCBpbnQgbWFpbgorQEAgLTE3MDUsMTAgKzIwODksMTIgQEAgaW50IG1haW4KICAJY2FzZSAndCc6CiAgCSAgICBmbGFnX3RjcCsrOwogIAkgICAgYnJlYWs7CkBAIC00NzUsNyArNDc1LDcgQEAKICAJY2FzZSAndyc6CiAgCSAgICBmbGFnX3JhdysrOwogIAkgICAgYnJlYWs7Ci1AQCAtMTcxNywxMyArMjEwMywxMyBAQCBpbnQgbWFpbgorQEAgLTE3MjYsMTMgKzIxMTIsMTMgQEAgaW50IG1haW4KICAgICAgaWYgKGZsYWdfaW50ICsgZmxhZ19yb3UgKyBmbGFnX21hcyArIGZsYWdfc3RhID4gMSkKICAJdXNhZ2UoKTsKICAKQEAgLTQ5Myw3ICs0OTMsNyBAQAogIAkrIGZsYWdfYXgyNSArIGZsYWdfbmV0cm9tICsgZmxhZ19pZ21wICsgZmxhZ194MjU7CiAgCiAgICAgIGlmIChmbGFnX21hcykgewotQEAgLTE3NTEsNyArMjEzNyw3IEBAIGludCBtYWluCitAQCAtMTc2MCw3ICsyMTQ2LDcgQEAgaW50IG1haW4KICAgICAgICAgIGNoYXIgYnVmWzI1Nl07CiAgICAgICAgICBpZiAoIWFmbmFtZVswXSkgewogICAgICAgICAgICAgIGluaXR0YWIoKTsKQEAgLTUwMiw3ICs1MDIsNyBAQAogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBzYWZlX3N0cm5jcHkoYnVmLCBhZm5hbWUsIHNpemVvZihidWYpKTsKICAgICAgICAgICAgICB0bXAxID0gYnVmOwotQEAgLTE4MDQsNyArMjE5MCw3IEBAIGludCBtYWluCitAQCAtMTgxNSw3ICsyMjAxLDcgQEAgaW50IG1haW4KICAJcmV0dXJuIChpKTsKICAgICAgfQogICAgICBmb3IgKDs7KSB7CkBAIC01MTEsNyArNTExLDcgQEAKICAjaWYgSEFWRV9BRklORVQKICAJICAgIHByZ19jYWNoZV9sb2FkKCk7CiAgCSAgICBwcmludGYoXygiQWN0aXZlIEludGVybmV0IGNvbm5lY3Rpb25zICIpKTsJLyogeHh4ICovCi1AQCAtMTg0Myw2ICsyMjI5LDExIEBAIGludCBtYWluCitAQCAtMTg1NCw2ICsyMjQwLDExIEBAIGludCBtYWluCiAgCSAgICBpZiAoaSkKICAJCXJldHVybiAoaSk7CiAgCX0KQEAgLTUyMywxMCArNTIzLDEwIEBACiAgCWlmICghZmxhZ19hcmcgfHwgZmxhZ19yYXcpIHsKICAJICAgIGkgPSByYXdfaW5mbygpOwogIAkgICAgaWYgKGkpCi1kaWZmIC0tZ2l0IGEvc3RhdGlzdGljcy5jIGIvc3RhdGlzdGljcy5jCi1pbmRleCAwMzYwMGQ3Li5lYjhkN2RjIDEwMDY0NAotLS0tIGEvc3RhdGlzdGljcy5jCi0rKysgYi9zdGF0aXN0aWNzLmMKK0luZGV4OiBuZXQtdG9vbHMtMS42MC9zdGF0aXN0aWNzLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBuZXQtdG9vbHMtMS42MC5vcmlnL3N0YXRpc3RpY3MuYworKysrIG5ldC10b29scy0xLjYwL3N0YXRpc3RpY3MuYwogQEAgLTIxLDcgKzIxLDcgQEAKICAjZGVmaW5lIFVGV0FSTih4KQogICNlbmRpZgpAQCAtNTM3LDcgKzUzNyw3IEBACiAgZW51bSBTdGF0ZSB7CiAgICAgIG51bWJlciA9IDAsIG9wdF9udW1iZXIsIGlfZm9yd2FyZCwgaV9pbnBfaWNtcCwgaV9vdXRwX2ljbXAsIGlfcnRvX2FsZywKIEBAIC0yOTcsNiArMjk3LDI3IEBAIHN0cnVjdCBlbnRyeSBUY3BleHR0YWJbXSA9Ci0gICAgIHsgIlRDUFJlbm9SZWNvdmVyeUZhaWwiLCBOXygiJXUgY2xhc3NpYyBSZW5vIGZhc3QgcmV0cmFuc21pdHMgZmFpbGVkIiksIG9wdF9udW1iZXIgfSwKKyAgICAgeyAiVENQUmVub1JlY292ZXJ5RmFpbCIsIE5fKCIlbGx1IGNsYXNzaWMgUmVubyBmYXN0IHJldHJhbnNtaXRzIGZhaWxlZCIpLCBvcHRfbnVtYmVyIH0sCiAgfTsKICAKICtzdHJ1Y3QgZW50cnkgU2N0cHRhYltdID0KQEAgLTYxNiw3ICs2MTYsNyBAQAogICAgICBmID0gcHJvY19mb3BlbigiL3Byb2MvbmV0L3NubXAiKTsKICAgICAgaWYgKCFmKSB7CiAgCXBlcnJvcihfKCJjYW5ub3Qgb3BlbiAvcHJvYy9uZXQvc25tcCIpKTsKLUBAIC01MzAsNiArNTgwLDE2IEBAIHZvaWQgcGFyc2Vzbm1wKGludCBmbGFnX3JhdywgaW50IGZsYWdfdGNwLCBpbnQgZmxhZ191ZHApCitAQCAtNTMwLDYgKzU4MCwxNiBAQCB2b2lkIHBhcnNlc25tcChpbnQgZmxhZ19yYXcsIGludCBmbGFnX3RjCiAgICAgIAogICAgICAgICAgZmNsb3NlKGYpOwogICAgICB9CkBAIC02MzMsNiArNjMzLDMgQEAKICAgICAgcmV0dXJuOwogIH0KICAgICAgCi0tLSAKLTEuOC41LjIuMjMzLmc5MzJmN2U0Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbmV3dC9maWxlcy9jcm9zc19hci5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvbmV3dC9maWxlcy9jcm9zc19hci5wYXRjaAppbmRleCAwMzAwN2FhLi44NmNjMGJlIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL25ld3QvZmlsZXMvY3Jvc3NfYXIucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9uZXd0L2ZpbGVzL2Nyb3NzX2FyLnBhdGNoCkBAIC0xOCwxOCArMTgsMTkgQEAKICBjb25maWd1cmUuYWMgfCA0ICsrKysKICAyIGZpbGVzIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogCi1kaWZmIC0tZ2l0IGEvTWFrZWZpbGUuaW4gYi9NYWtlZmlsZS5pbgotLS0tIGEvTWFrZWZpbGUuaW4KLSsrKyBiL01ha2VmaWxlLmluCitJbmRleDogbmV3dC0wLjUyLjIwL01ha2VmaWxlLmluCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbmV3dC0wLjUyLjIwLm9yaWcvTWFrZWZpbGUuaW4KKysrKyBuZXd0LTAuNTIuMjAvTWFrZWZpbGUuaW4KIEBAIC03LDYgKzcsNyBAQCBDRkxBR1MgPSBAQ0ZMQUdTQAogIExERkxBR1MgPSBATERGTEFHU0AKLSBDUFBGTEFHUyA9IC1EX0dOVV9TT1VSQ0UgQENQUEZMQUdTQCAKKyBDUFBGTEFHUyA9IC1EX0dOVV9TT1VSQ0UgQENQUEZMQUdTQAogIEdOVV9MRCA9IEBHTlVfTERACiArQVIgPSBAQVJACiAgCiAgVkVSU0lPTiA9IEBWRVJTSU9OQAogIFRBRyA9IHIkKHN1YnN0IC4sLSwkKFZFUlNJT04pKQotQEAgLTEwOSw3ICsxMTAsNyBAQCB3aGlwdGNsLiQoU09FWFQpOiAkKFdISVBUQ0xPQkpTKSAkKExJQk5FV1RTSCkKK0BAIC0xMDksNyArMTEwLDcgQEAgd2hpcHRjbC4kKFNPRVhUKTogJChXSElQVENMT0JKUykgJChMSUJORQogIAkkKENDKSAtc2hhcmVkICQoU0hDRkxBR1MpICQoTERGTEFHUykgLW8gd2hpcHRjbC4kKFNPRVhUKSAkKFdISVBUQ0xPQkpTKSAtTC4gLWxuZXd0ICAkKExJQlRDTCkgLWxwb3B0ICQoTElCUykKICAKICAkKExJQk5FV1QpOiAkKExJQk9CSlMpCkBAIC0zOCwxMCArMzksMTAgQEAKICAKICBuZXd0Lm8gJChTSEFSRURESVIpL25ld3QubzogbmV3dC5jIE1ha2VmaWxlCiAgCi1kaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCi1pbmRleCA5MmU2ZGE4Li5jZDgzZDU3IDEwMDY0NAotLS0tIGEvY29uZmlndXJlLmFjCi0rKysgYi9jb25maWd1cmUuYWMKK0luZGV4OiBuZXd0LTAuNTIuMjAvY29uZmlndXJlLmFjCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbmV3dC0wLjUyLjIwLm9yaWcvY29uZmlndXJlLmFjCisrKysgbmV3dC0wLjUyLjIwL2NvbmZpZ3VyZS5hYwogQEAgLTE1LDYgKzE1LDEwIEBAIEFDX1BST0dfSU5TVEFMTAogIEFDX1BST0dfTE5fUwogIEFDX1BST0dfR1JFUApAQCAtNTEsOCArNTIsNSBAQAogK0FDX0RFRlVOKFtBQ19QUk9HX0FSXSwgW0FDX0NIRUNLX1RPT0woQVIsIGFyLCA6KV0pCiArQUNfUFJPR19BUgogIAotICMgQXJlIHdlIHVzaW5nIEdOVSBsZD8KLSBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBHTlUgbGRdKQotLS0gCi0xLjguMS4yCi0KKyBBQ19DSEVDS19TSVpFT0YoW2xvbmddKQorIEFDX0NIRUNLX1NJWkVPRihbbG9uZyBsb25nXSkKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcGFja2FnZWdyb3Vwcy9wYWNrYWdlZ3JvdXAtY29yZS1mdWxsLWNtZGxpbmUuYmIgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BhY2thZ2Vncm91cHMvcGFja2FnZWdyb3VwLWNvcmUtZnVsbC1jbWRsaW5lLmJiCmluZGV4IGZkZWRlNTkuLjkwMDJmYmMgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcGFja2FnZWdyb3Vwcy9wYWNrYWdlZ3JvdXAtY29yZS1mdWxsLWNtZGxpbmUuYmIKKysrIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9wYWNrYWdlZ3JvdXBzL3BhY2thZ2Vncm91cC1jb3JlLWZ1bGwtY21kbGluZS5iYgpAQCAtODksNyArODksNiBAQAogICAgIG1rdGVtcCBcCiAgICAgbmN1cnNlcyBcCiAgICAgbmV0LXRvb2xzIFwKLSAgICBwYXggXAogICAgIHBvcHQgXAogICAgIHByb2NwcyBcCiAgICAgcHNtaXNjIFwKQEAgLTE0MCwxOSArMTM5LDEzIEBACiAgICAgYnppcDIgXAogICAgIGNyb25pZSBcCiAgICAgZGJ1cyBcCi0gICAgZGJ1cy1nbGliIFwKICAgICBlbGZ1dGlscyBcCiAgICAgZ3ppcCBcCiAgICAgbGVzcyBcCi0gICAgbGliY2FwIFwKLSAgICBsaWJldmVudCBcCiAgICAgbG9ncm90YXRlIFwKICAgICBuZnMtdXRpbHMgXAogICAgIHBjaXV0aWxzIFwKLSAgICBsaWJwY3JlIFwKICAgICBycGNiaW5kIFwKLSAgICBzeXNmc3V0aWxzIFwKICAgICB0Y3Atd3JhcHBlcnMgXAogICAgIHR6ZGF0YSBcCiAgICAgIgotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BhY2thZ2Vncm91cHMvcGFja2FnZWdyb3VwLWNvcmUtbHNiLmJiIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9wYWNrYWdlZ3JvdXBzL3BhY2thZ2Vncm91cC1jb3JlLWxzYi5iYgppbmRleCA1YmFhZjM1Li41M2QxMDBjIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BhY2thZ2Vncm91cHMvcGFja2FnZWdyb3VwLWNvcmUtbHNiLmJiCisrKyBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcGFja2FnZWdyb3Vwcy9wYWNrYWdlZ3JvdXAtY29yZS1sc2IuYmIKQEAgLTE0LDEyICsxNCwxNSBAQAogIyBsaWJnbHUgbmVlZHMgdmlydHVhbC9saWJnbCwgd2hpY2ggcmVxdWlyZXMgb3BlbmdsIGluIERJU1RST19GRUFUVVJFUwogUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTICs9ICJvcGVuZ2wiCiAKKyMgbGlicGFtLCBwYW0tcGx1Z2luLXdoZWVsIHJlcXVpcmVzIHBhbSBpbiBESVNUUk9fRkVBVFVSRVMKK1JFUVVJUkVEX0RJU1RST19GRUFUVVJFUyArPSAicGFtIgorCiAjCiAjIFdlIHdpbGwgc2tpcCBwYXJzaW5nIHRoaXMgcGFja2FnZWdlb3VwIGZvciBub24tZ2xpYmMgc3lzdGVtcwogIwogcHl0aG9uIF9fYW5vbnltb3VzICgpIHsKICAgICBpZiBkLmdldFZhcignVENMSUJDJykgIT0gImdsaWJjIjoKLSAgICAgICAgcmFpc2UgYmIucGFyc2UuU2tpcFBhY2thZ2UoImluY29tcGF0aWJsZSB3aXRoICVzIEMgbGlicmFyeSIgJQorICAgICAgICByYWlzZSBiYi5wYXJzZS5Ta2lwUmVjaXBlKCJpbmNvbXBhdGlibGUgd2l0aCAlcyBDIGxpYnJhcnkiICUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZC5nZXRWYXIoJ1RDTElCQycpKQogfQogCkBAIC02OCw3ICs3MSw2IEBACiAgICAgbWMtaGVscGVycy1wZXJsIFwKICAgICBtZGFkbSBcCiAgICAgbWluaWNvbSBcCi0gICAgbmVvbiBcCiAgICAgcGFydGVkIFwKICAgICBxdW90YSBcCiAgICAgc2NyZWVuIFwKQEAgLTE1OSw3ICsxNjEsNiBAQAogICAgIG1rdGVtcCBcCiAgICAgbXNtdHAgXAogICAgIHBhdGNoIFwKLSAgICBwYXggXAogICAgIHByb2NwcyBcCiAgICAgcHNtaXNjIFwKICAgICBzZWQgXApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9wYW0vbGlicGFtL2xpYnBhbS14dGVzdHMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BhbS9saWJwYW0vbGlicGFtLXh0ZXN0cy5wYXRjaAppbmRleCBiZTY4NzQ1Li43ZWRmNjZmIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BhbS9saWJwYW0vbGlicGFtLXh0ZXN0cy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BhbS9saWJwYW0vbGlicGFtLXh0ZXN0cy5wYXRjaApAQCAtMywxOCArMywyMCBAQAogVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCiAKIFNpZ25lZC1vZmYtYnk6IEthbmcgS2FpIDxrYWkua2FuZ0B3aW5kcml2ZXIuY29tPgotLS0tIExpbnV4LVBBTS0xLjEuNC94dGVzdHMvTWFrZWZpbGUuYW0ub3JpZwkyMDExLTA3LTE5IDE3OjAwOjA5LjYxOTk4MDAwMSArMDgwMAotKysrIExpbnV4LVBBTS0xLjEuNC94dGVzdHMvTWFrZWZpbGUuYW0JMjAxMS0wNy0xOSAxNjo1NDowMC4yMjk5Nzk5OTggKzA4MDAKLUBAIC03LDcgKzcsNyBAQAotIEFNX0xERkxBR1MgPSAtTCQodG9wX2J1aWxkZGlyKS9saWJwYW0gLWxwYW0gXAotIAktTCQodG9wX2J1aWxkZGlyKS9saWJwYW1fbWlzYyAtbHBhbV9taXNjCitJbmRleDogTGludXgtUEFNLTEuMy4wL3h0ZXN0cy9NYWtlZmlsZS5hbQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIExpbnV4LVBBTS0xLjMuMC5vcmlnL3h0ZXN0cy9NYWtlZmlsZS5hbQorKysrIExpbnV4LVBBTS0xLjMuMC94dGVzdHMvTWFrZWZpbGUuYW0KK0BAIC03LDcgKzcsNyBAQCBBTV9DRkxBR1MgPSAtRExJQlBBTV9DT01QSUxFIC1JJCh0b3Bfc3JjCisgTERBREQgPSAkKHRvcF9idWlsZGRpcikvbGlicGFtL2xpYnBhbS5sYSBcCisgCSQodG9wX2J1aWxkZGlyKS9saWJwYW1fbWlzYy9saWJwYW1fbWlzYy5sYQogIAogLUNMRUFORklMRVMgPSAqfiAkKFhURVNUUykKICtDTEVBTkZJTEVTID0gKn4KICAKICBFWFRSQV9ESVNUID0gcnVuLXh0ZXN0cy5zaCB0c3QtcGFtX2Rpc3BhdGNoMS5wYW1kIHRzdC1wYW1fZGlzcGF0Y2gyLnBhbWQgXAogIAl0c3QtcGFtX2Rpc3BhdGNoMy5wYW1kIHRzdC1wYW1fZGlzcGF0Y2g0LnBhbWQgXAotQEAgLTUxLDMgKzUxLDE4IEBACitAQCAtNTEsMyArNTEsMTggQEAgRVhUUkFfUFJPR1JBTVMgPSAkKFhURVNUUykKICAKICB4dGVzdHM6ICQoWFRFU1RTKSBydW4teHRlc3RzLnNoCiAgCSIkKHNyY2RpcikiL3J1bi14dGVzdHMuc2ggIiQoc3JjZGlyKSIgJHtYVEVTVFN9ICR7Tk9TUkNURVNUU30KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcGFtL2xpYnBhbS9wYW0tc2VjdXJpdHktYWJzdHJhY3Qtc2VjdXJldHR5LWhhbmRsaW5nLnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9wYW0vbGlicGFtL3BhbS1zZWN1cml0eS1hYnN0cmFjdC1zZWN1cmV0dHktaGFuZGxpbmcucGF0Y2gKaW5kZXggZjE4MzRmNi4uOWI4ZDRjMiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9wYW0vbGlicGFtL3BhbS1zZWN1cml0eS1hYnN0cmFjdC1zZWN1cmV0dHktaGFuZGxpbmcucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9wYW0vbGlicGFtL3BhbS1zZWN1cml0eS1hYnN0cmFjdC1zZWN1cmV0dHktaGFuZGxpbmcucGF0Y2gKQEAgLTUsMTIgKzUsMTMgQEAKIAogU2lnbmVkLW9mZi1ieTogTWluZyBMaXUgPG1pbmcubGl1QHdpbmRyaXZlci5jb20+CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci1kaWZmIC11cnBOIGEvbW9kdWxlcy9wYW1fc2VjdXJldHR5L01ha2VmaWxlLmFtIGIvbW9kdWxlcy9wYW1fc2VjdXJldHR5L01ha2VmaWxlLmFtCi0tLS0gYS9tb2R1bGVzL3BhbV9zZWN1cmV0dHkvTWFrZWZpbGUuYW0JMjAxMy0wNy0wNSAxMTowODoyMy4yMjQ0ODMyMzcgKzA4MDAKLSsrKyBiL21vZHVsZXMvcGFtX3NlY3VyZXR0eS9NYWtlZmlsZS5hbQkyMDEzLTA3LTA1IDExOjE1OjIxLjMwNDQ4NjQ1NiArMDgwMAorSW5kZXg6IExpbnV4LVBBTS0xLjMuMC9tb2R1bGVzL3BhbV9zZWN1cmV0dHkvTWFrZWZpbGUuYW0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBMaW51eC1QQU0tMS4zLjAub3JpZy9tb2R1bGVzL3BhbV9zZWN1cmV0dHkvTWFrZWZpbGUuYW0KKysrKyBMaW51eC1QQU0tMS4zLjAvbW9kdWxlcy9wYW1fc2VjdXJldHR5L01ha2VmaWxlLmFtCiBAQCAtMjQsNiArMjQsMTAgQEAgZW5kaWYKICBzZWN1cmVsaWJfTFRMSUJSQVJJRVMgPSBwYW1fc2VjdXJldHR5LmxhCi0gcGFtX3NlY3VyZXR0eV9sYV9MSUJBREQgPSAtTCQodG9wX2J1aWxkZGlyKS9saWJwYW0gLWxwYW0KKyBwYW1fc2VjdXJldHR5X2xhX0xJQkFERCA9ICQodG9wX2J1aWxkZGlyKS9saWJwYW0vbGlicGFtLmxhCiAgCiArcGFtX3NlY3VyZXR0eV9sYV9TT1VSQ0VTID0JXAogKwlwYW1fc2VjdXJldHR5LmMJCVwKQEAgLTE5LDkgKzIwLDEwIEBACiAgaWYgRU5BQkxFX1JFR0VORVJBVEVfTUFOCiAgbm9pbnN0X0RBVEEgPSBSRUFETUUKICBSRUFETUU6IHBhbV9zZWN1cmV0dHkuOC54bWwKLWRpZmYgLXVycE4gYS9tb2R1bGVzL3BhbV9zZWN1cmV0dHkvcGFtX3NlY3VyZXR0eS5jIGIvbW9kdWxlcy9wYW1fc2VjdXJldHR5L3BhbV9zZWN1cmV0dHkuYwotLS0tIGEvbW9kdWxlcy9wYW1fc2VjdXJldHR5L3BhbV9zZWN1cmV0dHkuYwkyMDEzLTA3LTA1IDExOjA3OjUwLjA2NDQ4MzU2OCArMDgwMAotKysrIGIvbW9kdWxlcy9wYW1fc2VjdXJldHR5L3BhbV9zZWN1cmV0dHkuYwkyMDEzLTA3LTA1IDExOjEyOjIzLjk5NDQ4MzM0NCArMDgwMAorSW5kZXg6IExpbnV4LVBBTS0xLjMuMC9tb2R1bGVzL3BhbV9zZWN1cmV0dHkvcGFtX3NlY3VyZXR0eS5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gTGludXgtUEFNLTEuMy4wLm9yaWcvbW9kdWxlcy9wYW1fc2VjdXJldHR5L3BhbV9zZWN1cmV0dHkuYworKysrIExpbnV4LVBBTS0xLjMuMC9tb2R1bGVzL3BhbV9zZWN1cmV0dHkvcGFtX3NlY3VyZXR0eS5jCiBAQCAtMSw3ICsxLDUgQEAKICAvKiBwYW1fc2VjdXJldHR5IG1vZHVsZSAqLwogIApAQCAtMTA0LDkgKzEwNiwxMCBAQAogIAogICAgICBpZiAocmV0dmFsICYmICEoY3RybCAmIFBBTV9OT0NPTlNPTEVfQVJHKSkgewogICAgICAgICAgRklMRSAqY21kbGluZWZpbGU7Ci1kaWZmIC11cnBOIGEvbW9kdWxlcy9wYW1fc2VjdXJldHR5L3R0eV9zZWN1cmUuYyBiL21vZHVsZXMvcGFtX3NlY3VyZXR0eS90dHlfc2VjdXJlLmMKLS0tLSBhL21vZHVsZXMvcGFtX3NlY3VyZXR0eS90dHlfc2VjdXJlLmMJMTk3MC0wMS0wMSAwODozMDowMC4wMDAwMDAwMDAgKzA4MzAKLSsrKyBiL21vZHVsZXMvcGFtX3NlY3VyZXR0eS90dHlfc2VjdXJlLmMJMjAxMy0wNy0wNSAxMToxNDoyMS41MzQ0ODI5MDAgKzA4MDAKK0luZGV4OiBMaW51eC1QQU0tMS4zLjAvbW9kdWxlcy9wYW1fc2VjdXJldHR5L3R0eV9zZWN1cmUuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAorKysrIExpbnV4LVBBTS0xLjMuMC9tb2R1bGVzL3BhbV9zZWN1cmV0dHkvdHR5X3NlY3VyZS5jCiBAQCAtMCwwICsxLDkwIEBACiArLyoKICsgKiBBIGZ1bmN0aW9uIHRvIGRldGVybWluZSBpZiBhIHBhcnRpY3VsYXIgbGluZSBpcyBpbiAvZXRjL3NlY3VyZXR0eQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9wYW0vbGlicGFtXzEuMy4wLmJiIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9wYW0vbGlicGFtXzEuMy4wLmJiCmluZGV4IDhmNzc1M2QuLjkyYWI3MmEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcGFtL2xpYnBhbV8xLjMuMC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BhbS9saWJwYW1fMS4zLjAuYmIKQEAgLTE1MSwxMSArMTUxLDggQEAKIAlmaQogfQogCi1weXRob24gZG9fcGFtX3Nhbml0eSAoKSB7Ci0gICAgaWYgbm90IGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAncGFtJywgVHJ1ZSwgRmFsc2UsIGQpOgotICAgICAgICBiYi53YXJuKCJCdWlsZGluZyBsaWJwYW0gYnV0ICdwYW0nIGlzbid0IGluIERJU1RST19GRUFUVVJFUywgUEFNIHdvbid0IHdvcmsgY29ycmVjdGx5IikKLX0KLWFkZHRhc2sgcGFtX3Nhbml0eSBiZWZvcmUgZG9fY29uZmlndXJlCitpbmhlcml0IGRpc3Ryb19mZWF0dXJlc19jaGVjaworUkVRVUlSRURfRElTVFJPX0ZFQVRVUkVTID0gInBhbSIKIAogQkJDTEFTU0VYVEVORCA9ICJuYXRpdmVzZGsgbmF0aXZlIgogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BhcnRlZC9maWxlcy9ub19jaGVjay5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcGFydGVkL2ZpbGVzL25vX2NoZWNrLnBhdGNoCmluZGV4IDU4ZDhkYjQuLmU2YTI2ZDEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcGFydGVkL2ZpbGVzL25vX2NoZWNrLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcGFydGVkL2ZpbGVzL25vX2NoZWNrLnBhdGNoCkBAIC01LDEyICs1LDEyIEBACiAKIFJQIC0gNC8xMS8wOAogCi1JbmRleDogcGFydGVkLTEuOS4wL2NvbmZpZ3VyZS5hYworSW5kZXg6IHBhcnRlZC0zLjIvY29uZmlndXJlLmFjCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gcGFydGVkLTEuOS4wLm9yaWcvY29uZmlndXJlLmFjCTIwMDktMDctMjMgMTg6NTI6MDguMDAwMDAwMDAwICswMTAwCi0rKysgcGFydGVkLTEuOS4wL2NvbmZpZ3VyZS5hYwkyMDEwLTAyLTAyIDE0OjEzOjU2LjAxMzkwNTA5MyArMDAwMAotQEAgLTQ3Nyw3ICs0NzcsNyBAQAotIEFNX0NPTkRJVElPTkFMKFtCVUlMRF9MSU5VWF0sIFt0ZXN0ICIkT1MiID0gbGludXhdKQorLS0tIHBhcnRlZC0zLjIub3JpZy9jb25maWd1cmUuYWMKKysrKyBwYXJ0ZWQtMy4yL2NvbmZpZ3VyZS5hYworQEAgLTU1NSw3ICs1NTUsNyBAQCBBQ19DSEVDS19IRUFERVIoW2V4ZWNpbmZvLmhdLCBbCisgQU1fQ09ORElUSU9OQUwoW0NPTVBJTEVfRk9SX1MzOTBdLCBbdGVzdCAiJGhvc3RfY3B1IiA9IHMzOTAgfHwgdGVzdCAiJGhvc3RfY3B1IiA9IHMzOTB4XSkKICAKICBkbmwgY2hlY2sgZm9yICJjaGVjayIsIHVuaXQgdGVzdGluZyBsaWJyYXJ5L2hlYWRlcgogLVBLR19DSEVDS19NT0RVTEVTKFtDSEVDS10sIFtjaGVjayA+PSAwLjkuM10sIGhhdmVfY2hlY2s9eWVzLCBoYXZlX2NoZWNrPW5vKQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9wYXJ0ZWQvZmlsZXMvc3lzY2FsbHMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BhcnRlZC9maWxlcy9zeXNjYWxscy5wYXRjaAppbmRleCBlOWJiZTlhLi45MzIwNWEwIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BhcnRlZC9maWxlcy9zeXNjYWxscy5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BhcnRlZC9maWxlcy9zeXNjYWxscy5wYXRjaApAQCAtNCwxMCArNCwxMCBAQAogIGxpYnBhcnRlZC9hcmNoL2xpbnV4LmMgfCAgIDEzICsrKysrKysrKysrKysKICAxIGZpbGUgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKQogCi1JbmRleDogcGFydGVkLTEuOS4wL2xpYnBhcnRlZC9hcmNoL2xpbnV4LmMKK0luZGV4OiBwYXJ0ZWQtMy4yL2xpYnBhcnRlZC9hcmNoL2xpbnV4LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBwYXJ0ZWQtMS45LjAub3JpZy9saWJwYXJ0ZWQvYXJjaC9saW51eC5jCTIwMDktMDctMjMgMTg6NTI6MDguMDAwMDAwMDAwICswMTAwCi0rKysgcGFydGVkLTEuOS4wL2xpYnBhcnRlZC9hcmNoL2xpbnV4LmMJMjAxMC0wMi0wMiAxNDoxNDoxNi41MjM5MDQ3NjggKzAwMDAKKy0tLSBwYXJ0ZWQtMy4yLm9yaWcvbGlicGFydGVkL2FyY2gvbGludXguYworKysrIHBhcnRlZC0zLjIvbGlicGFydGVkL2FyY2gvbGludXguYwogQEAgLTE3LDYgKzE3LDggQEAKICAKICAjZGVmaW5lIFBST0NfREVWSUNFU19CVUZTSVogMTYzODQKQEAgLTE2LDggKzE2LDggQEAKICsKICAjaW5jbHVkZSA8Y29uZmlnLmg+CiAgI2luY2x1ZGUgPGFyY2gvbGludXguaD4KLSAKLUBAIC0xNDc3LDEyICsxNDc5LDE0IEBACisgI2luY2x1ZGUgPGxpbnV4L2Jsa3BnLmg+CitAQCAtMTY5NiwxMiArMTY5OCwxNCBAQCBsaW51eF9yZWZyZXNoX2Nsb3NlIChQZWREZXZpY2UqIGRldikKICAKICAjaWYgU0laRU9GX09GRl9UIDwgOAogIApAQCAtMzIsNyArMzIsNyBAQAogIAogIGxvZmZfdAogIGxsc2VlayAodW5zaWduZWQgaW50IGZkLCBsb2ZmX3Qgb2Zmc2V0LCB1bnNpZ25lZCBpbnQgd2hlbmNlKQotQEAgLTE0OTAsMTEgKzE0OTQsMjAgQEAKK0BAIC0xNzA5LDExICsxNzEzLDIwIEBAIGxsc2VlayAodW5zaWduZWQgaW50IGZkLCBsb2ZmX3Qgb2Zmc2V0LAogICAgICAgICAgbG9mZl90IHJlc3VsdDsKICAgICAgICAgIGludCByZXR2YWw7CiAgCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BheC9wYXgvMDAwMS1BZGQtYS1jb21tZW50LWZvci1mYWxsdGhyb3VnaC5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcGF4L3BheC8wMDAxLUFkZC1hLWNvbW1lbnQtZm9yLWZhbGx0aHJvdWdoLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNzZmODVhLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcGF4L3BheC8wMDAxLUFkZC1hLWNvbW1lbnQtZm9yLWZhbGx0aHJvdWdoLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotRnJvbSBlNjdiYjNkZWJlNTgyZjBlNzc3NzBiNzE0YmQwMTJiYjEwODJmYzQxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLURhdGU6IFdlZCwgMTkgQXByIDIwMTcgMTE6MzI6MDAgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSF0gQWRkIGEgY29tbWVudCBmb3IgZmFsbHRocm91Z2gKLQotRml4ZXMgd2FybmluZ3Mgd2l0aCBnY2M3IGUuZy4KLQotLi4vLi4vLi4vLi4vLi4vLi4vLi4vd29ya3NwYWNlL3NvdXJjZXMvcGF4L3NyYy9vcHRpb25zLmM6IEluIGZ1bmN0aW9uICd0YXJfb3B0aW9ucyc6Ci0uLi8uLi8uLi8uLi8uLi8uLi8uLi93b3Jrc3BhY2Uvc291cmNlcy9wYXgvc3JjL29wdGlvbnMuYzo3MjU6NzogZXJyb3I6IHRoaXMgc3RhdGVtZW50IG1heSBmYWxsIHRocm91Z2ggWy1XZXJyb3I9aW1wbGljaXQtZmFsbHRocm91Z2g9XQotICAgIGlmIChvcHRfYWRkICgid3JpdGVfb3B0PW5vZGlyIikgPCAwKQotICAgICAgIF4KLS4uLy4uLy4uLy4uLy4uLy4uLy4uL3dvcmtzcGFjZS9zb3VyY2VzL3BheC9zcmMvb3B0aW9ucy5jOjczMDoyOiBub3RlOiBoZXJlCi0gIGNhc2UgJ08nOgotICBefn5+Ci1jYzE6IGFsbCB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFzIGVycm9ycwotCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLS0tLQotIHNyYy9vcHRpb25zLmMgfCAxICsKLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKLQotZGlmZiAtLWdpdCBhL3NyYy9vcHRpb25zLmMgYi9zcmMvb3B0aW9ucy5jCi1pbmRleCBjNjYzYjRlLi5iODA4MTlhIDEwMDY0NAotLS0tIGEvc3JjL29wdGlvbnMuYwotKysrIGIvc3JjL29wdGlvbnMuYwotQEAgLTcyNCw2ICs3MjQsNyBAQCB0YXJfb3B0aW9ucyAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQotIAljYXNlICdvJzoKLSAJICBpZiAob3B0X2FkZCAoIndyaXRlX29wdD1ub2RpciIpIDwgMCkKLSAJICAgIHRhcl91c2FnZSAoKTsKLSsJICAvKiBmYWxsdGhydSAqLwotIAljYXNlICdPJzoKLSAJICBPZmxhZyA9IDE7Ci0gCSAgYnJlYWs7Ci0tLSAKLTIuMTIuMgotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BheC9wYXgvMDAwMS1GaXgtYnVpbGQtd2l0aC1tdXNsLnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9wYXgvcGF4LzAwMDEtRml4LWJ1aWxkLXdpdGgtbXVzbC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjFiZjJkZS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BheC9wYXgvMDAwMS1GaXgtYnVpbGQtd2l0aC1tdXNsLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTI4NyArMCwwIEBACi1Gcm9tIDQ3YzRkYjhkMzcyNDhkOTY4ZmFjN2VlNGE3MWNhNjQzOTg4OTA3MjMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotRGF0ZTogV2VkLCA2IEphbiAyMDE2IDExOjU3OjIxIC0wODAwCi1TdWJqZWN0OiBbUEFUQ0hdIEZpeCBidWlsZCB3aXRoIG11c2wKLQotUmVtb3ZlIEJTRGlzbXMKLVJlbW92ZSBmdHMsIGFuZCBsaW5rIHRvIGxpYmZ0cyB0aGF0cyBwcm92aWRlZCBleHRlcm5hbGx5Ci0KLVNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci0tLS0KLVVwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZVttdXNsIHNwZWNpZmljXQotCi0gbGliL01ha2VmaWxlLmFtIHwgICAgNCArLQotIGxpYi9mdHMuYyAgICAgICB8IDEwMjUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIGxpYi9mdHMuaCAgICAgICB8ICAxMzEgLS0tLS0tLQotIGxpYi92aXMuaCAgICAgICB8ICAgMTMgKy0KLSBzcmMvTWFrZWZpbGUuYW0gfCAgICAyICstCi0gc3JjL2V4dGVybi5oICAgIHwgICAgMiAtCi0gc3JjL2ZpbGVfc3Vicy5jIHwgICAgMiArLQotIHNyYy90YWJsZXMuYyAgICB8ICAgIDIgKy0KLSA4IGZpbGVzIGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDExNjcgZGVsZXRpb25zKC0pCi0gZGVsZXRlIG1vZGUgMTAwNjQ0IGxpYi9mdHMuYwotIGRlbGV0ZSBtb2RlIDEwMDY0NCBsaWIvZnRzLmgKLQotZGlmZiAtLWdpdCBhL2xpYi9NYWtlZmlsZS5hbSBiL2xpYi9NYWtlZmlsZS5hbQotaW5kZXggNTZkMDg1OS4uN2Y1MDQ1YSAxMDA2NDQKLS0tLSBhL2xpYi9NYWtlZmlsZS5hbQotKysrIGIvbGliL01ha2VmaWxlLmFtCi1AQCAtOCw4ICs4LDggQEAgQVVUT01BS0VfT1BUSU9OUyA9IDEuNyBnbml0cwotIENMRUFORklMRVMgPSAqfgotIAotIG5vaW5zdF9MSUJSQVJJRVMgPSBsaWJic2RmdW5jLmEKLS1ub2luc3RfSEVBREVSUyA9IHZpcy5oIGJzZGZ1bmMuaCBmdHMuaAotK25vaW5zdF9IRUFERVJTID0gdmlzLmggYnNkZnVuYy5oCi0gCi0gQU1fQ0ZMQUdTID0gQEVYVFJBX0NGTEFHU0AKLSAKLS1saWJic2RmdW5jX2FfU09VUkNFUyA9IHZpcy5jIHN0cmxjcHkuYyBzdHJtb2RlLmMgZnRzLmMKLStsaWJic2RmdW5jX2FfU09VUkNFUyA9IHZpcy5jIHN0cmxjcHkuYyBzdHJtb2RlLmMKLWRpZmYgLS1naXQgYS9saWIvZnRzLmMgYi9saWIvZnRzLmMKLWRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggNDVlOTBjYS4uMDAwMDAwMAotLS0tIGEvbGliL2Z0cy5jCi0rKysgL2Rldi9udWxsCi1AQCAtMSwxMDI1ICswLDAgQEAKLS0vKi0KLS0gKiBDb3B5cmlnaHQgKGMpIDE5OTAsIDE5OTMsIDE5OTQKLS0gKiAgICAgIFRoZSBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotLSAqCi0tICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0tICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0tICogYXJlIG1ldDoKLS0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLS0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotLSAqIDQuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCi0tICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCi0tICogICAgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0tICoKLS0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBSRUdFTlRTIEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAotLSAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCi0tICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgUkVHRU5UUyBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCi0tICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKLS0gKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUwotLSAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQotLSAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCi0tICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQotLSAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKLS0gKiBTVUNIIERBTUFHRS4KLS0gKi8KLS0KLS0jaWZkZWYgSEFWRV9DT05GSUdfSAotLSNpbmNsdWRlIDxjb25maWcuaD4KLS0jZW5kaWYKLS0KLS0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KLS0jaW5jbHVkZSA8ZmNudGwuaD4KLS0jaW5jbHVkZSA8ZGlyZW50Lmg+Ci0tI2luY2x1ZGUgPGVycm5vLmg+Ci0tI2luY2x1ZGUgPGZ0cy5oPgotLSNpbmNsdWRlIDxzdGRsaWIuaD4KLS0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0tI2luY2x1ZGUgPHVuaXN0ZC5oPgotLQotLS8qIExhcmdlc3QgYWxpZ25tZW50IHNpemUgbmVlZGVkLCBtaW51cyBvbmUuCi0tICAgVXN1YWxseSBsb25nIGRvdWJsZSBpcyB0aGUgd29yc3QgY2FzZS4gICovCi0tI2lmbmRlZiBBTElHTkJZVEVTCi0tI2RlZmluZSBBTElHTkJZVEVTCShfX2FsaWdub2ZfXyAobG9uZyBkb3VibGUpIC0gMSkKLS0jZW5kaWYKLS0vKiBBbGlnbiBQIHRvIHRoYXQgc2l6ZS4gICovCi0tI2lmbmRlZiBBTElHTgotLSNkZWZpbmUJQUxJR04ocCkJKCgodW5zaWduZWQgbG9uZyBpbnQpIChwKSArIEFMSUdOQllURVMpICYgfkFMSUdOQllURVMpCi0tI2VuZGlmCi0tCi0tCi0tc3RhdGljIEZUU0VOVAkqZnRzX2FsbG9jIChGVFMgKiwgY29uc3QgY2hhciAqLCBpbnQpOwotLXN0YXRpYyBGVFNFTlQJKmZ0c19idWlsZCAoRlRTICosIGludCk7Ci0tc3RhdGljIHZvaWQJIGZ0c19sZnJlZSAoRlRTRU5UICopOwotLXN0YXRpYyB2b2lkCSBmdHNfbG9hZCAoRlRTICosIEZUU0VOVCAqKTsKLS1zdGF0aWMgc2l6ZV90CSBmdHNfbWF4YXJnbGVuIChjaGFyICogY29uc3QgKik7Ci0tc3RhdGljIHZvaWQJIGZ0c19wYWRqdXN0IChGVFMgKiwgRlRTRU5UICopOwotLXN0YXRpYyBpbnQJIGZ0c19wYWxsb2MgKEZUUyAqLCBzaXplX3QpOwotLXN0YXRpYyBGVFNFTlQJKmZ0c19zb3J0IChGVFMgKiwgRlRTRU5UICosIGludCk7Ci0tc3RhdGljIHVfc2hvcnQJIGZ0c19zdGF0IChGVFMgKiwgRlRTRU5UICosIGludCk7Ci0tc3RhdGljIGludCAgICAgIGZ0c19zYWZlX2NoYW5nZWRpciAoRlRTICosIEZUU0VOVCAqLCBpbnQsIGNvbnN0IGNoYXIgKik7Ci0tCi0tI2lmbmRlZiBNQVgKLS0jZGVmaW5lIE1BWChhLCBiKQkoYSA+IGIgPyBhIDogYikKLS0jZW5kaWYKLS0KLS0jZGVmaW5lCUlTRE9UKGEpCShhWzBdID09ICcuJyAmJiAoIWFbMV0gfHwgKGFbMV0gPT0gJy4nICYmICFhWzJdKSkpCi0tCi0tI2RlZmluZSBDTFIob3B0KQkoc3AtPmZ0c19vcHRpb25zICY9IH4ob3B0KSkKLS0jZGVmaW5lCUlTU0VUKG9wdCkJKHNwLT5mdHNfb3B0aW9ucyAmIChvcHQpKQotLSNkZWZpbmUJU0VUKG9wdCkJKHNwLT5mdHNfb3B0aW9ucyB8PSAob3B0KSkKLS0KLS0jZGVmaW5lCUZDSERJUihzcCwgZmQpCSghSVNTRVQoRlRTX05PQ0hESVIpICYmIGZjaGRpcihmZCkpCi0tCi0tI2RlZmluZQlCUkVBRAkJMwkJLyogZnRzX3JlYWQgKi8KLS0KLS1GVFMgKgotLWZ0c19vcGVuKGFyZ3YsIGtvcHRpb25zLCBjb21wYXIpCi0tCWNoYXIgKiBjb25zdCAqYXJndjsKLS0JcmVnaXN0ZXIgaW50IGtvcHRpb25zOwotLQlpbnQgKCpjb21wYXIpIChjb25zdCBGVFNFTlQgKiosIGNvbnN0IEZUU0VOVCAqKik7Ci0tewotLQlyZWdpc3RlciBGVFMgKnNwOwotLQlyZWdpc3RlciBGVFNFTlQgKnAsICpyb290OwotLQlyZWdpc3RlciBpbnQgbml0ZW1zOwotLQlGVFNFTlQgKnBhcmVudCwgKnRtcDsKLS0JaW50IGxlbjsKLS0KLS10bXAgPSBOVUxMOwkvKiBzdG9wIGNvbXBpbGVyIHdoaW5naW5nICovCi0tCS8qIE9wdGlvbnMgY2hlY2suICovCi0tCWlmIChrb3B0aW9ucyAmIH5GVFNfT1BUSU9OTUFTSykgewotLQkJZXJybm8gPSBFSU5WQUw7Ci0tCQlyZXR1cm4gKE5VTEwpOwotLQl9Ci0tCi0tCS8qIEFsbG9jYXRlL2luaXRpYWxpemUgdGhlIHN0cmVhbSAqLwotLQlpZiAoKHNwID0gbWFsbG9jKCh1X2ludClzaXplb2YoRlRTKSkpID09IE5VTEwpCi0tCQlyZXR1cm4gKE5VTEwpOwotLQltZW1zZXQoc3AsIDAsIHNpemVvZihGVFMpKTsKLS0Jc3AtPmZ0c19jb21wYXIgPSAoaW50ICgqKSAoY29uc3Qgdm9pZCAqLCBjb25zdCB2b2lkICopKSBjb21wYXI7Ci0tCXNwLT5mdHNfb3B0aW9ucyA9IGtvcHRpb25zOwotLQotLQkvKiBMb2dpY2FsIHdhbGtzIHR1cm4gb24gTk9DSERJUjsgc3ltYm9saWMgbGlua3MgYXJlIHRvbyBoYXJkLiAqLwotLQlpZiAoSVNTRVQoRlRTX0xPR0lDQUwpKQotLQkJU0VUKEZUU19OT0NIRElSKTsKLS0KLS0JLyoKLS0JICogU3RhcnQgb3V0IHdpdGggMUsgb2YgcGF0aCBzcGFjZSwgYW5kIGVub3VnaCwgaW4gYW55IGNhc2UsCi0tCSAqIHRvIGhvbGQgdGhlIHVzZXIncyBwYXRocy4KLS0JICovCi0tI2lmbmRlZiBNQVhQQVRITEVOCi0tI2RlZmluZSBNQVhQQVRITEVOIDEwMjQKLS0jZW5kaWYKLS0JaWYgKGZ0c19wYWxsb2Moc3AsIE1BWChmdHNfbWF4YXJnbGVuKGFyZ3YpLCBNQVhQQVRITEVOKSkpCi0tCQlnb3RvIG1lbTE7Ci0tCi0tCS8qIEFsbG9jYXRlL2luaXRpYWxpemUgcm9vdCdzIHBhcmVudC4gKi8KLS0JaWYgKChwYXJlbnQgPSBmdHNfYWxsb2Moc3AsICIiLCAwKSkgPT0gTlVMTCkKLS0JCWdvdG8gbWVtMjsKLS0JcGFyZW50LT5mdHNfbGV2ZWwgPSBGVFNfUk9PVFBBUkVOVExFVkVMOwotLQotLQkvKiBBbGxvY2F0ZS9pbml0aWFsaXplIHJvb3QocykuICovCi0tCWZvciAocm9vdCA9IE5VTEwsIG5pdGVtcyA9IDA7ICphcmd2ICE9IE5VTEw7ICsrYXJndiwgKytuaXRlbXMpIHsKLS0JCS8qIERvbid0IGFsbG93IHplcm8tbGVuZ3RoIHBhdGhzLiAqLwotLQkJaWYgKChsZW4gPSBzdHJsZW4oKmFyZ3YpKSA9PSAwKSB7Ci0tCQkJZXJybm8gPSBFTk9FTlQ7Ci0tCQkJZ290byBtZW0zOwotLQkJfQotLQotLQkJcCA9IGZ0c19hbGxvYyhzcCwgKmFyZ3YsIGxlbik7Ci0tCQlwLT5mdHNfbGV2ZWwgPSBGVFNfUk9PVExFVkVMOwotLQkJcC0+ZnRzX3BhcmVudCA9IHBhcmVudDsKLS0JCXAtPmZ0c19hY2NwYXRoID0gcC0+ZnRzX25hbWU7Ci0tCQlwLT5mdHNfaW5mbyA9IGZ0c19zdGF0KHNwLCBwLCBJU1NFVChGVFNfQ09NRk9MTE9XKSk7Ci0tCi0tCQkvKiBDb21tYW5kLWxpbmUgIi4iIGFuZCAiLi4iIGFyZSByZWFsIGRpcmVjdG9yaWVzLiAqLwotLQkJaWYgKHAtPmZ0c19pbmZvID09IEZUU19ET1QpCi0tCQkJcC0+ZnRzX2luZm8gPSBGVFNfRDsKLS0KLS0JCS8qCi0tCQkgKiBJZiBjb21wYXJpc29uIHJvdXRpbmUgc3VwcGxpZWQsIHRyYXZlcnNlIGluIHNvcnRlZAotLQkJICogb3JkZXI7IG90aGVyd2lzZSB0cmF2ZXJzZSBpbiB0aGUgb3JkZXIgc3BlY2lmaWVkLgotLQkJICovCi0tCQlpZiAoY29tcGFyKSB7Ci0tCQkJcC0+ZnRzX2xpbmsgPSByb290OwotLQkJCXJvb3QgPSBwOwotLQkJfSBlbHNlIHsKLS0JCQlwLT5mdHNfbGluayA9IE5VTEw7Ci0tCQkJaWYgKHJvb3QgPT0gTlVMTCkKLS0JCQkJdG1wID0gcm9vdCA9IHA7Ci0tCQkJZWxzZSB7Ci0tCQkJCXRtcC0+ZnRzX2xpbmsgPSBwOwotLQkJCQl0bXAgPSBwOwotLQkJCX0KLS0JCX0KLS0JfQotLQlpZiAoY29tcGFyICYmIG5pdGVtcyA+IDEpCi0tCQlyb290ID0gZnRzX3NvcnQoc3AsIHJvb3QsIG5pdGVtcyk7Ci0tCi0tCS8qCi0tCSAqIEFsbG9jYXRlIGEgZHVtbXkgcG9pbnRlciBhbmQgbWFrZSBmdHNfcmVhZCB0aGluayB0aGF0IHdlJ3ZlIGp1c3QKLS0JICogZmluaXNoZWQgdGhlIG5vZGUgYmVmb3JlIHRoZSByb290KHMpOyBzZXQgcC0+ZnRzX2luZm8gdG8gRlRTX0lOSVQKLS0JICogc28gdGhhdCBldmVyeXRoaW5nIGFib3V0IHRoZSAiY3VycmVudCIgbm9kZSBpcyBpZ25vcmVkLgotLQkgKi8KLS0JaWYgKChzcC0+ZnRzX2N1ciA9IGZ0c19hbGxvYyhzcCwgIiIsIDApKSA9PSBOVUxMKQotLQkJZ290byBtZW0zOwotLQlzcC0+ZnRzX2N1ci0+ZnRzX2xpbmsgPSByb290OwotLQlzcC0+ZnRzX2N1ci0+ZnRzX2luZm8gPSBGVFNfSU5JVDsKLS0KLS0JLyoKLS0JICogSWYgdXNpbmcgY2hkaXIoMiksIGdyYWIgYSBmaWxlIGRlc2NyaXB0b3IgcG9pbnRpbmcgdG8gZG90IHRvIGVuc3VyZQotLQkgKiB0aGF0IHdlIGNhbiBnZXQgYmFjayBoZXJlOyB0aGlzIGNvdWxkIGJlIGF2b2lkZWQgZm9yIHNvbWUgcGF0aHMsCi0tCSAqIGJ1dCBhbG1vc3QgY2VydGFpbmx5IG5vdCB3b3J0aCB0aGUgZWZmb3J0LiAgU2xhc2hlcywgc3ltYm9saWMgbGlua3MsCi0tCSAqIGFuZCAiLi4iIGFyZSBhbGwgZmFpcmx5IG5hc3R5IHByb2JsZW1zLiAgTm90ZSwgaWYgd2UgY2FuJ3QgZ2V0IHRoZQotLQkgKiBkZXNjcmlwdG9yIHdlIHJ1biBhbnl3YXksIGp1c3QgbW9yZSBzbG93bHkuCi0tCSAqLwotLQlpZiAoIUlTU0VUKEZUU19OT0NIRElSKQotLQkgICAgJiYgKHNwLT5mdHNfcmZkID0gb3BlbigiLiIsIE9fUkRPTkxZLCAwKSkgPCAwKQotLQkJU0VUKEZUU19OT0NIRElSKTsKLS0KLS0JcmV0dXJuIChzcCk7Ci0tCi0tbWVtMzoJZnRzX2xmcmVlKHJvb3QpOwotLQlmcmVlKHBhcmVudCk7Ci0tbWVtMjoJZnJlZShzcC0+ZnRzX3BhdGgpOwotLW1lbTE6CWZyZWUoc3ApOwotLQlyZXR1cm4gKE5VTEwpOwotLX0KLS0KLS1zdGF0aWMgdm9pZAotLWZ0c19sb2FkKHNwLCBwKQotLQlGVFMgKnNwOwotLQlyZWdpc3RlciBGVFNFTlQgKnA7Ci0tewotLQlyZWdpc3RlciBpbnQgbGVuOwotLQlyZWdpc3RlciBjaGFyICpjcDsKLS0KLS0JLyoKLS0JICogTG9hZCB0aGUgc3RyZWFtIHN0cnVjdHVyZSBmb3IgdGhlIG5leHQgdHJhdmVyc2FsLiAgU2luY2Ugd2UgZG9uJ3QKLS0JICogYWN0dWFsbHkgZW50ZXIgdGhlIGRpcmVjdG9yeSB1bnRpbCBhZnRlciB0aGUgcHJlb3JkZXIgdmlzaXQsIHNldAotLQkgKiB0aGUgZnRzX2FjY3BhdGggZmllbGQgc3BlY2lhbGx5IHNvIHRoZSBjaGRpciBnZXRzIGRvbmUgdG8gdGhlIHJpZ2h0Ci0tCSAqIHBsYWNlIGFuZCB0aGUgdXNlciBjYW4gYWNjZXNzIHRoZSBmaXJzdCBub2RlLiAgRnJvbSBmdHNfb3BlbiBpdCdzCi0tCSAqIGtub3duIHRoYXQgdGhlIHBhdGggd2lsbCBmaXQuCi0tCSAqLwotLQlsZW4gPSBwLT5mdHNfcGF0aGxlbiA9IHAtPmZ0c19uYW1lbGVuOwotLQltZW1tb3ZlKHNwLT5mdHNfcGF0aCwgcC0+ZnRzX25hbWUsIGxlbiArIDEpOwotLQlpZiAoKGNwID0gc3RycmNocihwLT5mdHNfbmFtZSwgJy8nKSkgJiYgKGNwICE9IHAtPmZ0c19uYW1lIHx8IGNwWzFdKSkgewotLQkJbGVuID0gc3RybGVuKCsrY3ApOwotLQkJbWVtbW92ZShwLT5mdHNfbmFtZSwgY3AsIGxlbiArIDEpOwotLQkJcC0+ZnRzX25hbWVsZW4gPSBsZW47Ci0tCX0KLS0JcC0+ZnRzX2FjY3BhdGggPSBwLT5mdHNfcGF0aCA9IHNwLT5mdHNfcGF0aDsKLS0Jc3AtPmZ0c19kZXYgPSBwLT5mdHNfZGV2OwotLX0KLS0KLS1pbnQKLS1mdHNfY2xvc2Uoc3ApCi0tCUZUUyAqc3A7Ci0tewotLQlyZWdpc3RlciBGVFNFTlQgKmZyZWVwLCAqcDsKLS0JaW50IHNhdmVkX2Vycm5vOwotLQotLQkvKgotLQkgKiBUaGlzIHN0aWxsIHdvcmtzIGlmIHdlIGhhdmVuJ3QgcmVhZCBhbnl0aGluZyAtLSB0aGUgZHVtbXkgc3RydWN0dXJlCi0tCSAqIHBvaW50cyB0byB0aGUgcm9vdCBsaXN0LCBzbyB3ZSBzdGVwIHRocm91Z2ggdG8gdGhlIGVuZCBvZiB0aGUgcm9vdAotLQkgKiBsaXN0IHdoaWNoIGhhcyBhIHZhbGlkIHBhcmVudCBwb2ludGVyLgotLQkgKi8KLS0JaWYgKHNwLT5mdHNfY3VyKSB7Ci0tCQlmb3IgKHAgPSBzcC0+ZnRzX2N1cjsgcC0+ZnRzX2xldmVsID49IEZUU19ST09UTEVWRUw7KSB7Ci0tCQkJZnJlZXAgPSBwOwotLQkJCXAgPSBwLT5mdHNfbGluayAhPSBOVUxMID8gcC0+ZnRzX2xpbmsgOiBwLT5mdHNfcGFyZW50OwotLQkJCWZyZWUoZnJlZXApOwotLQkJfQotLQkJZnJlZShwKTsKLS0JfQotLQotLQkvKiBGcmVlIHVwIGNoaWxkIGxpbmtlZCBsaXN0LCBzb3J0IGFycmF5LCBwYXRoIGJ1ZmZlci4gKi8KLS0JaWYgKHNwLT5mdHNfY2hpbGQpCi0tCQlmdHNfbGZyZWUoc3AtPmZ0c19jaGlsZCk7Ci0tCWlmIChzcC0+ZnRzX2FycmF5KQotLQkJZnJlZShzcC0+ZnRzX2FycmF5KTsKLS0JZnJlZShzcC0+ZnRzX3BhdGgpOwotLQotLQkvKiBSZXR1cm4gdG8gb3JpZ2luYWwgZGlyZWN0b3J5LCBzYXZlIGVycm5vIGlmIG5lY2Vzc2FyeS4gKi8KLS0JaWYgKCFJU1NFVChGVFNfTk9DSERJUikpIHsKLS0JCXNhdmVkX2Vycm5vID0gZmNoZGlyKHNwLT5mdHNfcmZkKSA/IGVycm5vIDogMDsKLS0JCSh2b2lkKWNsb3NlKHNwLT5mdHNfcmZkKTsKLS0KLS0JCS8qIFNldCBlcnJubyBhbmQgcmV0dXJuLiAqLwotLQkJaWYgKHNhdmVkX2Vycm5vICE9IDApIHsKLS0JCQkvKiBGcmVlIHVwIHRoZSBzdHJlYW0gcG9pbnRlci4gKi8KLS0JCQlmcmVlKHNwKTsKLS0JCQllcnJubyA9IHNhdmVkX2Vycm5vOwotLQkJCXJldHVybiAoLTEpOwotLQkJfQotLQl9Ci0tCi0tCS8qIEZyZWUgdXAgdGhlIHN0cmVhbSBwb2ludGVyLiAqLwotLQlmcmVlKHNwKTsKLS0JcmV0dXJuICgwKTsKLS19Ci0tCi0tLyoKLS0gKiBTcGVjaWFsIGNhc2Ugb2YgIi8iIGF0IHRoZSBlbmQgb2YgdGhlIHBhdGggc28gdGhhdCBzbGFzaGVzIGFyZW4ndAotLSAqIGFwcGVuZGVkIHdoaWNoIHdvdWxkIGNhdXNlIHBhdGhzIHRvIGJlIHdyaXR0ZW4gYXMgIi4uLi4vL2ZvbyIuCi0tICovCi0tI2RlZmluZQlOQVBQRU5EKHApCQkJCQkJCVwKLS0JKHAtPmZ0c19wYXRoW3AtPmZ0c19wYXRobGVuIC0gMV0gPT0gJy8nCQkJCVwKLS0JICAgID8gcC0+ZnRzX3BhdGhsZW4gLSAxIDogcC0+ZnRzX3BhdGhsZW4pCi0tCi0tRlRTRU5UICoKLS1mdHNfcmVhZChzcCkKLS0JcmVnaXN0ZXIgRlRTICpzcDsKLS17Ci0tCXJlZ2lzdGVyIEZUU0VOVCAqcCwgKnRtcDsKLS0JcmVnaXN0ZXIgaW50IGluc3RyOwotLQlyZWdpc3RlciBjaGFyICp0OwotLQlpbnQgc2F2ZWRfZXJybm87Ci0tCi0tCS8qIElmIGZpbmlzaGVkIG9yIHVucmVjb3ZlcmFibGUgZXJyb3IsIHJldHVybiBOVUxMLiAqLwotLQlpZiAoc3AtPmZ0c19jdXIgPT0gTlVMTCB8fCBJU1NFVChGVFNfU1RPUCkpCi0tCQlyZXR1cm4gKE5VTEwpOwotLQotLQkvKiBTZXQgY3VycmVudCBub2RlIHBvaW50ZXIuICovCi0tCXAgPSBzcC0+ZnRzX2N1cjsKLS0KLS0JLyogU2F2ZSBhbmQgemVybyBvdXQgdXNlciBpbnN0cnVjdGlvbnMuICovCi0tCWluc3RyID0gcC0+ZnRzX2luc3RyOwotLQlwLT5mdHNfaW5zdHIgPSBGVFNfTk9JTlNUUjsKLS0KLS0JLyogQW55IHR5cGUgb2YgZmlsZSBtYXkgYmUgcmUtdmlzaXRlZDsgcmUtc3RhdCBhbmQgcmUtdHVybi4gKi8KLS0JaWYgKGluc3RyID09IEZUU19BR0FJTikgewotLQkJcC0+ZnRzX2luZm8gPSBmdHNfc3RhdChzcCwgcCwgMCk7Ci0tCQlyZXR1cm4gKHApOwotLQl9Ci0tCi0tCS8qCi0tCSAqIEZvbGxvd2luZyBhIHN5bWxpbmsgLS0gU0xOT05FIHRlc3QgYWxsb3dzIGFwcGxpY2F0aW9uIHRvIHNlZQotLQkgKiBTTE5PTkUgYW5kIHJlY292ZXIuICBJZiBpbmRpcmVjdGluZyB0aHJvdWdoIGEgc3ltbGluaywgaGF2ZQotLQkgKiBrZWVwIGEgcG9pbnRlciB0byBjdXJyZW50IGxvY2F0aW9uLiAgSWYgdW5hYmxlIHRvIGdldCB0aGF0Ci0tCSAqIHBvaW50ZXIsIGZvbGxvdyBmYWlscy4KLS0JICovCi0tCWlmIChpbnN0ciA9PSBGVFNfRk9MTE9XICYmCi0tCSAgICAocC0+ZnRzX2luZm8gPT0gRlRTX1NMIHx8IHAtPmZ0c19pbmZvID09IEZUU19TTE5PTkUpKSB7Ci0tCQlwLT5mdHNfaW5mbyA9IGZ0c19zdGF0KHNwLCBwLCAxKTsKLS0JCWlmIChwLT5mdHNfaW5mbyA9PSBGVFNfRCAmJiAhSVNTRVQoRlRTX05PQ0hESVIpKSB7Ci0tCQkJaWYgKChwLT5mdHNfc3ltZmQgPSBvcGVuKCIuIiwgT19SRE9OTFksIDApKSA8IDApIHsKLS0JCQkJcC0+ZnRzX2Vycm5vID0gZXJybm87Ci0tCQkJCXAtPmZ0c19pbmZvID0gRlRTX0VSUjsKLS0JCQl9IGVsc2UKLS0JCQkJcC0+ZnRzX2ZsYWdzIHw9IEZUU19TWU1GT0xMT1c7Ci0tCQl9Ci0tCQlyZXR1cm4gKHApOwotLQl9Ci0tCi0tCS8qIERpcmVjdG9yeSBpbiBwcmUtb3JkZXIuICovCi0tCWlmIChwLT5mdHNfaW5mbyA9PSBGVFNfRCkgewotLQkJLyogSWYgc2tpcHBlZCBvciBjcm9zc2VkIG1vdW50IHBvaW50LCBkbyBwb3N0LW9yZGVyIHZpc2l0LiAqLwotLQkJaWYgKGluc3RyID09IEZUU19TS0lQIHx8Ci0tCQkgICAgKElTU0VUKEZUU19YREVWKSAmJiBwLT5mdHNfZGV2ICE9IHNwLT5mdHNfZGV2KSkgewotLQkJCWlmIChwLT5mdHNfZmxhZ3MgJiBGVFNfU1lNRk9MTE9XKQotLQkJCQkodm9pZCljbG9zZShwLT5mdHNfc3ltZmQpOwotLQkJCWlmIChzcC0+ZnRzX2NoaWxkKSB7Ci0tCQkJCWZ0c19sZnJlZShzcC0+ZnRzX2NoaWxkKTsKLS0JCQkJc3AtPmZ0c19jaGlsZCA9IE5VTEw7Ci0tCQkJfQotLQkJCXAtPmZ0c19pbmZvID0gRlRTX0RQOwotLQkJCXJldHVybiAocCk7Ci0tCQl9Ci0tCi0tCQkvKiBSZWJ1aWxkIGlmIG9ubHkgcmVhZCB0aGUgbmFtZXMgYW5kIG5vdyB0cmF2ZXJzaW5nLiAqLwotLQkJaWYgKHNwLT5mdHNfY2hpbGQgIT0gTlVMTCAmJiBJU1NFVChGVFNfTkFNRU9OTFkpKSB7Ci0tCQkJQ0xSKEZUU19OQU1FT05MWSk7Ci0tCQkJZnRzX2xmcmVlKHNwLT5mdHNfY2hpbGQpOwotLQkJCXNwLT5mdHNfY2hpbGQgPSBOVUxMOwotLQkJfQotLQotLQkJLyoKLS0JCSAqIENkIHRvIHRoZSBzdWJkaXJlY3RvcnkuCi0tCQkgKgotLQkJICogSWYgaGF2ZSBhbHJlYWR5IHJlYWQgYW5kIG5vdyBmYWlsIHRvIGNoZGlyLCB3aGFjayB0aGUgbGlzdAotLQkJICogdG8gbWFrZSB0aGUgbmFtZXMgY29tZSBvdXQgcmlnaHQsIGFuZCBzZXQgdGhlIHBhcmVudCBlcnJubwotLQkJICogc28gdGhlIGFwcGxpY2F0aW9uIHdpbGwgZXZlbnR1YWxseSBnZXQgYW4gZXJyb3IgY29uZGl0aW9uLgotLQkJICogU2V0IHRoZSBGVFNfRE9OVENIRElSIGZsYWcgc28gdGhhdCB3aGVuIHdlIGxvZ2ljYWxseSBjaGFuZ2UKLS0JCSAqIGRpcmVjdG9yaWVzIGJhY2sgdG8gdGhlIHBhcmVudCB3ZSBkb24ndCBkbyBhIGNoZGlyLgotLQkJICoKLS0JCSAqIElmIGhhdmVuJ3QgcmVhZCBkbyBzby4gIElmIHRoZSByZWFkIGZhaWxzLCBmdHNfYnVpbGQgc2V0cwotLQkJICogRlRTX1NUT1Agb3IgdGhlIGZ0c19pbmZvIGZpZWxkIG9mIHRoZSBub2RlLgotLQkJICovCi0tCQlpZiAoc3AtPmZ0c19jaGlsZCAhPSBOVUxMKSB7Ci0tCQkJaWYgKGZ0c19zYWZlX2NoYW5nZWRpcihzcCwgcCwgLTEsIHAtPmZ0c19hY2NwYXRoKSkgewotLQkJCQlwLT5mdHNfZXJybm8gPSBlcnJubzsKLS0JCQkJcC0+ZnRzX2ZsYWdzIHw9IEZUU19ET05UQ0hESVI7Ci0tCQkJCWZvciAocCA9IHNwLT5mdHNfY2hpbGQ7IHAgIT0gTlVMTDsKLS0JCQkJICAgICBwID0gcC0+ZnRzX2xpbmspCi0tCQkJCQlwLT5mdHNfYWNjcGF0aCA9Ci0tCQkJCQkgICAgcC0+ZnRzX3BhcmVudC0+ZnRzX2FjY3BhdGg7Ci0tCQkJfQotLQkJfSBlbHNlIGlmICgoc3AtPmZ0c19jaGlsZCA9IGZ0c19idWlsZChzcCwgQlJFQUQpKSA9PSBOVUxMKSB7Ci0tCQkJaWYgKElTU0VUKEZUU19TVE9QKSkKLS0JCQkJcmV0dXJuIChOVUxMKTsKLS0JCQlyZXR1cm4gKHApOwotLQkJfQotLQkJcCA9IHNwLT5mdHNfY2hpbGQ7Ci0tCQlzcC0+ZnRzX2NoaWxkID0gTlVMTDsKLS0JCWdvdG8gbmFtZTsKLS0JfQotLQotLQkvKiBNb3ZlIHRvIHRoZSBuZXh0IG5vZGUgb24gdGhpcyBsZXZlbC4gKi8KLS1uZXh0Ogl0bXAgPSBwOwotLQlpZiAoKHAgPSBwLT5mdHNfbGluaykgIT0gTlVMTCkgewotLQkJZnJlZSh0bXApOwotLQotLQkJLyoKLS0JCSAqIElmIHJlYWNoZWQgdGhlIHRvcCwgcmV0dXJuIHRvIHRoZSBvcmlnaW5hbCBkaXJlY3RvcnkgKG9yCi0tCQkgKiB0aGUgcm9vdCBvZiB0aGUgdHJlZSksIGFuZCBsb2FkIHRoZSBwYXRocyBmb3IgdGhlIG5leHQgcm9vdC4KLS0JCSAqLwotLQkJaWYgKHAtPmZ0c19sZXZlbCA9PSBGVFNfUk9PVExFVkVMKSB7Ci0tCQkJaWYgKEZDSERJUihzcCwgc3AtPmZ0c19yZmQpKSB7Ci0tCQkJCVNFVChGVFNfU1RPUCk7Ci0tCQkJCXJldHVybiAoTlVMTCk7Ci0tCQkJfQotLQkJCWZ0c19sb2FkKHNwLCBwKTsKLS0JCQlyZXR1cm4gKHNwLT5mdHNfY3VyID0gcCk7Ci0tCQl9Ci0tCi0tCQkvKgotLQkJICogVXNlciBtYXkgaGF2ZSBjYWxsZWQgZnRzX3NldCBvbiB0aGUgbm9kZS4gIElmIHNraXBwZWQsCi0tCQkgKiBpZ25vcmUuICBJZiBmb2xsb3dlZCwgZ2V0IGEgZmlsZSBkZXNjcmlwdG9yIHNvIHdlIGNhbgotLQkJICogZ2V0IGJhY2sgaWYgbmVjZXNzYXJ5LgotLQkJICovCi0tCQlpZiAocC0+ZnRzX2luc3RyID09IEZUU19TS0lQKQotLQkJCWdvdG8gbmV4dDsKLS0JCWlmIChwLT5mdHNfaW5zdHIgPT0gRlRTX0ZPTExPVykgewotLQkJCXAtPmZ0c19pbmZvID0gZnRzX3N0YXQoc3AsIHAsIDEpOwotLQkJCWlmIChwLT5mdHNfaW5mbyA9PSBGVFNfRCAmJiAhSVNTRVQoRlRTX05PQ0hESVIpKSB7Ci0tCQkJCWlmICgocC0+ZnRzX3N5bWZkID0KLS0JCQkJICAgIG9wZW4oIi4iLCBPX1JET05MWSwgMCkpIDwgMCkgewotLQkJCQkJcC0+ZnRzX2Vycm5vID0gZXJybm87Ci0tCQkJCQlwLT5mdHNfaW5mbyA9IEZUU19FUlI7Ci0tCQkJCX0gZWxzZQotLQkJCQkJcC0+ZnRzX2ZsYWdzIHw9IEZUU19TWU1GT0xMT1c7Ci0tCQkJfQotLQkJCXAtPmZ0c19pbnN0ciA9IEZUU19OT0lOU1RSOwotLQkJfQotLQotLW5hbWU6CQl0ID0gc3AtPmZ0c19wYXRoICsgTkFQUEVORChwLT5mdHNfcGFyZW50KTsKLS0JCSp0KysgPSAnLyc7Ci0tCQltZW1tb3ZlKHQsIHAtPmZ0c19uYW1lLCBwLT5mdHNfbmFtZWxlbiArIDEpOwotLQkJcmV0dXJuIChzcC0+ZnRzX2N1ciA9IHApOwotLQl9Ci0tCi0tCS8qIE1vdmUgdXAgdG8gdGhlIHBhcmVudCBub2RlLiAqLwotLQlwID0gdG1wLT5mdHNfcGFyZW50OwotLQlmcmVlKHRtcCk7Ci0tCi0tCWlmIChwLT5mdHNfbGV2ZWwgPT0gRlRTX1JPT1RQQVJFTlRMRVZFTCkgewotLQkJLyoKLS0JCSAqIERvbmU7IGZyZWUgZXZlcnl0aGluZyB1cCBhbmQgc2V0IGVycm5vIHRvIDAgc28gdGhlIHVzZXIKLS0JCSAqIGNhbiBkaXN0aW5ndWlzaCBiZXR3ZWVuIGVycm9yIGFuZCBFT0YuCi0tCQkgKi8KLS0JCWZyZWUocCk7Ci0tCQllcnJubyA9IDA7Ci0tCQlyZXR1cm4gKHNwLT5mdHNfY3VyID0gTlVMTCk7Ci0tCX0KLS0KLS0JLyogTlVMIHRlcm1pbmF0ZSB0aGUgcGF0aG5hbWUuICovCi0tCXNwLT5mdHNfcGF0aFtwLT5mdHNfcGF0aGxlbl0gPSAnXDAnOwotLQotLQkvKgotLQkgKiBSZXR1cm4gdG8gdGhlIHBhcmVudCBkaXJlY3RvcnkuICBJZiBhdCBhIHJvb3Qgbm9kZSBvciBjYW1lIHRocm91Z2gKLS0JICogYSBzeW1saW5rLCBnbyBiYWNrIHRocm91Z2ggdGhlIGZpbGUgZGVzY3JpcHRvci4gIE90aGVyd2lzZSwgY2QgdXAKLS0JICogb25lIGRpcmVjdG9yeS4KLS0JICovCi0tCWlmIChwLT5mdHNfbGV2ZWwgPT0gRlRTX1JPT1RMRVZFTCkgewotLQkJaWYgKEZDSERJUihzcCwgc3AtPmZ0c19yZmQpKSB7Ci0tCQkJU0VUKEZUU19TVE9QKTsKLS0JCQlyZXR1cm4gKE5VTEwpOwotLQkJfQotLQl9IGVsc2UgaWYgKHAtPmZ0c19mbGFncyAmIEZUU19TWU1GT0xMT1cpIHsKLS0JCWlmIChGQ0hESVIoc3AsIHAtPmZ0c19zeW1mZCkpIHsKLS0JCQlzYXZlZF9lcnJubyA9IGVycm5vOwotLQkJCSh2b2lkKWNsb3NlKHAtPmZ0c19zeW1mZCk7Ci0tCQkJZXJybm8gPSBzYXZlZF9lcnJubzsKLS0JCQlTRVQoRlRTX1NUT1ApOwotLQkJCXJldHVybiAoTlVMTCk7Ci0tCQl9Ci0tCQkodm9pZCljbG9zZShwLT5mdHNfc3ltZmQpOwotLQl9IGVsc2UgaWYgKCEocC0+ZnRzX2ZsYWdzICYgRlRTX0RPTlRDSERJUikgJiYKLS0JCSAgIGZ0c19zYWZlX2NoYW5nZWRpcihzcCwgcC0+ZnRzX3BhcmVudCwgLTEsICIuLiIpKSB7Ci0tCQlTRVQoRlRTX1NUT1ApOwotLQkJcmV0dXJuIChOVUxMKTsKLS0JfQotLQlwLT5mdHNfaW5mbyA9IHAtPmZ0c19lcnJubyA/IEZUU19FUlIgOiBGVFNfRFA7Ci0tCXJldHVybiAoc3AtPmZ0c19jdXIgPSBwKTsKLS19Ci0tCi0tLyoKLS0gKiBGdHNfc2V0IHRha2VzIHRoZSBzdHJlYW0gYXMgYW4gYXJndW1lbnQgYWx0aG91Z2ggaXQncyBub3QgdXNlZCBpbiB0aGlzCi0tICogaW1wbGVtZW50YXRpb247IGl0IHdvdWxkIGJlIG5lY2Vzc2FyeSBpZiBhbnlvbmUgd2FudGVkIHRvIGFkZCBnbG9iYWwKLS0gKiBzZW1hbnRpY3MgdG8gZnRzIHVzaW5nIGZ0c19zZXQuICBBbiBlcnJvciByZXR1cm4gaXMgYWxsb3dlZCBmb3Igc2ltaWxhcgotLSAqIHJlYXNvbnMuCi0tICovCi0tLyogQVJHU1VTRUQgKi8KLS1pbnQKLS1mdHNfc2V0KHNwLCBwLCBpbnN0cikKLS0JRlRTIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKSAqc3A7Ci0tCUZUU0VOVCAqcDsKLS0JaW50IGluc3RyOwotLXsKLS1zcCA9IE5VTEw7CS8qIHN0b3AgY29tcGlsZXIgd2hpbmdpbmcgKi8KLS0JaWYgKGluc3RyICE9IDAgJiYgaW5zdHIgIT0gRlRTX0FHQUlOICYmIGluc3RyICE9IEZUU19GT0xMT1cgJiYKLS0JICAgIGluc3RyICE9IEZUU19OT0lOU1RSICYmIGluc3RyICE9IEZUU19TS0lQKSB7Ci0tCQllcnJubyA9IEVJTlZBTDsKLS0JCXJldHVybiAoMSk7Ci0tCX0KLS0JcC0+ZnRzX2luc3RyID0gaW5zdHI7Ci0tCXJldHVybiAoMCk7Ci0tfQotLQotLS8qCi0tICogVGhpcyBpcyB0aGUgdHJpY2t5IHBhcnQgLS0gZG8gbm90IGNhc3VhbGx5IGNoYW5nZSAqYW55dGhpbmcqIGluIGhlcmUuICBUaGUKLS0gKiBpZGVhIGlzIHRvIGJ1aWxkIHRoZSBsaW5rZWQgbGlzdCBvZiBlbnRyaWVzIHRoYXQgYXJlIHVzZWQgYnkgZnRzX2NoaWxkcmVuCi0tICogYW5kIGZ0c19yZWFkLiAgVGhlcmUgYXJlIGxvdHMgb2Ygc3BlY2lhbCBjYXNlcy4KLS0gKgotLSAqIFRoZSByZWFsIHNsb3dkb3duIGluIHdhbGtpbmcgdGhlIHRyZWUgaXMgdGhlIHN0YXQgY2FsbHMuICBJZiBGVFNfTk9TVEFUIGlzCi0tICogc2V0IGFuZCBpdCdzIGEgcGh5c2ljYWwgd2FsayAoc28gdGhhdCBzeW1ib2xpYyBsaW5rcyBjYW4ndCBiZSBkaXJlY3RvcmllcyksCi0tICogd2UgY2FuIGRvIHRoaW5ncyBxdWlja2x5LiAgRmlyc3QsIGlmIGl0J3MgYSA0LjRCU0QgZmlsZSBzeXN0ZW0sIHRoZSB0eXBlCi0tICogb2YgdGhlIGZpbGUgaXMgaW4gdGhlIGRpcmVjdG9yeSBlbnRyeS4gIE90aGVyd2lzZSwgd2UgYXNzdW1lIHRoYXQgdGhlIG51bWJlcgotLSAqIG9mIHN1YmRpcmVjdG9yaWVzIGluIGEgbm9kZSBpcyBlcXVhbCB0byB0aGUgbnVtYmVyIG9mIGxpbmtzIHRvIHRoZSBwYXJlbnQuCi0tICogVGhlIGZvcm1lciBza2lwcyBhbGwgc3RhdCBjYWxscy4gIFRoZSBsYXR0ZXIgc2tpcHMgc3RhdCBjYWxscyBpbiBhbnkgbGVhZgotLSAqIGRpcmVjdG9yaWVzIGFuZCBmb3IgYW55IGZpbGVzIGFmdGVyIHRoZSBzdWJkaXJlY3RvcmllcyBpbiB0aGUgZGlyZWN0b3J5IGhhdmUKLS0gKiBiZWVuIGZvdW5kLCBjdXR0aW5nIHRoZSBzdGF0IGNhbGxzIGJ5IGFib3V0IDIvMy4KLS0gKi8KLS1zdGF0aWMgRlRTRU5UICoKLS1mdHNfYnVpbGQoc3AsIHR5cGUpCi0tCXJlZ2lzdGVyIEZUUyAqc3A7Ci0tCWludCB0eXBlOwotLXsKLS0JcmVnaXN0ZXIgc3RydWN0IGRpcmVudCAqZHA7Ci0tCXJlZ2lzdGVyIEZUU0VOVCAqcCwgKmhlYWQ7Ci0tCXJlZ2lzdGVyIGludCBuaXRlbXM7Ci0tCUZUU0VOVCAqY3VyLCAqdGFpbDsKLS0JRElSICpkaXJwOwotLQl2b2lkICpvbGRhZGRyOwotLQlpbnQgY2RlcnJubywgZGVzY2VuZCwgbGVuLCBsZXZlbCwgbmxpbmtzLCBzYXZlZF9lcnJubywKLS0JICAgIG5vc3RhdCwgZG9hZGp1c3Q7Ci0tCXNpemVfdCBtYXhsZW47Ci0tCWNoYXIgKmNwOwotLQotLQkvKiBTZXQgY3VycmVudCBub2RlIHBvaW50ZXIuICovCi0tCWN1ciA9IHNwLT5mdHNfY3VyOwotLQotLQkvKgotLQkgKiBPcGVuIHRoZSBkaXJlY3RvcnkgZm9yIHJlYWRpbmcuICBJZiB0aGlzIGZhaWxzLCB3ZSdyZSBkb25lLgotLQkgKiBJZiBiZWluZyBjYWxsZWQgZnJvbSBmdHNfcmVhZCwgc2V0IHRoZSBmdHNfaW5mbyBmaWVsZC4KLS0JICovCi0tICAgICAgIGlmICgoZGlycCA9IG9wZW5kaXIoY3VyLT5mdHNfYWNjcGF0aCkpID09IE5VTEwpIHsKLS0JCWlmICh0eXBlID09IEJSRUFEKSB7Ci0tCQkJY3VyLT5mdHNfaW5mbyA9IEZUU19ETlI7Ci0tCQkJY3VyLT5mdHNfZXJybm8gPSBlcnJubzsKLS0JCX0KLS0JCXJldHVybiAoTlVMTCk7Ci0tCX0KLS0KLS0JLyoKLS0JICogTmxpbmtzIGlzIHRoZSBudW1iZXIgb2YgcG9zc2libGUgZW50cmllcyBvZiB0eXBlIGRpcmVjdG9yeSBpbiB0aGUKLS0JICogZGlyZWN0b3J5IGlmIHdlJ3JlIGNoZWF0aW5nIG9uIHN0YXQgY2FsbHMsIDAgaWYgd2UncmUgbm90IGRvaW5nCi0tCSAqIGFueSBzdGF0IGNhbGxzIGF0IGFsbCwgLTEgaWYgd2UncmUgZG9pbmcgc3RhdHMgb24gZXZlcnl0aGluZy4KLS0JICovCi0tCW5saW5rcyA9IC0xOwotLQlub3N0YXQgPSAwOwotLQotLQkvKgotLQkgKiBJZiB3ZSdyZSBnb2luZyB0byBuZWVkIHRvIHN0YXQgYW55dGhpbmcgb3Igd2Ugd2FudCB0byBkZXNjZW5kCi0tCSAqIGFuZCBzdGF5IGluIHRoZSBkaXJlY3RvcnksIGNoZGlyLiAgSWYgdGhpcyBmYWlscyB3ZSBrZWVwIGdvaW5nLAotLQkgKiBidXQgc2V0IGEgZmxhZyBzbyB3ZSBkb24ndCBjaGRpciBhZnRlciB0aGUgcG9zdC1vcmRlciB2aXNpdC4KLS0JICogV2Ugd29uJ3QgYmUgYWJsZSB0byBzdGF0IGFueXRoaW5nLCBidXQgd2UgY2FuIHN0aWxsIHJldHVybiB0aGUKLS0JICogbmFtZXMgdGhlbXNlbHZlcy4gIE5vdGUsIHRoYXQgc2luY2UgZnRzX3JlYWQgd29uJ3QgYmUgYWJsZSB0bwotLQkgKiBjaGRpciBpbnRvIHRoZSBkaXJlY3RvcnksIGl0IHdpbGwgaGF2ZSB0byByZXR1cm4gZGlmZmVyZW50IHBhdGgKLS0JICogbmFtZXMgdGhhbiBiZWZvcmUsIGkuZS4gImEvYiIgaW5zdGVhZCBvZiAiYiIuICBTaW5jZSB0aGUgbm9kZQotLQkgKiBoYXMgYWxyZWFkeSBiZWVuIHZpc2l0ZWQgaW4gcHJlLW9yZGVyLCBoYXZlIHRvIHdhaXQgdW50aWwgdGhlCi0tCSAqIHBvc3Qtb3JkZXIgdmlzaXQgdG8gcmV0dXJuIHRoZSBlcnJvci4gIFRoZXJlIGlzIGEgc3BlY2lhbCBjYXNlCi0tCSAqIGhlcmUsIGlmIHRoZXJlIHdhcyBub3RoaW5nIHRvIHN0YXQgdGhlbiBpdCdzIG5vdCBhbiBlcnJvciB0bwotLQkgKiBub3QgYmUgYWJsZSB0byBzdGF0LiAgVGhpcyBpcyBhbGwgZmFpcmx5IG5hc3R5LiAgSWYgYSBwcm9ncmFtCi0tCSAqIG5lZWRlZCBzb3J0ZWQgZW50cmllcyBvciBzdGF0IGluZm9ybWF0aW9uLCB0aGV5IGhhZCBiZXR0ZXIgYmUKLS0JICogY2hlY2tpbmcgRlRTX05TIG9uIHRoZSByZXR1cm5lZCBub2Rlcy4KLS0JICovCi0tCWNkZXJybm8gPSAwOwotLQlpZiAobmxpbmtzIHx8IHR5cGUgPT0gQlJFQUQpIHsKLS0JCWlmIChmdHNfc2FmZV9jaGFuZ2VkaXIoc3AsIGN1ciwgZGlyZmQoZGlycCksIE5VTEwpKSB7Ci0tCQkJaWYgKG5saW5rcyAmJiB0eXBlID09IEJSRUFEKQotLQkJCQljdXItPmZ0c19lcnJubyA9IGVycm5vOwotLQkJCWN1ci0+ZnRzX2ZsYWdzIHw9IEZUU19ET05UQ0hESVI7Ci0tCQkJZGVzY2VuZCA9IDA7Ci0tCQkJY2RlcnJubyA9IGVycm5vOwotLQkJCSh2b2lkKWNsb3NlZGlyKGRpcnApOwotLQkJCWRpcnAgPSBOVUxMOwotLQkJfSBlbHNlCi0tCQkJZGVzY2VuZCA9IDE7Ci0tCX0gZWxzZQotLQkJZGVzY2VuZCA9IDA7Ci0tCi0tCS8qCi0tCSAqIEZpZ3VyZSBvdXQgdGhlIG1heCBmaWxlIG5hbWUgbGVuZ3RoIHRoYXQgY2FuIGJlIHN0b3JlZCBpbiB0aGUKLS0JICogY3VycmVudCBwYXRoIC0tIHRoZSBpbm5lciBsb29wIGFsbG9jYXRlcyBtb3JlIHBhdGggYXMgbmVjZXNzYXJ5LgotLQkgKiBXZSByZWFsbHkgd291bGRuJ3QgaGF2ZSB0byBkbyB0aGUgbWF4bGVuIGNhbGN1bGF0aW9ucyBoZXJlLCB3ZQotLQkgKiBjb3VsZCBkbyB0aGVtIGluIGZ0c19yZWFkIGJlZm9yZSByZXR1cm5pbmcgdGhlIHBhdGgsIGJ1dCBpdCdzIGEKLS0JICogbG90IGVhc2llciBoZXJlIHNpbmNlIHRoZSBsZW5ndGggaXMgcGFydCBvZiB0aGUgZGlyZW50IHN0cnVjdHVyZS4KLS0JICoKLS0JICogSWYgbm90IGNoYW5naW5nIGRpcmVjdG9yaWVzIHNldCBhIHBvaW50ZXIgc28gdGhhdCBjYW4ganVzdCBhcHBlbmQKLS0JICogZWFjaCBuZXcgbmFtZSBpbnRvIHRoZSBwYXRoLgotLQkgKi8KLS0JbGVuID0gTkFQUEVORChjdXIpOwotLQlpZiAoSVNTRVQoRlRTX05PQ0hESVIpKSB7Ci0tCQljcCA9IHNwLT5mdHNfcGF0aCArIGxlbjsKLS0JCSpjcCsrID0gJy8nOwotLQl9IGVsc2UgewotLQkJLyogR0NDLCB5b3UncmUgdG9vIHZlcmJvc2UuICovCi0tCQljcCA9IE5VTEw7Ci0tCX0KLS0JbGVuKys7Ci0tCW1heGxlbiA9IHNwLT5mdHNfcGF0aGxlbiAtIGxlbjsKLS0KLS0JbGV2ZWwgPSBjdXItPmZ0c19sZXZlbCArIDE7Ci0tCi0tCS8qIFJlYWQgdGhlIGRpcmVjdG9yeSwgYXR0YWNoaW5nIGVhY2ggZW50cnkgdG8gdGhlIGBsaW5rJyBwb2ludGVyLiAqLwotLQlkb2FkanVzdCA9IDA7Ci0tCWZvciAoaGVhZCA9IHRhaWwgPSBOVUxMLCBuaXRlbXMgPSAwOyBkaXJwICYmIChkcCA9IHJlYWRkaXIoZGlycCkpOykgewotLQkJaWYgKCFJU1NFVChGVFNfU0VFRE9UKSAmJiBJU0RPVChkcC0+ZF9uYW1lKSkKLS0JCQljb250aW51ZTsKLS0KLS0JCWlmICgocCA9IGZ0c19hbGxvYyhzcCwgZHAtPmRfbmFtZSwgKGludClfRF9FWEFDVF9OQU1MRU4gKGRwKSkpID09IE5VTEwpCi0tCQkJZ290byBtZW0xOwotLQkJaWYgKF9EX0VYQUNUX05BTUxFTiAoZHApID49IG1heGxlbikgey8qIGluY2x1ZGUgc3BhY2UgZm9yIE5VTCAqLwotLQkJCW9sZGFkZHIgPSBzcC0+ZnRzX3BhdGg7Ci0tCQkJaWYgKGZ0c19wYWxsb2Moc3AsIF9EX0VYQUNUX05BTUxFTiAoZHApICsgbGVuICsgMSkpIHsKLS0JCQkJLyoKLS0JCQkJICogTm8gbW9yZSBtZW1vcnkgZm9yIHBhdGggb3Igc3RydWN0dXJlcy4gIFNhdmUKLS0JCQkJICogZXJybm8sIGZyZWUgdXAgdGhlIGN1cnJlbnQgc3RydWN0dXJlIGFuZCB0aGUKLS0JCQkJICogc3RydWN0dXJlcyBhbHJlYWR5IGFsbG9jYXRlZC4KLS0JCQkJICovCi0tbWVtMToJCQkJc2F2ZWRfZXJybm8gPSBlcnJubzsKLS0JCQkJaWYgKHApCi0tCQkJCQlmcmVlKHApOwotLQkJCQlmdHNfbGZyZWUoaGVhZCk7Ci0tCQkJCSh2b2lkKWNsb3NlZGlyKGRpcnApOwotLQkJCQljdXItPmZ0c19pbmZvID0gRlRTX0VSUjsKLS0JCQkJU0VUKEZUU19TVE9QKTsKLS0JCQkJZXJybm8gPSBzYXZlZF9lcnJubzsKLS0JCQkJcmV0dXJuIChOVUxMKTsKLS0JCQl9Ci0tCQkJLyogRGlkIHJlYWxsb2MoKSBjaGFuZ2UgdGhlIHBvaW50ZXI/ICovCi0tCQkJaWYgKG9sZGFkZHIgIT0gc3AtPmZ0c19wYXRoKSB7Ci0tCQkJCWRvYWRqdXN0ID0gMTsKLS0JCQkJaWYgKElTU0VUKEZUU19OT0NIRElSKSkKLS0JCQkJCWNwID0gc3AtPmZ0c19wYXRoICsgbGVuOwotLQkJCX0KLS0JCQltYXhsZW4gPSBzcC0+ZnRzX3BhdGhsZW4gLSBsZW47Ci0tCQl9Ci0tCi0tCQlpZiAobGVuICsgX0RfRVhBQ1RfTkFNTEVOIChkcCkgPj0gMHgxMDAwMCkgewotLQkJCS8qCi0tCQkJICogSW4gYW4gRlRTRU5ULCBmdHNfcGF0aGxlbiBpcyBhIHVfc2hvcnQgc28gaXQgaXMKLS0JCQkgKiBwb3NzaWJsZSB0byB3cmFwYXJvdW5kIGhlcmUuICBJZiB3ZSBkbywgZnJlZSB1cAotLQkJCSAqIHRoZSBjdXJyZW50IHN0cnVjdHVyZSBhbmQgdGhlIHN0cnVjdHVyZXMgYWxyZWFkeQotLQkJCSAqIGFsbG9jYXRlZCwgdGhlbiBlcnJvciBvdXQgd2l0aCBFTkFNRVRPT0xPTkcuCi0tCQkJICovCi0tCQkJZnJlZShwKTsKLS0JCQlmdHNfbGZyZWUoaGVhZCk7Ci0tCQkJKHZvaWQpY2xvc2VkaXIoZGlycCk7Ci0tCQkJY3VyLT5mdHNfaW5mbyA9IEZUU19FUlI7Ci0tCQkJU0VUKEZUU19TVE9QKTsKLS0JCQllcnJubyA9IEVOQU1FVE9PTE9ORzsKLS0JCQlyZXR1cm4gKE5VTEwpOwotLQkJfQotLQkJcC0+ZnRzX2xldmVsID0gbGV2ZWw7Ci0tCQlwLT5mdHNfcGFyZW50ID0gc3AtPmZ0c19jdXI7Ci0tCQlwLT5mdHNfcGF0aGxlbiA9IGxlbiArIF9EX0VYQUNUX05BTUxFTiAoZHApOwotLQotLSNpZiBkZWZpbmVkIEZUU19XSElURU9VVCAmJiAwCi0tCQlpZiAoZHAtPmRfdHlwZSA9PSBEVF9XSFQpCi0tCQkJcC0+ZnRzX2ZsYWdzIHw9IEZUU19JU1c7Ci0tI2VuZGlmCi0tCi0tCQlpZiAoY2RlcnJubykgewotLQkJCWlmIChubGlua3MpIHsKLS0JCQkJcC0+ZnRzX2luZm8gPSBGVFNfTlM7Ci0tCQkJCXAtPmZ0c19lcnJubyA9IGNkZXJybm87Ci0tCQkJfSBlbHNlCi0tCQkJCXAtPmZ0c19pbmZvID0gRlRTX05TT0s7Ci0tCQkJcC0+ZnRzX2FjY3BhdGggPSBjdXItPmZ0c19hY2NwYXRoOwotLQkJfSBlbHNlIGlmIChubGlua3MgPT0gMAotLSNpZiBkZWZpbmVkIERUX0RJUiAmJiBkZWZpbmVkIF9ESVJFTlRfSEFWRV9EX1RZUEUKLS0JCQkgICB8fCAobm9zdGF0ICYmCi0tCQkJICAgICAgIGRwLT5kX3R5cGUgIT0gRFRfRElSICYmIGRwLT5kX3R5cGUgIT0gRFRfVU5LTk9XTikKLS0jZW5kaWYKLS0JCSAgICApIHsKLS0JCQlwLT5mdHNfYWNjcGF0aCA9Ci0tCQkJICAgIElTU0VUKEZUU19OT0NIRElSKSA/IHAtPmZ0c19wYXRoIDogcC0+ZnRzX25hbWU7Ci0tCQkJcC0+ZnRzX2luZm8gPSBGVFNfTlNPSzsKLS0JCX0gZWxzZSB7Ci0tCQkJLyogQnVpbGQgYSBmaWxlIG5hbWUgZm9yIGZ0c19zdGF0IHRvIHN0YXQuICovCi0tCQkJaWYgKElTU0VUKEZUU19OT0NIRElSKSkgewotLQkJCQlwLT5mdHNfYWNjcGF0aCA9IHAtPmZ0c19wYXRoOwotLQkJCQltZW1tb3ZlKGNwLCBwLT5mdHNfbmFtZSwgcC0+ZnRzX25hbWVsZW4gKyAxKTsKLS0JCQl9IGVsc2UKLS0JCQkJcC0+ZnRzX2FjY3BhdGggPSBwLT5mdHNfbmFtZTsKLS0JCQkvKiBTdGF0IGl0LiAqLwotLQkJCXAtPmZ0c19pbmZvID0gZnRzX3N0YXQoc3AsIHAsIDApOwotLQotLQkJCS8qIERlY3JlbWVudCBsaW5rIGNvdW50IGlmIGFwcGxpY2FibGUuICovCi0tCQkJaWYgKG5saW5rcyA+IDAgJiYgKHAtPmZ0c19pbmZvID09IEZUU19EIHx8Ci0tCQkJICAgIHAtPmZ0c19pbmZvID09IEZUU19EQyB8fCBwLT5mdHNfaW5mbyA9PSBGVFNfRE9UKSkKLS0JCQkJLS1ubGlua3M7Ci0tCQl9Ci0tCi0tCQkvKiBXZSB3YWxrIGluIGRpcmVjdG9yeSBvcmRlciBzbyAibHMgLWYiIGRvZXNuJ3QgZ2V0IHVwc2V0LiAqLwotLQkJcC0+ZnRzX2xpbmsgPSBOVUxMOwotLQkJaWYgKGhlYWQgPT0gTlVMTCkKLS0JCQloZWFkID0gdGFpbCA9IHA7Ci0tCQllbHNlIHsKLS0JCQl0YWlsLT5mdHNfbGluayA9IHA7Ci0tCQkJdGFpbCA9IHA7Ci0tCQl9Ci0tCQkrK25pdGVtczsKLS0JfQotLQlpZiAoZGlycCkKLS0JCSh2b2lkKWNsb3NlZGlyKGRpcnApOwotLQotLQkvKgotLQkgKiBJZiByZWFsbG9jKCkgY2hhbmdlZCB0aGUgYWRkcmVzcyBvZiB0aGUgcGF0aCwgYWRqdXN0IHRoZQotLQkgKiBhZGRyZXNzZXMgZm9yIHRoZSByZXN0IG9mIHRoZSB0cmVlIGFuZCB0aGUgZGlyIGxpc3QuCi0tCSAqLwotLQlpZiAoZG9hZGp1c3QpCi0tCQlmdHNfcGFkanVzdChzcCwgaGVhZCk7Ci0tCi0tCS8qCi0tCSAqIElmIG5vdCBjaGFuZ2luZyBkaXJlY3RvcmllcywgcmVzZXQgdGhlIHBhdGggYmFjayB0byBvcmlnaW5hbAotLQkgKiBzdGF0ZS4KLS0JICovCi0tCWlmIChJU1NFVChGVFNfTk9DSERJUikpIHsKLS0JCWlmIChsZW4gPT0gc3AtPmZ0c19wYXRobGVuIHx8IG5pdGVtcyA9PSAwKQotLQkJCS0tY3A7Ci0tCQkqY3AgPSAnXDAnOwotLQl9Ci0tCi0tCS8qCi0tCSAqIElmIGRlc2NlbmRlZCBhZnRlciBjYWxsZWQgZnJvbSBmdHNfY2hpbGRyZW4gb3IgYWZ0ZXIgY2FsbGVkIGZyb20KLS0JICogZnRzX3JlYWQgYW5kIG5vdGhpbmcgZm91bmQsIGdldCBiYWNrLiAgQXQgdGhlIHJvb3QgbGV2ZWwgd2UgdXNlCi0tCSAqIHRoZSBzYXZlZCBmZDsgaWYgb25lIG9mIGZ0c19vcGVuKCkncyBhcmd1bWVudHMgaXMgYSByZWxhdGl2ZSBwYXRoCi0tCSAqIHRvIGFuIGVtcHR5IGRpcmVjdG9yeSwgd2Ugd2luZCB1cCBoZXJlIHdpdGggbm8gb3RoZXIgd2F5IGJhY2suICBJZgotLQkgKiBjYW4ndCBnZXQgYmFjaywgd2UncmUgZG9uZS4KLS0JICovCi0tCWlmIChkZXNjZW5kICYmIG5pdGVtcyA9PSAwICYmCi0tCSAgICAoY3VyLT5mdHNfbGV2ZWwgPT0gRlRTX1JPT1RMRVZFTCA/Ci0tCSAgICAgRkNIRElSKHNwLCBzcC0+ZnRzX3JmZCkgOgotLQkgICAgIGZ0c19zYWZlX2NoYW5nZWRpcihzcCwgY3VyLT5mdHNfcGFyZW50LCAtMSwgIi4uIikpKSB7Ci0tCQljdXItPmZ0c19pbmZvID0gRlRTX0VSUjsKLS0JCVNFVChGVFNfU1RPUCk7Ci0tCQlyZXR1cm4gKE5VTEwpOwotLQl9Ci0tCi0tCS8qIElmIGRpZG4ndCBmaW5kIGFueXRoaW5nLCByZXR1cm4gTlVMTC4gKi8KLS0JaWYgKCFuaXRlbXMpIHsKLS0JCWlmICh0eXBlID09IEJSRUFEKQotLQkJCWN1ci0+ZnRzX2luZm8gPSBGVFNfRFA7Ci0tCQlyZXR1cm4gKE5VTEwpOwotLQl9Ci0tCi0tCS8qIFNvcnQgdGhlIGVudHJpZXMuICovCi0tCWlmIChzcC0+ZnRzX2NvbXBhciAmJiBuaXRlbXMgPiAxKQotLQkJaGVhZCA9IGZ0c19zb3J0KHNwLCBoZWFkLCBuaXRlbXMpOwotLQlyZXR1cm4gKGhlYWQpOwotLX0KLS0KLS1zdGF0aWMgdV9zaG9ydAotLWZ0c19zdGF0KHNwLCBwLCBmb2xsb3cpCi0tCUZUUyAqc3A7Ci0tCXJlZ2lzdGVyIEZUU0VOVCAqcDsKLS0JaW50IGZvbGxvdzsKLS17Ci0tCXJlZ2lzdGVyIEZUU0VOVCAqdDsKLS0JcmVnaXN0ZXIgZGV2X3QgZGV2OwotLQlyZWdpc3RlciBpbm9fdCBpbm87Ci0tCXN0cnVjdCBzdGF0ICpzYnA7Ci0tCWludCBzYXZlZF9lcnJubzsKLS0KLS0JLyogSWYgdXNlciBuZWVkcyBzdGF0IGluZm8sIHN0YXQgYnVmZmVyIGFscmVhZHkgYWxsb2NhdGVkLiAqLwotLQlzYnAgPSBwLT5mdHNfc3RhdHA7Ci0tCi0tI2lmIGRlZmluZWQgRlRTX1dISVRFT1VUICYmIDAKLS0JLyogY2hlY2sgZm9yIHdoaXRlb3V0ICovCi0tCWlmIChwLT5mdHNfZmxhZ3MgJiBGVFNfSVNXKSB7Ci0tCQlpZiAoc2JwICE9ICZzYikgewotLQkJCW1lbXNldChzYnAsICdcMCcsIHNpemVvZiAoKnNicCkpOwotLQkJCXNicC0+c3RfbW9kZSA9IFNfSUZXSFQ7Ci0tCQl9Ci0tCQlyZXR1cm4gKEZUU19XKTsKLS0gICAgICAgfQotLSNlbmRpZgotLQotLQkvKgotLQkgKiBJZiBkb2luZyBhIGxvZ2ljYWwgd2Fsaywgb3IgYXBwbGljYXRpb24gcmVxdWVzdGVkIEZUU19GT0xMT1csIGRvCi0tCSAqIGEgc3RhdCgyKS4gIElmIHRoYXQgZmFpbHMsIGNoZWNrIGZvciBhIG5vbi1leGlzdGVudCBzeW1saW5rLiAgSWYKLS0JICogZmFpbCwgc2V0IHRoZSBlcnJubyBmcm9tIHRoZSBzdGF0IGNhbGwuCi0tCSAqLwotLQlpZiAoSVNTRVQoRlRTX0xPR0lDQUwpIHx8IGZvbGxvdykgewotLQkJaWYgKHN0YXQocC0+ZnRzX2FjY3BhdGgsIHNicCkpIHsKLS0JCQlzYXZlZF9lcnJubyA9IGVycm5vOwotLQkJCWlmICghbHN0YXQocC0+ZnRzX2FjY3BhdGgsIHNicCkpIHsKLS0JCQkJZXJybm8gPSAwOwotLQkJCQlyZXR1cm4gKEZUU19TTE5PTkUpOwotLQkJCX0KLS0JCQlwLT5mdHNfZXJybm8gPSBzYXZlZF9lcnJubzsKLS0JCQlnb3RvIGVycjsKLS0JCX0KLS0JfSBlbHNlIGlmIChsc3RhdChwLT5mdHNfYWNjcGF0aCwgc2JwKSkgewotLQkJcC0+ZnRzX2Vycm5vID0gZXJybm87Ci0tZXJyOgkJbWVtc2V0KHNicCwgMCwgc2l6ZW9mKHN0cnVjdCBzdGF0KSk7Ci0tCQlyZXR1cm4gKEZUU19OUyk7Ci0tCX0KLS0KLS0JaWYgKFNfSVNESVIoc2JwLT5zdF9tb2RlKSkgewotLQkJLyoKLS0JCSAqIFNldCB0aGUgZGV2aWNlL2lub2RlLiAgVXNlZCB0byBmaW5kIGN5Y2xlcyBhbmQgY2hlY2sgZm9yCi0tCQkgKiBjcm9zc2luZyBtb3VudCBwb2ludHMuICBBbHNvIHJlbWVtYmVyIHRoZSBsaW5rIGNvdW50LCB1c2VkCi0tCQkgKiBpbiBmdHNfYnVpbGQgdG8gbGltaXQgdGhlIG51bWJlciBvZiBzdGF0IGNhbGxzLiAgSXQgaXMKLS0JCSAqIHVuZGVyc3Rvb2QgdGhhdCB0aGVzZSBmaWVsZHMgYXJlIG9ubHkgcmVmZXJlbmNlZCBpZiBmdHNfaW5mbwotLQkJICogaXMgc2V0IHRvIEZUU19ELgotLQkJICovCi0tCQlkZXYgPSBwLT5mdHNfZGV2ID0gc2JwLT5zdF9kZXY7Ci0tCQlpbm8gPSBwLT5mdHNfaW5vID0gc2JwLT5zdF9pbm87Ci0tCQlwLT5mdHNfbmxpbmsgPSBzYnAtPnN0X25saW5rOwotLQotLQkJaWYgKElTRE9UKHAtPmZ0c19uYW1lKSkKLS0JCQlyZXR1cm4gKEZUU19ET1QpOwotLQotLQkJLyoKLS0JCSAqIEN5Y2xlIGRldGVjdGlvbiBpcyBkb25lIGJ5IGJydXRlIGZvcmNlIHdoZW4gdGhlIGRpcmVjdG9yeQotLQkJICogaXMgZmlyc3QgZW5jb3VudGVyZWQuICBJZiB0aGUgdHJlZSBnZXRzIGRlZXAgZW5vdWdoIG9yIHRoZQotLQkJICogbnVtYmVyIG9mIHN5bWJvbGljIGxpbmtzIHRvIGRpcmVjdG9yaWVzIGlzIGhpZ2ggZW5vdWdoLAotLQkJICogc29tZXRoaW5nIGZhc3RlciBtaWdodCBiZSB3b3J0aHdoaWxlLgotLQkJICovCi0tCQlmb3IgKHQgPSBwLT5mdHNfcGFyZW50OwotLQkJICAgIHQtPmZ0c19sZXZlbCA+PSBGVFNfUk9PVExFVkVMOyB0ID0gdC0+ZnRzX3BhcmVudCkKLS0JCQlpZiAoaW5vID09IHQtPmZ0c19pbm8gJiYgZGV2ID09IHQtPmZ0c19kZXYpIHsKLS0JCQkJcC0+ZnRzX2N5Y2xlID0gdDsKLS0JCQkJcmV0dXJuIChGVFNfREMpOwotLQkJCX0KLS0JCXJldHVybiAoRlRTX0QpOwotLQl9Ci0tCWlmIChTX0lTTE5LKHNicC0+c3RfbW9kZSkpCi0tCQlyZXR1cm4gKEZUU19TTCk7Ci0tCWlmIChTX0lTUkVHKHNicC0+c3RfbW9kZSkpCi0tCQlyZXR1cm4gKEZUU19GKTsKLS0JcmV0dXJuIChGVFNfREVGQVVMVCk7Ci0tfQotLQotLXN0YXRpYyBGVFNFTlQgKgotLWZ0c19zb3J0KHNwLCBoZWFkLCBuaXRlbXMpCi0tCUZUUyAqc3A7Ci0tCUZUU0VOVCAqaGVhZDsKLS0JcmVnaXN0ZXIgaW50IG5pdGVtczsKLS17Ci0tCXJlZ2lzdGVyIEZUU0VOVCAqKmFwLCAqcDsKLS0KLS0JLyoKLS0JICogQ29uc3RydWN0IGFuIGFycmF5IG9mIHBvaW50ZXJzIHRvIHRoZSBzdHJ1Y3R1cmVzIGFuZCBjYWxsIHFzb3J0KDMpLgotLQkgKiBSZWFzc2VtYmxlIHRoZSBhcnJheSBpbiB0aGUgb3JkZXIgcmV0dXJuZWQgYnkgcXNvcnQuICBJZiB1bmFibGUgdG8KLS0JICogc29ydCBmb3IgbWVtb3J5IHJlYXNvbnMsIHJldHVybiB0aGUgZGlyZWN0b3J5IGVudHJpZXMgaW4gdGhlaXIKLS0JICogY3VycmVudCBvcmRlci4gIEFsbG9jYXRlIGVub3VnaCBzcGFjZSBmb3IgdGhlIGN1cnJlbnQgbmVlZHMgcGx1cwotLQkgKiA0MCBzbyBkb24ndCByZWFsbG9jIG9uZSBlbnRyeSBhdCBhIHRpbWUuCi0tCSAqLwotLQlpZiAobml0ZW1zID4gc3AtPmZ0c19uaXRlbXMpIHsKLS0JCXN0cnVjdCBfZnRzZW50ICoqYTsKLS0KLS0JCXNwLT5mdHNfbml0ZW1zID0gbml0ZW1zICsgNDA7Ci0tCQlpZiAoKGEgPSByZWFsbG9jKHNwLT5mdHNfYXJyYXksCi0tIAkJICAgIChzaXplX3QpKHNwLT5mdHNfbml0ZW1zICogc2l6ZW9mKEZUU0VOVCAqKSkpKSA9PSBOVUxMKSB7Ci0tCQkJZnJlZShzcC0+ZnRzX2FycmF5KTsKLS0JCQlzcC0+ZnRzX2FycmF5ID0gTlVMTDsKLS0JCQlzcC0+ZnRzX25pdGVtcyA9IDA7Ci0tCQkJcmV0dXJuIChoZWFkKTsKLS0JCX0KLS0JCXNwLT5mdHNfYXJyYXkgPSBhOwotLQl9Ci0tCWZvciAoYXAgPSBzcC0+ZnRzX2FycmF5LCBwID0gaGVhZDsgcDsgcCA9IHAtPmZ0c19saW5rKQotLQkJKmFwKysgPSBwOwotLQlxc29ydCgodm9pZCAqKXNwLT5mdHNfYXJyYXksIG5pdGVtcywgc2l6ZW9mKEZUU0VOVCAqKSwgc3AtPmZ0c19jb21wYXIpOwotLQlmb3IgKGhlYWQgPSAqKGFwID0gc3AtPmZ0c19hcnJheSk7IC0tbml0ZW1zOyArK2FwKQotLQkJYXBbMF0tPmZ0c19saW5rID0gYXBbMV07Ci0tCWFwWzBdLT5mdHNfbGluayA9IE5VTEw7Ci0tCXJldHVybiAoaGVhZCk7Ci0tfQotLQotLXN0YXRpYyBGVFNFTlQgKgotLWZ0c19hbGxvYyhzcCwgbmFtZSwgbmFtZWxlbikKLS0JRlRTICpzcDsKLS0JY29uc3QgY2hhciAqbmFtZTsKLS0JcmVnaXN0ZXIgaW50IG5hbWVsZW47Ci0tewotLQlyZWdpc3RlciBGVFNFTlQgKnA7Ci0tCXNpemVfdCBsZW47Ci0tCi0tCS8qCi0tCSAqIFRoZSBmaWxlIG5hbWUgaXMgYSB2YXJpYWJsZSBsZW5ndGggYXJyYXkgYW5kIG5vIHN0YXQgc3RydWN0dXJlIGlzCi0tCSAqIG5lY2Vzc2FyeSBpZiB0aGUgdXNlciBoYXMgc2V0IHRoZSBub3N0YXQgYml0LiAgQWxsb2NhdGUgdGhlIEZUU0VOVAotLQkgKiBzdHJ1Y3R1cmUsIHRoZSBmaWxlIG5hbWUgYW5kIHRoZSBzdGF0IHN0cnVjdHVyZSBpbiBvbmUgY2h1bmssIGJ1dAotLQkgKiBiZSBjYXJlZnVsIHRoYXQgdGhlIHN0YXQgc3RydWN0dXJlIGlzIHJlYXNvbmFibHkgYWxpZ25lZC4gIFNpbmNlIHRoZQotLQkgKiBmdHNfbmFtZSBmaWVsZCBpcyBkZWNsYXJlZCB0byBiZSBvZiBzaXplIDEsIHRoZSBmdHNfbmFtZSBwb2ludGVyIGlzCi0tCSAqIG5hbWVsZW4gKyAyIGJlZm9yZSB0aGUgZmlyc3QgcG9zc2libGUgYWRkcmVzcyBvZiB0aGUgc3RhdCBzdHJ1Y3R1cmUuCi0tCSAqLwotLQlsZW4gPSBzaXplb2YoRlRTRU5UKSArIG5hbWVsZW47Ci0tCWxlbiArPSBzaXplb2Yoc3RydWN0IHN0YXQpICsgQUxJR05CWVRFUzsKLS0JaWYgKChwID0gbWFsbG9jKGxlbikpID09IE5VTEwpCi0tCQlyZXR1cm4gKE5VTEwpOwotLQotLQkvKiBDb3B5IHRoZSBuYW1lIGFuZCBndWFyYW50ZWUgTlVMIHRlcm1pbmF0aW9uLiAqLwotLQltZW1tb3ZlKHAtPmZ0c19uYW1lLCBuYW1lLCBuYW1lbGVuKTsKLS0JcC0+ZnRzX25hbWVbbmFtZWxlbl0gPSAnXDAnOwotLQotLQlwLT5mdHNfc3RhdHAgPSAoc3RydWN0IHN0YXQgKilBTElHTihwLT5mdHNfbmFtZSArIG5hbWVsZW4gKyAyKTsKLS0JcC0+ZnRzX25hbWVsZW4gPSBuYW1lbGVuOwotLQlwLT5mdHNfcGF0aCA9IHNwLT5mdHNfcGF0aDsKLS0JcC0+ZnRzX2Vycm5vID0gMDsKLS0JcC0+ZnRzX2ZsYWdzID0gMDsKLS0JcC0+ZnRzX2luc3RyID0gRlRTX05PSU5TVFI7Ci0tCXAtPmZ0c19udW1iZXIgPSAwOwotLQlwLT5mdHNfcG9pbnRlciA9IE5VTEw7Ci0tCXJldHVybiAocCk7Ci0tfQotLQotLXN0YXRpYyB2b2lkCi0tZnRzX2xmcmVlKGhlYWQpCi0tCXJlZ2lzdGVyIEZUU0VOVCAqaGVhZDsKLS17Ci0tCXJlZ2lzdGVyIEZUU0VOVCAqcDsKLS0KLS0JLyogRnJlZSBhIGxpbmtlZCBsaXN0IG9mIHN0cnVjdHVyZXMuICovCi0tCXdoaWxlICgocCA9IGhlYWQpKSB7Ci0tCQloZWFkID0gaGVhZC0+ZnRzX2xpbms7Ci0tCQlmcmVlKHApOwotLQl9Ci0tfQotLQotLS8qCi0tICogQWxsb3cgZXNzZW50aWFsbHkgdW5saW1pdGVkIHBhdGhzOyBmaW5kLCBybSwgbHMgc2hvdWxkIGFsbCB3b3JrIG9uIGFueSB0cmVlLgotLSAqIE1vc3Qgc3lzdGVtcyB3aWxsIGFsbG93IGNyZWF0aW9uIG9mIHBhdGhzIG11Y2ggbG9uZ2VyIHRoYW4gTUFYUEFUSExFTiwgZXZlbgotLSAqIHRob3VnaCB0aGUga2VybmVsIHdvbid0IHJlc29sdmUgdGhlbS4gIEFkZCB0aGUgc2l6ZSAobm90IGp1c3Qgd2hhdCdzIG5lZWRlZCkKLS0gKiBwbHVzIDI1NiBieXRlcyBzbyBkb24ndCByZWFsbG9jIHRoZSBwYXRoIDIgYnl0ZXMgYXQgYSB0aW1lLgotLSAqLwotLXN0YXRpYyBpbnQKLS1mdHNfcGFsbG9jKHNwLCBtb3JlKQotLQlGVFMgKnNwOwotLQlzaXplX3QgbW9yZTsKLS17Ci0tCWNoYXIgKnA7Ci0tCi0tCXNwLT5mdHNfcGF0aGxlbiArPSBtb3JlICsgMjU2OwotLQkvKgotLQkgKiBDaGVjayBmb3IgcG9zc2libGUgd3JhcGFyb3VuZC4gIEluIGFuIEZUUywgZnRzX3BhdGhsZW4gaXMKLS0JICogYSBzaWduZWQgaW50IGJ1dCBpbiBhbiBGVFNFTlQgaXQgaXMgYW4gdW5zaWduZWQgc2hvcnQuCi0tCSAqIFdlIGxpbWl0IGZ0c19wYXRobGVuIHRvIFVTSFJUX01BWCB0byBiZSBzYWZlIGluIGJvdGggY2FzZXMuCi0tCSAqLwotLQlpZiAoc3AtPmZ0c19wYXRobGVuIDwgMCB8fCBzcC0+ZnRzX3BhdGhsZW4gPj0gMHgxMDAwMCkgewotLQkJaWYgKHNwLT5mdHNfcGF0aCkgewotLQkJCWZyZWUoc3AtPmZ0c19wYXRoKTsKLS0JCQlzcC0+ZnRzX3BhdGggPSBOVUxMOwotLQkJfQotLQkJc3AtPmZ0c19wYXRoID0gTlVMTDsKLS0JCWVycm5vID0gRU5BTUVUT09MT05HOwotLQkJcmV0dXJuICgxKTsKLS0JfQotLQlwID0gcmVhbGxvYyhzcC0+ZnRzX3BhdGgsIHNwLT5mdHNfcGF0aGxlbik7Ci0tCWlmIChwID09IE5VTEwpIHsKLS0JCWZyZWUoc3AtPmZ0c19wYXRoKTsKLS0JCXNwLT5mdHNfcGF0aCA9IE5VTEw7Ci0tCQlyZXR1cm4gMTsKLS0JfQotLQlzcC0+ZnRzX3BhdGggPSBwOwotLQlyZXR1cm4gMDsKLS19Ci0tCi0tLyoKLS0gKiBXaGVuIHRoZSBwYXRoIGlzIHJlYWxsb2MnZCwgaGF2ZSB0byBmaXggYWxsIG9mIHRoZSBwb2ludGVycyBpbiBzdHJ1Y3R1cmVzCi0tICogYWxyZWFkeSByZXR1cm5lZC4KLS0gKi8KLS1zdGF0aWMgdm9pZAotLWZ0c19wYWRqdXN0KHNwLCBoZWFkKQotLQlGVFMgKnNwOwotLQlGVFNFTlQgKmhlYWQ7Ci0tewotLQlGVFNFTlQgKnA7Ci0tCWNoYXIgKmFkZHIgPSBzcC0+ZnRzX3BhdGg7Ci0tCi0tI2RlZmluZQlBREpVU1QocCkgZG8gewkJCQkJCQlcCi0tCWlmICgocCktPmZ0c19hY2NwYXRoICE9IChwKS0+ZnRzX25hbWUpIHsJCQlcCi0tCQkocCktPmZ0c19hY2NwYXRoID0JCQkJCVwKLS0JCSAgICAoY2hhciAqKWFkZHIgKyAoKHApLT5mdHNfYWNjcGF0aCAtIChwKS0+ZnRzX3BhdGgpOwlcCi0tCX0JCQkJCQkJCVwKLS0JKHApLT5mdHNfcGF0aCA9IGFkZHI7CQkJCQkJXAotLX0gd2hpbGUgKDApCi0tCS8qIEFkanVzdCB0aGUgY3VycmVudCBzZXQgb2YgY2hpbGRyZW4uICovCi0tCWZvciAocCA9IHNwLT5mdHNfY2hpbGQ7IHA7IHAgPSBwLT5mdHNfbGluaykKLS0JCUFESlVTVChwKTsKLS0KLS0JLyogQWRqdXN0IHRoZSByZXN0IG9mIHRoZSB0cmVlLCBpbmNsdWRpbmcgdGhlIGN1cnJlbnQgbGV2ZWwuICovCi0tCWZvciAocCA9IGhlYWQ7IHAtPmZ0c19sZXZlbCA+PSBGVFNfUk9PVExFVkVMOykgewotLQkJQURKVVNUKHApOwotLQkJcCA9IHAtPmZ0c19saW5rID8gcC0+ZnRzX2xpbmsgOiBwLT5mdHNfcGFyZW50OwotLQl9Ci0tfQotLQotLXN0YXRpYyBzaXplX3QKLS1mdHNfbWF4YXJnbGVuKGFyZ3YpCi0tCWNoYXIgKiBjb25zdCAqYXJndjsKLS17Ci0tCXNpemVfdCBsZW4sIG1heDsKLS0KLS0JZm9yIChtYXggPSAwOyAqYXJndjsgKythcmd2KQotLQkJaWYgKChsZW4gPSBzdHJsZW4oKmFyZ3YpKSA+IG1heCkKLS0JCQltYXggPSBsZW47Ci0tCXJldHVybiAobWF4ICsgMSk7Ci0tfQotLQotLS8qCi0tICogQ2hhbmdlIHRvIGRpciBzcGVjaWZpZWQgYnkgZmQgb3IgcC0+ZnRzX2FjY3BhdGggd2l0aG91dCBnZXR0aW5nCi0tICogdHJpY2tlZCBieSBzb21lb25lIGNoYW5naW5nIHRoZSB3b3JsZCBvdXQgZnJvbSB1bmRlcm5lYXRoIHVzLgotLSAqIEFzc3VtZXMgcC0+ZnRzX2RldiBhbmQgcC0+ZnRzX2lubyBhcmUgZmlsbGVkIGluLgotLSAqLwotLXN0YXRpYyBpbnQKLS1mdHNfc2FmZV9jaGFuZ2VkaXIoc3AsIHAsIGZkLCBwYXRoKQotLQlGVFMgKnNwOwotLQlGVFNFTlQgKnA7Ci0tCWludCBmZDsKLS0JY29uc3QgY2hhciAqcGF0aDsKLS17Ci0tCWludCByZXQsIG9lcnJubywgbmV3ZmQ7Ci0tCXN0cnVjdCBzdGF0IHNiOwotLQotLQluZXdmZCA9IGZkOwotLQlpZiAoSVNTRVQoRlRTX05PQ0hESVIpKQotLQkJcmV0dXJuICgwKTsKLS0JaWYgKGZkIDwgMCAmJiAobmV3ZmQgPSBvcGVuKHBhdGgsIE9fUkRPTkxZLCAwKSkgPCAwKQotLQkJcmV0dXJuICgtMSk7Ci0tCWlmIChmc3RhdChuZXdmZCwgJnNiKSkgewotLQkJcmV0ID0gLTE7Ci0tCQlnb3RvIGJhaWw7Ci0tCX0KLS0JaWYgKHAtPmZ0c19kZXYgIT0gc2Iuc3RfZGV2IHx8IHAtPmZ0c19pbm8gIT0gc2Iuc3RfaW5vKSB7Ci0tCQllcnJubyA9IEVOT0VOVDsJCS8qIGRpc2luZm9ybWF0aW9uICovCi0tCQlyZXQgPSAtMTsKLS0JCWdvdG8gYmFpbDsKLS0JfQotLQlyZXQgPSBmY2hkaXIobmV3ZmQpOwotLWJhaWw6Ci0tCW9lcnJubyA9IGVycm5vOwotLQlpZiAoZmQgPCAwKQotLQkJKHZvaWQpY2xvc2UobmV3ZmQpOwotLQllcnJubyA9IG9lcnJubzsKLS0JcmV0dXJuIChyZXQpOwotLX0KLWRpZmYgLS1naXQgYS9saWIvZnRzLmggYi9saWIvZnRzLmgKLWRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggNTg4NDZiOS4uMDAwMDAwMAotLS0tIGEvbGliL2Z0cy5oCi0rKysgL2Rldi9udWxsCi1AQCAtMSwxMzEgKzAsMCBAQAotLS8qCi0tICogQ29weXJpZ2h0IChjKSAxOTg5LCAxOTkzCi0tICoJVGhlIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0tICoKLS0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLS0gKiBhcmUgbWV0OgotLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0tICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0tICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0tICogNC4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgVW5pdmVyc2l0eSBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKLS0gKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUKLS0gKiAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLS0gKgotLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIFJFR0VOVFMgQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECi0tICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0tICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKLS0gKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBSRUdFTlRTIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKLS0gKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAotLSAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCi0tICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCi0tICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKLS0gKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCi0tICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgotLSAqIFNVQ0ggREFNQUdFLgotLSAqCi0tICoJQCgjKWZ0cy5oCTguMyAoQmVya2VsZXkpIDgvMTQvOTQKLS0gKi8KLS0KLS0jaWZuZGVmCV9GVFNfSAotLSNkZWZpbmUJX0ZUU19IIDEKLS0KLS0jaW5jbHVkZSA8ZmVhdHVyZXMuaD4KLS0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0tCi0tdHlwZWRlZiBzdHJ1Y3QgewotLQlzdHJ1Y3QgX2Z0c2VudCAqZnRzX2N1cjsJLyogY3VycmVudCBub2RlICovCi0tCXN0cnVjdCBfZnRzZW50ICpmdHNfY2hpbGQ7CS8qIGxpbmtlZCBsaXN0IG9mIGNoaWxkcmVuICovCi0tCXN0cnVjdCBfZnRzZW50ICoqZnRzX2FycmF5OwkvKiBzb3J0IGFycmF5ICovCi0tCWRldl90IGZ0c19kZXY7CQkJLyogc3RhcnRpbmcgZGV2aWNlICMgKi8KLS0JY2hhciAqZnRzX3BhdGg7CQkJLyogcGF0aCBmb3IgdGhpcyBkZXNjZW50ICovCi0tCWludCBmdHNfcmZkOwkJCS8qIGZkIGZvciByb290ICovCi0tCWludCBmdHNfcGF0aGxlbjsJCS8qIHNpemVvZihwYXRoKSAqLwotLQlpbnQgZnRzX25pdGVtczsJCQkvKiBlbGVtZW50cyBpbiB0aGUgc29ydCBhcnJheSAqLwotLQlpbnQgKCpmdHNfY29tcGFyKSAoY29uc3Qgdm9pZCAqLCBjb25zdCB2b2lkICopOyAvKiBjb21wYXJlIGZuICovCi0tCi0tI2RlZmluZQlGVFNfQ09NRk9MTE9XCTB4MDAwMQkJLyogZm9sbG93IGNvbW1hbmQgbGluZSBzeW1saW5rcyAqLwotLSNkZWZpbmUJRlRTX0xPR0lDQUwJMHgwMDAyCQkvKiBsb2dpY2FsIHdhbGsgKi8KLS0jZGVmaW5lCUZUU19OT0NIRElSCTB4MDAwNAkJLyogZG9uJ3QgY2hhbmdlIGRpcmVjdG9yaWVzICovCi0tI2RlZmluZQlGVFNfTk9TVEFUCTB4MDAwOAkJLyogZG9uJ3QgZ2V0IHN0YXQgaW5mbyAqLwotLSNkZWZpbmUJRlRTX1BIWVNJQ0FMCTB4MDAxMAkJLyogcGh5c2ljYWwgd2FsayAqLwotLSNkZWZpbmUJRlRTX1NFRURPVAkweDAwMjAJCS8qIHJldHVybiBkb3QgYW5kIGRvdC1kb3QgKi8KLS0jZGVmaW5lCUZUU19YREVWCTB4MDA0MAkJLyogZG9uJ3QgY3Jvc3MgZGV2aWNlcyAqLwotLSNkZWZpbmUgRlRTX1dISVRFT1VUCTB4MDA4MAkJLyogcmV0dXJuIHdoaXRlb3V0IGluZm9ybWF0aW9uICovCi0tI2RlZmluZQlGVFNfT1BUSU9OTUFTSwkweDAwZmYJCS8qIHZhbGlkIHVzZXIgb3B0aW9uIG1hc2sgKi8KLS0KLS0jZGVmaW5lCUZUU19OQU1FT05MWQkweDAxMDAJCS8qIChwcml2YXRlKSBjaGlsZCBuYW1lcyBvbmx5ICovCi0tI2RlZmluZQlGVFNfU1RPUAkweDAyMDAJCS8qIChwcml2YXRlKSB1bnJlY292ZXJhYmxlIGVycm9yICovCi0tCWludCBmdHNfb3B0aW9uczsJCS8qIGZ0c19vcGVuIG9wdGlvbnMsIGdsb2JhbCBmbGFncyAqLwotLX0gRlRTOwotLQotLXR5cGVkZWYgc3RydWN0IF9mdHNlbnQgewotLQlzdHJ1Y3QgX2Z0c2VudCAqZnRzX2N5Y2xlOwkvKiBjeWNsZSBub2RlICovCi0tCXN0cnVjdCBfZnRzZW50ICpmdHNfcGFyZW50OwkvKiBwYXJlbnQgZGlyZWN0b3J5ICovCi0tCXN0cnVjdCBfZnRzZW50ICpmdHNfbGluazsJLyogbmV4dCBmaWxlIGluIGRpcmVjdG9yeSAqLwotLQlsb25nIGZ0c19udW1iZXI7CSAgICAgICAgLyogbG9jYWwgbnVtZXJpYyB2YWx1ZSAqLwotLQl2b2lkICpmdHNfcG9pbnRlcjsJICAgICAgICAvKiBsb2NhbCBhZGRyZXNzIHZhbHVlICovCi0tCWNoYXIgKmZ0c19hY2NwYXRoOwkJLyogYWNjZXNzIHBhdGggKi8KLS0JY2hhciAqZnRzX3BhdGg7CQkJLyogcm9vdCBwYXRoICovCi0tCWludCBmdHNfZXJybm87CQkJLyogZXJybm8gZm9yIHRoaXMgbm9kZSAqLwotLQlpbnQgZnRzX3N5bWZkOwkJCS8qIGZkIGZvciBzeW1saW5rICovCi0tCXVfc2hvcnQgZnRzX3BhdGhsZW47CQkvKiBzdHJsZW4oZnRzX3BhdGgpICovCi0tCXVfc2hvcnQgZnRzX25hbWVsZW47CQkvKiBzdHJsZW4oZnRzX25hbWUpICovCi0tCi0tCWlub190IGZ0c19pbm87CQkJLyogaW5vZGUgKi8KLS0JZGV2X3QgZnRzX2RldjsJCQkvKiBkZXZpY2UgKi8KLS0JbmxpbmtfdCBmdHNfbmxpbms7CQkvKiBsaW5rIGNvdW50ICovCi0tCi0tI2RlZmluZQlGVFNfUk9PVFBBUkVOVExFVkVMCS0xCi0tI2RlZmluZQlGVFNfUk9PVExFVkVMCQkgMAotLQlzaG9ydCBmdHNfbGV2ZWw7CQkvKiBkZXB0aCAoLTEgdG8gTikgKi8KLS0KLS0jZGVmaW5lCUZUU19ECQkgMQkJLyogcHJlb3JkZXIgZGlyZWN0b3J5ICovCi0tI2RlZmluZQlGVFNfREMJCSAyCQkvKiBkaXJlY3RvcnkgdGhhdCBjYXVzZXMgY3ljbGVzICovCi0tI2RlZmluZQlGVFNfREVGQVVMVAkgMwkJLyogbm9uZSBvZiB0aGUgYWJvdmUgKi8KLS0jZGVmaW5lCUZUU19ETlIJCSA0CQkvKiB1bnJlYWRhYmxlIGRpcmVjdG9yeSAqLwotLSNkZWZpbmUJRlRTX0RPVAkJIDUJCS8qIGRvdCBvciBkb3QtZG90ICovCi0tI2RlZmluZQlGVFNfRFAJCSA2CQkvKiBwb3N0b3JkZXIgZGlyZWN0b3J5ICovCi0tI2RlZmluZQlGVFNfRVJSCQkgNwkJLyogZXJyb3I7IGVycm5vIGlzIHNldCAqLwotLSNkZWZpbmUJRlRTX0YJCSA4CQkvKiByZWd1bGFyIGZpbGUgKi8KLS0jZGVmaW5lCUZUU19JTklUCSA5CQkvKiBpbml0aWFsaXplZCBvbmx5ICovCi0tI2RlZmluZQlGVFNfTlMJCTEwCQkvKiBzdGF0KDIpIGZhaWxlZCAqLwotLSNkZWZpbmUJRlRTX05TT0sJMTEJCS8qIG5vIHN0YXQoMikgcmVxdWVzdGVkICovCi0tI2RlZmluZQlGVFNfU0wJCTEyCQkvKiBzeW1ib2xpYyBsaW5rICovCi0tI2RlZmluZQlGVFNfU0xOT05FCTEzCQkvKiBzeW1ib2xpYyBsaW5rIHdpdGhvdXQgdGFyZ2V0ICovCi0tI2RlZmluZSBGVFNfVwkJMTQJCS8qIHdoaXRlb3V0IG9iamVjdCAqLwotLQl1X3Nob3J0IGZ0c19pbmZvOwkJLyogdXNlciBmbGFncyBmb3IgRlRTRU5UIHN0cnVjdHVyZSAqLwotLQotLSNkZWZpbmUJRlRTX0RPTlRDSERJUgkgMHgwMQkJLyogZG9uJ3QgY2hkaXIgLi4gdG8gdGhlIHBhcmVudCAqLwotLSNkZWZpbmUJRlRTX1NZTUZPTExPVwkgMHgwMgkJLyogZm9sbG93ZWQgYSBzeW1saW5rIHRvIGdldCBoZXJlICovCi0tCXVfc2hvcnQgZnRzX2ZsYWdzOwkJLyogcHJpdmF0ZSBmbGFncyBmb3IgRlRTRU5UIHN0cnVjdHVyZSAqLwotLQotLSNkZWZpbmUJRlRTX0FHQUlOCSAxCQkvKiByZWFkIG5vZGUgYWdhaW4gKi8KLS0jZGVmaW5lCUZUU19GT0xMT1cJIDIJCS8qIGZvbGxvdyBzeW1ib2xpYyBsaW5rICovCi0tI2RlZmluZQlGVFNfTk9JTlNUUgkgMwkJLyogbm8gaW5zdHJ1Y3Rpb25zICovCi0tI2RlZmluZQlGVFNfU0tJUAkgNAkJLyogZGlzY2FyZCBub2RlICovCi0tCXVfc2hvcnQgZnRzX2luc3RyOwkJLyogZnRzX3NldCgpIGluc3RydWN0aW9ucyAqLwotLQotLQlzdHJ1Y3Qgc3RhdCAqZnRzX3N0YXRwOwkJLyogc3RhdCgyKSBpbmZvcm1hdGlvbiAqLwotLQljaGFyIGZ0c19uYW1lWzFdOwkJLyogZmlsZSBuYW1lICovCi0tfSBGVFNFTlQ7Ci0tCi0tX19CRUdJTl9ERUNMUwotLQotLSNkZWZpbmUgZnRzX2NoaWxkcmVuIHBheF9mdHNfY2hpbGRyZW4KLS0jZGVmaW5lIGZ0c19jbG9zZSBwYXhfZnRzX2Nsb3NlCi0tI2RlZmluZSBmdHNfb3BlbiBwYXhfZnRzX29wZW4KLS0jZGVmaW5lIGZ0c19yZWFkIHBheF9mdHNfcmVhZAotLSNkZWZpbmUgZnRzX3NldCBwYXhfZnRzX3NldAotLQotLUZUU0VOVAkqZnRzX2NoaWxkcmVuIChGVFMgKiwgaW50KTsKLS1pbnQJIGZ0c19jbG9zZSAoRlRTICopOwotLUZUUwkqZnRzX29wZW4gKGNoYXIgKiBjb25zdCAqLCBpbnQsCi0tCQkgICBpbnQgKCopKGNvbnN0IEZUU0VOVCAqKiwgY29uc3QgRlRTRU5UICoqKSk7Ci0tRlRTRU5UCSpmdHNfcmVhZCAoRlRTICopOwotLWludAkgZnRzX3NldCAoRlRTICosIEZUU0VOVCAqLCBpbnQpIF9fVEhST1c7Ci0tX19FTkRfREVDTFMKLS0KLS0jZW5kaWYgLyogZnRzLmggKi8KLWRpZmYgLS1naXQgYS9saWIvdmlzLmggYi9saWIvdmlzLmgKLWluZGV4IGQzNGQzNDIuLjcxZmE1ZjQgMTAwNjQ0Ci0tLS0gYS9saWIvdmlzLmgKLSsrKyBiL2xpYi92aXMuaAotQEAgLTczLDE0ICs3MywxOSBAQAotICAqLwotICNkZWZpbmUJVU5WSVNfRU5ECTEJLyogbm8gbW9yZSBjaGFyYWN0ZXJzICovCi0gCi0tI2luY2x1ZGUgPHN5cy9jZGVmcy5oPgotKyNpZm5kZWYgX19QCi0rI2RlZmluZSBfX1AoeCkgeAotKyNlbmRpZgotIAotLV9fQkVHSU5fREVDTFMKLSsjaWZkZWYgX19jcGx1c3BsdXMKLStleHRlcm4gIkMiIHsKLSsjZW5kaWYKLSBjaGFyCSp2aXMgX19QKChjaGFyICosIGludCwgaW50LCBpbnQpKTsKLSBpbnQJc3RydmlzIF9fUCgoY2hhciAqLCBjb25zdCBjaGFyICosIGludCkpOwotIGludAlzdHJ2aXN4IF9fUCgoY2hhciAqLCBjb25zdCBjaGFyICosIHNpemVfdCwgaW50KSk7Ci0gaW50CXN0cnVudmlzIF9fUCgoY2hhciAqLCBjb25zdCBjaGFyICopKTsKLSBpbnQJdW52aXMgX19QKChjaGFyICosIGNoYXIsIGludCAqLCBpbnQpKTsKLS1fX0VORF9ERUNMUwotLQotKyNpZmRlZiBfX2NwbHVzcGx1cwotK30KLSsjZW5kaWYKLSAjZW5kaWYgLyogIV9WSVNfSF8gKi8KLWRpZmYgLS1naXQgYS9zcmMvTWFrZWZpbGUuYW0gYi9zcmMvTWFrZWZpbGUuYW0KLWluZGV4IDVlZjUyYTMuLjIyN2NkZWYgMTAwNjQ0Ci0tLS0gYS9zcmMvTWFrZWZpbGUuYW0KLSsrKyBiL3NyYy9NYWtlZmlsZS5hbQotQEAgLTIyLDQgKzIyLDQgQEAgcGF4X1NPVVJDRVMgPSBhcl9pby5jIGFyX3N1YnMuYyBidWZfc3Vicy5jIGNhY2hlLmMgY3Bpby5jXAotIAlmaWxlX3N1YnMuYyBmdHJlZS5jIGdlbl9zdWJzLmMgZ2V0b2xkb3B0LmMgb3B0aW9ucy5jXAotIAlwYXRfcmVwLmMgcGF4LmMgc2VsX3N1YnMuYyB0YWJsZXMuYyB0YXIuYyB0dHlfc3Vicy5jCi0gCi0tcGF4X0xEQUREID0gJCh0b3BfYnVpbGRkaXIpL2xpYi9saWJic2RmdW5jLmEKLStwYXhfTERBREQgPSAkKHRvcF9idWlsZGRpcikvbGliL2xpYmJzZGZ1bmMuYSAtbGZ0cwotZGlmZiAtLWdpdCBhL3NyYy9leHRlcm4uaCBiL3NyYy9leHRlcm4uaAotaW5kZXggMzYxZmE4MS4uM2VkMzY1ZCAxMDA2NDQKLS0tLSBhL3NyYy9leHRlcm4uaAotKysrIGIvc3JjL2V4dGVybi5oCi1AQCAtMzcsOCArMzcsNiBAQAotICAqIEV4dGVybmFsIHJlZmVyZW5jZXMgZnJvbSBlYWNoIHNvdXJjZSBmaWxlCi0gICovCi0gCi0tI2luY2x1ZGUgPHN5cy9jZGVmcy5oPgotLQotIC8qCi0gICogYXJfaW8uYwotICAqLwotZGlmZiAtLWdpdCBhL3NyYy9maWxlX3N1YnMuYyBiL3NyYy9maWxlX3N1YnMuYwotaW5kZXggNTU5MGZmMS4uMTViYzMzOSAxMDA2NDQKLS0tLSBhL3NyYy9maWxlX3N1YnMuYwotKysrIGIvc3JjL2ZpbGVfc3Vicy5jCi1AQCAtNTIsNyArNTIsNyBAQAotICNpbmNsdWRlICJleHRlcm4uaCIKLSAKLSBzdGF0aWMgaW50Ci0tbWtfbGluayBfX1AoKHJlZ2lzdGVyIGNoYXIgKixyZWdpc3RlciBzdHJ1Y3Qgc3RhdCAqLHJlZ2lzdGVyIGNoYXIgKiwgaW50KSk7Ci0rbWtfbGluayAocmVnaXN0ZXIgY2hhciAqLHJlZ2lzdGVyIHN0cnVjdCBzdGF0ICoscmVnaXN0ZXIgY2hhciAqLCBpbnQpOwotIAotIC8qCi0gICogcm91dGluZXMgdGhhdCBkZWFsIHdpdGggZmlsZSBvcGVyYXRpb25zIHN1Y2ggYXM6IGNyZWF0aW5nLCByZW1vdmluZzsKLWRpZmYgLS1naXQgYS9zcmMvdGFibGVzLmMgYi9zcmMvdGFibGVzLmMKLWluZGV4IDIyNzViZjcuLjhmZGRjYTQgMTAwNjQ0Ci0tLS0gYS9zcmMvdGFibGVzLmMKLSsrKyBiL3NyYy90YWJsZXMuYwotQEAgLTM5LDcgKzM5LDcgQEAKLSAjaW5jbHVkZSA8c3lzL3RpbWUuaD4KLSAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KLSAjaW5jbHVkZSA8c3lzL3BhcmFtLmg+Ci0tI2luY2x1ZGUgPHN5cy9mY250bC5oPgotKyNpbmNsdWRlIDxmY250bC5oPgotICNpbmNsdWRlIDxzdGRpby5oPgotICNpbmNsdWRlIDxzdHJpbmcuaD4KLSAjaW5jbHVkZSA8dW5pc3RkLmg+Ci0tLSAKLTIuNi40Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcGF4L3BheC8wMDAxLWluY2x1ZGUtc3lzLXN5c21hY3Jvcy5oLWZvci1tYWpvci1taW5vci1kZWZpbml0aW9ucy5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcGF4L3BheC8wMDAxLWluY2x1ZGUtc3lzLXN5c21hY3Jvcy5oLWZvci1tYWpvci1taW5vci1kZWZpbml0aW9ucy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWQ5NjliYy4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BheC9wYXgvMDAwMS1pbmNsdWRlLXN5cy1zeXNtYWNyb3MuaC1mb3ItbWFqb3ItbWlub3ItZGVmaW5pdGlvbnMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw2NSArMCwwIEBACi1Gcm9tIDdmNGYzNzlmODM0M2MwY2U5MmFhMzBmM2Y5MDM3Mjg4YTA4OWE5MDIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotRGF0ZTogU3VuLCAxOCBEZWMgMjAxNiAwODoyNDo1NiArMDAwMAotU3ViamVjdDogW1BBVENIXSBpbmNsdWRlIDxzeXMvc3lzbWFjcm9zLmg+IGZvciBtYWpvci9taW5vciBkZWZpbml0aW9ucwotCi1nbGliYyAyLjI1IHdpbGwgZXJyb3Igb3V0IGlmIHRoZSBhcHBsaWNhdGlvbnMgYXJlIGV4cGVjdGluZwotdGhpcyB0byBjb21lIGZyb20gc3lzL3R5cGVzLmgsIGl0IGlzIGJlaW5nIHJlbW92ZWQgZnJvbQotdGhlcmUuCi0KLUZpeGVzCi0KLWVycm9yOiBJbiB0aGUgR05VIEMgTGlicmFyeSwgIm1pbm9yIiBpcyBkZWZpbmVkCi18ICBieSA8c3lzL3N5c21hY3Jvcy5oPi4gRm9yIGhpc3RvcmljYWwgY29tcGF0aWJpbGl0eSwgaXQgaXMKLXwgIGN1cnJlbnRseSBkZWZpbmVkIGJ5IDxzeXMvdHlwZXMuaD4gYXMgd2VsbCwgYnV0IHdlIHBsYW4gdG8KLXwgIHJlbW92ZSB0aGlzIHNvb24uIFRvIHVzZSAibWlub3IiLCBpbmNsdWRlIDxzeXMvc3lzbWFjcm9zLmg+Ci18ICBkaXJlY3RseS4gSWYgeW91IGRpZCBub3QgaW50ZW5kIHRvIHVzZSBhIHN5c3RlbS1kZWZpbmVkIG1hY3JvCi18ICAibWlub3IiLCB5b3Ugc2hvdWxkIHVuZGVmaW5lIGl0IGFmdGVyIGluY2x1ZGluZyA8c3lzL3R5cGVzLmg+LiBbLVdlcnJvcl0KLXwgICAgICAgIHVsX29jdCAoKHVfbG9uZykgTUlOT1IgKGFyY24tPnNiLnN0X3JkZXYpLCBoZC0+ZGV2bWlub3IsCi18ICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgotCi1TaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgotLS0tCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKLQotIHNyYy9jcGlvLmMgICAgIHwgMiArLQotIHNyYy9nZW5fc3Vicy5jIHwgMiArLQotIHNyYy90YXIuYyAgICAgIHwgMiArLQotIDMgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQotCi1JbmRleDogcGF4LTMuNC9zcmMvY3Bpby5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gcGF4LTMuNC5vcmlnL3NyYy9jcGlvLmMKLSsrKyBwYXgtMy40L3NyYy9jcGlvLmMKLUBAIC0zNiw2ICszNiw3IEBACi0gI2luY2x1ZGUgImNvbmZpZy5oIgotICNlbmRpZgotIAotKyNpbmNsdWRlIDxzeXMvc3lzbWFjcm9zLmg+Ci0gI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotICNpbmNsdWRlIDxzeXMvdGltZS5oPgotICNpbmNsdWRlIDxzeXMvc3RhdC5oPgotSW5kZXg6IHBheC0zLjQvc3JjL2dlbl9zdWJzLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBwYXgtMy40Lm9yaWcvc3JjL2dlbl9zdWJzLmMKLSsrKyBwYXgtMy40L3NyYy9nZW5fc3Vicy5jCi1AQCAtMzcsNiArMzcsNyBAQAotICNpbmNsdWRlICJjb25maWcuaCIKLSAjZW5kaWYKLSAKLSsjaW5jbHVkZSA8c3lzL3N5c21hY3Jvcy5oPgotICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSAjaW5jbHVkZSA8c3lzL3RpbWUuaD4KLSAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KLUluZGV4OiBwYXgtMy40L3NyYy90YXIuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIHBheC0zLjQub3JpZy9zcmMvdGFyLmMKLSsrKyBwYXgtMy40L3NyYy90YXIuYwotQEAgLTM3LDYgKzM3LDcgQEAKLSAjaW5jbHVkZSAiY29uZmlnLmgiCi0gI2VuZGlmCi0gCi0rI2luY2x1ZGUgPHN5cy9zeXNtYWNyb3MuaD4KLSAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0gI2luY2x1ZGUgPHN5cy90aW1lLmg+Ci0gI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BheC9wYXgvMDAwMS11c2Utc3RydG9sbC1pbnN0ZWFkLW9mLXN0cnRvcS5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcGF4L3BheC8wMDAxLXVzZS1zdHJ0b2xsLWluc3RlYWQtb2Ytc3RydG9xLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1OGFjOWNlLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcGF4L3BheC8wMDAxLXVzZS1zdHJ0b2xsLWluc3RlYWQtb2Ytc3RydG9xLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotRnJvbSBiMWY1MDMyMDMzMmM5YzkwZmEzM2FiMTM2ZWYwZWMyZDEyY2RhNDYxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLURhdGU6IFdlZCwgNiBKYW4gMjAxNiAxMjozMDo1MiAtMDgwMAotU3ViamVjdDogW1BBVENIXSB1c2Ugc3RydG9sbCBpbnN0ZWFkIG9mIHN0cnRvcQotCi1Vc2UgTExPTkdfTUFYIGluc3RlYWQgb2YgTE9OR19MT05HX01BWAotTE9OR19MT05HX01BWCBpcyBHTlUgc3BlY2lmaWMKLQotU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KLS0tLQotVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCi0KLSBzcmMvb3B0aW9ucy5jIHwgNCArKy0tCi0gMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9vcHRpb25zLmMgYi9zcmMvb3B0aW9ucy5jCi1pbmRleCBkYThiNGNmLi5jNjYzYjRlIDEwMDY0NAotLS0tIGEvc3JjL29wdGlvbnMuYwotKysrIGIvc3JjL29wdGlvbnMuYwotQEAgLTE1NDcsOCArMTU0Nyw4IEBAIHN0cl9vZmZ0IChjaGFyICp2YWwpCi0gCi0gI2lmIChTSVpFT0ZfTE9ORyA9PSA0ICYmIFNJWkVPRl9PRkZfVCA9PSA4KSBcCi0gICAgIHx8IChkZWZpbmVkKF9GSUxFX09GRlNFVF9CSVRTKSAmJiBfRklMRV9PRkZTRVRfQklUUyA9PSA2NCkKLS0gIG51bSA9IHN0cnRvcSAodmFsLCAmZXhwciwgMCk7Ci0tICBpZiAoKG51bSA9PSBMT05HX0xPTkdfTUFYKSB8fCAobnVtIDw9IDApIHx8IChleHByID09IHZhbCkpCi0rICBudW0gPSBzdHJ0b2xsICh2YWwsICZleHByLCAwKTsKLSsgIGlmICgobnVtID09IExMT05HX01BWCkgfHwgKG51bSA8PSAwKSB8fCAoZXhwciA9PSB2YWwpKQotICNlbHNlCi0gICBudW0gPSBzdHJ0b2wgKHZhbCwgJmV4cHIsIDApOwotICAgaWYgKChudW0gPT0gTE9OR19NQVgpIHx8IChudW0gPD0gMCkgfHwgKGV4cHIgPT0gdmFsKSkKLS0tIAotMi42LjQKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9wYXgvcGF4L2ZpeF9mb3JfY29tcGlsZV93aXRoX2djYy00LjYuMC5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcGF4L3BheC9maXhfZm9yX2NvbXBpbGVfd2l0aF9nY2MtNC42LjAucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg4Nzc5YzMuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9wYXgvcGF4L2ZpeF9mb3JfY29tcGlsZV93aXRoX2djYy00LjYuMC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1UaGlzIHBhdGNoIGZpeGVzIHRoaXMgY29tcGlsZXIgZXJyb3Igd2l0aCBnY2MgNC42LjAKLQotTml0aW4gQSBLYW1ibGUgPG5pdGluLmEua2FtYmxlQGludGVsLmNvbT4gMjAxMS8wNS8wOAotCi18IGZ0cy5jOiBJbiBmdW5jdGlvbiAncGF4X2Z0c19zZXQnOgotfCBmdHMuYzo0Njk6NzogZXJyb3I6IHBhcmFtZXRlciAnc3AnIHNldCBidXQgbm90IHVzZWQgWy1XZXJyb3I9dW51c2VkLWJ1dC1zZXQtcGFyYW1ldGVyXQotfCBjYzE6IGFsbCB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFzIGVycm9ycwotfCAKLXwgbWFrZVsyXTogKioqIFtmdHMub10gRXJyb3IgMQotCi1JbmRleDogcGF4LTMuNC9saWIvZnRzLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBwYXgtMy40Lm9yaWcvbGliL2Z0cy5jCi0rKysgcGF4LTMuNC9saWIvZnRzLmMKLUBAIC00NjYsNyArNDY2LDcgQEAgbmFtZToJCXQgPSBzcC0+ZnRzX3BhdGggKyBOQVBQRU5EKHAtPmZ0cwotIC8qIEFSR1NVU0VEICovCi0gaW50Ci0gZnRzX3NldChzcCwgcCwgaW5zdHIpCi0tCUZUUyAqc3A7Ci0rCUZUUyBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkgKnNwOwotIAlGVFNFTlQgKnA7Ci0gCWludCBpbnN0cjsKLSB7CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BheC9wYXgvcGF4LTMuNF9maXhfZm9yX3gzMi5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcGF4L3BheC9wYXgtMy40X2ZpeF9mb3JfeDMyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YWRiZDAyLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcGF4L3BheC9wYXgtMy40X2ZpeF9mb3JfeDMyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTg1ICswLDAgQEAKLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1BdXRob3I6IEguSi4gTHUgPGhqbC50b29sc0BnbWFpbC5jb20+Ci1EYXRlOiAgIFR1ZSBEZWMgNiAxMDozNDo1MyAyMDExIC0wODAwCi0KLSAgICBGaXggcGF4LTMuNCBidWlsZCBmb3IgeDMyCi0gICAgCi0gICAgb2ZmX3QgaXMgOGJ5dGUgZm9yIHgzMi4gIFdlIG5lZWQgdG8gY2hlY2sgYm90aCBfRklMRV9PRkZTRVRfQklUUyBhbmQKLSAgICBzaXplIG9mIG9mZl90IHRvIHNlZSBpZiBmaWxlIG9mZnNldCBpcyA2NGJpdC4gIFRoaXMgcGF0Y2ggYWRkcwotICAgIEFDX0NIRUNLX1NJWkVPRihvZmZfdCkgYW5kIGNoZWNrcyBTSVpFT0ZfT0ZGX1QgPT0gOC4KLQotU2lnbmVkLW9mZi1ieTogTml0aW4gQSBLYW1ibGUgPG5pdGluLmEua2FtYmxlQGludGVsLmNvbT4gMjAxMS8xMi8wNgotCi1JbmRleDogcGF4LTMuNC9jb25maWd1cmUuaW4KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBwYXgtMy40Lm9yaWcvY29uZmlndXJlLmluCi0rKysgcGF4LTMuNC9jb25maWd1cmUuaW4KLUBAIC0zMyw0ICszMyw3IEBAIGRubCBDaGVja3MgZm9yIGhlYWRlciBmaWxlcy4KLSBkbmwgQ2hlY2tzIGZvciB0eXBlZGVmcywgc3RydWN0dXJlcywgYW5kIGNvbXBpbGVyIGNoYXJhY3RlcmlzdGljcy4KLSBBQ19DX0NPTlNUCi0gCi0rQUNfQ0hFQ0tfU0laRU9GKG9mZl90KQotK0FDX0NIRUNLX1NJWkVPRihsb25nKQotKwotIEFDX09VVFBVVChbTWFrZWZpbGUgbGliL01ha2VmaWxlIHNyYy9NYWtlZmlsZV0pCi1JbmRleDogcGF4LTMuNC9zcmMvYXJfaW8uYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIHBheC0zLjQub3JpZy9zcmMvYXJfaW8uYwotKysrIHBheC0zLjQvc3JjL2FyX2lvLmMKLUBAIC0zNzgsNyArMzc4LDggQEAgYXJfY2xvc2Uodm9pZCkKLSAJICogY291bGQgaGF2ZSB3cml0dGVuIGFueXRoaW5nIHlldC4KLSAJICovCi0gCWlmIChmcm10ID09IE5VTEwpIHsKLS0jaWYgZGVmaW5lZChfRklMRV9PRkZTRVRfQklUUykgJiYgX0ZJTEVfT0ZGU0VUX0JJVFMgPT0gNjQKLSsjaWYgKFNJWkVPRl9MT05HID09IDQgJiYgU0laRU9GX09GRl9UID09IDgpIFwKLSsgICAgfHwgKGRlZmluZWQoX0ZJTEVfT0ZGU0VUX0JJVFMpICYmIF9GSUxFX09GRlNFVF9CSVRTID09IDY0KQotIAkJKHZvaWQpZnByaW50ZihsaXN0ZiwgIiVzOiB1bmtub3duIGZvcm1hdCwgJXF1IGJ5dGVzIHNraXBwZWQuXG4iLAotICNlbHNlCi0gCQkodm9pZClmcHJpbnRmKGxpc3RmLCAiJXM6IHVua25vd24gZm9ybWF0LCAlbHUgYnl0ZXMgc2tpcHBlZC5cbiIsCi1AQCAtMzkxLDcgKzM5Miw4IEBAIGFyX2Nsb3NlKHZvaWQpCi0gCi0gCWlmIChzdHJjbXAoTk1fQ1BJTywgYXJndjApID09IDApCi0gCQkodm9pZClmcHJpbnRmKGxpc3RmLAotLSNpZiBkZWZpbmVkKF9GSUxFX09GRlNFVF9CSVRTKSAmJiBfRklMRV9PRkZTRVRfQklUUyA9PSA2NAotKyNpZiAoU0laRU9GX0xPTkcgPT0gNCAmJiBTSVpFT0ZfT0ZGX1QgPT0gOCkgXAotKyAgICB8fCAoZGVmaW5lZChfRklMRV9PRkZTRVRfQklUUykgJiYgX0ZJTEVfT0ZGU0VUX0JJVFMgPT0gNjQpCi0gCQkgICAgIiVxdSBibG9ja3NcbiIsCi0gI2Vsc2UKLSAJCSAgICAiJWx1IGJsb2Nrc1xuIiwKLUBAIC0zOTksNyArNDAxLDggQEAgYXJfY2xvc2Uodm9pZCkKLSAJCQkocmRjbnQgPyByZGNudCA6IHdyY250KSAvIDUxMjApOwotIAllbHNlIGlmIChzdHJjbXAoTk1fVEFSLCBhcmd2MCkgIT0gMCkKLSAJCSh2b2lkKWZwcmludGYobGlzdGYsCi0tI2lmIGRlZmluZWQoX0ZJTEVfT0ZGU0VUX0JJVFMpICYmIF9GSUxFX09GRlNFVF9CSVRTID09IDY0Ci0rI2lmIChTSVpFT0ZfTE9ORyA9PSA0ICYmIFNJWkVPRl9PRkZfVCA9PSA4KSBcCi0rICAgIHx8IChkZWZpbmVkKF9GSUxFX09GRlNFVF9CSVRTKSAmJiBfRklMRV9PRkZTRVRfQklUUyA9PSA2NCkKLSAJCSAgICAiJXM6ICVzIHZvbCAlZCwgJWx1IGZpbGVzLCAlcXUgYnl0ZXMgcmVhZCwgJXF1IGJ5dGVzIHdyaXR0ZW4uXG4iLAotICNlbHNlCi0gCQkgICAgIiVzOiAlcyB2b2wgJWQsICVsdSBmaWxlcywgJWx1IGJ5dGVzIHJlYWQsICVsdSBieXRlcyB3cml0dGVuLlxuIiwKLUluZGV4OiBwYXgtMy40L3NyYy9jcGlvLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBwYXgtMy40Lm9yaWcvc3JjL2NwaW8uYwotKysrIHBheC0zLjQvc3JjL2NwaW8uYwotQEAgLTIxOCw3ICsyMTgsOCBAQCByZF9sbl9ubSAoQVJDSEQgKmFyY24pCi0gCSAqLwotIAlpZiAoKGFyY24tPnNiLnN0X3NpemUgPT0gMCkgfHwKLSAJICAgIChhcmNuLT5zYi5zdF9zaXplID49IChvZmZfdCkgc2l6ZW9mKGFyY24tPmxuX25hbWUpKSkgewotLSNpZiBkZWZpbmVkKF9GSUxFX09GRlNFVF9CSVRTKSAmJiBfRklMRV9PRkZTRVRfQklUUyA9PSA2NAotKyNpZiAoU0laRU9GX0xPTkcgPT0gNCAmJiBTSVpFT0ZfT0ZGX1QgPT0gOCkgXAotKyAgICB8fCAoZGVmaW5lZChfRklMRV9PRkZTRVRfQklUUykgJiYgX0ZJTEVfT0ZGU0VUX0JJVFMgPT0gNjQpCi0gCQlwYXh3YXJuICgxLCAiQ3BpbyBsaW5rIG5hbWUgbGVuZ3RoIGlzIGludmFsaWQ6ICVxdSIsCi0gCQkJIGFyY24tPnNiLnN0X3NpemUpOwotICNlbHNlCi1JbmRleDogcGF4LTMuNC9zcmMvZ2VuX3N1YnMuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIHBheC0zLjQub3JpZy9zcmMvZ2VuX3N1YnMuYwotKysrIHBheC0zLjQvc3JjL2dlbl9zdWJzLmMKLUBAIC0xMzMsNyArMTMzLDggQEAgbHNfbGlzdCAoQVJDSEQgKmFyY24sIHRpbWVfdCBub3csIEZJTEUgKgotICAgICogcHJpbnQgZGV2aWNlIGlkJ3MgZm9yIGRldmljZXMsIG9yIHNpemVzIGZvciBvdGhlciBub2RlcwotICAgICovCi0gICBpZiAoKGFyY24tPnR5cGUgPT0gUEFYX0NIUikgfHwgKGFyY24tPnR5cGUgPT0gUEFYX0JMSykpCi0tI2lmIGRlZmluZWQoX0ZJTEVfT0ZGU0VUX0JJVFMpICYmIF9GSUxFX09GRlNFVF9CSVRTID09IDY0Ci0rI2lmIChTSVpFT0ZfTE9ORyA9PSA0ICYmIFNJWkVPRl9PRkZfVCA9PSA4KSBcCi0rICAgIHx8IChkZWZpbmVkKF9GSUxFX09GRlNFVF9CSVRTKSAmJiBfRklMRV9PRkZTRVRfQklUUyA9PSA2NCkKLSAgICAgKHZvaWQpIGZwcmludGYgKGZwLCAiJTRsdSwlNGx1ICIsICh1bnNpZ25lZCBsb25nKSBNQUpPUiAoc2JwLT5zdF9yZGV2KSwKLSAJCSAgICAodW5zaWduZWQgbG9uZykgTUlOT1IgKHNicC0+c3RfcmRldikpOwotICNlbHNlCi1AQCAtMTQyLDcgKzE0Myw4IEBAIGxzX2xpc3QgKEFSQ0hEICphcmNuLCB0aW1lX3Qgbm93LCBGSUxFICoKLSAjZW5kaWYKLSAgIGVsc2UKLSAgICAgewotLSNpZiBkZWZpbmVkKF9GSUxFX09GRlNFVF9CSVRTKSAmJiBfRklMRV9PRkZTRVRfQklUUyA9PSA2NAotKyNpZiAoU0laRU9GX0xPTkcgPT0gNCAmJiBTSVpFT0ZfT0ZGX1QgPT0gOCkgXAotKyAgICB8fCAoZGVmaW5lZChfRklMRV9PRkZTRVRfQklUUykgJiYgX0ZJTEVfT0ZGU0VUX0JJVFMgPT0gNjQpCi0gICAgICAgKHZvaWQpIGZwcmludGYgKGZwLCAiJTlxdSAiLCBzYnAtPnN0X3NpemUpOwotICNlbHNlCi0gICAgICAgKHZvaWQpIGZwcmludGYgKGZwLCAiJTlsdSAiLCBzYnAtPnN0X3NpemUpOwotQEAgLTMzNCw3ICszMzYsOCBAQCB1bF9hc2MgKHVfbG9uZyB2YWwsIGNoYXIgKnN0ciwgaW50IGxlbiwgCi0gICByZXR1cm4gKDApOwotIH0KLSAKLS0jaWYgZGVmaW5lZChfRklMRV9PRkZTRVRfQklUUykgJiYgX0ZJTEVfT0ZGU0VUX0JJVFMgPT0gNjQKLSsjaWYgKFNJWkVPRl9MT05HID09IDQgJiYgU0laRU9GX09GRl9UID09IDgpIFwKLSsgICAgfHwgKGRlZmluZWQoX0ZJTEVfT0ZGU0VUX0JJVFMpICYmIF9GSUxFX09GRlNFVF9CSVRTID09IDY0KQotIC8qCi0gICogYXNjX3VxZCgpCi0gICoJY29udmVydCBoZXgvb2N0YWwgY2hhcmFjdGVyIHN0cmluZyBpbnRvIGEgdV9xdWFkX3QuIFdlIGRvIG5vdCBoYXZlIHRvCi1JbmRleDogcGF4LTMuNC9zcmMvb3B0aW9ucy5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gcGF4LTMuNC5vcmlnL3NyYy9vcHRpb25zLmMKLSsrKyBwYXgtMy40L3NyYy9vcHRpb25zLmMKLUBAIC0xNTQ1LDcgKzE1NDUsOCBAQCBzdHJfb2ZmdCAoY2hhciAqdmFsKQotICAgY2hhciAqZXhwcjsKLSAgIG9mZl90IG51bSwgdDsKLSAKLS0jaWYgZGVmaW5lZChfRklMRV9PRkZTRVRfQklUUykgJiYgX0ZJTEVfT0ZGU0VUX0JJVFMgPT0gNjQKLSsjaWYgKFNJWkVPRl9MT05HID09IDQgJiYgU0laRU9GX09GRl9UID09IDgpIFwKLSsgICAgfHwgKGRlZmluZWQoX0ZJTEVfT0ZGU0VUX0JJVFMpICYmIF9GSUxFX09GRlNFVF9CSVRTID09IDY0KQotICAgbnVtID0gc3RydG9xICh2YWwsICZleHByLCAwKTsKLSAgIGlmICgobnVtID09IExPTkdfTE9OR19NQVgpIHx8IChudW0gPD0gMCkgfHwgKGV4cHIgPT0gdmFsKSkKLSAjZWxzZQotSW5kZXg6IHBheC0zLjQvc3JjL3Rhci5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gcGF4LTMuNC5vcmlnL3NyYy90YXIuYwotKysrIHBheC0zLjQvc3JjL3Rhci5jCi1AQCAtNTgsNyArNTgsOCBAQAotIHN0YXRpYyB1bnNpZ25lZCBsb25nIHRhcl9jaGtzbSAoY2hhciAqLCBpbnQpOwotIHN0YXRpYyBjaGFyICpuYW1lX3NwbGl0IChjaGFyICosIGludCk7Ci0gc3RhdGljIGludCB1bF9vY3QgKHVfbG9uZywgY2hhciAqLCBpbnQsIGludCk7Ci0tI2lmIGRlZmluZWQoX0ZJTEVfT0ZGU0VUX0JJVFMpICYmIF9GSUxFX09GRlNFVF9CSVRTID09IDY0Ci0rI2lmIChTSVpFT0ZfTE9ORyA9PSA0ICYmIFNJWkVPRl9PRkZfVCA9PSA4KSBcCi0rICAgIHx8IChkZWZpbmVkKF9GSUxFX09GRlNFVF9CSVRTKSAmJiBfRklMRV9PRkZTRVRfQklUUyA9PSA2NCkKLSBzdGF0aWMgaW50IHVxZF9vY3QgKHVfcXVhZF90LCBjaGFyICosIGludCwgaW50KTsKLSAjZW5kaWYKLSAKLUBAIC0xOTYsNyArMTk3LDggQEAgdWxfb2N0ICh1X2xvbmcgdmFsLCByZWdpc3RlciBjaGFyICpzdHIsIAotICAgcmV0dXJuICgwKTsKLSB9Ci0gCi0tI2lmIGRlZmluZWQoX0ZJTEVfT0ZGU0VUX0JJVFMpICYmIF9GSUxFX09GRlNFVF9CSVRTID09IDY0Ci0rI2lmIChTSVpFT0ZfTE9ORyA9PSA0ICYmIFNJWkVPRl9PRkZfVCA9PSA4KSBcCi0rICAgIHx8IChkZWZpbmVkKF9GSUxFX09GRlNFVF9CSVRTKSAmJiBfRklMRV9PRkZTRVRfQklUUyA9PSA2NCkKLSAvKgotICAqIHVxZF9vY3QoKQotICAqCWNvbnZlcnQgYW4gdV9xdWFkX3QgdG8gYW4gb2N0YWwgc3RyaW5nLiBvbmUgb2YgbWFueSBvZGRiYWxsIGZpZWxkCi1AQCAtNDI3LDcgKzQyOSw4IEBAIHRhcl9yZCAoQVJDSEQgKmFyY24sIGNoYXIgKmJ1ZikKLSAJCQkgICAgICAgMHhmZmYpOwotICAgYXJjbi0+c2Iuc3RfdWlkID0gKHVpZF90KSBhc2NfdWwgKGhkLT51aWQsIHNpemVvZiAoaGQtPnVpZCksIE9DVCk7Ci0gICBhcmNuLT5zYi5zdF9naWQgPSAoZ2lkX3QpIGFzY191bCAoaGQtPmdpZCwgc2l6ZW9mIChoZC0+Z2lkKSwgT0NUKTsKLS0jaWYgZGVmaW5lZChfRklMRV9PRkZTRVRfQklUUykgJiYgX0ZJTEVfT0ZGU0VUX0JJVFMgPT0gNjQKLSsjaWYgKFNJWkVPRl9MT05HID09IDQgJiYgU0laRU9GX09GRl9UID09IDgpIFwKLSsgICAgfHwgKGRlZmluZWQoX0ZJTEVfT0ZGU0VUX0JJVFMpICYmIF9GSUxFX09GRlNFVF9CSVRTID09IDY0KQotICAgYXJjbi0+c2Iuc3Rfc2l6ZSA9IChvZmZfdCkgYXNjX3VxZCAoaGQtPnNpemUsIHNpemVvZiAoaGQtPnNpemUpLCBPQ1QpOwotICNlbHNlCi0gICBhcmNuLT5zYi5zdF9zaXplID0gKG9mZl90KSBhc2NfdWwgKGhkLT5zaXplLCBzaXplb2YgKGhkLT5zaXplKSwgT0NUKTsKLUBAIC02NTksNyArNjYyLDggQEAgdGFyX3dyIChyZWdpc3RlciBBUkNIRCAqIGFyY24pCi0gICAgICAgICogZGF0YSBmb2xsb3dzIHRoaXMgZmlsZSwgc28gc2V0IHRoZSBwYWQKLSAgICAgICAgKi8KLSAgICAgICBoZC0+bGlua2ZsYWcgPSBBUkVHVFlQRTsKLS0jaWYgZGVmaW5lZChfRklMRV9PRkZTRVRfQklUUykgJiYgX0ZJTEVfT0ZGU0VUX0JJVFMgPT0gNjQKLSsjaWYgKFNJWkVPRl9MT05HID09IDQgJiYgU0laRU9GX09GRl9UID09IDgpIFwKLSsgICAgfHwgKGRlZmluZWQoX0ZJTEVfT0ZGU0VUX0JJVFMpICYmIF9GSUxFX09GRlNFVF9CSVRTID09IDY0KQotICAgICAgIGlmICh1cWRfb2N0ICgodV9xdWFkX3QpIGFyY24tPnNiLnN0X3NpemUsIGhkLT5zaXplLAotIAkJICAgc2l6ZW9mIChoZC0+c2l6ZSksIDEpKQotICNlbHNlCi1AQCAtODM0LDcgKzgzOCw4IEBAIHVzdGFyX3JkIChBUkNIRCAqYXJjbiwgY2hhciAqYnVmKQotICAgICovCi0gICBhcmNuLT5zYi5zdF9tb2RlID0gKG1vZGVfdCkgKGFzY191bCAoaGQtPm1vZGUsIHNpemVvZiAoaGQtPm1vZGUpLCBPQ1QpICYKLSAJCQkgICAgICAgMHhmZmYpOwotLSNpZiBkZWZpbmVkKF9GSUxFX09GRlNFVF9CSVRTKSAmJiBfRklMRV9PRkZTRVRfQklUUyA9PSA2NAotKyNpZiAoU0laRU9GX0xPTkcgPT0gNCAmJiBTSVpFT0ZfT0ZGX1QgPT0gOCkgXAotKyAgICB8fCAoZGVmaW5lZChfRklMRV9PRkZTRVRfQklUUykgJiYgX0ZJTEVfT0ZGU0VUX0JJVFMgPT0gNjQpCi0gICBhcmNuLT5zYi5zdF9zaXplID0gKG9mZl90KSBhc2NfdXFkIChoZC0+c2l6ZSwgc2l6ZW9mIChoZC0+c2l6ZSksIE9DVCk7Ci0gI2Vsc2UKLSAgIGFyY24tPnNiLnN0X3NpemUgPSAob2ZmX3QpIGFzY191bCAoaGQtPnNpemUsIHNpemVvZiAoaGQtPnNpemUpLCBPQ1QpOwotQEAgLTEwODEsNyArMTA4Niw4IEBAIHVzdGFyX3dyIChyZWdpc3RlciBBUkNIRCAqIGFyY24pCi0gICAgICAgZWxzZQotIAloZC0+dHlwZWZsYWcgPSBSRUdUWVBFOwotICAgICAgIGFyY24tPnBhZCA9IFRBUl9QQUQgKGFyY24tPnNiLnN0X3NpemUpOwotLSNpZiBkZWZpbmVkKF9GSUxFX09GRlNFVF9CSVRTKSAmJiBfRklMRV9PRkZTRVRfQklUUyA9PSA2NAotKyNpZiAoU0laRU9GX0xPTkcgPT0gNCAmJiBTSVpFT0ZfT0ZGX1QgPT0gOCkgXAotKyAgICB8fCAoZGVmaW5lZChfRklMRV9PRkZTRVRfQklUUykgJiYgX0ZJTEVfT0ZGU0VUX0JJVFMgPT0gNjQpCi0gICAgICAgaWYgKHVxZF9vY3QgKCh1X3F1YWRfdCkgYXJjbi0+c2Iuc3Rfc2l6ZSwgaGQtPnNpemUsCi0gCQkgICBzaXplb2YgKGhkLT5zaXplKSwgMykpCi0gCXsKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcGF4L3BheF8zLjQuYmIgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BheC9wYXhfMy40LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZGY5YTgxLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcGF4L3BheF8zLjQuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi1TVU1NQVJZID0gIlBvcnRhYmxlIEFyY2hpdmUgZVhjaGFuZ2UiCi1ERVNDUklQVElPTiA9ICJwYXggKFBvcnRhYmxlIEFyY2hpdmUgZVhjaGFuZ2UpIGlzIHRoZSBQT1NJWCBzdGFuZGFyZCBhcmNoaXZlIHRvb2wiCi1IT01FUEFHRSA9ICJodHRwOi8vY3Zzd2ViLm9wZW5ic2Qub3JnL2NnaS1iaW4vY3Zzd2ViL3NyYy9iaW4vcGF4LyIKLUJVR1RSQUNLRVIgPSAiaHR0cDovL3d3dy5vcGVuYnNkLm9yZy9xdWVyeS1wci5odG1sIgotCi1MSUNFTlNFID0gIkJTRCIKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTRiMGI2NzRkZmRjNTZkYWEzODMyZDQwNjliODIwZWEwIFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL3NyYy9wYXguaDtlbmRsaW5lPTQwO21kNT0zMDlkM2UyNDFjMWQ4MjA2OTIyOGU1YTUxZTliOGQ2MCBcCi0gICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9zcmMvY3Bpby5oO2VuZGxpbmU9NDA7bWQ1PWMzYjRiYmZmNjEzM2E4MzM4Nzk2ODYxN2JiYWU4YWM0IFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL2xpYi92aXMuaDtlbmRsaW5lPTQwO21kNT1iMjgzZjc1OWFiZDRhNWFkN2UwMTRiODBmNTFmYzA1MyIKLQotU0VDVElPTiA9ICJiYXNlIgotUFIgPSAicjIiCi0KLURFUEVORFNfYXBwZW5kX2xpYmMtbXVzbCA9ICIgZnRzICIKLQotU1JDX1VSSSA9ICJodHRwOi8vcGtncy5mZWRvcmFwcm9qZWN0Lm9yZy9yZXBvL3BrZ3MvJHtCUE59LyR7QlB9LnRhci5iejIvZmJkOTAyM2I1OTBiNDVhYzNhZGU5NTg3MDcwMmEwZDYvJHtCUH0udGFyLmJ6MiBcCi0gICAgICAgICAgIGZpbGU6Ly9maXhfZm9yX2NvbXBpbGVfd2l0aF9nY2MtNC42LjAucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vcGF4LTMuNF9maXhfZm9yX3gzMi5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLWluY2x1ZGUtc3lzLXN5c21hY3Jvcy5oLWZvci1tYWpvci1taW5vci1kZWZpbml0aW9ucy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLUFkZC1hLWNvbW1lbnQtZm9yLWZhbGx0aHJvdWdoLnBhdGNoIFwKLSAgICAgICAgICAgIgotCi1TUkNfVVJJX2FwcGVuZF9saWJjLW11c2wgPSAiIGZpbGU6Ly8wMDAxLUZpeC1idWlsZC13aXRoLW11c2wucGF0Y2ggXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlOi8vMDAwMS11c2Utc3RydG9sbC1pbnN0ZWFkLW9mLXN0cnRvcS5wYXRjaCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAiCi0KLVNSQ19VUklbbWQ1c3VtXSA9ICJmYmQ5MDIzYjU5MGI0NWFjM2FkZTk1ODcwNzAyYTBkNiIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJhYzNjMDYwNDhlMDI4MjgwNzdjZjc3NTdkM2QxNDIyNDE0MjkyMzg4OTNiOTFkNTI5YWYyOWEyZThjYzU2MjNiIgotCi1pbmhlcml0IGF1dG90b29scwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9wZXJsL2xpYmNvbnZlcnQtYXNuMS1wZXJsXzAuMjcuYmIgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BlcmwvbGliY29udmVydC1hc24xLXBlcmxfMC4yNy5iYgppbmRleCAxNzBlN2VjLi42NDRkODIwIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BlcmwvbGliY29udmVydC1hc24xLXBlcmxfMC4yNy5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BlcmwvbGliY29udmVydC1hc24xLXBlcmxfMC4yNy5iYgpAQCAtMTAsNyArMTAsNyBAQAogCiBTID0gIiR7V09SS0RJUn0vQ29udmVydC1BU04xLSR7UFZ9IgogCi1pbmhlcml0IGNwYW4KK2luaGVyaXQgY3BhbiBwdGVzdC1wZXJsCiAKIEVYVFJBX1BFUkxGTEFHUyA9ICItSSAke1BFUkxIT1NUTElCfSIKIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9wZXJsL2xpYnRpbWVkYXRlLXBlcmxfMi4zMC5iYiBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcGVybC9saWJ0aW1lZGF0ZS1wZXJsXzIuMzAuYmIKaW5kZXggNDI3NjEzYy4uOGUxNDYxYyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9wZXJsL2xpYnRpbWVkYXRlLXBlcmxfMi4zMC5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BlcmwvbGlidGltZWRhdGUtcGVybF8yLjMwLmJiCkBAIC05LDcgKzksNyBAQAogCiBTID0gIiR7V09SS0RJUn0vVGltZURhdGUtJHtQVn0iCiAKLWluaGVyaXQgY3BhbgoraW5oZXJpdCBjcGFuIHB0ZXN0LXBlcmwKIAogQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcGVybC9saWJ4bWwtbmFtZXNwYWNlc3VwcG9ydC1wZXJsXzEuMTIuYmIgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BlcmwvbGlieG1sLW5hbWVzcGFjZXN1cHBvcnQtcGVybF8xLjEyLmJiCmluZGV4IDM0OThhMjguLmZhOWY5OTUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcGVybC9saWJ4bWwtbmFtZXNwYWNlc3VwcG9ydC1wZXJsXzEuMTIuYmIKKysrIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9wZXJsL2xpYnhtbC1uYW1lc3BhY2VzdXBwb3J0LXBlcmxfMS4xMi5iYgpAQCAtNiwxOCArNiwyMiBAQAogCiBTRUNUSU9OID0gImxpYnMiCiBMSUNFTlNFID0gIkFydGlzdGljLTEuMCB8IEdQTC0xLjArIgotUFIgPSAicjMiCiAKLUxJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL01FVEEueW1sO2JlZ2lubGluZT0yMjtlbmRsaW5lPTIyO21kNT05Y2ExYTRhOTQxNDk2ZTdmZWVkYWM3MmM0ZmI4YjEzNyIKK1NSQ05BTUUgPSAiWE1MLU5hbWVzcGFjZVN1cHBvcnQiCiAKLVNSQ19VUkkgPSAiaHR0cDovL3NlYXJjaC5jcGFuLm9yZy9DUEFOL2F1dGhvcnMvaWQvUC9QRS9QRVJJR1JJTi9YTUwtTmFtZXNwYWNlU3VwcG9ydC0ke1BWfS50YXIuZ3oiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1jOWQ4YTExN2U3NjIwYjVhZGY4ZDY5YzI5NjEzY2VhYiIKKworU1JDX1VSSSA9ICIke0NQQU5fTUlSUk9SfS9hdXRob3JzL2lkL1AvUEUvUEVSSUdSSU4vJHtTUkNOQU1FfS0ke1BWfS50YXIuZ3oiCiBTUkNfVVJJW21kNXN1bV0gPSAiYTg5MTZjNmQwOTViY2YwNzNlMTEwOGFmMDJlNzhjOTciCiBTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNDdlOTk1ODU5ZjhkZDA0MTNhYTNmMjJkMzUwYzRhNjJkYTY1MmU4NTQyNjdhYTA1ODZhZTU0NGFlMmJhZTVlZiIKIAorVVBTVFJFQU1fQ0hFQ0tfUkVHRVggPSAiWE1MXC1OYW1lc3BhY2VTdXBwb3J0XC0oP1A8cHZlcj4oXGQrXC5cZCspKSg/IV9cZCspLnRhciIKIAotUyA9ICIke1dPUktESVJ9L1hNTC1OYW1lc3BhY2VTdXBwb3J0LSR7UFZ9IgorUyA9ICIke1dPUktESVJ9LyR7U1JDTkFNRX0tJHtQVn0iCiAKLWluaGVyaXQgY3BhbgoraW5oZXJpdCBjcGFuIHB0ZXN0LXBlcmwKKworUkRFUEVORFNfJHtQTn0tcHRlc3QgKz0gInBlcmwtbW9kdWxlLXRlc3QtbW9yZSIKIAogQkJDTEFTU0VYVEVORD0ibmF0aXZlIgogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BlcmwvbGlieG1sLXNheC1iYXNlLXBlcmxfMS4wOS5iYiBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcGVybC9saWJ4bWwtc2F4LWJhc2UtcGVybF8xLjA5LmJiCmluZGV4IGNkM2E1ODAuLmIzZTAxZTkgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcGVybC9saWJ4bWwtc2F4LWJhc2UtcGVybF8xLjA5LmJiCisrKyBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcGVybC9saWJ4bWwtc2F4LWJhc2UtcGVybF8xLjA5LmJiCkBAIC0xOSw2ICsxOSw2IEBACiAKIFMgPSAiJHtXT1JLRElSfS9YTUwtU0FYLUJhc2UtJHtQVn0iCiAKLWluaGVyaXQgY3BhbgoraW5oZXJpdCBjcGFuIHB0ZXN0LXBlcmwKIAogQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BlcmwvbGlieG1sLXNheC1wZXJsXzAuOTkuYmIgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BlcmwvbGlieG1sLXNheC1wZXJsXzAuOTkuYmIKaW5kZXggYWQzMWI5Yy4uY2RjYmViZiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9wZXJsL2xpYnhtbC1zYXgtcGVybF8wLjk5LmJiCisrKyBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcGVybC9saWJ4bWwtc2F4LXBlcmxfMC45OS5iYgpAQCAtMjMsNiArMjMsMTEgQEAKIAogUyA9ICIke1dPUktESVJ9L1hNTC1TQVgtJHtQVn0iCiAKLWluaGVyaXQgY3BhbgoraW5oZXJpdCBjcGFuIHB0ZXN0LXBlcmwKKworZG9faW5zdGFsbF9wdGVzdCgpIHsKKwljcCAtciAke0J9L3Rlc3RmaWxlcyAke0R9JHtQVEVTVF9QQVRIfQorCWNob3duIC1SIHJvb3Q6cm9vdCAke0R9JHtQVEVTVF9QQVRIfS90ZXN0ZmlsZXMKK30KIAogQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BpZ3ovcGlnei5pbmMgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BpZ3ovcGlnei5pbmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk3OGY5MDUuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9waWd6L3BpZ3ouaW5jCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotU1VNTUFSWSA9ICJBIHBhcmFsbGVsIGltcGxlbWVudGF0aW9uIG9mIGd6aXAiCi1ERVNDUklQVElPTiA9ICJwaWd6LCB3aGljaCBzdGFuZHMgZm9yIHBhcmFsbGVsIGltcGxlbWVudGF0aW9uIG9mIGd6aXAsIGlzIGEgXAotZnVsbHkgZnVuY3Rpb25hbCByZXBsYWNlbWVudCBmb3IgZ3ppcCB0aGF0IGV4cGxvaXRzIG11bHRpcGxlIHByb2Nlc3NvcnMgYW5kIFwKLW11bHRpcGxlIGNvcmVzIHRvIHRoZSBoaWx0IHdoZW4gY29tcHJlc3NpbmcgZGF0YS4gcGlneiB3YXMgd3JpdHRlbiBieSBNYXJrIFwKLUFkbGVyLCBhbmQgdXNlcyB0aGUgemxpYiBhbmQgcHRocmVhZCBsaWJyYXJpZXMuIgotSE9NRVBBR0UgPSAiaHR0cDovL3psaWIubmV0L3BpZ3ovIgotU0VDVElPTiA9ICJjb25zb2xlL3V0aWxzIgotTElDRU5TRSA9ICJabGliICYgQXBhY2hlLTIuMCIKLQotUFJPVklERVNfY2xhc3MtbmF0aXZlICs9ICJnemlwLW5hdGl2ZSIKLQotREVQRU5EUyA9ICJ6bGliIgotCi1FWFRSQV9PRU1BS0UgPSAiLWUgTUFLRUZMQUdTPSIKLQotaW5oZXJpdCB1cGRhdGUtYWx0ZXJuYXRpdmVzCi0KLWRvX2luc3RhbGxfY2xhc3MtdGFyZ2V0KCkgewotCSMgSW5zdGFsbCBmaWxlcyBpbnRvIC9iaW4gKEZIUyksIHdoaWNoIGlzIHR5cGljYWwgcGxhY2UgZm9yIGd6aXAKLQlpbnN0YWxsIC1kICR7RH0ke2Jhc2VfYmluZGlyfQotCWluc3RhbGwgJHtCfS9waWd6ICR7RH0ke2Jhc2VfYmluZGlyfS9waWd6Ci0JbG4gLW5zZiBwaWd6ICR7RH0ke2Jhc2VfYmluZGlyfS91bnBpZ3oKLQlsbiAtbnNmIHBpZ3ogJHtEfSR7YmFzZV9iaW5kaXJ9L3BpZ3pjYXQKLX0KLQotZG9faW5zdGFsbCgpIHsKLQlpbnN0YWxsIC1kICR7RH0ke2JpbmRpcn0KLQlpbnN0YWxsICR7Qn0vcGlneiAke0R9JHtiaW5kaXJ9L2d6aXAKLQlsbiAtbnNmIGd6aXAgJHtEfSR7YmluZGlyfS9ndW56aXAKLQlsbiAtbnNmIGd6aXAgJHtEfSR7YmluZGlyfS96Y2F0Ci19Ci0KLUFMVEVSTkFUSVZFX1BSSU9SSVRZID0gIjgwIgotQUxURVJOQVRJVkVfJHtQTn0gPSAiZ3VuemlwIGd6aXAgemNhdCIKLUFMVEVSTkFUSVZFXyR7UE59X2NsYXNzLW5hdGl2ZXNkayA9ICIiCi1BTFRFUk5BVElWRV9MSU5LX05BTUVbZ3VuemlwXSA9ICIke2Jhc2VfYmluZGlyfS9ndW56aXAiCi1BTFRFUk5BVElWRV9MSU5LX05BTUVbZ3ppcF0gPSAiJHtiYXNlX2JpbmRpcn0vZ3ppcCIKLUFMVEVSTkFUSVZFX0xJTktfTkFNRVt6Y2F0XSA9ICIke2Jhc2VfYmluZGlyfS96Y2F0IgotQUxURVJOQVRJVkVfVEFSR0VUID0gIiR7YmFzZV9iaW5kaXJ9L3BpZ3oiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BpZ3ovcGlnel8yLjMuNC5iYiBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcGlnei9waWd6XzIuMy40LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNDgzMmRmLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcGlnei9waWd6XzIuMy40LmJiCisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotcmVxdWlyZSBwaWd6LmluYwotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vcGlnei5jO2JlZ2lubGluZT03O2VuZGxpbmU9MjE7bWQ1PWEyMWQ0MDc1Y2IwMGFiNGNhMTdmY2U1ZTc1MzRjYTk1IgotCi1VUFNUUkVBTV9DSEVDS19VUkkgPSAiaHR0cDovL3psaWIubmV0LyR7QlBOfS8iCi1VUFNUUkVBTV9DSEVDS19SRUdFWCA9ICJwaWd6LSg/UDxwdmVyPi4qKVwudGFyIgotU1JDX1VSSSA9ICJodHRwczovL2dpdGh1Yi5jb20vbWFkbGVyL3BpZ3ovYXJjaGl2ZS92JHtQVn0udGFyLmd6O2Rvd25sb2FkZmlsZW5hbWU9JHtCUH0udGFyLmd6IgotU1JDX1VSSVttZDVzdW1dID0gImMxMDkwNTcwNTBiMTVlZGYzZWI5YmI0ZDA4MDUyMzVlIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjc2M2YyZmRiMjAzYWEwYjdiNjQwZTYzMzg1ZTM4ZTVkZDRlNWFhYTA0MWJjOGU0MmFhOTZmMmVmMTU2YjA2ZTgiCi0KLUJCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIG5hdGl2ZXNkayIKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9waWd6L3BpZ3pfMi40LmJiIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9waWd6L3BpZ3pfMi40LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlNmRhOWMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BpZ3ovcGlnel8yLjQuYmIKQEAgLTAsMCArMSwzMCBAQAorU1VNTUFSWSA9ICJBIHBhcmFsbGVsIGltcGxlbWVudGF0aW9uIG9mIGd6aXAiCitERVNDUklQVElPTiA9ICJwaWd6LCB3aGljaCBzdGFuZHMgZm9yIHBhcmFsbGVsIGltcGxlbWVudGF0aW9uIG9mIGd6aXAsIGlzIGEgXAorZnVsbHkgZnVuY3Rpb25hbCByZXBsYWNlbWVudCBmb3IgZ3ppcCB0aGF0IGV4cGxvaXRzIG11bHRpcGxlIHByb2Nlc3NvcnMgYW5kIFwKK211bHRpcGxlIGNvcmVzIHRvIHRoZSBoaWx0IHdoZW4gY29tcHJlc3NpbmcgZGF0YS4gcGlneiB3YXMgd3JpdHRlbiBieSBNYXJrIFwKK0FkbGVyLCBhbmQgdXNlcyB0aGUgemxpYiBhbmQgcHRocmVhZCBsaWJyYXJpZXMuIgorSE9NRVBBR0UgPSAiaHR0cDovL3psaWIubmV0L3BpZ3ovIgorU0VDVElPTiA9ICJjb25zb2xlL3V0aWxzIgorTElDRU5TRSA9ICJabGliICYgQXBhY2hlLTIuMCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL3BpZ3ouYzttZDU9OWFlNmRlZThjZWJhOTYxMDU5NmVkMGFkYTQ5M2QxNDI7YmVnaW5saW5lPTc7ZW5kbGluZT0yMSIKKworU1JDX1VSSSA9ICJodHRwOi8vemxpYi5uZXQvJHtCUE59L2Zvc3NpbHMvJHtCUH0udGFyLmd6IgorU1JDX1VSSVttZDVzdW1dID0gImRlZjJmNmUxOWQ5ZDgyMzE0NDVhZGMxMzQ5ZDM0NmRmIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImE0ZjgxNjIyMmE3YjQyNjliZDIzMjY4MDU5MGI1NzljY2M3MjU5MWYxYmI1YWRhZmNkNzIwOGNhNzdlMTRmNzMiCisjIFBvaW50IHRoaXMgYXQgdGhlIGhvbWVwYWdlIGluIGNhc2UgL2Zvc3NpbHMvIGlzbid0IHVwZGF0ZWQKK1VQU1RSRUFNX0NIRUNLX1VSSSA9ICJodHRwOi8vemxpYi5uZXQvJHtCUE59LyIKK1VQU1RSRUFNX0NIRUNLX1JFR0VYID0gInBpZ3otKD9QPHB2ZXI+LiopXC50YXIiCisKK0RFUEVORFMgPSAiemxpYiIKKworRVhUUkFfT0VNQUtFID0gIi1lIE1BS0VGTEFHUz0iCisKK2RvX2luc3RhbGwoKSB7CisJIyBJbnN0YWxsIGZpbGVzIGludG8gL2JpbiAoRkhTKSwgd2hpY2ggaXMgdHlwaWNhbCBwbGFjZSBmb3IgZ3ppcAorCWluc3RhbGwgLWQgJHtEfSR7YmFzZV9iaW5kaXJ9CisJaW5zdGFsbCAke0J9L3BpZ3ogJHtEfSR7YmFzZV9iaW5kaXJ9L3BpZ3oKKwlsbiAtbnNmIHBpZ3ogJHtEfSR7YmFzZV9iaW5kaXJ9L3VucGlnegorCWxuIC1uc2YgcGlneiAke0R9JHtiYXNlX2JpbmRpcn0vcGlnemNhdAorfQorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3Byb2Nwcy9wcm9jcHNfMy4zLjEyLmJiIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9wcm9jcHMvcHJvY3BzXzMuMy4xMi5iYgppbmRleCBhZGFiZDc1Li5lY2YyMTVmIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3Byb2Nwcy9wcm9jcHNfMy4zLjEyLmJiCisrKyBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcHJvY3BzL3Byb2Nwc18zLjMuMTIuYmIKQEAgLTEsNyArMSw3IEBACiBTVU1NQVJZID0gIlN5c3RlbSBhbmQgcHJvY2VzcyBtb25pdG9yaW5nIHV0aWxpdGllcyIKIERFU0NSSVBUSU9OID0gIlByb2NwcyBjb250YWlucyBhIHNldCBvZiBzeXN0ZW0gdXRpbGl0aWVzIHRoYXQgcHJvdmlkZSBzeXN0ZW0gaW5mb3JtYXRpb24gYWJvdXQgcHJvY2Vzc2VzIHVzaW5nIFwKIHRoZSAvcHJvYyBmaWxlc3lzdGVtLiBUaGUgcGFja2FnZSBpbmNsdWRlcyB0aGUgcHJvZ3JhbXMgcHMsIHRvcCwgdm1zdGF0LCB3LCBraWxsLCBhbmQgc2tpbGwuIgotSE9NRVBBR0UgPSAiaHR0cHM6Ly9naXRvcmlvdXMub3JnL3Byb2NwcyIKK0hPTUVQQUdFID0gImh0dHBzOi8vZ2l0bGFiLmNvbS9wcm9jcHMtbmcvcHJvY3BzIgogU0VDVElPTiA9ICJiYXNlIgogTElDRU5TRSA9ICJHUEx2MisgJiBMR1BMdjIrIgogTElDX0ZJTEVTX0NIS1NVTT0iZmlsZTovL0NPUFlJTkc7bWQ1PWIyMzRlZTRkNjlmNWZjZTQ0ODZhODBmZGFmNGE0MjYzIFwKQEAgLTIzLDggKzIzLDYgQEAKIAogRVhUUkFfT0VDT05GID0gIi0tZW5hYmxlLXNraWxsIC0tZGlzYWJsZS1tb2Rlcm4tdG9wIgogCi1DUFBGTEFHUyArPSAiLUkke1N9IgotCiBkb19pbnN0YWxsX2FwcGVuZCAoKSB7CiAJaW5zdGFsbCAtZCAke0R9JHtiYXNlX2JpbmRpcn0KIAlbICIke2JpbmRpcn0iICE9ICIke2Jhc2VfYmluZGlyfSIgXSAmJiBmb3IgaSBpbiAke2Jhc2VfYmluZGlyX3Byb2dzfTsgZG8gbXYgJHtEfSR7YmluZGlyfS8kaSAke0R9JHtiYXNlX2JpbmRpcn0vJGk7IGRvbmUKQEAgLTQ0LDcgKzQyLDcgQEAKIAogQ09ORkZJTEVTXyR7UE59ID0gIiR7c3lzY29uZmRpcn0vc3lzY3RsLmNvbmYiCiAKLWJpbmRpcl9wcm9ncyA9ICJmcmVlIHBraWxsIHBtYXAgcGdyZXAgcHdkeCBza2lsbCBzbmljZSB0b3AgdXB0aW1lIgorYmluZGlyX3Byb2dzID0gImZyZWUgcGtpbGwgcG1hcCBwZ3JlcCBwd2R4IHNraWxsIHNuaWNlIHRvcCB1cHRpbWUgdyIKIGJhc2VfYmluZGlyX3Byb2dzICs9ICJraWxsIHBpZG9mIHBzIHdhdGNoIgogYmFzZV9zYmluZGlyX3Byb2dzICs9ICJzeXNjdGwiCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcHNtaXNjL2ZpbGVzLzAwMDEtVHlwby1pbi1mdXNlci1tYWtlcy1NLW9uLWFsbC10aGUtdGltZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcHNtaXNjL2ZpbGVzLzAwMDEtVHlwby1pbi1mdXNlci1tYWtlcy1NLW9uLWFsbC10aGUtdGltZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTU3ZDYwZi4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BzbWlzYy9maWxlcy8wMDAxLVR5cG8taW4tZnVzZXItbWFrZXMtTS1vbi1hbGwtdGhlLXRpbWUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi1Gcm9tIDM2MzhjYzU1YjRkMDg4NTFmYWJhNDY2MzVkNzM3YjI0ZDAxNjY2NWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBCcmFkIEpvcnNjaCA8YW5vbWllQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLURhdGU6IEZyaSwgMjggRmViIDIwMTQgMjE6NTU6MDIgKzExMDAKLVN1YmplY3Q6IFtQQVRDSF0gVHlwbyBpbiBmdXNlciBtYWtlcyAtTSBvbiBhbGwgdGhlIHRpbWUKLQotQnJhZCBmb3VuZCB0aGF0IGZ1c2VyIGhhZCB0aGUgLU0gb3B0aW9uIG9uIGFsbCB0aGUgdGltZS4KLUEgc2ltcGxlIGJ1dCBzaWduaWZpY2FudCB0eXBvIGNhdXNlZCB0aGlzLCB0aGFua3MgdGhlIHRoZSBwYXRjaC4KLQotQnVnLURlYmlhbjogaHR0cDovL2J1Z3MuZGViaWFuLm9yZy83NDAyNzUKLQotVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydAotCi1TaWduZWQtb2ZmLWJ5OiBDcmFpZyBTbWFsbCA8Y3NtYWxsQGVuYy5jb20uYXU+Ci0tLS0KLSBDaGFuZ2VMb2cgICB8IDQgKysrKwotIHNyYy9mdXNlci5jIHwgMiArLQotIDIgZmlsZXMgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKLWluZGV4IGZkMWNjY2YuLmU1Zjc4NGMgMTAwNjQ0Ci0tLS0gYS9DaGFuZ2VMb2cKLSsrKyBiL0NoYW5nZUxvZwotQEAgLTEsMyArMSw3IEBACi0rQ2hhbmdlcyBpbiAyMi4yMgotKz09PT09PT09PT09PT09PT0KLSsJKiBGaXhlZCB0eXBvIGluIGZ1c2VyIHdoaWNoIGhhcyAtTSBvbiBEZWJpYW4gIzc0MDI3NQotKwotIENoYW5nZXMgaW4gMjIuMjEKLSA9PT09PT09PT09PT09PT09Ci0gCSogTWlzc2luZyBjb21tYSBpbiBmdXNlcigxKSBhZGRlZCBEZWJpYW4gIzcwMjM5MQotZGlmZiAtLWdpdCBhL3NyYy9mdXNlci5jIGIvc3JjL2Z1c2VyLmMKLWluZGV4IGI0ODVmNjUuLjM4OWIzMDIgMTAwNjQ0Ci0tLS0gYS9zcmMvZnVzZXIuYwotKysrIGIvc3JjL2Z1c2VyLmMKLUBAIC0xMTc0LDcgKzExNzQsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQotIAkJdXNhZ2UoXygiTm8gcHJvY2VzcyBzcGVjaWZpY2F0aW9uIGdpdmVuIikpOwotIAotIAkvKiBDaGVjayBpZiAtTSBmbGFnIHdhcyB1c2VkIGFuZCBpZiBzbyBjaGVjayBtb3VudHMgKi8KLS0JaWYgKG9wdHMgKiBPUFRfSVNNT1VOVFBPSU5UKSB7Ci0rCWlmIChvcHRzICYgT1BUX0lTTU9VTlRQT0lOVCkgewotIAkgICAgY2hlY2tfbW91bnRwb2ludHMoJm1vdW50cywgJm5hbWVzX2hlYWQsICZuYW1lc190YWlsKTsKLSAJfQotIAotLS0gCi0xLjguNC4yCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcHNtaXNjL2ZpbGVzLzAwMDItSW5jbHVkZS1saW1pdHMuaC1mb3ItUEFUSF9NQVgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BzbWlzYy9maWxlcy8wMDAyLUluY2x1ZGUtbGltaXRzLmgtZm9yLVBBVEhfTUFYLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOGFmY2FjLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcHNtaXNjL2ZpbGVzLzAwMDItSW5jbHVkZS1saW1pdHMuaC1mb3ItUEFUSF9NQVgucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi1Gcm9tIGFhNjZhZmVjZDhiYTljYzQxMzlmMjVhYjE1ZWMzMTUxNzM0MTNhN2QgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBQYXVsIEJhcmtlciA8cGF1bEBwYXVsYmFya2VyLm1lLnVrPgotRGF0ZTogV2VkLCAyMCBBdWcgMjAxNCAxMDozMTozNyArMDAwMAotU3ViamVjdDogW1BBVENIXSBJbmNsdWRlIDxsaW1pdHMuaD4gZm9yIFBBVEhfTUFYCi0KLVdoZW4gYnVpbGRpbmcgYWdhaW5zdCBtdXNsIGxpYmMsIFBBVEhfTUFYIGlzIGRlZmluZWQgaW4gPGxpbWl0cy5oPi4KLQotU2lnbmVkLW9mZi1ieTogUGF1bCBCYXJrZXIgPHBhdWxAcGF1bGJhcmtlci5tZS51az4KLQotVXBzdHJlYW0tU3RhdHVzOiBBY2NlcHRlZCAoU2hvdWxkIGJlIGluIG5leHQgcmVsZWFzZSBhZnRlciAyMi4yMSkKLS0tLQotIHNyYy9wc3RyZWUuYyB8IDEgKwotIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQotCi1kaWZmIC0tZ2l0IGEvc3JjL3BzdHJlZS5jIGIvc3JjL3BzdHJlZS5jCi1pbmRleCAwNzFlNmM0Li4wZDI4MjYwIDEwMDY0NAotLS0tIGEvc3JjL3BzdHJlZS5jCi0rKysgYi9zcmMvcHN0cmVlLmMKLUBAIC00MSw2ICs0MSw3IEBACi0gI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotICNpbmNsdWRlIDxzeXMvc3RhdC5oPgotICNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KLSsjaW5jbHVkZSA8bGltaXRzLmg+Ci0gCi0gI2luY2x1ZGUgImkxOG4uaCIKLSAjaW5jbHVkZSAiY29tbS5oIgotLS0gCi0yLjAuNAotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BzbWlzYy9wc21pc2MuaW5jIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9wc21pc2MvcHNtaXNjLmluYwppbmRleCA2NmE3ODRiLi44MmVmOTQ3IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BzbWlzYy9wc21pc2MuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcHNtaXNjL3BzbWlzYy5pbmMKQEAgLTE2LDYgKzE2LDE1IEBACiAKIGluaGVyaXQgYXV0b3Rvb2xzIGdldHRleHQKIAorIyBVcHN0cmVhbSBoYXMgYSBjdXN0b20gYXV0b2dlbi5zaCB3aGljaCBpbnZva2VzIHBvL3VwZGF0ZS1wb3RmaWxlcyBhcyB0aGV5IAorIyBkb24ndCBzaGlwIGEgcG8vUE9URklMRVMuaW4gKHdoaWNoIGlzIHNpbGx5KS4gIFdpdGhvdXQgdGhhdCBmaWxlIGdldHRleHQgCisjIGRvZXNuJ3QgYmVsaWV2ZSBwby8gaXMgYSBnZXR0ZXh0IGRpcmVjdG9yeSBhbmQgd29uJ3QgZ2VuZXJhdGUgcG8vTWFrZWZpbGUuCitFWFRSQV9BVVRPUkVDT05GX3JlbW92ZSA9ICItLWV4Y2x1ZGU9YXV0b3BvaW50IgorZG9fY29uZmlndXJlX3ByZXBlbmQoKSB7CisgICAgKCBjZCAke1N9ICYmIHBvL3VwZGF0ZS1wb3RmaWxlcyApCit9CisKKwogUEFDS0FHRUNPTkZJRyA/Pz0gIiR7QGJiLnV0aWxzLmZpbHRlcignRElTVFJPX0ZFQVRVUkVTJywgJ2lwdjYnLCBkKX0iCiBQQUNLQUdFQ09ORklHW2lwdjZdID0gIi0tZW5hYmxlLWlwdjYsLS1kaXNhYmxlLWlwdjYsIgogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BzbWlzYy9wc21pc2MvMDAwMS1NYWtlZmlsZS5hbS1jcmVhdGUtc3JjLWRpcmVjdG9yeS1iZWZvcmUtYXR0ZW1wdGluZy10LnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9wc21pc2MvcHNtaXNjLzAwMDEtTWFrZWZpbGUuYW0tY3JlYXRlLXNyYy1kaXJlY3RvcnktYmVmb3JlLWF0dGVtcHRpbmctdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZDQ0NDk1Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9wc21pc2MvcHNtaXNjLzAwMDEtTWFrZWZpbGUuYW0tY3JlYXRlLXNyYy1kaXJlY3RvcnktYmVmb3JlLWF0dGVtcHRpbmctdC5wYXRjaApAQCAtMCwwICsxLDMwIEBACitGcm9tIDI4NTg3N2I3NzYxZDc0NzM2YWNhMjY4N2VkOWJlZjJmNzhiODJjMzMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBbGV4YW5kZXIgS2FuYXZpbiA8YWxleC5rYW5hdmluQGdtYWlsLmNvbT4KK0RhdGU6IFRodSwgMiBOb3YgMjAxNyAxNjoyMToyMiArMDIwMAorU3ViamVjdDogW1BBVENIXSBNYWtlZmlsZS5hbTogY3JlYXRlIHNyYyBkaXJlY3RvcnkgYmVmb3JlIGF0dGVtcHRpbmcgdG8gd3JpdGUKKyB0aGVyZQorCitPdGhlcndpc2Ugb3V0IG9mIHRyZWUgYnVpbGRzIHdpbGwgZmFpbC4KKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCitTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kZXIgS2FuYXZpbiA8YWxleC5rYW5hdmluQGdtYWlsLmNvbT4KKy0tLQorIE1ha2VmaWxlLmFtIHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvTWFrZWZpbGUuYW0gYi9NYWtlZmlsZS5hbQoraW5kZXggOWY2MWFiNC4uYjRjZWQ3ZiAxMDA2NDQKKy0tLSBhL01ha2VmaWxlLmFtCisrKysgYi9NYWtlZmlsZS5hbQorQEAgLTc5LDcgKzc5LDcgQEAgRVhUUkFfRElTVCA9IHNyYy9zaWduYW1lcy5jIFJFQURNRS5tZAorIENMRUFORklMRVMgPSBzcmMvc2lnbmFtZXMuaAorIAorIHNyYy9zaWduYW1lcy5oOiBzcmMvc2lnbmFtZXMuYyBNYWtlZmlsZQorLQkJZXhwb3J0IExDX0FMTD1DIDsgXAorKwkJZXhwb3J0IExDX0FMTD1DIDsgbWtkaXIgLXAgc3JjIDsgXAorIAkJQENQUEAgLWRNICQ8IHxcCisgCQl0ciAtcyAnXHQgJyAnICcgfCBzb3J0IC1uIC1rIDMgfCBzZWQgXAorIAknczojZGVmaW5lIFNJR1woW0EtWl1bQS1aXSpbMC05XSpcKSBcKFswLTldWzAtOV0qXCkuKiRcOntcIFwyLCJcMSIgfSw6cDtkJyB8IFwKKy0tIAorMi4xNC4yCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcHNtaXNjL3BzbWlzY18yMi4yMS5iYiBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcHNtaXNjL3BzbWlzY18yMi4yMS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWM2NDczZS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3BzbWlzYy9wc21pc2NfMjIuMjEuYmIKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1yZXF1aXJlIHBzbWlzYy5pbmMKLUxJQ0VOU0UgPSAiR1BMdjIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT0wNjM2ZTczZmYwMjE1ZThkNjcyZGM0YzMyYzMxN2JiMyIKLQotU1JDX1VSSVttZDVzdW1dID0gIjkzNWMwZmQ2ZWIyMDgyODgyNjJiMzg1ZmE2NTZmMWJmIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjk3MzIzY2FkNjE5MjEwODQ1YjY5NmQ3ZDcyMmMzODM4NTJiMmFjYjVjNDliNWIwODUyYzRmMjljNzdhODE0NWEiCi0KLVNSQ19VUkkgPSAiJHtTT1VSQ0VGT1JHRV9NSVJST1J9L3BzbWlzYy9wc21pc2MtJHtQVn0udGFyLmd6IFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtVHlwby1pbi1mdXNlci1tYWtlcy1NLW9uLWFsbC10aGUtdGltZS5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAyLUluY2x1ZGUtbGltaXRzLmgtZm9yLVBBVEhfTUFYLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtVXNlLVVJTlRQVFJfTUFYLWluc3RlYWQtb2YtX19XT1JEU0laRS5wYXRjaCBcCi0gICAgICAgICAgICIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcHNtaXNjL3BzbWlzY18yMy4wLmJiIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9wc21pc2MvcHNtaXNjXzIzLjAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmIwN2Y0OQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcHNtaXNjL3BzbWlzY18yMy4wLmJiCkBAIC0wLDAgKzEsMTAgQEAKK3JlcXVpcmUgcHNtaXNjLmluYworTElDRU5TRSA9ICJHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTA2MzZlNzNmZjAyMTVlOGQ2NzJkYzRjMzJjMzE3YmIzIgorCitTUkNfVVJJID0gImdpdDovL2dpdGxhYi5jb20vcHNtaXNjL3BzbWlzYy5naXQ7cHJvdG9jb2w9aHR0cHMgXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1Vc2UtVUlOVFBUUl9NQVgtaW5zdGVhZC1vZi1fX1dPUkRTSVpFLnBhdGNoIFwKKwkgICBmaWxlOi8vMDAwMS1NYWtlZmlsZS5hbS1jcmVhdGUtc3JjLWRpcmVjdG9yeS1iZWZvcmUtYXR0ZW1wdGluZy10LnBhdGNowqBcCisgICAgICAgICAgICIKK1NSQ1JFViA9ICI2N2IxZGEyNjhmNGMwY2U2ODU5OTgwZTNkZmNmYWVjNWIyNDQ4ZTgwIgorUyA9ICIke1dPUktESVJ9L2dpdCIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcXVvdGEvcXVvdGEvMDAwMS1Eby1ub3QtYWNjaWRlbnRhbHktb3ZlcnJpZGUtY29tbWFuZGxpbmUtcGFzc2VkLUNGTEFHLnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9xdW90YS9xdW90YS8wMDAxLURvLW5vdC1hY2NpZGVudGFseS1vdmVycmlkZS1jb21tYW5kbGluZS1wYXNzZWQtQ0ZMQUcucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZhZGQ0NzAuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9xdW90YS9xdW90YS8wMDAxLURvLW5vdC1hY2NpZGVudGFseS1vdmVycmlkZS1jb21tYW5kbGluZS1wYXNzZWQtQ0ZMQUcucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi1Gcm9tIDc3Njc1N2EyM2U5OTMwNTg4OTUwYzdmY2JjNzgyN2VjN2EzZTUxYzQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiA9P1VURi04P3E/VG9tPUMzPUExPUM1PUExPTIwQ2h2PUMzPUExdGFsPz0gPHRjaHZhdGFsQHN1c2UuY29tPgotRGF0ZTogTW9uLCA0IEphbiAyMDE2IDE1OjQ4OjE5ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIERvIG5vdCBhY2NpZGVudGFseSBvdmVycmlkZSBjb21tYW5kbGluZSBwYXNzZWQgQ0ZMQUdTLgotTUlNRS1WZXJzaW9uOiAxLjAKLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAotQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAotCi1VcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0Ci0KLVNpZ25lZC1vZmYtYnk6IFRvbcOhxaEgQ2h2w6F0YWwgPHRjaHZhdGFsQHN1c2UuY29tPgotU2lnbmVkLW9mZi1ieTogSmFuIEthcmEgPGphY2tAc3VzZS5jej4KLVNpZ25lZC1vZmYtYnk6IE1heGluIEIuIEpvaG4gPG1heGluLmpvaG5AaW50ZWwuY29tPgotLS0tCi0gY29uZmlndXJlLmFjIHwgMiArLQotIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCi1pbmRleCAzYmExMzg2Li4xNTUyYzE1IDEwMDY0NAotLS0tIGEvY29uZmlndXJlLmFjCi0rKysgYi9jb25maWd1cmUuYWMKLUBAIC01Myw3ICs1Myw3IEBAIEFTX0lGKFt0ZXN0ICJ4JHtwcmVmaXh9IiA9ICJ4Tk9ORSJdLCBbCi0gIyA9PT09PT09PT09PT09PT09Ci0gIyBDaGVjayBmb3IgY2ZsYWdzCi0gIyA9PT09PT09PT09PT09PT09Ci0tQ0ZMQUdTPSItRF9HTlVfU09VUkNFIC1XYWxsIC1EX0xBUkdFRklMRTY0X1NPVVJDRSAtRF9GSUxFX09GRlNFVF9CSVRTPTY0IgotK0NGTEFHUz0iJENGTEFHUyAtRF9HTlVfU09VUkNFIC1XYWxsIC1EX0xBUkdFRklMRTY0X1NPVVJDRSAtRF9GSUxFX09GRlNFVF9CSVRTPTY0IgotIEFDX0FSR19FTkFCTEUoW3dlcnJvcl0sCi0gICAgIFtBU19IRUxQX1NUUklORyhbLS1lbmFibGUtd2Vycm9yXSwgW1RyZWF0IGFsbCB3YXJuaW5ncyBhcyBlcnJvcnMsIHVzZWZ1bCBmb3IgZGV2ZWxvcG1lbnRdKV0sCi0gICAgIFtlbmFibGVfd2Vycm9yPSIkZW5hYmxldmFsIl0sCi0tLSAKLTIuNC4wCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcXVvdGEvcXVvdGEvMDAwMS1GaXgtYnVpbGQtd2l0aC1kaXNhYmxlZC1sZGFwLnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9xdW90YS9xdW90YS8wMDAxLUZpeC1idWlsZC13aXRoLWRpc2FibGVkLWxkYXAucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE3OWU0NzcuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9xdW90YS9xdW90YS8wMDAxLUZpeC1idWlsZC13aXRoLWRpc2FibGVkLWxkYXAucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw5MyArMCwwIEBACi1Gcm9tIDM5ZmQzMGNlNTdlM2MzNGMzNjQ5ODY2YmY5MzQ1YTcxZjBiNzg2NjcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBKYW4gS2FyYSA8amFja0BzdXNlLmN6PgotRGF0ZTogTW9uLCA0IEphbiAyMDE2IDE1OjEwOjUzICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIEZpeCBidWlsZCB3aXRoIGRpc2FibGVkIGxkYXAKLQotVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydAotCi1SZXBvcnRlZC1ieTogVG9tYXMgQ2h2YXRhbCA8dGNodmF0YWxAc3VzZS5jb20+Ci1TaWduZWQtb2ZmLWJ5OiBKYW4gS2FyYSA8amFja0BzdXNlLmN6PgotU2lnbmVkLW9mZi1ieTogTWF4aW4gQi4gSm9obiA8bWF4aW4uam9obkBpbnRlbC5jb20+Ci0tLS0KLSB3YXJucXVvdGEuYyB8IDM2ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAxOCBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3dhcm5xdW90YS5jIGIvd2FybnF1b3RhLmMKLWluZGV4IDM3MzRmMGUuLmU5ODY4YzEgMTAwNjQ0Ci0tLS0gYS93YXJucXVvdGEuYwotKysrIGIvd2FybnF1b3RhLmMKLUBAIC0xMDksMTMgKzEwOSwxMyBAQCBzdHJ1Y3QgY29uZmlncGFyYW1zIHsKLSAJY2hhciAqdXNlcl9zaWduYXR1cmU7Ci0gCWNoYXIgKmdyb3VwX21lc3NhZ2U7Ci0gCWNoYXIgKmdyb3VwX3NpZ25hdHVyZTsKLSsJdGltZV90IGNjX2JlZm9yZTsKLSsjaWZkZWYgVVNFX0xEQVBfTUFJTF9MT09LVVAKLSAJaW50IHVzZV9sZGFwX21haWw7IC8qIDAgKi8KLSsJaW50IGxkYXBfaXNfc2V0dXA7IC8qIDAgKi8KLSAJaW50IGxkYXBfc3RhcnR0bHM7IC8qIDAgKi8KLSAJaW50IGxkYXBfdGxzOyAvKiBMREFQX09QVF9YX1RMU19ORVZFUiAqLwotIAlpbnQgbGRhcF92ZXJzOyAvKiBMREFQX1ZFUlNJT04zICovCi0tCXRpbWVfdCBjY19iZWZvcmU7Ci0tI2lmZGVmIFVTRV9MREFQX01BSUxfTE9PS1VQCi0tCWludCBsZGFwX2lzX3NldHVwOyAvKiAwICovCi0gCWNoYXIgbGRhcF9ob3N0W0NORl9CVUZGRVJdOwotIAlpbnQgbGRhcF9wb3J0OwotIAljaGFyIGxkYXBfdXJpW0NORl9CVUZGRVJdOwotQEAgLTcyOSwxMyArNzI5LDEzIEBAIHN0YXRpYyBpbnQgcmVhZGNvbmZpZ2ZpbGUoY29uc3QgY2hhciAqZmlsZW5hbWUsIHN0cnVjdCBjb25maWdwYXJhbXMgKmNvbmZpZykKLSAJfQotIAltYWlsZGV2WzBdID0gMDsKLSAJY29uZmlnLT51c2VyX3NpZ25hdHVyZSA9IGNvbmZpZy0+dXNlcl9tZXNzYWdlID0gY29uZmlnLT5ncm91cF9zaWduYXR1cmUgPSBjb25maWctPmdyb3VwX21lc3NhZ2UgPSBOVUxMOwotKwljb25maWctPmNjX2JlZm9yZSA9IC0xOwotKwotKyNpZmRlZiBVU0VfTERBUF9NQUlMX0xPT0tVUAotIAljb25maWctPnVzZV9sZGFwX21haWwgPSAwOwotIAljb25maWctPmxkYXBfc3RhcnR0bHMgPSAwOwotIAljb25maWctPmxkYXBfdGxzID0gTERBUF9PUFRfWF9UTFNfTkVWRVI7Ci0gCWNvbmZpZy0+bGRhcF92ZXJzID0gTERBUF9WRVJTSU9OMzsKLS0JY29uZmlnLT5jY19iZWZvcmUgPSAtMTsKLS0KLS0jaWZkZWYgVVNFX0xEQVBfTUFJTF9MT09LVVAKLSAJY29uZmlnLT5sZGFwX3BvcnQgPSBjb25maWctPmxkYXBfaXNfc2V0dXAgPSAwOwotIAljb25maWctPmxkYXBfaG9zdFswXSA9IDA7Ci0gCWNvbmZpZy0+bGRhcF91cmlbMF0gPSAwOwotQEAgLTgyMCw2ICs4MjAsMTggQEAgc3RhdGljIGludCByZWFkY29uZmlnZmlsZShjb25zdCBjaGFyICpmaWxlbmFtZSwgc3RydWN0IGNvbmZpZ3BhcmFtcyAqY29uZmlnKQotIAkJCQljcmVhdGVfZW9sbihjb25maWctPmdyb3VwX3NpZ25hdHVyZSk7Ci0gCQkJCXZlcmlmeV9mb3JtYXQoY29uZmlnLT5ncm91cF9zaWduYXR1cmUsICJHUk9VUF9TSUdOQVRVUkUiKTsKLSAJCQl9Ci0rCQkJZWxzZSBpZiAoIXN0cmNtcCh2YXIsICJDQ19CRUZPUkUiKSkgewotKwkJCQlpbnQgbnVtOwotKwkJCQljaGFyIHVuaXRbMTBdOwotKwotKwkJCQlpZiAoc3NjYW5mKHZhbHVlLCAiJWQlcyIsICZudW0sIHVuaXQpICE9IDIpCi0rCQkJCQlnb3RvIGNjX3BhcnNlX2VycjsKLSsJCQkJaWYgKHN0cjJ0aW1ldW5pdHMobnVtLCB1bml0LCAmY29uZmlnLT5jY19iZWZvcmUpIDwgMCkgewotK2NjX3BhcnNlX2VycjoKLSsJCQkJCWRpZSgxLCBfKCJDYW5ub3QgcGFyc2UgdGltZSBhdCBDQ19CRUZPUkUgdmFyaWFibGUgKGxpbmUgJWQpLlxuIiksIGxpbmUpOwotKwkJCQl9Ci0rCQkJfQotKyNpZmRlZiBVU0VfTERBUF9NQUlMX0xPT0tVUAotIAkJCWVsc2UgaWYgKCFzdHJjbXAodmFyLCAiTERBUF9NQUlMIikpIHsKLSAJCQkJaWYoc3RyY2FzZWNtcCh2YWx1ZSwgInRydWUiKSA9PSAwKSAKLSAJCQkJCWNvbmZpZy0+dXNlX2xkYXBfbWFpbCA9IDE7Ci1AQCAtODQ2LDE4ICs4NTgsNiBAQCBzdGF0aWMgaW50IHJlYWRjb25maWdmaWxlKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBzdHJ1Y3QgY29uZmlncGFyYW1zICpjb25maWcpCi0gCQkJCWVsc2UKLSAJCQkJCWNvbmZpZy0+bGRhcF9zdGFydHRscyA9IDA7Ci0gCQkJfQotLQkJCWVsc2UgaWYgKCFzdHJjbXAodmFyLCAiQ0NfQkVGT1JFIikpIHsKLS0JCQkJaW50IG51bTsKLS0JCQkJY2hhciB1bml0WzEwXTsKLS0KLS0JCQkJaWYgKHNzY2FuZih2YWx1ZSwgIiVkJXMiLCAmbnVtLCB1bml0KSAhPSAyKQotLQkJCQkJZ290byBjY19wYXJzZV9lcnI7Ci0tCQkJCWlmIChzdHIydGltZXVuaXRzKG51bSwgdW5pdCwgJmNvbmZpZy0+Y2NfYmVmb3JlKSA8IDApIHsKLS1jY19wYXJzZV9lcnI6Ci0tCQkJCQlkaWUoMSwgXygiQ2Fubm90IHBhcnNlIHRpbWUgYXQgQ0NfQkVGT1JFIHZhcmlhYmxlIChsaW5lICVkKS5cbiIpLCBsaW5lKTsKLS0JCQkJfQotLQkJCX0KLS0jaWZkZWYgVVNFX0xEQVBfTUFJTF9MT09LVVAKLSAJCQllbHNlIGlmICghc3RyY21wKHZhciwgIkxEQVBfSE9TVCIpKQotIAkJCQlzc3RybmNweShjb25maWctPmxkYXBfaG9zdCwgdmFsdWUsIENORl9CVUZGRVIpOwotIAkJCWVsc2UgaWYgKCFzdHJjbXAodmFyLCAiTERBUF9QT1JUIikpCi0tLSAKLTIuNC4wCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcXVvdGEvcXVvdGEvMDAwMS1Vc2UtTkdST1VQU19NQVgtaW5zdGVhZC1vZi1OR1JPVVBTLnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9xdW90YS9xdW90YS8wMDAxLVVzZS1OR1JPVVBTX01BWC1pbnN0ZWFkLW9mLU5HUk9VUFMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZmYjJkYWYuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9xdW90YS9xdW90YS8wMDAxLVVzZS1OR1JPVVBTX01BWC1pbnN0ZWFkLW9mLU5HUk9VUFMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw4MyArMCwwIEBACi1VcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0Ci0KLVNpZ25lZC1vZmYtYnk6IEthaSBLYW5nIDxrYWkua2FuZ0B3aW5kcml2ZXIuY29tPgotLS0tCi1Gcm9tIGZlY2E2ZDJlNTVkOTkyYmJlMTc2ZWU4ZmFhNzM0YzEwNWViMWIyZTEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBUaGVvZG9yZSBUcydvIDx0eXRzb0BtaXQuZWR1PgotRGF0ZTogVHVlLCAyOSBNYXIgMjAxNiAyMDo0ODowNSAtMDQwMAotU3ViamVjdDogW1BBVENIXSBVc2UgTkdST1VQU19NQVggaW5zdGVhZCBvZiBOR1JPVVBTCi0KLU5HUlJPVVBTX01BWCBpcyB3aGF0IGlzIGRlZmluZWQgYnkgU3VTdjM7IE5HUk9VUFMgaXMgbm90IGd1YXJhbnRlZWQgYnkKLWFueSBzdGFuZGFyZCwgYnV0IGlzIGp1c3QgYW4gYW5jaWVudCBCU0QnaXNtLiAgU2luY2UgQW5kcm9pZCdzIGJpb25pYwotbGliYyBoYXMgdGhlIGZvcm1lciBidXQgbm90IHRoZSBsYXR0ZXIsIGxldCdzIHVzZSBOR1JPVVBTX01BWCBpbnN0ZWFkLgotCi1TaWduZWQtb2ZmLWJ5OiBUaGVvZG9yZSBUcydvIDx0eXRzb0BtaXQuZWR1PgotU2lnbmVkLW9mZi1ieTogSmFuIEthcmEgPGphY2tAc3VzZS5jej4KLS0tLQotIHF1b3RhLmMgICAgfCA1ICsrKy0tCi0gcXVvdGFvcHMuYyB8IDUgKysrLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3F1b3RhLmMgYi9xdW90YS5jCi1pbmRleCAwNDlkYWM0Li5lMTk1ZWFkIDEwMDY0NAotLS0tIGEvcXVvdGEuYwotKysrIGIvcXVvdGEuYwotQEAgLTQ4LDYgKzQ4LDcgQEAKLSAjaW5jbHVkZSA8ZXJybm8uaD4KLSAjaW5jbHVkZSA8c3RyaW5nLmg+Ci0gI2luY2x1ZGUgPHVuaXN0ZC5oPgotKyNpbmNsdWRlIDxsaW1pdHMuaD4KLSAjaWZkZWYgUlBDCi0gI2luY2x1ZGUgPHJwYy9ycGMuaD4KLSAjaW5jbHVkZSAicnF1b3RhLmgiCi1AQCAtMjk2LDcgKzI5Nyw3IEBAIHN0YXRpYyBpbnQgc2hvd3F1b3RhcyhpbnQgdHlwZSwgcWlkX3QgaWQsIGludCBtbnRjbnQsIGNoYXIgKiptbnQpCi0gaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQotIHsKLSAJaW50IG5ncm91cHM7Ci0tCWdpZF90IGdpZHNldFtOR1JPVVBTXSwgKmdpZHNldHA7Ci0rCWdpZF90IGdpZHNldFtOR1JPVVBTX01BWF0sICpnaWRzZXRwOwotIAlpbnQgaSwgcmV0OwotIAlzdHJ1Y3Qgb3B0aW9uIGxvbmdfb3B0c1tdID0gewotIAkJeyAiaGVscCIsIDAsIE5VTEwsICdoJyB9LAotQEAgLTQwNSw3ICs0MDYsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCi0gCQkJcmV0IHw9IHNob3dxdW90YXMoVVNSUVVPVEEsIGdldHVpZCgpLCBhcmdjLCBhcmd2KTsKLSAJCWlmIChmbGFncyAmIEZMX0dST1VQKSB7Ci0gCQkJbmdyb3VwcyA9IHN5c2NvbmYoX1NDX05HUk9VUFNfTUFYKTsKLS0JCQlpZiAobmdyb3VwcyA+IE5HUk9VUFMpIHsKLSsJCQlpZiAobmdyb3VwcyA+IE5HUk9VUFNfTUFYKSB7Ci0gCQkJCWdpZHNldHAgPSBtYWxsb2Mobmdyb3VwcyAqIHNpemVvZihnaWRfdCkpOwotIAkJCQlpZiAoIWdpZHNldHApCi0gCQkJCQlkaWUoMSwgXygiR2lkIHNldCBhbGxvY2F0aW9uICglZCk6ICVzXG4iKSwgbmdyb3Vwcywgc3RyZXJyb3IoZXJybm8pKTsKLWRpZmYgLS1naXQgYS9xdW90YW9wcy5jIGIvcXVvdGFvcHMuYwotaW5kZXggMTM2YWVjMy4uNTkwZGMxYiAxMDA2NDQKLS0tLSBhL3F1b3Rhb3BzLmMKLSsrKyBiL3F1b3Rhb3BzLmMKLUBAIC01MSw2ICs1MSw3IEBACi0gI2luY2x1ZGUgPHVuaXN0ZC5oPgotICNpbmNsdWRlIDx0aW1lLmg+Ci0gI2luY2x1ZGUgPGN0eXBlLmg+Ci0rI2luY2x1ZGUgPGxpbWl0cy5oPgotIAotICNpZiBkZWZpbmVkKFJQQykKLSAjaW5jbHVkZSAicnF1b3RhLmgiCi1AQCAtOTcsNyArOTgsNyBAQCBzdHJ1Y3QgZHF1b3QgKmdldHByaXZzKHFpZF90IGlkLCBzdHJ1Y3QgcXVvdGFfaGFuZGxlICoqaGFuZGxlcywgaW50IHF1aWV0KQotICNpZiBkZWZpbmVkKEJTRF9CRUhBVklPVVIpCi0gCWludCBqLCBuZ3JvdXBzOwotIAl1aWRfdCBldWlkOwotLQlnaWRfdCBnaWRzZXRbTkdST1VQU10sICpnaWRzZXRwOwotKwlnaWRfdCBnaWRzZXRbTkdST1VQU19NQVhdLCAqZ2lkc2V0cDsKLSAjZW5kaWYKLSAKLSAJZm9yIChpID0gMDsgaGFuZGxlc1tpXTsgaSsrKSB7Ci1AQCAtMTE1LDcgKzExNiw3IEBAIHN0cnVjdCBkcXVvdCAqZ2V0cHJpdnMocWlkX3QgaWQsIHN0cnVjdCBxdW90YV9oYW5kbGUgKipoYW5kbGVzLCBpbnQgcXVpZXQpCi0gCQkJCWlmIChnZXRldWlkKCkgPT0gMCkKLSAJCQkJCWJyZWFrOwotIAkJCQluZ3JvdXBzID0gc3lzY29uZihfU0NfTkdST1VQU19NQVgpOwotLQkJCQlpZiAobmdyb3VwcyA+IE5HUk9VUFMpIHsKLSsJCQkJaWYgKG5ncm91cHMgPiBOR1JPVVBTX01BWCkgewotIAkJCQkJZ2lkc2V0cCA9IG1hbGxvYyhuZ3JvdXBzICogc2l6ZW9mKGdpZF90KSk7Ci0gCQkJCQlpZiAoIWdpZHNldHApIHsKLSAJCQkJCQlnaWQyZ3JvdXAoaWQsIG5hbWUpOwotLS0gCi0yLjYuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3F1b3RhL3F1b3RhLzAwMDItQWxsb3ctYnVpbGRpbmctb24tc3lzdGVtcy10aGF0LWRvLW5vdC1oYXZlLXJwYy1oZWFkZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcXVvdGEvcXVvdGEvMDAwMi1BbGxvdy1idWlsZGluZy1vbi1zeXN0ZW1zLXRoYXQtZG8tbm90LWhhdmUtcnBjLWhlYWRlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2Y2VhNTQ4Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcXVvdGEvcXVvdGEvMDAwMi1BbGxvdy1idWlsZGluZy1vbi1zeXN0ZW1zLXRoYXQtZG8tbm90LWhhdmUtcnBjLWhlYWRlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTUzICswLDAgQEAKLVVwc3RyZWFtLVN0YXR1czogQmFja3BvcnQKLQotU2lnbmVkLW9mZi1ieTogS2FpIEthbmcgPGthaS5rYW5nQHdpbmRyaXZlci5jb20+Ci0tLS0KLUZyb20gZjMwZTFhZGE4MzI2NDYzY2MwYWYwNDhhZmEwNThiYzJmMWRjOTM3MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFRoZW9kb3JlIFRzJ28gPHR5dHNvQG1pdC5lZHU+Ci1EYXRlOiBUdWUsIDI5IE1hciAyMDE2IDIwOjQ4OjA0IC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0hdIEFsbG93IGJ1aWxkaW5nIG9uIHN5c3RlbXMgdGhhdCBkbyBub3QgaGF2ZSBycGMgaGVhZGVyIGZpbGVzCi0KLUFuZHJvaWQncyBiaW9uaWMgQyBsaWJyYXJ5IGRvZXNuJ3QgaGF2ZSBTdW4gUlBDIHN1cHBvcnQuCi0KLVNpZ25lZC1vZmYtYnk6IFRoZW9kb3JlIFRzJ28gPHR5dHNvQG1pdC5lZHU+Ci1TaWduZWQtb2ZmLWJ5OiBKYW4gS2FyYSA8amFja0BzdXNlLmN6PgotLS0tCi0gTWFrZWZpbGUuYW0gfCAzMCArKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KLSBxdW90YW9wcy5jICB8ICAyICsrCi0gc2V0cXVvdGEuYyAgfCAgMiArKwotIDMgZmlsZXMgY2hhbmdlZCwgMjAgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9NYWtlZmlsZS5hbSBiL01ha2VmaWxlLmFtCi1pbmRleCA2ZDdlYTBlLi44MmRiOTlmIDEwMDY0NAotLS0tIGEvTWFrZWZpbGUuYW0KLSsrKyBiL01ha2VmaWxlLmFtCi1AQCAtMSw3ICsxLDUgQEAKLSBBQ0xPQ0FMX0FNRkxBR1MgPSAtSSBtNAotIAotLUJVSUxUX1NPVVJDRVMgPSBycXVvdGEuaCBycXVvdGEuYyBycXVvdGFfY2xudC5jCi0tCi0gZG9jZGlyID0gJChkYXRhZGlyKS9kb2MvQFBBQ0tBR0VACi0gZG9jX0RBVEEgPSBcCi0gCVJFQURNRS5tYWlsc2VydmVyIFwKLUBAIC0xMiwxMSArMTAsNiBAQCBkb2NfREFUQSA9IFwKLSAJZG9jL3F1b3Rhcy5wcmVmb3JtYXRlZCBcCi0gCWRvYy9xdW90YXMtMS5lcHMKLSAKLS1ycGNzdmNkaXIgPSAkKGluY2x1ZGVkaXIpL3JwY3N2YwotLXJwY3N2Y19EQVRBID0gXAotLQlycXVvdGEuaCBcCi0tCXJxdW90YS54Ci0tCi0gc3lzY29uZl9EQVRBID0gXAotIAl3YXJucXVvdGEuY29uZiBcCi0gCXF1b3RhdGFiIFwKLUBAIC0zNSwxNSArMjgsMTIgQEAgbWFuX01BTlMgPSBcCi0gCXF1b3RhLjEgXAotIAlxdW90LjggXAotIAlyZXBxdW90YS44IFwKLS0JcnBjLnJxdW90YWQuOCBcCi0gCXJxdW90YS4zIFwKLSAJc2V0cXVvdGEuOCBcCi0gCXdhcm5xdW90YS5jb25mLjUgXAotIAl3YXJucXVvdGEuOCBcCi0gCXhxbXN0YXRzLjgKLSAKLS1DTEVBTkZJTEVTID0gcnF1b3RhLmMgcnF1b3RhLmggcnF1b3RhX2NsbnQuYwotLQotIFNVQkRJUlMgPSBwbwotIAotIEVYVFJBX0RJU1QgPSBcCi1AQCAtNTUsOSArNDUsMTUgQEAgRVhUUkFfRElTVCA9IFwKLSAJQ2hhbmdlbG9nIFwKLSAJbGRhcC1zY3JpcHRzCi0gCi0tbm9pbnN0X0xJQlJBUklFUyA9IFwKLS0JbGlicXVvdGEuYSBcCi0tCWxpYnJwY2NsaWVudC5hCi0rbm9pbnN0X0xJQlJBUklFUyA9IGxpYnF1b3RhLmEKLSsKLStpZiBXSVRIX1JQQwotK3JwY3N2Y2RpciA9ICQoaW5jbHVkZWRpcikvcnBjc3ZjCi0rcnBjc3ZjX0RBVEEgPSBcCi0rCXJxdW90YS5oIFwKLSsJcnF1b3RhLngKLSsKLStub2luc3RfTElCUkFSSUVTICs9IGxpYnJwY2NsaWVudC5hCi0gCi0gbGlicnBjY2xpZW50X2FfU09VUkNFUyA9IFwKLSAJcnF1b3RhLmMgXAotQEAgLTY3LDggKzYzLDEwIEBAIGxpYnJwY2NsaWVudF9hX1NPVVJDRVMgPSBcCi0gCXJxdW90YV9jbG50LmMKLSBsaWJycGNjbGllbnRfYV9DRkxBR1MgPSAtV25vLXVudXNlZAotIAotLWlmIFdJVEhfUlBDCi0gUlBDTElCUyA9IGxpYnJwY2NsaWVudC5hCi0rQlVJTFRfU09VUkNFUyA9IHJxdW90YS5oIHJxdW90YS5jIHJxdW90YV9jbG50LmMKLStDTEVBTkZJTEVTID0gcnF1b3RhLmMgcnF1b3RhLmggcnF1b3RhX2NsbnQuYwotK21hbl9NQU5TICs9IHJwYy5ycXVvdGFkLjgKLSBlbmRpZgotIAotIGxpYnF1b3RhX2FfU09VUkNFUyA9IFwKLUBAIC0yMTcsNiArMjE1LDcgQEAgY29udmVydHF1b3RhX0xEQUREID0gXAotIAlsaWJxdW90YS5hIFwKLSAJJChSUENMSUJTKQotIAotK2lmIFdJVEhfUlBDCi0gcnBjX3JxdW90YWRfU09VUkNFUyA9IFwKLSAJcnF1b3RhX3NlcnZlci5jIFwKLSAJcnF1b3RhX3N2Yy5jIFwKLUBAIC0yMjUsNiArMjI0LDcgQEAgcnBjX3JxdW90YWRfTERBREQgPSBcCi0gCWxpYnF1b3RhLmEgXAotIAkkKFdSQVBfTElCUykgXAotIAkkKFJQQ0xJQlMpCi0rZW5kaWYKLSAKLSBxdW90YV9ubGRfU09VUkNFUyA9IHF1b3RhX25sZC5jCi0gcXVvdGFfbmxkX0NGTEFHUyA9IFwKLUBAIC0yMzYsNiArMjM2LDcgQEAgcXVvdGFfbmxkX0xEQUREID0gXAotIAkkKERCVVNfTElCUykgXAotIAkkKExJQk5MM19MSUJTKQotIAotK2lmIFdJVEhfUlBDCi0gIyAtLS0tLS0tLS0tLS0tLS0tLS0KLSAjIFJwY2dlbiBjb252ZXJzaW9ucwotICMgLS0tLS0tLS0tLS0tLS0tLS0tCi1AQCAtMjUwLDYgKzI1MSw3IEBAIHF1b3RhX25sZF9MREFERCA9IFwKLSBycXVvdGFfY2xudC5jOiBycXVvdGEueAotIAlAcm0gLWYgJEAKLSAJQCQoUlBDR0VOKSAtbCAtbyAkQCAkPAotK2VuZGlmCi0gCi0gIyAtLS0tLS0tLQotICMgUXVvdGFvZmYKLWRpZmYgLS1naXQgYS9xdW90YW9wcy5jIGIvcXVvdGFvcHMuYwotaW5kZXggNDdlZjlhNy4uMTM2YWVjMyAxMDA2NDQKLS0tLSBhL3F1b3Rhb3BzLmMKLSsrKyBiL3F1b3Rhb3BzLmMKLUBAIC0zNCw3ICszNCw5IEBACi0gCi0gI2luY2x1ZGUgImNvbmZpZy5oIgotIAotKyNpZiBkZWZpbmVkKFJQQykKLSAjaW5jbHVkZSA8cnBjL3JwYy5oPgotKyNlbmRpZgotICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KLSAjaW5jbHVkZSA8c3lzL2ZpbGUuaD4KLWRpZmYgLS1naXQgYS9zZXRxdW90YS5jIGIvc2V0cXVvdGEuYwotaW5kZXggNTFkN2IzYy4uOGVjZDljMyAxMDA2NDQKLS0tLSBhL3NldHF1b3RhLmMKLSsrKyBiL3NldHF1b3RhLmMKLUBAIC03LDcgKzcsOSBAQAotIAotICNpbmNsdWRlICJjb25maWcuaCIKLSAKLSsjaWYgZGVmaW5lZChSUEMpCi0gI2luY2x1ZGUgPHJwYy9ycGMuaD4KLSsjZW5kaWYKLSAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0gI2luY2x1ZGUgPGVycm5vLmg+Ci0gI2luY2x1ZGUgPHN0ZGlvLmg+Ci0tLSAKLTIuNi4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcXVvdGEvcXVvdGEvMDAwMy1Eb24tdC1idWlsZC1ycGMucnF1b3RhZC13aGVuLWRpc2FibGUtcnBjLXdhcy1yZXF1ZXN0LnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9xdW90YS9xdW90YS8wMDAzLURvbi10LWJ1aWxkLXJwYy5ycXVvdGFkLXdoZW4tZGlzYWJsZS1ycGMtd2FzLXJlcXVlc3QucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE0NTUzODQuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9xdW90YS9xdW90YS8wMDAzLURvbi10LWJ1aWxkLXJwYy5ycXVvdGFkLXdoZW4tZGlzYWJsZS1ycGMtd2FzLXJlcXVlc3QucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw2MiArMCwwIEBACi1VcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0Ci0KLVNpZ25lZC1vZmYtYnk6IEthaSBLYW5nIDxrYWkua2FuZ0B3aW5kcml2ZXIuY29tPgotLS0tCi1Gcm9tIGM3YTc2MjM3ZTdhNTFhNjlkMDIzNmViZmMxOTFlNDYyZjgwNWNmNGUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBMYXJzIFdlbmRsZXIgPHBvbHlub21pYWwtY0BnZW50b28ub3JnPgotRGF0ZTogTW9uLCAxNSBGZWIgMjAxNiAxNDo0MjoxNCArMDEwMAotU3ViamVjdDogW1BBVENIXSBEb24ndCBidWlsZCBycGMucnF1b3RhZCB3aGVuIC0tZGlzYWJsZS1ycGMgd2FzIHJlcXVlc3RlZC4KLQotVGhpcyBmaXhlcyBhIGJ1Y2ggb2YgdW5kZWZpbmVkIHJlZmVyZW5jZXM6Ci0KLXg4Nl82NC1wYy1saW51eC1nbnUtZ2NjICAtbWFyY2g9bmF0aXZlIC1tdHVuZT1uYXRpdmUgLU8yIC1waXBlIC1EX0dOVV9TT1VSQ0UgLVdhCi1sbCAtRF9MQVJHRUZJTEU2NF9TT1VSQ0UgLURfRklMRV9PRkZTRVRfQklUUz02NCAtZlBJQyAtcGllIC1XbCwtTzEgLVdsLC0taGFzaC1zdAoteWxlPWdudSAtV2wsLS1zb3J0LWNvbW1vbiAtV2wsLS1hcy1uZWVkZWQgLW8gcnBjLnJxdW90YWQgcnF1b3RhX3NlcnZlci5vIHJxdW90YV8KLXN2Yy5vIHN2Y19zb2NrZXQubyBsaWJxdW90YS5hCi1ycXVvdGFfc3ZjLm86IEluIGZ1bmN0aW9uIGBycXVvdGFwcm9nXzInOgotcnF1b3RhX3N2Yy5jOigudGV4dCsweDFkMyk6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYHhkcl9zZXRxdW90YV9yc2x0JwotcnF1b3RhX3N2Yy5jOigudGV4dCsweDFkYSk6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYHhkcl9leHRfc2V0cXVvdGFfYXJncycKLXJxdW90YV9zdmMuYzooLnRleHQrMHgyYjIpOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGB4ZHJfc2V0cXVvdGFfcnNsdCcKLXJxdW90YV9zdmMuYzooLnRleHQrMHgyYjkpOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGB4ZHJfZXh0X3NldHF1b3RhX2FyZ3MnCi1ycXVvdGFfc3ZjLmM6KC50ZXh0KzB4MmZmKTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgeGRyX2dldHF1b3RhX3JzbHQnCi1ycXVvdGFfc3ZjLmM6KC50ZXh0KzB4MzA2KTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgeGRyX2V4dF9nZXRxdW90YV9hcmdzJwotcnF1b3RhX3N2Yy5jOigudGV4dCsweDMxYSk6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYHhkcl9nZXRxdW90YV9yc2x0JwotcnF1b3RhX3N2Yy5jOigudGV4dCsweDMyMSk6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYHhkcl9leHRfZ2V0cXVvdGFfYXJncycKLXJxdW90YV9zdmMubzogSW4gZnVuY3Rpb24gYHJxdW90YXByb2dfMSc6Ci1ycXVvdGFfc3ZjLmM6KC50ZXh0KzB4M2YzKTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgeGRyX3NldHF1b3RhX3JzbHQnCi1ycXVvdGFfc3ZjLmM6KC50ZXh0KzB4M2ZhKTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgeGRyX3NldHF1b3RhX2FyZ3MnCi1ycXVvdGFfc3ZjLmM6KC50ZXh0KzB4NGQyKTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgeGRyX3NldHF1b3RhX3JzbHQnCi1ycXVvdGFfc3ZjLmM6KC50ZXh0KzB4NGQ5KTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgeGRyX3NldHF1b3RhX2FyZ3MnCi1ycXVvdGFfc3ZjLmM6KC50ZXh0KzB4NTFmKTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgeGRyX2dldHF1b3RhX3JzbHQnCi1ycXVvdGFfc3ZjLmM6KC50ZXh0KzB4NTI2KTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgeGRyX2dldHF1b3RhX2FyZ3MnCi1ycXVvdGFfc3ZjLmM6KC50ZXh0KzB4NTNhKTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgeGRyX2dldHF1b3RhX3JzbHQnCi1ycXVvdGFfc3ZjLmM6KC50ZXh0KzB4NTQxKTogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgeGRyX2dldHF1b3RhX2FyZ3MnCi1jb2xsZWN0MjogZXJyb3I6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKLU1ha2VmaWxlOjkwMTogcmVjaXBlIGZvciB0YXJnZXQgJ3JwYy5ycXVvdGFkJyBmYWlsZWQKLQotU2lnbmVkLW9mZi1ieTogTGFycyBXZW5kbGVyIDxwb2x5bm9taWFsLWNAZ2VudG9vLm9yZz4KLVNpZ25lZC1vZmYtYnk6IEphbiBLYXJhIDxqYWNrQHN1c2UuY3o+Ci0tLS0KLSBNYWtlZmlsZS5hbSB8IDUgKysrKy0KLSAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9NYWtlZmlsZS5hbSBiL01ha2VmaWxlLmFtCi1pbmRleCA3N2Y4NDAwLi42ZDdlYTBlIDEwMDY0NAotLS0tIGEvTWFrZWZpbGUuYW0KLSsrKyBiL01ha2VmaWxlLmFtCi1AQCAtMTE2LDggKzExNiwxMSBAQCBzYmluX1BST0dSQU1TID0gXAotIAl4cW1zdGF0cyBcCi0gCWVkcXVvdGEgXAotIAlzZXRxdW90YSBcCi0tCWNvbnZlcnRxdW90YSBcCi0rCWNvbnZlcnRxdW90YQotK2lmIFdJVEhfUlBDCi0rc2Jpbl9QUk9HUkFNUyArPSBcCi0gCXJwYy5ycXVvdGFkCi0rZW5kaWYKLSBpZiBXSVRIX05FVExJTksKLSBzYmluX1BST0dSQU1TICs9IFwKLSAJcXVvdGFfbmxkCi0tLSAKLTIuNi4xCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcXVvdGEvcXVvdGEvMDAwNC1GaXgtd2FybmluZ3MtZHVlLXRvLW1pc3Npbmctc3RkbGliLmgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3F1b3RhL3F1b3RhLzAwMDQtRml4LXdhcm5pbmdzLWR1ZS10by1taXNzaW5nLXN0ZGxpYi5oLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZGI0Y2VhLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcXVvdGEvcXVvdGEvMDAwNC1GaXgtd2FybmluZ3MtZHVlLXRvLW1pc3Npbmctc3RkbGliLmgucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi1VcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0Ci0KLVNpZ25lZC1vZmYtYnk6IEthaSBLYW5nIDxrYWkua2FuZ0B3aW5kcml2ZXIuY29tPgotLS0tCi1Gcm9tIGM0YjU2ZWU1OGI5Yjc2ZDI1OTg1MzVjZjYxMDlhMjdiMjJlNjBhYmUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBKYW4gS2FyYSA8amFja0BzdXNlLmN6PgotRGF0ZTogV2VkLCAzMCBNYXIgMjAxNiAxMDoyMToxMyArMDIwMAotU3ViamVjdDogW1BBVENIXSBGaXggd2FybmluZ3MgZHVlIHRvIG1pc3Npbmcgc3RkbGliLmgKLQotV2hlbiBjb21waWxpbmcgd2l0aG91dCBSUEMsIHdlIGRvIG5vdCBnZXQgc3RkbGliLmggYXV0b21hdGljYWxseQotaW5jbHVkZWQgdmlhIG90aGVyIGluY2x1ZGVzIGFuZCB0aHVzIG1pc3Mgc29tZSBmdW5jdGlvbiBkZWZpbml0aW9ucy4KLUluY2x1ZGUgc3RkbGliLmggZXhwbGljaXRlbHkuCi0KLVNpZ25lZC1vZmYtYnk6IEphbiBLYXJhIDxqYWNrQHN1c2UuY3o+Ci0tLS0KLSBxdW90YW9wcy5jIHwgMSArCi0gc2V0cXVvdGEuYyB8IDEgKwotIDIgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9xdW90YW9wcy5jIGIvcXVvdGFvcHMuYwotaW5kZXggNTkwZGMxYi4uNTZjZjYyMiAxMDA2NDQKLS0tLSBhL3F1b3Rhb3BzLmMKLSsrKyBiL3F1b3Rhb3BzLmMKLUBAIC01Miw2ICs1Miw3IEBACi0gI2luY2x1ZGUgPHRpbWUuaD4KLSAjaW5jbHVkZSA8Y3R5cGUuaD4KLSAjaW5jbHVkZSA8bGltaXRzLmg+Ci0rI2luY2x1ZGUgPHN0ZGxpYi5oPgotIAotICNpZiBkZWZpbmVkKFJQQykKLSAjaW5jbHVkZSAicnF1b3RhLmgiCi1kaWZmIC0tZ2l0IGEvc2V0cXVvdGEuYyBiL3NldHF1b3RhLmMKLWluZGV4IDhlY2Q5YzMuLjQyMTYzMWUgMTAwNjQ0Ci0tLS0gYS9zZXRxdW90YS5jCi0rKysgYi9zZXRxdW90YS5jCi1AQCAtMTcsNiArMTcsNyBAQAotICNpbmNsdWRlIDxnZXRvcHQuaD4KLSAjaW5jbHVkZSA8dGltZS5oPgotICNpbmNsdWRlIDxjdHlwZS5oPgotKyNpbmNsdWRlIDxzdGRsaWIuaD4KLSAKLSAjaWYgZGVmaW5lZChSUEMpCi0gI2luY2x1ZGUgInJxdW90YS5oIgotLS0gCi0yLjYuMQotCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3F1b3RhL3F1b3RhL3JlcGxhY2VfZ2V0cnBjYnludW1iZXJfci5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcXVvdGEvcXVvdGEvcmVwbGFjZV9nZXRycGNieW51bWJlcl9yLnBhdGNoCmluZGV4IDljYTJmZmMuLjQ2ODdjYTAgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcXVvdGEvcXVvdGEvcmVwbGFjZV9nZXRycGNieW51bWJlcl9yLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcXVvdGEvcXVvdGEvcmVwbGFjZV9nZXRycGNieW51bWJlcl9yLnBhdGNoCkBAIC0xLDIwICsxLDMyIEBACi1SZXBsYWNlIGdldHJwY2J5bnVtYmVyX3Igd2l0aCBnZXRycGNieW51bWJlcgorRnJvbSBhMzgwOGZkMTY1ODQ3Mjk4ZDAyNTk3MWViM2M3YmU3ZDExY2FiYTlkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogIk1heGluIEIuIEpvaG4iIDxtYXhpbi5qb2huQGludGVsLmNvbT4KK0RhdGU6IFdlZCwgOCBOb3YgMjAxNyAxMTo1Njo1NSArMDIwMAorU3ViamVjdDogW1BBVENIXSBSZXBsYWNlIGdldHJwY2J5bnVtYmVyX3Igd2l0aCBnZXRycGNieW51bWJlcgorCiBtdXNsIGFuZCB1Y2xpYmMgZG9udCBpbXBsZW1lbnQgaXQKIAogVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCiAKIFNpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+Ci1JbmRleDogcXVvdGEtdG9vbHMvc3ZjX3NvY2tldC5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gcXVvdGEtdG9vbHMub3JpZy9zdmNfc29ja2V0LmMKLSsrKyBxdW90YS10b29scy9zdmNfc29ja2V0LmMKLUBAIC01NSw3ICs1NSw4IEBAIHN0YXRpYyBpbnQgc3ZjX3NvY2tldCAodV9sb25nIG51bWJlciwgaW4KLSAJYWRkci5zaW5fZmFtaWx5ID0gQUZfSU5FVDsKK1NpZ25lZC1vZmYtYnk6IE1heGluIEIuIEpvaG4gPG1heGluLmpvaG5AaW50ZWwuY29tPgorLS0tCisgc3ZjX3NvY2tldC5jIHwgMyArKy0KKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9zdmNfc29ja2V0LmMgYi9zdmNfc29ja2V0LmMKK2luZGV4IDhhNDQ2MDQuLjViZGFhYTAgMTAwNjQ0CistLS0gYS9zdmNfc29ja2V0LmMKKysrKyBiL3N2Y19zb2NrZXQuYworQEAgLTM2LDcgKzM2LDggQEAgc3RhdGljIGludCBnZXRfc2VydmljZV9wb3J0KHVfbG9uZyBudW1iZXIsIGNvbnN0IGNoYXIgKnByb3RvKQorIAlzdHJ1Y3Qgc2VydmVudCBzZXJ2YnVmLCAqc2VydnAgPSBOVUxMOworIAlpbnQgcmV0OwogIAotIAlpZiAoIXBvcnQpIHsKLS0JCXJldCA9IGdldHJwY2J5bnVtYmVyX3IobnVtYmVyLCAmcnBjYnVmLCBycGNkYXRhLCBzaXplb2YocnBjZGF0YSksICZycGNwKTsKLSsJCXJwY3AgPSBnZXRycGNieW51bWJlcihudW1iZXIpOwotKwkJcmV0ID0gMDsKLSAJCWlmIChyZXQgPT0gMCAmJiBycGNwICE9IE5VTEwpIHsKLSAJCQkvKiBGaXJzdCB0cnkgbmFtZSAqLwotIAkJCXJldCA9IGdldHNlcnZieW5hbWVfcihycGNwLT5yX25hbWUsIHByb3RvLCAmc2VydmJ1Ziwgc2VydmRhdGEsCistCXJldCA9IGdldHJwY2J5bnVtYmVyX3IobnVtYmVyLCAmcnBjYnVmLCBycGNkYXRhLCBzaXplb2YocnBjZGF0YSksICZycGNwKTsKKysgICAgcnBjcCA9IGdldHJwY2J5bnVtYmVyKG51bWJlcik7CisrICAgIHJldCA9IDA7CisgCWlmIChyZXQgPT0gMCAmJiBycGNwICE9IE5VTEwpIHsKKyAJCS8qIEZpcnN0IHRyeSBuYW1lICovCisgCQlyZXQgPSBnZXRzZXJ2YnluYW1lX3IocnBjcC0+cl9uYW1lLCBwcm90bywgJnNlcnZidWYsIHNlcnZkYXRhLAorLS0gCisyLjQuMAorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3F1b3RhL3F1b3RhXzQuMDMuYmIgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3F1b3RhL3F1b3RhXzQuMDQuYmIKc2ltaWxhcml0eSBpbmRleCA3MyUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9xdW90YS9xdW90YV80LjAzLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3F1b3RhL3F1b3RhXzQuMDQuYmIKaW5kZXggMjhiMzg1NC4uOTNmMzc2MiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9xdW90YS9xdW90YV80LjAzLmJiCisrKyBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcXVvdGEvcXVvdGFfNC4wNC5iYgpAQCAtOCwxOSArOCwxMyBAQAogICAgICAgICAgICAgICAgICAgICBmaWxlOi8vc3ZjX3NvY2tldC5jO2JlZ2lubGluZT0xO2VuZGxpbmU9MTc7bWQ1PTI0ZDVhODc5MmRhNDU5MTA3ODZlZWFjNzUwYmU4Y2ViIgogCiBTUkNfVVJJID0gIiR7U09VUkNFRk9SR0VfTUlSUk9SfS9wcm9qZWN0L2xpbnV4cXVvdGEvcXVvdGEtdG9vbHMvJHtQVn0vcXVvdGEtJHtQVn0udGFyLmd6IFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtRml4LWJ1aWxkLXdpdGgtZGlzYWJsZWQtbGRhcC5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLURvLW5vdC1hY2NpZGVudGFseS1vdmVycmlkZS1jb21tYW5kbGluZS1wYXNzZWQtQ0ZMQUcucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vZmNudGwucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vcmVtb3ZlX25vbl9wb3NpeF90eXBlcy5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDAxLVVzZS1OR1JPVVBTX01BWC1pbnN0ZWFkLW9mLU5HUk9VUFMucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vMDAwMi1BbGxvdy1idWlsZGluZy1vbi1zeXN0ZW1zLXRoYXQtZG8tbm90LWhhdmUtcnBjLWhlYWRlLnBhdGNoIFwKLSAgICAgICAgICAgZmlsZTovLzAwMDMtRG9uLXQtYnVpbGQtcnBjLnJxdW90YWQtd2hlbi1kaXNhYmxlLXJwYy13YXMtcmVxdWVzdC5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly8wMDA0LUZpeC13YXJuaW5ncy1kdWUtdG8tbWlzc2luZy1zdGRsaWIuaC5wYXRjaCBcCiAgICAgICAgICAgIgogU1JDX1VSSV9hcHBlbmRfbGliYy1tdXNsID0gIiBmaWxlOi8vcmVwbGFjZV9nZXRycGNieW51bWJlcl9yLnBhdGNoIgogCi1TUkNfVVJJW21kNXN1bV0gPSAiNmIwOWY5YzkzNTE1YzI1YTUyOGJlNTc1NGNkZmI2ZjUiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiOWM2YzRkOWFlN2JmMzA1MDZkZDJhYTNkODA1NmM0ZmYyZjhkMDg3OTMwZDdjNzIxNjE2ZjVjMDkzYmRjNjc0YiIKK1NSQ19VUklbbWQ1c3VtXSA9ICJmNDZmM2IwYjUxNDFmMDMyZjI1Njg0MDA1ZGFjNDlkMyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI3MzViZTE4ODdlN2Y1MWY1NDE2NWU3NzhhZTQzZmM4NTljMDRlNDRkODg4MzRlY2IyZjQ3MGU5MWQ0ZWY4ZWRmIgogCiBDVkVfUFJPRFVDVCA9ICJsaW51eF9kaXNrcXVvdGEiCiAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcnBjYmluZC9ycGNiaW5kL3BtYXBwcm9jX2R1bXAtRml4ZWQtdHlwby1pbi1tZW1vcnktbGVhay1wYXRjaC5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcnBjYmluZC9ycGNiaW5kL3BtYXBwcm9jX2R1bXAtRml4ZWQtdHlwby1pbi1tZW1vcnktbGVhay1wYXRjaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YzIzZWUwCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9ycGNiaW5kL3JwY2JpbmQvcG1hcHByb2NfZHVtcC1GaXhlZC10eXBvLWluLW1lbW9yeS1sZWFrLXBhdGNoLnBhdGNoCkBAIC0wLDAgKzEsMzAgQEAKK0Zyb20gYzQ5YTdlYTYzOWViNzAwODIzZTE3NGZkNjA1YmJiZTE4M2UyMjlhYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFN0ZXZlIERpY2tzb24gPHN0ZXZlZEByZWRoYXQuY29tPgorRGF0ZTogV2VkLCAxNyBNYXkgMjAxNyAxMDo1MjoyNSAtMDQwMAorU3ViamVjdDogW1BBVENIXSBwbWFwcHJvY19kdW1wOiBGaXhlZCB0eXBvIGluIG1lbW9yeSBsZWFrIHBhdGNoCisKK2NvbW1pdCA3ZWEzNmVlZSBpbnRyb2R1Y2UgYSB0eXBvIHRoYXQgY2F1c2VkCitOSVMgKGFrYSB5cGJpbmQpIHRvIGZhaWwuCisKK1NpZ25lZC1vZmYtYnk6IFN0ZXZlIERpY2tzb24gPHN0ZXZlZEByZWRoYXQuY29tPgorCitVcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0CisKK1NpZ25lZC1vZmYtYnk6IEphY2tpZSBIdWFuZyA8amFja2llLmh1YW5nQHdpbmRyaXZlci5jb20+CistLS0KKyBzcmMvcG1hcF9zdmMuYyB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworSW5kZXg6IHJwY2JpbmQtMC4yLjQvc3JjL3BtYXBfc3ZjLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBycGNiaW5kLTAuMi40Lm9yaWcvc3JjL3BtYXBfc3ZjLmMKKysrKyBycGNiaW5kLTAuMi40L3NyYy9wbWFwX3N2Yy5jCitAQCAtMzg0LDcgKzM4NCw3IEBAIHBtYXBwcm9jX2R1bXAoc3RydWN0IHN2Y19yZXEgKnJxc3RwIC8qX18KKyAJfQorIAorIGRvbmU6CistCWlmICghc3ZjX2ZyZWVhcmdzKHhwcnQsICh4ZHJwcm9jX3QpIHhkcl9wbWFwLCAoY2hhciAqKU5VTEwpKSB7CisrCWlmICghc3ZjX2ZyZWVhcmdzKHhwcnQsICh4ZHJwcm9jX3QpIHhkcl92b2lkLCAoY2hhciAqKU5VTEwpKSB7CisgCQlpZiAoZGVidWdnaW5nKSB7CisgCQkJLyoodm9pZCkgeGxvZyhMT0dfREVCVUcsICJ1bmFibGUgdG8gZnJlZSBhcmd1bWVudHNcbiIpOyovCisgCQkJaWYgKGRvYWJvcnQpIHsKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcnBjYmluZC9ycGNiaW5kL3JwY2Jwcm9jX2NhbGxpdF9jb20tU3RvcC1mcmVlaW5nLWEtc3RhdGljLXBvaW50ZXIucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3JwY2JpbmQvcnBjYmluZC9ycGNicHJvY19jYWxsaXRfY29tLVN0b3AtZnJlZWluZy1hLXN0YXRpYy1wb2ludGVyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhMDAwZDAKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3JwY2JpbmQvcnBjYmluZC9ycGNicHJvY19jYWxsaXRfY29tLVN0b3AtZnJlZWluZy1hLXN0YXRpYy1wb2ludGVyLnBhdGNoCkBAIC0wLDAgKzEsMTAwIEBACitGcm9tIDdjNzU5MGFkNTM2YzBlMjRiZWY3OTBjYjFlNjU3MDJmYzU0ZGI1NjYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBTdGV2ZSBEaWNrc29uIDxzdGV2ZWRAcmVkaGF0LmNvbT4KK0RhdGU6IFR1ZSwgMzAgTWF5IDIwMTcgMTE6Mjc6MjIgLTA0MDAKK1N1YmplY3Q6IFtQQVRDSF0gcnBjYnByb2NfY2FsbGl0X2NvbTogU3RvcCBmcmVlaW5nIGEgc3RhdGljIHBvaW50ZXIKKworY29tbWl0IDdlYTM2ZWUgaW50cm9kdWNlZCBhIHN2Y19mcmVlYXJncygpIGNhbGwKK3RoYXQgZW5kZWQgdXAgZnJlZWluZyBzdGF0aWMgcG9pbnRlci4KKworSXQgdHVybnMgb3V0IHRoZSBhbGxvY2F0aW9ucyBmb3IgdGhlIHJtdF9hcmdzCitpcyBub3QgbmVjZXNzYXJ5IC4gVGhlIHhkciByb3V0aW5lcyAoeGRyX2J5dGVzKSB3aWxsCitoYW5kbGUgdGhlIG1lbW9yeSBtYW5hZ2VtZW50IGFuZCB0aGUgbGFyZ2VzdAorcG9zc2libGUgbWVzc2FnZSBzaXplIGlzIFVEUE1TR1NJWkUgKGR1ZSB0byBVRFAgb25seSkKK3doaWNoIGlzIHNtYWxsZXIgdGhhbiBSUENfQlVGX01BWAorCitTaWduZWQtb2ZmLWJ5OiBTdGV2ZSBEaWNrc29uIDxzdGV2ZWRAcmVkaGF0LmNvbT4KKworVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydAorCitTaWduZWQtb2ZmLWJ5OiBKYWNraWUgSHVhbmcgPGphY2tpZS5odWFuZ0B3aW5kcml2ZXIuY29tPgorLS0tCisgc3JjL3JwY2Jfc3ZjX2NvbS5jIHwgMzkgKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMzMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvcnBjYl9zdmNfY29tLmMgYi9zcmMvcnBjYl9zdmNfY29tLmMKK2luZGV4IGNiNjNhZmQuLjFmYzIyMjkgMTAwNjQ0CistLS0gYS9zcmMvcnBjYl9zdmNfY29tLmMKKysrKyBiL3NyYy9ycGNiX3N2Y19jb20uYworQEAgLTYxMiw5ICs2MTIsOSBAQCBycGNicHJvY19jYWxsaXRfY29tKHN0cnVjdCBzdmNfcmVxICpycXN0cCwgU1ZDWFBSVCAqdHJhbnNwLAorIAlzdHJ1Y3QgbmV0Y29uZmlnICpuY29uZjsKKyAJc3RydWN0IG5ldGJ1ZiAqY2FsbGVyOworIAlzdHJ1Y3Qgcl9ybXRjYWxsX2FyZ3MgYTsKKy0JY2hhciAqYnVmX2FsbG9jID0gTlVMTCwgKm91dGJ1ZnA7CisrCWNoYXIgKm91dGJ1ZnA7CisgCWNoYXIgKm91dGJ1Zl9hbGxvYyA9IE5VTEw7CistCWNoYXIgYnVmW1JQQ19CVUZfTUFYXSwgb3V0YnVmW1JQQ19CVUZfTUFYXTsKKysJY2hhciAgb3V0YnVmW1JQQ19CVUZfTUFYXTsKKyAJc3RydWN0IG5ldGJ1ZiAqbmEgPSAoc3RydWN0IG5ldGJ1ZiAqKSBOVUxMOworIAlzdHJ1Y3QgcnBjX21zZyBjYWxsX21zZzsKKyAJaW50IG91dGxlbjsKK0BAIC02MzUsMzYgKzYzNSwxMCBAQCBycGNicHJvY19jYWxsaXRfY29tKHN0cnVjdCBzdmNfcmVxICpycXN0cCwgU1ZDWFBSVCAqdHJhbnNwLAorIAl9CisgCWlmIChzaS5zaV9zb2NrdHlwZSAhPSBTT0NLX0RHUkFNKQorIAkJcmV0dXJuOwkvKiBPbmx5IGRhdGFncmFtIHR5cGUgYWNjZXB0ZWQgKi8KKy0Jc2VuZHN6ID0gX19ycGNfZ2V0X3Rfc2l6ZShzaS5zaV9hZiwgc2kuc2lfcHJvdG8sIFVEUE1TR1NJWkUpOworLQlpZiAoc2VuZHN6ID09IDApIHsJLyogZGF0YSB0cmFuc2ZlciBub3Qgc3VwcG9ydGVkICovCistCQlpZiAocmVwbHlfdHlwZSA9PSBSUENCUFJPQ19JTkRJUkVDVCkKKy0JCQlzdmNlcnJfc3lzdGVtZXJyKHRyYW5zcCk7CistCQlyZXR1cm47CistCX0KKy0JLyoKKy0JICogU2hvdWxkIGJlIG11bHRpcGxlIG9mIDQgZm9yIFhEUi4KKy0JICovCistCXNlbmRzeiA9ICgoc2VuZHN6ICsgMykgLyA0KSAqIDQ7CistCWlmIChzZW5kc3ogPiBSUENfQlVGX01BWCkgeworLSNpZmRlZglub3R5ZXQKKy0JCWJ1Zl9hbGxvYyA9IGFsbG9jYShzZW5kc3opOwkJLyogbm90IGluIElEUjI/ICovCistI2Vsc2UKKy0JCWJ1Zl9hbGxvYyA9IG1hbGxvYyhzZW5kc3opOworLSNlbmRpZgkvKiBub3R5ZXQgKi8KKy0JCWlmIChidWZfYWxsb2MgPT0gTlVMTCkgeworLQkJCWlmIChkZWJ1Z2dpbmcpCistCQkJCXhsb2coTE9HX0RFQlVHLAorLQkJCQkJInJwY2Jwcm9jX2NhbGxpdF9jb206ICBObyBNZW1vcnkhXG4iKTsKKy0JCQlpZiAocmVwbHlfdHlwZSA9PSBSUENCUFJPQ19JTkRJUkVDVCkKKy0JCQkJc3ZjZXJyX3N5c3RlbWVycih0cmFuc3ApOworLQkJCXJldHVybjsKKy0JCX0KKy0JCWEucm10X2FyZ3MuYXJncyA9IGJ1Zl9hbGxvYzsKKy0JfSBlbHNlIHsKKy0JCWEucm10X2FyZ3MuYXJncyA9IGJ1ZjsKKy0JfQorKwlzZW5kc3ogPSBVRFBNU0dTSVpFOworIAorIAljYWxsX21zZy5ybV94aWQgPSAwOwkvKiBGb3IgZXJyb3IgY2hlY2tpbmcgcHVycG9zZXMgKi8KKysJbWVtc2V0KCZhLCAwLCBzaXplb2YoYSkpOyAvKiBaZXJvIG91dCB0aGUgaW5wdXQgYnVmZmVyICovCisgCWlmICghc3ZjX2dldGFyZ3ModHJhbnNwLCAoeGRycHJvY190KSB4ZHJfcm10Y2FsbF9hcmdzLCAoY2hhciAqKSAmYSkpIHsKKyAJCWlmIChyZXBseV90eXBlID09IFJQQ0JQUk9DX0lORElSRUNUKQorIAkJCXN2Y2Vycl9kZWNvZGUodHJhbnNwKTsKK0BAIC03MDQsNyArNjc4LDggQEAgcnBjYnByb2NfY2FsbGl0X2NvbShzdHJ1Y3Qgc3ZjX3JlcSAqcnFzdHAsIFNWQ1hQUlQgKnRyYW5zcCwKKyAJaWYgKHJibCA9PSAocnBjYmxpc3RfcHRyKU5VTEwpIHsKKyAjaWZkZWYgUlBDQklORF9ERUJVRworIAkJaWYgKGRlYnVnZ2luZykKKy0JCQl4bG9nKExPR19ERUJVRywgIm5vdCBmb3VuZFxuIik7CisrCQkJeGxvZyhMT0dfREVCVUcsICJwcm9nICVsdSB2ZXJzICVsdTogbm90IGZvdW5kXG4iLCAKKysJCQkJYS5ybXRfcHJvZywgYS5ybXRfdmVycyk7CisgI2VuZGlmCisgCQlpZiAocmVwbHlfdHlwZSA9PSBSUENCUFJPQ19JTkRJUkVDVCkKKyAJCQlzdmNlcnJfbm9wcm9nKHRyYW5zcCk7CitAQCAtOTM3LDggKzkxMiw2IEBAIG91dDoKKyAJfQorIAlpZiAobG9jYWxfdWFkZHIpCisgCQlmcmVlKGxvY2FsX3VhZGRyKTsKKy0JaWYgKGJ1Zl9hbGxvYykKKy0JCWZyZWUoYnVmX2FsbG9jKTsKKyAJaWYgKG91dGJ1Zl9hbGxvYykKKyAJCWZyZWUob3V0YnVmX2FsbG9jKTsKKyAJaWYgKG5hKSB7CistLSAKKzIuNy40CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvcnBjYmluZC9ycGNiaW5kXzAuMi40LmJiIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9ycGNiaW5kL3JwY2JpbmRfMC4yLjQuYmIKaW5kZXggNjBlNDZlZC4uZGNkZWU2YyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9ycGNiaW5kL3JwY2JpbmRfMC4yLjQuYmIKKysrIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9ycGNiaW5kL3JwY2JpbmRfMC4yLjQuYmIKQEAgLTE2LDYgKzE2LDggQEAKICAgICAgICAgICAgZmlsZTovL3JwY2JpbmQuc29ja2V0IFwKICAgICAgICAgICAgZmlsZTovL3JwY2JpbmQuc2VydmljZSBcCiAgICAgICAgICAgIGZpbGU6Ly8wMDAxLXJwY2JpbmQtcGFpci1hbGwtc3ZjX2dldGFyZ3MtY2FsbHMtd2l0aC1zdmNfZnJlZWFyZ3MucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vcG1hcHByb2NfZHVtcC1GaXhlZC10eXBvLWluLW1lbW9yeS1sZWFrLXBhdGNoLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL3JwY2Jwcm9jX2NhbGxpdF9jb20tU3RvcC1mcmVlaW5nLWEtc3RhdGljLXBvaW50ZXIucGF0Y2ggXAogICAgICAgICAgICIKIFNSQ19VUklbbWQ1c3VtXSA9ICJjZjEwY2Q0MWVkODIyOGZjNTRjMzE2MTkxYzFmMDdmZSIKIFNSQ19VUklbc2hhMjU2c3VtXSA9ICIwNzRhOWE1MzBkYzdjMTFlMGQ5MDVhYTU5YmNiMDg0N2MwMDkzMTNmMDJlOThkM2Q3OThhYTk1NjhmNDE0YzY2IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9zY3JlZW4vc2NyZWVuLzAwMDEtY29uZmlndXJlLmFjLWZpeC1jb25maWd1cmUtZmFpbGVkLXdoaWxlLWJ1aWxkLWRpci1oYS5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvc2NyZWVuL3NjcmVlbi8wMDAxLWNvbmZpZ3VyZS5hYy1maXgtY29uZmlndXJlLWZhaWxlZC13aGlsZS1idWlsZC1kaXItaGEucGF0Y2gKaW5kZXggZThkYjEyYy4uMTI3NGIyNyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9zY3JlZW4vc2NyZWVuLzAwMDEtY29uZmlndXJlLmFjLWZpeC1jb25maWd1cmUtZmFpbGVkLXdoaWxlLWJ1aWxkLWRpci1oYS5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3NjcmVlbi9zY3JlZW4vMDAwMS1jb25maWd1cmUuYWMtZml4LWNvbmZpZ3VyZS1mYWlsZWQtd2hpbGUtYnVpbGQtZGlyLWhhLnBhdGNoCkBAIC05LDcgKzksOCBAQAogV2UgcmFyZWx5IHVzZSAieWVzOyIgdG8gbmFtZSBidWlsZCBkaXIsIHNvIHMveWVzL3llczsvZwogY291bGQgZml4IHRoZSBpc3N1ZQogCi1VcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKK1Vwc3RyZWFtLVN0YXR1czogQWNjZXB0ZWQKK2h0dHBzOi8vZ2l0LnNhdmFubmFoLmdudS5vcmcvY2dpdC9zY3JlZW4uZ2l0L2NvbW1pdC8/aD1zY3JlZW4tdjQmaWQ9OGMyYjQwNjFkMTY3NTZlZTJlZDM3ZjA4ZGIwNjNiODIxNTY1Njk0MwogCiBTaWduZWQtb2ZmLWJ5OiBKaWFuIEthbmcgPGppYW4ua2FuZ0B3aW5kcml2ZXIuY29tPgogLS0tCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3NjcmVlbi9zY3JlZW4vMDAwMi1jb21tLmgtbm93LWRlcGVuZHMtb24tdGVybS5oLnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9zY3JlZW4vc2NyZWVuLzAwMDItY29tbS5oLW5vdy1kZXBlbmRzLW9uLXRlcm0uaC5wYXRjaAppbmRleCBiNWQ3MWNjLi5hMDFkYzI0IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3NjcmVlbi9zY3JlZW4vMDAwMi1jb21tLmgtbm93LWRlcGVuZHMtb24tdGVybS5oLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvc2NyZWVuL3NjcmVlbi8wMDAyLWNvbW0uaC1ub3ctZGVwZW5kcy1vbi10ZXJtLmgucGF0Y2gKQEAgLTE1LDE5ICsxNSwxNiBAQAogIHNyYy9NYWtlZmlsZS5pbiB8IDIgKy0KICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKIAotZGlmZiAtLWdpdCBhL3NyYy9NYWtlZmlsZS5pbiBiL3NyYy9NYWtlZmlsZS5pbgotaW5kZXggZTc5MWU3OS4uZDRmN2MwYiAxMDA2NDQKLS0tLSBhL01ha2VmaWxlLmluCi0rKysgYi9NYWtlZmlsZS5pbgotQEAgLTExMyw3ICsxMTMsNyBAQCB0ZXJtLmg6IHRlcm0uYyB0ZXJtLnNoCi0gCi0ga21hcGRlZi5jOiB0ZXJtLmgKK0luZGV4OiBzY3JlZW4tNC42LjEvTWFrZWZpbGUuaW4KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBzY3JlZW4tNC42LjEub3JpZy9NYWtlZmlsZS5pbgorKysrIHNjcmVlbi00LjYuMS9NYWtlZmlsZS5pbgorQEAgLTEzMyw3ICsxMzMsNyBAQCBrbWFwZGVmLmM6IHRlcm0uaAorIHR0eS5jOgl0dHkuc2ggCisgCXNoICQoc3JjZGlyKS90dHkuc2ggdHR5LmMKICAKIC1jb21tLmg6IGNvbW0uYyBjb21tLnNoIGNvbmZpZy5oCiArY29tbS5oOiBjb21tLmMgY29tbS5zaCBjb25maWcuaCB0ZXJtLmgKICAJQVdLPSQoQVdLKSBDQz0iJChDQykgJChDRkxBR1MpIiBzcmNkaXI9JHtzcmNkaXJ9IHNoICQoc3JjZGlyKS9jb21tLnNoCiAgCi0gZG9jczoKLS0tIAotMi40LjEKLQorIG9zZGVmLmg6IG9zZGVmLnNoIGNvbmZpZy5oIG9zZGVmLmguaW4KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvc2NyZWVuL3NjcmVlbl80LjYuMS5iYiBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvc2NyZWVuL3NjcmVlbl80LjYuMi5iYgpzaW1pbGFyaXR5IGluZGV4IDkzJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3NjcmVlbi9zY3JlZW5fNC42LjEuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvc2NyZWVuL3NjcmVlbl80LjYuMi5iYgppbmRleCBiY2Q4M2EyLi43YTMzYzMxIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3NjcmVlbi9zY3JlZW5fNC42LjEuYmIKKysrIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9zY3JlZW4vc2NyZWVuXzQuNi4yLmJiCkBAIC0yNiw4ICsyNiw4IEBACiAgICAgICAgICAgIGZpbGU6Ly8wMDAxLWNvbmZpZ3VyZS5hYy1maXgtY29uZmlndXJlLWZhaWxlZC13aGlsZS1idWlsZC1kaXItaGEucGF0Y2ggXAogICAgICAgICAgICIKIAotU1JDX1VSSVttZDVzdW1dID0gIjEzMmM4OTNhYWJmYWYyMDIwMDc0NzkwMjE1YzhjYWNkIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImFiYTlhZjY2Y2I2MjYxNTVkNmFiY2U0NzAzZjQ1Y2NlMGUzMGE1MTE0YTM2OGJkNjM4N2M5NjZjYmJiYjdjNjQiCitTUkNfVVJJW21kNXN1bV0gPSAiYTBmNTI5ZDMzMzNiMTI4ZGZhYTMyNGQ5NzhiYTczYTgiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMWI2OTIyNTIwZTZhMGNlNWUyODc2OGQ2MjBiMGY2NDBhNjYzMTM5N2Y5NWNjYjA0M2I3MGI5MWJiNTAzZmEzYSIKIAogaW5oZXJpdCBhdXRvdG9vbHMgdGV4aW5mbwogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3NlZC9zZWRfNC4yLjIuYmIgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3NlZC9zZWRfNC4yLjIuYmIKaW5kZXggZTMxYmVjMi4uZjEwZTM2NSAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9zZWQvc2VkXzQuMi4yLmJiCisrKyBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvc2VkL3NlZF80LjIuMi5iYgpAQCAtNDIsNiArNDIsMTIgQEAKIAogZG9faW5zdGFsbF9wdGVzdCgpIHsKIAlvZV9ydW5tYWtlIC1DICR7VEVTVERJUn0gaW5zdGFsbC1wdGVzdCBCVUlMRERJUj0ke0J9IERFU1RESVI9JHtEfSR7UFRFU1RfUEFUSH0gVEVTVERJUj0ke1RFU1RESVJ9CisJc2VkIC1lICdzLC0tc3lzcm9vdD0ke1NUQUdJTkdfRElSX1RBUkdFVH0sLGcnIFwKKwkgICAgLWUgJ3N8JHtERUJVR19QUkVGSVhfTUFQfXx8ZycgXAorCSAgICAtZSAnczoke0hPU1RUT09MU19ESVJ9Lzo6ZycgXAorCSAgICAtZSAnczoke1JFQ0lQRV9TWVNST09UX05BVElWRX06OmcnIFwKKwkgICAgLWUgJ3M6JHtCQVNFX1dPUktESVJ9LyR7TVVMVElNQUNIX1RBUkdFVF9TWVN9OjpnJyBcCisJICAgIC1pICR7RH0ke1BURVNUX1BBVEh9LyR7VEVTVERJUn0vTWFrZWZpbGUKIH0KIAogUlBST1ZJREVTXyR7UE59ICs9ICIke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3Vzcm1lcmdlJywgJy9iaW4vc2VkJywgJycsIGQpfSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvc2hhZG93L3NoYWRvdy5pbmMgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3NoYWRvdy9zaGFkb3cuaW5jCmluZGV4IGNjMTg5NjQuLjY3MzIwN2YgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvc2hhZG93L3NoYWRvdy5pbmMKKysrIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9zaGFkb3cvc2hhZG93LmluYwpAQCAtNiw4ICs2LDcgQEAKIExJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWVkODBmZjFjMmI0MDg0M2NmNTc2OGU1MjI5Y2YxNmU1IFwKICAgICAgICAgICAgICAgICAgICAgZmlsZTovL3NyYy9wYXNzd2QuYztiZWdpbmxpbmU9ODtlbmRsaW5lPTMwO21kNT1kODM4ODhlYTE0YWU2MTk1MTk4MmQ3NzEyNTk0NzY2MSIKIAotREVQRU5EU19jbGFzcy1uYXRpdmUgPSAiIgotREVQRU5EU19jbGFzcy1uYXRpdmVzZGsgPSAiIgorREVQRU5EUyA9ICJ2aXJ0dWFsL2NyeXB0IgogCiBTUkNfVVJJID0gImh0dHA6Ly9wa2ctc2hhZG93LmFsaW90aC5kZWJpYW4ub3JnL3JlbGVhc2VzLyR7QlBOfS0ke1BWfS50YXIueHogXAogICAgICAgICAgICBmaWxlOi8vc2hhZG93LTQuMS4zLWRvdHMtaW4tdXNlcm5hbWVzLnBhdGNoIFwKQEAgLTE5MCw3ICsxODksNyBAQAogQUxURVJOQVRJVkVfTElOS19OQU1FW25vbG9naW4uOF0gPSAiJHttYW5kaXJ9L21hbjgvbm9sb2dpbi44IgogCiBQQUNLQUdFX1dSSVRFX0RFUFMgKz0gInNoYWRvdy1uYXRpdmUiCi1wa2dfcG9zdGluc3RfJHtQTn0gKCkgeworcGtnX3Bvc3RpbnN0XyR7UE59X2NsYXNzLXRhcmdldCAoKSB7CiAJaWYgWyAieCREIiAhPSAieCIgXTsgdGhlbgogCSAgcm9vdGFyZz0iLS1yb290ICREIgogCWVsc2UKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvc2xhbmcvc2xhbmdfMi4zLjFhLmJiIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9zbGFuZy9zbGFuZ18yLjMuMi5iYgpzaW1pbGFyaXR5IGluZGV4IDk1JQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3NsYW5nL3NsYW5nXzIuMy4xYS5iYgpyZW5hbWUgdG8gaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9zbGFuZy9zbGFuZ18yLjMuMi5iYgppbmRleCAwNTg1YzE0Li44N2ZkNDFhIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3NsYW5nL3NsYW5nXzIuMy4xYS5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3NsYW5nL3NsYW5nXzIuMy4yLmJiCkBAIC0yMiw4ICsyMiw4IEBACiAgICAgICAgICAgIGZpbGU6Ly9ydW4tcHRlc3QgXAogICAgICAgICAgICIKIAotU1JDX1VSSVttZDVzdW1dID0gImM1MjM1MzEzMDQyZWQwZTcxZWM3MDhmN2I4NWVjMjQxIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjU0ZjBjMzAwN2ZkZTkxODAzOWMwNTg5NjVkZmZkZmQ2YzVhZWMwYmFkMGY0MjI3MTkyY2M0ODYwMjFmMDhjMzYiCitTUkNfVVJJW21kNXN1bV0gPSAiYzJkNWE3YWEwMjQ2NjI3ZGE0OTBiZTRlMzk5Yzg3Y2IiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZmM5ZTNiMGZjNGY2N2MzYzFmNmQ0M2M5MGMxNmE1YzQyZDExN2I4ZTI4NDU3YzViNDY4MzFiOGI1ZDNhZTMxYSIKIAogVVBTVFJFQU1fQ0hFQ0tfVVJJID0gImh0dHA6Ly93d3cuamVkc29mdC5vcmcvcmVsZWFzZXMvc2xhbmcvIgogUFJFTUlSUk9SU19hcHBlbmQgPSAiXG4gaHR0cDovL3d3dy5qZWRzb2Z0Lm9yZy9yZWxlYXNlcy9zbGFuZy8uKiBodHRwOi8vd3d3LmplZHNvZnQub3JnL3JlbGVhc2VzL3NsYW5nL29sZC8gXG4iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3N0YXQvc3RhdC0zLjMvZml4LWVycm9yLXJldHVybi5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvc3RhdC9zdGF0LTMuMy9maXgtZXJyb3ItcmV0dXJuLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMzI5OTVkLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvc3RhdC9zdGF0LTMuMy9maXgtZXJyb3ItcmV0dXJuLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotVGhpcyBwYXRjaCBmaXhpZXMgdGhlIHdyb25nIHJldHVybiBjb2RlIG9mIHN0YXQgLWguCi0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotU2lnbmVkLW9mZi1ieTogWmhhbmdsZSBZYW5nIDx6aGFuZ2xlLnlhbmdAd2luZHJpdmVyLmNvbT4KLQotLS0tIHN0YXQtMy4zL3N0YXQuYy5vcmlnCTIwMTMtMDgtMjIgMTA6NDk6NDUuMDAwMDAwMDAwICswODAwCi0rKysgc3RhdC0zLjMvc3RhdC5jCTIwMTMtMDgtMjIgMTA6NTA6MzEuMDAwMDAwMDAwICswODAwCi1AQCAtODQ1LDcgKzg0NSw3IEBACi0gICAgIGZwcmludGYoc3RkZXJyLCAiXHRcdCUlUyAtIFNlY3VyaXR5IElEIGluIFNFLUxpbnV4XG4iKTsKLSAgICAgZnByaW50ZihzdGRlcnIsICJcdFx0JSVDIC0gU2VjdXJpdHkgY29udGV4dCBpbiBTRS1MaW51eFxuIik7Ci0gICAgIGZwcmludGYoc3RkZXJyLCAiXHRcdCUlZCAtIEZyZWUgZmlsZSBub2RlcyBpbiBmaWxlIHN5c3RlbVxuIik7Ci0tICAgIGV4aXQoMSk7Ci0rICAgIGV4aXQoMCk7Ci0gfQotICAgCi0gCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3N0YXQvc3RhdC0zLjMvZml4LXNlY3VyaXR5LWZvcm1hdC5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvc3RhdC9zdGF0LTMuMy9maXgtc2VjdXJpdHktZm9ybWF0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYzAxZWQwLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvc3RhdC9zdGF0LTMuMy9maXgtc2VjdXJpdHktZm9ybWF0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNjggKzAsMCBAQAotc3RhdDogRml4aW5nIHNlY3VyaXR5IGZvcm1hdHRpbmcgaXNzdWVzCi0KLUZpeCBzZWN1cml0eSBmb3JtYXR0aW5nIGlzc3VlcyByZWxhdGVkIHRvIHByaW50ZiB3aXRob3V0IE5VTEwgYXJndW1lbnQgCi0KLXN0YXQuYzogSW4gZnVuY3Rpb24gJ3ByaW50X2h1bWFuX2FjY2Vzcyc6Ci1zdGF0LmM6MjkyOjEzOiBlcnJvcjogZm9ybWF0IG5vdCBhIHN0cmluZyBsaXRlcmFsIGFuZCBubyBmb3JtYXQgYXJndW1lbnRzIFstV2Vycm9yPWZvcm1hdC1zZWN1cml0eV0KLSAgICAgcHJpbnRmIChhY2Nlc3MpOwotICAgICAgICAgICAgIF4KLXN0YXQuYzogSW4gZnVuY3Rpb24gJ3ByaW50X2h1bWFuX3RpbWUnOgotc3RhdC5jOjI5OTo1NzogZXJyb3I6IGZvcm1hdCBub3QgYSBzdHJpbmcgbGl0ZXJhbCBhbmQgbm8gZm9ybWF0IGFyZ3VtZW50cyBbLVdlcnJvcj1mb3JtYXQtc2VjdXJpdHldCi0gICBpZiAoc3RyZnRpbWUoc3RyLCA0MCwgIiVjIiwgbG9jYWx0aW1lKHQpKSA+IDApIHByaW50ZihzdHIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgotc3RhdC5jOiBJbiBmdW5jdGlvbiAncHJpbnRfaXQnOgotc3RhdC5jOjYxMzo2OiBlcnJvcjogZm9ybWF0IG5vdCBhIHN0cmluZyBsaXRlcmFsIGFuZCBubyBmb3JtYXQgYXJndW1lbnRzIFstV2Vycm9yPWZvcm1hdC1zZWN1cml0eV0KLSAgICAgIHByaW50ZihiKTsKLSAgICAgIF4KLXN0YXQuYzo2NDI6NjogZXJyb3I6IGZvcm1hdCBub3QgYSBzdHJpbmcgbGl0ZXJhbCBhbmQgbm8gZm9ybWF0IGFyZ3VtZW50cyBbLVdlcnJvcj1mb3JtYXQtc2VjdXJpdHldCi0gICAgICBwcmludGYoYik7Ci0gICAgICBeCi0KLVtZT0NUTyAjOTU1MF0KLVtodHRwczovL2J1Z3ppbGxhLnlvY3RvcHJvamVjdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1NTBdCi0KLVVwc3RyZWFtLVN0YXR1czogUGVuZGluZwotCi1TaWduZWQtb2ZmLWJ5OiBFZHdpbiBQbGF1Y2h1IDxlZHdpbi5wbGF1Y2h1LmNhbWFjaG9AaW50ZWwuY29tPgotCi1kaWZmIC0tZ2l0IGEvc3RhdC5jIGIvc3RhdC5jCi1pbmRleCAxZWQwN2E5Li4yYmU2ZjYyIDEwMDY0NAotLS0tIGEvc3RhdC5jCi0rKysgYi9zdGF0LmMKLUBAIC0yODksMTUgKzI4OSwxNSBAQCB2b2lkIHByaW50X2h1bWFuX2FjY2VzcyhzdHJ1Y3Qgc3RhdCAqc3RhdGJ1ZikKLSAgICAgZGVmYXVsdDoKLSAgICAgICBhY2Nlc3NbMF0gPSAnPyc7Ci0gICAgIH0KLS0gICAgcHJpbnRmIChhY2Nlc3MpOwotKyAgICBmcHV0cyhhY2Nlc3Msc3Rkb3V0KTsKLSB9Ci0gCi0gdm9pZCBwcmludF9odW1hbl90aW1lKHRpbWVfdCAqdCkKLSB7Ci0gICBjaGFyIHN0cls0MF07Ci0gICAKLS0gIGlmIChzdHJmdGltZShzdHIsIDQwLCAiJWMiLCBsb2NhbHRpbWUodCkpID4gMCkgcHJpbnRmKHN0cik7Ci0tICBlbHNlIHByaW50ZigiQ2Fubm90IGNhbGN1bGF0ZSBodW1hbiByZWFkYWJsZSB0aW1lLCBzb3JyeSIpOwotKyAgaWYgKHN0cmZ0aW1lKHN0ciwgNDAsICIlYyIsIGxvY2FsdGltZSh0KSkgPiAwKSBmcHV0cyhzdHIsc3Rkb3V0KTsKLSsgIGVsc2UgZnB1dHMoIkNhbm5vdCBjYWxjdWxhdGUgaHVtYW4gcmVhZGFibGUgdGltZSwgc29ycnkiLHN0ZG91dCk7Ci0gfQotIAotIC8qIHByaW50IHN0YXRmcyBpbmZvICovCi1AQCAtNjEwLDcgKzYxMCw3IEBAIHZvaWQgcHJpbnRfaXQoY2hhciAqbWFzdGVyZm9ybWF0LCBjaGFyICpmaWxlbmFtZSwKLSAJewotIAkgICAgc3RyY3B5IChwZm9ybWF0LCAiJSIpOwotIAkgICAgKm0rKyA9ICdcMCc7Ci0tCSAgICBwcmludGYoYik7Ci0rCSAgICBmcHV0cyhiLHN0ZG91dCk7Ci0gCi0gCSAgICAvKiBjb3B5IGFsbCBmb3JtYXQgc3BlY2lmaWVycyB0byBvdXIgZm9ybWF0IHN0cmluZyAqLwotIAkgICAgd2hpbGUgKGlzZGlnaXQoKm0pIHx8IHN0cmNocigiIzAtKy4gSSIsICptKSkKLUBAIC02MzksNyArNjM5LDcgQEAgdm9pZCBwcmludF9pdChjaGFyICptYXN0ZXJmb3JtYXQsIGNoYXIgKmZpbGVuYW1lLAotIAl9Ci0gCWVsc2UKLSAJewotLQkgICAgcHJpbnRmKGIpOwotKwkgICAgZnB1dHMoYixzdGRvdXQpOwotIAkgICAgYiA9IE5VTEw7Ci0gCX0KLSAgICAgfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9zdGF0L3N0YXRfMy4zLmJiIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9zdGF0L3N0YXRfMy4zLmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YWM4ZTg5Li4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvc3RhdC9zdGF0XzMuMy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLVNVTU1BUlkgPSAiQ29tbWFuZCBsaW5lIGZpbGUgc3RhdHVzIGRpc3BsYXkgdXRpbGl0eSIKLUhPTUVQQUdFID0gImh0dHA6Ly93d3cuaWJpYmxpby5vcmcvcHViL0xpbnV4L3V0aWxzL2ZpbGUvIgotREVTQ1JJUFRJT04gPSAiRGlzcGxheXMgYWxsIGluZm9ybWF0aW9uIGFib3V0IGEgZmlsZSB0aGF0IHRoZSBzdGF0KCkgY2FsbCBwcm92aWRlcyBhbmQgYWxsIGluZm9ybWF0aW9uIGFib3V0IGEgZmlsZXN5c3RlbSB0aGF0IHN0YXRmcygpIHByb3ZpZGVzLiIKLVNFQ1RJT04gPSAiY29uc29sZS91dGlscyIKLUxJQ0VOU0UgPSAiR1BMdjIiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZUklHSFQ7bWQ1PTM5ODg2YjA3N2ZkMDcyZTg3NmU1YzRjMTYzMTBiNjMxIFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL0dQTDttZDU9OTRkNTVkNTEyYTliYTM2Y2FhOWI3ZGYwNzliYWUxOWYiCi0KLVNSQ19VUkkgPSAiaHR0cDovL3d3dy5pYmlibGlvLm9yZy9wdWIvTGludXgvdXRpbHMvZmlsZS8ke0JQfS50YXIuZ3ogXAotICAgICAgICAgICBmaWxlOi8vZml4LXNlY3VyaXR5LWZvcm1hdC5wYXRjaCBcCi0gICAgICAgICAgIGZpbGU6Ly9maXgtZXJyb3ItcmV0dXJuLnBhdGNoIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiMzdlMjQ3ZThlNDAwYWQ5MjA1ZjFiMDUwMGI3MjhmZDMiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiNzA3MWYwMzg0YTQyM2E5MzhkZDU0MmMxZjA4NTQ3YTAyODI0ZjYzNTlhY2QzZWYzZjk0NGIyYzRjMmQxZWUwOSIKLQotRVhUUkFfT0VNQUtFID0gIi1lIE1BS0VGTEFHUz0iCi0KLWRvX2luc3RhbGwoKSB7Ci0JaW5zdGFsbCAtZCAke0R9JHtiYXNlX2JpbmRpcn0gJHtEfSR7bWFuZGlyfS9tYW4xCi0JaW5zdGFsbCAtbSA3NTUgc3RhdCAke0R9JHtiYXNlX2JpbmRpcn0vc3RhdC5zdGF0Ci0JaW5zdGFsbCAtbSA2NDQgc3RhdC4xICR7RH0ke21hbmRpcn0vbWFuMQotfQotCi1pbmhlcml0IHVwZGF0ZS1hbHRlcm5hdGl2ZXMKLQotQUxURVJOQVRJVkVfJHtQTn0gPSAic3RhdCIKLUFMVEVSTkFUSVZFX1BSSU9SSVRZW3N0YXRdID0gIjIwMCIKLUFMVEVSTkFUSVZFX0xJTktfTkFNRVtzdGF0XSA9ICIke2Jhc2VfYmluZGlyfS9zdGF0IgotQUxURVJOQVRJVkVfVEFSR0VUW3N0YXRdID0gIiR7YmFzZV9iaW5kaXJ9L3N0YXQuc3RhdCIKLQotQUxURVJOQVRJVkVfJHtQTn0tZG9jID0gInN0YXQuMSIKLUFMVEVSTkFUSVZFX0xJTktfTkFNRVtzdGF0LjFdID0gIiR7bWFuZGlyfS9tYW4xL3N0YXQuMSIKLQotQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCi0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvc3Vkby9zdWRvLmluYyBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvc3Vkby9zdWRvLmluYwppbmRleCA4MGVjMGFlLi4zNjJiZDNhIDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3N1ZG8vc3Vkby5pbmMKKysrIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9zdWRvL3N1ZG8uaW5jCkBAIC00LDggKzQsOCBAQAogQlVHVFJBQ0tFUiA9ICJodHRwOi8vd3d3LnN1ZG8ud3MvYnVncy8iCiBTRUNUSU9OID0gImFkbWluIgogTElDRU5TRSA9ICJJU0MgJiBCU0QgJiBabGliIgotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vZG9jL0xJQ0VOU0U7bWQ1PTY1MmZiNDMzNGMxM2I1MTE1OTdkNzk0MGVmOGIzMzIzIFwKLSAgICAgICAgICAgICAgICAgICAgZmlsZTovL3BsdWdpbnMvc3Vkb2Vycy9yZWRibGFjay5jO2JlZ2lubGluZT0xO2VuZGxpbmU9NDE7bWQ1PWNmZTQxMTEyZjk2YzE5YTA3NDkzNGQxMjhmNDVjNjkzIFwKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL2RvYy9MSUNFTlNFO21kNT03NzY1YTNkNzg3Y2I0ZmVkM2NjYzNjOWNlZTAzMGFmOSBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9wbHVnaW5zL3N1ZG9lcnMvcmVkYmxhY2suYztiZWdpbmxpbmU9MTtlbmRsaW5lPTQxO21kNT04MDU3ODJhODQ2Njk3NTcxNmY4Mzc2YjJiZTlhZWRkZSBcCiAgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9saWIvdXRpbC9yZWFsbG9jYXJyYXkuYztiZWdpbmxpbmU9MztlbmRsaW5lPTE2O21kNT04NWIwOTA1Yjc5NWQ0ZDU4YmYyZTAwNjM1NjQ5ZWVjNiBcCiAgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9saWIvdXRpbC9mbm1hdGNoLmM7YmVnaW5saW5lPTM7ZW5kbGluZT0yNzttZDU9NjdmODNlZTliZDQ1NjU1NzM5NzA4MmY4ZjFiZTBlZmQgXAogICAgICAgICAgICAgICAgICAgICBmaWxlOi8vbGliL3V0aWwvZ2V0Y3dkLmM7YmVnaW5saW5lPTU7ZW5kbGluZT0yNzttZDU9NDQ5YWY0Y2M1N2ZjN2Q0NmY0MjA5MDYwOGJhM2U2ODEgXApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9zdWRvL3N1ZG9fMS44LjIwcDIuYmIgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3N1ZG8vc3Vkb18xLjguMjIuYmIKc2ltaWxhcml0eSBpbmRleCA5MCUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9zdWRvL3N1ZG9fMS44LjIwcDIuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvc3Vkby9zdWRvXzEuOC4yMi5iYgppbmRleCA0ZjI0YjNjLi45MTUwMTc4IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3N1ZG8vc3Vkb18xLjguMjBwMi5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3N1ZG8vc3Vkb18xLjguMjIuYmIKQEAgLTcsOCArNyw4IEBACiAKIFBBTV9TUkNfVVJJID0gImZpbGU6Ly9zdWRvLnBhbSIKIAotU1JDX1VSSVttZDVzdW1dID0gIjAzZGE4ZTcxMWNhY2E2ZmQ5M2U1Nzc1MWJmYjc0YWRjIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gImJkNDJhZTEwNTllOTM1Zjc5NWM2OWVhOTdiM2RlMDlmZTk0MTBhNThhNzRiNWQ1ZTY4MzZlYjUwNjdhNDQ1ZDkiCitTUkNfVVJJW21kNXN1bV0gPSAiMjRhYmRlYTQ4ZGI0YzVhYmNkNDEwMTY3YzgwMWNjOGMiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNzI1NmNiMjdjMjA4ODNiMTQzNjBlZGRiZDE3Zjk4OTIyMDczZDEwNGIyMTRjZjY1YWVhY2YxZDljOWI5ZmQwMiIKIAogREVQRU5EUyArPSAiICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAncGFtJywgJ2xpYnBhbScsICcnLCBkKX0iCiBSREVQRU5EU18ke1BOfSArPSAiICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAncGFtJywgJ3BhbS1wbHVnaW4tbGltaXRzIHBhbS1wbHVnaW4ta2V5aW5pdCcsICcnLCBkKX0iCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3N5c2tsb2dkL2ZpbGVzL25vLXN0cmlwLWluc3RhbGwucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3N5c2tsb2dkL2ZpbGVzL25vLXN0cmlwLWluc3RhbGwucGF0Y2gKaW5kZXggMDBmYmE3MS4uZDQyNmM4MyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC9zeXNrbG9nZC9maWxlcy9uby1zdHJpcC1pbnN0YWxsLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvc3lza2xvZ2QvZmlsZXMvbm8tc3RyaXAtaW5zdGFsbC5wYXRjaApAQCAtMSwxMCArMSwxMCBAQAogVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtjb25maWd1cmF0aW9uXQogCi1JbmRleDogc3lza2xvZ2QtMS41L01ha2VmaWxlCitJbmRleDogc3lza2xvZ2QtMS41LjEvTWFrZWZpbGUKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBzeXNrbG9nZC0xLjUub3JpZy9NYWtlZmlsZQkyMDA5LTA2LTA5IDEzOjAyOjQxLjAwMDAwMDAwMCArMDIwMAotKysrIHN5c2tsb2dkLTEuNS9NYWtlZmlsZQkyMDA5LTA2LTA5IDEzOjAzOjA2LjAwMDAwMDAwMCArMDIwMAotQEAgLTEyNyw4ICsxMjcsOCBAQAorLS0tIHN5c2tsb2dkLTEuNS4xLm9yaWcvTWFrZWZpbGUKKysrKyBzeXNrbG9nZC0xLjUuMS9NYWtlZmlsZQorQEAgLTEyNyw4ICsxMjcsOCBAQCBjbG9iYmVyOiBjbGVhbgogIAlybSAtZiBzeXNsb2dkIGtsb2dkIGtzeW0gc3lzbG9nX3RzdCBvb3BzX3Rlc3QgVEFHUyB0c3lzbG9nZCB0a2xvZ2QKICAKICBpbnN0YWxsX2V4ZWM6IHN5c2xvZ2Qga2xvZ2QKQEAgLTE0LDQgKzE0LDQgQEAKICsJJHtJTlNUQUxMfSAtbSA1MDAga2xvZ2QgJHtCSU5ESVJ9L2tsb2dkCiAgCiAgaW5zdGFsbF9tYW46Ci0gCSR7SU5TVEFMTH0gLW0gJHtNQU5fUEVSTVN9IHN5c2tsb2dkLjggJHtNQU5ESVJ9L21hbjgvc3lza2xvZ2QuOAorIAkke0lOU1RBTEx9IC1vICR7TUFOX1VTRVJ9IC1nICR7TUFOX0dST1VQfSAtbSAke01BTl9QRVJNU30gc3lza2xvZ2QuOCAke01BTkRJUn0vbWFuOC9zeXNrbG9nZC44CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3N5c3N0YXQvc3lzc3RhdC8wMDAxLUluY2x1ZGUtbmVlZGVkLWhlYWRlcnMtZXhwbGljaXRseS5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvc3lzc3RhdC9zeXNzdGF0LzAwMDEtSW5jbHVkZS1uZWVkZWQtaGVhZGVycy1leHBsaWNpdGx5LnBhdGNoCmluZGV4IGMxMjY1MjMuLjFiNjMyOTkgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvc3lzc3RhdC9zeXNzdGF0LzAwMDEtSW5jbHVkZS1uZWVkZWQtaGVhZGVycy1leHBsaWNpdGx5LnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvc3lzc3RhdC9zeXNzdGF0LzAwMDEtSW5jbHVkZS1uZWVkZWQtaGVhZGVycy1leHBsaWNpdGx5LnBhdGNoCkBAIC0yMSwxMCArMjEsMTAgQEAKICBzYV9jb21tb24uYyB8IDEgKwogIDMgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCiAKLWRpZmYgLS1naXQgYS9jb21tb24uYyBiL2NvbW1vbi5jCi1pbmRleCBhMjMxNTViLi5hZDg2NDQ2IDEwMDY0NAotLS0tIGEvY29tbW9uLmMKLSsrKyBiL2NvbW1vbi5jCitJbmRleDogc3lzc3RhdC0xMS43LjEvY29tbW9uLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBzeXNzdGF0LTExLjcuMS5vcmlnL2NvbW1vbi5jCisrKysgc3lzc3RhdC0xMS43LjEvY29tbW9uLmMKIEBAIC0yMCw2ICsyMCw3IEBACiAgICovCiAgCkBAIC0zMiwxMSArMzIsMTEgQEAKICsjaW5jbHVkZSA8bGltaXRzLmg+CiAgI2luY2x1ZGUgPHN0cmluZy5oPgogICNpbmNsdWRlIDxzdGRsaWIuaD4KLSAjaW5jbHVkZSA8dGltZS5oPgotZGlmZiAtLWdpdCBhL2lvY29uZi5jIGIvaW9jb25mLmMKLWluZGV4IDdkODhjNWQuLjZkNjc2OTEgMTAwNjQ0Ci0tLS0gYS9pb2NvbmYuYwotKysrIGIvaW9jb25mLmMKKyAjaW5jbHVkZSA8c3RkYXJnLmg+CitJbmRleDogc3lzc3RhdC0xMS43LjEvaW9jb25mLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBzeXNzdGF0LTExLjcuMS5vcmlnL2lvY29uZi5jCisrKysgc3lzc3RhdC0xMS43LjEvaW9jb25mLmMKIEBAIC0yNyw2ICsyNyw3IEBACiAgI2luY2x1ZGUgPGVycm5vLmg+CiAgI2luY2x1ZGUgPGRpcmVudC5oPgpAQCAtNDUsMTAgKzQ1LDEwIEBACiAgCiAgI2luY2x1ZGUgImlvY29uZi5oIgogICNpbmNsdWRlICJjb21tb24uaCIKLWRpZmYgLS1naXQgYS9zYV9jb21tb24uYyBiL3NhX2NvbW1vbi5jCi1pbmRleCBiNzM1MWQ5Li5jOWUzMjk5IDEwMDY0NAotLS0tIGEvc2FfY29tbW9uLmMKLSsrKyBiL3NhX2NvbW1vbi5jCitJbmRleDogc3lzc3RhdC0xMS43LjEvc2FfY29tbW9uLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBzeXNzdGF0LTExLjcuMS5vcmlnL3NhX2NvbW1vbi5jCisrKysgc3lzc3RhdC0xMS43LjEvc2FfY29tbW9uLmMKIEBAIC0yMCw2ICsyMCw3IEBACiAgICovCiAgCkBAIC01Niw3ICs1Niw0IEBACiArI2luY2x1ZGUgPGxpbWl0cy5oPgogICNpbmNsdWRlIDxzdHJpbmcuaD4KICAjaW5jbHVkZSA8c3RkbGliLmg+Ci0gI2luY2x1ZGUgPHRpbWUuaD4KLS0tIAotMi41LjIKLQorICNpbmNsdWRlIDxzdGRpbnQuaD4KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvc3lzc3RhdC9zeXNzdGF0XzExLjUuNy5iYiBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvc3lzc3RhdC9zeXNzdGF0XzExLjUuNy5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzJhZjkzMS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3N5c3N0YXQvc3lzc3RhdF8xMS41LjcuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLXJlcXVpcmUgc3lzc3RhdC5pbmMKLQotTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9YTIzYTc0YjNmNGNhZjk2MTYyMzA3ODlkOTQyMTdhY2IiCi0KLVNSQ19VUkkgKz0gImZpbGU6Ly8wMDAxLUluY2x1ZGUtbmVlZGVkLWhlYWRlcnMtZXhwbGljaXRseS5wYXRjaCIKLQotU1JDX1VSSVttZDVzdW1dID0gIjhmNGE1ZDBkZTI5ZjEwNTYxNTNlMjVlN2E5YzUxOGQyIgotU1JDX1VSSVtzaGEyNTZzdW1dID0gIjRhMzhlZmFhMGNhODVlZTU0ODRkMDQ2YmQ0MjcwMTI5NzkyNjRmZWYxN2YwN2ZkNzg1NTg2MGU1OTI4MTk0ODIiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3N5c3N0YXQvc3lzc3RhdF8xMS43LjEuYmIgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3N5c3N0YXQvc3lzc3RhdF8xMS43LjEuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODY3MzhlNwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvc3lzc3RhdC9zeXNzdGF0XzExLjcuMS5iYgpAQCAtMCwwICsxLDggQEAKK3JlcXVpcmUgc3lzc3RhdC5pbmMKKworTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9YTIzYTc0YjNmNGNhZjk2MTYyMzA3ODlkOTQyMTdhY2IiCisKK1NSQ19VUkkgKz0gImZpbGU6Ly8wMDAxLUluY2x1ZGUtbmVlZGVkLWhlYWRlcnMtZXhwbGljaXRseS5wYXRjaCIKKworU1JDX1VSSVttZDVzdW1dID0gImJkY2RhN2M5MDQ4YzdjMjJmYjFmMzBmNzUyODVkMTNkIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjMwM2E1OTViMWFmMDMzMGIxODNhMGYxZmViZmNjZjg5ZjE4M2I5NTc1YWUwNTYyYjkxZmRiODc2ZjNlZjFmZWIiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3Rhci90YXIvQ1ZFLTIwMTYtNjMyMS5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvdGFyL3Rhci9DVkUtMjAxNi02MzIxLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZDM1YmNjLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvdGFyL3Rhci9DVkUtMjAxNi02MzIxLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNjYgKzAsMCBAQAotRnJvbSA3MzQwZjY3Yjk4NjBlYTA1MzFjMTQ1MGU1YWEyNjFjNTBmNjcxNjVkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUGF1bCBFZ2dlcnQgPGVnZ2VydEBQZW5ndWluLkNTLlVDTEEuRURVPgotRGF0ZTogU2F0LCAyOSBPY3QgMjAxNiAyMTowNDo0MCAtMDcwMAotU3ViamVjdDogW1BBVENIXSBXaGVuIGV4dHJhY3RpbmcsIHNraXAgIi4uIiBtZW1iZXJzCi0KLSogTkVXUzogRG9jdW1lbnQgdGhpcy4KLSogc3JjL2V4dHJhY3QuYyAoZXh0cmFjdF9hcmNoaXZlKTogU2tpcCBtZW1iZXJzIHdob3NlIG5hbWVzCi1jb250YWluICIuLiIuCi0KLUNWRTogQ1ZFLTIwMTYtNjMyMQotVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydAotCi1DaGVycnkgcGlja2VkIGZyb20gY29tbWl0OiA3MzQwZjY3IFdoZW4gZXh0cmFjdGluZywgc2tpcCAiLi4iIG1lbWJlcnMKLQotU2lnbmVkLW9mZi1ieTogU29uYSBTYXJtYWRpIDxzb25hLnNhcm1hZGlAZW5lYS5jb20+Ci0tLS0KLSBORVdTICAgICAgICAgIHwgOCArKysrKysrLQotIHNyYy9leHRyYWN0LmMgfCA4ICsrKysrKysrCi0gMiBmaWxlcyBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9ORVdTIGIvTkVXUwotaW5kZXggNTAxMTY0YS4uZmM5N2NmYyAxMDA2NDQKLS0tLSBhL05FV1MKLSsrKyBiL05FV1MKLUBAIC0xLDYgKzEsMTIgQEAKLS1HTlUgdGFyIE5FV1MgLSBVc2VyIHZpc2libGUgY2hhbmdlcy4gMjAxNi0wNS0xNgotK0dOVSB0YXIgTkVXUyAtIFVzZXIgdmlzaWJsZSBjaGFuZ2VzLiAyMDE2LTEwLTI5Ci0gUGxlYXNlIHNlbmQgR05VIHRhciBidWcgcmVwb3J0cyB0byA8YnVnLXRhckBnbnUub3JnPgotIAotKyogTWVtYmVyIG5hbWVzIGNvbnRhaW5pbmcgJy4uJyBjb21wb25lbnRzIGFyZSBub3cgc2tpcHBlZCB3aGVuIGV4dHJhY3RpbmcuCi0rCi0rVGhpcyBmaXhlcyB0YXIncyBiZWhhdmlvciB0byBtYXRjaCBpdHMgZG9jdW1lbnRhdGlvbiwgYW5kIGlzIGEgYml0Ci0rc2FmZXIgd2hlbiBleHRyYWN0aW5nIHVudHJ1c3RlZCBhcmNoaXZlcyBvdmVyIG9sZCBmaWxlcyAoYW4gdW5zYWZlCi0rcHJhY3RpY2UgdGhhdCB0aGUgdGFyIG1hbnVhbCBoYXMgbG9uZyByZWNvbW1lbmRlZCBhZ2FpbnN0KS4KLSsKLSAMCi0gdmVyc2lvbiAxLjI5IC0gU2VyZ2V5IFBvem55YWtvZmYsIDIwMTYtMDUtMTYKLSAKLWRpZmYgLS1naXQgYS9zcmMvZXh0cmFjdC5jIGIvc3JjL2V4dHJhY3QuYwotaW5kZXggZjk4MjQzMy4uNzkwNDE0OCAxMDA2NDQKLS0tLSBhL3NyYy9leHRyYWN0LmMKLSsrKyBiL3NyYy9leHRyYWN0LmMKLUBAIC0xNjI5LDEyICsxNjI5LDIwIEBAIGV4dHJhY3RfYXJjaGl2ZSAodm9pZCkKLSB7Ci0gICBjaGFyIHR5cGVmbGFnOwotICAgdGFyX2V4dHJhY3Rvcl90IGZ1bjsKLSsgIGJvb2wgc2tpcF9kb3Rkb3RfbmFtZTsKLSAKLSAgIGZhdGFsX2V4aXRfaG9vayA9IGV4dHJhY3RfZmluaXNoOwotIAotICAgc2V0X25leHRfYmxvY2tfYWZ0ZXIgKGN1cnJlbnRfaGVhZGVyKTsKLSAKLSsgIHNraXBfZG90ZG90X25hbWUgPSAoIWFic29sdXRlX25hbWVzX29wdGlvbgotKwkJICAgICAgJiYgY29udGFpbnNfZG90X2RvdCAoY3VycmVudF9zdGF0X2luZm8ub3JpZ19maWxlX25hbWUpKTsKLSsgIGlmIChza2lwX2RvdGRvdF9uYW1lKQotKyAgICBFUlJPUiAoKDAsIDAsIF8oIiVzOiBNZW1iZXIgbmFtZSBjb250YWlucyAnLi4nIiksCi0rCSAgICBxdW90ZWFyZ19jb2xvbiAoY3VycmVudF9zdGF0X2luZm8ub3JpZ19maWxlX25hbWUpKSk7Ci0rCi0gICBpZiAoIWN1cnJlbnRfc3RhdF9pbmZvLmZpbGVfbmFtZVswXQotKyAgICAgIHx8IHNraXBfZG90ZG90X25hbWUKLSAgICAgICB8fCAoaW50ZXJhY3RpdmVfb3B0aW9uCi0gCSAgJiYgIWNvbmZpcm0gKCJleHRyYWN0IiwgY3VycmVudF9zdGF0X2luZm8uZmlsZV9uYW1lKSkpCi0gICAgIHsKLS0tIAotMS45LjEKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC90YXIvdGFyL211c2xfZGlyZW50LnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC90YXIvdGFyL211c2xfZGlyZW50LnBhdGNoCmluZGV4IGIwZGMxNmMuLjJkOThlZDEgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvdGFyL3Rhci9tdXNsX2RpcmVudC5wYXRjaAorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3Rhci90YXIvbXVzbF9kaXJlbnQucGF0Y2gKQEAgLTE0LDYgKzE0LDYgQEAKIC0gICAgICAgICAgICAgIGxpbnV4Ki1nbnUqKSBnbF9jdl9zdHJ1Y3RfZGlyZW50X2RfaW5vPSJndWVzc2luZyB5ZXMiIDs7CiArICAgICAgICAgICAgICBsaW51eCotZ251KnxsaW51eCotbXVzbCopCiArICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xfY3Zfc3RydWN0X2RpcmVudF9kX2lubz0iZ3Vlc3NpbmcgeWVzIiA7OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgR3Vlc3Mgbm8gb24gbmF0aXZlIFdpbmRvd3MuCisgICAgICAgICAgICAgICBtaW5ndyopICAgICAgZ2xfY3Zfc3RydWN0X2RpcmVudF9kX2lubz0iZ3Vlc3Npbmcgbm8iIDs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBJZiB3ZSBkb24ndCBrbm93LCBhc3N1bWUgdGhlIHdvcnN0LgotICAgICAgICAgICAgICAgKikgICAgICAgICAgIGdsX2N2X3N0cnVjdF9kaXJlbnRfZF9pbm89Imd1ZXNzaW5nIG5vIiA7OwotICAgICAgICAgICAgIGVzYWMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvdGFyL3Rhcl8xLjI5LmJiIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC90YXIvdGFyXzEuMzAuYmIKc2ltaWxhcml0eSBpbmRleCA2NyUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC90YXIvdGFyXzEuMjkuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvdGFyL3Rhcl8xLjMwLmJiCmluZGV4IGYyMmQ5YzkuLmU3NDNhNmQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvdGFyL3Rhcl8xLjI5LmJiCisrKyBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvdGFyL3Rhcl8xLjMwLmJiCkBAIC04LDEwICs4LDkgQEAKIAogU1JDX1VSSSArPSAiZmlsZTovL3JlbW92ZS1nZXRzLnBhdGNoIFwKICAgICAgICAgICAgIGZpbGU6Ly9tdXNsX2RpcmVudC5wYXRjaCBcCi0gICAgICAgICAgICBmaWxlOi8vQ1ZFLTIwMTYtNjMyMS5wYXRjaCBcCiAgICAgICAgICAgICIKLVNSQ19VUklbbWQ1c3VtXSA9ICI5NTVjZDUzMzk1NWFjYjE4MDRiODNmZDcwMjE4ZGE1MSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIyMzZiMTExOTBjMGEzYTY4ODViZGI4ZDYxNDI0ZjJiMzZhNTg3Mjg2OWFhM2Y3ZjY5NWRlYTRiNDg0M2FlMmYyIgorU1JDX1VSSVttZDVzdW1dID0gIjg0MDRlNGMxZmM1YTMwMDAyMjhhYjJiOGFkNjc0YTY1IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjg3NTkyYjg2Y2IwMzdjNTU0Mzc1ZjU4NjhiZGQzY2M1Nzc0OGFlZjM4ZDZjYjc0MWM4MTA2NWYwYmVhYzYzYjciCiAKIGRvX2luc3RhbGxfYXBwZW5kX2xpYmMtbXVzbCgpIHsKIAlybSAtZiAke0R9JHtsaWJkaXJ9L2NoYXJzZXQuYWxpYXMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvdGNwLXdyYXBwZXJzL3RjcC13cmFwcGVycy03LjYvMDAwMS1GaXgtYnVpbGQtd2l0aC1jbGFuZy5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvdGNwLXdyYXBwZXJzL3RjcC13cmFwcGVycy03LjYvMDAwMS1GaXgtYnVpbGQtd2l0aC1jbGFuZy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZDFlMDVkCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC90Y3Atd3JhcHBlcnMvdGNwLXdyYXBwZXJzLTcuNi8wMDAxLUZpeC1idWlsZC13aXRoLWNsYW5nLnBhdGNoCkBAIC0wLDAgKzEsNjUgQEAKK0Zyb20gN2Y4ODc4YWMxYWFmNGExOTk5MmQzOTM3OTc5N2MxNTEzMDFiZWRiMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE9sZWtzaXkgT2JpdG90c2t5eSA8b29iaXRvdHNAY2lzY28uY29tPgorRGF0ZTogTW9uLCA1IEZlYiAyMDE4IDA4OjI5OjEwIC0wODAwCitTdWJqZWN0OiBbUEFUQ0hdIEZpeCBidWlsZCB3aXRoIGNsYW5nCisKK0ZpeCAiZXJyb3I6IG5vbi12b2lkIGZ1bmN0aW9uICdmaXhfb3B0aW9ucycgc2hvdWxkIHJldHVybiBhIHZhbHVlIi4KK0FkZCBmdW5jdGlvbiBwcm90b3R5cGUgdG8gdGNwZC5jIGFuZCBtaXNjZC5jLgorCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKworU2lnbmVkLW9mZi1ieTogT2xla3NpeSBPYml0b3Rza3l5IDxvb2JpdG90c0BjaXNjby5jb20+CistLS0KKyB2MiAtIGFkZCBmdW5jdGlvbiBwcm90b3R5cGVzCisKKyBmaXhfb3B0aW9ucy5jIHwgMiArLQorIG1pc2NkLmMgICAgICAgfCA0ICsrKysKKyB0Y3BkLmMgICAgICAgIHwgNCArKysrCisgMyBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2ZpeF9vcHRpb25zLmMgYi9maXhfb3B0aW9ucy5jCitpbmRleCBiNWU4MWI4Li45OTU4ZmY0IDEwMDY0NAorLS0tIGEvZml4X29wdGlvbnMuYworKysrIGIvZml4X29wdGlvbnMuYworQEAgLTI5LDcgKzI5LDcgQEAgc3RhdGljIGNoYXIgc2Njc2lkW10gPSAiQCgjKSBmaXhfb3B0aW9ucy5jIDEuNiA5Ny8wNC8wOCAwMjoyOToxOSI7CisgCisgLyogZml4X29wdGlvbnMgLSBnZXQgcmlkIG9mIElQLWxldmVsIHNvY2tldCBvcHRpb25zICovCisgCistZml4X29wdGlvbnMocmVxdWVzdCkKKyt2b2lkIGZpeF9vcHRpb25zKHJlcXVlc3QpCisgc3RydWN0IHJlcXVlc3RfaW5mbyAqcmVxdWVzdDsKKyB7CisgI2lmZGVmIElQX09QVElPTlMKK2RpZmYgLS1naXQgYS9taXNjZC5jIGIvbWlzY2QuYworaW5kZXggMWFiODM1Yy4uNzIzYjgzYSAxMDA2NDQKKy0tLSBhL21pc2NkLmMKKysrKyBiL21pc2NkLmMKK0BAIC00MCw2ICs0MCwxMCBAQCBzdGF0aWMgY2hhciBzY2NzaWRbXSA9ICJAKCMpIG1pc2NkLmMgMS4xMCA5Ni8wMi8xMSAxNzowMTozMCI7CisgI2luY2x1ZGUgInBhdGNobGV2ZWwuaCIKKyAjaW5jbHVkZSAidGNwZC5oIgorIAorKyNpZmRlZiBLSUxMX0lQX09QVElPTlMKKyt2b2lkIGZpeF9vcHRpb25zKHN0cnVjdCByZXF1ZXN0X2luZm8gKik7CisrI2VuZGlmCisrCisgaW50ICAgICBhbGxvd19zZXZlcml0eSA9IFNFVkVSSVRZOwkvKiBydW4tdGltZSBhZGp1c3RhYmxlICovCisgaW50ICAgICBkZW55X3NldmVyaXR5ID0gTE9HX1dBUk5JTkc7CS8qIGRpdHRvICovCisgCitkaWZmIC0tZ2l0IGEvdGNwZC5jIGIvdGNwZC5jCitpbmRleCBkODY1YjljLi5hMTc5ODkxIDEwMDY0NAorLS0tIGEvdGNwZC5jCisrKysgYi90Y3BkLmMKK0BAIC0zOCw2ICszOCwxMCBAQCBzdGF0aWMgY2hhciBzY2NzaWRbXSA9ICJAKCMpIHRjcGQuYyAxLjEwIDk2LzAyLzExIDE3OjAxOjMyIjsKKyAjaW5jbHVkZSAicGF0Y2hsZXZlbC5oIgorICNpbmNsdWRlICJ0Y3BkLmgiCisgCisrI2lmZGVmIEtJTExfSVBfT1BUSU9OUworK3ZvaWQgZml4X29wdGlvbnMoc3RydWN0IHJlcXVlc3RfaW5mbyAqKTsKKysjZW5kaWYKKysKKyBpbnQgICAgIGFsbG93X3NldmVyaXR5ID0gU0VWRVJJVFk7CS8qIHJ1bi10aW1lIGFkanVzdGFibGUgKi8KKyBpbnQgICAgIGRlbnlfc2V2ZXJpdHkgPSBMT0dfV0FSTklORzsJLyogZGl0dG8gKi8KKyAKKy0tIAorMi4xMC4zLmRpcnR5CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvdGNwLXdyYXBwZXJzL3RjcC13cmFwcGVycy03LjYvMTJfbWFrZWZpbGVfY29uZmlnLnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC90Y3Atd3JhcHBlcnMvdGNwLXdyYXBwZXJzLTcuNi8xMl9tYWtlZmlsZV9jb25maWcucGF0Y2gKaW5kZXggZTgyODllNC4uZDQ3M2ZiNiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC90Y3Atd3JhcHBlcnMvdGNwLXdyYXBwZXJzLTcuNi8xMl9tYWtlZmlsZV9jb25maWcucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC90Y3Atd3JhcHBlcnMvdGNwLXdyYXBwZXJzLTcuNi8xMl9tYWtlZmlsZV9jb25maWcucGF0Y2gKQEAgLTEsOSArMSwxMCBAQAogVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydAogCi1kaWZmIC1ydU4gdGNwX3dyYXBwZXJzXzcuNi5vcmlnL01ha2VmaWxlIHRjcF93cmFwcGVyc183LjYvTWFrZWZpbGUKLS0tLSB0Y3Bfd3JhcHBlcnNfNy42Lm9yaWcvTWFrZWZpbGUJMjAwMy0wOC0yMSAwMTo0MzozOS4wMDAwMDAwMDAgKzAyMDAKLSsrKyB0Y3Bfd3JhcHBlcnNfNy42L01ha2VmaWxlCTIwMDMtMDgtMjEgMDE6NDM6MzUuMDAwMDAwMDAwICswMjAwCi1AQCAtNDUsNyArNDUsNyBAQAorSW5kZXg6IHRjcF93cmFwcGVyc183LjYvTWFrZWZpbGUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSB0Y3Bfd3JhcHBlcnNfNy42Lm9yaWcvTWFrZWZpbGUKKysrKyB0Y3Bfd3JhcHBlcnNfNy42L01ha2VmaWxlCitAQCAtNDUsNyArNDUsNyBAQCB3aGF0OgogICMKICAjIFN5c1YuNCBTb2xhcmlzIDIueCBPU0YgQUlYCiAgI1JFQUxfREFFTU9OX0RJUj0vdXNyL3NiaW4KQEAgLTEyLDcgKzEzLDcgQEAKICAjIEJTRCA0LjQKICAjUkVBTF9EQUVNT05fRElSPS91c3IvbGliZXhlYwogICMKLUBAIC01MTIsNiArNTE5LDcgQEAKK0BAIC01MTMsNiArNTEzLDcgQEAgVlNZU0xPRwk9IC1EdnN5c2xvZz1teXZzeXNsb2cKICAjIChleGFtcGxlczogYWxsb3csIGRlbnksIGJhbm5lcnMsIHR3aXN0IGFuZCBzcGF3bikuCiAgIyAKICAjU1RZTEUJPSAtRFBST0NFU1NfT1BUSU9OUwkjIEVuYWJsZSBsYW5ndWFnZSBleHRlbnNpb25zLgpAQCAtMjAsNyArMjEsNyBAQAogIAogICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICAjIE9wdGlvbmFsOiBDaGFuZ2luZyB0aGUgZGVmYXVsdCBkaXNwb3NpdGlvbiBvZiBsb2dmaWxlIHJlY29yZHMKLUBAIC01MzUsNiArNTQzLDcgQEAKK0BAIC01MzYsNiArNTM3LDcgQEAgVlNZU0xPRwk9IC1EdnN5c2xvZz1teXZzeXNsb2cKICAjIFRoZSBMT0dfWFhYIG5hbWVzIGJlbG93IGFyZSB0YWtlbiBmcm9tIHRoZSAvdXNyL2luY2x1ZGUvc3lzbG9nLmggZmlsZS4KICAKICBGQUNJTElUWT0gTE9HX01BSUwJIyBMT0dfTUFJTCBpcyB3aGF0IG1vc3Qgc2VuZG1haWwgZGFlbW9ucyB1c2UKQEAgLTI4LDcgKzI5LDcgQEAKICAKICAjIFRoZSBzeXNsb2cgcHJpb3JpdHkgYXQgd2hpY2ggc3VjY2Vzc2Z1bCBjb25uZWN0aW9ucyBhcmUgbG9nZ2VkLgogIAotQEAgLTYzMSw2ICs2NDAsNyBAQAorQEAgLTYzMiw2ICs2MzQsNyBAQCBUQUJMRVMJPSAtREhPU1RTX0RFTlk9XCIvZXRjL2hvc3RzLmRlbnlcCiAgIyBsb29rdXBzIGFsdG9nZXRoZXIsIHNlZSB0aGUgbmV4dCBzZWN0aW9uLgogIAogIFBBUkFOT0lEPSAtRFBBUkFOT0lECkBAIC0zNiw3ICszNyw3IEBACiAgCiAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogICMgT3B0aW9uYWw6IHR1cm5pbmcgb2ZmIGhvc3RuYW1lIGxvb2t1cHMKLUBAIC02NDQsNiArNjU0LDcgQEAKK0BAIC02NDUsNiArNjQ4LDcgQEAgUEFSQU5PSUQ9IC1EUEFSQU5PSUQKICAjIG1vZGUgKHNlZSBwcmV2aW91cyBzZWN0aW9uKSBhbmQgY29tbWVudCBvdXQgdGhlIGZvbGxvd2luZyBkZWZpbml0aW9uLgogIAogIEhPU1ROQU1FPSAtREFMV0FZU19IT1NUTkFNRQpAQCAtNDQsNyArNDUsNyBAQAogIAogICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogICMgT3B0aW9uYWw6IFR1cm5pbmcgb24gaG9zdCBBRERSRVNTIGNoZWNraW5nCi1AQCAtNjcwLDYgKzY4MSw3IEBACitAQCAtNjcxLDYgKzY3NSw3IEBAIEhPU1ROQU1FPSAtREFMV0FZU19IT1NUTkFNRQogICMgU29sYXJpcyAyLngsIGFuZCBMaW51eC4gU2VlIHlvdXIgc3lzdGVtIGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHMuCiAgIwogICMgS0lMTF9PUFQ9IC1ES0lMTF9JUF9PUFRJT05TCkBAIC01Miw3ICs1Myw3IEBACiAgCiAgIyMgRW5kIGNvbmZpZ3VyYXRpb24gb3B0aW9ucwogICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLUBAIC02NzcsOSArNjg5LDEwIEBACitAQCAtNjc4LDkgKzY4MywxMCBAQCBIT1NUTkFNRT0gLURBTFdBWVNfSE9TVE5BTUUKICAjIFByb3RlY3Rpb24gYWdhaW5zdCB3ZWlyZCBzaGVsbHMgb3Igd2VpcmQgbWFrZSBwcm9ncmFtcy4KICAKICBTSEVMTAk9IC9iaW4vc2gKQEAgLTY1LDcgKzY2LDcgQEAKICAJJChCVUdTKSAkKFNZU1RZUEUpICQoQVVUSCkgJChVTUFTSykgXAogIAktRFJFQUxfREFFTU9OX0RJUj1cIiQoUkVBTF9EQUVNT05fRElSKVwiICQoU1RZTEUpICQoS0lMTF9PUFQpIFwKICAJLURTRVZFUklUWT0kKFNFVkVSSVRZKSAtRFJGQzkzMV9USU1FT1VUPSQoUkZDOTMxX1RJTUVPVVQpIFwKLUBAIC03MTIsMTAgKzcyNSwxMSBAQAorQEAgLTcxMywxMSArNzE5LDEyIEBAIGFsbCBvdGhlcjogY29uZmlnLWNoZWNrIHRjcGQgdGNwZG1hdGNoIHQKICAKICBjb25maWctY2hlY2s6CiAgCUBzZXQgK2U7IHRlc3QgLW4gIiQoUkVBTF9EQUVNT05fRElSKSIgfHwgeyBtYWtlOyBleGl0IDE7IH0KQEAgLTgxLDMgKzgyLDQgQEAKICsJQGlmIFsgISAtZCBzaGFyZWQgXTsgdGhlbiBta2RpciBzaGFyZWQ7IGZpCiAgCiAgJChMSUIpOgkkKExJQl9PQkopCisgCXJtIC1mICQoTElCKQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC90Y3Atd3JhcHBlcnMvdGNwLXdyYXBwZXJzXzcuNi5iYiBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvdGNwLXdyYXBwZXJzL3RjcC13cmFwcGVyc183LjYuYmIKaW5kZXggMWVmZmVmMS4uM2VjZThjMyAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC90Y3Atd3JhcHBlcnMvdGNwLXdyYXBwZXJzXzcuNi5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3RjcC13cmFwcGVycy90Y3Atd3JhcHBlcnNfNy42LmJiCkBAIC00NSw2ICs0NSw3IEBACiAgICAgICAgICAgIGZpbGU6Ly9zYWZlX2Zpbmdlci44IFwKICAgICAgICAgICAgZmlsZTovL21ha2VmaWxlLWZpeC1wYXJhbGxlbC5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly9tdXNsLWRlY2xzLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtRml4LWJ1aWxkLXdpdGgtY2xhbmcucGF0Y2ggXAogICAgICAgICAgICAiCiAKIFNSQ19VUklbbWQ1c3VtXSA9ICJlNmZhMjVmNzEyMjZkMDkwZjM0ZGUzZjZiMTIyZmI1YSIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvdGV4aW5mby90ZXhpbmZvXzYuMy5iYiBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvdGV4aW5mby90ZXhpbmZvXzYuNS5iYgpzaW1pbGFyaXR5IGluZGV4IDkzJQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3RleGluZm8vdGV4aW5mb182LjMuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvdGV4aW5mby90ZXhpbmZvXzYuNS5iYgppbmRleCBmNThkZjkyLi5mOTY2NDU3IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3RleGluZm8vdGV4aW5mb182LjMuYmIKKysrIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC90ZXhpbmZvL3RleGluZm9fNi41LmJiCkBAIC0zNywxMyArMzcsMTUgQEAKICAgICAgICAgICAgJHtUQVJHRVRfUEFUQ0h9IFwKICAgICAgICAgICAiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICI5YjA4ZGFjYTliZjhlY2NhZTliMGY4ODRhYmE0MWY5ZSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICIzMDBhNmJhNDk1OGMyZGQ0YTZkNWNlNjBmMGEzMzVkYWY3ZTM3OWY1Mzc0ZjI3NmY2YmEzMWEyMjFmMDJmNjA2IgorU1JDX1VSSVttZDVzdW1dID0gIjk0ZThmNzE0OTg3Njc5MzAzMGU1NTE4ZGQ4ZDZlOTU2IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImQzNDI3MmU0MDQyYzQ2MTg2ZGRjZDY2YmQ1ZDk4MGMwY2ExNGZmNzM0NDQ0Njg2Y2NmODEzMWY2ZWM4YjE0MjciCiAKIHRleF90ZXhpbmZvID0gInRleG1mL3RleC90ZXhpbmZvIgogCiBpbmhlcml0IGdldHRleHQgYXV0b3Rvb2xzCiAKK0VYVFJBX0FVVE9SRUNPTkYgKz0gIi1JICR7U30vZ251bGliL200IgorCiBkb19jb25maWd1cmVfcHJlcGVuZCAoKSB7CiAJIyBhdXRvdG9vbHNfZG9fY29uZmlndXJlIHVwZGF0ZXMgcG8vTWFrZWZpbGUuaW4uaW4sIHdlIGFsc28gbmVlZAogCSMgdXBkYXRlIHBvX2RvY3VtZW50LgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC90aW1lL3RpbWUtMS43L2RlYmlhbi5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvdGltZS90aW1lLTEuNy9kZWJpYW4ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIzZWEwZTMuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC90aW1lL3RpbWUtMS43L2RlYmlhbi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEzMDEgKzAsMCBAQAotVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydAotCi0tLS0gdGltZS0xLjcub3JpZy9jb25maWd1cmUuaW4KLSsrKyB0aW1lLTEuNy9jb25maWd1cmUuaW4KLUBAIC0xLDExICsxLDggQEAKLSBkbmwgUHJvY2VzcyB0aGlzIGZpbGUgd2l0aCBhdXRvY29uZiB0byBwcm9kdWNlIGEgY29uZmlndXJlIHNjcmlwdC4KLSBBQ19JTklUKHRpbWUuYykKLS1WRVJTSU9OPTEuNwotLUFDX1NVQlNUKFZFUlNJT04pCi0tUEFDS0FHRT10aW1lCi0tQUNfU1VCU1QoUEFDS0FHRSkKLStBTV9JTklUX0FVVE9NQUtFKHRpbWUsIDEuNykKLSAKLS1BQ19BUkdfUFJPR1JBTQotK0FNX01BSU5UQUlORVJfTU9ERQotIAotIGRubCBDaGVja3MgZm9yIHByb2dyYW1zLgotIEFDX1BST0dfQ0MKLUBAIC0xNSw3ICsxMiw3IEBACi0gZG5sIENoZWNrcyBmb3IgaGVhZGVyIGZpbGVzLgotIEFDX0hFQURFUl9TVERDCi0gQUNfSEVBREVSX1NZU19XQUlUCi0tQUNfQ0hFQ0tfSEVBREVSUyh1bmlzdGQuaCBzdHJpbmcuaCBzeXMvcnVzYWdlLmgpCi0rQUNfQ0hFQ0tfSEVBREVSUyh1bmlzdGQuaCBzdHJpbmcuaCBzeXMvcnVzYWdlLmggc3lzL3Jlc291cmNlLmgpCi0gCi0gZG5sIENoZWNrcyBmb3IgdHlwZWRlZnMsIHN0cnVjdHVyZXMsIGFuZCBjb21waWxlciBjaGFyYWN0ZXJpc3RpY3MuCi0gQUNfQ19DT05TVAotLS0tIHRpbWUtMS43Lm9yaWcvdmVyc2lvbi50ZXhpCi0rKysgdGltZS0xLjcvdmVyc2lvbi50ZXhpCi1AQCAtMSwzICsxLDMgQEAKLS1Ac2V0IFVQREFURUQgMTIgSnVuZSAxOTk2Ci0rQHNldCBVUERBVEVEIDkgTWF5IDIwMDIKLSBAc2V0IEVESVRJT04gMS43Ci0gQHNldCBWRVJTSU9OIDEuNwotLS0tIHRpbWUtMS43Lm9yaWcvdGltZS5jCi0rKysgdGltZS0xLjcvdGltZS5jCi1AQCAtMTQ3LDYgKzE0NywxMCBAQAotICAgTlVMTAotIH07Ci0gDAotKwotKy8qIElmIHRydWUsIGRvIG5vdCBzaG93IHRoZSBleGl0IG1lc3NhZ2UgKi8KLStzdGF0aWMgYm9vbGVhbiBxdWlldDsKLSsKLSAvKiBJZiB0cnVlLCBzaG93IGFuIEVuZ2xpc2ggZGVzY3JpcHRpb24gbmV4dCB0byBlYWNoIHN0YXRpc3RpYy4gICovCi0gc3RhdGljIGJvb2xlYW4gdmVyYm9zZTsKLSAKLUBAIC0xNzIsNiArMTc2LDcgQEAKLSAgIHsiaGVscCIsIG5vX2FyZ3VtZW50LCBOVUxMLCAnaCd9LAotICAgeyJvdXRwdXQtZmlsZSIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAnbyd9LAotICAgeyJwb3J0YWJpbGl0eSIsIG5vX2FyZ3VtZW50LCBOVUxMLCAncCd9LAotKyAgeyJxdWlldCIsIG5vX2FyZ3VtZW50LE5VTEwsICdxJ30sCi0gICB7InZlcmJvc2UiLCBub19hcmd1bWVudCwgTlVMTCwgJ3YnfSwKLSAgIHsidmVyc2lvbiIsIG5vX2FyZ3VtZW50LCBOVUxMLCAnVid9LAotICAge05VTEwsIG5vX2FyZ3VtZW50LCBOVUxMLCAwfQotQEAgLTMzMyw3ICszMzgsOCBAQAotICAgZWxzZSBpZiAoV0lGU0lHTkFMRUQgKHJlc3AtPndhaXRzdGF0dXMpKQotICAgICBmcHJpbnRmIChmcCwgIkNvbW1hbmQgdGVybWluYXRlZCBieSBzaWduYWwgJWRcbiIsCi0gCSAgICAgV1RFUk1TSUcgKHJlc3AtPndhaXRzdGF0dXMpKTsKLS0gIGVsc2UgaWYgKFdJRkVYSVRFRCAocmVzcC0+d2FpdHN0YXR1cykgJiYgV0VYSVRTVEFUVVMgKHJlc3AtPndhaXRzdGF0dXMpKQotKyAgZWxzZSBpZiAoV0lGRVhJVEVEIChyZXNwLT53YWl0c3RhdHVzKSAmJiBXRVhJVFNUQVRVUyAocmVzcC0+d2FpdHN0YXR1cykKLSsJICAgJiYgIXF1aWV0KQotICAgICBmcHJpbnRmIChmcCwgIkNvbW1hbmQgZXhpdGVkIHdpdGggbm9uLXplcm8gc3RhdHVzICVkXG4iLAotIAkgICAgIFdFWElUU1RBVFVTIChyZXNwLT53YWl0c3RhdHVzKSk7Ci0gCi1AQCAtNTIzLDYgKzUyOSw3IEBACi0gICBjaGFyICpmb3JtYXQ7CQkJLyogRm9ybWF0IGZvdW5kIGluIGVudmlyb25tZW50LiAgKi8KLSAKLSAgIC8qIEluaXRpYWxpemUgdGhlIG9wdGlvbiBmbGFncy4gICovCi0rICBxdWlldCA9IGZhbHNlOwotICAgdmVyYm9zZSA9IGZhbHNlOwotICAgb3V0ZmlsZSA9IE5VTEw7Ci0gICBvdXRmcCA9IHN0ZGVycjsKLUBAIC01MzYsNyArNTQzLDcgQEAKLSAgIGlmIChmb3JtYXQpCi0gICAgIG91dHB1dF9mb3JtYXQgPSBmb3JtYXQ7Ci0gCi0tICB3aGlsZSAoKG9wdGMgPSBnZXRvcHRfbG9uZyAoYXJnYywgYXJndiwgIithZjpvOnB2ViIsIGxvbmdvcHRzLCAoaW50ICopIDApKQotKyAgd2hpbGUgKChvcHRjID0gZ2V0b3B0X2xvbmcgKGFyZ2MsIGFyZ3YsICIrYWY6bzpwcXZWIiwgbG9uZ29wdHMsIChpbnQgKikgMCkpCi0gCSAhPSBFT0YpCi0gICAgIHsKLSAgICAgICBzd2l0Y2ggKG9wdGMpCi1AQCAtNTU1LDYgKzU2Miw5IEBACi0gCWNhc2UgJ3AnOgotIAkgIG91dHB1dF9mb3JtYXQgPSBwb3NpeF9mb3JtYXQ7Ci0gCSAgYnJlYWs7Ci0rCWNhc2UgJ3EnOgotKwkgIHF1aWV0ID0gdHJ1ZTsKLSsJICBicmVhazsKLSAJY2FzZSAndic6Ci0gCSAgdmVyYm9zZSA9IHRydWU7Ci0gCSAgYnJlYWs7Ci1AQCAtNjQyLDkgKzY1Miw5IEBACi0gICBmZmx1c2ggKG91dGZwKTsKLSAKLSAgIGlmIChXSUZTVE9QUEVEIChyZXMud2FpdHN0YXR1cykpCi0tICAgIGV4aXQgKFdTVE9QU0lHIChyZXMud2FpdHN0YXR1cykpOwotKyAgICBleGl0IChXU1RPUFNJRyAocmVzLndhaXRzdGF0dXMpICsgMTI4KTsKLSAgIGVsc2UgaWYgKFdJRlNJR05BTEVEIChyZXMud2FpdHN0YXR1cykpCi0tICAgIGV4aXQgKFdURVJNU0lHIChyZXMud2FpdHN0YXR1cykpOwotKyAgICBleGl0IChXVEVSTVNJRyAocmVzLndhaXRzdGF0dXMpICsgMTI4KTsKLSAgIGVsc2UgaWYgKFdJRkVYSVRFRCAocmVzLndhaXRzdGF0dXMpKQotICAgICBleGl0IChXRVhJVFNUQVRVUyAocmVzLndhaXRzdGF0dXMpKTsKLSB9Ci1AQCAtNjU3LDcgKzY2Nyw3IEBACi0gICBmcHJpbnRmIChzdHJlYW0sICJcCi0gVXNhZ2U6ICVzIFstYXB2Vl0gWy1mIGZvcm1hdF0gWy1vIGZpbGVdIFstLWFwcGVuZF0gWy0tdmVyYm9zZV1cblwKLSAgICAgICAgWy0tcG9ydGFiaWxpdHldIFstLWZvcm1hdD1mb3JtYXRdIFstLW91dHB1dD1maWxlXSBbLS12ZXJzaW9uXVxuXAotLSAgICAgICBbLS1oZWxwXSBjb21tYW5kIFthcmcuLi5dXG4iLAotKyAgICAgICBbLS1xdWlldF0gWy0taGVscF0gY29tbWFuZCBbYXJnLi4uXVxuIiwKLSAJICAgcHJvZ3JhbV9uYW1lKTsKLSAgIGV4aXQgKHN0YXR1cyk7Ci0gfQotLS0tIHRpbWUtMS43Lm9yaWcvcmVzdXNlLmgKLSsrKyB0aW1lLTEuNy9yZXN1c2UuaAotQEAgLTM2LDE5ICszNiw4IEBACi0gIyBpbmNsdWRlIDxzeXMvcnVzYWdlLmg+Ci0gI2Vsc2UKLSAjIGRlZmluZSBUVl9NU0VDIHR2X3VzZWMgLyAxMDAwCi0tIyBpZiBIQVZFX1dBSVQzCi0rIyBpZiBIQVZFX1NZU19SRVNPVVJDRV9ICi0gIyAgaW5jbHVkZSA8c3lzL3Jlc291cmNlLmg+Ci0tIyBlbHNlCi0tLyogUHJvY2VzcyByZXNvdXJjZSB1c2FnZSBzdHJ1Y3R1cmUuICAqLwotLXN0cnVjdCBydXNhZ2UKLS17Ci0tICBzdHJ1Y3QgdGltZXZhbCBydV91dGltZTsJLyogVXNlciB0aW1lIHVzZWQuICAqLwotLSAgc3RydWN0IHRpbWV2YWwgcnVfc3RpbWU7CS8qIFN5c3RlbSB0aW1lIHVzZWQuICAqLwotLSAgaW50IHJ1X21heHJzcywgcnVfaXhyc3MsIHJ1X2lkcnNzLCBydV9pc3JzcywKLS0gIHJ1X21pbmZsdCwgcnVfbWFqZmx0LCBydV9uc3dhcCwgcnVfaW5ibG9jaywgCi0tICBydV9vdWJsb2NrLCBydV9tc2dzbmQsIHJ1X21zZ3JjdiwgcnVfbnNpZ25hbHMsCi0tICBydV9udmNzdywgcnVfbml2Y3N3OwotLX07Ci0gIyBlbmRpZgotICNlbmRpZgotIAotLS0tIHRpbWUtMS43Lm9yaWcvdGltZS50ZXhpCi0rKysgdGltZS0xLjcvdGltZS50ZXhpCi1AQCAtMTEsNiArMTEsMTIgQEAKLSBAZmluYWxvdXQKLSBAZW5kIGlmdGV4Ci0gCi0rQGRpcmNhdGVnb3J5IEluZGl2aWR1YWwgdXRpbGl0aWVzCi0rQGRpcmVudHJ5Ci0rKiB0aW1lOiAodGltZSkuICAgICAgICAgICAgICAgICAgICAgUnVuIHByb2dyYW1zIGFuZCBzdW1tYXJpemUKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeXN0ZW0gcmVzb3VyY2UgdXNhZ2UuCi0rQGVuZCBkaXJlbnRyeQotKwotIEBpZmluZm8KLSBUaGlzIGZpbGUgZG9jdW1lbnRzIHRoZSB0aGUgR05VIEBjb2Rle3RpbWV9IGNvbW1hbmQgZm9yIHJ1bm5pbmcgcHJvZ3JhbXMKLSBhbmQgc3VtbWFyaXppbmcgdGhlIHN5c3RlbSByZXNvdXJjZXMgdGhleSB1c2UuCi1AQCAtMTg1LDYgKzE5MSwxMCBAQAotIHN5cyAlUwotIEBlbmQgZXhhbXBsZQotIAotK0BpdGVtIC1xCi0rQGl0ZW14IC0tcXVpZXQKLStTdXBwcmVzcyBub24temVybyBlcnJvciBjb2RlIGZyb20gdGhlIGV4ZWN1dGVkIHByb2dyYW0uCi0rCi0gQGl0ZW0gLXYKLSBAaXRlbXggLS12ZXJib3NlCi0gQGNpbmRleCBmb3JtYXQKLS0tLSB0aW1lLTEuNy5vcmlnL3RpbWUuaW5mbwotKysrIHRpbWUtMS43L3RpbWUuaW5mbwotQEAgLTEsNSArMSwxMCBAQAotLVRoaXMgaXMgSW5mbyBmaWxlIC4vdGltZS5pbmZvLCBwcm9kdWNlZCBieSBNYWtlaW5mby0xLjU1IGZyb20gdGhlIGlucHV0Ci0tZmlsZSB0aW1lLnRleGkuCi0rVGhpcyBpcyB0aW1lLmluZm8sIHByb2R1Y2VkIGJ5IG1ha2VpbmZvIHZlcnNpb24gNC4xIGZyb20gdGltZS50ZXhpLgotKwotK0lORk8tRElSLVNFQ1RJT04gSW5kaXZpZHVhbCB1dGlsaXRpZXMKLStTVEFSVC1JTkZPLURJUi1FTlRSWQotKyogdGltZTogKHRpbWUpLiAgICAgICAgICAgICAgICAgICAgIFJ1biBwcm9ncmFtcyBhbmQgc3VtbWFyaXplCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3lzdGVtIHJlc291cmNlIHVzYWdlLgotK0VORC1JTkZPLURJUi1FTlRSWQotIAotICAgIFRoaXMgZmlsZSBkb2N1bWVudHMgdGhlIHRoZSBHTlUgYHRpbWUnIGNvbW1hbmQgZm9yIHJ1bm5pbmcgcHJvZ3JhbXMKLSBhbmQgc3VtbWFyaXppbmcgdGhlIHN5c3RlbSByZXNvdXJjZXMgdGhleSB1c2UuCi1AQCAtMzEsNyArMzYsNyBAQAotIAotICogUmVzb3VyY2UgTWVhc3VyZW1lbnQ6OiAgTWVhc3VyaW5nIHByb2dyYW0gcmVzb3VyY2UgdXNlLgotIAotLSAtLSBUaGUgRGV0YWlsZWQgTm9kZSBMaXN0aW5nIC0tCi0rIC0tLSBUaGUgRGV0YWlsZWQgTm9kZSBMaXN0aW5nIC0tLQotIAotIE1lYXN1cmluZyBQcm9ncmFtIFJlc291cmNlIFVzZQotIAotQEAgLTU4LDE0ICs2MywxNCBAQAotICAgIFRoZSBgdGltZScgY29tbWFuZCBydW5zIGFub3RoZXIgcHJvZ3JhbSwgdGhlbiBkaXNwbGF5cyBpbmZvcm1hdGlvbgotIGFib3V0IHRoZSByZXNvdXJjZXMgdXNlZCBieSB0aGF0IHByb2dyYW0sIGNvbGxlY3RlZCBieSB0aGUgc3lzdGVtIHdoaWxlCi0gdGhlIHByb2dyYW0gd2FzIHJ1bm5pbmcuICBZb3UgY2FuIHNlbGVjdCB3aGljaCBpbmZvcm1hdGlvbiBpcyByZXBvcnRlZAotLWFuZCB0aGUgZm9ybWF0IGluIHdoaWNoIGl0IGlzIHNob3duICgqbm90ZSBTZXR0aW5nIEZvcm1hdDo6LiksIG9yIGhhdmUKLSthbmQgdGhlIGZvcm1hdCBpbiB3aGljaCBpdCBpcyBzaG93biAoKm5vdGUgU2V0dGluZyBGb3JtYXQ6OiksIG9yIGhhdmUKLSBgdGltZScgc2F2ZSB0aGUgaW5mb3JtYXRpb24gaW4gYSBmaWxlIGluc3RlYWQgb2YgZGlzcGxheWluZyBpdCBvbiB0aGUKLS1zY3JlZW4gKCpub3RlIFJlZGlyZWN0aW5nOjouKS4KLStzY3JlZW4gKCpub3RlIFJlZGlyZWN0aW5nOjopLgotIAotICAgIFRoZSByZXNvdXJjZXMgdGhhdCBgdGltZScgY2FuIHJlcG9ydCBvbiBmYWxsIGludG8gdGhlIGdlbmVyYWwKLSBjYXRlZ29yaWVzIG9mIHRpbWUsIG1lbW9yeSwgYW5kIEkvTyBhbmQgSVBDIGNhbGxzLiAgU29tZSBzeXN0ZW1zIGRvIG5vdAotIHByb3ZpZGUgbXVjaCBpbmZvcm1hdGlvbiBhYm91dCBwcm9ncmFtIHJlc291cmNlIHVzZTsgYHRpbWUnIHJlcG9ydHMKLS11bmF2YWlsYWJsZSBpbmZvcm1hdGlvbiBhcyB6ZXJvIHZhbHVlcyAoKm5vdGUgQWNjdXJhY3k6Oi4pLgotK3VuYXZhaWxhYmxlIGluZm9ybWF0aW9uIGFzIHplcm8gdmFsdWVzICgqbm90ZSBBY2N1cmFjeTo6KS4KLSAKLSAgICBUaGUgZm9ybWF0IG9mIHRoZSBgdGltZScgY29tbWFuZCBpczoKLSAKLUBAIC0xMzIsNiArMTM3LDEwIEBACi0gICAgICAgICAgIHVzZXIgJVUKLSAgICAgICAgICAgc3lzICVTCi0gCi0rYC1xJwotK2AtLXF1aWV0JwotKyAgICAgU3VwcHJlc3Mgbm9uLXplcm8gZXJyb3IgY29kZSBmcm9tIHRoZSBleGVjdXRlZCBwcm9ncmFtLgotKwotIGAtdicKLSBgLS12ZXJib3NlJwotICAgICAgVXNlIHRoZSBidWlsdC1pbiB2ZXJib3NlIGZvcm1hdCwgd2hpY2ggZGlzcGxheXMgZWFjaCBhdmFpbGFibGUKLUBAIC0xNzQsNyArMTgzLDcgQEAKLSAgICBUaGUgcmVzb3VyY2Ugc3BlY2lmaWVycywgd2hpY2ggYXJlIGEgc3VwZXJzZXQgb2YgdGhvc2UgcmVjb2duaXplZCBieQotIHRoZSBgdGNzaCcgYnVpbHRpbiBgdGltZScgY29tbWFuZCwgYXJlIGxpc3RlZCBiZWxvdy4gIE5vdCBhbGwgcmVzb3VyY2VzCi0gYXJlIG1lYXN1cmVkIGJ5IGFsbCB2ZXJzaW9ucyBvZiBVbml4LCBzbyBzb21lIG9mIHRoZSB2YWx1ZXMgbWlnaHQgYmUKLS1yZXBvcnRlZCBhcyB6ZXJvICgqbm90ZSBBY2N1cmFjeTo6LikuCi0rcmVwb3J0ZWQgYXMgemVybyAoKm5vdGUgQWNjdXJhY3k6OikuCi0gCi0gKiBNZW51OgotIAotQEAgLTMwOCwxMSArMzE3LDExIEBACi0gYC1vIEZJTEUnCi0gYC0tb3V0cHV0PUZJTEUnCi0gICAgICBXcml0ZSB0aGUgcmVzb3VyY2UgdXNlIHN0YXRpc3RpY3MgdG8gRklMRS4gIEJ5IGRlZmF1bHQsIHRoaXMKLS0gICAgICpvdmVyd3JpdGVzKiB0aGUgZmlsZSwgZGVzdHJveWluZyB0aGUgZmlsZSdzIHByZXZpb3VzIGNvbnRlbnRzLgotKyAgICAgX292ZXJ3cml0ZXNfIHRoZSBmaWxlLCBkZXN0cm95aW5nIHRoZSBmaWxlJ3MgcHJldmlvdXMgY29udGVudHMuCi0gCi0gYC1hJwotIGAtLWFwcGVuZCcKLS0gICAgICpBcHBlbmQqIHRoZSByZXNvdXJjZSB1c2UgaW5mb3JtYXRpb24gdG8gdGhlIG91dHB1dCBmaWxlIGluc3RlYWQKLSsgICAgIF9BcHBlbmRfIHRoZSByZXNvdXJjZSB1c2UgaW5mb3JtYXRpb24gdG8gdGhlIG91dHB1dCBmaWxlIGluc3RlYWQKLSAgICAgIG9mIG92ZXJ3cml0aW5nIGl0LiAgVGhpcyBvcHRpb24gaXMgb25seSB1c2VmdWwgd2l0aCB0aGUgYC1vJyBvcgotICAgICAgYC0tb3V0cHV0JyBvcHRpb24uCi0gCi1AQCAtNDM3LDcgKzQ0Niw3IEBACi0gCi0gYC1hJwotIGAtLWFwcGVuZCcKLS0gICAgICpBcHBlbmQqIHRoZSByZXNvdXJjZSB1c2UgaW5mb3JtYXRpb24gdG8gdGhlIG91dHB1dCBmaWxlIGluc3RlYWQKLSsgICAgIF9BcHBlbmRfIHRoZSByZXNvdXJjZSB1c2UgaW5mb3JtYXRpb24gdG8gdGhlIG91dHB1dCBmaWxlIGluc3RlYWQKLSAgICAgIG9mIG92ZXJ3cml0aW5nIGl0LgotIAotIGAtZiBGT1JNQVQnCi1AQCAtNDYyLDE3ICs0NzEsMTcgQEAKLSAKLSAfCi0gVGFnIFRhYmxlOgotLU5vZGU6IFRvcH85MzQKLS1Ob2RlOiBSZXNvdXJjZSBNZWFzdXJlbWVudH8xNzI1Ci0tTm9kZTogU2V0dGluZyBGb3JtYXR/MzY3OAotLU5vZGU6IEZvcm1hdCBTdHJpbmd/NDkwNwotLU5vZGU6IFRpbWUgUmVzb3VyY2VzfzYyMTQKLS1Ob2RlOiBNZW1vcnkgUmVzb3VyY2VzfzY4NDQKLS1Ob2RlOiBJL08gUmVzb3VyY2Vzfzc1NDkKLS1Ob2RlOiBDb21tYW5kIEluZm9/ODc0NwotLU5vZGU6IFJlZGlyZWN0aW5nfzg5NjQKLS1Ob2RlOiBFeGFtcGxlc385NzU0Ci0tTm9kZTogQWNjdXJhY3l/MTIwNjQKLS1Ob2RlOiBJbnZva2luZyB0aW1lfzEzNTg2Ci0rTm9kZTogVG9wfzExMTUKLStOb2RlOiBSZXNvdXJjZSBNZWFzdXJlbWVudH8xOTA4Ci0rTm9kZTogU2V0dGluZyBGb3JtYXR/Mzg1OAotK05vZGU6IEZvcm1hdCBTdHJpbmd/NTE2NAotK05vZGU6IFRpbWUgUmVzb3VyY2VzfzY0NzAKLStOb2RlOiBNZW1vcnkgUmVzb3VyY2VzfzcxMDAKLStOb2RlOiBJL08gUmVzb3VyY2Vzfzc4MDUKLStOb2RlOiBDb21tYW5kIEluZm9/OTAwMwotK05vZGU6IFJlZGlyZWN0aW5nfzkyMjAKLStOb2RlOiBFeGFtcGxlc38xMDAxMAotK05vZGU6IEFjY3VyYWN5fzEyMzIwCi0rTm9kZTogSW52b2tpbmcgdGltZX8xMzg0MgotIB8KLSBFbmQgVGFnIFRhYmxlCi0tLS0gdGltZS0xLjcub3JpZy90aW1lLmh0bWwKLSsrKyB0aW1lLTEuNy90aW1lLmh0bWwKLUBAIC0wLDAgKzEsMTAyMSBAQAotKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iCi0rICAgICAgICAgICAgICAgICAgICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNDAvbG9vc2UuZHRkIj4KLSs8SFRNTD4KLSs8IS0tIENyZWF0ZWQgb24gU2VwdGVtYmVyLCAxIDIwMDMgYnkgdGV4aTJodG1sIDEuNjYgLS0+Ci0rPCEtLQotK1dyaXR0ZW4gYnk6IExpb25lbCBDb25zIDxMaW9uZWwuQ29uc0BjZXJuLmNoPiAob3JpZ2luYWwgYXV0aG9yKQotKyAgICAgICAgICAgIEthcmwgQmVycnkgIDxrYXJsQGZyZWVmcmllbmRzLm9yZz4KLSsgICAgICAgICAgICBPbGFmIEJhY2htYW5uIDxvYmFjaG1hbkBtYXRoZW1hdGlrLnVuaS1rbC5kZT4KLSsgICAgICAgICAgICBhbmQgbWFueSBvdGhlcnMuCi0rTWFpbnRhaW5lZCBieTogTWFueSBjcmVhdGl2ZSBwZW9wbGUgPGRldkB0ZXhpMmh0bWwuY3ZzaG9tZS5vcmc+Ci0rU2VuZCBidWdzIGFuZCBzdWdnZXN0aW9ucyB0byA8dXNlcnNAdGV4aTJodG1sLmN2c2hvbWUub3JnPgotKwotKy0tPgotKzxIRUFEPgotKzxUSVRMRT5NZWFzdXJpbmcgUHJvZ3JhbSBSZXNvdXJjZSBVc2U8L1RJVExFPgotKwotKzxNRVRBIE5BTUU9ImRlc2NyaXB0aW9uIiBDT05URU5UPSJNZWFzdXJpbmcgUHJvZ3JhbSBSZXNvdXJjZSBVc2UiPgotKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJNZWFzdXJpbmcgUHJvZ3JhbSBSZXNvdXJjZSBVc2UiPgotKzxNRVRBIE5BTUU9InJlc291cmNlLXR5cGUiIENPTlRFTlQ9ImRvY3VtZW50Ij4KLSs8TUVUQSBOQU1FPSJkaXN0cmlidXRpb24iIENPTlRFTlQ9Imdsb2JhbCI+Ci0rPE1FVEEgTkFNRT0iR2VuZXJhdG9yIiBDT05URU5UPSJ0ZXhpMmh0bWwgMS42NiI+Ci0rCi0rPC9IRUFEPgotKwotKzxCT0RZIExBTkc9ImVuIiBCR0NPTE9SPSIjRkZGRkZGIiBURVhUPSIjMDAwMDAwIiBMSU5LPSIjMDAwMEZGIiBWTElOSz0iIzgwMDA4MCIgQUxJTks9IiNGRjAwMDAiPgotKwotKzxBIE5BTUU9IlNFQ19Ub3AiPjwvQT4KLSs8VEFCTEUgQ0VMTFBBRERJTkc9MSBDRUxMU1BBQ0lORz0xIEJPUkRFUj0wPgotKzxUUj48VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0idGltZS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KLSs8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0idGltZS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+W0luZGV4XTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InRpbWUuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KLSs8L1RSPjwvVEFCTEU+Ci0rPEgxPk1lYXN1cmluZyBQcm9ncmFtIFJlc291cmNlIFVzZTwvSDE+Ci0rCi0rPFA+Ci0rCi0rVGhpcyBmaWxlIGRvY3VtZW50cyB0aGUgdGhlIEdOVSA8Q09ERT50aW1lPC9DT0RFPiBjb21tYW5kIGZvciBydW5uaW5nIHByb2dyYW1zCi0rYW5kIHN1bW1hcml6aW5nIHRoZSBzeXN0ZW0gcmVzb3VyY2VzIHRoZXkgdXNlLgotK1RoaXMgaXMgZWRpdGlvbiAxLjcsIGZvciB2ZXJzaW9uIDEuNy4KLSs8L1A+Ci0rPFA+Ci0rCi0rPC9QPgotKzxUQUJMRSBCT1JERVI9IjAiIENFTExTUEFDSU5HPSIwIj4KLSs8VFI+PFREIEFMSUdOPSJsZWZ0IiBWQUxJR049IlRPUCI+PEEgSFJFRj0idGltZS5odG1sI1NFQzEiPjEuIE1lYXN1cmluZyBQcm9ncmFtIFJlc291cmNlIFVzZTwvQT48L1REPjxURD4mbmJzcDsmbmJzcDs8L1REPjxURCBBTElHTj0ibGVmdCIgVkFMSUdOPSJUT1AiPk1lYXN1cmluZyBwcm9ncmFtIHJlc291cmNlIHVzZS48L1REPjwvVFI+Ci0rPFRSPjxUSCBDT0xTUEFOPSIzIiBBTElHTj0ibGVmdCIgVkFMSUdOPSJUT1AiPgotKzwvVEg+PC9UUj4KLSs8VFI+PFRIIENPTFNQQU49IjMiIEFMSUdOPSJsZWZ0IiBWQUxJR049IlRPUCI+IC0tIFRoZSBEZXRhaWxlZCBOb2RlIExpc3RpbmcgLS0tCi0rPC9USD48L1RSPgotKzxUUj48VEggQ09MU1BBTj0iMyIgQUxJR049ImxlZnQiIFZBTElHTj0iVE9QIj4KLSs8L1RIPjwvVFI+Ci0rPFRSPjxUSCBDT0xTUEFOPSIzIiBBTElHTj0ibGVmdCIgVkFMSUdOPSJUT1AiPk1lYXN1cmluZyBQcm9ncmFtIFJlc291cmNlIFVzZQotKzwvVEg+PC9UUj4KLSs8VFI+PFRIIENPTFNQQU49IjMiIEFMSUdOPSJsZWZ0IiBWQUxJR049IlRPUCI+Ci0rPC9USD48L1RSPgotKzxUUj48VEQgQUxJR049ImxlZnQiIFZBTElHTj0iVE9QIj48QSBIUkVGPSJ0aW1lLmh0bWwjU0VDMiI+MS4xIFNldHRpbmcgdGhlIE91dHB1dCBGb3JtYXQ8L0E+PC9URD48VEQ+Jm5ic3A7Jm5ic3A7PC9URD48VEQgQUxJR049ImxlZnQiIFZBTElHTj0iVE9QIj5TZWxlY3RpbmcgdGhlIGluZm9ybWF0aW9uIHJlcG9ydGVkIGJ5IDxDT0RFPnRpbWU8L0NPREU+LjwvVEQ+PC9UUj4KLSs8VFI+PFREIEFMSUdOPSJsZWZ0IiBWQUxJR049IlRPUCI+PEEgSFJFRj0idGltZS5odG1sI1NFQzMiPjEuMiBUaGUgRm9ybWF0IFN0cmluZzwvQT48L1REPjxURD4mbmJzcDsmbmJzcDs8L1REPjxURCBBTElHTj0ibGVmdCIgVkFMSUdOPSJUT1AiPlRoZSBpbmZvcm1hdGlvbiA8Q09ERT50aW1lPC9DT0RFPiBjYW4gcmVwb3J0LjwvVEQ+PC9UUj4KLSs8VFI+PFREIEFMSUdOPSJsZWZ0IiBWQUxJR049IlRPUCI+PEEgSFJFRj0idGltZS5odG1sI1NFQzgiPjEuMyBSZWRpcmVjdGluZyBPdXRwdXQ8L0E+PC9URD48VEQ+Jm5ic3A7Jm5ic3A7PC9URD48VEQgQUxJR049ImxlZnQiIFZBTElHTj0iVE9QIj5Xcml0aW5nIHRoZSBpbmZvcm1hdGlvbiB0byBhIGZpbGUuPC9URD48L1RSPgotKzxUUj48VEQgQUxJR049ImxlZnQiIFZBTElHTj0iVE9QIj48QSBIUkVGPSJ0aW1lLmh0bWwjU0VDOSI+MS40IEV4YW1wbGVzPC9BPjwvVEQ+PFREPiZuYnNwOyZuYnNwOzwvVEQ+PFREIEFMSUdOPSJsZWZ0IiBWQUxJR049IlRPUCI+RXhhbXBsZXMgb2YgdXNpbmcgPENPREU+dGltZTwvQ09ERT4uPC9URD48L1RSPgotKzxUUj48VEQgQUxJR049ImxlZnQiIFZBTElHTj0iVE9QIj48QSBIUkVGPSJ0aW1lLmh0bWwjU0VDMTAiPjEuNSBBY2N1cmFjeTwvQT48L1REPjxURD4mbmJzcDsmbmJzcDs8L1REPjxURCBBTElHTj0ibGVmdCIgVkFMSUdOPSJUT1AiPkxpbWl0YXRpb25zIG9uIHRoZSBhY2N1cmFjeSBvZiA8Q09ERT50aW1lPC9DT0RFPiBvdXRwdXQuPC9URD48L1RSPgotKzxUUj48VEQgQUxJR049ImxlZnQiIFZBTElHTj0iVE9QIj48QSBIUkVGPSJ0aW1lLmh0bWwjU0VDMTEiPjEuNiBSdW5uaW5nIHRoZSA8Q09ERT50aW1lPC9DT0RFPiBDb21tYW5kPC9BPjwvVEQ+PFREPiZuYnNwOyZuYnNwOzwvVEQ+PFREIEFMSUdOPSJsZWZ0IiBWQUxJR049IlRPUCI+U3VtbWFyeSBvZiB0aGUgb3B0aW9ucyB0byB0aGUgPENPREU+dGltZTwvQ09ERT4gY29tbWFuZC48L1REPjwvVFI+Ci0rPFRSPjxUSCBDT0xTUEFOPSIzIiBBTElHTj0ibGVmdCIgVkFMSUdOPSJUT1AiPgotKzwvVEg+PC9UUj4KLSs8VFI+PFRIIENPTFNQQU49IjMiIEFMSUdOPSJsZWZ0IiBWQUxJR049IlRPUCI+VGhlIEZvcm1hdCBTdHJpbmcKLSs8L1RIPjwvVFI+Ci0rPFRSPjxUSCBDT0xTUEFOPSIzIiBBTElHTj0ibGVmdCIgVkFMSUdOPSJUT1AiPgotKzwvVEg+PC9UUj4KLSs8VFI+PFREIEFMSUdOPSJsZWZ0IiBWQUxJR049IlRPUCI+PEEgSFJFRj0idGltZS5odG1sI1NFQzQiPjEuMi4xIFRpbWUgUmVzb3VyY2VzPC9BPjwvVEQ+PFREPiZuYnNwOyZuYnNwOzwvVEQ+PFREIEFMSUdOPSJsZWZ0IiBWQUxJR049IlRPUCI+PC9URD48L1RSPgotKzxUUj48VEQgQUxJR049ImxlZnQiIFZBTElHTj0iVE9QIj48QSBIUkVGPSJ0aW1lLmh0bWwjU0VDNSI+MS4yLjIgTWVtb3J5IFJlc291cmNlczwvQT48L1REPjxURD4mbmJzcDsmbmJzcDs8L1REPjxURCBBTElHTj0ibGVmdCIgVkFMSUdOPSJUT1AiPjwvVEQ+PC9UUj4KLSs8VFI+PFREIEFMSUdOPSJsZWZ0IiBWQUxJR049IlRPUCI+PEEgSFJFRj0idGltZS5odG1sI1NFQzYiPjEuMi4zIEkvTyBSZXNvdXJjZXM8L0E+PC9URD48VEQ+Jm5ic3A7Jm5ic3A7PC9URD48VEQgQUxJR049ImxlZnQiIFZBTElHTj0iVE9QIj48L1REPjwvVFI+Ci0rPFRSPjxURCBBTElHTj0ibGVmdCIgVkFMSUdOPSJUT1AiPjxBIEhSRUY9InRpbWUuaHRtbCNTRUM3Ij4xLjIuNCBDb21tYW5kIEluZm88L0E+PC9URD48VEQ+Jm5ic3A7Jm5ic3A7PC9URD48VEQgQUxJR049ImxlZnQiIFZBTElHTj0iVE9QIj48L1REPjwvVFI+Ci0rPC9UQUJMRT4KLSs8UD4KLSsKLSs8SFIgU0laRT0xPgotKzxBIE5BTUU9IlNFQzEiPjwvQT4KLSs8VEFCTEUgQ0VMTFBBRERJTkc9MSBDRUxMU1BBQ0lORz0xIEJPUkRFUj0wPgotKzxUUj48VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0idGltZS5odG1sI1NFQ19Ub3AiPiAmbHQ7IDwvQT5dPC9URD4KLSs8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0idGltZS5odG1sI1NFQzIiPiAmZ3Q7IDwvQT5dPC9URD4KLSs8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPlsgJmx0OyZsdDsgXTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InRpbWUuaHRtbCNTRUNfVG9wIj4gVXAgPC9BPl08L1REPgotKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPlsgJmd0OyZndDsgXTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0idGltZS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KLSs8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0idGltZS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+W0luZGV4XTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InRpbWUuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KLSs8L1RSPjwvVEFCTEU+Ci0rPEEgTkFNRT0iUmVzb3VyY2UgTWVhc3VyZW1lbnQiPjwvQT4KLSs8SDE+IDEuIE1lYXN1cmluZyBQcm9ncmFtIFJlc291cmNlIFVzZSA8L0gxPgotKzwhLS1kb2NpZDo6U0VDMTo6LS0+Ci0rPFA+Ci0rCi0rVGhlIDxDT0RFPnRpbWU8L0NPREU+IGNvbW1hbmQgcnVucyBhbm90aGVyIHByb2dyYW0sIHRoZW4gZGlzcGxheXMgaW5mb3JtYXRpb24KLSthYm91dCB0aGUgcmVzb3VyY2VzIHVzZWQgYnkgdGhhdCBwcm9ncmFtLCBjb2xsZWN0ZWQgYnkgdGhlIHN5c3RlbSB3aGlsZQotK3RoZSBwcm9ncmFtIHdhcyBydW5uaW5nLiAgWW91IGNhbiBzZWxlY3Qgd2hpY2ggaW5mb3JtYXRpb24gaXMgcmVwb3J0ZWQKLSthbmQgdGhlIGZvcm1hdCBpbiB3aGljaCBpdCBpcyBzaG93biAoc2VlIHNlY3Rpb24gPEEgSFJFRj0idGltZS5odG1sI1NFQzIiPjEuMSBTZXR0aW5nIHRoZSBPdXRwdXQgRm9ybWF0PC9BPiksIG9yIGhhdmUKLSs8Q09ERT50aW1lPC9DT0RFPiBzYXZlIHRoZSBpbmZvcm1hdGlvbiBpbiBhIGZpbGUgaW5zdGVhZCBvZiBkaXNwbGF5aW5nIGl0IG9uIHRoZQotK3NjcmVlbiAoc2VlIHNlY3Rpb24gPEEgSFJFRj0idGltZS5odG1sI1NFQzgiPjEuMyBSZWRpcmVjdGluZyBPdXRwdXQ8L0E+KS4KLSs8L1A+Ci0rPFA+Ci0rCi0rVGhlIHJlc291cmNlcyB0aGF0IDxDT0RFPnRpbWU8L0NPREU+IGNhbiByZXBvcnQgb24gZmFsbCBpbnRvIHRoZSBnZW5lcmFsCi0rY2F0ZWdvcmllcyBvZiB0aW1lLCBtZW1vcnksIGFuZCBJL08gYW5kIElQQyBjYWxscy4gIFNvbWUgc3lzdGVtcyBkbyBub3QKLStwcm92aWRlIG11Y2ggaW5mb3JtYXRpb24gYWJvdXQgcHJvZ3JhbSByZXNvdXJjZSB1c2U7IDxDT0RFPnRpbWU8L0NPREU+Ci0rcmVwb3J0cyB1bmF2YWlsYWJsZSBpbmZvcm1hdGlvbiBhcyB6ZXJvIHZhbHVlcyAoc2VlIHNlY3Rpb24gPEEgSFJFRj0idGltZS5odG1sI1NFQzEwIj4xLjUgQWNjdXJhY3k8L0E+KS4KLSs8L1A+Ci0rPFA+Ci0rCi0rVGhlIGZvcm1hdCBvZiB0aGUgPENPREU+dGltZTwvQ09ERT4gY29tbWFuZCBpczoKLSs8L1A+Ci0rPFA+Ci0rCi0rPFRBQkxFPjx0cj48dGQ+Jm5ic3A7PC90ZD48dGQgY2xhc3M9ZXhhbXBsZT48cHJlPnRpbWUgW29wdGlvbjxzbWFsbD4uLi48L3NtYWxsPl0gPFZBUj5jb21tYW5kPC9WQVI+IFs8VkFSPmFyZzwvVkFSPjxzbWFsbD4uLi48L3NtYWxsPl0KLSs8L3ByZT48L3RkPjwvdHI+PC90YWJsZT48UD4KLSsKLSs8QSBOQU1FPSJJRFgxIj48L0E+Ci0rPENPREU+dGltZTwvQ09ERT4gcnVucyB0aGUgcHJvZ3JhbSA8VkFSPmNvbW1hbmQ8L1ZBUj4sIHdpdGggYW55IGdpdmVuIGFyZ3VtZW50cwotKzxWQVI+YXJnPC9WQVI+PHNtYWxsPi4uLjwvc21hbGw+LiAgV2hlbiA8VkFSPmNvbW1hbmQ8L1ZBUj4gZmluaXNoZXMsIDxDT0RFPnRpbWU8L0NPREU+IGRpc3BsYXlzCi0raW5mb3JtYXRpb24gYWJvdXQgcmVzb3VyY2VzIHVzZWQgYnkgPFZBUj5jb21tYW5kPC9WQVI+LgotKzwvUD4KLSs8UD4KLSsKLStIZXJlIGlzIGFuIGV4YW1wbGUgb2YgdXNpbmcgPENPREU+dGltZTwvQ09ERT4gdG8gbWVhc3VyZSB0aGUgdGltZSBhbmQgb3RoZXIKLStyZXNvdXJjZXMgdXNlZCBieSBydW5uaW5nIHRoZSBwcm9ncmFtIDxDT0RFPmdyZXA8L0NPREU+OgotKzwvUD4KLSs8UD4KLSsKLSs8VEFCTEU+PHRyPjx0ZD4mbmJzcDs8L3RkPjx0ZCBjbGFzcz1leGFtcGxlPjxwcmU+ZWckIHRpbWUgZ3JlcCBub2JvZHkgL2V0Yy9hbGlhc2VzCi0rbm9ib2R5Oi9kZXYvbnVsbAotK2V0Yy1maWxlczpub2JvZHkKLSttaXNjLWdyb3VwOm5vYm9keQotKzAuMDd1c2VyIDAuNTBzeXN0ZW0gMDowNi42OWVsYXBzZWQgOCVDUFUgKDBhdmd0ZXh0KzQ4OWF2Z2RhdGEgMzI0bWF4cmVzaWRlbnQpawotKzQ2aW5wdXRzKzdvdXRwdXRzICg0M21ham9yKzI1MW1pbm9yKXBhZ2VmYXVsdHMgMHN3YXBzCi0rPC9wcmU+PC90ZD48L3RyPjwvdGFibGU+PFA+Ci0rCi0rTWFpbCBzdWdnZXN0aW9ucyBhbmQgYnVnIHJlcG9ydHMgZm9yIEdOVSA8Q09ERT50aW1lPC9DT0RFPiB0bwotKzxDT0RFPmJ1Zy1nbnUtdXRpbHNAcHJlcC5haS5taXQuZWR1PC9DT0RFPi4gIFBsZWFzZSBpbmNsdWRlIHRoZSB2ZXJzaW9uIG9mCi0rPENPREU+dGltZTwvQ09ERT4sIHdoaWNoIHlvdSBjYW4gZ2V0IGJ5IHJ1bm5pbmcgYDxTQU1QPnRpbWUgLS12ZXJzaW9uPC9TQU1QPicsIGFuZCB0aGUKLStvcGVyYXRpbmcgc3lzdGVtIGFuZCBDIGNvbXBpbGVyIHlvdSB1c2VkLgotKzwvUD4KLSs8UD4KLSsKLSs8VEFCTEUgQk9SREVSPSIwIiBDRUxMU1BBQ0lORz0iMCI+Ci0rPFRSPjxURCBBTElHTj0ibGVmdCIgVkFMSUdOPSJUT1AiPjxBIEhSRUY9InRpbWUuaHRtbCNTRUMyIj4xLjEgU2V0dGluZyB0aGUgT3V0cHV0IEZvcm1hdDwvQT48L1REPjxURD4mbmJzcDsmbmJzcDs8L1REPjxURCBBTElHTj0ibGVmdCIgVkFMSUdOPSJUT1AiPlNlbGVjdGluZyB0aGUgaW5mb3JtYXRpb24gcmVwb3J0ZWQgYnkgPENPREU+dGltZTwvQ09ERT4uPC9URD48L1RSPgotKzxUUj48VEQgQUxJR049ImxlZnQiIFZBTElHTj0iVE9QIj48QSBIUkVGPSJ0aW1lLmh0bWwjU0VDMyI+MS4yIFRoZSBGb3JtYXQgU3RyaW5nPC9BPjwvVEQ+PFREPiZuYnNwOyZuYnNwOzwvVEQ+PFREIEFMSUdOPSJsZWZ0IiBWQUxJR049IlRPUCI+VGhlIGluZm9ybWF0aW9uIDxDT0RFPnRpbWU8L0NPREU+IGNhbiByZXBvcnQuPC9URD48L1RSPgotKzxUUj48VEQgQUxJR049ImxlZnQiIFZBTElHTj0iVE9QIj48QSBIUkVGPSJ0aW1lLmh0bWwjU0VDOCI+MS4zIFJlZGlyZWN0aW5nIE91dHB1dDwvQT48L1REPjxURD4mbmJzcDsmbmJzcDs8L1REPjxURCBBTElHTj0ibGVmdCIgVkFMSUdOPSJUT1AiPldyaXRpbmcgdGhlIGluZm9ybWF0aW9uIHRvIGEgZmlsZS48L1REPjwvVFI+Ci0rPFRSPjxURCBBTElHTj0ibGVmdCIgVkFMSUdOPSJUT1AiPjxBIEhSRUY9InRpbWUuaHRtbCNTRUM5Ij4xLjQgRXhhbXBsZXM8L0E+PC9URD48VEQ+Jm5ic3A7Jm5ic3A7PC9URD48VEQgQUxJR049ImxlZnQiIFZBTElHTj0iVE9QIj5FeGFtcGxlcyBvZiB1c2luZyA8Q09ERT50aW1lPC9DT0RFPi48L1REPjwvVFI+Ci0rPFRSPjxURCBBTElHTj0ibGVmdCIgVkFMSUdOPSJUT1AiPjxBIEhSRUY9InRpbWUuaHRtbCNTRUMxMCI+MS41IEFjY3VyYWN5PC9BPjwvVEQ+PFREPiZuYnNwOyZuYnNwOzwvVEQ+PFREIEFMSUdOPSJsZWZ0IiBWQUxJR049IlRPUCI+TGltaXRhdGlvbnMgb24gdGhlIGFjY3VyYWN5IG9mIDxDT0RFPnRpbWU8L0NPREU+IG91dHB1dC48L1REPjwvVFI+Ci0rPFRSPjxURCBBTElHTj0ibGVmdCIgVkFMSUdOPSJUT1AiPjxBIEhSRUY9InRpbWUuaHRtbCNTRUMxMSI+MS42IFJ1bm5pbmcgdGhlIDxDT0RFPnRpbWU8L0NPREU+IENvbW1hbmQ8L0E+PC9URD48VEQ+Jm5ic3A7Jm5ic3A7PC9URD48VEQgQUxJR049ImxlZnQiIFZBTElHTj0iVE9QIj5TdW1tYXJ5IG9mIHRoZSBvcHRpb25zIHRvIHRoZSA8Q09ERT50aW1lPC9DT0RFPiBjb21tYW5kLjwvVEQ+PC9UUj4KLSs8L1RBQkxFPgotKzxQPgotKwotKzxBIE5BTUU9IlNldHRpbmcgRm9ybWF0Ij48L0E+Ci0rPEhSIFNJWkU9IjYiPgotKzxBIE5BTUU9IlNFQzIiPjwvQT4KLSs8VEFCTEUgQ0VMTFBBRERJTkc9MSBDRUxMU1BBQ0lORz0xIEJPUkRFUj0wPgotKzxUUj48VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0idGltZS5odG1sI1NFQzEiPiAmbHQ7IDwvQT5dPC9URD4KLSs8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0idGltZS5odG1sI1NFQzMiPiAmZ3Q7IDwvQT5dPC9URD4KLSs8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJ0aW1lLmh0bWwjU0VDMSI+ICZsdDsmbHQ7IDwvQT5dPC9URD4KLSs8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0idGltZS5odG1sI1NFQ19Ub3AiPiBVcCA8L0E+XTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WyAmZ3Q7Jmd0OyBdPC9URD4KLSs8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJ0aW1lLmh0bWwjU0VDX1RvcCI+VG9wPC9BPl08L1REPgotKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJ0aW1lLmh0bWwjU0VDX0NvbnRlbnRzIj5Db250ZW50czwvQT5dPC9URD4KLSs8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bSW5kZXhdPC9URD4KLSs8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0idGltZS5odG1sI1NFQ19BYm91dCI+ID8gPC9BPl08L1REPgotKzwvVFI+PC9UQUJMRT4KLSs8SDI+IDEuMSBTZXR0aW5nIHRoZSBPdXRwdXQgRm9ybWF0IDwvSDI+Ci0rPCEtLWRvY2lkOjpTRUMyOjotLT4KLSs8UD4KLSsKLSs8Q09ERT50aW1lPC9DT0RFPiB1c2VzIGEgPEVNPmZvcm1hdCBzdHJpbmc8L0VNPiB0byBkZXRlcm1pbmUgd2hpY2ggaW5mb3JtYXRpb24gdG8KLStkaXNwbGF5IGFib3V0IHRoZSByZXNvdXJjZXMgdXNlZCBieSB0aGUgY29tbWFuZCBpdCBydW5zLiAgU2VlIHNlY3Rpb24gPEEgSFJFRj0idGltZS5odG1sI1NFQzMiPjEuMiBUaGUgRm9ybWF0IFN0cmluZzwvQT4sIGZvciB0aGUgaW50ZXJwcmV0YXRpb24gb2YgdGhlIGZvcm1hdCBzdHJpbmcgY29udGVudHMuCi0rPC9QPgotKzxQPgotKwotK1lvdSBjYW4gc3BlY2lmeSBhIGZvcm1hdCBzdHJpbmcgd2l0aCB0aGUgY29tbWFuZCBsaW5lIG9wdGlvbnMgbGlzdGVkCi0rYmVsb3cuICBJZiBubyBmb3JtYXQgaXMgc3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUsIGJ1dCB0aGUKLSs8Q09ERT5USU1FPC9DT0RFPiBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBzZXQsIGl0cyB2YWx1ZSBpcyB1c2VkIGFzIHRoZSBmb3JtYXQKLStzdHJpbmcuICBPdGhlcndpc2UsIHRoZSBkZWZhdWx0IGZvcm1hdCBidWlsdCBpbnRvIDxDT0RFPnRpbWU8L0NPREU+IGlzIHVzZWQ6Ci0rPC9QPgotKzxQPgotKwotKzxUQUJMRT48dHI+PHRkPiZuYnNwOzwvdGQ+PHRkIGNsYXNzPWV4YW1wbGU+PHByZT4lVXVzZXIgJVNzeXN0ZW0gJUVlbGFwc2VkICVQQ1BVICglWHRleHQrJURkYXRhICVNbWF4KWsKLSslSWlucHV0cyslT291dHB1dHMgKCVGbWFqb3IrJVJtaW5vcilwYWdlZmF1bHRzICVXc3dhcHMKLSs8L3ByZT48L3RkPjwvdHI+PC90YWJsZT48UD4KLSsKLStUaGUgY29tbWFuZCBsaW5lIG9wdGlvbnMgdG8gc2V0IHRoZSBmb3JtYXQgYXJlOgotKzwvUD4KLSs8UD4KLSsKLSs8L1A+Ci0rPERMIENPTVBBQ1Q+Ci0rPERUPjxDT0RFPi1mIDxWQVI+Zm9ybWF0PC9WQVI+PC9DT0RFPgotKzxERD48RFQ+PENPREU+LS1mb3JtYXQ9PFZBUj5mb3JtYXQ8L1ZBUj48L0NPREU+Ci0rPEREPlVzZSA8VkFSPmZvcm1hdDwvVkFSPiBhcyB0aGUgZm9ybWF0IHN0cmluZy4KLSs8UD4KLSsKLSs8L1A+Ci0rPERUPjxDT0RFPi1wPC9DT0RFPgotKzxERD48RFQ+PENPREU+LS1wb3J0YWJpbGl0eTwvQ09ERT4KLSs8REQ+VXNlIHRoZSBmb2xsb3dpbmcgZm9ybWF0IHN0cmluZywgZm9yIGNvbmZvcm1hbmNlIHdpdGggUE9TSVggc3RhbmRhcmQKLSsxMDAzLjI6Ci0rPFA+Ci0rCi0rPFRBQkxFPjx0cj48dGQ+Jm5ic3A7PC90ZD48dGQgY2xhc3M9ZXhhbXBsZT48cHJlPnJlYWwgJWUKLSt1c2VyICVVCi0rc3lzICVTCi0rPC9wcmU+PC90ZD48L3RyPjwvdGFibGU+PFA+Ci0rCi0rPC9QPgotKzxEVD48Q09ERT4tcTwvQ09ERT4KLSs8REQ+PERUPjxDT0RFPi0tcXVpZXQ8L0NPREU+Ci0rPEREPlN1cHByZXNzIG5vbi16ZXJvIGVycm9yIGNvZGUgZnJvbSB0aGUgZXhlY3V0ZWQgcHJvZ3JhbS4KLSs8UD4KLSsKLSs8L1A+Ci0rPERUPjxDT0RFPi12PC9DT0RFPgotKzxERD48RFQ+PENPREU+LS12ZXJib3NlPC9DT0RFPgotKzxERD48QSBOQU1FPSJJRFgyIj48L0E+Ci0rVXNlIHRoZSBidWlsdC1pbiB2ZXJib3NlIGZvcm1hdCwgd2hpY2ggZGlzcGxheXMgZWFjaCBhdmFpbGFibGUgcGllY2Ugb2YKLStpbmZvcm1hdGlvbiBvbiB0aGUgcHJvZ3JhbSdzIHJlc291cmNlIHVzZSBvbiBpdHMgb3duIGxpbmUsIHdpdGggYW4KLStFbmdsaXNoIGRlc2NyaXB0aW9uIG9mIGl0cyBtZWFuaW5nLgotKzwvREw+Ci0rPFA+Ci0rCi0rPEEgTkFNRT0iRm9ybWF0IFN0cmluZyI+PC9BPgotKzxIUiBTSVpFPSI2Ij4KLSs8QSBOQU1FPSJTRUMzIj48L0E+Ci0rPFRBQkxFIENFTExQQURESU5HPTEgQ0VMTFNQQUNJTkc9MSBCT1JERVI9MD4KLSs8VFI+PFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InRpbWUuaHRtbCNTRUMyIj4gJmx0OyA8L0E+XTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InRpbWUuaHRtbCNTRUM0Ij4gJmd0OyA8L0E+XTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0idGltZS5odG1sI1NFQzEiPiAmbHQ7Jmx0OyA8L0E+XTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InRpbWUuaHRtbCNTRUNfVG9wIj4gVXAgPC9BPl08L1REPgotKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPlsgJmd0OyZndDsgXTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0idGltZS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KLSs8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0idGltZS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+W0luZGV4XTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InRpbWUuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KLSs8L1RSPjwvVEFCTEU+Ci0rPEgyPiAxLjIgVGhlIEZvcm1hdCBTdHJpbmcgPC9IMj4KLSs8IS0tZG9jaWQ6OlNFQzM6Oi0tPgotKzxQPgotKwotKzxBIE5BTUU9IklEWDMiPjwvQT4KLSs8QSBOQU1FPSJJRFg0Ij48L0E+Ci0rVGhlIDxFTT5mb3JtYXQgc3RyaW5nPC9FTT4gY29udHJvbHMgdGhlIGNvbnRlbnRzIG9mIHRoZSA8Q09ERT50aW1lPC9DT0RFPiBvdXRwdXQuCi0rSXQgY29uc2lzdHMgb2YgPEVNPnJlc291cmNlIHNwZWNpZmllcnM8L0VNPiBhbmQgPEVNPmVzY2FwZXM8L0VNPiwgaW50ZXJzcGVyc2VkCi0rd2l0aCBwbGFpbiB0ZXh0LgotKzwvUD4KLSs8UD4KLSsKLStBIGJhY2tzbGFzaCBpbnRyb2R1Y2VzIGFuIDxFTT5lc2NhcGU8L0VNPiwgd2hpY2ggaXMgdHJhbnNsYXRlZAotK2ludG8gYSBzaW5nbGUgcHJpbnRpbmcgY2hhcmFjdGVyIHVwb24gb3V0cHV0LiAgVGhlIHZhbGlkIGVzY2FwZXMgYXJlCi0rbGlzdGVkIGJlbG93LiAgQW4gaW52YWxpZCBlc2NhcGUgaXMgb3V0cHV0IGFzIGEgcXVlc3Rpb24gbWFyayBmb2xsb3dlZAotK2J5IGEgYmFja3NsYXNoLgotKzwvUD4KLSs8UD4KLSsKLSs8L1A+Ci0rPERMIENPTVBBQ1Q+Ci0rPERUPjxDT0RFPlx0PC9DT0RFPgotKzxERD5hIHRhYiBjaGFyYWN0ZXIKLSs8UD4KLSsKLSs8L1A+Ci0rPERUPjxDT0RFPlxuPC9DT0RFPgotKzxERD5hIG5ld2xpbmUKLSs8UD4KLSsKLSs8L1A+Ci0rPERUPjxDT0RFPlxcPC9DT0RFPgotKzxERD5hIGxpdGVyYWwgYmFja3NsYXNoCi0rPC9ETD4KLSs8UD4KLSsKLSs8Q09ERT50aW1lPC9DT0RFPiBhbHdheXMgcHJpbnRzIGEgbmV3bGluZSBhZnRlciBwcmludGluZyB0aGUgcmVzb3VyY2UgdXNlCi0raW5mb3JtYXRpb24sIHNvIG5vcm1hbGx5IGZvcm1hdCBzdHJpbmdzIGRvIG5vdCBlbmQgd2l0aCBhIG5ld2xpbmUKLStjaGFyYWN0ZXIgKG9yIGA8U0FNUD5cbjwvU0FNUD4nKS4KLSs8L1A+Ci0rPFA+Ci0rCi0rQSByZXNvdXJjZSBzcGVjaWZpZXIgY29uc2lzdHMgb2YgYSBwZXJjZW50IHNpZ24gZm9sbG93ZWQgYnkgYW5vdGhlcgotK2NoYXJhY3Rlci4gIEFuIGludmFsaWQgcmVzb3VyY2Ugc3BlY2lmaWVyIGlzIG91dHB1dCBhcyBhIHF1ZXN0aW9uIG1hcmsKLStmb2xsb3dlZCBieSB0aGUgaW52YWxpZCBjaGFyYWN0ZXIuICBVc2UgYDxTQU1QPiUlPC9TQU1QPicgdG8gb3V0cHV0IGEgbGl0ZXJhbAotK3BlcmNlbnQgc2lnbi4KLSs8L1A+Ci0rPFA+Ci0rCi0rVGhlIHJlc291cmNlIHNwZWNpZmllcnMsIHdoaWNoIGFyZSBhIHN1cGVyc2V0IG9mIHRob3NlIHJlY29nbml6ZWQgYnkgdGhlCi0rPENPREU+dGNzaDwvQ09ERT4gYnVpbHRpbiA8Q09ERT50aW1lPC9DT0RFPiBjb21tYW5kLCBhcmUgbGlzdGVkIGJlbG93LiAgTm90IGFsbAotK3Jlc291cmNlcyBhcmUgbWVhc3VyZWQgYnkgYWxsIHZlcnNpb25zIG9mIFVuaXgsIHNvIHNvbWUgb2YgdGhlIHZhbHVlcwotK21pZ2h0IGJlIHJlcG9ydGVkIGFzIHplcm8gKHNlZSBzZWN0aW9uIDxBIEhSRUY9InRpbWUuaHRtbCNTRUMxMCI+MS41IEFjY3VyYWN5PC9BPikuCi0rPC9QPgotKzxQPgotKwotKzxUQUJMRSBCT1JERVI9IjAiIENFTExTUEFDSU5HPSIwIj4KLSs8VFI+PFREIEFMSUdOPSJsZWZ0IiBWQUxJR049IlRPUCI+PEEgSFJFRj0idGltZS5odG1sI1NFQzQiPjEuMi4xIFRpbWUgUmVzb3VyY2VzPC9BPjwvVEQ+PFREPiZuYnNwOyZuYnNwOzwvVEQ+PFREIEFMSUdOPSJsZWZ0IiBWQUxJR049IlRPUCI+PC9URD48L1RSPgotKzxUUj48VEQgQUxJR049ImxlZnQiIFZBTElHTj0iVE9QIj48QSBIUkVGPSJ0aW1lLmh0bWwjU0VDNSI+MS4yLjIgTWVtb3J5IFJlc291cmNlczwvQT48L1REPjxURD4mbmJzcDsmbmJzcDs8L1REPjxURCBBTElHTj0ibGVmdCIgVkFMSUdOPSJUT1AiPjwvVEQ+PC9UUj4KLSs8VFI+PFREIEFMSUdOPSJsZWZ0IiBWQUxJR049IlRPUCI+PEEgSFJFRj0idGltZS5odG1sI1NFQzYiPjEuMi4zIEkvTyBSZXNvdXJjZXM8L0E+PC9URD48VEQ+Jm5ic3A7Jm5ic3A7PC9URD48VEQgQUxJR049ImxlZnQiIFZBTElHTj0iVE9QIj48L1REPjwvVFI+Ci0rPFRSPjxURCBBTElHTj0ibGVmdCIgVkFMSUdOPSJUT1AiPjxBIEhSRUY9InRpbWUuaHRtbCNTRUM3Ij4xLjIuNCBDb21tYW5kIEluZm88L0E+PC9URD48VEQ+Jm5ic3A7Jm5ic3A7PC9URD48VEQgQUxJR049ImxlZnQiIFZBTElHTj0iVE9QIj48L1REPjwvVFI+Ci0rPC9UQUJMRT4KLSs8UD4KLSsKLSs8QSBOQU1FPSJUaW1lIFJlc291cmNlcyI+PC9BPgotKzxIUiBTSVpFPSI2Ij4KLSs8QSBOQU1FPSJTRUM0Ij48L0E+Ci0rPFRBQkxFIENFTExQQURESU5HPTEgQ0VMTFNQQUNJTkc9MSBCT1JERVI9MD4KLSs8VFI+PFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InRpbWUuaHRtbCNTRUMzIj4gJmx0OyA8L0E+XTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InRpbWUuaHRtbCNTRUM1Ij4gJmd0OyA8L0E+XTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0idGltZS5odG1sI1NFQzEiPiAmbHQ7Jmx0OyA8L0E+XTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InRpbWUuaHRtbCNTRUNfVG9wIj4gVXAgPC9BPl08L1REPgotKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPlsgJmd0OyZndDsgXTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0idGltZS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KLSs8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0idGltZS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+W0luZGV4XTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InRpbWUuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KLSs8L1RSPjwvVEFCTEU+Ci0rPEgzPiAxLjIuMSBUaW1lIFJlc291cmNlcyA8L0gzPgotKzwhLS1kb2NpZDo6U0VDNDo6LS0+Ci0rPFA+Ci0rCi0rPC9QPgotKzxETCBDT01QQUNUPgotKzxEVD48Q09ERT5FPC9DT0RFPgotKzxERD5FbGFwc2VkIHJlYWwgKHdhbGwgY2xvY2spIHRpbWUgdXNlZCBieSB0aGUgcHJvY2VzcywgaW4KLStbaG91cnM6XW1pbnV0ZXM6c2Vjb25kcy4KLSs8UD4KLSsKLSs8L1A+Ci0rPERUPjxDT0RFPmU8L0NPREU+Ci0rPEREPkVsYXBzZWQgcmVhbCAod2FsbCBjbG9jaykgdGltZSB1c2VkIGJ5IHRoZSBwcm9jZXNzLCBpbgotK3NlY29uZHMuCi0rPFA+Ci0rCi0rPC9QPgotKzxEVD48Q09ERT5TPC9DT0RFPgotKzxERD5Ub3RhbCBudW1iZXIgb2YgQ1BVLXNlY29uZHMgdXNlZCBieSB0aGUgc3lzdGVtIG9uIGJlaGFsZiBvZiB0aGUgcHJvY2VzcwotKyhpbiBrZXJuZWwgbW9kZSksIGluIHNlY29uZHMuCi0rPFA+Ci0rCi0rPC9QPgotKzxEVD48Q09ERT5VPC9DT0RFPgotKzxERD5Ub3RhbCBudW1iZXIgb2YgQ1BVLXNlY29uZHMgdGhhdCB0aGUgcHJvY2VzcyB1c2VkIGRpcmVjdGx5IChpbiB1c2VyCi0rbW9kZSksIGluIHNlY29uZHMuCi0rPFA+Ci0rCi0rPC9QPgotKzxEVD48Q09ERT5QPC9DT0RFPgotKzxERD5QZXJjZW50YWdlIG9mIHRoZSBDUFUgdGhhdCB0aGlzIGpvYiBnb3QuICBUaGlzIGlzIGp1c3QgdXNlciArIHN5c3RlbQotK3RpbWVzIGRpdmllZCBieSB0aGUgdG90YWwgcnVubmluZyB0aW1lLgotKzwvREw+Ci0rPFA+Ci0rCi0rPEEgTkFNRT0iTWVtb3J5IFJlc291cmNlcyI+PC9BPgotKzxIUiBTSVpFPSI2Ij4KLSs8QSBOQU1FPSJTRUM1Ij48L0E+Ci0rPFRBQkxFIENFTExQQURESU5HPTEgQ0VMTFNQQUNJTkc9MSBCT1JERVI9MD4KLSs8VFI+PFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InRpbWUuaHRtbCNTRUM0Ij4gJmx0OyA8L0E+XTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InRpbWUuaHRtbCNTRUM2Ij4gJmd0OyA8L0E+XTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0idGltZS5odG1sI1NFQzEiPiAmbHQ7Jmx0OyA8L0E+XTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InRpbWUuaHRtbCNTRUNfVG9wIj4gVXAgPC9BPl08L1REPgotKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPlsgJmd0OyZndDsgXTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0idGltZS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KLSs8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0idGltZS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+W0luZGV4XTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InRpbWUuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KLSs8L1RSPjwvVEFCTEU+Ci0rPEgzPiAxLjIuMiBNZW1vcnkgUmVzb3VyY2VzIDwvSDM+Ci0rPCEtLWRvY2lkOjpTRUM1OjotLT4KLSs8UD4KLSsKLSs8L1A+Ci0rPERMIENPTVBBQ1Q+Ci0rPERUPjxDT0RFPk08L0NPREU+Ci0rPEREPk1heGltdW0gcmVzaWRlbnQgc2V0IHNpemUgb2YgdGhlIHByb2Nlc3MgZHVyaW5nIGl0cyBsaWZldGltZSwgaW4KLStLaWxvYnl0ZXMuCi0rPFA+Ci0rCi0rPC9QPgotKzxEVD48Q09ERT50PC9DT0RFPgotKzxERD5BdmVyYWdlIHJlc2lkZW50IHNldCBzaXplIG9mIHRoZSBwcm9jZXNzLCBpbiBLaWxvYnl0ZXMuCi0rPFA+Ci0rCi0rPC9QPgotKzxEVD48Q09ERT5LPC9DT0RFPgotKzxERD5BdmVyYWdlIHRvdGFsIChkYXRhK3N0YWNrK3RleHQpIG1lbW9yeSB1c2Ugb2YgdGhlIHByb2Nlc3MsIGluIEtpbG9ieXRlcy4KLSs8UD4KLSsKLSs8L1A+Ci0rPERUPjxDT0RFPkQ8L0NPREU+Ci0rPEREPkF2ZXJhZ2Ugc2l6ZSBvZiB0aGUgcHJvY2VzcydzIHVuc2hhcmVkIGRhdGEgYXJlYSwgaW4gS2lsb2J5dGVzLgotKzxQPgotKwotKzwvUD4KLSs8RFQ+PENPREU+cDwvQ09ERT4KLSs8REQ+QXZlcmFnZSBzaXplIG9mIHRoZSBwcm9jZXNzJ3MgdW5zaGFyZWQgc3RhY2ssIGluIEtpbG9ieXRlcy4KLSs8UD4KLSsKLSs8L1A+Ci0rPERUPjxDT0RFPlg8L0NPREU+Ci0rPEREPkF2ZXJhZ2Ugc2l6ZSBvZiB0aGUgcHJvY2VzcydzIHNoYXJlZCB0ZXh0LCBpbiBLaWxvYnl0ZXMuCi0rPFA+Ci0rCi0rPC9QPgotKzxEVD48Q09ERT5aPC9DT0RFPgotKzxERD5TeXN0ZW0ncyBwYWdlIHNpemUsIGluIGJ5dGVzLiAgVGhpcyBpcyBhIHBlci1zeXN0ZW0gY29uc3RhbnQsIGJ1dAotK3ZhcmllcyBiZXR3ZWVuIHN5c3RlbXMuCi0rPC9ETD4KLSs8UD4KLSsKLSs8QSBOQU1FPSJJL08gUmVzb3VyY2VzIj48L0E+Ci0rPEhSIFNJWkU9IjYiPgotKzxBIE5BTUU9IlNFQzYiPjwvQT4KLSs8VEFCTEUgQ0VMTFBBRERJTkc9MSBDRUxMU1BBQ0lORz0xIEJPUkRFUj0wPgotKzxUUj48VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0idGltZS5odG1sI1NFQzUiPiAmbHQ7IDwvQT5dPC9URD4KLSs8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0idGltZS5odG1sI1NFQzciPiAmZ3Q7IDwvQT5dPC9URD4KLSs8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJ0aW1lLmh0bWwjU0VDMSI+ICZsdDsmbHQ7IDwvQT5dPC9URD4KLSs8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0idGltZS5odG1sI1NFQ19Ub3AiPiBVcCA8L0E+XTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WyAmZ3Q7Jmd0OyBdPC9URD4KLSs8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJ0aW1lLmh0bWwjU0VDX1RvcCI+VG9wPC9BPl08L1REPgotKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJ0aW1lLmh0bWwjU0VDX0NvbnRlbnRzIj5Db250ZW50czwvQT5dPC9URD4KLSs8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bSW5kZXhdPC9URD4KLSs8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0idGltZS5odG1sI1NFQ19BYm91dCI+ID8gPC9BPl08L1REPgotKzwvVFI+PC9UQUJMRT4KLSs8SDM+IDEuMi4zIEkvTyBSZXNvdXJjZXMgPC9IMz4KLSs8IS0tZG9jaWQ6OlNFQzY6Oi0tPgotKzxQPgotKwotKzwvUD4KLSs8REwgQ09NUEFDVD4KLSs8RFQ+PENPREU+RjwvQ09ERT4KLSs8REQ+TnVtYmVyIG9mIG1ham9yLCBvciBJL08tcmVxdWlyaW5nLCBwYWdlIGZhdWx0cyB0aGF0IG9jY3VycmVkIHdoaWxlIHRoZQotK3Byb2Nlc3Mgd2FzIHJ1bm5pbmcuICBUaGVzZSBhcmUgZmF1bHRzIHdoZXJlIHRoZSBwYWdlIGhhcyBhY3R1YWxseQotK21pZ3JhdGVkIG91dCBvZiBwcmltYXJ5IG1lbW9yeS4KLSs8UD4KLSsKLSs8L1A+Ci0rPERUPjxDT0RFPlI8L0NPREU+Ci0rPEREPk51bWJlciBvZiBtaW5vciwgb3IgcmVjb3ZlcmFibGUsIHBhZ2UgZmF1bHRzLiAgVGhlc2UgYXJlIHBhZ2VzIHRoYXQgYXJlCi0rbm90IHZhbGlkIChzbyB0aGV5IGZhdWx0KSBidXQgd2hpY2ggaGF2ZSBub3QgeWV0IGJlZW4gY2xhaW1lZCBieSBvdGhlcgotK3ZpcnR1YWwgcGFnZXMuICBUaHVzIHRoZSBkYXRhIGluIHRoZSBwYWdlIGlzIHN0aWxsIHZhbGlkIGJ1dCB0aGUgc3lzdGVtCi0rdGFibGVzIG11c3QgYmUgdXBkYXRlZC4KLSs8UD4KLSsKLSs8L1A+Ci0rPERUPjxDT0RFPlc8L0NPREU+Ci0rPEREPk51bWJlciBvZiB0aW1lcyB0aGUgcHJvY2VzcyB3YXMgc3dhcHBlZCBvdXQgb2YgbWFpbiBtZW1vcnkuCi0rPFA+Ci0rCi0rPC9QPgotKzxEVD48Q09ERT5jPC9DT0RFPgotKzxERD5OdW1iZXIgb2YgdGltZXMgdGhlIHByb2Nlc3Mgd2FzIGNvbnRleHQtc3dpdGNoZWQgaW52b2x1bnRhcmlseSAoYmVjYXVzZQotK3RoZSB0aW1lIHNsaWNlIGV4cGlyZWQpLgotKzxQPgotKwotKzwvUD4KLSs8RFQ+PENPREU+dzwvQ09ERT4KLSs8REQ+TnVtYmVyIG9mIHRpbWVzIHRoYXQgdGhlIHByb2dyYW0gd2FzIGNvbnRleHQtc3dpdGNoZWQgdm9sdW50YXJpbHksIGZvcgotK2luc3RhbmNlIHdoaWxlIHdhaXRpbmcgZm9yIGFuIEkvTyBvcGVyYXRpb24gdG8gY29tcGxldGUuCi0rPFA+Ci0rCi0rPC9QPgotKzxEVD48Q09ERT5JPC9DT0RFPgotKzxERD5OdW1iZXIgb2YgZmlsZSBzeXN0ZW0gaW5wdXRzIGJ5IHRoZSBwcm9jZXNzLgotKzxQPgotKwotKzwvUD4KLSs8RFQ+PENPREU+TzwvQ09ERT4KLSs8REQ+TnVtYmVyIG9mIGZpbGUgc3lzdGVtIG91dHB1dHMgYnkgdGhlIHByb2Nlc3MuCi0rPFA+Ci0rCi0rPC9QPgotKzxEVD48Q09ERT5yPC9DT0RFPgotKzxERD5OdW1iZXIgb2Ygc29ja2V0IG1lc3NhZ2VzIHJlY2VpdmVkIGJ5IHRoZSBwcm9jZXNzLgotKzxQPgotKwotKzwvUD4KLSs8RFQ+PENPREU+czwvQ09ERT4KLSs8REQ+TnVtYmVyIG9mIHNvY2tldCBtZXNzYWdlcyBzZW50IGJ5IHRoZSBwcm9jZXNzLgotKzxQPgotKwotKzwvUD4KLSs8RFQ+PENPREU+azwvQ09ERT4KLSs8REQ+TnVtYmVyIG9mIHNpZ25hbHMgZGVsaXZlcmVkIHRvIHRoZSBwcm9jZXNzLgotKzwvREw+Ci0rPFA+Ci0rCi0rPEEgTkFNRT0iQ29tbWFuZCBJbmZvIj48L0E+Ci0rPEhSIFNJWkU9IjYiPgotKzxBIE5BTUU9IlNFQzciPjwvQT4KLSs8VEFCTEUgQ0VMTFBBRERJTkc9MSBDRUxMU1BBQ0lORz0xIEJPUkRFUj0wPgotKzxUUj48VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0idGltZS5odG1sI1NFQzYiPiAmbHQ7IDwvQT5dPC9URD4KLSs8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0idGltZS5odG1sI1NFQzgiPiAmZ3Q7IDwvQT5dPC9URD4KLSs8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJ0aW1lLmh0bWwjU0VDMSI+ICZsdDsmbHQ7IDwvQT5dPC9URD4KLSs8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0idGltZS5odG1sI1NFQ19Ub3AiPiBVcCA8L0E+XTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WyAmZ3Q7Jmd0OyBdPC9URD4KLSs8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJ0aW1lLmh0bWwjU0VDX1RvcCI+VG9wPC9BPl08L1REPgotKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJ0aW1lLmh0bWwjU0VDX0NvbnRlbnRzIj5Db250ZW50czwvQT5dPC9URD4KLSs8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bSW5kZXhdPC9URD4KLSs8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0idGltZS5odG1sI1NFQ19BYm91dCI+ID8gPC9BPl08L1REPgotKzwvVFI+PC9UQUJMRT4KLSs8SDM+IDEuMi40IENvbW1hbmQgSW5mbyA8L0gzPgotKzwhLS1kb2NpZDo6U0VDNzo6LS0+Ci0rPFA+Ci0rCi0rPC9QPgotKzxETCBDT01QQUNUPgotKzxEVD48Q09ERT5DPC9DT0RFPgotKzxERD5OYW1lIGFuZCBjb21tYW5kIGxpbmUgYXJndW1lbnRzIG9mIHRoZSBjb21tYW5kIGJlaW5nIHRpbWVkLgotKzxQPgotKwotKzwvUD4KLSs8RFQ+PENPREU+eDwvQ09ERT4KLSs8REQ+RXhpdCBzdGF0dXMgb2YgdGhlIGNvbW1hbmQuCi0rPC9ETD4KLSs8UD4KLSsKLSs8QSBOQU1FPSJSZWRpcmVjdGluZyI+PC9BPgotKzxIUiBTSVpFPSI2Ij4KLSs8QSBOQU1FPSJTRUM4Ij48L0E+Ci0rPFRBQkxFIENFTExQQURESU5HPTEgQ0VMTFNQQUNJTkc9MSBCT1JERVI9MD4KLSs8VFI+PFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InRpbWUuaHRtbCNTRUM3Ij4gJmx0OyA8L0E+XTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InRpbWUuaHRtbCNTRUM5Ij4gJmd0OyA8L0E+XTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0idGltZS5odG1sI1NFQzEiPiAmbHQ7Jmx0OyA8L0E+XTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InRpbWUuaHRtbCNTRUNfVG9wIj4gVXAgPC9BPl08L1REPgotKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPlsgJmd0OyZndDsgXTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0idGltZS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KLSs8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0idGltZS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+W0luZGV4XTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InRpbWUuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KLSs8L1RSPjwvVEFCTEU+Ci0rPEgyPiAxLjMgUmVkaXJlY3RpbmcgT3V0cHV0IDwvSDI+Ci0rPCEtLWRvY2lkOjpTRUM4OjotLT4KLSs8UD4KLSsKLStCeSBkZWZhdWx0LCA8Q09ERT50aW1lPC9DT0RFPiB3cml0ZXMgdGhlIHJlc291cmNlIHVzZSBzdGF0aXN0aWNzIHRvIHRoZQotK3N0YW5kYXJkIGVycm9yIHN0cmVhbS4gIFRoZSBvcHRpb25zIGJlbG93IG1ha2UgaXQgd3JpdGUgdGhlIHN0YXRpc3RpY3MKLSt0byBhIGZpbGUgaW5zdGVhZC4gIERvaW5nIHRoaXMgY2FuIGJlIHVzZWZ1bCBpZiB0aGUgcHJvZ3JhbSB5b3UncmUKLStydW5uaW5nIHdyaXRlcyB0byB0aGUgc3RhbmRhcmQgZXJyb3Igb3IgeW91J3JlIHJ1bm5pbmcgPENPREU+dGltZTwvQ09ERT4KLStub25pbnRlcmFjdGl2ZWx5IG9yIGluIHRoZSBiYWNrZ3JvdW5kLgotKzwvUD4KLSs8UD4KLSsKLSs8L1A+Ci0rPERMIENPTVBBQ1Q+Ci0rPERUPjxDT0RFPi1vIDxWQVI+ZmlsZTwvVkFSPjwvQ09ERT4KLSs8REQ+PERUPjxDT0RFPi0tb3V0cHV0PTxWQVI+ZmlsZTwvVkFSPjwvQ09ERT4KLSs8REQ+V3JpdGUgdGhlIHJlc291cmNlIHVzZSBzdGF0aXN0aWNzIHRvIDxWQVI+ZmlsZTwvVkFSPi4gIEJ5IGRlZmF1bHQsIHRoaXMKLSs8RU0+b3ZlcndyaXRlczwvRU0+IHRoZSBmaWxlLCBkZXN0cm95aW5nIHRoZSBmaWxlJ3MgcHJldmlvdXMgY29udGVudHMuCi0rPFA+Ci0rCi0rPC9QPgotKzxEVD48Q09ERT4tYTwvQ09ERT4KLSs8REQ+PERUPjxDT0RFPi0tYXBwZW5kPC9DT0RFPgotKzxERD48RU0+QXBwZW5kPC9FTT4gdGhlIHJlc291cmNlIHVzZSBpbmZvcm1hdGlvbiB0byB0aGUgb3V0cHV0IGZpbGUgaW5zdGVhZAotK29mIG92ZXJ3cml0aW5nIGl0LiAgVGhpcyBvcHRpb24gaXMgb25seSB1c2VmdWwgd2l0aCB0aGUgYDxTQU1QPi1vPC9TQU1QPicgb3IKLStgPFNBTVA+LS1vdXRwdXQ8L1NBTVA+JyBvcHRpb24uCi0rPC9ETD4KLSs8UD4KLSsKLSs8QSBOQU1FPSJFeGFtcGxlcyI+PC9BPgotKzxIUiBTSVpFPSI2Ij4KLSs8QSBOQU1FPSJTRUM5Ij48L0E+Ci0rPFRBQkxFIENFTExQQURESU5HPTEgQ0VMTFNQQUNJTkc9MSBCT1JERVI9MD4KLSs8VFI+PFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InRpbWUuaHRtbCNTRUM4Ij4gJmx0OyA8L0E+XTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InRpbWUuaHRtbCNTRUMxMCI+ICZndDsgPC9BPl08L1REPgotKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InRpbWUuaHRtbCNTRUMxIj4gJmx0OyZsdDsgPC9BPl08L1REPgotKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJ0aW1lLmh0bWwjU0VDX1RvcCI+IFVwIDwvQT5dPC9URD4KLSs8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bICZndDsmZ3Q7IF08L1REPgotKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InRpbWUuaHRtbCNTRUNfVG9wIj5Ub3A8L0E+XTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InRpbWUuaHRtbCNTRUNfQ29udGVudHMiPkNvbnRlbnRzPC9BPl08L1REPgotKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPltJbmRleF08L1REPgotKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJ0aW1lLmh0bWwjU0VDX0Fib3V0Ij4gPyA8L0E+XTwvVEQ+Ci0rPC9UUj48L1RBQkxFPgotKzxIMj4gMS40IEV4YW1wbGVzIDwvSDI+Ci0rPCEtLWRvY2lkOjpTRUM5OjotLT4KLSs8UD4KLSsKLStSdW4gdGhlIGNvbW1hbmQgYDxTQU1QPndjIC9ldGMvaG9zdHM8L1NBTVA+JyBhbmQgc2hvdyB0aGUgZGVmYXVsdCBpbmZvcm1hdGlvbjoKLSs8L1A+Ci0rPFA+Ci0rCi0rPFRBQkxFPjx0cj48dGQ+Jm5ic3A7PC90ZD48dGQgY2xhc3M9ZXhhbXBsZT48cHJlPmVnJCB0aW1lIHdjIC9ldGMvaG9zdHMKLSsgICAgICAzNSAgICAgMTExICAgIDExMzQgL2V0Yy9ob3N0cwotKzAuMDB1c2VyIDAuMDFzeXN0ZW0gMDowMC4wNGVsYXBzZWQgMjUlQ1BVICgwYXZndGV4dCswYXZnZGF0YSAwbWF4cmVzaWRlbnQpawotKzFpbnB1dHMrMW91dHB1dHMgKDBtYWpvciswbWlub3IpcGFnZWZhdWx0cyAwc3dhcHMKLSs8L3ByZT48L3RkPjwvdHI+PC90YWJsZT48UD4KLSsKLStSdW4gdGhlIGNvbW1hbmQgYDxTQU1QPmxzIC1GczwvU0FNUD4nIGFuZCBzaG93IGp1c3QgdGhlIHVzZXIsIHN5c3RlbSwgYW5kCi0rd2FsbC1jbG9jayB0aW1lOgotKzwvUD4KLSs8UD4KLSsKLSs8VEFCTEU+PHRyPjx0ZD4mbmJzcDs8L3RkPjx0ZCBjbGFzcz1leGFtcGxlPjxwcmU+ZWckIHRpbWUgLWYgJnF1b3Q7XHQlRSByZWFsLFx0JVUgdXNlcixcdCVTIHN5cyZxdW90OyBscyAtRnMKLSt0b3RhbCAxNgotKzEgYWNjb3VudC8gICAgICAxIGRiLyAgICAgICAgICAgMSBtYWlsLyAgICAgICAgIDEgcnVuLwotKzEgYmFja3Vwcy8gICAgICAxIGVtYWNzLyAgICAgICAgMSBtc2dzLyAgICAgICAgIDEgcndoby8KLSsxIGNyYXNoLyAgICAgICAgMSBnYW1lcy8gICAgICAgIDEgcHJlc2VydmUvICAgICAxIHNwb29sLwotKzEgY3Jvbi8gICAgICAgICAxIGxvZy8gICAgICAgICAgMSBxdW90YXMvICAgICAgIDEgdG1wLwotKyAgICAgICAgMDowMC4wMyByZWFsLCAgIDAuMDAgdXNlciwgICAgICAwLjAxIHN5cwotKzwvcHJlPjwvdGQ+PC90cj48L3RhYmxlPjxQPgotKwotK0VkaXQgdGhlIGZpbGUgYDxUVD4uYmFzaHJjPC9UVD4nIGFuZCBoYXZlIDxDT0RFPnRpbWU8L0NPREU+IGFwcGVuZCB0aGUgZWxhcHNlZCB0aW1lCi0rYW5kIG51bWJlciBvZiBzaWduYWxzIHRvIHRoZSBmaWxlIGA8VFQ+bG9nPC9UVD4nLCByZWFkaW5nIHRoZSBmb3JtYXQgc3RyaW5nCi0rZnJvbSB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgPENPREU+VElNRTwvQ09ERT46Ci0rPC9QPgotKzxQPgotKwotKzxUQUJMRT48dHI+PHRkPiZuYnNwOzwvdGQ+PHRkIGNsYXNzPWV4YW1wbGU+PHByZT5lZyQgZXhwb3J0IFRJTUU9JnF1b3Q7XHQlRSxcdCVrJnF1b3Q7ICMgSWYgdXNpbmcgYmFzaCBvciBrc2gKLStlZyQgc2V0ZW52IFRJTUUgJnF1b3Q7XHQlRSxcdCVrJnF1b3Q7ICMgSWYgdXNpbmcgY3NoIG9yIHRjc2gKLStlZyQgdGltZSAtYSAtbyBsb2cgZW1hY3MgLmJhc2hyYwotK2VnJCBjYXQgbG9nCi0rICAgICAgICAwOjE2LjU1LCAgICAgICAgNzI2Ci0rPC9wcmU+PC90ZD48L3RyPjwvdGFibGU+PFA+Ci0rCi0rUnVuIHRoZSBjb21tYW5kIGA8U0FNUD5zbGVlcCA0PC9TQU1QPicgYW5kIHNob3cgYWxsIG9mIHRoZSBpbmZvcm1hdGlvbiBhYm91dCBpdAotK3ZlcmJvc2VseToKLSs8L1A+Ci0rPFA+Ci0rCi0rPFRBQkxFPjx0cj48dGQ+Jm5ic3A7PC90ZD48dGQgY2xhc3M9ZXhhbXBsZT48cHJlPmVnJCB0aW1lIC12IHNsZWVwIDQKLSsgICAgICAgIENvbW1hbmQgYmVpbmcgdGltZWQ6ICZxdW90O3NsZWVwIDQmcXVvdDsKLSsgICAgICAgIFVzZXIgdGltZSAoc2Vjb25kcyk6IDAuMDAKLSsgICAgICAgIFN5c3RlbSB0aW1lIChzZWNvbmRzKTogMC4wNQotKyAgICAgICAgUGVyY2VudCBvZiBDUFUgdGhpcyBqb2IgZ290OiAxJQotKyAgICAgICAgRWxhcHNlZCAod2FsbCBjbG9jaykgdGltZSAoaDptbTpzcyBvciBtOnNzKTogMDowNC4yNgotKyAgICAgICAgQXZlcmFnZSBzaGFyZWQgdGV4dCBzaXplIChrYnl0ZXMpOiAzNgotKyAgICAgICAgQXZlcmFnZSB1bnNoYXJlZCBkYXRhIHNpemUgKGtieXRlcyk6IDI0Ci0rICAgICAgICBBdmVyYWdlIHN0YWNrIHNpemUgKGtieXRlcyk6IDAKLSsgICAgICAgIEF2ZXJhZ2UgdG90YWwgc2l6ZSAoa2J5dGVzKTogNjAKLSsgICAgICAgIE1heGltdW0gcmVzaWRlbnQgc2V0IHNpemUgKGtieXRlcyk6IDMyCi0rICAgICAgICBBdmVyYWdlIHJlc2lkZW50IHNldCBzaXplIChrYnl0ZXMpOiAyNAotKyAgICAgICAgTWFqb3IgKHJlcXVpcmluZyBJL08pIHBhZ2UgZmF1bHRzOiAzCi0rICAgICAgICBNaW5vciAocmVjbGFpbWluZyBhIGZyYW1lKSBwYWdlIGZhdWx0czogMAotKyAgICAgICAgVm9sdW50YXJ5IGNvbnRleHQgc3dpdGNoZXM6IDExCi0rICAgICAgICBJbnZvbHVudGFyeSBjb250ZXh0IHN3aXRjaGVzOiAwCi0rICAgICAgICBTd2FwczogMAotKyAgICAgICAgRmlsZSBzeXN0ZW0gaW5wdXRzOiAzCi0rICAgICAgICBGaWxlIHN5c3RlbSBvdXRwdXRzOiAxCi0rICAgICAgICBTb2NrZXQgbWVzc2FnZXMgc2VudDogMAotKyAgICAgICAgU29ja2V0IG1lc3NhZ2VzIHJlY2VpdmVkOiAwCi0rICAgICAgICBTaWduYWxzIGRlbGl2ZXJlZDogMQotKyAgICAgICAgUGFnZSBzaXplIChieXRlcyk6IDQwOTYKLSsgICAgICAgIEV4aXQgc3RhdHVzOiAwCi0rPC9wcmU+PC90ZD48L3RyPjwvdGFibGU+PFA+Ci0rCi0rPEEgTkFNRT0iQWNjdXJhY3kiPjwvQT4KLSs8SFIgU0laRT0iNiI+Ci0rPEEgTkFNRT0iU0VDMTAiPjwvQT4KLSs8VEFCTEUgQ0VMTFBBRERJTkc9MSBDRUxMU1BBQ0lORz0xIEJPUkRFUj0wPgotKzxUUj48VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0idGltZS5odG1sI1NFQzkiPiAmbHQ7IDwvQT5dPC9URD4KLSs8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0idGltZS5odG1sI1NFQzExIj4gJmd0OyA8L0E+XTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0idGltZS5odG1sI1NFQzEiPiAmbHQ7Jmx0OyA8L0E+XTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InRpbWUuaHRtbCNTRUNfVG9wIj4gVXAgPC9BPl08L1REPgotKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPlsgJmd0OyZndDsgXTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0idGltZS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KLSs8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0idGltZS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+W0luZGV4XTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InRpbWUuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KLSs8L1RSPjwvVEFCTEU+Ci0rPEgyPiAxLjUgQWNjdXJhY3kgPC9IMj4KLSs8IS0tZG9jaWQ6OlNFQzEwOjotLT4KLSs8UD4KLSsKLStUaGUgZWxhcHNlZCB0aW1lIGlzIG5vdCBjb2xsZWN0ZWQgYXRvbWljYWxseSB3aXRoIHRoZSBleGVjdXRpb24gb2YgdGhlCi0rcHJvZ3JhbTsgYXMgYSByZXN1bHQsIGluIGJpemFycmUgY2lyY3Vtc3RhbmNlcyAoaWYgdGhlIDxDT0RFPnRpbWU8L0NPREU+Ci0rY29tbWFuZCBnZXRzIHN0b3BwZWQgb3Igc3dhcHBlZCBvdXQgaW4gYmV0d2VlbiB3aGVuIHRoZSBwcm9ncmFtIGJlaW5nCi0rdGltZWQgZXhpdHMgYW5kIHdoZW4gPENPREU+dGltZTwvQ09ERT4gY2FsY3VsYXRlcyBob3cgbG9uZyBpdCB0b29rIHRvIHJ1biksIGl0Ci0rY291bGQgYmUgbXVjaCBsYXJnZXIgdGhhbiB0aGUgYWN0dWFsIGV4ZWN1dGlvbiB0aW1lLgotKzwvUD4KLSs8UD4KLSsKLStXaGVuIHRoZSBydW5uaW5nIHRpbWUgb2YgYSBjb21tYW5kIGlzIHZlcnkgbmVhcmx5IHplcm8sIHNvbWUgdmFsdWVzCi0rKGUuZy4sIHRoZSBwZXJjZW50YWdlIG9mIENQVSB1c2VkKSBtYXkgYmUgcmVwb3J0ZWQgYXMgZWl0aGVyIHplcm8gKHdoaWNoCi0raXMgd3JvbmcpIG9yIGEgcXVlc3Rpb24gbWFyay4KLSs8L1A+Ci0rPFA+Ci0rCi0rTW9zdCBpbmZvcm1hdGlvbiBzaG93biBieSA8Q09ERT50aW1lPC9DT0RFPiBpcyBkZXJpdmVkIGZyb20gdGhlIDxDT0RFPndhaXQzPC9DT0RFPgotK3N5c3RlbSBjYWxsLiAgVGhlIG51bWJlcnMgYXJlIG9ubHkgYXMgZ29vZCBhcyB0aG9zZSByZXR1cm5lZCBieQotKzxDT0RFPndhaXQzPC9DT0RFPi4gIE1hbnkgc3lzdGVtcyBkbyBub3QgbWVhc3VyZSBhbGwgb2YgdGhlIHJlc291cmNlcyB0aGF0Ci0rPENPREU+dGltZTwvQ09ERT4gY2FuIHJlcG9ydCBvbjsgdGhvc2UgcmVzb3VyY2VzIGFyZSByZXBvcnRlZCBhcyB6ZXJvLiAgVGhlCi0rc3lzdGVtcyB0aGF0IG1lYXN1cmUgbW9zdCBvciBhbGwgb2YgdGhlIHJlc291cmNlcyBhcmUgYmFzZWQgb24gNC4yIG9yCi0rNC4zQlNELiAgTGF0ZXIgQlNEIHJlbGVhc2VzIHVzZSBkaWZmZXJlbnQgbWVtb3J5IG1hbmFnZW1lbnQgY29kZSB0aGF0Ci0rbWVhc3VyZXMgZmV3ZXIgcmVzb3VyY2VzLgotKzwvUD4KLSs8UD4KLSsKLStPbiBzeXN0ZW1zIHRoYXQgZG8gbm90IGhhdmUgYSA8Q09ERT53YWl0MzwvQ09ERT4gY2FsbCB0aGF0IHJldHVybnMgc3RhdHVzCi0raW5mb3JtYXRpb24sIHRoZSA8Q09ERT50aW1lczwvQ09ERT4gc3lzdGVtIGNhbGwgaXMgdXNlZCBpbnN0ZWFkLiAgSXQgcHJvdmlkZXMKLSttdWNoIGxlc3MgaW5mb3JtYXRpb24gdGhhbiA8Q09ERT53YWl0MzwvQ09ERT4sIHNvIG9uIHRob3NlIHN5c3RlbXMgPENPREU+dGltZTwvQ09ERT4KLStyZXBvcnRzIG1vc3Qgb2YgdGhlIHJlc291cmNlcyBhcyB6ZXJvLgotKzwvUD4KLSs8UD4KLSsKLStUaGUgYDxTQU1QPiVJPC9TQU1QPicgYW5kIGA8U0FNUD4lTzwvU0FNUD4nIHZhbHVlcyBhcmUgYWxsZWdlZGx5IG9ubHkgJnF1b3Q7cmVhbCZxdW90OyBpbnB1dAotK2FuZCBvdXRwdXQgYW5kIGRvIG5vdCBpbmNsdWRlIHRob3NlIHN1cHBsaWVkIGJ5IGNhY2hpbmcgZGV2aWNlcy4gIFRoZQotK21lYW5pbmcgb2YgJnF1b3Q7cmVhbCZxdW90OyBJL08gcmVwb3J0ZWQgYnkgYDxTQU1QPiVJPC9TQU1QPicgYW5kIGA8U0FNUD4lTzwvU0FNUD4nIG1heSBiZQotK211ZGRsZWQgZm9yIHdvcmtzdGF0aW9ucywgZXNwZWNpYWxseSBkaXNrbGVzcyBvbmVzLgotKzwvUD4KLSs8UD4KLSsKLSs8QSBOQU1FPSJJbnZva2luZyB0aW1lIj48L0E+Ci0rPEhSIFNJWkU9IjYiPgotKzxBIE5BTUU9IlNFQzExIj48L0E+Ci0rPFRBQkxFIENFTExQQURESU5HPTEgQ0VMTFNQQUNJTkc9MSBCT1JERVI9MD4KLSs8VFI+PFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InRpbWUuaHRtbCNTRUMxMCI+ICZsdDsgPC9BPl08L1REPgotKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPlsgJmd0OyBdPC9URD4KLSs8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJ0aW1lLmh0bWwjU0VDMSI+ICZsdDsmbHQ7IDwvQT5dPC9URD4KLSs8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0idGltZS5odG1sI1NFQ19Ub3AiPiBVcCA8L0E+XTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WyAmZ3Q7Jmd0OyBdPC9URD4KLSs8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJ0aW1lLmh0bWwjU0VDX1RvcCI+VG9wPC9BPl08L1REPgotKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJ0aW1lLmh0bWwjU0VDX0NvbnRlbnRzIj5Db250ZW50czwvQT5dPC9URD4KLSs8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bSW5kZXhdPC9URD4KLSs8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0idGltZS5odG1sI1NFQ19BYm91dCI+ID8gPC9BPl08L1REPgotKzwvVFI+PC9UQUJMRT4KLSs8SDI+IDEuNiBSdW5uaW5nIHRoZSA8Q09ERT50aW1lPC9DT0RFPiBDb21tYW5kIDwvSDI+Ci0rPCEtLWRvY2lkOjpTRUMxMTo6LS0+Ci0rPFA+Ci0rCi0rVGhlIGZvcm1hdCBvZiB0aGUgPENPREU+dGltZTwvQ09ERT4gY29tbWFuZCBpczoKLSs8L1A+Ci0rPFA+Ci0rCi0rPFRBQkxFPjx0cj48dGQ+Jm5ic3A7PC90ZD48dGQgY2xhc3M9ZXhhbXBsZT48cHJlPnRpbWUgW29wdGlvbjxzbWFsbD4uLi48L3NtYWxsPl0gPFZBUj5jb21tYW5kPC9WQVI+IFs8VkFSPmFyZzwvVkFSPjxzbWFsbD4uLi48L3NtYWxsPl0KLSs8L3ByZT48L3RkPjwvdHI+PC90YWJsZT48UD4KLSsKLSs8QSBOQU1FPSJJRFg1Ij48L0E+Ci0rPENPREU+dGltZTwvQ09ERT4gcnVucyB0aGUgcHJvZ3JhbSA8VkFSPmNvbW1hbmQ8L1ZBUj4sIHdpdGggYW55IGdpdmVuIGFyZ3VtZW50cwotKzxWQVI+YXJnPC9WQVI+PHNtYWxsPi4uLjwvc21hbGw+LiAgV2hlbiA8VkFSPmNvbW1hbmQ8L1ZBUj4gZmluaXNoZXMsIDxDT0RFPnRpbWU8L0NPREU+IGRpc3BsYXlzCi0raW5mb3JtYXRpb24gYWJvdXQgcmVzb3VyY2VzIHVzZWQgYnkgPFZBUj5jb21tYW5kPC9WQVI+IChvbiB0aGUgc3RhbmRhcmQgZXJyb3IKLStvdXRwdXQsIGJ5IGRlZmF1bHQpLiAgSWYgPFZBUj5jb21tYW5kPC9WQVI+IGV4aXRzIHdpdGggbm9uLXplcm8gc3RhdHVzIG9yIGlzCi0rdGVybWluYXRlZCBieSBhIHNpZ25hbCwgPENPREU+dGltZTwvQ09ERT4gZGlzcGxheXMgYSB3YXJuaW5nIG1lc3NhZ2UgYW5kIHRoZQotK2V4aXQgc3RhdHVzIG9yIHNpZ25hbCBudW1iZXIuCi0rPC9QPgotKzxQPgotKwotK09wdGlvbnMgdG8gPENPREU+dGltZTwvQ09ERT4gbXVzdCBhcHBlYXIgb24gdGhlIGNvbW1hbmQgbGluZSBiZWZvcmUKLSs8VkFSPmNvbW1hbmQ8L1ZBUj4uICBBbnl0aGluZyBvbiB0aGUgY29tbWFuZCBsaW5lIGFmdGVyIDxWQVI+Y29tbWFuZDwvVkFSPiBpcwotK3Bhc3NlZCBhcyBhcmd1bWVudHMgdG8gPFZBUj5jb21tYW5kPC9WQVI+LgotKzwvUD4KLSs8UD4KLSsKLSs8L1A+Ci0rPERMIENPTVBBQ1Q+Ci0rPERUPjxDT0RFPi1vIDxWQVI+ZmlsZTwvVkFSPjwvQ09ERT4KLSs8REQ+PERUPjxDT0RFPi0tb3V0cHV0PTxWQVI+ZmlsZTwvVkFSPjwvQ09ERT4KLSs8REQ+V3JpdGUgdGhlIHJlc291cmNlIHVzZSBzdGF0aXN0aWNzIHRvIDxWQVI+ZmlsZTwvVkFSPi4KLSs8UD4KLSsKLSs8L1A+Ci0rPERUPjxDT0RFPi1hPC9DT0RFPgotKzxERD48RFQ+PENPREU+LS1hcHBlbmQ8L0NPREU+Ci0rPEREPjxFTT5BcHBlbmQ8L0VNPiB0aGUgcmVzb3VyY2UgdXNlIGluZm9ybWF0aW9uIHRvIHRoZSBvdXRwdXQgZmlsZSBpbnN0ZWFkCi0rb2Ygb3ZlcndyaXRpbmcgaXQuCi0rPFA+Ci0rCi0rPC9QPgotKzxEVD48Q09ERT4tZiA8VkFSPmZvcm1hdDwvVkFSPjwvQ09ERT4KLSs8REQ+PERUPjxDT0RFPi0tZm9ybWF0PTxWQVI+Zm9ybWF0PC9WQVI+PC9DT0RFPgotKzxERD5Vc2UgPFZBUj5mb3JtYXQ8L1ZBUj4gYXMgdGhlIGZvcm1hdCBzdHJpbmcuCi0rPFA+Ci0rCi0rPC9QPgotKzxEVD48Q09ERT4tLWhlbHA8L0NPREU+Ci0rPEREPlByaW50IGEgc3VtbWFyeSBvZiB0aGUgY29tbWFuZCBsaW5lIG9wdGlvbnMgdG8gPENPREU+dGltZTwvQ09ERT4gYW5kIGV4aXQuCi0rPFA+Ci0rCi0rPC9QPgotKzxEVD48Q09ERT4tcDwvQ09ERT4KLSs8REQ+PERUPjxDT0RFPi0tcG9ydGFiaWxpdHk8L0NPREU+Ci0rPEREPlVzZSB0aGUgUE9TSVggZm9ybWF0LgotKzxQPgotKwotKzwvUD4KLSs8RFQ+PENPREU+LXY8L0NPREU+Ci0rPEREPjxEVD48Q09ERT4tLXZlcmJvc2U8L0NPREU+Ci0rPEREPjxBIE5BTUU9IklEWDYiPjwvQT4KLStVc2UgdGhlIGJ1aWx0LWluIHZlcmJvc2UgZm9ybWF0LgotKzxQPgotKwotKzwvUD4KLSs8RFQ+PENPREU+LVY8L0NPREU+Ci0rPEREPjxEVD48Q09ERT4tLXZlcnNpb248L0NPREU+Ci0rPEREPjxBIE5BTUU9IklEWDciPjwvQT4KLStQcmludCB0aGUgdmVyc2lvbiBudW1iZXIgb2YgPENPREU+dGltZTwvQ09ERT4gYW5kIGV4aXQuCi0rPC9ETD4KLSs8UD4KLSsKLSs8SFIgU0laRT0iNiI+Ci0rPEEgTkFNRT0iU0VDX0NvbnRlbnRzIj48L0E+Ci0rPFRBQkxFIENFTExQQURESU5HPTEgQ0VMTFNQQUNJTkc9MSBCT1JERVI9MD4KLSs8VFI+PFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InRpbWUuaHRtbCNTRUNfVG9wIj5Ub3A8L0E+XTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InRpbWUuaHRtbCNTRUNfQ29udGVudHMiPkNvbnRlbnRzPC9BPl08L1REPgotKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPltJbmRleF08L1REPgotKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJ0aW1lLmh0bWwjU0VDX0Fib3V0Ij4gPyA8L0E+XTwvVEQ+Ci0rPC9UUj48L1RBQkxFPgotKzxIMT5UYWJsZSBvZiBDb250ZW50czwvSDE+Ci0rPEJMT0NLUVVPVEU+Ci0rPEEgTkFNRT0iVE9DMSIgSFJFRj0idGltZS5odG1sI1NFQzEiPjEuIE1lYXN1cmluZyBQcm9ncmFtIFJlc291cmNlIFVzZTwvQT4KLSs8QlI+Ci0rPEJMT0NLUVVPVEU+Ci0rPEEgTkFNRT0iVE9DMiIgSFJFRj0idGltZS5odG1sI1NFQzIiPjEuMSBTZXR0aW5nIHRoZSBPdXRwdXQgRm9ybWF0PC9BPgotKzxCUj4KLSs8QSBOQU1FPSJUT0MzIiBIUkVGPSJ0aW1lLmh0bWwjU0VDMyI+MS4yIFRoZSBGb3JtYXQgU3RyaW5nPC9BPgotKzxCUj4KLSs8QkxPQ0tRVU9URT4KLSs8QSBOQU1FPSJUT0M0IiBIUkVGPSJ0aW1lLmh0bWwjU0VDNCI+MS4yLjEgVGltZSBSZXNvdXJjZXM8L0E+Ci0rPEJSPgotKzxBIE5BTUU9IlRPQzUiIEhSRUY9InRpbWUuaHRtbCNTRUM1Ij4xLjIuMiBNZW1vcnkgUmVzb3VyY2VzPC9BPgotKzxCUj4KLSs8QSBOQU1FPSJUT0M2IiBIUkVGPSJ0aW1lLmh0bWwjU0VDNiI+MS4yLjMgSS9PIFJlc291cmNlczwvQT4KLSs8QlI+Ci0rPEEgTkFNRT0iVE9DNyIgSFJFRj0idGltZS5odG1sI1NFQzciPjEuMi40IENvbW1hbmQgSW5mbzwvQT4KLSs8QlI+Ci0rPC9CTE9DS1FVT1RFPgotKzxBIE5BTUU9IlRPQzgiIEhSRUY9InRpbWUuaHRtbCNTRUM4Ij4xLjMgUmVkaXJlY3RpbmcgT3V0cHV0PC9BPgotKzxCUj4KLSs8QSBOQU1FPSJUT0M5IiBIUkVGPSJ0aW1lLmh0bWwjU0VDOSI+MS40IEV4YW1wbGVzPC9BPgotKzxCUj4KLSs8QSBOQU1FPSJUT0MxMCIgSFJFRj0idGltZS5odG1sI1NFQzEwIj4xLjUgQWNjdXJhY3k8L0E+Ci0rPEJSPgotKzxBIE5BTUU9IlRPQzExIiBIUkVGPSJ0aW1lLmh0bWwjU0VDMTEiPjEuNiBSdW5uaW5nIHRoZSA8Q09ERT50aW1lPC9DT0RFPiBDb21tYW5kPC9BPgotKzxCUj4KLSs8L0JMT0NLUVVPVEU+Ci0rPC9CTE9DS1FVT1RFPgotKzxIUiBTSVpFPTE+Ci0rPEEgTkFNRT0iU0VDX09WRVJWSUVXIj48L0E+Ci0rPFRBQkxFIENFTExQQURESU5HPTEgQ0VMTFNQQUNJTkc9MSBCT1JERVI9MD4KLSs8VFI+PFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InRpbWUuaHRtbCNTRUNfVG9wIj5Ub3A8L0E+XTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InRpbWUuaHRtbCNTRUNfQ29udGVudHMiPkNvbnRlbnRzPC9BPl08L1REPgotKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPltJbmRleF08L1REPgotKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJ0aW1lLmh0bWwjU0VDX0Fib3V0Ij4gPyA8L0E+XTwvVEQ+Ci0rPC9UUj48L1RBQkxFPgotKzxIMT5TaG9ydCBUYWJsZSBvZiBDb250ZW50czwvSDE+Ci0rPEJMT0NLUVVPVEU+Ci0rPEEgTkFNRT0iVE9DMSIgSFJFRj0idGltZS5odG1sI1NFQzEiPjEuIE1lYXN1cmluZyBQcm9ncmFtIFJlc291cmNlIFVzZTwvQT4KLSs8QlI+Ci0rCi0rPC9CTE9DS1FVT1RFPgotKzxIUiBTSVpFPTE+Ci0rPEEgTkFNRT0iU0VDX0Fib3V0Ij48L0E+Ci0rPFRBQkxFIENFTExQQURESU5HPTEgQ0VMTFNQQUNJTkc9MSBCT1JERVI9MD4KLSs8VFI+PFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InRpbWUuaHRtbCNTRUNfVG9wIj5Ub3A8L0E+XTwvVEQ+Ci0rPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InRpbWUuaHRtbCNTRUNfQ29udGVudHMiPkNvbnRlbnRzPC9BPl08L1REPgotKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPltJbmRleF08L1REPgotKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJ0aW1lLmh0bWwjU0VDX0Fib3V0Ij4gPyA8L0E+XTwvVEQ+Ci0rPC9UUj48L1RBQkxFPgotKzxIMT5BYm91dCB0aGlzIGRvY3VtZW50PC9IMT4KLStUaGlzIGRvY3VtZW50IHdhcyBnZW5lcmF0ZWQKLStieSAKLSt1c2luZyA8QSBIUkVGPSJodHRwOi8vdGV4aTJodG1sLmN2c2hvbWUub3JnIj48ST50ZXhpMmh0bWw8L0k+PC9BPgotKzxQPjwvUD4KLStUaGUgYnV0dG9ucyBpbiB0aGUgbmF2aWdhdGlvbiBwYW5lbHMgaGF2ZSB0aGUgZm9sbG93aW5nIG1lYW5pbmc6Ci0rPFA+PC9QPgotKzx0YWJsZSBib3JkZXIgPSAiMSI+Ci0rPFRSPgotKzxUSD4gQnV0dG9uIDwvVEg+Ci0rPFRIPiBOYW1lIDwvVEg+Ci0rPFRIPiBHbyB0byA8L1RIPgotKzxUSD4gRnJvbSAxLjIuMyBnbyB0bzwvVEg+Ci0rPC9UUj4KLSs8VFI+Ci0rPFREIEFMSUdOPSJDRU5URVIiPgotKyBbICZsdDsgXSA8L1REPgotKzxURCBBTElHTj0iQ0VOVEVSIj4KLStCYWNrCi0rPC9URD4KLSs8VEQ+Ci0rcHJldmlvdXMgc2VjdGlvbiBpbiByZWFkaW5nIG9yZGVyCi0rPC9URD4KLSs8VEQ+Ci0rMS4yLjIKLSs8L1REPgotKzwvVFI+Ci0rPFRSPgotKzxURCBBTElHTj0iQ0VOVEVSIj4KLSsgWyAmZ3Q7IF0gPC9URD4KLSs8VEQgQUxJR049IkNFTlRFUiI+Ci0rRm9yd2FyZAotKzwvVEQ+Ci0rPFREPgotK25leHQgc2VjdGlvbiBpbiByZWFkaW5nIG9yZGVyCi0rPC9URD4KLSs8VEQ+Ci0rMS4yLjQKLSs8L1REPgotKzwvVFI+Ci0rPFRSPgotKzxURCBBTElHTj0iQ0VOVEVSIj4KLSsgWyAmbHQ7Jmx0OyBdIDwvVEQ+Ci0rPFREIEFMSUdOPSJDRU5URVIiPgotK0Zhc3RCYWNrCi0rPC9URD4KLSs8VEQ+Ci0rYmVnaW5uaW5nIG9mIHRoaXMgY2hhcHRlciBvciBwcmV2aW91cyBjaGFwdGVyCi0rPC9URD4KLSs8VEQ+Ci0rMQotKzwvVEQ+Ci0rPC9UUj4KLSs8VFI+Ci0rPFREIEFMSUdOPSJDRU5URVIiPgotKyBbIFVwIF0gPC9URD4KLSs8VEQgQUxJR049IkNFTlRFUiI+Ci0rVXAKLSs8L1REPgotKzxURD4KLSt1cCBzZWN0aW9uCi0rPC9URD4KLSs8VEQ+Ci0rMS4yCi0rPC9URD4KLSs8L1RSPgotKzxUUj4KLSs8VEQgQUxJR049IkNFTlRFUiI+Ci0rIFsgJmd0OyZndDsgXSA8L1REPgotKzxURCBBTElHTj0iQ0VOVEVSIj4KLStGYXN0Rm9yd2FyZAotKzwvVEQ+Ci0rPFREPgotK25leHQgY2hhcHRlcgotKzwvVEQ+Ci0rPFREPgotKzIKLSs8L1REPgotKzwvVFI+Ci0rPFRSPgotKzxURCBBTElHTj0iQ0VOVEVSIj4KLSsgW1RvcF0gPC9URD4KLSs8VEQgQUxJR049IkNFTlRFUiI+Ci0rVG9wCi0rPC9URD4KLSs8VEQ+Ci0rY292ZXIgKHRvcCkgb2YgZG9jdW1lbnQKLSs8L1REPgotKzxURD4KLSsgJm5ic3A7IAotKzwvVEQ+Ci0rPC9UUj4KLSs8VFI+Ci0rPFREIEFMSUdOPSJDRU5URVIiPgotKyBbQ29udGVudHNdIDwvVEQ+Ci0rPFREIEFMSUdOPSJDRU5URVIiPgotK0NvbnRlbnRzCi0rPC9URD4KLSs8VEQ+Ci0rdGFibGUgb2YgY29udGVudHMKLSs8L1REPgotKzxURD4KLSsgJm5ic3A7IAotKzwvVEQ+Ci0rPC9UUj4KLSs8VFI+Ci0rPFREIEFMSUdOPSJDRU5URVIiPgotKyBbSW5kZXhdIDwvVEQ+Ci0rPFREIEFMSUdOPSJDRU5URVIiPgotK0luZGV4Ci0rPC9URD4KLSs8VEQ+Ci0rY29uY2VwdCBpbmRleAotKzwvVEQ+Ci0rPFREPgotKyAmbmJzcDsgCi0rPC9URD4KLSs8L1RSPgotKzxUUj4KLSs8VEQgQUxJR049IkNFTlRFUiI+Ci0rIFsgPyBdIDwvVEQ+Ci0rPFREIEFMSUdOPSJDRU5URVIiPgotK0Fib3V0Ci0rPC9URD4KLSs8VEQ+Ci0rdGhpcyBwYWdlCi0rPC9URD4KLSs8VEQ+Ci0rICZuYnNwOyAKLSs8L1REPgotKzwvVFI+Ci0rPC9UQUJMRT4KLSsgICAgPFA+Ci0rICAgICAgd2hlcmUgdGhlIDxTVFJPTkc+IEV4YW1wbGUgPC9TVFJPTkc+IGFzc3VtZXMgdGhhdCB0aGUgY3VycmVudCBwb3NpdGlvbgotKyAgICAgIGlzIGF0IDxTVFJPTkc+IFN1YnN1YnNlY3Rpb24gT25lLVR3by1UaHJlZSA8L1NUUk9ORz4gb2YgYSBkb2N1bWVudCBvZgotKyAgICAgIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlOjwvUD4KLSsgICAgPFVMPgotKyAgICAgIDxMST4gMS4gU2VjdGlvbiBPbmUKLSsgICAgICAgIDxVTD4KLSsgICAgICAgICAgPExJPjEuMSBTdWJzZWN0aW9uIE9uZS1PbmUKLSsgICAgICAgICAgICA8VUw+Ci0rICAgICAgICAgICAgICA8TEk+Li4uPC9MST4KLSsgICAgICAgICAgICA8L1VMPgotKyAgICAgICAgICA8TEk+MS4yIFN1YnNlY3Rpb24gT25lLVR3bwotKyAgICAgICAgICAgIDxVTD4KLSsgICAgICAgICAgICAgIDxMST4xLjIuMSBTdWJzdWJzZWN0aW9uIE9uZS1Ud28tT25lPC9MST4KLSsgICAgICAgICAgICAgIDxMST4xLjIuMiBTdWJzdWJzZWN0aW9uIE9uZS1Ud28tVHdvPC9MST4KLSsgICAgICAgICAgICAgIDxMST4xLjIuMyBTdWJzdWJzZWN0aW9uIE9uZS1Ud28tVGhyZWUgJm5ic3A7ICZuYnNwOwotKyAgICAgICAgICAgICAgICA8U1RST05HPiZsdDs9PSBDdXJyZW50IFBvc2l0aW9uIDwvU1RST05HPjwvTEk+Ci0rICAgICAgICAgICAgICA8TEk+MS4yLjQgU3Vic3Vic2VjdGlvbiBPbmUtVHdvLUZvdXI8L0xJPgotKyAgICAgICAgICAgIDwvVUw+Ci0rICAgICAgICAgIDwvTEk+Ci0rICAgICAgICAgIDxMST4xLjMgU3Vic2VjdGlvbiBPbmUtVGhyZWUKLSsgICAgICAgICAgICA8VUw+Ci0rICAgICAgICAgICAgICA8TEk+Li4uPC9MST4KLSsgICAgICAgICAgICA8L1VMPgotKyAgICAgICAgICA8L0xJPgotKyAgICAgICAgICA8TEk+MS40IFN1YnNlY3Rpb24gT25lLUZvdXI8L0xJPgotKyAgICAgICAgPC9VTD4KLSsgICAgICA8L0xJPgotKyAgICA8L1VMPgotKwotKzxIUiBTSVpFPTE+Ci0rPEJSPgotKzxGT05UIFNJWkU9Ii0xIj4KLStUaGlzIGRvY3VtZW50IHdhcyBnZW5lcmF0ZWQKLStieSA8ST5yb290PC9JPiBvbiA8ST5TZXB0ZW1iZXIsIDEgMjAwMzwvST4KLSt1c2luZyA8QSBIUkVGPSJodHRwOi8vdGV4aTJodG1sLmN2c2hvbWUub3JnIj48ST50ZXhpMmh0bWw8L0k+PC9BPgotKzwvRk9OVD4KLSsKLSs8L0JPRFk+Ci0rPC9IVE1MPgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC90aW1lL3RpbWUuaW5jIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC90aW1lL3RpbWUuaW5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YjIwZDdjLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvdGltZS90aW1lLmluYworKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLVNVTU1BUlkgPSAiVG9vbCB0aGF0IG1lYXN1cmVzIENQVSByZXNvdXJjZXMiCi1ERVNDUklQVElPTiA9ICJ0aW1lIG1lYXN1cmVzIG1hbnkgb2YgdGhlIENQVSByZXNvdXJjZXMsIHN1Y2ggYXMgdGltZSBhbmQgXAotbWVtb3J5LCB0aGF0IG90aGVyIHByb2dyYW1zIHVzZS4iCi1IT01FUEFHRSA9ICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvdGltZS8iCi1TRUNUSU9OID0gInV0aWxzIgotTElDRU5TRSA9ICJHUEx2MisiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT04Y2E0M2NiYzg0MmMyMzM2ZTgzNTkyNmMyMTY2YzI4YiIKLQotaW5oZXJpdCB0ZXhpbmZvIHVwZGF0ZS1hbHRlcm5hdGl2ZXMKLQotQUxURVJOQVRJVkVfJHtQTn0gPSAidGltZSIKLUFMVEVSTkFUSVZFX1BSSU9SSVRZID0gIjEwMCIKLQotQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUgbmF0aXZlc2RrIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC90aW1lL3RpbWVfMS43LmJiIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC90aW1lL3RpbWVfMS43LmJiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MmM1MzUzLi4wMDAwMDAwCi0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvdGltZS90aW1lXzEuNy5iYgorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLXJlcXVpcmUgdGltZS5pbmMKLQotUFIgPSAicjIiCi0KLVNSQ19VUkkgPSAiJHtHTlVfTUlSUk9SfS90aW1lL3RpbWUtJHtQVn0udGFyLmd6IFwKLQkgICBmaWxlOi8vZGViaWFuLnBhdGNoIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiZTM4ZDJiOGIzNGIxY2EyNTljZjdiMDUzY2FhYzMyYjMiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiZTM3ZWE3OWEyNTNiZjg1YTg1YWRhMmY3YzYzMmMxNGU0ODFhNWZkMjYyYTM2MmY2ZjRmZDU4ZTY4NjAxNDk2ZCIKLQotaW5oZXJpdCBhdXRvdG9vbHMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvdGltZS90aW1lXzEuOC5iYiBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvdGltZS90aW1lXzEuOC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYjMxNDdhCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC90aW1lL3RpbWVfMS44LmJiCkBAIC0wLDAgKzEsMjEgQEAKK1NVTU1BUlkgPSAiVG9vbCB0aGF0IG1lYXN1cmVzIENQVSByZXNvdXJjZXMiCitERVNDUklQVElPTiA9ICJ0aW1lIG1lYXN1cmVzIG1hbnkgb2YgdGhlIENQVSByZXNvdXJjZXMsIHN1Y2ggYXMgdGltZSBhbmQgXAorbWVtb3J5LCB0aGF0IG90aGVyIHByb2dyYW1zIHVzZS4iCitIT01FUEFHRSA9ICJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvdGltZS8iCitTRUNUSU9OID0gInV0aWxzIgorTElDRU5TRSA9ICJHUEx2MyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWQzMjIzOWJjYjY3MzQ2M2FiODc0ZTgwZDQ3ZmFlNTA0IgorCitpbmhlcml0IHRleGluZm8gdXBkYXRlLWFsdGVybmF0aXZlcworCitBTFRFUk5BVElWRV8ke1BOfSA9ICJ0aW1lIgorQUxURVJOQVRJVkVfUFJJT1JJVFkgPSAiMTAwIgorCitCQkNMQVNTRVhURU5EID0gIm5hdGl2ZSBuYXRpdmVzZGsiCisKK1NSQ19VUkkgPSAiJHtHTlVfTUlSUk9SfS90aW1lL3RpbWUtJHtQVn0udGFyLmd6IgorCitTUkNfVVJJW21kNXN1bV0gPSAiNGUwMGRjYjhjM2FiMTFjN2NmNWEwZDY5ODgyOGFjOTYiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiOGEyZjU0MDE1NTk2MWEzNWJhOWI4NGFlYzVlNzdlM2FlMzZjNzRjZWNiNDQ4NGRiNDU1OTYwNjAxYjdhMmUxYiIKKworaW5oZXJpdCBhdXRvdG9vbHMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvdHpjb2RlL2ZpbGVzLzAwMDEtRml4LU1ha2VmaWxlLXF1b3RpbmctYnVnLnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC90emNvZGUvZmlsZXMvMDAwMS1GaXgtTWFrZWZpbGUtcXVvdGluZy1idWcucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU0OWZhMDkuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC90emNvZGUvZmlsZXMvMDAwMS1GaXgtTWFrZWZpbGUtcXVvdGluZy1idWcucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNzQgKzAsMCBAQAotRnJvbSBiNTIwZDIwYjgxMjJhNzgzZjk5ZjA4ODc1OGI3OGQ5MjhmNzBlZTM0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUGF1bCBFZ2dlcnQgPGVnZ2VydEBjcy51Y2xhLmVkdT4KLURhdGU6IE1vbiwgMjMgT2N0IDIwMTcgMTE6NDI6NDUgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSF0gRml4IE1ha2VmaWxlIHF1b3RpbmcgYnVnCi0KLVByb2JsZW0gd2l0aCBJTlNUQUxMQVJHUyByZXBvcnRlZCBieSBaZWZyYW0gaW46Ci1odHRwczovL21tLmljYW5uLm9yZy9waXBlcm1haWwvdHovMjAxNy1PY3RvYmVyLzAyNTM2MC5odG1sCi1GaXggc2ltaWxhciBwcm9ibGVtcyB0b28uCi0qIE1ha2VmaWxlIChaSUNfSU5TVEFMTCwgVkFMSURBVEVfRU5WLCBDQywgaW5zdGFsbCkKLShJTlNUQUxMLCB2ZXJzaW9uLCBJTlNUQUxMQVJHUywgcmlnaHRfcG9zaXgsIHBvc2l4X3JpZ2h0KQotKGNoZWNrX3B1YmxpYyk6IFVzZSBhcG9zdHJvcGhlcyB0byBwcmV2ZW50IHVuZGVzaXJhYmxlCi1pbnRlcnByZXRhdGlvbiBvZiBuYW1lcyBieSB0aGUgc2hlbGwuICBXZSBzdGlsbCBkbyBub3Qgc3VwcG9ydAotZGlyZWN0b3J5IG5hbWVzIGNvbnRhaW5pbmcgYXBvc3Ryb3BoZXMgb3IgbmV3bGluZXMsIGJ1dCB0aGlzIGlzCi1nb29kIGVub3VnaC4KLQotVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydAotU2lnbmVkLW9mZi1ieTogQXJtaW4gS3VzdGVyIDxha3VzdGVyQG12aXN0YS5jb20+Ci0KLSogTkVXUzogTWVudGlvbiB0aGlzLgotLS0tCi0gTWFrZWZpbGUgfCA2NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gTkVXUyAgICAgfCAgOCArKysrKysrKwotIDIgZmlsZXMgY2hhbmdlZCwgNDAgaW5zZXJ0aW9ucygrKSwgMzIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9NYWtlZmlsZSBiL01ha2VmaWxlCi1pbmRleCBjOTJlZGMwLi45NzY0OWNhIDEwMDY0NAotLS0tIGEvTWFrZWZpbGUKLSsrKyBiL01ha2VmaWxlCi1AQCAtMzEzLDcgKzMxMyw3IEBAIFpGTEFHUz0KLSAKLSAjIEhvdyB0byB1c2UgemljIHRvIGluc3RhbGwgdHogYmluYXJ5IGZpbGVzLgotIAotLVpJQ19JTlNUQUxMPQkkKFpJQykgLWQgJChERVNURElSKSQoVFpESVIpICQoTEVBUFNFQ09ORFMpCi0rWklDX0lOU1RBTEw9CSQoWklDKSAtZCAnJChERVNURElSKSQoVFpESVIpJyAkKExFQVBTRUNPTkRTKQotIAotICMgVGhlIG5hbWUgb2YgYSBQb3NpeC1jb21wbGlhbnQgJ2F3aycgb24geW91ciBzeXN0ZW0uCi0gQVdLPQkJYXdrCi1AQCAtMzQxLDggKzM0MSw4IEBAIFNHTUxfQ0FUQUxPR19GSUxFUz0gXAotIFZBTElEQVRFID0gbnNnbWxzCi0gVkFMSURBVEVfRkxBR1MgPSAtcyAtQiAtd2FsbCAtd25vLXVudXNlZC1wYXJhbQotIFZBTElEQVRFX0VOViA9IFwKLS0gIFNHTUxfQ0FUQUxPR19GSUxFUz0kKFNHTUxfQ0FUQUxPR19GSUxFUykgXAotLSAgU0dNTF9TRUFSQ0hfUEFUSD0kKFNHTUxfU0VBUkNIX1BBVEgpIFwKLSsgIFNHTUxfQ0FUQUxPR19GSUxFUz0nJChTR01MX0NBVEFMT0dfRklMRVMpJyBcCi0rICBTR01MX1NFQVJDSF9QQVRIPSckKFNHTUxfU0VBUkNIX1BBVEgpJyBcCi0gICBTUF9DSEFSU0VUX0ZJWEVEPVlFUyBcCi0gICBTUF9FTkNPRElORz1VVEYtOAotIAotQEAgLTM5Niw3ICszOTYsNyBAQCBHWklQRkxBR1M9CS05bgotICNNQUtFPQkJbWFrZQotIAotIGNjPQkJY2MKLS1DQz0JCSQoY2MpIC1EVFpESVI9XCIkKFRaRElSKVwiCi0rQ0M9CQkkKGNjKSAtRFRaRElSPSciJChUWkRJUikiJwotIAotIEFSPQkJYXIKLSAKLUBAIC00NzMsMjkgKzQ3MywyOSBAQCBhbGw6CQl0enNlbGVjdCB5ZWFyaXN0eXBlIHppYyB6ZHVtcCBsaWJ0ei5hICQoVEFCREFUQSkKLSBBTEw6CQlhbGwgZGF0ZSAkKEVOQ0hJTEFEQSkKLSAKLSBpbnN0YWxsOglhbGwgJChEQVRBKSAkKFJFRE8pICQoTUFOUykKLS0JCW1rZGlyIC1wICQoREVTVERJUikkKEVUQ0RJUikgJChERVNURElSKSQoVFpESVIpIFwKLS0JCQkkKERFU1RESVIpJChMSUJESVIpIFwKLS0JCQkkKERFU1RESVIpJChNQU5ESVIpL21hbjMgJChERVNURElSKSQoTUFORElSKS9tYW41IFwKLS0JCQkkKERFU1RESVIpJChNQU5ESVIpL21hbjgKLSsJCW1rZGlyIC1wICckKERFU1RESVIpJChFVENESVIpJyAnJChERVNURElSKSQoVFpESVIpJyBcCi0rCQkJJyQoREVTVERJUikkKExJQkRJUiknIFwKLSsJCQknJChERVNURElSKSQoTUFORElSKS9tYW4zJyAnJChERVNURElSKSQoTUFORElSKS9tYW41JyBcCi0rCQkJJyQoREVTVERJUikkKE1BTkRJUikvbWFuOCcKLSAJCSQoWklDX0lOU1RBTEwpIC1sICQoTE9DQUxUSU1FKSAtcCAkKFBPU0lYUlVMRVMpCi0tCQljcCAtZiAkKFRBQkRBVEEpICQoREVTVERJUikkKFRaRElSKS8uCi0tCQljcCB0enNlbGVjdCB6aWMgemR1bXAgJChERVNURElSKSQoRVRDRElSKS8uCi0tCQljcCBsaWJ0ei5hICQoREVTVERJUikkKExJQkRJUikvLgotLQkJJChSQU5MSUIpICQoREVTVERJUikkKExJQkRJUikvbGlidHouYQotLQkJY3AgLWYgbmV3Y3RpbWUuMyBuZXd0enNldC4zICQoREVTVERJUikkKE1BTkRJUikvbWFuMy8uCi0tCQljcCAtZiB0emZpbGUuNSAkKERFU1RESVIpJChNQU5ESVIpL21hbjUvLgotLQkJY3AgLWYgdHpzZWxlY3QuOCB6ZHVtcC44IHppYy44ICQoREVTVERJUikkKE1BTkRJUikvbWFuOC8uCi0rCQljcCAtZiAkKFRBQkRBVEEpICckKERFU1RESVIpJChUWkRJUikvLicKLSsJCWNwIHR6c2VsZWN0IHppYyB6ZHVtcCAnJChERVNURElSKSQoRVRDRElSKS8uJwotKwkJY3AgbGlidHouYSAnJChERVNURElSKSQoTElCRElSKS8uJwotKwkJJChSQU5MSUIpICckKERFU1RESVIpJChMSUJESVIpL2xpYnR6LmEnCi0rCQljcCAtZiBuZXdjdGltZS4zIG5ld3R6c2V0LjMgJyQoREVTVERJUikkKE1BTkRJUikvbWFuMy8uJwotKwkJY3AgLWYgdHpmaWxlLjUgJyQoREVTVERJUikkKE1BTkRJUikvbWFuNS8uJwotKwkJY3AgLWYgdHpzZWxlY3QuOCB6ZHVtcC44IHppYy44ICckKERFU1RESVIpJChNQU5ESVIpL21hbjgvLicKLSAKLSBJTlNUQUxMOglBTEwgaW5zdGFsbCBkYXRlLjEKLS0JCW1rZGlyIC1wICQoREVTVERJUikkKEJJTkRJUikgJChERVNURElSKSQoTUFORElSKS9tYW4xCi0tCQljcCBkYXRlICQoREVTVERJUikkKEJJTkRJUikvLgotLQkJY3AgLWYgZGF0ZS4xICQoREVTVERJUikkKE1BTkRJUikvbWFuMS8uCi0rCQlta2RpciAtcCAnJChERVNURElSKSQoQklORElSKScgJyQoREVTVERJUikkKE1BTkRJUikvbWFuMScKLSsJCWNwIGRhdGUgJyQoREVTVERJUikkKEJJTkRJUikvLicKLSsJCWNwIC1mIGRhdGUuMSAnJChERVNURElSKSQoTUFORElSKS9tYW4xLy4nCi0gCi0gdmVyc2lvbjoJJChWRVJTSU9OX0RFUFMpCi0gCQl7ICh0eXBlIGdpdCkgPi9kZXYvbnVsbCAyPiYxICYmIFwKLSAJCSAgVj1gZ2l0IGRlc2NyaWJlIC0tbWF0Y2ggJ1swLTldWzAtOV1bMC05XVswLTldW2Etel0qJyBcCi0gCQkJCS0tYWJicmV2PTcgLS1kaXJ0eWAgfHwgXAotLQkJICBWPSQoVkVSU0lPTik7IH0gJiYgXAotKwkJICBWPSckKFZFUlNJT04pJzsgfSAmJiBcCi0gCQlwcmludGYgJyVzXG4nICIkJFYiID4kQC5vdXQKLSAJCW12ICRALm91dCAkQAotIAotQEAgLTUyOSwxMiArNTI5LDEyIEBAIGxlYXBzZWNvbmRzOgkkKExFQVBfREVQUykKLSAjIEFyZ3VtZW50cyB0byBwYXNzIHRvIHN1Ym1ha2VzIG9mIGluc3RhbGxfZGF0YS4KLSAjIFRoZXkgY2FuIGJlIG92ZXJyaWRkZW4gYnkgbGF0ZXIgc3VibWFrZSBhcmd1bWVudHMuCi0gSU5TVEFMTEFSR1MgPSBcCi0tIEJBQ0tXQVJEPSQoQkFDS1dBUkQpIFwKLS0gREVTVERJUj0kKERFU1RESVIpIFwKLSsgQkFDS1dBUkQ9JyQoQkFDS1dBUkQpJyBcCi0rIERFU1RESVI9JyQoREVTVERJUiknIFwKLSAgTEVBUFNFQ09ORFM9JyQoTEVBUFNFQ09ORFMpJyBcCi0gIFBBQ0tSQVREQVRBPSckKFBBQ0tSQVREQVRBKScgXAotLSBUWkRJUj0kKFRaRElSKSBcCi0tIFlFQVJJU1RZUEU9JChZRUFSSVNUWVBFKSBcCi0rIFRaRElSPSckKFRaRElSKScgXAotKyBZRUFSSVNUWVBFPSckKFlFQVJJU1RZUEUpJyBcCi0gIFpJQz0nJChaSUMpJwotIAotICMgJ21ha2UgaW5zdGFsbF9kYXRhJyBpbnN0YWxscyBvbmUgc2V0IG9mIHR6IGJpbmFyeSBmaWxlcy4KLUBAIC01NTgsMTYgKzU1OCwxNiBAQCByaWdodF9vbmx5OgotICMgWW91IG11c3QgcmVwbGFjZSBhbGwgb2YgJChUWkRJUikgdG8gc3dpdGNoIGZyb20gbm90IHVzaW5nIGxlYXAgc2Vjb25kcwotICMgdG8gdXNpbmcgdGhlbSwgb3IgdmljZSB2ZXJzYS4KLSByaWdodF9wb3NpeDoJcmlnaHRfb25seQotLQkJcm0gLWZyICQoREVTVERJUikkKFRaRElSKS1sZWFwcwotLQkJbG4gLXMgJChUWkRJUl9CQVNFTkFNRSkgJChERVNURElSKSQoVFpESVIpLWxlYXBzIHx8IFwKLS0JCSAgJChNQUtFKSAkKElOU1RBTExBUkdTKSBUWkRJUj0kKFRaRElSKS1sZWFwcyByaWdodF9vbmx5Ci0tCQkkKE1BS0UpICQoSU5TVEFMTEFSR1MpIFRaRElSPSQoVFpESVIpLXBvc2l4IHBvc2l4X29ubHkKLSsJCXJtIC1mciAnJChERVNURElSKSQoVFpESVIpLWxlYXBzJwotKwkJbG4gLXMgJyQoVFpESVJfQkFTRU5BTUUpJyAnJChERVNURElSKSQoVFpESVIpLWxlYXBzJyB8fCBcCi0rCQkgICQoTUFLRSkgJChJTlNUQUxMQVJHUykgVFpESVI9JyQoVFpESVIpLWxlYXBzJyByaWdodF9vbmx5Ci0rCQkkKE1BS0UpICQoSU5TVEFMTEFSR1MpIFRaRElSPSckKFRaRElSKS1wb3NpeCcgcG9zaXhfb25seQotIAotIHBvc2l4X3JpZ2h0Oglwb3NpeF9vbmx5Ci0tCQlybSAtZnIgJChERVNURElSKSQoVFpESVIpLXBvc2l4Ci0tCQlsbiAtcyAkKFRaRElSX0JBU0VOQU1FKSAkKERFU1RESVIpJChUWkRJUiktcG9zaXggfHwgXAotLQkJICAkKE1BS0UpICQoSU5TVEFMTEFSR1MpIFRaRElSPSQoVFpESVIpLXBvc2l4IHBvc2l4X29ubHkKLS0JCSQoTUFLRSkgJChJTlNUQUxMQVJHUykgVFpESVI9JChUWkRJUiktbGVhcHMgcmlnaHRfb25seQotKwkJcm0gLWZyICckKERFU1RESVIpJChUWkRJUiktcG9zaXgnCi0rCQlsbiAtcyAnJChUWkRJUl9CQVNFTkFNRSknICckKERFU1RESVIpJChUWkRJUiktcG9zaXgnIHx8IFwKLSsJCSAgJChNQUtFKSAkKElOU1RBTExBUkdTKSBUWkRJUj0nJChUWkRJUiktcG9zaXgnIHBvc2l4X29ubHkKLSsJCSQoTUFLRSkgJChJTlNUQUxMQVJHUykgVFpESVI9JyQoVFpESVIpLWxlYXBzJyByaWdodF9vbmx5Ci0gCi0gIyBUaGlzIG9ic29sZXNjZW50IHJ1bGUgaXMgcHJlc2VudCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgd2l0aAotICMgdHogcmVsZWFzZXMgMjAxNGcgdGhyb3VnaCAyMDE1Zy4gIEl0IHNob3VsZCBnbyBhd2F5IGV2ZW50dWFsbHkuCi1AQCAtNzY0LDcgKzc2NCw3IEBAIHNldC10aW1lc3RhbXBzLm91dDogJChFTkNISUxBREEpCi0gCi0gY2hlY2tfcHVibGljOgotIAkJJChNQUtFKSBtYWludGFpbmVyLWNsZWFuCi0tCQkkKE1BS0UpICJDRkxBR1M9JChHQ0NfREVCVUdfRkxBR1MpIiBBTEwKLSsJCSQoTUFLRSkgQ0ZMQUdTPSckKEdDQ19ERUJVR19GTEFHUyknIEFMTAotIAkJbWtkaXIgLXAgcHVibGljLmRpcgotIAkJZm9yIGkgaW4gJChUREFUQSkgdHpkYXRhLnppOyBkbyBcCi0gCQkgICQoemljKSAtdiAtZCBwdWJsaWMuZGlyICQkaSAyPiYxIHx8IGV4aXQ7IFwKLWRpZmYgLS1naXQgYS9ORVdTIGIvTkVXUwotaW5kZXggYmQyYmVjMi4uNzVhYjA5NSAxMDA2NDQKLS0tLSBhL05FV1MKLSsrKyBiL05FV1MKLUBAIC0xLDUgKzEsMTMgQEAKLSBOZXdzIGZvciB0aGUgdHogZGF0YWJhc2UKLSAKLStVbnJlbGVhc2VkLCBleHBlcmltZW50YWwgY2hhbmdlcwotKwotKyAgQ2hhbmdlcyB0byBidWlsZCBwcm9jZWR1cmUKLSsKLSsgICAgVGhlIE1ha2VmaWxlIG5vdyBxdW90ZXMgdmFsdWVzIGxpa2UgQkFDS1dBUkQgbW9yZSBjYXJlZnVsbHkgd2hlbgotKyAgICBwYXNzaW5nIHRoZW0gdG8gdGhlIHNoZWxsLiAgKFByb2JsZW0gcmVwb3J0ZWQgYnkgWmVmcmFtLikKLSsKLSsKLSBSZWxlYXNlIDIwMTdjIC0gMjAxNy0xMC0yMCAxNDo0OTozNCAtMDcwMAotIAotICAgQnJpZWZseToKLS0tIAotMi43LjQKLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC90emNvZGUvZmlsZXMvMDAwMi1Qb3J0LXpkdW1wLXRvLUM5MC1zbnByaW50Zi5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvdHpjb2RlL2ZpbGVzLzAwMDItUG9ydC16ZHVtcC10by1DOTAtc25wcmludGYucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3YWZlNDcuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC90emNvZGUvZmlsZXMvMDAwMi1Qb3J0LXpkdW1wLXRvLUM5MC1zbnByaW50Zi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExNSArMCwwIEBACi1Gcm9tIGUyMzFkYTRmYjJiZWIxN2M2MGI0YjFhNWMyNzYzNjZkNmE2ZTQzM2YgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1PgotRGF0ZTogTW9uLCAyMyBPY3QgMjAxNyAxNzo1ODozNiAtMDcwMAotU3ViamVjdDogW1BBVENIXSBQb3J0IHpkdW1wIHRvIEM5MCArIHNucHJpbnRmCi1NSU1FLVZlcnNpb246IDEuMAotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04Ci1Db250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Ci0KLVByb2JsZW0gcmVwb3J0ZWQgYnkgSm9uIFNrZWV0IGluOgotaHR0cHM6Ly9tbS5pY2Fubi5vcmcvcGlwZXJtYWlsL3R6LzIwMTctT2N0b2Jlci8wMjUzNjIuaHRtbAotKiBORVdTOiBNZW50aW9uIHRoaXMuCi0qIHpkdW1wLmMgKG15X3NucHJpbnRmKTogTmV3IG1hY3JvIG9yIGZ1bmN0aW9uLiAgSWYgYSBtYWNybywgaXQgaXMKLWp1c3Qgc25wcmludGYuICBJZiBhIGZ1bmN0aW9uLCBpdCBpcyB0aGUgc2FtZSBhcyB0aGUgb2xkIHNucHJpbnRmCi1zdGF0aWMgZnVuY3Rpb24sIHdpdGggYW4gQVRUUklCVVRFX0ZPUk1BVCB0byBwYWNpZnkgbW9kZXJuIEdDQy4KLUFsbCB1c2VzIG9mIHNucHJpbnRmIGNoYW5nZWQgdG8gdXNlIG15X3NucHJpbnRmLiAgVGhpcyB3YXksCi1pbnN0YWxsZXJzIGRvbuKAmXQgbmVlZCB0byBzcGVjaWZ5IC1ESEFWRV9TTlBSSU5URiBpZiB0aGV5IGFyZSB1c2luZwotYSBwcmUtQzk5IGNvbXBpbGVyIHdpdGggYSBsaWJyYXJ5IHRoYXQgaGFzIHNucHJpbnRmLgotCi1VcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0Ci1TaWduZWQtb2ZmLWJ5OiBBcm1pbiBLdXN0ZXIgPGFrdXN0ZXJAbXZpc3RhLmNvbT4KLQotLS0tCi0gTkVXUyAgICB8ICA0ICsrKysKLSB6ZHVtcC5jIHwgMjkgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDIwIGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvTkVXUyBiL05FV1MKLWluZGV4IDc1YWIwOTUuLmRlYTA4YjggMTAwNjQ0Ci0tLS0gYS9ORVdTCi0rKysgYi9ORVdTCi1AQCAtNyw2ICs3LDEwIEBAIFVucmVsZWFzZWQsIGV4cGVyaW1lbnRhbCBjaGFuZ2VzCi0gICAgIFRoZSBNYWtlZmlsZSBub3cgcXVvdGVzIHZhbHVlcyBsaWtlIEJBQ0tXQVJEIG1vcmUgY2FyZWZ1bGx5IHdoZW4KLSAgICAgcGFzc2luZyB0aGVtIHRvIHRoZSBzaGVsbC4gIChQcm9ibGVtIHJlcG9ydGVkIGJ5IFplZnJhbS4pCi0gCi0rICAgIEJ1aWxkZXJzIG5vIGxvbmdlciBuZWVkIHRvIHNwZWNpZnkgLURIQVZFX1NOUFJJTlRGIG9uIHBsYXRmb3JtcwotKyAgICB0aGF0IGhhdmUgc25wcmludGYgYW5kIHVzZSBwcmUtQzk5IGNvbXBpbGVycy4gIChQcm9ibGVtIHJlcG9ydGVkCi0rICAgIGJ5IEpvbiBTa2VldC4pCi0rCi0gCi0gUmVsZWFzZSAyMDE3YyAtIDIwMTctMTAtMjAgMTQ6NDk6MzQgLTA3MDAKLSAKLWRpZmYgLS1naXQgYS96ZHVtcC5jIGIvemR1bXAuYwotaW5kZXggOGUzYmYzZS4uZDRlNjA4NCAxMDA2NDQKLS0tLSBhL3pkdW1wLmMKLSsrKyBiL3pkdW1wLmMKLUBAIC03OTUsMTIgKzc5NSwxNCBAQCBzaG93KHRpbWV6b25lX3QgdHosIGNoYXIgKnpvbmUsIHRpbWVfdCB0LCBib29sIHYpCi0gCQlhYmJyb2soYWJicih0bXApLCB6b25lKTsKLSB9Ci0gCi0tI2lmICFIQVZFX1NOUFJJTlRGCi0rI2lmIEhBVkVfU05QUklOVEYKLSsjIGRlZmluZSBteV9zbnByaW50ZiBzbnByaW50ZgotKyNlbHNlCi0gIyBpbmNsdWRlIDxzdGRhcmcuaD4KLSAKLSAvKiBBIHN1YnN0aXR1dGUgZm9yIHNucHJpbnRmIHRoYXQgaXMgZ29vZCBlbm91Z2ggZm9yIHpkdW1wLiAgKi8KLS1zdGF0aWMgaW50Ci0tc25wcmludGYoY2hhciAqcywgc2l6ZV90IHNpemUsIGNoYXIgY29uc3QgKmZvcm1hdCwgLi4uKQotK3N0YXRpYyBpbnQgQVRUUklCVVRFX0ZPUk1BVCgocHJpbnRmLCAzLCA0KSkKLStteV9zbnByaW50ZihjaGFyICpzLCBzaXplX3Qgc2l6ZSwgY2hhciBjb25zdCAqZm9ybWF0LCAuLi4pCi0gewotICAgaW50IG47Ci0gICB2YV9saXN0IGFyZ3M7Ci1AQCAtODM5LDEwICs4NDEsMTAgQEAgZm9ybWF0X2xvY2FsX3RpbWUoY2hhciAqYnVmLCBzaXplX3Qgc2l6ZSwgc3RydWN0IHRtIGNvbnN0ICp0bSkKLSB7Ci0gICBpbnQgc3MgPSB0bS0+dG1fc2VjLCBtbSA9IHRtLT50bV9taW4sIGhoID0gdG0tPnRtX2hvdXI7Ci0gICByZXR1cm4gKHNzCi0tCSAgPyBzbnByaW50ZihidWYsIHNpemUsICIlMDJkOiUwMmQ6JTAyZCIsIGhoLCBtbSwgc3MpCi0rCSAgPyBteV9zbnByaW50ZihidWYsIHNpemUsICIlMDJkOiUwMmQ6JTAyZCIsIGhoLCBtbSwgc3MpCi0gCSAgOiBtbQotLQkgID8gc25wcmludGYoYnVmLCBzaXplLCAiJTAyZDolMDJkIiwgaGgsIG1tKQotLQkgIDogc25wcmludGYoYnVmLCBzaXplLCAiJTAyZCIsIGhoKSk7Ci0rCSAgPyBteV9zbnByaW50ZihidWYsIHNpemUsICIlMDJkOiUwMmQiLCBoaCwgbW0pCi0rCSAgOiBteV9zbnByaW50ZihidWYsIHNpemUsICIlMDJkIiwgaGgpKTsKLSB9Ci0gCi0gLyogU3RvcmUgaW50byBCVUYsIG9mIHNpemUgU0laRSwgYSBmb3JtYXR0ZWQgVVRDIG9mZnNldCBmb3IgdGhlCi1AQCAtODc3LDEwICs4NzksMTAgQEAgZm9ybWF0X3V0Y19vZmZzZXQoY2hhciAqYnVmLCBzaXplX3Qgc2l6ZSwgc3RydWN0IHRtIGNvbnN0ICp0bSwgdGltZV90IHQpCi0gICBtbSA9IG9mZiAvIDYwICUgNjA7Ci0gICBoaCA9IG9mZiAvIDYwIC8gNjA7Ci0gICByZXR1cm4gKHNzIHx8IDEwMCA8PSBoaAotLQkgID8gc25wcmludGYoYnVmLCBzaXplLCAiJWMlMDJsZCUwMmQlMDJkIiwgc2lnbiwgaGgsIG1tLCBzcykKLSsJICA/IG15X3NucHJpbnRmKGJ1Ziwgc2l6ZSwgIiVjJTAybGQlMDJkJTAyZCIsIHNpZ24sIGhoLCBtbSwgc3MpCi0gCSAgOiBtbQotLQkgID8gc25wcmludGYoYnVmLCBzaXplLCAiJWMlMDJsZCUwMmQiLCBzaWduLCBoaCwgbW0pCi0tCSAgOiBzbnByaW50ZihidWYsIHNpemUsICIlYyUwMmxkIiwgc2lnbiwgaGgpKTsKLSsJICA/IG15X3NucHJpbnRmKGJ1Ziwgc2l6ZSwgIiVjJTAybGQlMDJkIiwgc2lnbiwgaGgsIG1tKQotKwkgIDogbXlfc25wcmludGYoYnVmLCBzaXplLCAiJWMlMDJsZCIsIHNpZ24sIGhoKSk7Ci0gfQotIAotIC8qIFN0b3JlIGludG8gQlVGIChvZiBzaXplIFNJWkUpIGEgcXVvdGVkIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBQLgotQEAgLTk4MywxNSArOTg1LDE2IEBAIGlzdHJmdGltZShjaGFyICpidWYsIHNpemVfdCBzaXplLCBjaGFyIGNvbnN0ICp0aW1lX2ZtdCwKLSAJICAgIGZvciAoYWJwID0gYWI7IGlzX2FscGhhKCphYnApOyBhYnArKykKLSAJICAgICAgY29udGludWU7Ci0gCSAgICBsZW4gPSAoISphYnAgJiYgKmFiCi0tCQkgICA/IHNucHJpbnRmKGIsIHMsICIlcyIsIGFiKQotKwkJICAgPyBteV9zbnByaW50ZihiLCBzLCAiJXMiLCBhYikKLSAJCSAgIDogZm9ybWF0X3F1b3RlZF9zdHJpbmcoYiwgcywgYWIpKTsKLSAJICAgIGlmIChzIDw9IGxlbikKLSAJICAgICAgcmV0dXJuIGZhbHNlOwotIAkgICAgYiArPSBsZW4sIHMgLT0gbGVuOwotIAkgIH0KLS0JICBmb3JtYXR0ZWRfbGVuID0gKHRtLT50bV9pc2RzdAotLQkJCSAgID8gc25wcmludGYoYiwgcywgJiJcdFx0JWQiW3Nob3dfYWJicl0sIHRtLT50bV9pc2RzdCkKLS0JCQkgICA6IDApOwotKwkgIGZvcm1hdHRlZF9sZW4KLSsJICAgID0gKHRtLT50bV9pc2RzdAotKwkgICAgICAgPyBteV9zbnByaW50ZihiLCBzLCAmIlx0XHQlZCJbc2hvd19hYmJyXSwgdG0tPnRtX2lzZHN0KQotKwkgICAgICAgOiAwKTsKLSAJfQotIAlicmVhazsKLSAgICAgICB9Ci0tLSAKLTIuNy40Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvdHpjb2RlL3R6Y29kZS1uYXRpdmVfMjAxOGMuYmIgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3R6Y29kZS90emNvZGUtbmF0aXZlXzIwMThkLmJiCnNpbWlsYXJpdHkgaW5kZXggNzAlCnJlbmFtZSBmcm9tIGltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvdHpjb2RlL3R6Y29kZS1uYXRpdmVfMjAxOGMuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvdHpjb2RlL3R6Y29kZS1uYXRpdmVfMjAxOGQuYmIKaW5kZXggODVlOWI3MC4uNzkzM2E1ZCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC90emNvZGUvdHpjb2RlLW5hdGl2ZV8yMDE4Yy5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3R6Y29kZS90emNvZGUtbmF0aXZlXzIwMThkLmJiCkBAIC0xMSwxMCArMTEsMTAgQEAKIAogVVBTVFJFQU1fQ0hFQ0tfVVJJID0gImh0dHA6Ly93d3cuaWFuYS5vcmcvdGltZS16b25lcyIKIAotU1JDX1VSSVt0emNvZGUubWQ1c3VtXSA9ICJlNmUwZDRiMmNlM2ZhNjkwNmYzMDMxNTdiZWQyNjEyZSIKLVNSQ19VUklbdHpjb2RlLnNoYTI1NnN1bV0gPSAiMzFmYTdmYzBmOTRhNmZmMmQ2YmM4NzhjMGEzNWU4YWI4YjVhYTBlOGIwMTQ0NWExZDRhOGYxNDc3N2QwZTY2NSIKLVNSQ19VUklbdHpkYXRhLm1kNXN1bV0gPSAiYzQxMmIxNTMxYWRlZjFiZTdhNjQ1YWI3MzRmODZhY2MiCi1TUkNfVVJJW3R6ZGF0YS5zaGEyNTZzdW1dID0gIjI4MjVjM2U0YjdlZjUyMGYyNGQzOTNiY2MwMjk0MmY5NzYyZmZkM2U3ZmM5YjIzODUwNzg5ZWQ4ZjIyOTMzZjYiCitTUkNfVVJJW3R6Y29kZS5tZDVzdW1dID0gIjk2NjEyYjRmNWQ3ZTg4MDRmZDlhMDk4MWMwMjFiZTkwIgorU1JDX1VSSVt0emNvZGUuc2hhMjU2c3VtXSA9ICI3ZGU0NGU4NWJhYWQ3NDhkMjE3ZTNmZDYwNzA2ZjU5OWY5YWVjNjhiY2U2MzU2YjE2M2Y1MmIwZGJkNDBhOGQ5IgorU1JDX1VSSVt0emRhdGEubWQ1c3VtXSA9ICI4NzFhN2VmODA4ZWI0MmViYzU1MWFjZGIzZDY2MTU1NCIKK1NSQ19VUklbdHpkYXRhLnNoYTI1NnN1bV0gPSAiNTEwNmVkZGNlYjVmMWFlM2E5MWRiZDM5NjBlMWI4YjExYmEwZGMwODU3OWEzMWNmMDcyNGE3NjkxYjEwYzA1NCIKIAogUyA9ICIke1dPUktESVJ9IgogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3R6ZGF0YS90emRhdGFfMjAxOGMuYmIgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3R6ZGF0YS90emRhdGFfMjAxOGQuYmIKc2ltaWxhcml0eSBpbmRleCA5NyUKcmVuYW1lIGZyb20gaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC90emRhdGEvdHpkYXRhXzIwMThjLmJiCnJlbmFtZSB0byBpbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3R6ZGF0YS90emRhdGFfMjAxOGQuYmIKaW5kZXggZmY1ZWMxYy4uZjdmY2U4MCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC90emRhdGEvdHpkYXRhXzIwMThjLmJiCisrKyBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvdHpkYXRhL3R6ZGF0YV8yMDE4ZC5iYgpAQCAtOSw4ICs5LDggQEAKIFNSQ19VUkkgPSAiaHR0cDovL3d3dy5pYW5hLm9yZy90aW1lLXpvbmVzL3JlcG9zaXRvcnkvcmVsZWFzZXMvdHpkYXRhJHtQVn0udGFyLmd6O25hbWU9dHpkYXRhIgogVVBTVFJFQU1fQ0hFQ0tfVVJJID0gImh0dHA6Ly93d3cuaWFuYS5vcmcvdGltZS16b25lcyIKIAotU1JDX1VSSVt0emRhdGEubWQ1c3VtXSA9ICJjNDEyYjE1MzFhZGVmMWJlN2E2NDVhYjczNGY4NmFjYyIKLVNSQ19VUklbdHpkYXRhLnNoYTI1NnN1bV0gPSAiMjgyNWMzZTRiN2VmNTIwZjI0ZDM5M2JjYzAyOTQyZjk3NjJmZmQzZTdmYzliMjM4NTA3ODllZDhmMjI5MzNmNiIKK1NSQ19VUklbdHpkYXRhLm1kNXN1bV0gPSAiODcxYTdlZjgwOGViNDJlYmM1NTFhY2RiM2Q2NjE1NTQiCitTUkNfVVJJW3R6ZGF0YS5zaGEyNTZzdW1dID0gIjUxMDZlZGRjZWI1ZjFhZTNhOTFkYmQzOTYwZTFiOGIxMWJhMGRjMDg1NzlhMzFjZjA3MjRhNzY5MWIxMGMwNTQiCiAKIGluaGVyaXQgYWxsYXJjaAogCkBAIC0xNzEsNyArMTcxLDcgQEAKICAgICAgICAgICAgICAgICAke2RhdGFkaXJ9L3pvbmVpbmZvL0FzaWEvRHViYWkgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAke2RhdGFkaXJ9L3pvbmVpbmZvL0FzaWEvS2FyYWNoaSAgICAgICAgIFwKICAgICAgICAgICAgICAgICAke2RhdGFkaXJ9L3pvbmVpbmZvL0FzaWEvRGhha2EgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAke2RhdGFkaXJ9L3pvbmVpbmZvL0FzaWEvQmFua29rICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAke2RhdGFkaXJ9L3pvbmVpbmZvL0FzaWEvQmFuZ2tvayAgICAgICAgIFwKICAgICAgICAgICAgICAgICAke2RhdGFkaXJ9L3pvbmVpbmZvL0FzaWEvSG9uZ19Lb25nICAgICAgIFwKICAgICAgICAgICAgICAgICAke2RhdGFkaXJ9L3pvbmVpbmZvL0FzaWEvVG9reW8gICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAke2RhdGFkaXJ9L3pvbmVpbmZvL0F1c3RyYWxpYS9EYXJ3aW4gICAgIFwKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvdW56aXAvdW56aXAvMTAtY3ZlLTIwMTQtODE0MC10ZXN0LWNvbXByLWViLnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC91bnppcC91bnppcC8xMC1jdmUtMjAxNC04MTQwLXRlc3QtY29tcHItZWIucGF0Y2gKaW5kZXggYzk4OWRmMS4uY2E0YWFhZCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC91bnppcC91bnppcC8xMC1jdmUtMjAxNC04MTQwLXRlc3QtY29tcHItZWIucGF0Y2gKKysrIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC91bnppcC91bnppcC8xMC1jdmUtMjAxNC04MTQwLXRlc3QtY29tcHItZWIucGF0Y2gKQEAgLTksOSArOSwxMSBAQAogCiBTaWduZWQtb2ZmLWJ5OiBSb3kgTGkgPHJvbmdxaW5nLmxpQHdpbmRyaXZlci5jb20+CiAKLS0tLSBhL2V4dHJhY3QuYwotKysrIGIvZXh0cmFjdC5jCi1AQCAtMjIzMiwxMCArMjIzMiwxNyBAQAorSW5kZXg6IHVuemlwNjAvZXh0cmFjdC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gdW56aXA2MC5vcmlnL2V4dHJhY3QuYworKysrIHVuemlwNjAvZXh0cmFjdC5jCitAQCAtMjIzMywxMCArMjIzMywxNyBAQCBzdGF0aWMgaW50IHRlc3RfY29tcHJfZWIoX19HX18gZWIsIGViX3NpCiAgICAgIGlmIChjb21wcl9vZmZzZXQgPCA0KSAgICAgICAgICAgICAgICAvKiBmaWVsZCBpcyBub3QgY29tcHJlc3NlZDogKi8KICAgICAgICAgIHJldHVybiBQS19PSzsgICAgICAgICAgICAgICAgICAgIC8qIGRvIG5vdGhpbmcgYW5kIHNpZ25hbCBPSyAqLwogIApAQCAtMzAsNSArMzIsNSBAQAogKyAgICAgKChlYl91Y3NpemUgPiAwTCkgJiYgKGViX3NpemUgPD0gKGNvbXByX29mZnNldCArIEVCX0NNUFJIRUFETEVOKSkpKQogKyAgICAgICAgcmV0dXJuIElaX0VGX1RSVU5DOyAgICAgICAgICAgICAvKiBuby9iYWQgY29tcHJlc3NlZCBkYXRhISAqLwogIAotICAgICBpZiAoCi0gI2lmZGVmIElOVF8xNkJJVAorICAgICBtZXRob2QgPSBtYWtld29yZChlYiArIChFQl9IRUFEU0laRSArIGNvbXByX29mZnNldCkpOworICAgICBpZiAoKG1ldGhvZCA9PSBTVE9SRUQpICYmCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3dhdGNoZG9nL3dhdGNoZG9nLzAwMDEtd2F0Y2hkb2ctcmVtb3ZlLWludGVyZGVwZW5kZW5jaWVzLW9mLXdhdGNoZG9nLWFuZC13ZC5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvd2F0Y2hkb2cvd2F0Y2hkb2cvMDAwMS13YXRjaGRvZy1yZW1vdmUtaW50ZXJkZXBlbmRlbmNpZXMtb2Ytd2F0Y2hkb2ctYW5kLXdkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzOGUwY2QKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3dhdGNoZG9nL3dhdGNoZG9nLzAwMDEtd2F0Y2hkb2ctcmVtb3ZlLWludGVyZGVwZW5kZW5jaWVzLW9mLXdhdGNoZG9nLWFuZC13ZC5wYXRjaApAQCAtMCwwICsxLDY4IEBACitGcm9tIGMxZmUxNGZhNWJkMTY4MjkyY2M0NjcwMDM0YmM0OGI5NTRlOWRhYzcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiAiTWF4aW4gQi4gSm9obiIgPG1heGluLmpvaG5AaW50ZWwuY29tPgorRGF0ZTogVHVlLCAxMyBNYXIgMjAxOCAxNDo0OTo1NSArMDIwMAorU3ViamVjdDogW1BBVENIXSB3YXRjaGRvZzogcmVtb3ZlIGludGVyZGVwZW5kZW5jaWVzIG9mIHdhdGNoZG9nIGFuZAorIHdkX2tlZXBhbGl2ZSBzZXJ2aWNlcworCitTaW5jZSB3YXRjaGRvZyBhbmQgd2F0Y2hkb2cta2VlcGFsaXZlIHBhY2thZ2VzIGNhbid0IGJlIGluc3RhbGxlZAordG9nZXRoZXIsIHJlbW92ZSB0aGUgaW50ZXItZGVwZW5kZW5jaWVzIG9mIHdhdGNoZG9nIGFuZCB3ZF9rZWVwYWxpdmUKK3NlcnZpY2VzCisKK1Vwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbb2Ugc3BlY2lmaWNdCisKK1NpZ25lZC1vZmYtYnk6IE1heGluIEIuIEpvaG4gPG1heGluLmpvaG5AaW50ZWwuY29tPgorLS0tCisgZGViaWFuL3dhdGNoZG9nLnNlcnZpY2UgICAgIHwgIDkgKysrLS0tLS0tCisgZGViaWFuL3dkX2tlZXBhbGl2ZS5zZXJ2aWNlIHwgMTAgKysrKystLS0tLQorIDIgZmlsZXMgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2RlYmlhbi93YXRjaGRvZy5zZXJ2aWNlIGIvZGViaWFuL3dhdGNoZG9nLnNlcnZpY2UKK2luZGV4IDdhMmZjMzYuLmYzMWQxZmUgMTAwNjQ0CistLS0gYS9kZWJpYW4vd2F0Y2hkb2cuc2VydmljZQorKysrIGIvZGViaWFuL3dhdGNoZG9nLnNlcnZpY2UKK0BAIC0xLDE2ICsxLDEzIEBACisgW1VuaXRdCisgRGVzY3JpcHRpb249d2F0Y2hkb2cgZGFlbW9uCistQ29uZmxpY3RzPXdkX2tlZXBhbGl2ZS5zZXJ2aWNlCisgQWZ0ZXI9bXVsdGktdXNlci50YXJnZXQKKy1PbkZhaWx1cmU9d2Rfa2VlcGFsaXZlLnNlcnZpY2UKKyAKKyBbU2VydmljZV0KKyBUeXBlPWZvcmtpbmcKKyBFbnZpcm9ubWVudEZpbGU9L2V0Yy9kZWZhdWx0L3dhdGNoZG9nCisgRXhlY1N0YXJ0UHJlPS9iaW4vc2ggLWMgJ1sgLXogIiR7d2F0Y2hkb2dfbW9kdWxlfSIgXSB8fCBbICIke3dhdGNoZG9nX21vZHVsZX0iID0gIm5vbmUiIF0gfHwgL3NiaW4vbW9kcHJvYmUgJHdhdGNoZG9nX21vZHVsZScKKy1FeGVjU3RhcnQ9L2Jpbi9zaCAtYyAnWyAkcnVuX3dhdGNoZG9nICE9IDEgXSB8fCBleGVjIC91c3Ivc2Jpbi93YXRjaGRvZyAkd2F0Y2hkb2dfb3B0aW9ucycKKy1FeGVjU3RvcFBvc3Q9L2Jpbi9zaCAtYyAnWyAkcnVuX3dkX2tlZXBhbGl2ZSAhPSAxIF0gfHwgZmFsc2UnCisrRXhlY1N0YXJ0PS9iaW4vc2ggLWMgJ1sgeCRydW5fd2F0Y2hkb2cgIT0geDEgXSB8fCBleGVjIC91c3Ivc2Jpbi93YXRjaGRvZyAkd2F0Y2hkb2dfb3B0aW9ucycKKytQSURGaWxlPS92YXIvcnVuL3dhdGNoZG9nLnBpZAorIAorIFtJbnN0YWxsXQorLVdhbnRlZEJ5PWRlZmF1bHQudGFyZ2V0CistCisrV2FudGVkQnk9bXVsdGktdXNlci50YXJnZXQKK2RpZmYgLS1naXQgYS9kZWJpYW4vd2Rfa2VlcGFsaXZlLnNlcnZpY2UgYi9kZWJpYW4vd2Rfa2VlcGFsaXZlLnNlcnZpY2UKK2luZGV4IDQ1YjAxOGUuLjdmOGIxZGMgMTAwNjQ0CistLS0gYS9kZWJpYW4vd2Rfa2VlcGFsaXZlLnNlcnZpY2UKKysrKyBiL2RlYmlhbi93ZF9rZWVwYWxpdmUuc2VydmljZQorQEAgLTEsMTMgKzEsMTMgQEAKKyBbVW5pdF0KKyBEZXNjcmlwdGlvbj13YXRjaGRvZyBrZWVwYWxpdmUgZGFlbW9uCistQmVmb3JlPXdhdGNoZG9nLnNlcnZpY2Ugc2h1dGRvd24udGFyZ2V0CistQ29uZmxpY3RzPXdhdGNoZG9nLnNlcnZpY2Ugc2h1dGRvd24udGFyZ2V0CisrQWZ0ZXI9bXVsdGktdXNlci50YXJnZXQKKyAKKyBbU2VydmljZV0KKyBUeXBlPWZvcmtpbmcKKyBFbnZpcm9ubWVudEZpbGU9L2V0Yy9kZWZhdWx0L3dhdGNoZG9nCisgRXhlY1N0YXJ0UHJlPS9iaW4vc2ggLWMgJ1sgLXogIiR7d2F0Y2hkb2dfbW9kdWxlfSIgXSB8fCBbICIke3dhdGNoZG9nX21vZHVsZX0iID0gIm5vbmUiIF0gfHwgL3NiaW4vbW9kcHJvYmUgJHdhdGNoZG9nX21vZHVsZScKKy1FeGVjU3RhcnRQcmU9LS9iaW4vc3lzdGVtY3RsIHJlc2V0LWZhaWxlZCB3YXRjaGRvZy5zZXJ2aWNlCisgRXhlY1N0YXJ0PS91c3Ivc2Jpbi93ZF9rZWVwYWxpdmUgJHdhdGNoZG9nX29wdGlvbnMKKy1FeGVjU3RhcnRQb3N0PS9iaW4vc2ggLWMgJ2xuIC1zIC92YXIvcnVuL3dkX2tlZXBhbGl2ZS5waWQgL3J1bi9zZW5kc2lncy5vbWl0LmQvd2Rfa2VlcGFsaXZlLnBpZCcKKy1FeGVjU3RvcFBvc3Q9L2Jpbi9zaCAtYyAncm0gLWYgL3J1bi9zZW5kc2lncy5vbWl0LmQvd2Rfa2VlcGFsaXZlLnBpZCcKKytQSURGaWxlPS92YXIvcnVuL3dkX2tlZXBhbGl2ZS5waWQKKysKKytbSW5zdGFsbF0KKytXYW50ZWRCeT1tdWx0aS11c2VyLnRhcmdldAorLS0gCisyLjQuMAorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3dhdGNoZG9nL3dhdGNoZG9nL3dhdGNoZG9nLWNvbmYucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3dhdGNoZG9nL3dhdGNoZG9nL3dhdGNoZG9nLWNvbmYucGF0Y2gKaW5kZXggZTY4YWQ1NC4uZWM0NGM4MCAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC93YXRjaGRvZy93YXRjaGRvZy93YXRjaGRvZy1jb25mLnBhdGNoCisrKyBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvd2F0Y2hkb2cvd2F0Y2hkb2cvd2F0Y2hkb2ctY29uZi5wYXRjaApAQCAtMSwxNCArMSwxNiBAQAogU2lnbmVkLW9mZi1ieTogRGllZ28gUm9uZGluaSA8ZGllZ28ubWxAem9oby5jb20+CiBVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUKIAotLS0tIHdhdGNoZG9nLTUuMTMub3JpZy93YXRjaGRvZy5jb25mCTIwMTMtMDItMDEgMTI6MTU6NDQuMDAwMDAwMDAwICswMTAwCi0rKysgd2F0Y2hkb2ctNS4xMy93YXRjaGRvZy5jb25mCTIwMTQtMTEtMTMgMTA6NTk6NDMuMjMzOTQzMDAwICswMTAwCi1AQCAtMjAsNyArMjAsNyBAQAotICN0ZXN0LWJpbmFyeQkJPSAKLSAjdGVzdC10aW1lb3V0CQk9IAorSW5kZXg6IHdhdGNoZG9nLTUuMTUvd2F0Y2hkb2cuY29uZgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHdhdGNoZG9nLTUuMTUub3JpZy93YXRjaGRvZy5jb25mCisrKysgd2F0Y2hkb2ctNS4xNS93YXRjaGRvZy5jb25mCitAQCAtMjgsNyArMjgsNyBAQAorICNyZXRyeS10aW1lb3V0CQk9IDYwCisgI3JlcGFpci1tYXhpbXVtCQk9IDEKICAKIC0jd2F0Y2hkb2ctZGV2aWNlCT0gL2Rldi93YXRjaGRvZwogK3dhdGNoZG9nLWRldmljZQk9IC9kZXYvd2F0Y2hkb2cKICAKICAjIERlZmF1bHRzIGNvbXBpbGVkIGludG8gdGhlIGJpbmFyeQotICN0ZW1wZXJhdHVyZS1kZXZpY2UJPQorICN0ZW1wZXJhdHVyZS1zZW5zb3IJPQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC93YXRjaGRvZy93YXRjaGRvZ181LjE1LmJiIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC93YXRjaGRvZy93YXRjaGRvZ181LjE1LmJiCmluZGV4IDNkMGI3MmUuLjM3YjM3YWUgMTAwNjQ0Ci0tLSBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvd2F0Y2hkb2cvd2F0Y2hkb2dfNS4xNS5iYgorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3dhdGNoZG9nL3dhdGNoZG9nXzUuMTUuYmIKQEAgLTEwLDYgKzEwLDcgQEAKIAogU1JDX1VSSSA9ICIke1NPVVJDRUZPUkdFX01JUlJPUn0vd2F0Y2hkb2cvd2F0Y2hkb2ctJHtQVn0udGFyLmd6IFwKICAgICAgICAgICAgZmlsZTovLzAwMDEtSW5jbHVkZS1saW51eC1wYXJhbS5oLWZvci1FWEVDX1BBR0VTSVpFLWRlZmluaXRpb24ucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS13YXRjaGRvZy1yZW1vdmUtaW50ZXJkZXBlbmRlbmNpZXMtb2Ytd2F0Y2hkb2ctYW5kLXdkLnBhdGNoIFwKICAgICAgICAgICAgZmlsZTovL3dhdGNoZG9nLWluaXQucGF0Y2ggXAogICAgICAgICAgICBmaWxlOi8vd2F0Y2hkb2ctY29uZi5wYXRjaCBcCiAgICAgICAgICAgIGZpbGU6Ly93ZF9rZWVwYWxpdmUuaW5pdCBcCkBAIC0zNiw3ICszNyw5IEBACiBJTklUU0NSSVBUX05BTUVfJHtQTn0ta2VlcGFsaXZlID0gIndkX2tlZXBhbGl2ZSIKIElOSVRTQ1JJUFRfUEFSQU1TXyR7UE59LWtlZXBhbGl2ZSA9ICJzdGFydCAxNSAxIDIgMyA0IDUgLiBzdG9wIDg1IDAgNiAuIgogCi1TWVNURU1EX1NFUlZJQ0VfJHtQTn0gPSAid2F0Y2hkb2cuc2VydmljZSB3ZF9rZWVwYWxpdmUuc2VydmljZSIKK1NZU1RFTURfUEFDS0FHRVMgPSAiJHtQTn0gJHtQTn0ta2VlcGFsaXZlIgorU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gIndhdGNoZG9nLnNlcnZpY2UiCitTWVNURU1EX1NFUlZJQ0VfJHtQTn0ta2VlcGFsaXZlID0gIndkX2tlZXBhbGl2ZS5zZXJ2aWNlIgogCiBkb19pbnN0YWxsX2FwcGVuZCgpIHsKIAlpbnN0YWxsIC1kICR7RH0ke3N5c3RlbWRfc3lzdGVtX3VuaXRkaXJ9CkBAIC01NCw2ICs1Nyw3IEBACiAKIEZJTEVTXyR7UE59LWtlZXBhbGl2ZSA9ICIgXAogICAgICR7c3lzY29uZmRpcn0vaW5pdC5kL3dkX2tlZXBhbGl2ZSBcCisgICAgJHtzeXN0ZW1kX3N5c3RlbV91bml0ZGlyfS93ZF9rZWVwYWxpdmUuc2VydmljZSBcCiAgICAgJHtzYmluZGlyfS93ZF9rZWVwYWxpdmUgXAogIgogCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3dnZXQvd2dldC5pbmMgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3dnZXQvd2dldC5pbmMKaW5kZXggMTI5OWVkYi4uM2NmZjY1NiAxMDA2NDQKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC93Z2V0L3dnZXQuaW5jCisrKyBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvd2dldC93Z2V0LmluYwpAQCAtMiw3ICsyLDcgQEAKIEhPTUVQQUdFID0gImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvd2dldC8iCiBTRUNUSU9OID0gImNvbnNvbGUvbmV0d29yayIKIExJQ0VOU0UgPSAiR1BMdjMiCi1MSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1kMzIyMzliY2I2NzM0NjNhYjg3NGU4MGQ0N2ZhZTUwNCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWM2Nzg5NTdiMGM4ZTk2NGFhNmM3MGZkNzc2NDFhNzFlIgogREVQRU5EUyA9ICJnbnV0bHMgemxpYiBsaWJwY3JlIgogCiBpbmhlcml0IGF1dG90b29scyBnZXR0ZXh0IHRleGluZm8gdXBkYXRlLWFsdGVybmF0aXZlcyBwa2djb25maWcKQEAgLTEwLDYgKzEwLDkgQEAKIEVYVFJBX09FQ09ORiA9ICItLXdpdGgtc3NsPWdudXRscyAtLWRpc2FibGUtcnBhdGggLS1kaXNhYmxlLWlyaSBcCiAgICAgICAgICAgICAgICAgLS13aXRob3V0LWxpYmdudXRscy1wcmVmaXggYWNfY3ZfaGVhZGVyX3V1aWRfdXVpZF9oPW5vIgogCitFWFRSQV9PRU1BS0UgKz0gJ1RPT0xDSEFJTl9PUFRJT05TPSIke1RPT0xDSEFJTl9PUFRJT05TfSIgXAorICAgICAgICAgICAgICAgICBERUJVR19QUkVGSVhfTUFQPSIke0RFQlVHX1BSRUZJWF9NQVB9IicKKwogQUxURVJOQVRJVkVfJHtQTn0gPSAid2dldCIKIEFMVEVSTkFUSVZFXyR7UE59X2NsYXNzLW5hdGl2ZXNkayA9ICIiCiBBTFRFUk5BVElWRV9QUklPUklUWSA9ICIxMDAiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3dnZXQvd2dldC8wMDAyLWltcHJvdmUtcmVwcm9kdWNpYmlsaXR5LnBhdGNoIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC93Z2V0L3dnZXQvMDAwMi1pbXByb3ZlLXJlcHJvZHVjaWJpbGl0eS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NzgxZGYyCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC93Z2V0L3dnZXQvMDAwMi1pbXByb3ZlLXJlcHJvZHVjaWJpbGl0eS5wYXRjaApAQCAtMCwwICsxLDYxIEBACitGcm9tIDdmMTM1NzUyOWQyM2IzNTZiNDVmYmIwZGQ3Mzg4NTg4MTYyZTRjYjggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBIb25neHUgSmlhIDxob25neHUuamlhQHdpbmRyaXZlci5jb20+CitEYXRlOiBXZWQsIDEwIEphbiAyMDE4IDE0OjQzOjIwICswODAwCitTdWJqZWN0OiBbUEFUQ0hdIHNyYy9NYWtlZmlsZS5hbTogaW1wcm92ZSByZXByb2R1Y2liaWxpdHkKKworUmVtb3ZlIGJ1aWxkIGhvc3QgcmVmZXJlbmNlcyBmcm9tIHRoZSBpbnRlcm5hbGx5CitnZW5lcmF0ZWQgZmlsZSB2ZXJzaW9uLmMuIFRoZSByZWZlcmVuY2VzIGdldCBjb21waWxlZCBpbnRvCitleGVjdXRhYmxlcywgd2hpY2ggbGVhZHMgdG8gbm9uLXJlcHJvZHVjaWJsZSBidWlsZHMuCitUaGUgcmVtb3ZlZCByZWZlcmVuY2VzICgtLXN5c3Jvb3QsIC1mZGVidWctcHJlZml4LW1hcCkgd2VyZQorb25seSB1c2VkIGFzIHBhcnQgb2YgdGhlIGB3Z2V0IC0tdmVyc2lvbicgd2hpY2ggZG8gbm90IGhhdmUKK3NpZGUgZWZmZWN0LgorCisuLi4KKyQgd2dldCAtLXZlcnNpb24KK0dOVSBXZ2V0IDEuMTQgYnVpbHQgb24gbGludXgtZ251LgorCisrZGlnZXN0ICtodHRwcyAraXB2NiAraXJpICtsYXJnZS1maWxlICtubHMgK250bG0gK29waWUgK3NzbC9vcGVuc3NsCisKK1dnZXRyYzoKKyAgICAvZXRjL3dnZXRyYyAoc3lzdGVtKQorTG9jYWxlOiAvdXNyL3NoYXJlL2xvY2FsZQorQ29tcGlsZTogZ2NjIC1ESEFWRV9DT05GSUdfSCAtRFNZU1RFTV9XR0VUUkM9Ii9ldGMvd2dldHJjIgorICAgIC1ETE9DQUxFRElSPSIvdXNyL3NoYXJlL2xvY2FsZSIgLUkuIC1JLi4vbGliIC1JLi4vbGliIC1PMiAtZyAtcGlwZQorICAgIC1XYWxsIC1XcCwtRF9GT1JUSUZZX1NPVVJDRT0yIC1mZXhjZXB0aW9ucyAtZnN0YWNrLXByb3RlY3Rvci1zdHJvbmcKKyAgICAtLXBhcmFtPXNzcC1idWZmZXItc2l6ZT00IC1ncmVjb3JkLWdjYy1zd2l0Y2hlcyAtbTY0IC1tdHVuZT1nZW5lcmljCitMaW5rOiBnY2MgLU8yIC1nIC1waXBlIC1XYWxsIC1XcCwtRF9GT1JUSUZZX1NPVVJDRT0yIC1mZXhjZXB0aW9ucworICAgIC1mc3RhY2stcHJvdGVjdG9yLXN0cm9uZyAtLXBhcmFtPXNzcC1idWZmZXItc2l6ZT00CisgICAgLWdyZWNvcmQtZ2NjLXN3aXRjaGVzIC1tNjQgLW10dW5lPWdlbmVyaWMgLWxzc2wgLWxjcnlwdG8KKyAgICAvdXNyL2xpYjY0L2xpYnNzbC5zbyAvdXNyL2xpYjY0L2xpYmNyeXB0by5zbyAvdXNyL2xpYjY0L2xpYnouc28KKyAgICAtbGRsIC1seiAtbHogLWxpZG4gLWx1dWlkIC1scGNyZSBmdHAtb3BpZS5vIG9wZW5zc2wubyBodHRwLW50bG0ubworICAgIC4uL2xpYi9saWJnbnUuYQorLi4uCisKK1Vwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbb2UtY29yZSBzcGVjaWZpY10KKworU2lnbmVkLW9mZi1ieTogSG9uZ3h1IEppYSA8aG9uZ3h1LmppYUB3aW5kcml2ZXIuY29tPgorLS0tCisgc3JjL01ha2VmaWxlLmFtIHwgNCArKysrCisgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvc3JjL01ha2VmaWxlLmFtIGIvc3JjL01ha2VmaWxlLmFtCitpbmRleCAyOGMwYmUyLi40NDA4NGEzIDEwMDY0NAorLS0tIGEvc3JjL01ha2VmaWxlLmFtCisrKysgYi9zcmMvTWFrZWZpbGUuYW0KK0BAIC04Nyw5ICs4NywxMyBAQCB2ZXJzaW9uLmM6ICAkKHdnZXRfU09VUkNFUykgLi4vbGliL2xpYmdudS5hCisgCWVjaG8gJyNpbmNsdWRlICJ2ZXJzaW9uLmgiJyA+PiAkQAorIAllY2hvICdjb25zdCBjaGFyICp2ZXJzaW9uX3N0cmluZyA9ICJAVkVSU0lPTkAiOycgPj4gJEAKKyAJZWNobyAnY29uc3QgY2hhciAqY29tcGlsYXRpb25fc3RyaW5nID0gIickKENPTVBJTEUpJyI7JyBcCisrCSAgICB8IHNlZCAtZSAicywkKFRPT0xDSEFJTl9PUFRJT05TKSwsZyIgXAorKwkgICAgICAgICAgLWUgInMsJChERUJVR19QUkVGSVhfTUFQKSwsZyIgXAorIAkgICAgfCAkKEVTQ0FQRVFVT1RFKSA+PiAkQAorIAllY2hvICdjb25zdCBjaGFyICpsaW5rX3N0cmluZyA9ICInJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpIFwKKyAJJChBTV9MREZMQUdTKSAkKExERkxBR1MpICQoTElCUykgJCh3Z2V0X0xEQUREKSciOycgXAorKwkgICAgfCBzZWQgLWUgInMsJChUT09MQ0hBSU5fT1BUSU9OUyksLGciIFwKKysJICAgICAgICAgIC1lICJzLCQoREVCVUdfUFJFRklYX01BUCksLGciIFwKKyAJICAgIHwgJChFU0NBUEVRVU9URSkgPj4gJEAKKyAKKyBjc3MuYzogJChzcmNkaXIpL2Nzcy5sCistLSAKKzEuOC4zLjEKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC93Z2V0L3dnZXQvQ1ZFLTIwMTctNjUwOC5wYXRjaCBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvd2dldC93Z2V0L0NWRS0yMDE3LTY1MDgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI5YzI5MGYuLjAwMDAwMDAKLS0tIGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC93Z2V0L3dnZXQvQ1ZFLTIwMTctNjUwOC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLUZyb20gNGQ3MjllMzIyZmFlMzU5YTFhZWZhYWZlYzExNDQ3NjRhNTRlOGFkNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206ID0/VVRGLTg/cT9UaW09MjBSPUMzPUJDaHNlbj89IDx0aW0ucnVlaHNlbkBnbXguZGU+Ci1EYXRlOiBNb24sIDYgTWFyIDIwMTcgMTA6MDQ6MjIgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gRml4IENSTEYgaW5qZWN0aW9uIGluIFdnZXQgaG9zdCBwYXJ0Ci0KLSogc3JjL3VybC5jICh1cmxfcGFyc2UpOiBSZWplY3QgY29udHJvbCBjaGFyYWN0ZXJzIGluIGhvc3QgcGFydCBvZiBVUkwKLQotUmVwb3J0ZWQtYnk6IE9yYW5nZSBUc2FpCi0KLVVwc3RyZWFtLVN0YXR1czogQmFja3BvcnQKLVtodHRwOi8vZ2l0LnNhdmFubmFoLmdudS5vcmcvY2dpdC93Z2V0LmdpdC9jb21taXQvP2lkPTRkNzI5ZTMyMmZhZTM1OWExYWVmYWFmZWMxMTQ0NzY0YTU0ZThhZDRdCi0KLUNWRTogQ1ZFLTIwMTctNjUwOAotCi1TaWduZWQtb2ZmLWJ5OiBZaSBaaGFvIDx5aS56aGFvQHdpbmRyaXZlci5jb20+Ci0tLS0KLSBzcmMvdXJsLmMgfCAxMSArKysrKysrKysrKwotIDEgZmlsZSBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9zcmMvdXJsLmMgYi9zcmMvdXJsLmMKLWluZGV4IDhmOGZmMGIuLjdkMzZiMjcgMTAwNjQ0Ci0tLS0gYS9zcmMvdXJsLmMKLSsrKyBiL3NyYy91cmwuYwotQEAgLTkyNSw2ICs5MjUsMTcgQEAgdXJsX3BhcnNlIChjb25zdCBjaGFyICp1cmwsIGludCAqZXJyb3IsIHN0cnVjdCBpcmkgKmlyaSwgYm9vbCBwZXJjZW50X2VuY29kZSkKLSAgICAgICB1cmxfdW5lc2NhcGUgKHUtPmhvc3QpOwotICAgICAgIGhvc3RfbW9kaWZpZWQgPSB0cnVlOwotIAotKyAgICAgIC8qIGNoZWNrIGZvciBpbnZhbGlkIGNvbnRyb2wgY2hhcmFjdGVycyBpbiBob3N0IG5hbWUgKi8KLSsgICAgICBmb3IgKHAgPSB1LT5ob3N0OyAqcDsgcCsrKQotKyAgICAgICAgewotKyAgICAgICAgICBpZiAoY19pc2NudHJsKCpwKSkKLSsgICAgICAgICAgICB7Ci0rICAgICAgICAgICAgICB1cmxfZnJlZSh1KTsKLSsgICAgICAgICAgICAgIGVycm9yX2NvZGUgPSBQRV9JTlZBTElEX0hPU1RfTkFNRTsKLSsgICAgICAgICAgICAgIGdvdG8gZXJyb3I7Ci0rICAgICAgICAgICAgfQotKyAgICAgICAgfQotKwotICAgICAgIC8qIEFwcGx5IElETkEgcmVnYXJkbGVzcyBvZiBpcmktPnV0ZjhfZW5jb2RlIHN0YXR1cyAqLwotICAgICAgIGlmIChvcHQuZW5hYmxlX2lyaSAmJiBpcmkpCi0gICAgICAgICB7Ci0tLSAKLTIuNy40Ci0KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvd2dldC93Z2V0XzEuMTkuMS5iYiBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQvd2dldC93Z2V0XzEuMTkuMS5iYgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzhiZGU5NS4uMDAwMDAwMAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3dnZXQvd2dldF8xLjE5LjEuYmIKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLVNSQ19VUkkgPSAiJHtHTlVfTUlSUk9SfS93Z2V0L3dnZXQtJHtQVn0udGFyLmd6IFwKLSAgICAgICAgICAgZmlsZTovLzAwMDEtVW5zZXQtbmVlZF9jaGFyc2V0X2FsaWFzLXdoZW4tYnVpbGRpbmctZm9yLW11c2wucGF0Y2ggXAotICAgICAgICAgICBmaWxlOi8vQ1ZFLTIwMTctNjUwOC5wYXRjaCBcCi0gICAgICAgICAgIgotCi1TUkNfVVJJW21kNXN1bV0gPSAiODdjZWEzNmI3MTYxZmQ0M2UzZmQ1MWE0ZThiODk2ODkiCi1TUkNfVVJJW3NoYTI1NnN1bV0gPSAiOWU0ZjEyZGEzOGNjNjE2N2QwNzUyZDkzNGFiZTI3YzdiMTU5OWE5YWYyOTRlNzM4MjliZTdhYzdiNWI0ZGE0MCIKLQotcmVxdWlyZSB3Z2V0LmluYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC93Z2V0L3dnZXRfMS4xOS41LmJiIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC93Z2V0L3dnZXRfMS4xOS41LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUzN2Q4YzcKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3dnZXQvd2dldF8xLjE5LjUuYmIKQEAgLTAsMCArMSw5IEBACitTUkNfVVJJID0gIiR7R05VX01JUlJPUn0vd2dldC93Z2V0LSR7UFZ9LnRhci5neiBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAxLVVuc2V0LW5lZWRfY2hhcnNldF9hbGlhcy13aGVuLWJ1aWxkaW5nLWZvci1tdXNsLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDItaW1wcm92ZS1yZXByb2R1Y2liaWxpdHkucGF0Y2ggXAorICAgICAgICAgICIKKworU1JDX1VSSVttZDVzdW1dID0gIjJkYjZmMDNkNjU1MDQxZjgyZWI2NGI4YzhhMWZhN2RhIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImIzOTIxMmFiZTFhNzNmMmIyOGY0YzZjYjIyM2M3Mzg1NTljYWFjOTFkNmU0MTZhNmQ5MWQ0YjlkNTVjOWZhZWUiCisKK3JlcXVpcmUgd2dldC5pbmMKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQveGRnLXV0aWxzL3hkZy11dGlsc18xLjEuMS5iYiBiL2ltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQveGRnLXV0aWxzL3hkZy11dGlsc18xLjEuMi5iYgpzaW1pbGFyaXR5IGluZGV4IDg4JQpyZW5hbWUgZnJvbSBpbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3hkZy11dGlscy94ZGctdXRpbHNfMS4xLjEuYmIKcmVuYW1lIHRvIGltcG9ydC1sYXllcnMveW9jdG8tcG9reS9tZXRhL3JlY2lwZXMtZXh0ZW5kZWQveGRnLXV0aWxzL3hkZy11dGlsc18xLjEuMi5iYgppbmRleCAzNGY4ZDEwLi43MzM5Mjg5IDEwMDY0NAotLS0gYS9pbXBvcnQtbGF5ZXJzL3lvY3RvLXBva3kvbWV0YS9yZWNpcGVzLWV4dGVuZGVkL3hkZy11dGlscy94ZGctdXRpbHNfMS4xLjEuYmIKKysrIGIvaW1wb3J0LWxheWVycy95b2N0by1wb2t5L21ldGEvcmVjaXBlcy1leHRlbmRlZC94ZGctdXRpbHMveGRnLXV0aWxzXzEuMS4yLmJiCkBAIC0yMiw4ICsyMiw4IEBACiAgICAgICAgICAgIGZpbGU6Ly8wMDAxLURvbi10LWJ1aWxkLXRoZS1pbi1zY3JpcHQtbWFudWFsLnBhdGNoIFwKICAgICAgICAgICAiCiAKLVNSQ19VUklbbWQ1c3VtXSA9ICIyZDBhZWM2MDM3NzY5YTVmMTM4ZmY0MDRiMWJiNGIxNSIKLVNSQ19VUklbc2hhMjU2c3VtXSA9ICJiMGRkNjNhMjU3NmUwYmIxNmYxYWE3OGQ2ZGRmN2Q2Nzg0Nzg0YTA5OGQ0ZGYxNzE2MWNkNmExN2M3YmM0MTI1IgorU1JDX1VSSVttZDVzdW1dID0gIjM2MWU3NWViNzZjOTRkMTlmNmY0ZjMzMGQ4ZWU2MjZiIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjk1MTk1MmUyYzZiYjIxMjE0ZTBiYjU0ZTBkZmZhMDU3ZDMwZjU1NjMzMDAyMjVjMjRjMTZmYmE4NDYyNThiY2MiCiAKIFVQU1RSRUFNX0NIRUNLX1JFR0VYID0gInhkZy11dGlscy0oP1A8cHZlcj4oKFxkK1tcLlwtX10qKSspKChyY3xhbHBoYXxiZXRhKVxkKyk/KVwuKHRhclwuZ3p8dGd6KSIKIAo=