ZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvY3kvY3lfR0IuZGlmZiBiL3J1bnRpbWUvc3BlbGwvY3kvY3lfR0IuZGlmZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MTFlNzE4Ci0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9jeS9jeV9HQi5kaWZmCkBAIC0wLDAgKzEsOSBAQAorKioqIGN5X0dCLm9yaWcuYWZmCVdlZCBBdWcgMzEgMjE6NDI6MDMgMjAwNQorLS0tIGN5X0dCLmFmZglXZWQgQXVnIDMxIDIxOjQzOjEwIDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDgxLDgyICoqKioKKy0tLSA4MSw4NCAtLS0tCisgIAorKyBNSURXT1JEICctCisrIAorICBQRlggTSBZIDE4CmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2N5L21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9jeS9tYWluLmFhcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZTZjYjg0Ci0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9jeS9tYWluLmFhcApAQCAtMCwwICsxLDgyIEBACisjIEFhcCByZWNpcGUgZm9yIFdlbHNoIFZpbSBzcGVsbCBmaWxlcy4KKworIyBVc2UgYSBmcmVzaGx5IGNvbXBpbGVkIFZpbSBpZiBpdCBleGlzdHMuCitAaWYgb3MucGF0aC5leGlzdHMoJy4uLy4uLy4uL3NyYy92aW0nKToKKyAgICBWSU0gPSAuLi8uLi8uLi9zcmMvdmltCitAZWxzZToKKyAgICA6cHJvZ3NlYXJjaCBWSU0gdmltCisKK1NQRUxMRElSID0gLi4KK0ZJTEVTICAgID0gY3lfR0IuYWZmIGN5X0dCLmRpYworCithbGw6ICRTUEVMTERJUi9jeS5pc28tODg1OS0xNC5zcGwgJFNQRUxMRElSL2N5LnV0Zi04LnNwbCBcCisgICAgICAgICAuLi9SRUFETUVfY3kudHh0CisKKyRTUEVMTERJUi9jeS5pc28tODg1OS0xNC5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyAkVklNIC11IE5PTkUgLWUgLWMgInNldCBlbmM9aXNvLTg4NTktMTQiIAorICAgICAgICAgICAgICAgIC1jICJta3NwZWxsISAkU1BFTExESVIvY3kgY3lfR0IiIC1jIHEKKworJFNQRUxMRElSL2N5LnV0Zi04LnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzICRWSU0gLXUgTk9ORSAtZSAtYyAic2V0IGVuYz11dGYtOCIKKyAgICAgICAgICAgICAgICAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2N5IGN5X0dCIiAtYyBxCisKKy4uL1JFQURNRV9jeS50eHQgOiBSRUFETUVfY3lfR0IudHh0CisgICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldAorCisjCisjIEZldGNoaW5nIHRoZSBmaWxlcyBmcm9tIE9wZW5PZmZpY2Uub3JnLgorIworT09ESVIgPSBodHRwOi8vZnRwLnNlcnZpY2VzLm9wZW5vZmZpY2Uub3JnL3B1Yi9PcGVuT2ZmaWNlLm9yZy9jb250cmliL2RpY3Rpb25hcmllcworOmF0dHIge2ZldGNoID0gJE9PRElSLyVmaWxlJX0gY3lfR0IuemlwCisKKyMgVGhlIGZpbGVzIGRvbid0IGRlcGVuZCBvbiB0aGUgLnppcCBmaWxlIHNvIHRoYXQgd2UgY2FuIGRlbGV0ZSBpdC4KKyMgT25seSBkb3dubG9hZCB0aGUgemlwIGZpbGUgaWYgdGhlIHRhcmdldHMgZG9uJ3QgZXhpc3QuCitjeV9HQi5hZmYgY3lfR0IuZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoIGN5X0dCLnppcAorICAgICAgICA6c3lzICRVTlpJUCBjeV9HQi56aXAKKyAgICAgICAgOmRlbGV0ZSBjeV9HQi56aXAKKyAgICAgICAgOnN5cyAkVklNIGN5X0dCLmFmZiAtZSAtYyAic2V0IGZmPXVuaXgiIC1jIHVwZGF0ZSAtYyBxCisgICAgICAgIDpzeXMgJFZJTSBjeV9HQi5kaWMgLWUgLWMgInNldCBmZj11bml4IiAtYyB1cGRhdGUgLWMgcQorICAgICAgICA6c3lzICRWSU0gUkVBRE1FX2N5X0dCLnR4dCAtZSAtYyAic2V0IGZmPXVuaXgiIC1jIHVwZGF0ZSAtYyBxCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2N5X0dCLm9yaWcuYWZmJyk6CisgICAgICAgICAgICA6Y29weSBjeV9HQi5hZmYgY3lfR0Iub3JpZy5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnY3lfR0Iub3JpZy5kaWMnKToKKyAgICAgICAgICAgIDpjb3B5IGN5X0dCLmRpYyBjeV9HQi5vcmlnLmRpYworICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ2N5X0dCLmRpZmYnKToKKyAgICAgICAgICAgIDpzeXMgcGF0Y2ggPGN5X0dCLmRpZmYKKworCisjIEdlbmVyYXRlIGRpZmYgZmlsZXMsIHNvIHRoYXQgb3RoZXJzIGNhbiBnZXQgdGhlIE9wZW5PZmZpY2UgZmlsZXMgYW5kIGFwcGx5CisjIHRoZSBkaWZmcyB0byBnZXQgdGhlIFZpbSB2ZXJzaW9ucy4KKworZGlmZjoKKyAgICAgICAgOmFzc2VydHBrZyBkaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgY3lfR0Iub3JpZy5hZmYgY3lfR0IuYWZmID5jeV9HQi5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgY3lfR0Iub3JpZy5kaWMgY3lfR0IuZGljID4+Y3lfR0IuZGlmZgorCisKKyMgQ2hlY2sgZm9yIHVwZGF0ZWQgT3Blbk9mZmljZSBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCisjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KKworY2hlY2s6CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgZGlmZgorICAgICAgICA6ZmV0Y2ggY3lfR0IuemlwCisgICAgICAgIDpta2RpciB0bXAKKyAgICAgICAgOmNkIHRtcAorICAgICAgICBAdHJ5OgorICAgICAgICAgICAgQGltcG9ydCBzdGF0CisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9jeV9HQi56aXAKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL2N5X0dCLm9yaWcuYWZmIGN5X0dCLmFmZiA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBjeV9HQi5hZmYgLi4vY3lfR0IubmV3LmFmZgorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vY3lfR0Iub3JpZy5kaWMgY3lfR0IuZGljID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IGN5X0dCLmRpYyAuLi9jeV9HQi5uZXcuZGljCisgICAgICAgIEBmaW5hbGx5OgorICAgICAgICAgICAgOmNkIC4uCisgICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSB0bXAKKyAgICAgICAgICAgIDpkZWxldGUgY3lfR0IuemlwCisKKworIyB2aW06IHNldCBzdHM9NCBzdz00IDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvZGEvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL2RhL21haW4uYWFwCmluZGV4IGI4NGE4MGYuLjY1ZTFhMmYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3BlbGwvZGEvbWFpbi5hYXAKKysrIGIvcnVudGltZS9zcGVsbC9kYS9tYWluLmFhcApAQCAtMzUsNiArMzUsNyBAQAogICAgICAgICA6ZmV0Y2ggZGFfREsuemlwCiAgICAgICAgIDpzeXMgJFVOWklQIGRhX0RLLnppcAogICAgICAgICA6ZGVsZXRlIGRhX0RLLnppcAorICAgICAgICA6ZGVsZXRlIGNvbnRyaWJ1dG9ycyBDT1BZSU5HIE1ha2VmaWxlIGRhX0RLLmV4Y2x1ZGVkCiAgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2RhX0RLLm9yaWcuYWZmJyk6CiAgICAgICAgICAgICA6Y29weSBkYV9ESy5hZmYgZGFfREsub3JpZy5hZmYKICAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnZGFfREsub3JpZy5kaWMnKToKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvZW4uYXNjaWkuc3BsIGIvcnVudGltZS9zcGVsbC9lbi5hc2NpaS5zcGwKaW5kZXggMzYwZTFhZS4uMGJiZTY5OSAxMDA2NDQKLS0tIGEvcnVudGltZS9zcGVsbC9lbi5hc2NpaS5zcGwKKysrIGIvcnVudGltZS9zcGVsbC9lbi5hc2NpaS5zcGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9lbi5sYXRpbjEuc3BsIGIvcnVudGltZS9zcGVsbC9lbi5sYXRpbjEuc3BsCmluZGV4IDAzODIwZDUuLjRkNmY1YWUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3BlbGwvZW4ubGF0aW4xLnNwbAorKysgYi9ydW50aW1lL3NwZWxsL2VuLmxhdGluMS5zcGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9lbi51dGYtOC5zcGwgYi9ydW50aW1lL3NwZWxsL2VuLnV0Zi04LnNwbAppbmRleCAxMDEzOTA3Li5kNjMwYTc2IDEwMDY0NAotLS0gYS9ydW50aW1lL3NwZWxsL2VuLnV0Zi04LnNwbAorKysgYi9ydW50aW1lL3NwZWxsL2VuLnV0Zi04LnNwbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2ZvL21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9mby9tYWluLmFhcAppbmRleCA5NDhkNGE0Li5iOWJlNTQyIDEwMDY0NAotLS0gYS9ydW50aW1lL3NwZWxsL2ZvL21haW4uYWFwCisrKyBiL3J1bnRpbWUvc3BlbGwvZm8vbWFpbi5hYXAKQEAgLTM1LDYgKzM1LDcgQEAKICAgICAgICAgOmZldGNoIGZvX0ZPLnppcAogICAgICAgICA6c3lzICRVTlpJUCBmb19GTy56aXAKICAgICAgICAgOmRlbGV0ZSBmb19GTy56aXAKKyAgICAgICAgOmRlbGV0ZSBjb250cmlidXRvcnMgZm9fRk8uZXhjbHVkZWQgTWFrZWZpbGUgQ09QWUlORwogICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdmb19GTy5vcmlnLmFmZicpOgogICAgICAgICAgICAgOmNvcHkgZm9fRk8uYWZmIGZvX0ZPLm9yaWcuYWZmCiAgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2ZvX0ZPLm9yaWcuZGljJyk6CmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2ZyL21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9mci9tYWluLmFhcAppbmRleCBlNzQyNDMyLi4xYjcwYjgzIDEwMDY0NAotLS0gYS9ydW50aW1lL3NwZWxsL2ZyL21haW4uYWFwCisrKyBiL3J1bnRpbWUvc3BlbGwvZnIvbWFpbi5hYXAKQEAgLTE5LDggKzE5LDggQEAKICAgICAgICAgOnN5cyBlbnYgTEFORz1mcl9GUi5VVEYtOAogCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9mciBmcl9GUiIgLWMgcQogCi0uLi9SRUFETUVfZnIudHh0IDogUkVBRE1FX2ZyX0ZSLnR4dAotICAgICAgICA6Y29weSAkc291cmNlICR0YXJnZXQKKy4uL1JFQURNRV9mci50eHQgOiBSRUFETUVfZnJfRlIudHh0IGxpc2V6LW1vaS50eHQKKyAgICAgICAgOmNhdCAkc291cmNlID4hJHRhcmdldAogCiAjCiAjIEZldGNoaW5nIHRoZSBmaWxlcyBmcm9tIE9wZW5PZmZpY2Uub3JnLgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9nYS9nYV9JRS5kaWZmIGIvcnVudGltZS9zcGVsbC9nYS9nYV9JRS5kaWZmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliNzI4NTMKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL2dhL2dhX0lFLmRpZmYKQEAgLTAsMCArMSwyNyBAQAorKioqIGdhX0lFLm9yaWcuYWZmCVdlZCBBdWcgMzEgMTY6NDg6NDkgMjAwNQorLS0tIGdhX0lFLmFmZglXZWQgQXVnIDMxIDE2OjQ5OjQzIDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDM3LDM4ICoqKioKKy0tLSAzNyw1OCAtLS0tCisgIAorKyBGT0wgIN/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7/CisrIExPVyAg3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/v8KKysgVVBQICDfwMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3e/worKyAKKysgU09GT0ZST00gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWuDh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3evworKyBTT0ZPVE8gICBlYmN0ZWZnaGVqa2xubmVwa3JzdGV2dmtlc2ViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWVlZWVlZWNlZWVlZWVlZWRuZWVlZWVlZWVlZWVwc2VlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXA/CisrIAorKyBNSURXT1JECSctCisrIAorKyBNQVAgOQorKyBNQVAgYeDh4uPk5QorKyBNQVAgZejp6usKKysgTUFQIGns7e7vCisrIE1BUCBv8vP09fYKKysgTUFQIHX5+vv8CisrIE1BUCBu8QorKyBNQVAgY+cKKysgTUFQIHn//QorKyBNQVAgc98KKysgCisgIFBGWCBTIFkgMTgKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvZ2EvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL2dhL21haW4uYWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ3NDVkZTUKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL2dhL21haW4uYWFwCkBAIC0wLDAgKzEsNzkgQEAKKyMgQWFwIHJlY2lwZSBmb3IgSXJpc2ggVmltIHNwZWxsIGZpbGVzLgorCisjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KK0BpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgorICAgIFZJTSA9IC4uLy4uLy4uL3NyYy92aW0KK0BlbHNlOgorICAgIDpwcm9nc2VhcmNoIFZJTSB2aW0KKworU1BFTExESVIgPSAuLgorRklMRVMgICAgPSBnYV9JRS5hZmYgZ2FfSUUuZGljCisKK2FsbDogJFNQRUxMRElSL2dhLmxhdGluMS5zcGwgJFNQRUxMRElSL2dhLnV0Zi04LnNwbCAuLi9SRUFETUVfZ2EudHh0CisKKyMgSSBkb24ndCBoYXZlIGFuIElyaXNoIGxvY2FsZSwgdXNlIHRoZSBEdXRjaCBvbmUgaW5zdGVhZC4KKyRTUEVMTERJUi9nYS5sYXRpbjEuc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9bmxfTkwuSVNPODg1OS0xCisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2dhIGdhX0lFIiAtYyBxCisKKyRTUEVMTERJUi9nYS51dGYtOC5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1ubF9OTC5VVEYtOAorCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9nYSBnYV9JRSIgLWMgcQorCisuLi9SRUFETUVfZ2EudHh0IDogUkVBRE1FX2dhX0lFLnR4dAorICAgICAgICA6Y29weSAkc291cmNlICR0YXJnZXQKKworIworIyBGZXRjaGluZyB0aGUgZmlsZXMgZnJvbSBPcGVuT2ZmaWNlLm9yZy4KKyMKK09PRElSID0gaHR0cDovL2Z0cC5zZXJ2aWNlcy5vcGVub2ZmaWNlLm9yZy9wdWIvT3Blbk9mZmljZS5vcmcvY29udHJpYi9kaWN0aW9uYXJpZXMKKzphdHRyIHtmZXRjaCA9ICRPT0RJUi8lZmlsZSV9IGdhX0lFLnppcAorCisjIFRoZSBmaWxlcyBkb24ndCBkZXBlbmQgb24gdGhlIC56aXAgZmlsZSBzbyB0aGF0IHdlIGNhbiBkZWxldGUgaXQuCisjIE9ubHkgZG93bmxvYWQgdGhlIHppcCBmaWxlIGlmIHRoZSB0YXJnZXRzIGRvbid0IGV4aXN0LgorZ2FfSUUuYWZmIGdhX0lFLmRpYzoge2J1aWxkY2hlY2s9fQorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCisgICAgICAgIDpmZXRjaCBnYV9JRS56aXAKKyAgICAgICAgOnN5cyAkVU5aSVAgZ2FfSUUuemlwCisgICAgICAgIDpkZWxldGUgZ2FfSUUuemlwCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2dhX0lFLm9yaWcuYWZmJyk6CisgICAgICAgICAgICA6Y29weSBnYV9JRS5hZmYgZ2FfSUUub3JpZy5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnZ2FfSUUub3JpZy5kaWMnKToKKyAgICAgICAgICAgIDpjb3B5IGdhX0lFLmRpYyBnYV9JRS5vcmlnLmRpYworICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ2dhX0lFLmRpZmYnKToKKyAgICAgICAgICAgIDpzeXMgcGF0Y2ggPGdhX0lFLmRpZmYKKworCisjIEdlbmVyYXRlIGRpZmYgZmlsZXMsIHNvIHRoYXQgb3RoZXJzIGNhbiBnZXQgdGhlIE9wZW5PZmZpY2UgZmlsZXMgYW5kIGFwcGx5CisjIHRoZSBkaWZmcyB0byBnZXQgdGhlIFZpbSB2ZXJzaW9ucy4KKworZGlmZjoKKyAgICAgICAgOmFzc2VydHBrZyBkaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgZ2FfSUUub3JpZy5hZmYgZ2FfSUUuYWZmID5nYV9JRS5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgZ2FfSUUub3JpZy5kaWMgZ2FfSUUuZGljID4+Z2FfSUUuZGlmZgorCisKKyMgQ2hlY2sgZm9yIHVwZGF0ZWQgT3Blbk9mZmljZSBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCisjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KKworY2hlY2s6CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgZGlmZgorICAgICAgICA6ZmV0Y2ggZ2FfSUUuemlwCisgICAgICAgIDpta2RpciB0bXAKKyAgICAgICAgOmNkIHRtcAorICAgICAgICBAdHJ5OgorICAgICAgICAgICAgQGltcG9ydCBzdGF0CisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9nYV9JRS56aXAKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL2dhX0lFLm9yaWcuYWZmIGdhX0lFLmFmZiA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBnYV9JRS5hZmYgLi4vZ2FfSUUubmV3LmFmZgorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vZ2FfSUUub3JpZy5kaWMgZ2FfSUUuZGljID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IGdhX0lFLmRpYyAuLi9nYV9JRS5uZXcuZGljCisgICAgICAgIEBmaW5hbGx5OgorICAgICAgICAgICAgOmNkIC4uCisgICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSB0bXAKKyAgICAgICAgICAgIDpkZWxldGUgZ2FfSUUuemlwCisKKworIyB2aW06IHNldCBzdHM9NCBzdz00IDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvZ2QvZ2RfR0IuZGlmZiBiL3J1bnRpbWUvc3BlbGwvZ2QvZ2RfR0IuZGlmZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MTZiYWU3Ci0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9nZC9nZF9HQi5kaWZmCkBAIC0wLDAgKzEsMjYgQEAKKyoqKiBnZF9HQi5vcmlnLmFmZglXZWQgQXVnIDMxIDIwOjUwOjAyIDIwMDUKKy0tLSBnZF9HQi5hZmYJV2VkIEF1ZyAzMSAyMDo1MDo0MyAyMDA1CisqKioqKioqKioqKioqKioKKyoqKiAxOSAqKioqCistLS0gMTksMzkgLS0tLQorICBUUlkgYWhpbnJkZXNjbGdvdXRtYuBmLfJBQ+xU+UJwR1NETehJUlBMTkVG6U8nVfPA0szZSMnICisrIAorKyBGT0wgIN/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7/CisrIExPVyAg3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/v8KKysgVVBQICDfwMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3e/worKyAKKysgU09GT0ZST00gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWuDh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3evworKyBTT0ZPVE8gICBlYmN0ZWZnaGVqa2xubmVwa3JzdGV2dmtlc2ViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWVlZWVlZWNlZWVlZWVlZWRuZWVlZWVlZWVlZWVwc2VlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXA/CisrIAorKyBNSURXT1JECSctCisrIAorKyBNQVAgOQorKyBNQVAgYeDh4uPk5QorKyBNQVAgZejp6usKKysgTUFQIGns7e7vCisrIE1BUCBv8vP09fYKKysgTUFQIHX5+vv8CisrIE1BUCBu8QorKyBNQVAgY+cKKysgTUFQIHn//QorKyBNQVAgc98KZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvZ2QvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL2dkL21haW4uYWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5OTJmMDMKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL2dkL21haW4uYWFwCkBAIC0wLDAgKzEsNzggQEAKKyMgQWFwIHJlY2lwZSBmb3IgU2NvdHRpc2ggR2FlbGljIFZpbSBzcGVsbCBmaWxlcy4KKworIyBVc2UgYSBmcmVzaGx5IGNvbXBpbGVkIFZpbSBpZiBpdCBleGlzdHMuCitAaWYgb3MucGF0aC5leGlzdHMoJy4uLy4uLy4uL3NyYy92aW0nKToKKyAgICBWSU0gPSAuLi8uLi8uLi9zcmMvdmltCitAZWxzZToKKyAgICA6cHJvZ3NlYXJjaCBWSU0gdmltCisKK1NQRUxMRElSID0gLi4KK0ZJTEVTICAgID0gZ2RfR0IuYWZmIGdkX0dCLmRpYworCithbGw6ICRTUEVMTERJUi9nZC5sYXRpbjEuc3BsICRTUEVMTERJUi9nZC51dGYtOC5zcGwgLi4vUkVBRE1FX2dkLnR4dAorCiskU1BFTExESVIvZ2QubGF0aW4xLnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPWdkX0dCLklTTzg4NTktMQorCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9nZCBnZF9HQiIgLWMgcQorCiskU1BFTExESVIvZ2QudXRmLTguc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9Z2RfR0IuVVRGLTgKKwkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvZ2QgZ2RfR0IiIC1jIHEKKworLi4vUkVBRE1FX2dkLnR4dCA6IFJFQURNRV9nZF9HQi50eHQKKyAgICAgICAgOmNvcHkgJHNvdXJjZSAkdGFyZ2V0CisKKyMKKyMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCisjCitPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCis6YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSBnZF9HQi56aXAKKworIyBUaGUgZmlsZXMgZG9uJ3QgZGVwZW5kIG9uIHRoZSAuemlwIGZpbGUgc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGl0LgorIyBPbmx5IGRvd25sb2FkIHRoZSB6aXAgZmlsZSBpZiB0aGUgdGFyZ2V0cyBkb24ndCBleGlzdC4KK2dkX0dCLmFmZiBnZF9HQi5kaWM6IHtidWlsZGNoZWNrPX0KKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBwYXRjaAorICAgICAgICA6ZmV0Y2ggZ2RfR0IuemlwCisgICAgICAgIDpzeXMgJFVOWklQIGdkX0dCLnppcAorICAgICAgICA6ZGVsZXRlIGdkX0dCLnppcAorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdnZF9HQi5vcmlnLmFmZicpOgorICAgICAgICAgICAgOmNvcHkgZ2RfR0IuYWZmIGdkX0dCLm9yaWcuYWZmCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2dkX0dCLm9yaWcuZGljJyk6CisgICAgICAgICAgICA6Y29weSBnZF9HQi5kaWMgZ2RfR0Iub3JpZy5kaWMKKyAgICAgICAgQGlmIG9zLnBhdGguZXhpc3RzKCdnZF9HQi5kaWZmJyk6CisgICAgICAgICAgICA6c3lzIHBhdGNoIDxnZF9HQi5kaWZmCisKKworIyBHZW5lcmF0ZSBkaWZmIGZpbGVzLCBzbyB0aGF0IG90aGVycyBjYW4gZ2V0IHRoZSBPcGVuT2ZmaWNlIGZpbGVzIGFuZCBhcHBseQorIyB0aGUgZGlmZnMgdG8gZ2V0IHRoZSBWaW0gdmVyc2lvbnMuCisKK2RpZmY6CisgICAgICAgIDphc3NlcnRwa2cgZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIGdkX0dCLm9yaWcuYWZmIGdkX0dCLmFmZiA+Z2RfR0IuZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIGdkX0dCLm9yaWcuZGljIGdkX0dCLmRpYyA+PmdkX0dCLmRpZmYKKworCisjIENoZWNrIGZvciB1cGRhdGVkIE9wZW5PZmZpY2Ugc3BlbGwgZmlsZXMuICBXaGVuIHRoZXJlIGFyZSBjaGFuZ2VzIHRoZQorIyAiLm5ldy5hZmYiIGFuZCAiLm5ldy5kaWMiIGZpbGVzIGFyZSBsZWZ0IGJlaGluZCBmb3IgbWFudWFsIGluc3BlY3Rpb24uCisKK2NoZWNrOgorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIGRpZmYKKyAgICAgICAgOmZldGNoIGdkX0dCLnppcAorICAgICAgICA6bWtkaXIgdG1wCisgICAgICAgIDpjZCB0bXAKKyAgICAgICAgQHRyeToKKyAgICAgICAgICAgIEBpbXBvcnQgc3RhdAorICAgICAgICAgICAgOnN5cyAkVU5aSVAgLi4vZ2RfR0IuemlwCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9nZF9HQi5vcmlnLmFmZiBnZF9HQi5hZmYgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgZ2RfR0IuYWZmIC4uL2dkX0dCLm5ldy5hZmYKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL2dkX0dCLm9yaWcuZGljIGdkX0dCLmRpYyA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBnZF9HQi5kaWMgLi4vZ2RfR0IubmV3LmRpYworICAgICAgICBAZmluYWxseToKKyAgICAgICAgICAgIDpjZCAuLgorICAgICAgICAgICAgOmRlbGV0ZSB7cn17Zn17cX0gdG1wCisgICAgICAgICAgICA6ZGVsZXRlIGdkX0dCLnppcAorCisKKyMgdmltOiBzZXQgc3RzPTQgc3c9NCA6CmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2hyL21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9oci9tYWluLmFhcAppbmRleCA2OTlkNjFmLi4xYjk5OGNhIDEwMDY0NAotLS0gYS9ydW50aW1lL3NwZWxsL2hyL21haW4uYWFwCisrKyBiL3J1bnRpbWUvc3BlbGwvaHIvbWFpbi5hYXAKQEAgLTksOCArOSw4IEBACiBTUEVMTERJUiA9IC4uCiBGSUxFUyAgICA9IGhyX0hSLmFmZiBocl9IUi5kaWMKIAotYWxsOiAkU1BFTExESVIvaHIuaXNvLTg4NTktMi5zcGwgJFNQRUxMRElSL3BsLnV0Zi04LnNwbCBcCi0gICAgICAgICRTUEVMTERJUi9oci5jcDEyNTAuc3BsIC4uL1JFQURNRV9wbC50eHQKK2FsbDogJFNQRUxMRElSL2hyLmlzby04ODU5LTIuc3BsICRTUEVMTERJUi9oci51dGYtOC5zcGwgXAorICAgICAgICAkU1BFTExESVIvaHIuY3AxMjUwLnNwbCAuLi9SRUFETUVfaHIudHh0CiAKICRTUEVMTERJUi9oci5pc28tODg1OS0yLnNwbCA6ICRGSUxFUwogICAgICAgICA6c3lzIGVudiBMQU5HPWhyX0hSLklTTzg4NTktMiAkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9ociBocl9IUiIgLWMgcQpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9pZC9pZF9JRC5kaWZmIGIvcnVudGltZS9zcGVsbC9pZC9pZF9JRC5kaWZmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQwMjczYWUKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL2lkL2lkX0lELmRpZmYKQEAgLTAsMCArMSwyMiBAQAorKioqIGlkX0lELm9yaWcuYWZmCVdlZCBBdWcgMzEgMTY6NDE6MTEgMjAwNQorLS0tIGlkX0lELmFmZglXZWQgQXVnIDMxIDE2OjQzOjI5IDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDE4LDE5ICoqKioKKy0tLSAxOCwyNiAtLS0tCisgIAorKyBGT0wgIN/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7/CisrIExPVyAg3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/v8KKysgVVBQICDfwMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3e/worKyAKKysgU09GT0ZST00gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWuDh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3evworKyBTT0ZPVE8gICBlYmN0ZWZnaGVqa2xubmVwa3JzdGV2dmtlc2ViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWVlZWVlZWNlZWVlZWVlZWRuZWVlZWVlZWVlZWVwc2VlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXA/CisrIAorICBQRlggQSBZIDEKKyoqKiBpZF9JRC5vcmlnLmRpYwlXZWQgQXVnIDMxIDE2OjQxOjExIDIwMDUKKy0tLSBpZF9JRC5kaWMJV2VkIEF1ZyAzMSAxNjo0MTozNSAyMDA1CisqKioqKioqKioqKioqKioKKyoqKiAyMTcyOSwyMTczMSAqKioqCisgIGJlcmFiYXJrYW4KKy0gYnVsZXRpbgorICBrZXJudQorLS0tIDIxNzI5LDIxNzMwIC0tLS0KZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvaWQvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL2lkL21haW4uYWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjMDRiNTUKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL2lkL21haW4uYWFwCkBAIC0wLDAgKzEsNzkgQEAKKyMgQWFwIHJlY2lwZSBmb3IgSW5kb25lc2lhbiBWaW0gc3BlbGwgZmlsZXMuCisKKyMgVXNlIGEgZnJlc2hseSBjb21waWxlZCBWaW0gaWYgaXQgZXhpc3RzLgorQGlmIG9zLnBhdGguZXhpc3RzKCcuLi8uLi8uLi9zcmMvdmltJyk6CisgICAgVklNID0gLi4vLi4vLi4vc3JjL3ZpbQorQGVsc2U6CisgICAgOnByb2dzZWFyY2ggVklNIHZpbQorCitTUEVMTERJUiA9IC4uCitGSUxFUyAgICA9IGlkX0lELmFmZiBpZF9JRC5kaWMKKworYWxsOiAkU1BFTExESVIvaWQubGF0aW4xLnNwbCAkU1BFTExESVIvaWQudXRmLTguc3BsIC4uL1JFQURNRV9pZC50eHQKKworIyBJIGRvbid0IGhhdmUgYW4gSW5kb25lc2lhbiBsb2NhbGUsIHVzZSB0aGUgRHV0Y2ggb25lIGluc3RlYWQuCiskU1BFTExESVIvaWQubGF0aW4xLnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPW5sX05MLklTTzg4NTktMQorCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9pZCBpZF9JRCIgLWMgcQorCiskU1BFTExESVIvaWQudXRmLTguc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9bmxfTkwuVVRGLTgKKwkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvaWQgaWRfSUQiIC1jIHEKKworLi4vUkVBRE1FX2lkLnR4dCA6IFJFQURNRV9pZF9JRC50eHQKKyAgICAgICAgOmNvcHkgJHNvdXJjZSAkdGFyZ2V0CisKKyMKKyMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCisjCitPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCis6YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSBpZF9JRC56aXAKKworIyBUaGUgZmlsZXMgZG9uJ3QgZGVwZW5kIG9uIHRoZSAuemlwIGZpbGUgc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGl0LgorIyBPbmx5IGRvd25sb2FkIHRoZSB6aXAgZmlsZSBpZiB0aGUgdGFyZ2V0cyBkb24ndCBleGlzdC4KK2lkX0lELmFmZiBpZF9JRC5kaWM6IHtidWlsZGNoZWNrPX0KKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBwYXRjaAorICAgICAgICA6ZmV0Y2ggaWRfSUQuemlwCisgICAgICAgIDpzeXMgJFVOWklQIGlkX0lELnppcAorICAgICAgICA6ZGVsZXRlIGlkX0lELnppcAorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdpZF9JRC5vcmlnLmFmZicpOgorICAgICAgICAgICAgOmNvcHkgaWRfSUQuYWZmIGlkX0lELm9yaWcuYWZmCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2lkX0lELm9yaWcuZGljJyk6CisgICAgICAgICAgICA6Y29weSBpZF9JRC5kaWMgaWRfSUQub3JpZy5kaWMKKyAgICAgICAgQGlmIG9zLnBhdGguZXhpc3RzKCdpZF9JRC5kaWZmJyk6CisgICAgICAgICAgICA6c3lzIHBhdGNoIDxpZF9JRC5kaWZmCisKKworIyBHZW5lcmF0ZSBkaWZmIGZpbGVzLCBzbyB0aGF0IG90aGVycyBjYW4gZ2V0IHRoZSBPcGVuT2ZmaWNlIGZpbGVzIGFuZCBhcHBseQorIyB0aGUgZGlmZnMgdG8gZ2V0IHRoZSBWaW0gdmVyc2lvbnMuCisKK2RpZmY6CisgICAgICAgIDphc3NlcnRwa2cgZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIGlkX0lELm9yaWcuYWZmIGlkX0lELmFmZiA+aWRfSUQuZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIGlkX0lELm9yaWcuZGljIGlkX0lELmRpYyA+PmlkX0lELmRpZmYKKworCisjIENoZWNrIGZvciB1cGRhdGVkIE9wZW5PZmZpY2Ugc3BlbGwgZmlsZXMuICBXaGVuIHRoZXJlIGFyZSBjaGFuZ2VzIHRoZQorIyAiLm5ldy5hZmYiIGFuZCAiLm5ldy5kaWMiIGZpbGVzIGFyZSBsZWZ0IGJlaGluZCBmb3IgbWFudWFsIGluc3BlY3Rpb24uCisKK2NoZWNrOgorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIGRpZmYKKyAgICAgICAgOmZldGNoIGlkX0lELnppcAorICAgICAgICA6bWtkaXIgdG1wCisgICAgICAgIDpjZCB0bXAKKyAgICAgICAgQHRyeToKKyAgICAgICAgICAgIEBpbXBvcnQgc3RhdAorICAgICAgICAgICAgOnN5cyAkVU5aSVAgLi4vaWRfSUQuemlwCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9pZF9JRC5vcmlnLmFmZiBpZF9JRC5hZmYgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgaWRfSUQuYWZmIC4uL2lkX0lELm5ldy5hZmYKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL2lkX0lELm9yaWcuZGljIGlkX0lELmRpYyA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBpZF9JRC5kaWMgLi4vaWRfSUQubmV3LmRpYworICAgICAgICBAZmluYWxseToKKyAgICAgICAgICAgIDpjZCAuLgorICAgICAgICAgICAgOmRlbGV0ZSB7cn17Zn17cX0gdG1wCisgICAgICAgICAgICA6ZGVsZXRlIGlkX0lELnppcAorCisKKyMgdmltOiBzZXQgc3RzPTQgc3c9NCA6CmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2l0L21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9pdC9tYWluLmFhcAppbmRleCBlYWNlZDY4Li5mMWJkNzQyIDEwMDY0NAotLS0gYS9ydW50aW1lL3NwZWxsL2l0L21haW4uYWFwCisrKyBiL3J1bnRpbWUvc3BlbGwvaXQvbWFpbi5hYXAKQEAgLTE5LDggKzE5LDggQEAKICAgICAgICAgOnN5cyBlbnYgTEFORz1pdF9JVC5VVEYtOAogCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9pdCBpdF9JVCIgLWMgcQogCi0uLi9SRUFETUVfaXQudHh0IDogUkVBRE1FX2l0X0lULnR4dAotICAgICAgICA6Y29weSAkc291cmNlICR0YXJnZXQKKy4uL1JFQURNRV9pdC50eHQgOiBSRUFETUVfaXRfSVQudHh0IFJFQURNRS50eHQKKyAgICAgICAgOmNhdCAkc291cmNlID4hICR0YXJnZXQKIAogIwogIyBGZXRjaGluZyB0aGUgZmlsZXMgZnJvbSBPcGVuT2ZmaWNlLm9yZy4KQEAgLTM1LDYgKzM1LDcgQEAKICAgICAgICAgOmZldGNoIGl0X0lULnppcAogICAgICAgICA6c3lzICRVTlpJUCBpdF9JVC56aXAKICAgICAgICAgOmRlbGV0ZSBpdF9JVC56aXAKKyAgICAgICAgOmRlbGV0ZSBHUEwudHh0IGhpc3RvcnkudHh0IGxpY2Vuc2UudHh0IG5vdGVzLnR4dCBzdGF0aXN0aWNoZS5zeGMgdGhhbmtzLnR4dAogICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdpdF9JVC5vcmlnLmFmZicpOgogICAgICAgICAgICAgOmNvcHkgaXRfSVQuYWZmIGl0X0lULm9yaWcuYWZmCiAgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2l0X0lULm9yaWcuZGljJyk6CmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2t1L2t1X1RSLmRpZmYgYi9ydW50aW1lL3NwZWxsL2t1L2t1X1RSLmRpZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwva3Uva3VfVFIuZGlmZgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9rdS9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwva3UvbWFpbi5hYXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjAwZmIyZgotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwva3UvbWFpbi5hYXAKQEAgLTAsMCArMSw4MiBAQAorIyBBYXAgcmVjaXBlIGZvciBLdXJkaXNoIFZpbSBzcGVsbCBmaWxlcy4KKworIyBVc2UgYSBmcmVzaGx5IGNvbXBpbGVkIFZpbSBpZiBpdCBleGlzdHMuCitAaWYgb3MucGF0aC5leGlzdHMoJy4uLy4uLy4uL3NyYy92aW0nKToKKyAgICBWSU0gPSAuLi8uLi8uLi9zcmMvdmltCitAZWxzZToKKyAgICA6cHJvZ3NlYXJjaCBWSU0gdmltCisKK1NQRUxMRElSID0gLi4KK0ZJTEVTICAgID0ga3VfVFIuYWZmIGt1X1RSLmRpYworCisjIEkgZG9uJ3QgaGF2ZSBhIEt1cmRpc2ggbG9jYWxlLCB1cyB0aGUgVHVya2lzaCBvbmUuCithbGw6ICRTUEVMTERJUi9rdS5pc28tODg1OS05LnNwbCAkU1BFTExESVIva3UudXRmLTguc3BsIFwKKyAgICAgICAgLi4vUkVBRE1FX2t1LnR4dAorCiskU1BFTExESVIva3UuaXNvLTg4NTktOS5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz10cl9UUi5JU084ODU5LTkgJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIva3Uga3VfVFIiIC1jIHEKKworJFNQRUxMRElSL2t1LnV0Zi04LnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPXRyX1RSLlVURi04ICRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2t1IGt1X1RSIiAtYyBxCisKKy4uL1JFQURNRV9rdS50eHQ6IFJFQURNRV9rdV9UUi50eHQKKyAgICAgICAgOmNvcHkgJHNvdXJjZSAkdGFyZ2V0CisKKyMKKyMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCisjCitPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCis6YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSBrdV9UUi56aXAKKworIyBUaGUgZmlsZXMgZG9uJ3QgZGVwZW5kIG9uIHRoZSAuemlwIGZpbGUgc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGl0LgorIyBPbmx5IGRvd25sb2FkIHRoZSB6aXAgZmlsZSBpZiB0aGUgdGFyZ2V0cyBkb24ndCBleGlzdC4KKyMgVGhpcyBpcyBhIGJpdCB0cmlja3ksIHNpbmNlIHRoZSBmaWxlIG5hbWUgaW5jbHVkZXMgdGhlIGRhdGUuCitrdV9UUi5hZmYga3VfVFIuZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoIGt1X1RSLnppcAorICAgICAgICA6c3lzICRVTlpJUCBrdV9UUi56aXAKKyAgICAgICAgOmRlbGV0ZSBrdV9UUi56aXAKKyAgICAgICAgOnN5cyAkVklNIGt1X1RSLmFmZiAtZSAtYyAic2V0IGZmPXVuaXgiIC1jIHVwZGF0ZSAtYyBxCisgICAgICAgIDpzeXMgJFZJTSBrdV9UUi5kaWMgLWUgLWMgInNldCBmZj11bml4IiAtYyB1cGRhdGUgLWMgcQorICAgICAgICA6c3lzICRWSU0gUkVBRE1FX2t1X1RSLnR4dCAtZSAtYyAic2V0IGZmPXVuaXgiIC1jIHVwZGF0ZSAtYyBxCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2t1X1RSLm9yaWcuYWZmJyk6CisgICAgICAgICAgICA6Y29weSBrdV9UUi5hZmYga3VfVFIub3JpZy5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygna3VfVFIub3JpZy5kaWMnKToKKyAgICAgICAgICAgIDpjb3B5IGt1X1RSLmRpYyBrdV9UUi5vcmlnLmRpYworICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ2t1X1RSLmRpZmYnKToKKyAgICAgICAgICAgIDpzeXMgcGF0Y2ggPGt1X1RSLmRpZmYKKworCisjIEdlbmVyYXRlIGRpZmYgZmlsZXMsIHNvIHRoYXQgb3RoZXJzIGNhbiBnZXQgdGhlIE9wZW5PZmZpY2UgZmlsZXMgYW5kIGFwcGx5CisjIHRoZSBkaWZmcyB0byBnZXQgdGhlIFZpbSB2ZXJzaW9ucy4KKworZGlmZjoKKyAgICAgICAgOmFzc2VydHBrZyBkaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEga3VfVFIub3JpZy5hZmYga3VfVFIuYWZmID5rdV9UUi5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEga3VfVFIub3JpZy5kaWMga3VfVFIuZGljID4+a3VfVFIuZGlmZgorCisKKyMgQ2hlY2sgZm9yIHVwZGF0ZWQgc3BlbGwgZmlsZXMuICBXaGVuIHRoZXJlIGFyZSBjaGFuZ2VzIHRoZQorIyAiLm5ldy5hZmYiIGFuZCAiLm5ldy5kaWMiIGZpbGVzIGFyZSBsZWZ0IGJlaGluZCBmb3IgbWFudWFsIGluc3BlY3Rpb24uCisKK2NoZWNrOgorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIGRpZmYKKyAgICAgICAgOmZldGNoIGt1X1RSLnppcAorICAgICAgICA6bWtkaXIgdG1wCisgICAgICAgIDpjZCB0bXAKKyAgICAgICAgQHRyeToKKyAgICAgICAgICAgIEBpbXBvcnQgc3RhdAorICAgICAgICAgICAgOnN5cyAkVU5aSVAgLi4va3VfVFIuemlwCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9rdV9UUi5vcmlnLmFmZiBrdV9UUi5hZmYgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkga3VfVFIuYWZmIC4uL2t1X1RSLm5ldy5hZmYKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL2t1X1RSLm9yaWcuZGljIGt1X1RSLmRpYyA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBrdV9UUi5kaWMgLi4va3VfVFIubmV3LmRpYworICAgICAgICBAZmluYWxseToKKyAgICAgICAgICAgIDpjZCAuLgorICAgICAgICAgICAgOmRlbGV0ZSB7cn17Zn17cX0gdG1wCisgICAgICAgICAgICA6ZGVsZXRlIGt1X1RSLnppcAorCisKKyMgdmltOiBzZXQgc3RzPTQgc3c9NCA6CmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2xhL2xhLmRpZmYgYi9ydW50aW1lL3NwZWxsL2xhL2xhLmRpZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzg3YjA5MQotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvbGEvbGEuZGlmZgpAQCAtMCwwICsxLDEyIEBACisqKiogbGEub3JpZy5hZmYJV2VkIEF1ZyAzMSAxNzowOTo1MCAyMDA1CistLS0gbGEuYWZmCVdlZCBBdWcgMzEgMTc6MTA6NDIgMjAwNQorKioqKioqKioqKioqKioqCisqKiogMiwzICoqKioKKy0tLSAyLDggLS0tLQorICBUUlkgZXNpYW5ydG9sY2R1Z21waGJ5ZnZrdworKyAKKysgRk9MICDf4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+/worKyBMT1cgIN/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7/CisrIFVQUCAg38DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3v8KKysgCisgIFNGWCBhIFkgMTI0CmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2xhL21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9sYS9tYWluLmFhcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wY2YxZDhhCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9sYS9tYWluLmFhcApAQCAtMCwwICsxLDc4IEBACisjIEFhcCByZWNpcGUgZm9yIExhdGluIFZpbSBzcGVsbCBmaWxlcy4KKworIyBVc2UgYSBmcmVzaGx5IGNvbXBpbGVkIFZpbSBpZiBpdCBleGlzdHMuCitAaWYgb3MucGF0aC5leGlzdHMoJy4uLy4uLy4uL3NyYy92aW0nKToKKyAgICBWSU0gPSAuLi8uLi8uLi9zcmMvdmltCitAZWxzZToKKyAgICA6cHJvZ3NlYXJjaCBWSU0gdmltCisKK1NQRUxMRElSID0gLi4KK0ZJTEVTICAgID0gbGEuYWZmIGxhLmRpYworCithbGw6ICRTUEVMTERJUi9sYS5sYXRpbjEuc3BsICRTUEVMTERJUi9sYS51dGYtOC5zcGwgLi4vUkVBRE1FX2xhLnR4dAorCiskU1BFTExESVIvbGEubGF0aW4xLnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPWxhX0xOLklTTzg4NTktMQorCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9sYSBsYSIgLWMgcQorCiskU1BFTExESVIvbGEudXRmLTguc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgJFZJTSAtdSBOT05FIC1lIC1jICJzZXQgZW5jPXV0Zi04IgorICAgICAgICAgICAgICAgIC1jICJta3NwZWxsISAkU1BFTExESVIvbGEgbGEiIC1jIHEKKworLi4vUkVBRE1FX2xhLnR4dCA6IFJFQURNRV9sYS50eHQKKyAgICAgICAgOmNvcHkgJHNvdXJjZSAkdGFyZ2V0CisKKyMKKyMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCisjCitPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCis6YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSBsYS56aXAKKworIyBUaGUgZmlsZXMgZG9uJ3QgZGVwZW5kIG9uIHRoZSAuemlwIGZpbGUgc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGl0LgorIyBPbmx5IGRvd25sb2FkIHRoZSB6aXAgZmlsZSBpZiB0aGUgdGFyZ2V0cyBkb24ndCBleGlzdC4KK2xhLmFmZiBsYS5kaWM6IHtidWlsZGNoZWNrPX0KKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBwYXRjaAorICAgICAgICA6ZmV0Y2ggbGEuemlwCisgICAgICAgIDpzeXMgJFVOWklQIGxhLnppcAorICAgICAgICA6ZGVsZXRlIGxhLnppcAorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdsYS5vcmlnLmFmZicpOgorICAgICAgICAgICAgOmNvcHkgbGEuYWZmIGxhLm9yaWcuYWZmCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2xhLm9yaWcuZGljJyk6CisgICAgICAgICAgICA6Y29weSBsYS5kaWMgbGEub3JpZy5kaWMKKyAgICAgICAgQGlmIG9zLnBhdGguZXhpc3RzKCdsYS5kaWZmJyk6CisgICAgICAgICAgICA6c3lzIHBhdGNoIDxsYS5kaWZmCisKKworIyBHZW5lcmF0ZSBkaWZmIGZpbGVzLCBzbyB0aGF0IG90aGVycyBjYW4gZ2V0IHRoZSBPcGVuT2ZmaWNlIGZpbGVzIGFuZCBhcHBseQorIyB0aGUgZGlmZnMgdG8gZ2V0IHRoZSBWaW0gdmVyc2lvbnMuCisKK2RpZmY6CisgICAgICAgIDphc3NlcnRwa2cgZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIGxhLm9yaWcuYWZmIGxhLmFmZiA+bGEuZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIGxhLm9yaWcuZGljIGxhLmRpYyA+PmxhLmRpZmYKKworCisjIENoZWNrIGZvciB1cGRhdGVkIE9wZW5PZmZpY2Ugc3BlbGwgZmlsZXMuICBXaGVuIHRoZXJlIGFyZSBjaGFuZ2VzIHRoZQorIyAiLm5ldy5hZmYiIGFuZCAiLm5ldy5kaWMiIGZpbGVzIGFyZSBsZWZ0IGJlaGluZCBmb3IgbWFudWFsIGluc3BlY3Rpb24uCisKK2NoZWNrOgorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIGRpZmYKKyAgICAgICAgOmZldGNoIGxhLnppcAorICAgICAgICA6bWtkaXIgdG1wCisgICAgICAgIDpjZCB0bXAKKyAgICAgICAgQHRyeToKKyAgICAgICAgICAgIEBpbXBvcnQgc3RhdAorICAgICAgICAgICAgOnN5cyAkVU5aSVAgLi4vbGEuemlwCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9sYS5vcmlnLmFmZiBsYS5hZmYgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgbGEuYWZmIC4uL2xhLm5ldy5hZmYKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL2xhLm9yaWcuZGljIGxhLmRpYyA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBsYS5kaWMgLi4vbGEubmV3LmRpYworICAgICAgICBAZmluYWxseToKKyAgICAgICAgICAgIDpjZCAuLgorICAgICAgICAgICAgOmRlbGV0ZSB7cn17Zn17cX0gdG1wCisgICAgICAgICAgICA6ZGVsZXRlIGxhLnppcAorCisKKyMgdmltOiBzZXQgc3RzPTQgc3c9NCA6CmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2x0L2x0X0xULmRpZmYgYi9ydW50aW1lL3NwZWxsL2x0L2x0X0xULmRpZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvbHQvbHRfTFQuZGlmZgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9sdC9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvbHQvbWFpbi5hYXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTJlZGFkMgotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvbHQvbWFpbi5hYXAKQEAgLTAsMCArMSw3OCBAQAorIyBBYXAgcmVjaXBlIGZvciBMaXRodWFuaWFuIFZpbSBzcGVsbCBmaWxlcy4KKworIyBVc2UgYSBmcmVzaGx5IGNvbXBpbGVkIFZpbSBpZiBpdCBleGlzdHMuCitAaWYgb3MucGF0aC5leGlzdHMoJy4uLy4uLy4uL3NyYy92aW0nKToKKyAgICBWSU0gPSAuLi8uLi8uLi9zcmMvdmltCitAZWxzZToKKyAgICA6cHJvZ3NlYXJjaCBWSU0gdmltCisKK1NQRUxMRElSID0gLi4KK0ZJTEVTICAgID0gbHRfTFQuYWZmIGx0X0xULmRpYworCithbGw6ICRTUEVMTERJUi9sdC5pc28tODg1OS0xMy5zcGwgJFNQRUxMRElSL2x0LnV0Zi04LnNwbCBcCisgICAgICAgICAuLi9SRUFETUVfbHQudHh0CisKKyRTUEVMTERJUi9sdC5pc28tODg1OS0xMy5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1sdF9MVC5JU084ODU5LTEzICRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2x0IGx0X0xUIiAtYyBxCisKKyRTUEVMTERJUi9sdC51dGYtOC5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1sdF9MVC5VVEYtOCAkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9sdCBsdF9MVCIgLWMgcQorCisuLi9SRUFETUVfbHQudHh0OiBSRUFETUVfbHRfTFQudHh0CisgICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldAorCisjCisjIEZldGNoaW5nIHRoZSBmaWxlcyBmcm9tIE9wZW5PZmZpY2Uub3JnLgorIworT09ESVIgPSBodHRwOi8vZnRwLnNlcnZpY2VzLm9wZW5vZmZpY2Uub3JnL3B1Yi9PcGVuT2ZmaWNlLm9yZy9jb250cmliL2RpY3Rpb25hcmllcworOmF0dHIge2ZldGNoID0gJE9PRElSLyVmaWxlJX0gbHRfTFQuemlwCisKKyMgVGhlIGZpbGVzIGRvbid0IGRlcGVuZCBvbiB0aGUgLnppcCBmaWxlIHNvIHRoYXQgd2UgY2FuIGRlbGV0ZSBpdC4KKyMgT25seSBkb3dubG9hZCB0aGUgemlwIGZpbGUgaWYgdGhlIHRhcmdldHMgZG9uJ3QgZXhpc3QuCisjIFRoaXMgaXMgYSBiaXQgdHJpY2t5LCBzaW5jZSB0aGUgZmlsZSBuYW1lIGluY2x1ZGVzIHRoZSBkYXRlLgorbHRfTFQuYWZmIGx0X0xULmRpYzoge2J1aWxkY2hlY2s9fQorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCisgICAgICAgIDpmZXRjaCBsdF9MVC56aXAKKyAgICAgICAgOnN5cyAkVU5aSVAgbHRfTFQuemlwCisgICAgICAgIDpkZWxldGUgbHRfTFQuemlwCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2x0X0xULm9yaWcuYWZmJyk6CisgICAgICAgICAgICA6Y29weSBsdF9MVC5hZmYgbHRfTFQub3JpZy5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnbHRfTFQub3JpZy5kaWMnKToKKyAgICAgICAgICAgIDpjb3B5IGx0X0xULmRpYyBsdF9MVC5vcmlnLmRpYworICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ2x0X0xULmRpZmYnKToKKyAgICAgICAgICAgIDpzeXMgcGF0Y2ggPGx0X0xULmRpZmYKKworCisjIEdlbmVyYXRlIGRpZmYgZmlsZXMsIHNvIHRoYXQgb3RoZXJzIGNhbiBnZXQgdGhlIE9wZW5PZmZpY2UgZmlsZXMgYW5kIGFwcGx5CisjIHRoZSBkaWZmcyB0byBnZXQgdGhlIFZpbSB2ZXJzaW9ucy4KKworZGlmZjoKKyAgICAgICAgOmFzc2VydHBrZyBkaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgbHRfTFQub3JpZy5hZmYgbHRfTFQuYWZmID5sdF9MVC5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgbHRfTFQub3JpZy5kaWMgbHRfTFQuZGljID4+bHRfTFQuZGlmZgorCisKKyMgQ2hlY2sgZm9yIHVwZGF0ZWQgc3BlbGwgZmlsZXMuICBXaGVuIHRoZXJlIGFyZSBjaGFuZ2VzIHRoZQorIyAiLm5ldy5hZmYiIGFuZCAiLm5ldy5kaWMiIGZpbGVzIGFyZSBsZWZ0IGJlaGluZCBmb3IgbWFudWFsIGluc3BlY3Rpb24uCisKK2NoZWNrOgorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIGRpZmYKKyAgICAgICAgOmZldGNoIGx0X0xULnppcAorICAgICAgICA6bWtkaXIgdG1wCisgICAgICAgIDpjZCB0bXAKKyAgICAgICAgQHRyeToKKyAgICAgICAgICAgIEBpbXBvcnQgc3RhdAorICAgICAgICAgICAgOnN5cyAkVU5aSVAgLi4vbHRfTFQuemlwCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9sdF9MVC5vcmlnLmFmZiBsdF9MVC5hZmYgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgbHRfTFQuYWZmIC4uL2x0X0xULm5ldy5hZmYKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL2x0X0xULm9yaWcuZGljIGx0X0xULmRpYyA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBsdF9MVC5kaWMgLi4vbHRfTFQubmV3LmRpYworICAgICAgICBAZmluYWxseToKKyAgICAgICAgICAgIDpjZCAuLgorICAgICAgICAgICAgOmRlbGV0ZSB7cn17Zn17cX0gdG1wCisgICAgICAgICAgICA6ZGVsZXRlIGx0X0xULnppcAorCisKKyMgdmltOiBzZXQgc3RzPTQgc3c9NCA6CmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL2x2L21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9sdi9tYWluLmFhcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMGNhY2Q4Ci0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9sdi9tYWluLmFhcApAQCAtMCwwICsxLDgzIEBACisjIEFhcCByZWNpcGUgZm9yIExhdHZpYW4gVmltIHNwZWxsIGZpbGVzLgorCisjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KK0BpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgorICAgIFZJTSA9IC4uLy4uLy4uL3NyYy92aW0KK0BlbHNlOgorICAgIDpwcm9nc2VhcmNoIFZJTSB2aW0KKworU1BFTExESVIgPSAuLgorRklMRVMgICAgPSBsdl9MVi5hZmYgbHZfTFYuZGljCisKKyMgSSBkb24ndCBoYXZlIGEgTGF0dmlhbiBsb2NhbGUsIHVzZSBMaXRodWFuaWFuIGluc3RlYWQuCithbGw6ICRTUEVMTERJUi9sdi5pc28tODg1OS0xMy5zcGwgJFNQRUxMRElSL2x2LnV0Zi04LnNwbCBcCisgICAgICAgICAuLi9SRUFETUVfbHYudHh0CisKKyRTUEVMTERJUi9sdi5pc28tODg1OS0xMy5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1sdF9MVC5JU084ODU5LTEzICRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL2x2IGx2X0xWIiAtYyBxCisKKyRTUEVMTERJUi9sdi51dGYtOC5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1sdF9MVC5VVEYtOCAkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9sdiBsdl9MViIgLWMgcQorCisuLi9SRUFETUVfbHYudHh0OiBSRUFETUVfbHZfTFYudHh0CisgICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldAorCisjCisjIEZldGNoaW5nIHRoZSBmaWxlcyBmcm9tIE9wZW5PZmZpY2Uub3JnLgorIworT09ESVIgPSBodHRwOi8vZnRwLnNlcnZpY2VzLm9wZW5vZmZpY2Uub3JnL3B1Yi9PcGVuT2ZmaWNlLm9yZy9jb250cmliL2RpY3Rpb25hcmllcworOmF0dHIge2ZldGNoID0gJE9PRElSLyVmaWxlJX0gbHZfTFYuemlwCisKKyMgVGhlIGZpbGVzIGRvbid0IGRlcGVuZCBvbiB0aGUgLnppcCBmaWxlIHNvIHRoYXQgd2UgY2FuIGRlbGV0ZSBpdC4KKyMgT25seSBkb3dubG9hZCB0aGUgemlwIGZpbGUgaWYgdGhlIHRhcmdldHMgZG9uJ3QgZXhpc3QuCisjIFRoaXMgaXMgYSBiaXQgdHJpY2t5LCBzaW5jZSB0aGUgZmlsZSBuYW1lIGluY2x1ZGVzIHRoZSBkYXRlLgorbHZfTFYuYWZmIGx2X0xWLmRpYzoge2J1aWxkY2hlY2s9fQorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCisgICAgICAgIDpmZXRjaCBsdl9MVi56aXAKKyAgICAgICAgOnN5cyAkVU5aSVAgbHZfTFYuemlwCisgICAgICAgIDpkZWxldGUgbHZfTFYuemlwCisgICAgICAgIDpkZWxldGUgY2hhbmdlbG9nLnR4dCBncGwudHh0IGxpbi1sdl9MVl9hZGQuc2ggd2luLWx2X0xWX2FkZC5iYXQKKyAgICAgICAgOnN5cyAkVklNIGx2X0xWLmFmZiAtZSAtTiAtYyAiJXMvXHIvLyIgLWMgdXBkYXRlIC1jIHEKKyAgICAgICAgOnN5cyAkVklNIGx2X0xWLmRpYyAtZSAtTiAtYyAiJXMvXHIvLyIgLWMgdXBkYXRlIC1jIHEKKyAgICAgICAgOnN5cyAkVklNIFJFQURNRV9sdl9MVi50eHQgLWUgLWMgInNldCBmZj11bml4IiAtYyB1cGRhdGUgLWMgcQorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdsdl9MVi5vcmlnLmFmZicpOgorICAgICAgICAgICAgOmNvcHkgbHZfTFYuYWZmIGx2X0xWLm9yaWcuYWZmCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ2x2X0xWLm9yaWcuZGljJyk6CisgICAgICAgICAgICA6Y29weSBsdl9MVi5kaWMgbHZfTFYub3JpZy5kaWMKKyAgICAgICAgQGlmIG9zLnBhdGguZXhpc3RzKCdsdl9MVi5kaWZmJyk6CisgICAgICAgICAgICA6c3lzIHBhdGNoIDxsdl9MVi5kaWZmCisKKworIyBHZW5lcmF0ZSBkaWZmIGZpbGVzLCBzbyB0aGF0IG90aGVycyBjYW4gZ2V0IHRoZSBPcGVuT2ZmaWNlIGZpbGVzIGFuZCBhcHBseQorIyB0aGUgZGlmZnMgdG8gZ2V0IHRoZSBWaW0gdmVyc2lvbnMuCisKK2RpZmY6CisgICAgICAgIDphc3NlcnRwa2cgZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIGx2X0xWLm9yaWcuYWZmIGx2X0xWLmFmZiA+bHZfTFYuZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIGx2X0xWLm9yaWcuZGljIGx2X0xWLmRpYyA+Pmx2X0xWLmRpZmYKKworCisjIENoZWNrIGZvciB1cGRhdGVkIHNwZWxsIGZpbGVzLiAgV2hlbiB0aGVyZSBhcmUgY2hhbmdlcyB0aGUKKyMgIi5uZXcuYWZmIiBhbmQgIi5uZXcuZGljIiBmaWxlcyBhcmUgbGVmdCBiZWhpbmQgZm9yIG1hbnVhbCBpbnNwZWN0aW9uLgorCitjaGVjazoKKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBkaWZmCisgICAgICAgIDpmZXRjaCBsdl9MVi56aXAKKyAgICAgICAgOm1rZGlyIHRtcAorICAgICAgICA6Y2QgdG1wCisgICAgICAgIEB0cnk6CisgICAgICAgICAgICBAaW1wb3J0IHN0YXQKKyAgICAgICAgICAgIDpzeXMgJFVOWklQIC4uL2x2X0xWLnppcAorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vbHZfTFYub3JpZy5hZmYgbHZfTFYuYWZmID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IGx2X0xWLmFmZiAuLi9sdl9MVi5uZXcuYWZmCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9sdl9MVi5vcmlnLmRpYyBsdl9MVi5kaWMgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgbHZfTFYuZGljIC4uL2x2X0xWLm5ldy5kaWMKKyAgICAgICAgQGZpbmFsbHk6CisgICAgICAgICAgICA6Y2QgLi4KKyAgICAgICAgICAgIDpkZWxldGUge3J9e2Z9e3F9IHRtcAorICAgICAgICAgICAgOmRlbGV0ZSBsdl9MVi56aXAKKworCisjIHZpbTogc2V0IHN0cz00IHN3PTQgOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvbWFpbi5hYXAKaW5kZXggZmZiMTZiOC4uNWJlNDQ1NCAxMDA2NDQKLS0tIGEvcnVudGltZS9zcGVsbC9tYWluLmFhcAorKysgYi9ydW50aW1lL3NwZWxsL21haW4uYWFwCkBAIC00LDEwICs0LDExIEBACiAjIGFhcCAgICAgICAgZ2VuZXJhdGUgYWxsIHRoZSAuc3BsIGZpbGVzCiAjIGFhcCBkaWZmICAgY3JlYXRlIGFsbCB0aGUgZGlmZiBmaWxlcwogCi1MQU5HID0gYWYgYW0gYmcgY2EgY3MgZGEgZGUgZWwgZW4gZW8gZXMgZnIgZm8gZ2wgaGUgaHIgaXQgbmwgbnkgcGwgcnUgc2sKLSAgICAgICB0aCB5aSBodQorTEFORyA9IGFmIGFtIGJnIGNhIGNzIGN5IGRhIGRlIGVsIGVuIGVvIGVzIGZyIGZvIGdhIGdkIGdsIGhlIGhyIGlkIGl0IGt1CisgICAgICAgbGEgbHQgbHYgbWcgbWkgbXMgbmIgbmwgbm4gbnkgcGwgcHQgcm8gcnUgcncgc2sgc2wgc3Ygc3cKKyAgICAgICB0ZXQgdGggdGwgdG4gdWsgeWkgenUgaHUKIAotIyAiaHUiIGlzIGF0IHRoZSBlbmQsIGJlY2F1c2UgaXQgdGFrZXMgdmVyeSBsb25nLgorIyAiaHUiIGlzIGF0IHRoZSBlbmQsIGJlY2F1c2UgaXQgdGFrZXMgYSB2ZXJ5IGxvbmcgdGltZS4KICMKICMgVE9ETzoKICMgRmlubmlzaCBkb2Vzbid0IHdvcmssIHRoZSBkaWN0aW9uYXJ5IGZpX0ZJLnppcCBmaWxlIGNvbnRhaW5zIGh5cGhlbmF0aW9uLi4uCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL21nL21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9tZy9tYWluLmFhcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43Nzg2MGJmCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9tZy9tYWluLmFhcApAQCAtMCwwICsxLDc5IEBACisjIEFhcCByZWNpcGUgZm9yIE1hbGFnYXN5IFZpbSBzcGVsbCBmaWxlcy4KKworIyBVc2UgYSBmcmVzaGx5IGNvbXBpbGVkIFZpbSBpZiBpdCBleGlzdHMuCitAaWYgb3MucGF0aC5leGlzdHMoJy4uLy4uLy4uL3NyYy92aW0nKToKKyAgICBWSU0gPSAuLi8uLi8uLi9zcmMvdmltCitAZWxzZToKKyAgICA6cHJvZ3NlYXJjaCBWSU0gdmltCisKK1NQRUxMRElSID0gLi4KK0ZJTEVTICAgID0gbWdfTUcuYWZmIG1nX01HLmRpYworCisjIEkgZG9uJ3QgaGF2ZSBhIE1hbGFnYXN5IGxvY2FsZSwgdXNlIHRoZSBEdXRjaCBvbmUgaW5zdGVhZC4KK2FsbDogJFNQRUxMRElSL21nLmxhdGluMS5zcGwgJFNQRUxMRElSL21nLnV0Zi04LnNwbCAuLi9SRUFETUVfbWcudHh0CisKKyRTUEVMTERJUi9tZy5sYXRpbjEuc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9bmxfTkwuSVNPODg1OS0xCisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL21nIG1nX01HIiAtYyBxCisKKyRTUEVMTERJUi9tZy51dGYtOC5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1ubF9OTC5VVEYtOAorCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9tZyBtZ19NRyIgLWMgcQorCisuLi9SRUFETUVfbWcudHh0IDogUkVBRE1FX21nX01HLnR4dAorICAgICAgICA6Y29weSAkc291cmNlICR0YXJnZXQKKworIworIyBGZXRjaGluZyB0aGUgZmlsZXMgZnJvbSBPcGVuT2ZmaWNlLm9yZy4KKyMKK09PRElSID0gaHR0cDovL2Z0cC5zZXJ2aWNlcy5vcGVub2ZmaWNlLm9yZy9wdWIvT3Blbk9mZmljZS5vcmcvY29udHJpYi9kaWN0aW9uYXJpZXMKKzphdHRyIHtmZXRjaCA9ICRPT0RJUi8lZmlsZSV9IG1nX01HLnppcAorCisjIFRoZSBmaWxlcyBkb24ndCBkZXBlbmQgb24gdGhlIC56aXAgZmlsZSBzbyB0aGF0IHdlIGNhbiBkZWxldGUgaXQuCisjIE9ubHkgZG93bmxvYWQgdGhlIHppcCBmaWxlIGlmIHRoZSB0YXJnZXRzIGRvbid0IGV4aXN0LgorbWdfTUcuYWZmIG1nX01HLmRpYzoge2J1aWxkY2hlY2s9fQorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCisgICAgICAgIDpmZXRjaCBtZ19NRy56aXAKKyAgICAgICAgOnN5cyAkVU5aSVAgbWdfTUcuemlwCisgICAgICAgIDpkZWxldGUgbWdfTUcuemlwCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ21nX01HLm9yaWcuYWZmJyk6CisgICAgICAgICAgICA6Y29weSBtZ19NRy5hZmYgbWdfTUcub3JpZy5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnbWdfTUcub3JpZy5kaWMnKToKKyAgICAgICAgICAgIDpjb3B5IG1nX01HLmRpYyBtZ19NRy5vcmlnLmRpYworICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ21nX01HLmRpZmYnKToKKyAgICAgICAgICAgIDpzeXMgcGF0Y2ggPG1nX01HLmRpZmYKKworCisjIEdlbmVyYXRlIGRpZmYgZmlsZXMsIHNvIHRoYXQgb3RoZXJzIGNhbiBnZXQgdGhlIE9wZW5PZmZpY2UgZmlsZXMgYW5kIGFwcGx5CisjIHRoZSBkaWZmcyB0byBnZXQgdGhlIFZpbSB2ZXJzaW9ucy4KKworZGlmZjoKKyAgICAgICAgOmFzc2VydHBrZyBkaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgbWdfTUcub3JpZy5hZmYgbWdfTUcuYWZmID5tZ19NRy5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgbWdfTUcub3JpZy5kaWMgbWdfTUcuZGljID4+bWdfTUcuZGlmZgorCisKKyMgQ2hlY2sgZm9yIHVwZGF0ZWQgT3Blbk9mZmljZSBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCisjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KKworY2hlY2s6CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgZGlmZgorICAgICAgICA6ZmV0Y2ggbWdfTUcuemlwCisgICAgICAgIDpta2RpciB0bXAKKyAgICAgICAgOmNkIHRtcAorICAgICAgICBAdHJ5OgorICAgICAgICAgICAgQGltcG9ydCBzdGF0CisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9tZ19NRy56aXAKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL21nX01HLm9yaWcuYWZmIG1nX01HLmFmZiA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBtZ19NRy5hZmYgLi4vbWdfTUcubmV3LmFmZgorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vbWdfTUcub3JpZy5kaWMgbWdfTUcuZGljID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IG1nX01HLmRpYyAuLi9tZ19NRy5uZXcuZGljCisgICAgICAgIEBmaW5hbGx5OgorICAgICAgICAgICAgOmNkIC4uCisgICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSB0bXAKKyAgICAgICAgICAgIDpkZWxldGUgbWdfTUcuemlwCisKKworIyB2aW06IHNldCBzdHM9NCBzdz00IDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvbWcvbWdfTUcuZGlmZiBiL3J1bnRpbWUvc3BlbGwvbWcvbWdfTUcuZGlmZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MjE0OWExCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9tZy9tZ19NRy5kaWZmCkBAIC0wLDAgKzEsMjYgQEAKKyoqKiBtZ19NRy5vcmlnLmFmZglXZWQgQXVnIDMxIDE3OjU4OjU5IDIwMDUKKy0tLSBtZ19NRy5hZmYJV2VkIEF1ZyAzMSAxODowMDo0MiAyMDA1CisqKioqKioqKioqKioqKioKKyoqKiAxOSAqKioqCistLS0gMTksMzkgLS0tLQorICBUUlkgYW55aW90cm1laHNma2R6bCd2cGJnLUFNak5URklSSEpTS+BWREVMUEJHWk/08gorKyAKKysgRk9MICDf4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+/worKyBMT1cgIN/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7/CisrIFVQUCAg38DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3v8KKysgCisrIFNPRk9GUk9NIGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVrg4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3r8KKysgU09GT1RPICAgZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlYmN0ZWZnaGVqa2xubmVwa3JzdGV2dmtlc2VlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcHNlZWVlZWVlZWNlZWVlZWVlZWRuZWVlZWVlZWVlZWVwPworKyAKKysgTUlEV09SRAknLQorKyAKKysgTUFQIDkKKysgTUFQIGHg4eLj5OUKKysgTUFQIGXo6errCisrIE1BUCBp7O3u7worKyBNQVAgb/Lz9PX2CisrIE1BUCB1+fr7/AorKyBNQVAgbvEKKysgTUFQIGPnCisrIE1BUCB5//0KKysgTUFQIHPfCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL21pL21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9taS9tYWluLmFhcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMWE2NzEzCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9taS9tYWluLmFhcApAQCAtMCwwICsxLDgwIEBACisjIEFhcCByZWNpcGUgZm9yIE1hb3JpIFZpbSBzcGVsbCBmaWxlcy4KKworIyBVc2UgYSBmcmVzaGx5IGNvbXBpbGVkIFZpbSBpZiBpdCBleGlzdHMuCitAaWYgb3MucGF0aC5leGlzdHMoJy4uLy4uLy4uL3NyYy92aW0nKToKKyAgICBWSU0gPSAuLi8uLi8uLi9zcmMvdmltCitAZWxzZToKKyAgICA6cHJvZ3NlYXJjaCBWSU0gdmltCisKK1NQRUxMRElSID0gLi4KK0ZJTEVTICAgID0gbWlfTlouYWZmIG1pX05aLmRpYworCithbGw6ICRTUEVMTERJUi9taS5sYXRpbjEuc3BsICRTUEVMTERJUi9taS51dGYtOC5zcGwgLi4vUkVBRE1FX21pLnR4dAorCiskU1BFTExESVIvbWkubGF0aW4xLnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzICRWSU0gLXUgTk9ORSAtZSAtYyAic2V0IGVuYz1pc28tODg1OS00IgorICAgICAgICAgICAgICAgIC1jICJta3NwZWxsISAkU1BFTExESVIvbWkgbWlfTloiIC1jIHEKKworJFNQRUxMRElSL21pLnV0Zi04LnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzICRWSU0gLXUgTk9ORSAtZSAtYyAic2V0IGVuYz11dGYtOCIKKyAgICAgICAgICAgICAgICAtYyAibWtzcGVsbCEgJFNQRUxMRElSL21pIG1pX05aIiAtYyBxCisKKy4uL1JFQURNRV9taS50eHQgOiBSRUFETUVfbWlfTloudHh0CisgICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldAorCisjCisjIEZldGNoaW5nIHRoZSBmaWxlcyBmcm9tIE9wZW5PZmZpY2Uub3JnLgorIworT09ESVIgPSBodHRwOi8vZnRwLnNlcnZpY2VzLm9wZW5vZmZpY2Uub3JnL3B1Yi9PcGVuT2ZmaWNlLm9yZy9jb250cmliL2RpY3Rpb25hcmllcworOmF0dHIge2ZldGNoID0gJE9PRElSLyVmaWxlJX0gbWlfTlouemlwCisKKyMgVGhlIGZpbGVzIGRvbid0IGRlcGVuZCBvbiB0aGUgLnppcCBmaWxlIHNvIHRoYXQgd2UgY2FuIGRlbGV0ZSBpdC4KKyMgT25seSBkb3dubG9hZCB0aGUgemlwIGZpbGUgaWYgdGhlIHRhcmdldHMgZG9uJ3QgZXhpc3QuCittaV9OWi5hZmYgbWlfTlouZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoIG1pX05aLnppcAorICAgICAgICA6c3lzICRVTlpJUCBtaV9OWi56aXAKKyAgICAgICAgOmRlbGV0ZSBtaV9OWi56aXAKKyAgICAgICAgIyBGaXggbWlzc2luZyBlbmQgb2YgbGluZS4KKyAgICAgICAgOnByaW50ID4+bWlfTlouYWZmCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ21pX05aLm9yaWcuYWZmJyk6CisgICAgICAgICAgICA6Y29weSBtaV9OWi5hZmYgbWlfTloub3JpZy5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnbWlfTloub3JpZy5kaWMnKToKKyAgICAgICAgICAgIDpjb3B5IG1pX05aLmRpYyBtaV9OWi5vcmlnLmRpYworICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ21pX05aLmRpZmYnKToKKyAgICAgICAgICAgIDpzeXMgcGF0Y2ggPG1pX05aLmRpZmYKKworCisjIEdlbmVyYXRlIGRpZmYgZmlsZXMsIHNvIHRoYXQgb3RoZXJzIGNhbiBnZXQgdGhlIE9wZW5PZmZpY2UgZmlsZXMgYW5kIGFwcGx5CisjIHRoZSBkaWZmcyB0byBnZXQgdGhlIFZpbSB2ZXJzaW9ucy4KKworZGlmZjoKKyAgICAgICAgOmFzc2VydHBrZyBkaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgbWlfTloub3JpZy5hZmYgbWlfTlouYWZmID5taV9OWi5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgbWlfTloub3JpZy5kaWMgbWlfTlouZGljID4+bWlfTlouZGlmZgorCisKKyMgQ2hlY2sgZm9yIHVwZGF0ZWQgT3Blbk9mZmljZSBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCisjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KKworY2hlY2s6CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgZGlmZgorICAgICAgICA6ZmV0Y2ggbWlfTlouemlwCisgICAgICAgIDpta2RpciB0bXAKKyAgICAgICAgOmNkIHRtcAorICAgICAgICBAdHJ5OgorICAgICAgICAgICAgQGltcG9ydCBzdGF0CisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9taV9OWi56aXAKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL21pX05aLm9yaWcuYWZmIG1pX05aLmFmZiA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBtaV9OWi5hZmYgLi4vbWlfTloubmV3LmFmZgorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vbWlfTloub3JpZy5kaWMgbWlfTlouZGljID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IG1pX05aLmRpYyAuLi9taV9OWi5uZXcuZGljCisgICAgICAgIEBmaW5hbGx5OgorICAgICAgICAgICAgOmNkIC4uCisgICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSB0bXAKKyAgICAgICAgICAgIDpkZWxldGUgbWlfTlouemlwCisKKworIyB2aW06IHNldCBzdHM9NCBzdz00IDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvbWkvbWlfTlouZGlmZiBiL3J1bnRpbWUvc3BlbGwvbWkvbWlfTlouZGlmZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NWFjZTZmCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9taS9taV9OWi5kaWZmCkBAIC0wLDAgKzEsMTAgQEAKKyoqKiBtaV9OWi5vcmlnLmFmZglXZWQgQXVnIDMxIDE4OjIyOjAzIDIwMDUKKy0tLSBtaV9OWi5hZmYJV2VkIEF1ZyAzMSAxODoyMTo1NiAyMDA1CisqKioqKioqKioqKioqKioKKyoqKiAyLDMgKioqKgorLS0tIDIsNiAtLS0tCisgIFRSWSBh4GlrdHVyb2hluu/y/m5wZ3dtQcBJS1RVUk9IRarP0t5OUEdXTQorKyAKKysgTUlEV09SRCAtCisrIAorICBSRVAgMzAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvbXMvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL21zL21haW4uYWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3MTZiM2IKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL21zL21haW4uYWFwCkBAIC0wLDAgKzEsODEgQEAKKyMgQWFwIHJlY2lwZSBmb3IgTWFsYXkgVmltIHNwZWxsIGZpbGVzLgorCisjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KK0BpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgorICAgIFZJTSA9IC4uLy4uLy4uL3NyYy92aW0KK0BlbHNlOgorICAgIDpwcm9nc2VhcmNoIFZJTSB2aW0KKworU1BFTExESVIgPSAuLgorRklMRVMgICAgPSBtc19NWS5hZmYgbXNfTVkuZGljCisKKyMgSSBkbyBub3QgaGF2ZSBhIE1hbGF5IGxvY2FsZSwgdXNlIHRoZSBEdXRjaCBvbmUgaW5zdGVhZC4KK2FsbDogJFNQRUxMRElSL21zLmxhdGluMS5zcGwgJFNQRUxMRElSL21zLnV0Zi04LnNwbCAuLi9SRUFETUVfbXMudHh0CisKKyRTUEVMTERJUi9tcy5sYXRpbjEuc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9bmxfTkwuSVNPODg1OS0xCisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL21zIG1zX01ZIiAtYyBxCisKKyRTUEVMTERJUi9tcy51dGYtOC5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1ubF9OTC5VVEYtOAorCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9tcyBtc19NWSIgLWMgcQorCisuLi9SRUFETUVfbXMudHh0IDogUkVBRE1FX21zX01ZLnR4dAorICAgICAgICA6Y29weSAkc291cmNlICR0YXJnZXQKKworIworIyBGZXRjaGluZyB0aGUgZmlsZXMgZnJvbSBPcGVuT2ZmaWNlLm9yZy4KKyMKK09PRElSID0gaHR0cDovL2Z0cC5zZXJ2aWNlcy5vcGVub2ZmaWNlLm9yZy9wdWIvT3Blbk9mZmljZS5vcmcvY29udHJpYi9kaWN0aW9uYXJpZXMKKzphdHRyIHtmZXRjaCA9ICRPT0RJUi8lZmlsZSV9IG1zX01ZLnppcAorCisjIFRoZSBmaWxlcyBkb24ndCBkZXBlbmQgb24gdGhlIC56aXAgZmlsZSBzbyB0aGF0IHdlIGNhbiBkZWxldGUgaXQuCisjIE9ubHkgZG93bmxvYWQgdGhlIHppcCBmaWxlIGlmIHRoZSB0YXJnZXRzIGRvbid0IGV4aXN0LgorbXNfTVkuYWZmIG1zX01ZLmRpYzoge2J1aWxkY2hlY2s9fQorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCisgICAgICAgIDpmZXRjaCBtc19NWS56aXAKKyAgICAgICAgOnN5cyAkVU5aSVAgbXNfTVkuemlwCisgICAgICAgIDpkZWxldGUgbXNfTVkuemlwCisgICAgICAgIDpzeXMgJFZJTSBtc19NWS5hZmYgLWUgLWMgInNldCBmZj11bml4IiAtYyB1cGRhdGUgLWMgcQorICAgICAgICA6c3lzICRWSU0gbXNfTVkuZGljIC1lIC1jICJzZXQgZmY9dW5peCIgLWMgdXBkYXRlIC1jIHEKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnbXNfTVkub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IG1zX01ZLmFmZiBtc19NWS5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdtc19NWS5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgbXNfTVkuZGljIG1zX01ZLm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygnbXNfTVkuZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8bXNfTVkuZGlmZgorCisKKyMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKKyMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgorCitkaWZmOgorICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBtc19NWS5vcmlnLmFmZiBtc19NWS5hZmYgPm1zX01ZLmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBtc19NWS5vcmlnLmRpYyBtc19NWS5kaWMgPj5tc19NWS5kaWZmCisKKworIyBDaGVjayBmb3IgdXBkYXRlZCBPcGVuT2ZmaWNlIHNwZWxsIGZpbGVzLiAgV2hlbiB0aGVyZSBhcmUgY2hhbmdlcyB0aGUKKyMgIi5uZXcuYWZmIiBhbmQgIi5uZXcuZGljIiBmaWxlcyBhcmUgbGVmdCBiZWhpbmQgZm9yIG1hbnVhbCBpbnNwZWN0aW9uLgorCitjaGVjazoKKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBkaWZmCisgICAgICAgIDpmZXRjaCBtc19NWS56aXAKKyAgICAgICAgOm1rZGlyIHRtcAorICAgICAgICA6Y2QgdG1wCisgICAgICAgIEB0cnk6CisgICAgICAgICAgICBAaW1wb3J0IHN0YXQKKyAgICAgICAgICAgIDpzeXMgJFVOWklQIC4uL21zX01ZLnppcAorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vbXNfTVkub3JpZy5hZmYgbXNfTVkuYWZmID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IG1zX01ZLmFmZiAuLi9tc19NWS5uZXcuYWZmCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9tc19NWS5vcmlnLmRpYyBtc19NWS5kaWMgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgbXNfTVkuZGljIC4uL21zX01ZLm5ldy5kaWMKKyAgICAgICAgQGZpbmFsbHk6CisgICAgICAgICAgICA6Y2QgLi4KKyAgICAgICAgICAgIDpkZWxldGUge3J9e2Z9e3F9IHRtcAorICAgICAgICAgICAgOmRlbGV0ZSBtc19NWS56aXAKKworCisjIHZpbTogc2V0IHN0cz00IHN3PTQgOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9tcy9tc19NWS5kaWZmIGIvcnVudGltZS9zcGVsbC9tcy9tc19NWS5kaWZmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiZGU1OTUKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL21zL21zX01ZLmRpZmYKQEAgLTAsMCArMSwyNCBAQAorKioqIG1zX01ZLm9yaWcuYWZmCVdlZCBBdWcgMzEgMTg6MDk6NTggMjAwNQorLS0tIG1zX01ZLmFmZglXZWQgQXVnIDMxIDE4OjEyOjUxIDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDI1LDI2ICoqKioKKy0tLSAyNSwzNSAtLS0tCisgIAorKyBGT0wgIN/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7/CisrIExPVyAg3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/v8KKysgVVBQICDfwMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3e/worKyAKKysgU09GT0ZST00gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWuDh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3evworKyBTT0ZPVE8gICBlYmN0ZWZnaGVqa2xubmVwa3JzdGV2dmtlc2ViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWVlZWVlZWNlZWVlZWVlZWRuZWVlZWVlZWVlZWVwc2VlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXA/CisrIAorKyBNSURXT1JEIC0KKysgCisgIFBGWCBCIFkgMiAKKyoqKiBtc19NWS5vcmlnLmRpYwlXZWQgQXVnIDMxIDE4OjA5OjU4IDIwMDUKKy0tLSBtc19NWS5kaWMJV2VkIEF1ZyAzMSAxODoxMjo0OCAyMDA1CisqKioqKioqKioqKioqKioKKyoqKiA0OTM5LDQ5NDEgKioqKgorICBkYXRpbgorLSBEYXRv4oCZCisgIGRhdHVrL2IKKy0tLSA0OTM5LDQ5NDAgLS0tLQpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9uYi9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvbmIvbWFpbi5hYXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjc4MDVlYQotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvbmIvbWFpbi5hYXAKQEAgLTAsMCArMSw3OCBAQAorIyBBYXAgcmVjaXBlIGZvciBEdXRjaCBWaW0gc3BlbGwgZmlsZXMuCisKKyMgVXNlIGEgZnJlc2hseSBjb21waWxlZCBWaW0gaWYgaXQgZXhpc3RzLgorQGlmIG9zLnBhdGguZXhpc3RzKCcuLi8uLi8uLi9zcmMvdmltJyk6CisgICAgVklNID0gLi4vLi4vLi4vc3JjL3ZpbQorQGVsc2U6CisgICAgOnByb2dzZWFyY2ggVklNIHZpbQorCitTUEVMTERJUiA9IC4uCitGSUxFUyAgICA9IG5iX05PLmFmZiBuYl9OTy5kaWMKKworYWxsOiAkU1BFTExESVIvbmIubGF0aW4xLnNwbCAkU1BFTExESVIvbmIudXRmLTguc3BsIC4uL1JFQURNRV9uYi50eHQKKworJFNQRUxMRElSL25iLmxhdGluMS5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1ub19OTy5JU084ODU5LTEKKwkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvbmIgbmJfTk8iIC1jIHEKKworJFNQRUxMRElSL25iLnV0Zi04LnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPW5vX05PLlVURi04CisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL25iIG5iX05PIiAtYyBxCisKKy4uL1JFQURNRV9uYi50eHQgOiBSRUFETUVfbmJfTk8udHh0CisgICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldAorCisjCisjIEZldGNoaW5nIHRoZSBmaWxlcyBmcm9tIE9wZW5PZmZpY2Uub3JnLgorIworT09ESVIgPSBodHRwOi8vZnRwLnNlcnZpY2VzLm9wZW5vZmZpY2Uub3JnL3B1Yi9PcGVuT2ZmaWNlLm9yZy9jb250cmliL2RpY3Rpb25hcmllcworOmF0dHIge2ZldGNoID0gJE9PRElSLyVmaWxlJX0gbmJfTk8uemlwCisKKyMgVGhlIGZpbGVzIGRvbid0IGRlcGVuZCBvbiB0aGUgLnppcCBmaWxlIHNvIHRoYXQgd2UgY2FuIGRlbGV0ZSBpdC4KKyMgT25seSBkb3dubG9hZCB0aGUgemlwIGZpbGUgaWYgdGhlIHRhcmdldHMgZG9uJ3QgZXhpc3QuCituYl9OTy5hZmYgbmJfTk8uZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoIG5iX05PLnppcAorICAgICAgICA6c3lzICRVTlpJUCBuYl9OTy56aXAKKyAgICAgICAgOmRlbGV0ZSBuYl9OTy56aXAKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnbmJfTk8ub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IG5iX05PLmFmZiBuYl9OTy5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCduYl9OTy5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgbmJfTk8uZGljIG5iX05PLm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygnbmJfTk8uZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8bmJfTk8uZGlmZgorCisKKyMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKKyMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgorCitkaWZmOgorICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBuYl9OTy5vcmlnLmFmZiBuYl9OTy5hZmYgPm5iX05PLmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSBuYl9OTy5vcmlnLmRpYyBuYl9OTy5kaWMgPj5uYl9OTy5kaWZmCisKKworIyBDaGVjayBmb3IgdXBkYXRlZCBPcGVuT2ZmaWNlIHNwZWxsIGZpbGVzLiAgV2hlbiB0aGVyZSBhcmUgY2hhbmdlcyB0aGUKKyMgIi5uZXcuYWZmIiBhbmQgIi5uZXcuZGljIiBmaWxlcyBhcmUgbGVmdCBiZWhpbmQgZm9yIG1hbnVhbCBpbnNwZWN0aW9uLgorCitjaGVjazoKKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBkaWZmCisgICAgICAgIDpmZXRjaCBuYl9OTy56aXAKKyAgICAgICAgOm1rZGlyIHRtcAorICAgICAgICA6Y2QgdG1wCisgICAgICAgIEB0cnk6CisgICAgICAgICAgICBAaW1wb3J0IHN0YXQKKyAgICAgICAgICAgIDpzeXMgJFVOWklQIC4uL25iX05PLnppcAorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vbmJfTk8ub3JpZy5hZmYgbmJfTk8uYWZmID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IG5iX05PLmFmZiAuLi9uYl9OTy5uZXcuYWZmCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9uYl9OTy5vcmlnLmRpYyBuYl9OTy5kaWMgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgbmJfTk8uZGljIC4uL25iX05PLm5ldy5kaWMKKyAgICAgICAgQGZpbmFsbHk6CisgICAgICAgICAgICA6Y2QgLi4KKyAgICAgICAgICAgIDpkZWxldGUge3J9e2Z9e3F9IHRtcAorICAgICAgICAgICAgOmRlbGV0ZSBuYl9OTy56aXAKKworCisjIHZpbTogc2V0IHN0cz00IHN3PTQgOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9uYi9uYl9OTy5kaWZmIGIvcnVudGltZS9zcGVsbC9uYi9uYl9OTy5kaWZmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1MWViNWIKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL25iL25iX05PLmRpZmYKQEAgLTAsMCArMSw2MyBAQAorKioqIG5iX05PLm9yaWcuYWZmCVdlZCBBdWcgMzEgMTg6Mjk6NDMgMjAwNQorLS0tIG5iX05PLmFmZglXZWQgQXVnIDMxIDE4OjM1OjA5IDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDcsOCAqKioqCistLS0gNywyNiAtLS0tCisgIAorKyBGT0wgIN/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7/CisrIExPVyAg3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/v8KKysgVVBQICDfwMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3e/worKyAKKysgU09GT0ZST00gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWuDh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3evworKyBTT0ZPVE8gICBlYmN0ZWZnaGVqa2xubmVwa3JzdGV2dmtlc2ViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWVlZWVlZWNlZWVlZWVlZWRuZWVlZWVlZWVlZWVwc2VlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXA/CisrIAorKyBNQVAgOQorKyBNQVAgYeDh4uPk5QorKyBNQVAgZejp6usKKysgTUFQIGns7e7vCisrIE1BUCBv8vP09fYKKysgTUFQIHX5+vv8CisrIE1BUCBu8QorKyBNQVAgY+cKKysgTUFQIHn//QorKyBNQVAgc98KKysgCisgIFBGWCBhIFkgMQorKioqIG5iX05PLm9yaWcuZGljCVdlZCBBdWcgMzEgMTg6Mjk6NDMgMjAwNQorLS0tIG5iX05PLmRpYwlXZWQgQXVnIDMxIDE4OjM4OjAyIDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDIsNCAqKioqCisgIGEuYQorLSBhLmEKKyAgYS5hLkMKKy0tLSAyLDMgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMTUwNTQsMTUwNTYgKioqKgorICBjYW5kCistIGNhbmQvCisgIGNhbmQuYWN0CistLS0gMTUwNTMsMTUwNTQgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMjg1MzIsMjg1MzQgKioqKgorICBmLm8ucgorLSBm9HIKKyAgZm9yYS9HCistLS0gMjg1MzAsMjg1MzEgLS0tLQorKioqKioqKioqKioqKioqCisqKiogMjg5ODAsMjg5ODIgKioqKgorICBmb3Jk+HllbHNlc3N5c3RlbS9CQ0VGR0gKKy0gZvRyZQorICBm9HJlL0JFSnR6CistLS0gMjg5NzcsMjg5NzggLS0tLQorKioqKioqKioqKioqKioqCisqKiogNDM1MzIsNDM1MzQgKioqKgorICBJZGFyL0oKKy0gaWTpCisgIGlk6S9BRUZHSFt6CistLS0gNDM1MjgsNDM1MjkgLS0tLQorKioqKioqKioqKioqKioqCisqKiogNTc0OTAsNTc0OTIgKioqKgorICBMYW1iZXJ0c2V0ZXIvSgorLSBsYW3pCisgIGxhbekvQQorLS0tIDU3NDg1LDU3NDg2IC0tLS0KZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvbm4vbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL25uL21haW4uYWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhNzFiMjAKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL25uL21haW4uYWFwCkBAIC0wLDAgKzEsNzggQEAKKyMgQWFwIHJlY2lwZSBmb3IgRHV0Y2ggVmltIHNwZWxsIGZpbGVzLgorCisjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KK0BpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgorICAgIFZJTSA9IC4uLy4uLy4uL3NyYy92aW0KK0BlbHNlOgorICAgIDpwcm9nc2VhcmNoIFZJTSB2aW0KKworU1BFTExESVIgPSAuLgorRklMRVMgICAgPSBubl9OTy5hZmYgbm5fTk8uZGljCisKK2FsbDogJFNQRUxMRElSL25uLmxhdGluMS5zcGwgJFNQRUxMRElSL25uLnV0Zi04LnNwbCAuLi9SRUFETUVfbm4udHh0CisKKyRTUEVMTERJUi9ubi5sYXRpbjEuc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9bm9fTk8uSVNPODg1OS0xCisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL25uIG5uX05PIiAtYyBxCisKKyRTUEVMTERJUi9ubi51dGYtOC5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1ub19OTy5VVEYtOAorCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9ubiBubl9OTyIgLWMgcQorCisuLi9SRUFETUVfbm4udHh0IDogUkVBRE1FX25uX05PLnR4dAorICAgICAgICA6Y29weSAkc291cmNlICR0YXJnZXQKKworIworIyBGZXRjaGluZyB0aGUgZmlsZXMgZnJvbSBPcGVuT2ZmaWNlLm9yZy4KKyMKK09PRElSID0gaHR0cDovL2Z0cC5zZXJ2aWNlcy5vcGVub2ZmaWNlLm9yZy9wdWIvT3Blbk9mZmljZS5vcmcvY29udHJpYi9kaWN0aW9uYXJpZXMKKzphdHRyIHtmZXRjaCA9ICRPT0RJUi8lZmlsZSV9IG5uX05PLnppcAorCisjIFRoZSBmaWxlcyBkb24ndCBkZXBlbmQgb24gdGhlIC56aXAgZmlsZSBzbyB0aGF0IHdlIGNhbiBkZWxldGUgaXQuCisjIE9ubHkgZG93bmxvYWQgdGhlIHppcCBmaWxlIGlmIHRoZSB0YXJnZXRzIGRvbid0IGV4aXN0Lgorbm5fTk8uYWZmIG5uX05PLmRpYzoge2J1aWxkY2hlY2s9fQorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCisgICAgICAgIDpmZXRjaCBubl9OTy56aXAKKyAgICAgICAgOnN5cyAkVU5aSVAgbm5fTk8uemlwCisgICAgICAgIDpkZWxldGUgbm5fTk8uemlwCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ25uX05PLm9yaWcuYWZmJyk6CisgICAgICAgICAgICA6Y29weSBubl9OTy5hZmYgbm5fTk8ub3JpZy5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnbm5fTk8ub3JpZy5kaWMnKToKKyAgICAgICAgICAgIDpjb3B5IG5uX05PLmRpYyBubl9OTy5vcmlnLmRpYworICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ25uX05PLmRpZmYnKToKKyAgICAgICAgICAgIDpzeXMgcGF0Y2ggPG5uX05PLmRpZmYKKworCisjIEdlbmVyYXRlIGRpZmYgZmlsZXMsIHNvIHRoYXQgb3RoZXJzIGNhbiBnZXQgdGhlIE9wZW5PZmZpY2UgZmlsZXMgYW5kIGFwcGx5CisjIHRoZSBkaWZmcyB0byBnZXQgdGhlIFZpbSB2ZXJzaW9ucy4KKworZGlmZjoKKyAgICAgICAgOmFzc2VydHBrZyBkaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgbm5fTk8ub3JpZy5hZmYgbm5fTk8uYWZmID5ubl9OTy5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgbm5fTk8ub3JpZy5kaWMgbm5fTk8uZGljID4+bm5fTk8uZGlmZgorCisKKyMgQ2hlY2sgZm9yIHVwZGF0ZWQgT3Blbk9mZmljZSBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCisjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KKworY2hlY2s6CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgZGlmZgorICAgICAgICA6ZmV0Y2ggbm5fTk8uemlwCisgICAgICAgIDpta2RpciB0bXAKKyAgICAgICAgOmNkIHRtcAorICAgICAgICBAdHJ5OgorICAgICAgICAgICAgQGltcG9ydCBzdGF0CisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9ubl9OTy56aXAKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL25uX05PLm9yaWcuYWZmIG5uX05PLmFmZiA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBubl9OTy5hZmYgLi4vbm5fTk8ubmV3LmFmZgorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vbm5fTk8ub3JpZy5kaWMgbm5fTk8uZGljID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IG5uX05PLmRpYyAuLi9ubl9OTy5uZXcuZGljCisgICAgICAgIEBmaW5hbGx5OgorICAgICAgICAgICAgOmNkIC4uCisgICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSB0bXAKKyAgICAgICAgICAgIDpkZWxldGUgbm5fTk8uemlwCisKKworIyB2aW06IHNldCBzdHM9NCBzdz00IDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvbm4vbm5fTk8uZGlmZiBiL3J1bnRpbWUvc3BlbGwvbm4vbm5fTk8uZGlmZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMGUzNTgxCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9ubi9ubl9OTy5kaWZmCkBAIC0wLDAgKzEsMjUgQEAKKyoqKiBubl9OTy5vcmlnLmFmZglXZWQgQXVnIDMxIDE4OjQwOjI2IDIwMDUKKy0tLSBubl9OTy5hZmYJV2VkIEF1ZyAzMSAxODo0MjowMCAyMDA1CisqKioqKioqKioqKioqKioKKyoqKiA3LDggKioqKgorLS0tIDcsMjYgLS0tLQorICAKKysgRk9MICDf4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+/worKyBMT1cgIN/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7/CisrIFVQUCAg38DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3v8KKysgCisrIFNPRk9GUk9NIGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVrg4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3r8KKysgU09GT1RPICAgZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlYmN0ZWZnaGVqa2xubmVwa3JzdGV2dmtlc2VlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcHNlZWVlZWVlZWNlZWVlZWVlZWRuZWVlZWVlZWVlZWVwPworKyAKKysgTUFQIDkKKysgTUFQIGHg4eLj5OUKKysgTUFQIGXo6errCisrIE1BUCBp7O3u7worKyBNQVAgb/Lz9PX2CisrIE1BUCB1+fr7/AorKyBNQVAgbvEKKysgTUFQIGPnCisrIE1BUCB5//0KKysgTUFQIHPfCisrIAorICBQRlggYSBZIDEKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvcHQvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL3B0L21haW4uYWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxYzY4OWIKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL3B0L21haW4uYWFwCkBAIC0wLDAgKzEsMTIzIEBACisjIEFhcCByZWNpcGUgZm9yIFBvcnR1Z3Vlc2UgVmltIHNwZWxsIGZpbGVzLgorCisjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KK0BpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgorICAgIFZJTSA9IC4uLy4uLy4uL3NyYy92aW0KK0BlbHNlOgorICAgIDpwcm9nc2VhcmNoIFZJTSB2aW0KKworU1BFTExESVIgPSAuLgorRklMRVMgICAgPSBwdF9QVC5hZmYgcHRfUFQuZGljCisJICAgcHRfQlIuYWZmIHB0X0JSLmRpYworCithbGw6ICRTUEVMTERJUi9wdC5sYXRpbjEuc3BsICRTUEVMTERJUi9wdC51dGYtOC5zcGwgXAorICAgICAgICAuLi9SRUFETUVfcHQudHh0CisKKyRTUEVMTERJUi9wdC5sYXRpbjEuc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9cHRfUFQuSVNPODg1OS0xCisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL3B0IHB0X1BUIHB0X0JSIiAtYyBxCisKKyRTUEVMTERJUi9wdC51dGYtOC5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1wdF9QVC5VVEYtOAorCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9wdCBwdF9QVCBwdF9CUiIgLWMgcQorCisuLi9SRUFETUVfcHQudHh0OiBSRUFETUVfcHRfUFQudHh0IFJFQURNRV9wdF9CUi50eHQKKyAgICAgICAgOnByaW50IHB0X1BUID4hJHRhcmdldAorICAgICAgICA6Y2F0IFJFQURNRV9wdF9QVC50eHQgfCA6ZXZhbCByZS5zdWIoJ1xyJywgJycsIHN0ZGluKSA+PiR0YXJnZXQKKyAgICAgICAgOnByaW50ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSA+PiR0YXJnZXQKKyAgICAgICAgOnByaW50IHB0X0JSOiA+PiR0YXJnZXQKKyAgICAgICAgOmNhdCBSRUFETUVfcHRfQlIudHh0IHwgOmV2YWwgcmUuc3ViKCdccicsICcnLCBzdGRpbikgPj4kdGFyZ2V0CisKKyMKKyMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCisjCitPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCis6YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSBwdF9QVC56aXAgcHRfQlIuemlwCisKKyMgVGhlIGZpbGVzIGRvbid0IGRlcGVuZCBvbiB0aGUgLnppcCBmaWxlIHNvIHRoYXQgd2UgY2FuIGRlbGV0ZSBpdC4KKyMgT25seSBkb3dubG9hZCB0aGUgemlwIGZpbGUgaWYgdGhlIHRhcmdldHMgZG9uJ3QgZXhpc3QuCitwdF9QVC5hZmYgcHRfUFQuZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoIHB0X1BULnppcAorICAgICAgICA6c3lzICRVTlpJUCBwdF9QVC56aXAKKyAgICAgICAgOmRlbGV0ZSBwdF9QVC56aXAKKyAgICAgICAgOnN5cyAkVklNIHB0X1BULmRpYyAtZSAtYyAic2V0IGZmPXVuaXgiIC1jIHVwZGF0ZSAtYyBxCisgICAgICAgIDpzeXMgJFZJTSBSRUFETUVfcHRfUFQudHh0IC1lIC1jICJzZXQgZmY9dW5peCIgLWMgdXBkYXRlIC1jIHEKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygncHRfUFQub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IHB0X1BULmFmZiBwdF9QVC5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCdwdF9QVC5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgcHRfUFQuZGljIHB0X1BULm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygncHRfUFQuZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8cHRfUFQuZGlmZgorCitwdF9CUi5hZmYgcHRfQlIuZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoIHB0X0JSLnppcAorICAgICAgICA6c3lzICRVTlpJUCBwdF9CUi56aXAKKyAgICAgICAgOmRlbGV0ZSBwdF9CUi56aXAKKyAgICAgICAgOnN5cyAkVklNIHB0X0JSLmFmZiAtZSAtYyAic2V0IGZmPXVuaXgiIC1jIHVwZGF0ZSAtYyBxCisgICAgICAgIDpzeXMgJFZJTSBwdF9CUi5kaWMgLWUgLWMgInNldCBmZj11bml4IiAtYyB1cGRhdGUgLWMgcQorICAgICAgICA6c3lzICRWSU0gUkVBRE1FX3B0X0JSLnR4dCAtZSAtYyAic2V0IGZmPXVuaXgiIC1jIHVwZGF0ZSAtYyBxCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ3B0X0JSLm9yaWcuYWZmJyk6CisgICAgICAgICAgICA6Y29weSBwdF9CUi5hZmYgcHRfQlIub3JpZy5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygncHRfQlIub3JpZy5kaWMnKToKKyAgICAgICAgICAgIDpjb3B5IHB0X0JSLmRpYyBwdF9CUi5vcmlnLmRpYworICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ3B0X0JSLmRpZmYnKToKKyAgICAgICAgICAgIDpzeXMgcGF0Y2ggPHB0X0JSLmRpZmYKKworCisjIEdlbmVyYXRlIGRpZmYgZmlsZXMsIHNvIHRoYXQgb3RoZXJzIGNhbiBnZXQgdGhlIE9wZW5PZmZpY2UgZmlsZXMgYW5kIGFwcGx5CisjIHRoZSBkaWZmcyB0byBnZXQgdGhlIFZpbSB2ZXJzaW9ucy4KKworZGlmZjoKKyAgICAgICAgOmFzc2VydHBrZyBkaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgcHRfUFQub3JpZy5hZmYgcHRfUFQuYWZmID5wdF9QVC5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgcHRfUFQub3JpZy5kaWMgcHRfUFQuZGljID4+cHRfUFQuZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIHB0X0JSLm9yaWcuYWZmIHB0X0JSLmFmZiA+cHRfQlIuZGlmZgorCTpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgcHRfQlIub3JpZy5kaWMgcHRfQlIuZGljID4+cHRfQlIuZGlmZgorCisKKyMgQ2hlY2sgZm9yIHVwZGF0ZWQgT3Blbk9mZmljZSBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCisjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KKworY2hlY2s6IGNoZWNrLXVzIGNoZWNrLWF1CisKK2NoZWNrLXVzOgorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIGRpZmYKKyAgICAgICAgOmZldGNoIHB0X1BULnppcAorICAgICAgICA6bWtkaXIgdG1wCisgICAgICAgIDpjZCB0bXAKKyAgICAgICAgQHRyeToKKyAgICAgICAgICAgIEBpbXBvcnQgc3RhdAorICAgICAgICAgICAgOnN5cyAkVU5aSVAgLi4vcHRfUFQuemlwCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9wdF9QVC5vcmlnLmFmZiBwdF9QVC5hZmYgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgcHRfUFQuYWZmIC4uL3B0X1BULm5ldy5hZmYKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL3B0X1BULm9yaWcuZGljIHB0X1BULmRpYyA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBwdF9QVC5kaWMgLi4vcHRfUFQubmV3LmRpYworICAgICAgICBAZmluYWxseToKKyAgICAgICAgICAgIDpjZCAuLgorICAgICAgICAgICAgOmRlbGV0ZSB7cn17Zn17cX0gdG1wCisgICAgICAgICAgICA6ZGVsZXRlIHB0X1BULnppcAorCitjaGVjay1hdToKKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBkaWZmCisgICAgICAgIDpmZXRjaCBwdF9CUi56aXAKKyAgICAgICAgOm1rZGlyIHRtcAorICAgICAgICA6Y2QgdG1wCisgICAgICAgIEB0cnk6CisgICAgICAgICAgICBAaW1wb3J0IHN0YXQKKyAgICAgICAgICAgIDpzeXMgJFVOWklQIC4uL3B0X0JSLnppcAorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vcHRfQlIub3JpZy5hZmYgcHRfQlIuYWZmID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IHB0X0JSLmFmZiAuLi9wdF9CUi5uZXcuYWZmCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9wdF9CUi5vcmlnLmRpYyBwdF9CUi5kaWMgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgcHRfQlIuZGljIC4uL3B0X0JSLm5ldy5kaWMKKyAgICAgICAgQGZpbmFsbHk6CisgICAgICAgICAgICA6Y2QgLi4KKyAgICAgICAgICAgIDpkZWxldGUge3J9e2Z9e3F9IHRtcAorICAgICAgICAgICAgOmRlbGV0ZSBwdF9CUi56aXAKKworIyB2aW06IHNldCBzdHM9NCBzdz00IDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvcHQvcHRfQlIuZGlmZiBiL3J1bnRpbWUvc3BlbGwvcHQvcHRfQlIuZGlmZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMGIxZDdhCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9wdC9wdF9CUi5kaWZmCkBAIC0wLDAgKzEsNDYgQEAKKyoqKiBwdF9CUi5vcmlnLmFmZglXZWQgQXVnIDMxIDIwOjA1OjE4IDIwMDUKKy0tLSBwdF9CUi5hZmYJV2VkIEF1ZyAzMSAyMDowNToxOCAyMDA1CisqKioqKioqKioqKioqKioKKyoqKiAzLDQgKioqKgorLS0tIDMsMjIgLS0tLQorICAKKysgRk9MICDf4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+/worKyBMT1cgIN/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7/CisrIFVQUCAg38DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3v8KKysgCisrIFNPRk9GUk9NIGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVrg4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3r8KKysgU09GT1RPICAgZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlYmN0ZWZnaGVqa2xubmVwa3JzdGV2dmtlc2VlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcHNlZWVlZWVlZWNlZWVlZWVlZWRuZWVlZWVlZWVlZWVwPworKyAKKysgTUFQIDkKKysgTUFQIGHg4eLj5OUKKysgTUFQIGXo6errCisrIE1BUCBp7O3u7worKyBNQVAgb/Lz9PX2CisrIE1BUCB1+fr7/AorKyBNQVAgbvEKKysgTUFQIGPnCisrIE1BUCB5//0KKysgTUFQIHPfCisrIAorICAjIFBsdXJhbCBhcGVuYXMKKyoqKioqKioqKioqKioqKgorKioqIDUyNiw1MzQgKioqKgorICBTRlggSSAgIGFyICAgICAg6nMgICAgICAgZGFyCishIFNGWCBJICAgaWFyICAgICBlaWEgICAgICAgW15daWFyCishIFNGWCBJICAgaWFyICAgICBlaWFtICAgICAgIFteXWlhcgorISBTRlggSSAgIGlhciAgICAgZWlhcyAgICAgICBbXl1pYXIKKyEgU0ZYIEkgICBpYXIgICAgIGVpZSAgICAgICBbXl1pYXIKKyEgU0ZYIEkgICBpYXIgICAgIGVpZW0gICAgICAgW15daWFyCishIFNGWCBJICAgaWFyICAgICBlaWVzICAgICAgIFteXWlhcgorISBTRlggSSAgIGlhciAgICAgZWlvICAgICAgIFteXWlhcgorICBTRlggSSAgIG9pYXIgICAg82lhICAgICAgIG9pYXIKKy0tLSA1NDQsNTUyIC0tLS0KKyAgU0ZYIEkgICBhciAgICAgIOpzICAgICAgIGRhcgorISBTRlggSSAgIGlhciAgICAgZWlhICAgICAgIFteb11pYXIKKyEgU0ZYIEkgICBpYXIgICAgIGVpYW0gICAgICAgW15vXWlhcgorISBTRlggSSAgIGlhciAgICAgZWlhcyAgICAgICBbXm9daWFyCishIFNGWCBJICAgaWFyICAgICBlaWUgICAgICAgW15vXWlhcgorISBTRlggSSAgIGlhciAgICAgZWllbSAgICAgICBbXm9daWFyCishIFNGWCBJICAgaWFyICAgICBlaWVzICAgICAgIFteb11pYXIKKyEgU0ZYIEkgICBpYXIgICAgIGVpbyAgICAgICBbXm9daWFyCisgIFNGWCBJICAgb2lhciAgICDzaWEgICAgICAgb2lhcgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9wdC9wdF9QVC5kaWZmIGIvcnVudGltZS9zcGVsbC9wdC9wdF9QVC5kaWZmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1M2EyZDIKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL3B0L3B0X1BULmRpZmYKQEAgLTAsMCArMSwyNyBAQAorKioqIHB0X1BULm9yaWcuYWZmCVdlZCBBdWcgMzEgMjA6MDU6MTYgMjAwNQorLS0tIHB0X1BULmFmZglXZWQgQXVnIDMxIDIwOjA1OjE2IDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDMsNCAqKioqCistLS0gMywyNCAtLS0tCisgIAorKyBGT0wgIN/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7/CisrIExPVyAg3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/v8KKysgVVBQICDfwMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3e/worKyAKKysgU09GT0ZST00gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWuDh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3evworKyBTT0ZPVE8gICBlYmN0ZWZnaGVqa2xubmVwa3JzdGV2dmtlc2ViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWVlZWVlZWNlZWVlZWVlZWRuZWVlZWVlZWVlZWVwc2VlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXA/CisrIAorKyBNSURXT1JECScKKysgCisrIE1BUCA5CisrIE1BUCBh4OHi4+TlCisrIE1BUCBl6Onq6worKyBNQVAgaezt7u8KKysgTUFQIG/y8/T19gorKyBNQVAgdfn6+/wKKysgTUFQIG7xCisrIE1BUCBj5worKyBNQVAgef/9CisrIE1BUCBz3worKyAKKyAgUEZYIEEgWSAxCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL3JvL21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9yby9tYWluLmFhcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMDdlMjcxCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9yby9tYWluLmFhcApAQCAtMCwwICsxLDgxIEBACisjIEFhcCByZWNpcGUgZm9yIFJvbWFuaWFuIFZpbSBzcGVsbCBmaWxlcy4KKworIyBVc2UgYSBmcmVzaGx5IGNvbXBpbGVkIFZpbSBpZiBpdCBleGlzdHMuCitAaWYgb3MucGF0aC5leGlzdHMoJy4uLy4uLy4uL3NyYy92aW0nKToKKyAgICBWSU0gPSAuLi8uLi8uLi9zcmMvdmltCitAZWxzZToKKyAgICA6cHJvZ3NlYXJjaCBWSU0gdmltCisKK1NQRUxMRElSID0gLi4KK0ZJTEVTICAgID0gcm9fUk8uYWZmIHJvX1JPLmRpYworCithbGw6ICRTUEVMTERJUi9yby5pc28tODg1OS0yLnNwbCAkU1BFTExESVIvcm8udXRmLTguc3BsIFwKKyAgICAgICAgJFNQRUxMRElSL3JvLmNwMTI1MC5zcGwgLi4vUkVBRE1FX3JvLnR4dAorCiskU1BFTExESVIvcm8uaXNvLTg4NTktMi5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1yb19STy5JU084ODU5LTIgJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvcm8gcm9fUk8iIC1jIHEKKworJFNQRUxMRElSL3JvLnV0Zi04LnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPXJvX1JPLlVURi04ICRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL3JvIHJvX1JPIiAtYyBxCisKKyRTUEVMTERJUi9yby5jcDEyNTAuc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgJFZJTSAtdSBOT05FIC1lIC1jICJzZXQgZW5jPWNwMTI1MCIgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9ybyByb19STyIgLWMgcQorCisuLi9SRUFETUVfcm8udHh0OiBSRUFETUVfcm9fUk8udHh0CisgICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldAorCisjCisjIEZldGNoaW5nIHRoZSBmaWxlcyBmcm9tIE9wZW5PZmZpY2Uub3JnLgorIworT09ESVIgPSBodHRwOi8vZnRwLnNlcnZpY2VzLm9wZW5vZmZpY2Uub3JnL3B1Yi9PcGVuT2ZmaWNlLm9yZy9jb250cmliL2RpY3Rpb25hcmllcworOmF0dHIge2ZldGNoID0gJE9PRElSLyVmaWxlJX0gcm9fUk8uemlwCisKKyMgVGhlIGZpbGVzIGRvbid0IGRlcGVuZCBvbiB0aGUgLnppcCBmaWxlIHNvIHRoYXQgd2UgY2FuIGRlbGV0ZSBpdC4KKyMgT25seSBkb3dubG9hZCB0aGUgemlwIGZpbGUgaWYgdGhlIHRhcmdldHMgZG9uJ3QgZXhpc3QuCisjIFRoaXMgaXMgYSBiaXQgdHJpY2t5LCBzaW5jZSB0aGUgZmlsZSBuYW1lIGluY2x1ZGVzIHRoZSBkYXRlLgorcm9fUk8uYWZmIHJvX1JPLmRpYzoge2J1aWxkY2hlY2s9fQorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCisgICAgICAgIDpmZXRjaCByb19STy56aXAKKyAgICAgICAgOnN5cyAkVU5aSVAgcm9fUk8uemlwCisgICAgICAgIDpkZWxldGUgcm9fUk8uemlwCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ3JvX1JPLm9yaWcuYWZmJyk6CisgICAgICAgICAgICA6Y29weSByb19STy5hZmYgcm9fUk8ub3JpZy5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygncm9fUk8ub3JpZy5kaWMnKToKKyAgICAgICAgICAgIDpjb3B5IHJvX1JPLmRpYyByb19STy5vcmlnLmRpYworICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ3JvX1JPLmRpZmYnKToKKyAgICAgICAgICAgIDpzeXMgcGF0Y2ggPHJvX1JPLmRpZmYKKworCisjIEdlbmVyYXRlIGRpZmYgZmlsZXMsIHNvIHRoYXQgb3RoZXJzIGNhbiBnZXQgdGhlIE9wZW5PZmZpY2UgZmlsZXMgYW5kIGFwcGx5CisjIHRoZSBkaWZmcyB0byBnZXQgdGhlIFZpbSB2ZXJzaW9ucy4KKworZGlmZjoKKyAgICAgICAgOmFzc2VydHBrZyBkaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgcm9fUk8ub3JpZy5hZmYgcm9fUk8uYWZmID5yb19STy5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgcm9fUk8ub3JpZy5kaWMgcm9fUk8uZGljID4+cm9fUk8uZGlmZgorCisKKyMgQ2hlY2sgZm9yIHVwZGF0ZWQgc3BlbGwgZmlsZXMuICBXaGVuIHRoZXJlIGFyZSBjaGFuZ2VzIHRoZQorIyAiLm5ldy5hZmYiIGFuZCAiLm5ldy5kaWMiIGZpbGVzIGFyZSBsZWZ0IGJlaGluZCBmb3IgbWFudWFsIGluc3BlY3Rpb24uCisKK2NoZWNrOgorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIGRpZmYKKyAgICAgICAgOmZldGNoIHJvX1JPLnppcAorICAgICAgICA6bWtkaXIgdG1wCisgICAgICAgIDpjZCB0bXAKKyAgICAgICAgQHRyeToKKyAgICAgICAgICAgIEBpbXBvcnQgc3RhdAorICAgICAgICAgICAgOnN5cyAkVU5aSVAgLi4vcm9fUk8uemlwCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9yb19STy5vcmlnLmFmZiByb19STy5hZmYgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgcm9fUk8uYWZmIC4uL3JvX1JPLm5ldy5hZmYKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL3JvX1JPLm9yaWcuZGljIHJvX1JPLmRpYyA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSByb19STy5kaWMgLi4vcm9fUk8ubmV3LmRpYworICAgICAgICBAZmluYWxseToKKyAgICAgICAgICAgIDpjZCAuLgorICAgICAgICAgICAgOmRlbGV0ZSB7cn17Zn17cX0gdG1wCisgICAgICAgICAgICA6ZGVsZXRlIHJvX1JPLnppcAorCisKKyMgdmltOiBzZXQgc3RzPTQgc3c9NCA6CmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL3JvL3JvX1JPLmRpZmYgYi9ydW50aW1lL3NwZWxsL3JvL3JvX1JPLmRpZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQ3NzAzMAotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvcm8vcm9fUk8uZGlmZgpAQCAtMCwwICsxLDQyIEBACisqKiogcm9fUk8ub3JpZy5hZmYJV2VkIEF1ZyAzMSAyMDozNDozOCAyMDA1CistLS0gcm9fUk8uYWZmCVdlZCBBdWcgMzEgMjA6Mzk6NTcgMjAwNQorKioqKioqKioqKioqKioqCisqKiogMyw0ICoqKioKKy0tLSAzLDggLS0tLQorICAKKysgRk9MILGis7W2qLm6u7y+v7Gys7S1tre4ubq7vL2+v+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//CisrIExPVyCxorO1tqi5uru8vr+xsrO0tba3uLm6u7y9vr/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/worKyBVUFAgoaKjpaaoqaqrrK6vsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3e3/8KKysgCisgIFBGWCBFIFkgMQorKioqKioqKioqKioqKioqCisqKiogMTIsMTUgKioqKgorICBTRlggTCAgIDAgICAgICAgICAgbCAgICAgICAgICB1CishIFNGWCBMICAgMCAgICAgICAgICBsZSAgICAgICAgIFteY2ddIGkKKyEgU0ZYIEwgICAwICAgICAgICAgIGkgICAgICAgICAgW2NnXSBpCisgIFNGWCBMICAgMCAgICAgICAgICBsZSAgICAgICAgIGUKKy0tLSAxNiwxOSAtLS0tCisgIFNGWCBMICAgMCAgICAgICAgICBsICAgICAgICAgIHUKKyEgU0ZYIEwgICAwICAgICAgICAgIGxlICAgICAgICAgW15jZ11pCishIFNGWCBMICAgMCAgICAgICAgICBpICAgICAgICAgIFtjZ11pCisgIFNGWCBMICAgMCAgICAgICAgICBsZSAgICAgICAgIGUKKyoqKioqKioqKioqKioqKgorKioqIDE4LDIwICoqKioKKyAgU0ZYIFUgICAwICAgICAgICAgIGEgICAgICAgICAgcmUKKyEgU0ZYIFUgICAwICAgICAgICAgIGkgICAgICAgICAgW15pXSBpaQorICAKKy0tLSAyMiwyNCAtLS0tCisgIFNGWCBVICAgMCAgICAgICAgICBhICAgICAgICAgIHJlCishIFNGWCBVICAgMCAgICAgICAgICBpICAgICAgICAgIFteaV1paQorICAKKyoqKioqKioqKioqKioqKgorKioqIDM4LDQxICoqKioKKyAgU0ZYIEkgICAwICAgICAgICAgIHVsdWkgICAgICAgW151YV0KKyEgU0ZYIEkgICBhICAgICAgICAgIGlpICAgICAgICAgW2djXSBhCishIFNGWCBJICAgYSAgICAgICAgICBlaSAgICAgICAgIFteY2ddIGEKKyAgCistLS0gNDIsNDUgLS0tLQorICBTRlggSSAgIDAgICAgICAgICAgdWx1aSAgICAgICBbXnVhXQorISBTRlggSSAgIGEgICAgICAgICAgaWkgICAgICAgICBbZ2NdYQorISBTRlggSSAgIGEgICAgICAgICAgZWkgICAgICAgICBbXmNnXWEKKyAgCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL3J3L21haW4uYWFwIGIvcnVudGltZS9zcGVsbC9ydy9tYWluLmFhcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZWRhOTlkCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9ydy9tYWluLmFhcApAQCAtMCwwICsxLDc5IEBACisjIEFhcCByZWNpcGUgZm9yIEtpbnlhcndhbmRhIChSd2FuZGEpIFZpbSBzcGVsbCBmaWxlcy4KKworIyBVc2UgYSBmcmVzaGx5IGNvbXBpbGVkIFZpbSBpZiBpdCBleGlzdHMuCitAaWYgb3MucGF0aC5leGlzdHMoJy4uLy4uLy4uL3NyYy92aW0nKToKKyAgICBWSU0gPSAuLi8uLi8uLi9zcmMvdmltCitAZWxzZToKKyAgICA6cHJvZ3NlYXJjaCBWSU0gdmltCisKK1NQRUxMRElSID0gLi4KK0ZJTEVTICAgID0gcndfUlcuYWZmIHJ3X1JXLmRpYworCithbGw6ICRTUEVMTERJUi9ydy5sYXRpbjEuc3BsICRTUEVMTERJUi9ydy51dGYtOC5zcGwgLi4vUkVBRE1FX3J3LnR4dAorCisjIEkgZG9uJ3QgaGF2ZSBhIEtpbnlhcndhbmRhIGxvY2FsZSwgdXNlIHRoZSBEdXRjaCBvbmUgaW5zdGVhZC4KKyRTUEVMTERJUi9ydy5sYXRpbjEuc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9bmxfTkwuSVNPODg1OS0xCisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL3J3IHJ3X1JXIiAtYyBxCisKKyRTUEVMTERJUi9ydy51dGYtOC5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1ubF9OTC5VVEYtOAorCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9ydyByd19SVyIgLWMgcQorCisuLi9SRUFETUVfcncudHh0IDogUkVBRE1FX3J3X1JXLnR4dAorICAgICAgICA6Y29weSAkc291cmNlICR0YXJnZXQKKworIworIyBGZXRjaGluZyB0aGUgZmlsZXMgZnJvbSBPcGVuT2ZmaWNlLm9yZy4KKyMKK09PRElSID0gaHR0cDovL2Z0cC5zZXJ2aWNlcy5vcGVub2ZmaWNlLm9yZy9wdWIvT3Blbk9mZmljZS5vcmcvY29udHJpYi9kaWN0aW9uYXJpZXMKKzphdHRyIHtmZXRjaCA9ICRPT0RJUi8lZmlsZSV9IHJ3X1JXLnppcAorCisjIFRoZSBmaWxlcyBkb24ndCBkZXBlbmQgb24gdGhlIC56aXAgZmlsZSBzbyB0aGF0IHdlIGNhbiBkZWxldGUgaXQuCisjIE9ubHkgZG93bmxvYWQgdGhlIHppcCBmaWxlIGlmIHRoZSB0YXJnZXRzIGRvbid0IGV4aXN0LgorcndfUlcuYWZmIHJ3X1JXLmRpYzoge2J1aWxkY2hlY2s9fQorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCisgICAgICAgIDpmZXRjaCByd19SVy56aXAKKyAgICAgICAgOnN5cyAkVU5aSVAgcndfUlcuemlwCisgICAgICAgIDpkZWxldGUgcndfUlcuemlwCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ3J3X1JXLm9yaWcuYWZmJyk6CisgICAgICAgICAgICA6Y29weSByd19SVy5hZmYgcndfUlcub3JpZy5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygncndfUlcub3JpZy5kaWMnKToKKyAgICAgICAgICAgIDpjb3B5IHJ3X1JXLmRpYyByd19SVy5vcmlnLmRpYworICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ3J3X1JXLmRpZmYnKToKKyAgICAgICAgICAgIDpzeXMgcGF0Y2ggPHJ3X1JXLmRpZmYKKworCisjIEdlbmVyYXRlIGRpZmYgZmlsZXMsIHNvIHRoYXQgb3RoZXJzIGNhbiBnZXQgdGhlIE9wZW5PZmZpY2UgZmlsZXMgYW5kIGFwcGx5CisjIHRoZSBkaWZmcyB0byBnZXQgdGhlIFZpbSB2ZXJzaW9ucy4KKworZGlmZjoKKyAgICAgICAgOmFzc2VydHBrZyBkaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgcndfUlcub3JpZy5hZmYgcndfUlcuYWZmID5yd19SVy5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgcndfUlcub3JpZy5kaWMgcndfUlcuZGljID4+cndfUlcuZGlmZgorCisKKyMgQ2hlY2sgZm9yIHVwZGF0ZWQgT3Blbk9mZmljZSBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCisjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KKworY2hlY2s6CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgZGlmZgorICAgICAgICA6ZmV0Y2ggcndfUlcuemlwCisgICAgICAgIDpta2RpciB0bXAKKyAgICAgICAgOmNkIHRtcAorICAgICAgICBAdHJ5OgorICAgICAgICAgICAgQGltcG9ydCBzdGF0CisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9yd19SVy56aXAKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL3J3X1JXLm9yaWcuYWZmIHJ3X1JXLmFmZiA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSByd19SVy5hZmYgLi4vcndfUlcubmV3LmFmZgorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vcndfUlcub3JpZy5kaWMgcndfUlcuZGljID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IHJ3X1JXLmRpYyAuLi9yd19SVy5uZXcuZGljCisgICAgICAgIEBmaW5hbGx5OgorICAgICAgICAgICAgOmNkIC4uCisgICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSB0bXAKKyAgICAgICAgICAgIDpkZWxldGUgcndfUlcuemlwCisKKworIyB2aW06IHNldCBzdHM9NCBzdz00IDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvcncvcndfUlcuZGlmZiBiL3J1bnRpbWUvc3BlbGwvcncvcndfUlcuZGlmZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZGUzN2NkCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9ydy9yd19SVy5kaWZmCkBAIC0wLDAgKzEsMTMgQEAKKyoqKiByd19SVy5vcmlnLmFmZglXZWQgQXVnIDMxIDE2OjUzOjA4IDIwMDUKKy0tLSByd19SVy5hZmYJV2VkIEF1ZyAzMSAxNjo1Mzo0NiAyMDA1CisqKioqKioqKioqKioqKioKKyoqKiAxOSAqKioqCistLS0gMTksMjYgLS0tLQorICBUUlkgYWl1ZW5vcmJrbXlnd3Roc3pkJ2NJQWpLVXZmTk1wbEJHWVJQVEhTRFdDT1pFTFYtSkYKKysgCisrIEZPTCAg3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/v8KKysgTE9XICDf4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+/worKyBVUFAgIN/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d7/CisrIAorKyBTT0ZPRlJPTSBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFla4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3//AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d6/CisrIFNPRk9UTyAgIGViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXBzZWVlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcD8KZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvc2wvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL3NsL21haW4uYWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRiMTQyYmIKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL3NsL21haW4uYWFwCkBAIC0wLDAgKzEsODEgQEAKKyMgQWFwIHJlY2lwZSBmb3IgU2xvdmVuaWFuIFZpbSBzcGVsbCBmaWxlcy4KKworIyBVc2UgYSBmcmVzaGx5IGNvbXBpbGVkIFZpbSBpZiBpdCBleGlzdHMuCitAaWYgb3MucGF0aC5leGlzdHMoJy4uLy4uLy4uL3NyYy92aW0nKToKKyAgICBWSU0gPSAuLi8uLi8uLi9zcmMvdmltCitAZWxzZToKKyAgICA6cHJvZ3NlYXJjaCBWSU0gdmltCisKK1NQRUxMRElSID0gLi4KK0ZJTEVTICAgID0gc2xfU0kuYWZmIHNsX1NJLmRpYworCithbGw6ICRTUEVMTERJUi9zbC5pc28tODg1OS0yLnNwbCAkU1BFTExESVIvc2wudXRmLTguc3BsIFwKKyAgICAgICAgJFNQRUxMRElSL3NsLmNwMTI1MC5zcGwgLi4vUkVBRE1FX3NsLnR4dAorCiskU1BFTExESVIvc2wuaXNvLTg4NTktMi5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1zbF9TSS5JU084ODU5LTIgJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvc2wgc2xfU0kiIC1jIHEKKworJFNQRUxMRElSL3NsLnV0Zi04LnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPXNsX1NJLlVURi04ICRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL3NsIHNsX1NJIiAtYyBxCisKKyRTUEVMTERJUi9zbC5jcDEyNTAuc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgJFZJTSAtdSBOT05FIC1lIC1jICJzZXQgZW5jPWNwMTI1MCIgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9zbCBzbF9TSSIgLWMgcQorCisuLi9SRUFETUVfc2wudHh0OiBSRUFETUVfc2xfU0kudHh0CisgICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldAorCisjCisjIEZldGNoaW5nIHRoZSBmaWxlcyBmcm9tIE9wZW5PZmZpY2Uub3JnLgorIworT09ESVIgPSBodHRwOi8vZnRwLnNlcnZpY2VzLm9wZW5vZmZpY2Uub3JnL3B1Yi9PcGVuT2ZmaWNlLm9yZy9jb250cmliL2RpY3Rpb25hcmllcworOmF0dHIge2ZldGNoID0gJE9PRElSLyVmaWxlJX0gc2xfU0kuemlwCisKKyMgVGhlIGZpbGVzIGRvbid0IGRlcGVuZCBvbiB0aGUgLnppcCBmaWxlIHNvIHRoYXQgd2UgY2FuIGRlbGV0ZSBpdC4KKyMgT25seSBkb3dubG9hZCB0aGUgemlwIGZpbGUgaWYgdGhlIHRhcmdldHMgZG9uJ3QgZXhpc3QuCisjIFRoaXMgaXMgYSBiaXQgdHJpY2t5LCBzaW5jZSB0aGUgZmlsZSBuYW1lIGluY2x1ZGVzIHRoZSBkYXRlLgorc2xfU0kuYWZmIHNsX1NJLmRpYzoge2J1aWxkY2hlY2s9fQorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCisgICAgICAgIDpmZXRjaCBzbF9TSS56aXAKKyAgICAgICAgOnN5cyAkVU5aSVAgc2xfU0kuemlwCisgICAgICAgIDpkZWxldGUgc2xfU0kuemlwCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ3NsX1NJLm9yaWcuYWZmJyk6CisgICAgICAgICAgICA6Y29weSBzbF9TSS5hZmYgc2xfU0kub3JpZy5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnc2xfU0kub3JpZy5kaWMnKToKKyAgICAgICAgICAgIDpjb3B5IHNsX1NJLmRpYyBzbF9TSS5vcmlnLmRpYworICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ3NsX1NJLmRpZmYnKToKKyAgICAgICAgICAgIDpzeXMgcGF0Y2ggPHNsX1NJLmRpZmYKKworCisjIEdlbmVyYXRlIGRpZmYgZmlsZXMsIHNvIHRoYXQgb3RoZXJzIGNhbiBnZXQgdGhlIE9wZW5PZmZpY2UgZmlsZXMgYW5kIGFwcGx5CisjIHRoZSBkaWZmcyB0byBnZXQgdGhlIFZpbSB2ZXJzaW9ucy4KKworZGlmZjoKKyAgICAgICAgOmFzc2VydHBrZyBkaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgc2xfU0kub3JpZy5hZmYgc2xfU0kuYWZmID5zbF9TSS5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgc2xfU0kub3JpZy5kaWMgc2xfU0kuZGljID4+c2xfU0kuZGlmZgorCisKKyMgQ2hlY2sgZm9yIHVwZGF0ZWQgc3BlbGwgZmlsZXMuICBXaGVuIHRoZXJlIGFyZSBjaGFuZ2VzIHRoZQorIyAiLm5ldy5hZmYiIGFuZCAiLm5ldy5kaWMiIGZpbGVzIGFyZSBsZWZ0IGJlaGluZCBmb3IgbWFudWFsIGluc3BlY3Rpb24uCisKK2NoZWNrOgorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIGRpZmYKKyAgICAgICAgOmZldGNoIHNsX1NJLnppcAorICAgICAgICA6bWtkaXIgdG1wCisgICAgICAgIDpjZCB0bXAKKyAgICAgICAgQHRyeToKKyAgICAgICAgICAgIEBpbXBvcnQgc3RhdAorICAgICAgICAgICAgOnN5cyAkVU5aSVAgLi4vc2xfU0kuemlwCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi9zbF9TSS5vcmlnLmFmZiBzbF9TSS5hZmYgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgc2xfU0kuYWZmIC4uL3NsX1NJLm5ldy5hZmYKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL3NsX1NJLm9yaWcuZGljIHNsX1NJLmRpYyA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBzbF9TSS5kaWMgLi4vc2xfU0kubmV3LmRpYworICAgICAgICBAZmluYWxseToKKyAgICAgICAgICAgIDpjZCAuLgorICAgICAgICAgICAgOmRlbGV0ZSB7cn17Zn17cX0gdG1wCisgICAgICAgICAgICA6ZGVsZXRlIHNsX1NJLnppcAorCisKKyMgdmltOiBzZXQgc3RzPTQgc3c9NCA6CmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL3NsL3NsX1NJLmRpZmYgYi9ydW50aW1lL3NwZWxsL3NsL3NsX1NJLmRpZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGNhMzEwYgotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvc2wvc2xfU0kuZGlmZgpAQCAtMCwwICsxLDExIEBACisqKiogc2xfU0kub3JpZy5hZmYJV2VkIEF1ZyAzMSAyMDo1NDo0OCAyMDA1CistLS0gc2xfU0kuYWZmCVdlZCBBdWcgMzEgMjA6NTU6MzcgMjAwNQorKioqKioqKioqKioqKioqCisqKiogMyw0ICoqKioKKy0tLSAzLDggLS0tLQorICAKKysgRk9MILGis7W2qLm6u7y+v7Gys7S1tre4ubq7vL2+v+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//CisrIExPVyCxorO1tqi5uru8vr+xsrO0tba3uLm6u7y9vr/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/worKyBVUFAgoaKjpaaoqaqrrK6vsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3e3/8KKysgCisgIFBGWCBCIFkgMQpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9zdi9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvc3YvbWFpbi5hYXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmM0NWZjZgotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvc3YvbWFpbi5hYXAKQEAgLTAsMCArMSw3OSBAQAorIyBBYXAgcmVjaXBlIGZvciBTd2VkaXNoIFZpbSBzcGVsbCBmaWxlcy4KKworIyBVc2UgYSBmcmVzaGx5IGNvbXBpbGVkIFZpbSBpZiBpdCBleGlzdHMuCitAaWYgb3MucGF0aC5leGlzdHMoJy4uLy4uLy4uL3NyYy92aW0nKToKKyAgICBWSU0gPSAuLi8uLi8uLi9zcmMvdmltCitAZWxzZToKKyAgICA6cHJvZ3NlYXJjaCBWSU0gdmltCisKK1NQRUxMRElSID0gLi4KK0ZJTEVTICAgID0gc3ZfU0UuYWZmIHN2X1NFLmRpYworCithbGw6ICRTUEVMTERJUi9zdi5sYXRpbjEuc3BsICRTUEVMTERJUi9zdi51dGYtOC5zcGwgLi4vUkVBRE1FX3N2LnR4dAorCiskU1BFTExESVIvc3YubGF0aW4xLnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPXN2X1NFLklTTzg4NTktMQorCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9zdiBzdl9TRSIgLWMgcQorCiskU1BFTExESVIvc3YudXRmLTguc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9c3ZfU0UuVVRGLTgKKwkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvc3Ygc3ZfU0UiIC1jIHEKKworLi4vUkVBRE1FX3N2LnR4dCA6IFJFQURNRV9zdl9TRS50eHQKKyAgICAgICAgOmNvcHkgJHNvdXJjZSAkdGFyZ2V0CisKKyMKKyMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCisjCitPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCis6YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSBzdl9TRS56aXAKKworIyBUaGUgZmlsZXMgZG9uJ3QgZGVwZW5kIG9uIHRoZSAuemlwIGZpbGUgc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGl0LgorIyBPbmx5IGRvd25sb2FkIHRoZSB6aXAgZmlsZSBpZiB0aGUgdGFyZ2V0cyBkb24ndCBleGlzdC4KK3N2X1NFLmFmZiBzdl9TRS5kaWM6IHtidWlsZGNoZWNrPX0KKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBwYXRjaAorICAgICAgICA6ZmV0Y2ggc3ZfU0UuemlwCisgICAgICAgIDpzeXMgJFVOWklQIHN2X1NFLnppcAorICAgICAgICA6ZGVsZXRlIHN2X1NFLnppcAorICAgICAgICA6ZGVsZXRlIGh5cGhfc3ZfU0UuZGljCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ3N2X1NFLm9yaWcuYWZmJyk6CisgICAgICAgICAgICA6Y29weSBzdl9TRS5hZmYgc3ZfU0Uub3JpZy5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnc3ZfU0Uub3JpZy5kaWMnKToKKyAgICAgICAgICAgIDpjb3B5IHN2X1NFLmRpYyBzdl9TRS5vcmlnLmRpYworICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ3N2X1NFLmRpZmYnKToKKyAgICAgICAgICAgIDpzeXMgcGF0Y2ggPHN2X1NFLmRpZmYKKworCisjIEdlbmVyYXRlIGRpZmYgZmlsZXMsIHNvIHRoYXQgb3RoZXJzIGNhbiBnZXQgdGhlIE9wZW5PZmZpY2UgZmlsZXMgYW5kIGFwcGx5CisjIHRoZSBkaWZmcyB0byBnZXQgdGhlIFZpbSB2ZXJzaW9ucy4KKworZGlmZjoKKyAgICAgICAgOmFzc2VydHBrZyBkaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgc3ZfU0Uub3JpZy5hZmYgc3ZfU0UuYWZmID5zdl9TRS5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgc3ZfU0Uub3JpZy5kaWMgc3ZfU0UuZGljID4+c3ZfU0UuZGlmZgorCisKKyMgQ2hlY2sgZm9yIHVwZGF0ZWQgT3Blbk9mZmljZSBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCisjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KKworY2hlY2s6CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgZGlmZgorICAgICAgICA6ZmV0Y2ggc3ZfU0UuemlwCisgICAgICAgIDpta2RpciB0bXAKKyAgICAgICAgOmNkIHRtcAorICAgICAgICBAdHJ5OgorICAgICAgICAgICAgQGltcG9ydCBzdGF0CisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9zdl9TRS56aXAKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL3N2X1NFLm9yaWcuYWZmIHN2X1NFLmFmZiA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBzdl9TRS5hZmYgLi4vc3ZfU0UubmV3LmFmZgorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vc3ZfU0Uub3JpZy5kaWMgc3ZfU0UuZGljID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IHN2X1NFLmRpYyAuLi9zdl9TRS5uZXcuZGljCisgICAgICAgIEBmaW5hbGx5OgorICAgICAgICAgICAgOmNkIC4uCisgICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSB0bXAKKyAgICAgICAgICAgIDpkZWxldGUgc3ZfU0UuemlwCisKKworIyB2aW06IHNldCBzdHM9NCBzdz00IDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvc3Yvc3ZfU0UuZGlmZiBiL3J1bnRpbWUvc3BlbGwvc3Yvc3ZfU0UuZGlmZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NTliMjI1Ci0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9zdi9zdl9TRS5kaWZmCkBAIC0wLDAgKzEsNDAgQEAKKyoqKiBzdl9TRS5vcmlnLmFmZglXZWQgQXVnIDMxIDIxOjAwOjE5IDIwMDUKKy0tLSBzdl9TRS5hZmYJV2VkIEF1ZyAzMSAyMTowMjo1MyAyMDA1CisqKioqKioqKioqKioqKioKKyoqKiA2LDcgKioqKgorLS0tIDYsMjUgLS0tLQorICAKKysgRk9MICDf4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+/worKyBMT1cgIN/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7/CisrIFVQUCAg38DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3v8KKysgCisrIFNPRk9GUk9NIGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVrg4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3r8KKysgU09GT1RPICAgZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlYmN0ZWZnaGVqa2xubmVwa3JzdGV2dmtlc2VlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcHNlZWVlZWVlZWNlZWVlZWVlZWRuZWVlZWVlZWVlZWVwPworKyAKKysgTUFQIDkKKysgTUFQIGHg4eLj5OUKKysgTUFQIGXo6errCisrIE1BUCBp7O3u7worKyBNQVAgb/Lz9PX2CisrIE1BUCB1+fr7/AorKyBNQVAgbvEKKysgTUFQIGPnCisrIE1BUCB5//0KKysgTUFQIHPfCisrIAorICBTRlggIEEgIFkgIDEKKyoqKioqKioqKioqKioqKgorKioqIDE1LDE3ICoqKioKKyAgCishIFNGWCAgQyAgWSAgMTYKKyAgU0ZYICBDICAwICB0ICBbYWVpb3V55eT26V0KKy0tLSAzMywzNSAtLS0tCisgIAorISBTRlggIEMgIFkgIDE1CisgIFNGWCAgQyAgMCAgdCAgW2FlaW91eeXk9uldCisqKioqKioqKioqKioqKioKKyoqKiAzMCwzMiAqKioqCisgIFNGWCAgQyAgZW4gbmV0cyBlbgorLSBTRlggIEMgIDAgIG5ldCAgbmV0cyBbXmVdbgorICBTRlggIEMgIDAgIG5ldHMgIFteZV1uCistLS0gNDgsNDkgLS0tLQpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC9zdy9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvc3cvbWFpbi5hYXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWY0NzU4NQotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvc3cvbWFpbi5hYXAKQEAgLTAsMCArMSw3OSBAQAorIyBBYXAgcmVjaXBlIGZvciBLaXN3YWhpbGkgVmltIHNwZWxsIGZpbGVzLgorCisjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KK0BpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgorICAgIFZJTSA9IC4uLy4uLy4uL3NyYy92aW0KK0BlbHNlOgorICAgIDpwcm9nc2VhcmNoIFZJTSB2aW0KKworU1BFTExESVIgPSAuLgorRklMRVMgICAgPSBzd19LRS5hZmYgc3dfS0UuZGljCisKK2FsbDogJFNQRUxMRElSL3N3LmxhdGluMS5zcGwgJFNQRUxMRElSL3N3LnV0Zi04LnNwbCAuLi9SRUFETUVfc3cudHh0CisKKyMgSSBkb24ndCBoYXZlIGEgS2lzd2FoaWxpIGxvY2FsZSwgdXNlIHRoZSBEdXRjaCBvbmUgaW5zdGVhZC4KKyRTUEVMTERJUi9zdy5sYXRpbjEuc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9bmxfTkwuSVNPODg1OS0xCisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL3N3IHN3X0tFIiAtYyBxCisKKyRTUEVMTERJUi9zdy51dGYtOC5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1ubF9OTC5VVEYtOAorCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi9zdyBzd19LRSIgLWMgcQorCisuLi9SRUFETUVfc3cudHh0IDogUkVBRE1FX3N3X0tFLnR4dAorICAgICAgICA6Y29weSAkc291cmNlICR0YXJnZXQKKworIworIyBGZXRjaGluZyB0aGUgZmlsZXMgZnJvbSBPcGVuT2ZmaWNlLm9yZy4KKyMKK09PRElSID0gaHR0cDovL2Z0cC5zZXJ2aWNlcy5vcGVub2ZmaWNlLm9yZy9wdWIvT3Blbk9mZmljZS5vcmcvY29udHJpYi9kaWN0aW9uYXJpZXMKKzphdHRyIHtmZXRjaCA9ICRPT0RJUi8lZmlsZSV9IHN3X0tFLnppcAorCisjIFRoZSBmaWxlcyBkb24ndCBkZXBlbmQgb24gdGhlIC56aXAgZmlsZSBzbyB0aGF0IHdlIGNhbiBkZWxldGUgaXQuCisjIE9ubHkgZG93bmxvYWQgdGhlIHppcCBmaWxlIGlmIHRoZSB0YXJnZXRzIGRvbid0IGV4aXN0Lgorc3dfS0UuYWZmIHN3X0tFLmRpYzoge2J1aWxkY2hlY2s9fQorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCisgICAgICAgIDpmZXRjaCBzd19LRS56aXAKKyAgICAgICAgOnN5cyAkVU5aSVAgc3dfS0UuemlwCisgICAgICAgIDpkZWxldGUgc3dfS0UuemlwCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ3N3X0tFLm9yaWcuYWZmJyk6CisgICAgICAgICAgICA6Y29weSBzd19LRS5hZmYgc3dfS0Uub3JpZy5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygnc3dfS0Uub3JpZy5kaWMnKToKKyAgICAgICAgICAgIDpjb3B5IHN3X0tFLmRpYyBzd19LRS5vcmlnLmRpYworICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ3N3X0tFLmRpZmYnKToKKyAgICAgICAgICAgIDpzeXMgcGF0Y2ggPHN3X0tFLmRpZmYKKworCisjIEdlbmVyYXRlIGRpZmYgZmlsZXMsIHNvIHRoYXQgb3RoZXJzIGNhbiBnZXQgdGhlIE9wZW5PZmZpY2UgZmlsZXMgYW5kIGFwcGx5CisjIHRoZSBkaWZmcyB0byBnZXQgdGhlIFZpbSB2ZXJzaW9ucy4KKworZGlmZjoKKyAgICAgICAgOmFzc2VydHBrZyBkaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgc3dfS0Uub3JpZy5hZmYgc3dfS0UuYWZmID5zd19LRS5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgc3dfS0Uub3JpZy5kaWMgc3dfS0UuZGljID4+c3dfS0UuZGlmZgorCisKKyMgQ2hlY2sgZm9yIHVwZGF0ZWQgT3Blbk9mZmljZSBzcGVsbCBmaWxlcy4gIFdoZW4gdGhlcmUgYXJlIGNoYW5nZXMgdGhlCisjICIubmV3LmFmZiIgYW5kICIubmV3LmRpYyIgZmlsZXMgYXJlIGxlZnQgYmVoaW5kIGZvciBtYW51YWwgaW5zcGVjdGlvbi4KKworY2hlY2s6CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgZGlmZgorICAgICAgICA6ZmV0Y2ggc3dfS0UuemlwCisgICAgICAgIDpta2RpciB0bXAKKyAgICAgICAgOmNkIHRtcAorICAgICAgICBAdHJ5OgorICAgICAgICAgICAgQGltcG9ydCBzdGF0CisgICAgICAgICAgICA6c3lzICRVTlpJUCAuLi9zd19LRS56aXAKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL3N3X0tFLm9yaWcuYWZmIHN3X0tFLmFmZiA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSBzd19LRS5hZmYgLi4vc3dfS0UubmV3LmFmZgorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vc3dfS0Uub3JpZy5kaWMgc3dfS0UuZGljID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IHN3X0tFLmRpYyAuLi9zd19LRS5uZXcuZGljCisgICAgICAgIEBmaW5hbGx5OgorICAgICAgICAgICAgOmNkIC4uCisgICAgICAgICAgICA6ZGVsZXRlIHtyfXtmfXtxfSB0bXAKKyAgICAgICAgICAgIDpkZWxldGUgc3dfS0UuemlwCisKKworIyB2aW06IHNldCBzdHM9NCBzdz00IDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvc3cvc3dfS0UuZGlmZiBiL3J1bnRpbWUvc3BlbGwvc3cvc3dfS0UuZGlmZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMDg0ZGI2Ci0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC9zdy9zd19LRS5kaWZmCkBAIC0wLDAgKzEsMTMgQEAKKyoqKiBzd19LRS5vcmlnLmFmZglXZWQgQXVnIDMxIDE2OjU3OjAwIDIwMDUKKy0tLSBzd19LRS5hZmYJV2VkIEF1ZyAzMSAxNjo1NzoyOCAyMDA1CisqKioqKioqKioqKioqKioKKyoqKiAyMSAqKioqCistLS0gMjEsMjggLS0tLQorICBUUlkgYWl1bmtlbW9od3Rsc2d5YnpwZHJmamN2J0tNU0FXVExCTkVZRFVHSFBGSVJPWkpDLVYKKysgCisrIEZPTCAg3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/v8KKysgTE9XICDf4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+/worKyBVUFAgIN/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d7/CisrIAorKyBTT0ZPRlJPTSBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFla4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3//AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d6/CisrIFNPRk9UTyAgIGViY3RlZmdoZWprbG5uZXBrcnN0ZXZ2a2VzZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlZWVlZWVlY2VlZWVlZWVlZG5lZWVlZWVlZWVlZXBzZWVlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcD8KZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvdGwvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL3RsL21haW4uYWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxNDVlNGEKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL3RsL21haW4uYWFwCkBAIC0wLDAgKzEsNzggQEAKKyMgQWFwIHJlY2lwZSBmb3IgVGFnYWxvZyBWaW0gc3BlbGwgZmlsZXMuCisKKyMgVXNlIGEgZnJlc2hseSBjb21waWxlZCBWaW0gaWYgaXQgZXhpc3RzLgorQGlmIG9zLnBhdGguZXhpc3RzKCcuLi8uLi8uLi9zcmMvdmltJyk6CisgICAgVklNID0gLi4vLi4vLi4vc3JjL3ZpbQorQGVsc2U6CisgICAgOnByb2dzZWFyY2ggVklNIHZpbQorCitTUEVMTERJUiA9IC4uCitGSUxFUyAgICA9IHRsX1BILmFmZiB0bF9QSC5kaWMKKworYWxsOiAkU1BFTExESVIvdGwubGF0aW4xLnNwbCAkU1BFTExESVIvdGwudXRmLTguc3BsIC4uL1JFQURNRV90bC50eHQKKworJFNQRUxMRElSL3RsLmxhdGluMS5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz10bF9QSC5JU084ODU5LTEKKwkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvdGwgdGxfUEgiIC1jIHEKKworJFNQRUxMRElSL3RsLnV0Zi04LnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPXRsX1BILlVURi04CisJCSRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL3RsIHRsX1BIIiAtYyBxCisKKy4uL1JFQURNRV90bC50eHQgOiBSRUFETUVfdGxfUEgudHh0CisgICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldAorCisjCisjIEZldGNoaW5nIHRoZSBmaWxlcyBmcm9tIE9wZW5PZmZpY2Uub3JnLgorIworT09ESVIgPSBodHRwOi8vZnRwLnNlcnZpY2VzLm9wZW5vZmZpY2Uub3JnL3B1Yi9PcGVuT2ZmaWNlLm9yZy9jb250cmliL2RpY3Rpb25hcmllcworOmF0dHIge2ZldGNoID0gJE9PRElSLyVmaWxlJX0gdGxfUEguemlwCisKKyMgVGhlIGZpbGVzIGRvbid0IGRlcGVuZCBvbiB0aGUgLnppcCBmaWxlIHNvIHRoYXQgd2UgY2FuIGRlbGV0ZSBpdC4KKyMgT25seSBkb3dubG9hZCB0aGUgemlwIGZpbGUgaWYgdGhlIHRhcmdldHMgZG9uJ3QgZXhpc3QuCit0bF9QSC5hZmYgdGxfUEguZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAgcGF0Y2gKKyAgICAgICAgOmZldGNoIHRsX1BILnppcAorICAgICAgICA6c3lzICRVTlpJUCB0bF9QSC56aXAKKyAgICAgICAgOmRlbGV0ZSB0bF9QSC56aXAKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygndGxfUEgub3JpZy5hZmYnKToKKyAgICAgICAgICAgIDpjb3B5IHRsX1BILmFmZiB0bF9QSC5vcmlnLmFmZgorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCd0bF9QSC5vcmlnLmRpYycpOgorICAgICAgICAgICAgOmNvcHkgdGxfUEguZGljIHRsX1BILm9yaWcuZGljCisgICAgICAgIEBpZiBvcy5wYXRoLmV4aXN0cygndGxfUEguZGlmZicpOgorICAgICAgICAgICAgOnN5cyBwYXRjaCA8dGxfUEguZGlmZgorCisKKyMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKKyMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgorCitkaWZmOgorICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSB0bF9QSC5vcmlnLmFmZiB0bF9QSC5hZmYgPnRsX1BILmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSB0bF9QSC5vcmlnLmRpYyB0bF9QSC5kaWMgPj50bF9QSC5kaWZmCisKKworIyBDaGVjayBmb3IgdXBkYXRlZCBPcGVuT2ZmaWNlIHNwZWxsIGZpbGVzLiAgV2hlbiB0aGVyZSBhcmUgY2hhbmdlcyB0aGUKKyMgIi5uZXcuYWZmIiBhbmQgIi5uZXcuZGljIiBmaWxlcyBhcmUgbGVmdCBiZWhpbmQgZm9yIG1hbnVhbCBpbnNwZWN0aW9uLgorCitjaGVjazoKKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBkaWZmCisgICAgICAgIDpmZXRjaCB0bF9QSC56aXAKKyAgICAgICAgOm1rZGlyIHRtcAorICAgICAgICA6Y2QgdG1wCisgICAgICAgIEB0cnk6CisgICAgICAgICAgICBAaW1wb3J0IHN0YXQKKyAgICAgICAgICAgIDpzeXMgJFVOWklQIC4uL3RsX1BILnppcAorICAgICAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLi4vdGxfUEgub3JpZy5hZmYgdGxfUEguYWZmID5kCisgICAgICAgICAgICBAaWYgb3Muc3RhdCgnZCcpW3N0YXQuU1RfU0laRV0gPiAwOgorICAgICAgICAgICAgICAgIDpjb3B5IHRsX1BILmFmZiAuLi90bF9QSC5uZXcuYWZmCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi90bF9QSC5vcmlnLmRpYyB0bF9QSC5kaWMgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgdGxfUEguZGljIC4uL3RsX1BILm5ldy5kaWMKKyAgICAgICAgQGZpbmFsbHk6CisgICAgICAgICAgICA6Y2QgLi4KKyAgICAgICAgICAgIDpkZWxldGUge3J9e2Z9e3F9IHRtcAorICAgICAgICAgICAgOmRlbGV0ZSB0bF9QSC56aXAKKworCisjIHZpbTogc2V0IHN0cz00IHN3PTQgOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC90bC90bF9QSC5kaWZmIGIvcnVudGltZS9zcGVsbC90bC90bF9QSC5kaWZmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwMjA4ZTcKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL3RsL3RsX1BILmRpZmYKQEAgLTAsMCArMSwxOCBAQAorKioqIHRsX1BILm9yaWcuYWZmCVdlZCBBdWcgMzEgMjE6MTI6MjAgMjAwNQorLS0tIHRsX1BILmFmZglXZWQgQXVnIDMxIDIxOjEzOjE2IDIwMDUKKyoqKioqKioqKioqKioqKgorKioqIDE5ICoqKioKKy0tLSAxOSwzMSAtLS0tCisgIFRSWSBhbmdpc290bWtseXB1YnJoZGV3QVAtU0tNSU5EVEhCJ0xFSkdVdldDY09SZmpZenFGeFZRWgorKyAKKysgRk9MICDf4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+/worKyBMT1cgIN/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7/CisrIFVQUCAg38DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3v8KKysgCisrIFNPRk9GUk9NIGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVrg4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW2Nna29zd3r8KKysgU09GT1RPICAgZWJjdGVmZ2hlamtsbm5lcGtyc3RldnZrZXNlYmN0ZWZnaGVqa2xubmVwa3JzdGV2dmtlc2VlZWVlZWVjZWVlZWVlZWVkbmVlZWVlZWVlZWVlcHNlZWVlZWVlZWNlZWVlZWVlZWRuZWVlZWVlZWVlZWVwPworKyAKKysgTUlEV09SRAknLQorKyAKKysgTUFQIDEKKysgTUFQIG7xCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL3RuL21haW4uYWFwIGIvcnVudGltZS9zcGVsbC90bi9tYWluLmFhcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MWFmMTYxCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC90bi9tYWluLmFhcApAQCAtMCwwICsxLDgyIEBACisjIEFhcCByZWNpcGUgZm9yIFNldHN3YW5hIFZpbSBzcGVsbCBmaWxlcy4KKworIyBVc2UgYSBmcmVzaGx5IGNvbXBpbGVkIFZpbSBpZiBpdCBleGlzdHMuCitAaWYgb3MucGF0aC5leGlzdHMoJy4uLy4uLy4uL3NyYy92aW0nKToKKyAgICBWSU0gPSAuLi8uLi8uLi9zcmMvdmltCitAZWxzZToKKyAgICA6cHJvZ3NlYXJjaCBWSU0gdmltCisKK1NQRUxMRElSID0gLi4KK0ZJTEVTICAgID0gdG5fWkEuYWZmIHRuX1pBLmRpYworCisjIEkgZG9uJ3QgaGF2ZSBhIFNldHN3YW5hIGxvY2FsZSwgdXNlIFJvbWFuaWFuIGluc3RlYWQuCithbGw6ICRTUEVMTERJUi90bi5pc28tODg1OS0yLnNwbCAkU1BFTExESVIvdG4udXRmLTguc3BsIFwKKyAgICAgICAgJFNQRUxMRElSL3RuLmNwMTI1MC5zcGwgLi4vUkVBRE1FX3RuLnR4dAorCiskU1BFTExESVIvdG4uaXNvLTg4NTktMi5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz1yb19STy5JU084ODU5LTIgJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvdG4gdG5fWkEiIC1jIHEKKworJFNQRUxMRElSL3RuLnV0Zi04LnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPXJvX1JPLlVURi04ICRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL3RuIHRuX1pBIiAtYyBxCisKKyRTUEVMTERJUi90bi5jcDEyNTAuc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgJFZJTSAtdSBOT05FIC1lIC1jICJzZXQgZW5jPWNwMTI1MCIgLWMgIm1rc3BlbGwhICRTUEVMTERJUi90biB0bl9aQSIgLWMgcQorCisuLi9SRUFETUVfdG4udHh0OiBSRUFETUVfdG5fWkEudHh0CisgICAgICAgIDpjb3B5ICRzb3VyY2UgJHRhcmdldAorCisjCisjIEZldGNoaW5nIHRoZSBmaWxlcyBmcm9tIE9wZW5PZmZpY2Uub3JnLgorIworT09ESVIgPSBodHRwOi8vZnRwLnNlcnZpY2VzLm9wZW5vZmZpY2Uub3JnL3B1Yi9PcGVuT2ZmaWNlLm9yZy9jb250cmliL2RpY3Rpb25hcmllcworOmF0dHIge2ZldGNoID0gJE9PRElSLyVmaWxlJX0gdG5fWkEuemlwCisKKyMgVGhlIGZpbGVzIGRvbid0IGRlcGVuZCBvbiB0aGUgLnppcCBmaWxlIHNvIHRoYXQgd2UgY2FuIGRlbGV0ZSBpdC4KKyMgT25seSBkb3dubG9hZCB0aGUgemlwIGZpbGUgaWYgdGhlIHRhcmdldHMgZG9uJ3QgZXhpc3QuCisjIFRoaXMgaXMgYSBiaXQgdHJpY2t5LCBzaW5jZSB0aGUgZmlsZSBuYW1lIGluY2x1ZGVzIHRoZSBkYXRlLgordG5fWkEuYWZmIHRuX1pBLmRpYzoge2J1aWxkY2hlY2s9fQorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIHBhdGNoCisgICAgICAgIDpmZXRjaCB0bl9aQS56aXAKKyAgICAgICAgOnN5cyAkVU5aSVAgdG5fWkEuemlwCisgICAgICAgIDpkZWxldGUgdG5fWkEuemlwCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ3RuX1pBLm9yaWcuYWZmJyk6CisgICAgICAgICAgICA6Y29weSB0bl9aQS5hZmYgdG5fWkEub3JpZy5hZmYKKyAgICAgICAgQGlmIG5vdCBvcy5wYXRoLmV4aXN0cygndG5fWkEub3JpZy5kaWMnKToKKyAgICAgICAgICAgIDpjb3B5IHRuX1pBLmRpYyB0bl9aQS5vcmlnLmRpYworICAgICAgICBAaWYgb3MucGF0aC5leGlzdHMoJ3RuX1pBLmRpZmYnKToKKyAgICAgICAgICAgIDpzeXMgcGF0Y2ggPHRuX1pBLmRpZmYKKworCisjIEdlbmVyYXRlIGRpZmYgZmlsZXMsIHNvIHRoYXQgb3RoZXJzIGNhbiBnZXQgdGhlIE9wZW5PZmZpY2UgZmlsZXMgYW5kIGFwcGx5CisjIHRoZSBkaWZmcyB0byBnZXQgdGhlIFZpbSB2ZXJzaW9ucy4KKworZGlmZjoKKyAgICAgICAgOmFzc2VydHBrZyBkaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgdG5fWkEub3JpZy5hZmYgdG5fWkEuYWZmID50bl9aQS5kaWZmCisgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC1hIC1DIDEgdG5fWkEub3JpZy5kaWMgdG5fWkEuZGljID4+dG5fWkEuZGlmZgorCisKKyMgQ2hlY2sgZm9yIHVwZGF0ZWQgc3BlbGwgZmlsZXMuICBXaGVuIHRoZXJlIGFyZSBjaGFuZ2VzIHRoZQorIyAiLm5ldy5hZmYiIGFuZCAiLm5ldy5kaWMiIGZpbGVzIGFyZSBsZWZ0IGJlaGluZCBmb3IgbWFudWFsIGluc3BlY3Rpb24uCisKK2NoZWNrOgorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIGRpZmYKKyAgICAgICAgOmZldGNoIHRuX1pBLnppcAorICAgICAgICA6bWtkaXIgdG1wCisgICAgICAgIDpjZCB0bXAKKyAgICAgICAgQHRyeToKKyAgICAgICAgICAgIEBpbXBvcnQgc3RhdAorICAgICAgICAgICAgOnN5cyAkVU5aSVAgLi4vdG5fWkEuemlwCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi90bl9aQS5vcmlnLmFmZiB0bl9aQS5hZmYgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgdG5fWkEuYWZmIC4uL3RuX1pBLm5ldy5hZmYKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL3RuX1pBLm9yaWcuZGljIHRuX1pBLmRpYyA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSB0bl9aQS5kaWMgLi4vdG5fWkEubmV3LmRpYworICAgICAgICBAZmluYWxseToKKyAgICAgICAgICAgIDpjZCAuLgorICAgICAgICAgICAgOmRlbGV0ZSB7cn17Zn17cX0gdG1wCisgICAgICAgICAgICA6ZGVsZXRlIHRuX1pBLnppcAorCisKKyMgdmltOiBzZXQgc3RzPTQgc3c9NCA6CmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL3RuL3RuX1pBLmRpZmYgYi9ydW50aW1lL3NwZWxsL3RuL3RuX1pBLmRpZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGFjZTBkNAotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvdG4vdG5fWkEuZGlmZgpAQCAtMCwwICsxLDEwIEBACisqKiogdG5fWkEub3JpZy5hZmYJV2VkIEF1ZyAzMSAyMDo0NjoyNCAyMDA1CistLS0gdG5fWkEuYWZmCVdlZCBBdWcgMzEgMjA6NDc6MDEgMjAwNQorKioqKioqKioqKioqKioqCisqKiogMjEgKioqKgorLS0tIDIxLDI1IC0tLS0KKyAgVFJZIGFlb2x0aW5zZ2hrbWJkd3JwdWZ5TWpTREJLUFRMLUFKUkVHTmNJdkZDVVdZw6F6CisrIAorKyBGT0wgsaKztbaoubq7vL6/sbKztLW2t7i5uru8vb6/4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb4+fr7/P3+3/8KKysgTE9XILGis7W2qLm6u7y+v7Gys7S1tre4ubq7vL2+v+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX2+Pn6+/z9/t//CisrIFVQUCChoqOlpqipqqusrq+xsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tjZ2tvc3d7f/wpkaWZmIC0tZ2l0IGEvcnVudGltZS9zcGVsbC91ay9tYWluLmFhcCBiL3J1bnRpbWUvc3BlbGwvdWsvbWFpbi5hYXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2EwZmU2ZAotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvdWsvbWFpbi5hYXAKQEAgLTAsMCArMSw1NyBAQAorIyBBYXAgcmVjaXBlIGZvciBVa3JhaW5pYW4gVmltIHNwZWxsIGZpbGVzLgorCisjIFVzZSBhIGZyZXNobHkgY29tcGlsZWQgVmltIGlmIGl0IGV4aXN0cy4KK0BpZiBvcy5wYXRoLmV4aXN0cygnLi4vLi4vLi4vc3JjL3ZpbScpOgorICAgIFZJTSA9IC4uLy4uLy4uL3NyYy92aW0KK0BlbHNlOgorICAgIDpwcm9nc2VhcmNoIFZJTSB2aW0KKworU1BFTExESVIgPSAuLgorRklMRVMgICAgPSB1a19VQS5hZmYgdWtfVUEuZGljCisKK2FsbDogJFNQRUxMRElSL3VrLmtvaTgtdS5zcGwgJFNQRUxMRElSL3VrLnV0Zi04LnNwbCBcCisgICAgICAgIC4uL1JFQURNRV91ay50eHQKKworJFNQRUxMRElSL3VrLmtvaTgtdS5zcGwgOiAkRklMRVMKKyAgICAgICAgOnN5cyBlbnYgTEFORz11a19VQS5LT0k4LVUgJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvdWsgdWtfVUEiIC1jIHEKKworJFNQRUxMRElSL3VrLnV0Zi04LnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPXVrX1VBLlVURi04ICRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgJFNQRUxMRElSL3VrIHVrX1VBIiAtYyBxCisKKy4uL1JFQURNRV91ay50eHQ6IFJFQURNRV91a19VQS50eHQKKyAgICAgICAgOmNvcHkgJHNvdXJjZSAkdGFyZ2V0CisKKyMKKyMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCisjCitPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCis6YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSB1a19VQS56aXAKKworIyBUaGUgZmlsZXMgZG9uJ3QgZGVwZW5kIG9uIHRoZSAuemlwIGZpbGUgc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGl0LgorIyBPbmx5IGRvd25sb2FkIHRoZSB6aXAgZmlsZSBpZiB0aGUgdGFyZ2V0cyBkb24ndCBleGlzdC4KKyMgVGhpcyBpcyBhIGJpdCB0cmlja3ksIHNpbmNlIHRoZSBmaWxlIG5hbWUgaW5jbHVkZXMgdGhlIGRhdGUuCit1a19VQS5hZmYgdWtfVUEuZGljOiB7YnVpbGRjaGVjaz19CisgICAgICAgIDphc3NlcnRwa2cgdW56aXAKKyAgICAgICAgOmZldGNoIHVrX1VBLnppcAorICAgICAgICA6c3lzIHVuemlwIHVrX1VBLnppcAorICAgICAgICA6ZGVsZXRlIHVrX1VBLnppcAorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCd1a19VQS5vcmlnLmFmZicpOgorICAgICAgICAgICAgOmNvcHkgdWtfVUEuYWZmIHVrX1VBLm9yaWcuYWZmCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ3VrX1VBLm9yaWcuZGljJyk6CisgICAgICAgICAgICA6Y29weSB1a19VQS5kaWMgdWtfVUEub3JpZy5kaWMKKyAgICAgICAgQGlmIG9zLnBhdGguZXhpc3RzKCd1a19VQS5kaWZmJyk6CisgICAgICAgICAgICA6c3lzIHBhdGNoIDx1a19VQS5kaWZmCisKKyMgR2VuZXJhdGUgZGlmZiBmaWxlcywgc28gdGhhdCBvdGhlcnMgY2FuIGdldCB0aGUgT3Blbk9mZmljZSBmaWxlcyBhbmQgYXBwbHkKKyMgdGhlIGRpZmZzIHRvIGdldCB0aGUgVmltIHZlcnNpb25zLgorCitkaWZmOgorICAgICAgICA6YXNzZXJ0cGtnIGRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSB1a19VQS5vcmlnLmFmZiB1a19VQS5hZmYgPnVrX1VBLmRpZmYKKyAgICAgICAgOnN5cyB7Zm9yY2V9IGRpZmYgLWEgLUMgMSB1a19VQS5vcmlnLmRpYyB1a19VQS5kaWMgPj51a19VQS5kaWZmCisKKyMgQ2hlY2sgZm9yIHVwZGF0ZWQgc3BlbGwgZmlsZXMuICBXaGVuIHRoZXJlIGFyZSBjaGFuZ2VzIHRoZQorIyAiLm5ldy5hZmYiIGFuZCAiLm5ldy5kaWMiIGZpbGVzIGFyZSBsZWZ0IGJlaGluZCBmb3IgbWFudWFsIGluc3BlY3Rpb24uCisKK2NoZWNrOgorICAgICAgICA6cHJpbnQgRG9lc24ndCB3b3JrIHlldC4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvdWsvdWtfVUEuZGlmZiBiL3J1bnRpbWUvc3BlbGwvdWsvdWtfVUEuZGlmZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZTIzZGMyCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zcGVsbC91ay91a19VQS5kaWZmCkBAIC0wLDAgKzEsMTcgQEAKKyoqKiB1a19VQS5vcmlnLmFmZglXZWQgQXVnIDMxIDIxOjI4OjAzIDIwMDUKKy0tLSB1a19VQS5hZmYJV2VkIEF1ZyAzMSAyMToyOTo1MyAyMDA1CisqKioqKioqKioqKioqKioKKyoqKiAyLDUgKioqKgorICBUUlkgz8HOyabS19TF08vMxNXQzdrR2MfC3sjKw8DWp9ukxt2t7+Hu6bby9/Tl8+vs5PXw7frx+Ofi/ujq4+D2t/u05v29JworISBMT1dFUiDBwtfHxK3FpNbayaanysvMzc7P0NLT1NXGyMPe293YwNEnCishIFVQUEVSIOHi9+fkveW09vrptrfq6+zt7u/w8vP09ebo4/77/fjg8ScKKyAgCistLS0gMiw5IC0tLS0KKyAgVFJZIM/Bzsmm0tfUxdPLzMTV0M3a0djHwt7IysPA1qfbpMbdre/h7um28vf05fPr7OT18O368fjn4v7o6uPg9rf7tOb9vScKKyEgCishIEZPTCDBwtfHxK3FpNbayaanysvMzc7P0NLT1NXGyMPe293YwNEnCishIExPVyDBwtfHxK3FpNbayaanysvMzc7P0NLT1NXGyMPe293YwNEnCishIFVQUCDh4vfn5L3ltPb66ba36uvs7e7v8PLz9PXm6OP++/344PEnCishIAorISBNSURXT1JEICctCisgIApkaWZmIC0tZ2l0ICJhL3J1bnRpbWUvc3BlbGwveWkvXDA0MXlpLmRpZmYiICJiL3J1bnRpbWUvc3BlbGwveWkvXDA0MXlpLmRpZmYiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ODRkYzY5Li4wMDAwMDAwCi0tLSAiYS9ydW50aW1lL3NwZWxsL3lpL1wwNDF5aS5kaWZmIgorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotKioqIHdvcmRsaXN0LnV0ZjgudHh0CVRodSBBdWcgMTEgMTk6NDk6MjIgMjAwNQotLS0tIHlpLmRpYwlUaHUgQXVnIDExIDE5OjQ5OjIzIDIwMDUKLSoqKioqKioqKioqKioqKgotKioqIDEsMiAqKioqCi0tLS0gMSwzIC0tLS0KLSsgOTk5OTk5Ci0gINeS16jXldeg15jXotec16LXntei16DXmAotICDXk9eW16nXkNa415HXoteg15PXmden16EKZGlmZiAtLWdpdCAiYS9ydW50aW1lL3NwZWxsL3lpL1wwNDF5aV90ci5kaWZmIiAiYi9ydW50aW1lL3NwZWxsL3lpL1wwNDF5aV90ci5kaWZmIgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWQ4MTgzZi4uMDAwMDAwMAotLS0gImEvcnVudGltZS9zcGVsbC95aS9cMDQxeWlfdHIuZGlmZiIKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLSoqKiB3b3JkbGlzdC50eHQJVHVlIEF1ZyAxNiAxMDo0NjoyNiAyMDA1Ci0tLS0geWlfdHIuZGljCVR1ZSBBdWcgMTYgMTA6NDY6NDIgMjAwNQotKioqKioqKioqKioqKioqCi0qKiogMSwyICoqKioKLS0tLSAxLDMgLS0tLQotKyA4NDYwOAotICBncnVudGVsZW1lbnQKLSAgZHpob2JlbmRpa3MKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3BlbGwvenUvbWFpbi5hYXAgYi9ydW50aW1lL3NwZWxsL3p1L21haW4uYWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4MDVkNzYKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3NwZWxsL3p1L21haW4uYWFwCkBAIC0wLDAgKzEsODMgQEAKKyMgQWFwIHJlY2lwZSBmb3IgWnVsdSBWaW0gc3BlbGwgZmlsZXMuCisKKyMgVXNlIGEgZnJlc2hseSBjb21waWxlZCBWaW0gaWYgaXQgZXhpc3RzLgorQGlmIG9zLnBhdGguZXhpc3RzKCcuLi8uLi8uLi9zcmMvdmltJyk6CisgICAgVklNID0gLi4vLi4vLi4vc3JjL3ZpbQorQGVsc2U6CisgICAgOnByb2dzZWFyY2ggVklNIHZpbQorCitTUEVMTERJUiA9IC4uCitGSUxFUyAgICA9IHp1X1pBLmFmZiB6dV9aQS5kaWMKKworIyBUaGVyZSBpcyBubyBadWx1IGxvY2FsZSwgdXNlIHRoZSBEdXRjaCBvbmUgaW5zdGVhZC4KK2FsbDogJFNQRUxMRElSL3p1LmxhdGluMS5zcGwgJFNQRUxMRElSL3p1LnV0Zi04LnNwbCBcCisgICAgICAgICRTUEVMTERJUi96dS5hc2NpaS5zcGwgLi4vUkVBRE1FX3p1LnR4dAorCiskU1BFTExESVIvenUubGF0aW4xLnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzIGVudiBMQU5HPW5sX05MLklTTzg4NTktMQorCQkkVklNIC11IE5PTkUgLWUgLWMgIm1rc3BlbGwhICRTUEVMTERJUi96dSB6dV9aQSIgLWMgcQorCiskU1BFTExESVIvenUudXRmLTguc3BsIDogJEZJTEVTCisgICAgICAgIDpzeXMgZW52IExBTkc9bmxfTkwuVVRGLTgKKwkJJFZJTSAtdSBOT05FIC1lIC1jICJta3NwZWxsISAkU1BFTExESVIvenUgenVfWkEiIC1jIHEKKworJFNQRUxMRElSL3p1LmFzY2lpLnNwbCA6ICRGSUxFUworICAgICAgICA6c3lzICRWSU0gLXUgTk9ORSAtZSAtYyAibWtzcGVsbCEgLWFzY2lpICRTUEVMTERJUi96dSB6dV9aQSIgLWMgcQorIAorLi4vUkVBRE1FX3p1LnR4dCA6IFJFQURNRV96dV9aQS50eHQKKyAgICAgICAgOmNvcHkgJHNvdXJjZSAkdGFyZ2V0CisKKyMKKyMgRmV0Y2hpbmcgdGhlIGZpbGVzIGZyb20gT3Blbk9mZmljZS5vcmcuCisjCitPT0RJUiA9IGh0dHA6Ly9mdHAuc2VydmljZXMub3Blbm9mZmljZS5vcmcvcHViL09wZW5PZmZpY2Uub3JnL2NvbnRyaWIvZGljdGlvbmFyaWVzCis6YXR0ciB7ZmV0Y2ggPSAkT09ESVIvJWZpbGUlfSB6dV9aQS56aXAKKworIyBUaGUgZmlsZXMgZG9uJ3QgZGVwZW5kIG9uIHRoZSAuemlwIGZpbGUgc28gdGhhdCB3ZSBjYW4gZGVsZXRlIGl0LgorIyBPbmx5IGRvd25sb2FkIHRoZSB6aXAgZmlsZSBpZiB0aGUgdGFyZ2V0cyBkb24ndCBleGlzdC4KK3p1X1pBLmFmZiB6dV9aQS5kaWM6IHtidWlsZGNoZWNrPX0KKyAgICAgICAgOmFzc2VydHBrZyB1bnppcCBwYXRjaAorICAgICAgICA6ZmV0Y2ggenVfWkEuemlwCisgICAgICAgIDpzeXMgJFVOWklQIHp1X1pBLnppcAorICAgICAgICA6ZGVsZXRlIHp1X1pBLnppcAorICAgICAgICBAaWYgbm90IG9zLnBhdGguZXhpc3RzKCd6dV9aQS5vcmlnLmFmZicpOgorICAgICAgICAgICAgOmNvcHkgenVfWkEuYWZmIHp1X1pBLm9yaWcuYWZmCisgICAgICAgIEBpZiBub3Qgb3MucGF0aC5leGlzdHMoJ3p1X1pBLm9yaWcuZGljJyk6CisgICAgICAgICAgICA6Y29weSB6dV9aQS5kaWMgenVfWkEub3JpZy5kaWMKKyAgICAgICAgQGlmIG9zLnBhdGguZXhpc3RzKCd6dV9aQS5kaWZmJyk6CisgICAgICAgICAgICA6c3lzIHBhdGNoIDx6dV9aQS5kaWZmCisKKworIyBHZW5lcmF0ZSBkaWZmIGZpbGVzLCBzbyB0aGF0IG90aGVycyBjYW4gZ2V0IHRoZSBPcGVuT2ZmaWNlIGZpbGVzIGFuZCBhcHBseQorIyB0aGUgZGlmZnMgdG8gZ2V0IHRoZSBWaW0gdmVyc2lvbnMuCisKK2RpZmY6CisgICAgICAgIDphc3NlcnRwa2cgZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIHp1X1pBLm9yaWcuYWZmIHp1X1pBLmFmZiA+enVfWkEuZGlmZgorICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAtYSAtQyAxIHp1X1pBLm9yaWcuZGljIHp1X1pBLmRpYyA+Pnp1X1pBLmRpZmYKKworCisjIENoZWNrIGZvciB1cGRhdGVkIE9wZW5PZmZpY2Ugc3BlbGwgZmlsZXMuICBXaGVuIHRoZXJlIGFyZSBjaGFuZ2VzIHRoZQorIyAiLm5ldy5hZmYiIGFuZCAiLm5ldy5kaWMiIGZpbGVzIGFyZSBsZWZ0IGJlaGluZCBmb3IgbWFudWFsIGluc3BlY3Rpb24uCisKK2NoZWNrOgorICAgICAgICA6YXNzZXJ0cGtnIHVuemlwIGRpZmYKKyAgICAgICAgOmZldGNoIHp1X1pBLnppcAorICAgICAgICA6bWtkaXIgdG1wCisgICAgICAgIDpjZCB0bXAKKyAgICAgICAgQHRyeToKKyAgICAgICAgICAgIEBpbXBvcnQgc3RhdAorICAgICAgICAgICAgOnN5cyAkVU5aSVAgLi4venVfWkEuemlwCisgICAgICAgICAgICA6c3lzIHtmb3JjZX0gZGlmZiAuLi96dV9aQS5vcmlnLmFmZiB6dV9aQS5hZmYgPmQKKyAgICAgICAgICAgIEBpZiBvcy5zdGF0KCdkJylbc3RhdC5TVF9TSVpFXSA+IDA6CisgICAgICAgICAgICAgICAgOmNvcHkgenVfWkEuYWZmIC4uL3p1X1pBLm5ldy5hZmYKKyAgICAgICAgICAgIDpzeXMge2ZvcmNlfSBkaWZmIC4uL3p1X1pBLm9yaWcuZGljIHp1X1pBLmRpYyA+ZAorICAgICAgICAgICAgQGlmIG9zLnN0YXQoJ2QnKVtzdGF0LlNUX1NJWkVdID4gMDoKKyAgICAgICAgICAgICAgICA6Y29weSB6dV9aQS5kaWMgLi4venVfWkEubmV3LmRpYworICAgICAgICBAZmluYWxseToKKyAgICAgICAgICAgIDpjZCAuLgorICAgICAgICAgICAgOmRlbGV0ZSB7cn17Zn17cX0gdG1wCisgICAgICAgICAgICA6ZGVsZXRlIHp1X1pBLnppcAorCisKKyMgdmltOiBzZXQgc3RzPTQgc3c9NCA6CmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL3p1L3p1X1pBLmRpZmYgYi9ydW50aW1lL3NwZWxsL3p1L3p1X1pBLmRpZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDQ0ZDAyOQotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3BlbGwvenUvenVfWkEuZGlmZgpAQCAtMCwwICsxLDggQEAKKyoqKiB6dV9aQS5vcmlnLmFmZglXZWQgQXVnIDMxIDIxOjQ5OjE4IDIwMDUKKy0tLSB6dV9aQS5hZmYJV2VkIEF1ZyAzMSAyMTo0OTo1MiAyMDA1CisqKioqKioqKioqKioqKioKKyoqKiAyMSAqKioqCistLS0gMjEsMjMgLS0tLQorICBUUlkgZWFudW9sa2lobWd3emJ0c3lwZHFmY2p2eHIKKysgCisrIE1JRFdPUkQgLQo=