Name: series-workflowds7hc Phase: Failed StartedAt: 2026-07-30 04:10:12 +0000 UTC FinishedAt: 2026-07-30 04:14:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowds7hc[0] Phase: Succeeded StartedAt: 2026-07-30 04:10:12 +0000 UTC FinishedAt: 2026-07-30 04:14:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowds7hc[0].run-triage Phase: Succeeded StartedAt: 2026-07-30 04:10:12 +0000 UTC FinishedAt: 2026-07-30 04:14:48 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDA0OjE0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgTWFrZWZpbGVzIGZvciBCUEYgc2VsZnRlc3RzIHRvIGZpeCBvdXQtb2YtdHJlZSBidWlsZHMgKHdoZW4gT1VUUFVUIGlzIHNldCkuIEl0IGRvZXMgbm90IGNvbnRhaW4gYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIGNvZGUsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDA0OjE0PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgN2Y0Mzg5YzFhNjFmM2M2NDk5NjA4NWFmNzM3YTFlZThiZDI5NmUzYVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDMwIDA0OjE0OjMxIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9NYWtlZmlsZSBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9NYWtlZmlsZVxuaW5kZXggYjY0MmVlNDg5ZWE2NC4uYjE1MGE2NmYzYzI1MSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9NYWtlZmlsZVxuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL01ha2VmaWxlXG5AQCAtMTM1LDYgJiM0MzsxMzUsOSBAQCBURVNUX1BST0dTX0VYVEVOREVEIDo9IFxcXG4gVEVTVF9LTU9EUyA6PSBicGZfdGVzdG1vZC5rbyBicGZfdGVzdF9ub19jZmkua28gYnBmX3Rlc3RfbW9kb3JkZXJfeC5rbyBcXFxuIFx0YnBmX3Rlc3RfbW9kb3JkZXJfeS5rbyBicGZfdGVzdF9ycXNwaW5sb2NrLmtvXG4gVEVTVF9LTU9EX1RBUkdFVFMgPSAkKGFkZHByZWZpeCAkKE9VVFBVVCkvLCQoVEVTVF9LTU9EUykpXG4mIzQzOyMgQnVpbGQgZGlyZWN0b3J5IGZvciBrZXJuZWwgbW9kdWxlczogcm91dGVkIHRvICQoT1VUUFVUKS90ZXN0X2ttb2RzIHdoZW5cbiYjNDM7IyBPVVRQVVQgaXMgc2V0IHNvIHRoYXQga2J1aWxkIGludGVybWVkaWF0ZXMgc3RheSBvdXQgb2YgdGhlIHNvdXJjZSB0cmVlLlxuJiM0MztURVNUX0tNT0RTX09VVERJUiA6PSAkKGlmICQoT1VUUFVUKSwkKE9VVFBVVCkvdGVzdF9rbW9kcyx0ZXN0X2ttb2RzKVxuIFxuICMgQ29tcGlsZSBidXQgbm90IHBhcnQgb2YgJiMzOTttYWtlIHJ1bl90ZXN0cyYjMzk7XG4gVEVTVF9HRU5fUFJPR1NfRVhURU5ERUQgPSBcXFxuQEAgLTE2Myw4ICYjNDM7MTY2LDggQEAgb3ZlcnJpZGUgZGVmaW5lIENMRUFOXG4gXHQkKFEpJChSTSkgLXIgJChURVNUX0dFTl9GSUxFUylcbiBcdCQoUSkkKFJNKSAtciAkKFRFU1RfS01PRFMpXG4gXHQkKFEpJChSTSkgLXIgJChFWFRSQV9DTEVBTilcbi1cdCQoUSkkKE1BS0UpIC1DIHRlc3Rfa21vZHMgY2xlYW5cbi1cdCQoUSkkKE1BS0UpIC1DIGxpYmFyZW5hIGNsZWFuXG4mIzQzO1x0JChRKSQoTUFLRSkgLUMgdGVzdF9rbW9kcyAkKGlmICQoT1VUUFVUKSxPVVRQVVQ9JChPVVRQVVQpL3Rlc3Rfa21vZHMpIGNsZWFuXG4mIzQzO1x0JChRKSQoTUFLRSkgLUMgbGliYXJlbmEgJChpZiAkKE9VVFBVVCksT1VUUFVUPSQoT1VUUFVUKS9saWJhcmVuYSkgY2xlYW5cbiBcdCQoUSkkKE1BS0UpIGRvY3MtY2xlYW5cbiBlbmRlZlxuIFxuQEAgLTMwMSwxNyAmIzQzOzMwNCwxOCBAQCAkKE9VVFBVVCkvc2lnbi1maWxlOiAuLi8uLi8uLi8uLi9zY3JpcHRzL3NpZ24tZmlsZS5jXG4gIyBzdXBwb3J0IHRoYXQgZm9yIHJlZ3VsYXIgcnVsZXMuIEhvd2V2ZXIsIHBhdHRlcm4gbWF0Y2hpbmcgcnVsZXMgYXJlIGltcGxpY2l0bHlcbiAjIHRyZWF0ZWQgYXMgZ3JvdXBlZCBldmVuIHdpdGggb2xkZXIgdmVyc2lvbnMgb2YgbWFrZSwgc28gYXMgYSB3b3JrYXJvdW5kLCB0aGVcbiAjIHN1YnN0KCkgdHVybnMgdGhlIHJ1bGUgaW50byBhIHBhdHRlcm4gbWF0Y2hpbmcgcnVsZVxuLSQoYWRkcHJlZml4IHRlc3Rfa21vZHMvLCQoc3Vic3QgLmtvLCVrbywkKFRFU1RfS01PRFMpKSk6ICQoVk1MSU5VWF9CVEYpICQoUkVTT0xWRV9CVEZJRFMpICQod2lsZGNhcmQgdGVzdF9rbW9kcy9NYWtlZmlsZSB0ZXN0X2ttb2RzLyouW2NoXSlcbi1cdCQoUSkkKFJNKSB0ZXN0X2ttb2RzLyoua28gdGVzdF9rbW9kcy8qLm1vZC5vICMgZm9yY2UgcmUtY29tcGlsYXRpb25cbiYjNDM7JChhZGRwcmVmaXggJChURVNUX0tNT0RTX09VVERJUikvLCQoc3Vic3QgLmtvLCVrbywkKFRFU1RfS01PRFMpKSk6ICQoVk1MSU5VWF9CVEYpICQoUkVTT0xWRV9CVEZJRFMpICQod2lsZGNhcmQgdGVzdF9rbW9kcy9NYWtlZmlsZSB0ZXN0X2ttb2RzLyouW2NoXSlcbiYjNDM7XHQkKFEpJChSTSkgJChURVNUX0tNT0RTX09VVERJUikvKi5rbyAkKFRFU1RfS01PRFNfT1VURElSKS8qLm1vZC5vICMgZm9yY2UgcmUtY29tcGlsYXRpb25cbiBcdCQoUSkkKE1BS0UpICQoc3VibWFrZV9leHRyYXMpIC1DIHRlc3Rfa21vZHNcdFx0XHRcdFxcXG4gXHRcdCQoaWYgJChPKSxPPSQoYWJzcGF0aCAkKE8pKSlcdFx0XHRcdFx0XFxcbiBcdFx0JChpZiAkKEtCVUlMRF9PVVRQVVQpLEtCVUlMRF9PVVRQVVQ9JChhYnNwYXRoICQoS0JVSUxEX09VVFBVVCkpKVxcXG4mIzQzO1x0XHQkKGlmICQoT1VUUFVUKSxPVVRQVVQ9JChPVVRQVVQpL3Rlc3Rfa21vZHMpXHRcdFx0XFxcbiBcdFx0UkVTT0xWRV9CVEZJRFM9JChSRVNPTFZFX0JURklEUylcdFx0XHRcdFxcXG4gXHRcdEVYVFJBX0NGTEFHUz0mIzM5OyYjMzk7IEVYVFJBX0xERkxBR1M9JiMzOTsmIzM5O1xuIFxuLSQoVEVTVF9LTU9EX1RBUkdFVFMpOiAkKGFkZHByZWZpeCB0ZXN0X2ttb2RzLywkKFRFU1RfS01PRFMpKVxuJiM0MzskKFRFU1RfS01PRF9UQVJHRVRTKTogJChhZGRwcmVmaXggJChURVNUX0tNT0RTX09VVERJUikvLCQoVEVTVF9LTU9EUykpXG4gXHQkKGNhbGwgbXNnLE1PRCwsJEApXG4tXHQkKFEpJChpZiAkKFBFUk1JU1NJVkUpLGlmIFsgLWYgdGVzdF9rbW9kcy8kKEBGKSBdOyB0aGVuICljcCB0ZXN0X2ttb2RzLyQoQEYpICRAJChpZiAkKFBFUk1JU1NJVkUpLDsgZmkpXG4mIzQzO1x0JChRKSQoaWYgJChQRVJNSVNTSVZFKSxpZiBbIC1mICQoVEVTVF9LTU9EU19PVVRESVIpLyQoQEYpIF07IHRoZW4gKWNwICQoVEVTVF9LTU9EU19PVVRESVIpLyQoQEYpICRAJChpZiAkKFBFUk1JU1NJVkUpLDsgZmkpXG4gXG4gXG4gREVGQVVMVF9CUEZUT09MIDo9ICQoSE9TVF9TQ1JBVENIX0RJUikvc2Jpbi9icGZ0b29sXG5AQCAtNTgwLDcgJiM0Mzs1ODQsNyBAQCBUUlVOTkVSX0VYVFJBX09CSlMgOj0gJCQocGF0c3Vic3QgJS5jLCQkKFRSVU5ORVJfT1VUUFVUKS8lLm8sXHRcdFxcXG4gVFJVTk5FUl9MSUJfT0JKUyA6PSAkJChwYXRzdWJzdCAlLmMsJCQoVFJVTk5FUl9PVVRQVVQpLyUubyxcdFx0XFxcbiBcdFx0XHRcdCAkJChmaWx0ZXIgJS5jLCQoVFJVTk5FUl9MSUJfU09VUkNFUykpKVxuIFRSVU5ORVJfRVhUUkFfSERSUyA6PSAkJChmaWx0ZXIgJS5oLCQoVFJVTk5FUl9FWFRSQV9TT1VSQ0VTKSlcbi1UUlVOTkVSX1RFU1RTX0hEUiA6PSAkKFRSVU5ORVJfVEVTVFNfRElSKS90ZXN0cy5oXG4mIzQzO1RSVU5ORVJfVEVTVFNfSERSIDo9ICQoT1VUUFVUKS8kKFRSVU5ORVJfVEVTVFNfRElSKS90ZXN0cy5oXG4gVFJVTk5FUl9CUEZfU1JDUyA6PSAkJChub3RkaXIgJCQod2lsZGNhcmQgJChUUlVOTkVSX0JQRl9QUk9HU19ESVIpLyouYykpXG4gVFJVTk5FUl9CUEZfT0JKUyA6PSAkJChwYXRzdWJzdCAlLmMsJCQoVFJVTk5FUl9PVVRQVVQpLyUuYnBmLm8sICQkKFRSVU5ORVJfQlBGX1NSQ1MpKVxuIFRSVU5ORVJfQlBGX1NLRUxTIDo9ICQkKHBhdHN1YnN0ICUuYywkJChUUlVOTkVSX09VVFBVVCkvJS5za2VsLmgsXHRcXFxuQEAgLTcyMCw5ICYjNDM7NzI0LDkgQEAgZW5kaWZcbiAjIGVuc3VyZSB3ZSBzZXQgdXAgdGVzdHMuaCBoZWFkZXIgZ2VuZXJhdGlvbiBydWxlIGp1c3Qgb25jZVxuIGlmZXEgKCQoJChUUlVOTkVSX1RFU1RTX0RJUiktdGVzdHMtaGRyKSwpXG4gJChUUlVOTkVSX1RFU1RTX0RJUiktdGVzdHMtaGRyIDo9IHlcbi0kKFRSVU5ORVJfVEVTVFNfSERSKTogJChUUlVOTkVSX1RFU1RTX0RJUikvKi5jXG4mIzQzOyQoVFJVTk5FUl9URVNUU19IRFIpOiAkKFRSVU5ORVJfVEVTVFNfRElSKS8qLmMgfCAkKFRSVU5ORVJfT1VUUFVUKVxuIFx0JCQoY2FsbCBtc2csVEVTVC1IRFIsJChUUlVOTkVSX0JJTkFSWSksJCRAKVxuLVx0JCQoc2hlbGwgKGVjaG8gJiMzOTsvKiBHZW5lcmF0ZWQgaGVhZGVyLCBkbyBub3QgZWRpdCAqLyYjMzk7O1x0XHRcdFx0XHRcXFxuJiM0MztcdCQkKHNoZWxsIG1rZGlyIC1wICQkKGRpciAkJEApIFx1MDAyNlx1MDAyNiAoZWNobyAmIzM5Oy8qIEdlbmVyYXRlZCBoZWFkZXIsIGRvIG5vdCBlZGl0ICovJiMzOTs7XHRcdFx0XFxcbiBcdFx0ICBzZWQgLW4gLUUgJiMzOTtzL152b2lkIChzZXJpYWxfKT90ZXN0XyhbYS16QS1aMC05X10mIzQzOylcXCgodm9pZCk/XFwpLiovREVGSU5FX1RFU1QoXFwyKS9wJiMzOTtcdFxcXG4gXHRcdFx0JChUUlVOTkVSX1RFU1RTX0RJUikvKi5jIHwgc29ydCA7XHRcXFxuIFx0XHQgKSBcdTAwM2UgJCRAKVxuQEAgLTgwMiw3ICYjNDM7ODA2LDcgQEAgJChPVVRQVVQpLyQoVFJVTk5FUl9CSU5BUlkpOiAkKGlmICQoZmlsdGVyIHRlc3RfcHJvZ3MlLCQxKSwkKGlmICQoUEVSTUlTU0lWRSksJCRcbiBlbmRlZlxuIFxuIFZFUklGWV9TSUdfU0VUVVAgOj0gJChDVVJESVIpL3ZlcmlmeV9zaWdfc2V0dXAuc2hcbi1WRVJJRllfU0lHX0hEUiA6PSB2ZXJpZmljYXRpb25fY2VydC5oXG4mIzQzO1ZFUklGWV9TSUdfSERSIDo9ICQoT1VUUFVUKS92ZXJpZmljYXRpb25fY2VydC5oXG4gVkVSSUZJQ0FUSU9OX0NFUlQgICA6PSAkKEJVSUxEX0RJUikvc2lnbmluZ19rZXkuZGVyXG4gUFJJVkFURV9LRVkgOj0gJChCVUlMRF9ESVIpL3NpZ25pbmdfa2V5LnBlbVxuIFxuQEAgLTgyNiw3ICYjNDM7ODMwLDggQEAgTElCQVJFTkFfTUFLRV9BUkdTID0gXFxcbiBcdFx0Q0xBTkc9XCYjMzQ7JChDTEFORylcJiMzNDsgXFxcbiBcdFx0QlBGX0NGTEFHUz1cJiMzNDskKEJQRl9DRkxBR1MpICQoQ0xBTkdfQ0ZMQUdTKVwmIzM0OyBcXFxuIFx0XHRCUEZfVEFSR0VUX0VORElBTj1cJiMzNDskKEJQRl9UQVJHRVRfRU5ESUFOKVwmIzM0OyBcXFxuLVx0XHRRPVwmIzM0OyQoUSlcJiMzNDtcbiYjNDM7XHRcdFE9XCYjMzQ7JChRKVwmIzM0OyBcXFxuJiM0MztcdFx0T1VUUFVUPVwmIzM0OyQoT1VUUFVUKS9saWJhcmVuYVwmIzM0O1xuIFxuIExJQkFSRU5BX0JQRl9ERVBTIDo9ICQod2lsZGNhcmQgbGliYXJlbmEvTWFrZWZpbGVcdFx0XFxcbiBcdFx0XHRcdCBsaWJhcmVuYS9pbmNsdWRlLypcdFx0XFxcbkBAIC04MzUsMTcgJiM0Mzs4NDAsMTcgQEAgTElCQVJFTkFfQlBGX0RFUFMgOj0gJCh3aWxkY2FyZCBsaWJhcmVuYS9NYWtlZmlsZVx0XHRcXFxuIFx0XHRcdFx0IGxpYmFyZW5hL3NlbGZ0ZXN0cy8qXHRcdFxcXG4gXHRcdFx0XHQgbGliYXJlbmEvKi5icGYubylcbiBcbi1MSUJBUkVOQV9TS0VMIDo9IGxpYmFyZW5hL2xpYmFyZW5hLnNrZWwuaFxuJiM0MztMSUJBUkVOQV9TS0VMIDo9ICQoT1VUUFVUKS9saWJhcmVuYS9saWJhcmVuYS5za2VsLmhcbiBcbiAkKExJQkFSRU5BX1NLRUwpOiAkKElOQ0xVREVfRElSKS92bWxpbnV4LmggJChCUEZPQkopICQoTElCQVJFTkFfQlBGX0RFUFMpXG4tXHQmIzQzOyQoTUFLRSkgLUMgbGliYXJlbmEgbGliYXJlbmEuc2tlbC5oICQoTElCQVJFTkFfTUFLRV9BUkdTKVxuJiM0MztcdCYjNDM7JChNQUtFKSAtQyBsaWJhcmVuYSAkKExJQkFSRU5BX1NLRUwpICQoTElCQVJFTkFfTUFLRV9BUkdTKVxuIFxuIGlmbmVxICgkKENMQU5HX0hBU19BUkVOQV9BU0FOKSwpXG4tTElCQVJFTkFfQVNBTl9TS0VMIDo9IGxpYmFyZW5hL2xpYmFyZW5hX2FzYW4uc2tlbC5oXG4mIzQzO0xJQkFSRU5BX0FTQU5fU0tFTCA6PSAkKE9VVFBVVCkvbGliYXJlbmEvbGliYXJlbmFfYXNhbi5za2VsLmhcbiBDRkxBR1MgJiM0Mzs9IC1ESEFTX0JQRl9BUkVOQV9BU0FOXG4gXG4gJChMSUJBUkVOQV9BU0FOX1NLRUwpOiAkKElOQ0xVREVfRElSKS92bWxpbnV4LmggJChCUEZPQkopICQoTElCQVJFTkFfQlBGX0RFUFMpXG4tXHQmIzQzOyQoTUFLRSkgLUMgbGliYXJlbmEgbGliYXJlbmFfYXNhbi5za2VsLmggJChMSUJBUkVOQV9NQUtFX0FSR1MpXG4mIzQzO1x0JiM0MzskKE1BS0UpIC1DIGxpYmFyZW5hICQoTElCQVJFTkFfQVNBTl9TS0VMKSAkKExJQkFSRU5BX01BS0VfQVJHUylcbiBlbmRpZlxuIFxuICMgRGVmaW5lIHRlc3RfcHJvZ3MgdGVzdCBydW5uZXIuXG5AQCAtOTIzLDE0ICYjNDM7OTI4LDE0IEBAICQoZXZhbCAkKGNhbGwgREVGSU5FX1RFU1RfUlVOTkVSLHRlc3RfbWFwcykpXG4gIyBJdCBpcyBtdWNoIHNpbXBsZXIgdGhhbiB0ZXN0X21hcHMvdGVzdF9wcm9ncyBhbmQgc3VmZmljaWVudGx5IGRpZmZlcmVudCBmcm9tXG4gIyB0aGVtIChlLmcuLCB0ZXN0LmggaXMgdXNpbmcgY29tcGxldGVseSBwYXR0ZXJuKSwgdGhhdCBpdCYjMzk7cyB3b3J0aCBqdXN0XG4gIyBleHBsaWNpdGx5IGRlZmluaW5nIGFsbCB0aGUgcnVsZXMgZXhwbGljaXRseS5cbi12ZXJpZmllci90ZXN0cy5oOiB2ZXJpZmllci8qLmNcbi1cdCQoc2hlbGwgKCBjZCB2ZXJpZmllci87IFxcXG4mIzQzOyQoT1VUUFVUKS92ZXJpZmllci90ZXN0cy5oOiB2ZXJpZmllci8qLmMgfCAkKE9VVFBVVClcbiYjNDM7XHQkKHNoZWxsIG1rZGlyIC1wICQoT1VUUFVUKS92ZXJpZmllciBcdTAwMjZcdTAwMjYgKCBcXFxuIFx0XHQgIGVjaG8gJiMzOTsvKiBHZW5lcmF0ZWQgaGVhZGVyLCBkbyBub3QgZWRpdCAqLyYjMzk7OyBcXFxuIFx0XHQgIGVjaG8gJiMzOTsjaWZkZWYgRklMTF9BUlJBWSYjMzk7OyBcXFxuLVx0XHQgIGxzICouYyAyXHUwMDNlIC9kZXYvbnVsbCB8IHNlZCAtZSAmIzM5O3NAXFwoLipcXClAI2luY2x1ZGUgXFxcJiMzNDtcXDFcXFwmIzM0O0AmIzM5OzsgXFxcbiYjNDM7XHRcdCAgbHMgdmVyaWZpZXIvKi5jIDJcdTAwM2UgL2Rldi9udWxsIHwgc2VkIC1lICYjMzk7c0BcXCguKlxcKUAjaW5jbHVkZSBcJiMzNDskKENVUkRJUikvXFwxXCYjMzQ7QCYjMzk7OyBcXFxuIFx0XHQgIGVjaG8gJiMzOTsjZW5kaWYmIzM5OyBcXFxuLVx0XHQpIFx1MDAzZSB2ZXJpZmllci90ZXN0cy5oKVxuLSQoT1VUUFVUKS90ZXN0X3ZlcmlmaWVyOiB0ZXN0X3ZlcmlmaWVyLmMgdmVyaWZpZXIvdGVzdHMuaCAkKEJQRk9CSikgfCAkKE9VVFBVVClcbiYjNDM7XHRcdCkgXHUwMDNlICQoT1VUUFVUKS92ZXJpZmllci90ZXN0cy5oKVxuJiM0MzskKE9VVFBVVCkvdGVzdF92ZXJpZmllcjogdGVzdF92ZXJpZmllci5jICQoT1VUUFVUKS92ZXJpZmllci90ZXN0cy5oICQoQlBGT0JKKSB8ICQoT1VUUFVUKVxuIFx0JChjYWxsIG1zZyxCSU5BUlksLCRAKVxuIFx0JChRKSQoQ0MpICQoQ0ZMQUdTKSAkKGZpbHRlciAlLmEgJS5vICUuYywkXikgJChMRExJQlMpIC1vICRAXG4gXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2xpYmFyZW5hL01ha2VmaWxlIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2xpYmFyZW5hL01ha2VmaWxlXG5pbmRleCA1ZTJhYjUxNDgwNWU0Li4xOTVkNWY4MzMxODZhIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2xpYmFyZW5hL01ha2VmaWxlXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvbGliYXJlbmEvTWFrZWZpbGVcbkBAIC0yNywxMCAmIzQzOzI3LDE0IEBAIEJQRkRJUj0kKGFic3BhdGggJChMSUJBUkVOQSkvLi4pXG4gSU5DTFVERV9ESVIgPz0gJChCUEZESVIpL3Rvb2xzL2luY2x1ZGVcbiBMSUJCUEZfSU5DTFVERSA/PSAkKElOQ0xVREVfRElSKVxuIFxuJiM0MzsjIEJ1aWxkIG91dHB1dCBkaXJlY3Rvcnk7IGRlZmF1bHRzIHRvIGluLXRyZWUgZm9yIHN0YW5kYWxvbmUgYnVpbGRzLlxuJiM0MztPVVRQVVQgPz0gLlxuJiM0MzskKHNoZWxsIG1rZGlyIC1wICQoT1VUUFVUKSlcbiYjNDM7XG4gIyBTY2FuIHNyYy8gYW5kIHNlbGZ0ZXN0cy8gdG8gZ2VuZXJhdGUgdGhlIGZpbmFsIGJpbmFyaWVzXG4gTElCQVJFTkFfU09VUkNFUyA9ICQod2lsZGNhcmQgJChMSUJBUkVOQSkvc3JjLyouYnBmLmMpICQod2lsZGNhcmQgJChMSUJBUkVOQSkvc2VsZnRlc3RzLyouYnBmLmMpXG4tTElCQVJFTkFfT0JKRUNUUyA9ICQobm90ZGlyICQoTElCQVJFTkFfU09VUkNFUzouYnBmLmM9LmJwZi5vKSlcbi1MSUJBUkVOQV9PQkpFQ1RTX0FTQU4gPSAkKG5vdGRpciAkKExJQkFSRU5BX1NPVVJDRVM6LmJwZi5jPV9hc2FuLmJwZi5vKSlcbiYjNDM7TElCQVJFTkFfT0JKRUNUUyA9ICQoYWRkcHJlZml4ICQoT1VUUFVUKS8sJChub3RkaXIgJChMSUJBUkVOQV9TT1VSQ0VTOi5icGYuYz0uYnBmLm8pKSlcbiYjNDM7TElCQVJFTkFfT0JKRUNUU19BU0FOID0gJChhZGRwcmVmaXggJChPVVRQVVQpLywkKG5vdGRpciAkKExJQkFSRU5BX1NPVVJDRVM6LmJwZi5jPV9hc2FuLmJwZi5vKSkpXG4gXG4gSU5DTFVERVMgPSAtSSQoTElCQVJFTkEpL2luY2x1ZGUgLUkkKEJQRkRJUilcbiBpZm5lcSAoJChJTkNMVURFX0RJUiksKVxuQEAgLTYxLDMyICYjNDM7NjUsMzIgQEAgQ0ZMQUdTICYjNDM7PSAkKElOQ0xVREVTKVxuIHZwYXRoICUuYnBmLmMgJChMSUJBUkVOQSkvc3JjICQoTElCQVJFTkEpL3NlbGZ0ZXN0c1xuIHZwYXRoICUuYyAkKExJQkFSRU5BKS9zcmMgJChMSUJBUkVOQSkvc2VsZnRlc3RzXG4gXG4tc2tlbGV0b25zOiBsaWJhcmVuYS5za2VsLmggbGliYXJlbmFfYXNhbi5za2VsLmhcbiYjNDM7c2tlbGV0b25zOiAkKE9VVFBVVCkvbGliYXJlbmEuc2tlbC5oICQoT1VUUFVUKS9saWJhcmVuYV9hc2FuLnNrZWwuaFxuIC5QSE9OWTogc2tlbGV0b25zXG4gXG4tbGliYXJlbmFfYXNhbi5za2VsLmg6IGxpYmFyZW5hX2FzYW4uYnBmLm9cbiYjNDM7JChPVVRQVVQpL2xpYmFyZW5hX2FzYW4uc2tlbC5oOiAkKE9VVFBVVCkvbGliYXJlbmFfYXNhbi5icGYub1xuIFx0JChjYWxsIG1zZyxHRU4tU0tFTCxsaWJhcmVuYSwkQClcbiBcdCQoUSkkKEJQRlRPT0wpIGdlbiBza2VsZXRvbiAkXHUwMDNjIG5hbWUgXCYjMzQ7bGliYXJlbmFfYXNhblwmIzM0OyBcdTAwM2UgJEBcbiBcbi1saWJhcmVuYS5za2VsLmg6IGxpYmFyZW5hLmJwZi5vXG4mIzQzOyQoT1VUUFVUKS9saWJhcmVuYS5za2VsLmg6ICQoT1VUUFVUKS9saWJhcmVuYS5icGYub1xuIFx0JChjYWxsIG1zZyxHRU4tU0tFTCxsaWJhcmVuYSwkQClcbiBcdCQoUSkkKEJQRlRPT0wpIGdlbiBza2VsZXRvbiAkXHUwMDNjIG5hbWUgXCYjMzQ7bGliYXJlbmFcJiMzNDsgXHUwMDNlICRAXG4gXG4tbGliYXJlbmFfYXNhbi5icGYubzogJChMSUJBUkVOQV9PQkpFQ1RTX0FTQU4pXG4mIzQzOyQoT1VUUFVUKS9saWJhcmVuYV9hc2FuLmJwZi5vOiAkKExJQkFSRU5BX09CSkVDVFNfQVNBTilcbiBcdCQoY2FsbCBtc2csR0VOLU9CSixsaWJhcmVuYSwkQClcbiBcdCQoUSkkKEJQRlRPT0wpIGdlbiBvYmplY3QgJEAgJF5cbiBcbi1saWJhcmVuYS5icGYubzogJChMSUJBUkVOQV9PQkpFQ1RTKVxuJiM0MzskKE9VVFBVVCkvbGliYXJlbmEuYnBmLm86ICQoTElCQVJFTkFfT0JKRUNUUylcbiBcdCQoY2FsbCBtc2csR0VOLU9CSixsaWJhcmVuYSwkQClcbiBcdCQoUSkkKEJQRlRPT0wpIGdlbiBvYmplY3QgJEAgJF5cbiBcbi0lX2FzYW4uYnBmLm86ICUuYnBmLmNcbiYjNDM7JChPVVRQVVQpLyVfYXNhbi5icGYubzogJS5icGYuY1xuIFx0JChjYWxsIG1zZyxDTE5HLUJQRixsaWJhcmVuYSwkQClcbiBcdCQoUSkkKENMQU5HKSAkKEJQRl9DRkxBR1MpICQoQVNBTl9GTEFHUykgLURCUEZfQVJFTkFfQVNBTiAkKEJQRl9UQVJHRVRfRU5ESUFOKSAtYyAkXHUwMDNjIC1vICRAXG4gXG4tJS5icGYubzogJS5icGYuY1xuJiM0MzskKE9VVFBVVCkvJS5icGYubzogJS5icGYuY1xuIFx0JChjYWxsIG1zZyxDTE5HLUJQRixsaWJhcmVuYSwkQClcbiBcdCQoUSkkKENMQU5HKSAkKEJQRl9DRkxBR1MpICQoQlBGX1RBUkdFVF9FTkRJQU4pIC1jICRcdTAwM2MgLW8gJEBcbiBcbiBjbGVhbjpcbi1cdCQoUSlybSAtZiAqLnNrZWwuaCAqLmJwZi5vICoubGlua2VkKi5vXG4mIzQzO1x0JChRKXJtIC1mICQoT1VUUFVUKS8qLnNrZWwuaCAkKE9VVFBVVCkvKi5icGYubyAkKE9VVFBVVCkvKi5saW5rZWQqLm9cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9rbW9kcy9NYWtlZmlsZSBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2ttb2RzL01ha2VmaWxlXG5pbmRleCAwMzFjNzQ1NGNlNjVmLi41M2U0N2U3MTVlYzQ0IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3Rfa21vZHMvTWFrZWZpbGVcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2ttb2RzL01ha2VmaWxlXG5AQCAtMzIsMTQgJiM0MzszMiwxNyBAQCBQRVJNSVNTSVZFIDo9ICQoZmlsdGVyIDAsJChCUEZfU1RSSUNUX0JVSUxEKSlcbiBhbGw6XG4gaWZlcSAoJChQRVJNSVNTSVZFKSwpXG4gXHQkKFEpJChNQUtFKSAtQyAkKEtESVIpICQoaWYgJChLTU9EX09fVkFMSUQpLE89JChLTU9EX09fVkFMSUQpIEtCVUlMRF9PVVRQVVQ9JChLTU9EX09fVkFMSUQpLEtCVUlMRF9PVVRQVVQ9KSBcXFxuJiM0MztcdFx0JChpZiAkKE9VVFBVVCksTU89JChPVVRQVVQpKSBcXFxuIFx0XHRNPSQoVEVTVF9LTU9EX0RJUikgbW9kdWxlc1xuIGVsc2UgaWZuZXEgKFwmIzM0OyQod2lsZGNhcmQgJChLRElSKSlcJiMzNDssIFwmIzM0O1wmIzM0OylcbiBcdCQoUSkkKE1BS0UpIC1DICQoS0RJUikgJChpZiAkKEtNT0RfT19WQUxJRCksTz0kKEtNT0RfT19WQUxJRCkgS0JVSUxEX09VVFBVVD0kKEtNT0RfT19WQUxJRCksS0JVSUxEX09VVFBVVD0pIFxcXG4mIzQzO1x0XHQkKGlmICQoT1VUUFVUKSxNTz0kKE9VVFBVVCkpIFxcXG4gXHRcdE09JChURVNUX0tNT0RfRElSKSBtb2R1bGVzXG4gZW5kaWZcbiBcbiBjbGVhbjpcbiBpZm5lcSAoXCYjMzQ7JCh3aWxkY2FyZCAkKEtESVIpKVwmIzM0OywgXCYjMzQ7XCYjMzQ7KVxuIFx0JChRKSQoTUFLRSkgLUMgJChLRElSKSAkKGlmICQoS01PRF9PX1ZBTElEKSxPPSQoS01PRF9PX1ZBTElEKSBLQlVJTERfT1VUUFVUPSQoS01PRF9PX1ZBTElEKSxLQlVJTERfT1VUUFVUPSkgXFxcbiYjNDM7XHRcdCQoaWYgJChPVVRQVVQpLE1PPSQoT1VUUFVUKSkgXFxcbiBcdFx0TT0kKFRFU1RfS01PRF9ESVIpIGNsZWFuXG4gZW5kaWZcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwNDoxNDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBNYWtlZmlsZXMgZm9yIEJQRiBzZWxmdGVzdHMgdG8gZml4IG91dC1vZi10cmVlIGJ1aWxkcyAod2hlbiBPVVRQVVQgaXMgc2V0KS4gSXQgZG9lcyBub3QgY29udGFpbiBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgY29kZSwgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA3ZjQzODljMWE2MWYzYzY0OTk2MDg1YWY3MzdhMWVlOGJkMjk2ZTNhCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFRodSBKdWwgMzAgMDQ6MTQ6MzEgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvTWFrZWZpbGUgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvTWFrZWZpbGUKaW5kZXggYjY0MmVlNDg5ZWE2NC4uYjE1MGE2NmYzYzI1MSAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL01ha2VmaWxlCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9NYWtlZmlsZQpAQCAtMTM1LDYgJiM0MzsxMzUsOSBAQCBURVNUX1BST0dTX0VYVEVOREVEIDo9IFwKIFRFU1RfS01PRFMgOj0gYnBmX3Rlc3Rtb2Qua28gYnBmX3Rlc3Rfbm9fY2ZpLmtvIGJwZl90ZXN0X21vZG9yZGVyX3gua28gXAogCWJwZl90ZXN0X21vZG9yZGVyX3kua28gYnBmX3Rlc3RfcnFzcGlubG9jay5rbwogVEVTVF9LTU9EX1RBUkdFVFMgPSAkKGFkZHByZWZpeCAkKE9VVFBVVCkvLCQoVEVTVF9LTU9EUykpCiYjNDM7IyBCdWlsZCBkaXJlY3RvcnkgZm9yIGtlcm5lbCBtb2R1bGVzOiByb3V0ZWQgdG8gJChPVVRQVVQpL3Rlc3Rfa21vZHMgd2hlbgomIzQzOyMgT1VUUFVUIGlzIHNldCBzbyB0aGF0IGtidWlsZCBpbnRlcm1lZGlhdGVzIHN0YXkgb3V0IG9mIHRoZSBzb3VyY2UgdHJlZS4KJiM0MztURVNUX0tNT0RTX09VVERJUiA6PSAkKGlmICQoT1VUUFVUKSwkKE9VVFBVVCkvdGVzdF9rbW9kcyx0ZXN0X2ttb2RzKQogCiAjIENvbXBpbGUgYnV0IG5vdCBwYXJ0IG9mICYjMzk7bWFrZSBydW5fdGVzdHMmIzM5OwogVEVTVF9HRU5fUFJPR1NfRVhURU5ERUQgPSBcCkBAIC0xNjMsOCAmIzQzOzE2Niw4IEBAIG92ZXJyaWRlIGRlZmluZSBDTEVBTgogCSQoUSkkKFJNKSAtciAkKFRFU1RfR0VOX0ZJTEVTKQogCSQoUSkkKFJNKSAtciAkKFRFU1RfS01PRFMpCiAJJChRKSQoUk0pIC1yICQoRVhUUkFfQ0xFQU4pCi0JJChRKSQoTUFLRSkgLUMgdGVzdF9rbW9kcyBjbGVhbgotCSQoUSkkKE1BS0UpIC1DIGxpYmFyZW5hIGNsZWFuCiYjNDM7CSQoUSkkKE1BS0UpIC1DIHRlc3Rfa21vZHMgJChpZiAkKE9VVFBVVCksT1VUUFVUPSQoT1VUUFVUKS90ZXN0X2ttb2RzKSBjbGVhbgomIzQzOwkkKFEpJChNQUtFKSAtQyBsaWJhcmVuYSAkKGlmICQoT1VUUFVUKSxPVVRQVVQ9JChPVVRQVVQpL2xpYmFyZW5hKSBjbGVhbgogCSQoUSkkKE1BS0UpIGRvY3MtY2xlYW4KIGVuZGVmCiAKQEAgLTMwMSwxNyAmIzQzOzMwNCwxOCBAQCAkKE9VVFBVVCkvc2lnbi1maWxlOiAuLi8uLi8uLi8uLi9zY3JpcHRzL3NpZ24tZmlsZS5jCiAjIHN1cHBvcnQgdGhhdCBmb3IgcmVndWxhciBydWxlcy4gSG93ZXZlciwgcGF0dGVybiBtYXRjaGluZyBydWxlcyBhcmUgaW1wbGljaXRseQogIyB0cmVhdGVkIGFzIGdyb3VwZWQgZXZlbiB3aXRoIG9sZGVyIHZlcnNpb25zIG9mIG1ha2UsIHNvIGFzIGEgd29ya2Fyb3VuZCwgdGhlCiAjIHN1YnN0KCkgdHVybnMgdGhlIHJ1bGUgaW50byBhIHBhdHRlcm4gbWF0Y2hpbmcgcnVsZQotJChhZGRwcmVmaXggdGVzdF9rbW9kcy8sJChzdWJzdCAua28sJWtvLCQoVEVTVF9LTU9EUykpKTogJChWTUxJTlVYX0JURikgJChSRVNPTFZFX0JURklEUykgJCh3aWxkY2FyZCB0ZXN0X2ttb2RzL01ha2VmaWxlIHRlc3Rfa21vZHMvKi5bY2hdKQotCSQoUSkkKFJNKSB0ZXN0X2ttb2RzLyoua28gdGVzdF9rbW9kcy8qLm1vZC5vICMgZm9yY2UgcmUtY29tcGlsYXRpb24KJiM0MzskKGFkZHByZWZpeCAkKFRFU1RfS01PRFNfT1VURElSKS8sJChzdWJzdCAua28sJWtvLCQoVEVTVF9LTU9EUykpKTogJChWTUxJTlVYX0JURikgJChSRVNPTFZFX0JURklEUykgJCh3aWxkY2FyZCB0ZXN0X2ttb2RzL01ha2VmaWxlIHRlc3Rfa21vZHMvKi5bY2hdKQomIzQzOwkkKFEpJChSTSkgJChURVNUX0tNT0RTX09VVERJUikvKi5rbyAkKFRFU1RfS01PRFNfT1VURElSKS8qLm1vZC5vICMgZm9yY2UgcmUtY29tcGlsYXRpb24KIAkkKFEpJChNQUtFKSAkKHN1Ym1ha2VfZXh0cmFzKSAtQyB0ZXN0X2ttb2RzCQkJCVwKIAkJJChpZiAkKE8pLE89JChhYnNwYXRoICQoTykpKQkJCQkJXAogCQkkKGlmICQoS0JVSUxEX09VVFBVVCksS0JVSUxEX09VVFBVVD0kKGFic3BhdGggJChLQlVJTERfT1VUUFVUKSkpXAomIzQzOwkJJChpZiAkKE9VVFBVVCksT1VUUFVUPSQoT1VUUFVUKS90ZXN0X2ttb2RzKQkJCVwKIAkJUkVTT0xWRV9CVEZJRFM9JChSRVNPTFZFX0JURklEUykJCQkJXAogCQlFWFRSQV9DRkxBR1M9JiMzOTsmIzM5OyBFWFRSQV9MREZMQUdTPSYjMzk7JiMzOTsKIAotJChURVNUX0tNT0RfVEFSR0VUUyk6ICQoYWRkcHJlZml4IHRlc3Rfa21vZHMvLCQoVEVTVF9LTU9EUykpCiYjNDM7JChURVNUX0tNT0RfVEFSR0VUUyk6ICQoYWRkcHJlZml4ICQoVEVTVF9LTU9EU19PVVRESVIpLywkKFRFU1RfS01PRFMpKQogCSQoY2FsbCBtc2csTU9ELCwkQCkKLQkkKFEpJChpZiAkKFBFUk1JU1NJVkUpLGlmIFsgLWYgdGVzdF9rbW9kcy8kKEBGKSBdOyB0aGVuICljcCB0ZXN0X2ttb2RzLyQoQEYpICRAJChpZiAkKFBFUk1JU1NJVkUpLDsgZmkpCiYjNDM7CSQoUSkkKGlmICQoUEVSTUlTU0lWRSksaWYgWyAtZiAkKFRFU1RfS01PRFNfT1VURElSKS8kKEBGKSBdOyB0aGVuICljcCAkKFRFU1RfS01PRFNfT1VURElSKS8kKEBGKSAkQCQoaWYgJChQRVJNSVNTSVZFKSw7IGZpKQogCiAKIERFRkFVTFRfQlBGVE9PTCA6PSAkKEhPU1RfU0NSQVRDSF9ESVIpL3NiaW4vYnBmdG9vbApAQCAtNTgwLDcgJiM0Mzs1ODQsNyBAQCBUUlVOTkVSX0VYVFJBX09CSlMgOj0gJCQocGF0c3Vic3QgJS5jLCQkKFRSVU5ORVJfT1VUUFVUKS8lLm8sCQlcCiBUUlVOTkVSX0xJQl9PQkpTIDo9ICQkKHBhdHN1YnN0ICUuYywkJChUUlVOTkVSX09VVFBVVCkvJS5vLAkJXAogCQkJCSAkJChmaWx0ZXIgJS5jLCQoVFJVTk5FUl9MSUJfU09VUkNFUykpKQogVFJVTk5FUl9FWFRSQV9IRFJTIDo9ICQkKGZpbHRlciAlLmgsJChUUlVOTkVSX0VYVFJBX1NPVVJDRVMpKQotVFJVTk5FUl9URVNUU19IRFIgOj0gJChUUlVOTkVSX1RFU1RTX0RJUikvdGVzdHMuaAomIzQzO1RSVU5ORVJfVEVTVFNfSERSIDo9ICQoT1VUUFVUKS8kKFRSVU5ORVJfVEVTVFNfRElSKS90ZXN0cy5oCiBUUlVOTkVSX0JQRl9TUkNTIDo9ICQkKG5vdGRpciAkJCh3aWxkY2FyZCAkKFRSVU5ORVJfQlBGX1BST0dTX0RJUikvKi5jKSkKIFRSVU5ORVJfQlBGX09CSlMgOj0gJCQocGF0c3Vic3QgJS5jLCQkKFRSVU5ORVJfT1VUUFVUKS8lLmJwZi5vLCAkJChUUlVOTkVSX0JQRl9TUkNTKSkKIFRSVU5ORVJfQlBGX1NLRUxTIDo9ICQkKHBhdHN1YnN0ICUuYywkJChUUlVOTkVSX09VVFBVVCkvJS5za2VsLmgsCVwKQEAgLTcyMCw5ICYjNDM7NzI0LDkgQEAgZW5kaWYKICMgZW5zdXJlIHdlIHNldCB1cCB0ZXN0cy5oIGhlYWRlciBnZW5lcmF0aW9uIHJ1bGUganVzdCBvbmNlCiBpZmVxICgkKCQoVFJVTk5FUl9URVNUU19ESVIpLXRlc3RzLWhkciksKQogJChUUlVOTkVSX1RFU1RTX0RJUiktdGVzdHMtaGRyIDo9IHkKLSQoVFJVTk5FUl9URVNUU19IRFIpOiAkKFRSVU5ORVJfVEVTVFNfRElSKS8qLmMKJiM0MzskKFRSVU5ORVJfVEVTVFNfSERSKTogJChUUlVOTkVSX1RFU1RTX0RJUikvKi5jIHwgJChUUlVOTkVSX09VVFBVVCkKIAkkJChjYWxsIG1zZyxURVNULUhEUiwkKFRSVU5ORVJfQklOQVJZKSwkJEApCi0JJCQoc2hlbGwgKGVjaG8gJiMzOTsvKiBHZW5lcmF0ZWQgaGVhZGVyLCBkbyBub3QgZWRpdCAqLyYjMzk7OwkJCQkJXAomIzQzOwkkJChzaGVsbCBta2RpciAtcCAkJChkaXIgJCRAKSAmYW1wOyZhbXA7IChlY2hvICYjMzk7LyogR2VuZXJhdGVkIGhlYWRlciwgZG8gbm90IGVkaXQgKi8mIzM5OzsJCQlcCiAJCSAgc2VkIC1uIC1FICYjMzk7cy9edm9pZCAoc2VyaWFsXyk/dGVzdF8oW2EtekEtWjAtOV9dJiM0MzspXCgodm9pZCk/XCkuKi9ERUZJTkVfVEVTVChcMikvcCYjMzk7CVwKIAkJCSQoVFJVTk5FUl9URVNUU19ESVIpLyouYyB8IHNvcnQgOwlcCiAJCSApICZndDsgJCRAKQpAQCAtODAyLDcgJiM0Mzs4MDYsNyBAQCAkKE9VVFBVVCkvJChUUlVOTkVSX0JJTkFSWSk6ICQoaWYgJChmaWx0ZXIgdGVzdF9wcm9ncyUsJDEpLCQoaWYgJChQRVJNSVNTSVZFKSwkJAogZW5kZWYKIAogVkVSSUZZX1NJR19TRVRVUCA6PSAkKENVUkRJUikvdmVyaWZ5X3NpZ19zZXR1cC5zaAotVkVSSUZZX1NJR19IRFIgOj0gdmVyaWZpY2F0aW9uX2NlcnQuaAomIzQzO1ZFUklGWV9TSUdfSERSIDo9ICQoT1VUUFVUKS92ZXJpZmljYXRpb25fY2VydC5oCiBWRVJJRklDQVRJT05fQ0VSVCAgIDo9ICQoQlVJTERfRElSKS9zaWduaW5nX2tleS5kZXIKIFBSSVZBVEVfS0VZIDo9ICQoQlVJTERfRElSKS9zaWduaW5nX2tleS5wZW0KIApAQCAtODI2LDcgJiM0Mzs4MzAsOCBAQCBMSUJBUkVOQV9NQUtFX0FSR1MgPSBcCiAJCUNMQU5HPSYjMzQ7JChDTEFORykmIzM0OyBcCiAJCUJQRl9DRkxBR1M9JiMzNDskKEJQRl9DRkxBR1MpICQoQ0xBTkdfQ0ZMQUdTKSYjMzQ7IFwKIAkJQlBGX1RBUkdFVF9FTkRJQU49JiMzNDskKEJQRl9UQVJHRVRfRU5ESUFOKSYjMzQ7IFwKLQkJUT0mIzM0OyQoUSkmIzM0OwomIzQzOwkJUT0mIzM0OyQoUSkmIzM0OyBcCiYjNDM7CQlPVVRQVVQ9JiMzNDskKE9VVFBVVCkvbGliYXJlbmEmIzM0OwogCiBMSUJBUkVOQV9CUEZfREVQUyA6PSAkKHdpbGRjYXJkIGxpYmFyZW5hL01ha2VmaWxlCQlcCiAJCQkJIGxpYmFyZW5hL2luY2x1ZGUvKgkJXApAQCAtODM1LDE3ICYjNDM7ODQwLDE3IEBAIExJQkFSRU5BX0JQRl9ERVBTIDo9ICQod2lsZGNhcmQgbGliYXJlbmEvTWFrZWZpbGUJCVwKIAkJCQkgbGliYXJlbmEvc2VsZnRlc3RzLyoJCVwKIAkJCQkgbGliYXJlbmEvKi5icGYubykKIAotTElCQVJFTkFfU0tFTCA6PSBsaWJhcmVuYS9saWJhcmVuYS5za2VsLmgKJiM0MztMSUJBUkVOQV9TS0VMIDo9ICQoT1VUUFVUKS9saWJhcmVuYS9saWJhcmVuYS5za2VsLmgKIAogJChMSUJBUkVOQV9TS0VMKTogJChJTkNMVURFX0RJUikvdm1saW51eC5oICQoQlBGT0JKKSAkKExJQkFSRU5BX0JQRl9ERVBTKQotCSYjNDM7JChNQUtFKSAtQyBsaWJhcmVuYSBsaWJhcmVuYS5za2VsLmggJChMSUJBUkVOQV9NQUtFX0FSR1MpCiYjNDM7CSYjNDM7JChNQUtFKSAtQyBsaWJhcmVuYSAkKExJQkFSRU5BX1NLRUwpICQoTElCQVJFTkFfTUFLRV9BUkdTKQogCiBpZm5lcSAoJChDTEFOR19IQVNfQVJFTkFfQVNBTiksKQotTElCQVJFTkFfQVNBTl9TS0VMIDo9IGxpYmFyZW5hL2xpYmFyZW5hX2FzYW4uc2tlbC5oCiYjNDM7TElCQVJFTkFfQVNBTl9TS0VMIDo9ICQoT1VUUFVUKS9saWJhcmVuYS9saWJhcmVuYV9hc2FuLnNrZWwuaAogQ0ZMQUdTICYjNDM7PSAtREhBU19CUEZfQVJFTkFfQVNBTgogCiAkKExJQkFSRU5BX0FTQU5fU0tFTCk6ICQoSU5DTFVERV9ESVIpL3ZtbGludXguaCAkKEJQRk9CSikgJChMSUJBUkVOQV9CUEZfREVQUykKLQkmIzQzOyQoTUFLRSkgLUMgbGliYXJlbmEgbGliYXJlbmFfYXNhbi5za2VsLmggJChMSUJBUkVOQV9NQUtFX0FSR1MpCiYjNDM7CSYjNDM7JChNQUtFKSAtQyBsaWJhcmVuYSAkKExJQkFSRU5BX0FTQU5fU0tFTCkgJChMSUJBUkVOQV9NQUtFX0FSR1MpCiBlbmRpZgogCiAjIERlZmluZSB0ZXN0X3Byb2dzIHRlc3QgcnVubmVyLgpAQCAtOTIzLDE0ICYjNDM7OTI4LDE0IEBAICQoZXZhbCAkKGNhbGwgREVGSU5FX1RFU1RfUlVOTkVSLHRlc3RfbWFwcykpCiAjIEl0IGlzIG11Y2ggc2ltcGxlciB0aGFuIHRlc3RfbWFwcy90ZXN0X3Byb2dzIGFuZCBzdWZmaWNpZW50bHkgZGlmZmVyZW50IGZyb20KICMgdGhlbSAoZS5nLiwgdGVzdC5oIGlzIHVzaW5nIGNvbXBsZXRlbHkgcGF0dGVybiksIHRoYXQgaXQmIzM5O3Mgd29ydGgganVzdAogIyBleHBsaWNpdGx5IGRlZmluaW5nIGFsbCB0aGUgcnVsZXMgZXhwbGljaXRseS4KLXZlcmlmaWVyL3Rlc3RzLmg6IHZlcmlmaWVyLyouYwotCSQoc2hlbGwgKCBjZCB2ZXJpZmllci87IFwKJiM0MzskKE9VVFBVVCkvdmVyaWZpZXIvdGVzdHMuaDogdmVyaWZpZXIvKi5jIHwgJChPVVRQVVQpCiYjNDM7CSQoc2hlbGwgbWtkaXIgLXAgJChPVVRQVVQpL3ZlcmlmaWVyICZhbXA7JmFtcDsgKCBcCiAJCSAgZWNobyAmIzM5Oy8qIEdlbmVyYXRlZCBoZWFkZXIsIGRvIG5vdCBlZGl0ICovJiMzOTs7IFwKIAkJICBlY2hvICYjMzk7I2lmZGVmIEZJTExfQVJSQVkmIzM5OzsgXAotCQkgIGxzICouYyAyJmd0OyAvZGV2L251bGwgfCBzZWQgLWUgJiMzOTtzQFwoLipcKUAjaW5jbHVkZSBcJiMzNDtcMVwmIzM0O0AmIzM5OzsgXAomIzQzOwkJICBscyB2ZXJpZmllci8qLmMgMiZndDsgL2Rldi9udWxsIHwgc2VkIC1lICYjMzk7c0BcKC4qXClAI2luY2x1ZGUgJiMzNDskKENVUkRJUikvXDEmIzM0O0AmIzM5OzsgXAogCQkgIGVjaG8gJiMzOTsjZW5kaWYmIzM5OyBcCi0JCSkgJmd0OyB2ZXJpZmllci90ZXN0cy5oKQotJChPVVRQVVQpL3Rlc3RfdmVyaWZpZXI6IHRlc3RfdmVyaWZpZXIuYyB2ZXJpZmllci90ZXN0cy5oICQoQlBGT0JKKSB8ICQoT1VUUFVUKQomIzQzOwkJKSAmZ3Q7ICQoT1VUUFVUKS92ZXJpZmllci90ZXN0cy5oKQomIzQzOyQoT1VUUFVUKS90ZXN0X3ZlcmlmaWVyOiB0ZXN0X3ZlcmlmaWVyLmMgJChPVVRQVVQpL3ZlcmlmaWVyL3Rlc3RzLmggJChCUEZPQkopIHwgJChPVVRQVVQpCiAJJChjYWxsIG1zZyxCSU5BUlksLCRAKQogCSQoUSkkKENDKSAkKENGTEFHUykgJChmaWx0ZXIgJS5hICUubyAlLmMsJF4pICQoTERMSUJTKSAtbyAkQAogCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvbGliYXJlbmEvTWFrZWZpbGUgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvbGliYXJlbmEvTWFrZWZpbGUKaW5kZXggNWUyYWI1MTQ4MDVlNC4uMTk1ZDVmODMzMTg2YSAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2xpYmFyZW5hL01ha2VmaWxlCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9saWJhcmVuYS9NYWtlZmlsZQpAQCAtMjcsMTAgJiM0MzsyNywxNCBAQCBCUEZESVI9JChhYnNwYXRoICQoTElCQVJFTkEpLy4uKQogSU5DTFVERV9ESVIgPz0gJChCUEZESVIpL3Rvb2xzL2luY2x1ZGUKIExJQkJQRl9JTkNMVURFID89ICQoSU5DTFVERV9ESVIpCiAKJiM0MzsjIEJ1aWxkIG91dHB1dCBkaXJlY3Rvcnk7IGRlZmF1bHRzIHRvIGluLXRyZWUgZm9yIHN0YW5kYWxvbmUgYnVpbGRzLgomIzQzO09VVFBVVCA/PSAuCiYjNDM7JChzaGVsbCBta2RpciAtcCAkKE9VVFBVVCkpCiYjNDM7CiAjIFNjYW4gc3JjLyBhbmQgc2VsZnRlc3RzLyB0byBnZW5lcmF0ZSB0aGUgZmluYWwgYmluYXJpZXMKIExJQkFSRU5BX1NPVVJDRVMgPSAkKHdpbGRjYXJkICQoTElCQVJFTkEpL3NyYy8qLmJwZi5jKSAkKHdpbGRjYXJkICQoTElCQVJFTkEpL3NlbGZ0ZXN0cy8qLmJwZi5jKQotTElCQVJFTkFfT0JKRUNUUyA9ICQobm90ZGlyICQoTElCQVJFTkFfU09VUkNFUzouYnBmLmM9LmJwZi5vKSkKLUxJQkFSRU5BX09CSkVDVFNfQVNBTiA9ICQobm90ZGlyICQoTElCQVJFTkFfU09VUkNFUzouYnBmLmM9X2FzYW4uYnBmLm8pKQomIzQzO0xJQkFSRU5BX09CSkVDVFMgPSAkKGFkZHByZWZpeCAkKE9VVFBVVCkvLCQobm90ZGlyICQoTElCQVJFTkFfU09VUkNFUzouYnBmLmM9LmJwZi5vKSkpCiYjNDM7TElCQVJFTkFfT0JKRUNUU19BU0FOID0gJChhZGRwcmVmaXggJChPVVRQVVQpLywkKG5vdGRpciAkKExJQkFSRU5BX1NPVVJDRVM6LmJwZi5jPV9hc2FuLmJwZi5vKSkpCiAKIElOQ0xVREVTID0gLUkkKExJQkFSRU5BKS9pbmNsdWRlIC1JJChCUEZESVIpCiBpZm5lcSAoJChJTkNMVURFX0RJUiksKQpAQCAtNjEsMzIgJiM0Mzs2NSwzMiBAQCBDRkxBR1MgJiM0Mzs9ICQoSU5DTFVERVMpCiB2cGF0aCAlLmJwZi5jICQoTElCQVJFTkEpL3NyYyAkKExJQkFSRU5BKS9zZWxmdGVzdHMKIHZwYXRoICUuYyAkKExJQkFSRU5BKS9zcmMgJChMSUJBUkVOQSkvc2VsZnRlc3RzCiAKLXNrZWxldG9uczogbGliYXJlbmEuc2tlbC5oIGxpYmFyZW5hX2FzYW4uc2tlbC5oCiYjNDM7c2tlbGV0b25zOiAkKE9VVFBVVCkvbGliYXJlbmEuc2tlbC5oICQoT1VUUFVUKS9saWJhcmVuYV9hc2FuLnNrZWwuaAogLlBIT05ZOiBza2VsZXRvbnMKIAotbGliYXJlbmFfYXNhbi5za2VsLmg6IGxpYmFyZW5hX2FzYW4uYnBmLm8KJiM0MzskKE9VVFBVVCkvbGliYXJlbmFfYXNhbi5za2VsLmg6ICQoT1VUUFVUKS9saWJhcmVuYV9hc2FuLmJwZi5vCiAJJChjYWxsIG1zZyxHRU4tU0tFTCxsaWJhcmVuYSwkQCkKIAkkKFEpJChCUEZUT09MKSBnZW4gc2tlbGV0b24gJCZsdDsgbmFtZSAmIzM0O2xpYmFyZW5hX2FzYW4mIzM0OyAmZ3Q7ICRACiAKLWxpYmFyZW5hLnNrZWwuaDogbGliYXJlbmEuYnBmLm8KJiM0MzskKE9VVFBVVCkvbGliYXJlbmEuc2tlbC5oOiAkKE9VVFBVVCkvbGliYXJlbmEuYnBmLm8KIAkkKGNhbGwgbXNnLEdFTi1TS0VMLGxpYmFyZW5hLCRAKQogCSQoUSkkKEJQRlRPT0wpIGdlbiBza2VsZXRvbiAkJmx0OyBuYW1lICYjMzQ7bGliYXJlbmEmIzM0OyAmZ3Q7ICRACiAKLWxpYmFyZW5hX2FzYW4uYnBmLm86ICQoTElCQVJFTkFfT0JKRUNUU19BU0FOKQomIzQzOyQoT1VUUFVUKS9saWJhcmVuYV9hc2FuLmJwZi5vOiAkKExJQkFSRU5BX09CSkVDVFNfQVNBTikKIAkkKGNhbGwgbXNnLEdFTi1PQkosbGliYXJlbmEsJEApCiAJJChRKSQoQlBGVE9PTCkgZ2VuIG9iamVjdCAkQCAkXgogCi1saWJhcmVuYS5icGYubzogJChMSUJBUkVOQV9PQkpFQ1RTKQomIzQzOyQoT1VUUFVUKS9saWJhcmVuYS5icGYubzogJChMSUJBUkVOQV9PQkpFQ1RTKQogCSQoY2FsbCBtc2csR0VOLU9CSixsaWJhcmVuYSwkQCkKIAkkKFEpJChCUEZUT09MKSBnZW4gb2JqZWN0ICRAICReCiAKLSVfYXNhbi5icGYubzogJS5icGYuYwomIzQzOyQoT1VUUFVUKS8lX2FzYW4uYnBmLm86ICUuYnBmLmMKIAkkKGNhbGwgbXNnLENMTkctQlBGLGxpYmFyZW5hLCRAKQogCSQoUSkkKENMQU5HKSAkKEJQRl9DRkxBR1MpICQoQVNBTl9GTEFHUykgLURCUEZfQVJFTkFfQVNBTiAkKEJQRl9UQVJHRVRfRU5ESUFOKSAtYyAkJmx0OyAtbyAkQAogCi0lLmJwZi5vOiAlLmJwZi5jCiYjNDM7JChPVVRQVVQpLyUuYnBmLm86ICUuYnBmLmMKIAkkKGNhbGwgbXNnLENMTkctQlBGLGxpYmFyZW5hLCRAKQogCSQoUSkkKENMQU5HKSAkKEJQRl9DRkxBR1MpICQoQlBGX1RBUkdFVF9FTkRJQU4pIC1jICQmbHQ7IC1vICRACiAKIGNsZWFuOgotCSQoUSlybSAtZiAqLnNrZWwuaCAqLmJwZi5vICoubGlua2VkKi5vCiYjNDM7CSQoUSlybSAtZiAkKE9VVFBVVCkvKi5za2VsLmggJChPVVRQVVQpLyouYnBmLm8gJChPVVRQVVQpLyoubGlua2VkKi5vCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9rbW9kcy9NYWtlZmlsZSBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2ttb2RzL01ha2VmaWxlCmluZGV4IDAzMWM3NDU0Y2U2NWYuLjUzZTQ3ZTcxNWVjNDQgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2ttb2RzL01ha2VmaWxlCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2ttb2RzL01ha2VmaWxlCkBAIC0zMiwxNCAmIzQzOzMyLDE3IEBAIFBFUk1JU1NJVkUgOj0gJChmaWx0ZXIgMCwkKEJQRl9TVFJJQ1RfQlVJTEQpKQogYWxsOgogaWZlcSAoJChQRVJNSVNTSVZFKSwpCiAJJChRKSQoTUFLRSkgLUMgJChLRElSKSAkKGlmICQoS01PRF9PX1ZBTElEKSxPPSQoS01PRF9PX1ZBTElEKSBLQlVJTERfT1VUUFVUPSQoS01PRF9PX1ZBTElEKSxLQlVJTERfT1VUUFVUPSkgXAomIzQzOwkJJChpZiAkKE9VVFBVVCksTU89JChPVVRQVVQpKSBcCiAJCU09JChURVNUX0tNT0RfRElSKSBtb2R1bGVzCiBlbHNlIGlmbmVxICgmIzM0OyQod2lsZGNhcmQgJChLRElSKSkmIzM0OywgJiMzNDsmIzM0OykKIAkkKFEpJChNQUtFKSAtQyAkKEtESVIpICQoaWYgJChLTU9EX09fVkFMSUQpLE89JChLTU9EX09fVkFMSUQpIEtCVUlMRF9PVVRQVVQ9JChLTU9EX09fVkFMSUQpLEtCVUlMRF9PVVRQVVQ9KSBcCiYjNDM7CQkkKGlmICQoT1VUUFVUKSxNTz0kKE9VVFBVVCkpIFwKIAkJTT0kKFRFU1RfS01PRF9ESVIpIG1vZHVsZXMKIGVuZGlmCiAKIGNsZWFuOgogaWZuZXEgKCYjMzQ7JCh3aWxkY2FyZCAkKEtESVIpKSYjMzQ7LCAmIzM0OyYjMzQ7KQogCSQoUSkkKE1BS0UpIC1DICQoS0RJUikgJChpZiAkKEtNT0RfT19WQUxJRCksTz0kKEtNT0RfT19WQUxJRCkgS0JVSUxEX09VVFBVVD0kKEtNT0RfT19WQUxJRCksS0JVSUxEX09VVFBVVD0pIFwKJiM0MzsJCSQoaWYgJChPVVRQVVQpLE1PPSQoT1VUUFVUKSkgXAogCQlNPSQoVEVTVF9LTU9EX0RJUikgY2xlYW4KIGVuZGlmCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDA0OjE0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYwNzgKCQkJCQkJCW91dHB1dDogNzQKCQkJCQkJCXRob3VnaHRzOiAyNDEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqV29ydGhGdXp6aW5nPWZhbHNlOiBBIFF1aWNrIEFzc2Vzc21lbnQqKgoKT2theSwgaGVyZSYjMzk7cyB0aGUgZGVhbDogSSYjMzk7dmUgZ290IGEgcGF0Y2ggaW4gZnJvbnQgb2YgbWUgdGhhdCB0b3VjaGVzIHNvbWUgTWFrZWZpbGVzIHdpdGhpbiB0aGUgQlBGIHNlbGZ0ZXN0IGZyYW1ld29yay4gU3BlY2lmaWNhbGx5LCBpdCYjMzk7cyBtb2RpZnlpbmcgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9NYWtlZmlsZWAsIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvbGliYXJlbmEvTWFrZWZpbGVgLCBhbmQgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2ttb2RzL01ha2VmaWxlYC4gTXkgaW1tZWRpYXRlIGNvbmNlcm4sIGFzIGFsd2F5cywgaXMgd2hldGhlciB0aGlzIHdhcnJhbnRzIGZ1enppbmcgZWZmb3J0LgoKRnJvbSBteSBpbml0aWFsIHNjYW4sIHRoZSBjaGFuZ2VzIGFyZSBlbnRpcmVseSBjb25maW5lZCB0byB0aGUgYnVpbGQgc3lzdGVtIGl0c2VsZi4gVGhpcyBwYXRjaCBpcyBqdXN0IGFkanVzdGluZyBob3cgdGhlIEJQRiBzZWxmdGVzdHMgYXJlIGJ1aWx0LCBzcGVjaWZpY2FsbHkgZGVhbGluZyB3aXRoIG91dHB1dCBkaXJlY3RvcmllcyB3aGVuIGBPVVRQVVRgIGlzIGRlZmluZWQuIFRoZXJlJiMzOTtzIG5vIG1vZGlmaWNhdGlvbiBvZiBhY3R1YWwga2VybmVsIGNvZGUsIG5vIGFsdGVyYXRpb25zIHRvIGRyaXZlcnMsIGFuZCBjZXJ0YWlubHkgbm8gYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGNoYW5nZXMuIFRoaXMgaXMgKnB1cmVseSogYnVpbGQgc3lzdGVtIGhvdXNla2VlcGluZy4KCkxldCBtZSBqdXN0IHF1aWNrbHkgY29uZmlybSB0aGF0IHdpdGggYSBkZWVwZXIgbG9vayBhdCB0aGUgZGlmZi4gWWVwLCBqdXN0IE1ha2VmaWxlIG1vZGlmaWNhdGlvbnMgZm9yIG91dC1vZi10cmVlIGJ1aWxkcy4gTm8gQyBjb2RlIGhhcyBiZWVuIHRvdWNoZWQsIG5vdGhpbmcgdGhhdCBpbnRyb2R1Y2VzIGFueSBuZXcgZnVuY3Rpb25hbGl0eSBvciBidWcgcG90ZW50aWFsIGF0IHJ1bnRpbWUuCgpTbywgZ2l2ZW4gdGhlIG5hdHVyZSBvZiB0aGUgY2hhbmdlcywgSSBjYW4gY29uZmlkZW50bHkgZGVjbGFyZSB0aGlzIHBhdGNoIGFzICpub3QqIHdvcnRoIGZ1enppbmcuIEkmIzM5O2xsIGZsYWcgYFdvcnRoRnV6emluZz1mYWxzZWAgYW5kIHN1Ym1pdCB0aGUgcmVzdWx0cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwNDoxNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgTWFrZWZpbGVzIGZvciBCUEYgc2VsZnRlc3RzIHRvIGZpeCBvdXQtb2YtdHJlZSBidWlsZHMgKHdoZW4gT1VUUFVUIGlzIHNldCkuIEl0IGRvZXMgbm90IGNvbnRhaW4gYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIGNvZGUsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIE1ha2VmaWxlcyBmb3IgQlBGIHNlbGZ0ZXN0cyB0byBmaXggb3V0LW9mLXRyZWUgYnVpbGRzICh3aGVuIE9VVFBVVCBpcyBzZXQpLiBJdCBkb2VzIG5vdCBjb250YWluIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBjb2RlLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDA0OjE0OjMyLjMzMjExNDMyWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTkxNjM0NjU5NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBNYWtlZmlsZXMgZm9yIEJQRiBzZWxmdGVzdHMgdG8gZml4IG91dC1vZi10cmVlIGJ1aWxkcyAod2hlbiBPVVRQVVQgaXMgc2V0KS4gSXQgZG9lcyBub3QgY29udGFpbiBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgY29kZSwgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDA0OjE0OjMyLjMzMjEyMDQzWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMzk5NTY1MDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA3ZjQzODljMWE2MWYzYzY0OTk2MDg1YWY3MzdhMWVlOGJkMjk2ZTNhXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUaHUgSnVsIDMwIDA0OjE0OjMxIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9NYWtlZmlsZSBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9NYWtlZmlsZVxcbmluZGV4IGI2NDJlZTQ4OWVhNjQuLmIxNTBhNjZmM2MyNTEgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL01ha2VmaWxlXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL01ha2VmaWxlXFxuQEAgLTEzNSw2ICsxMzUsOSBAQCBURVNUX1BST0dTX0VYVEVOREVEIDo9IFxcXFxcXG4gVEVTVF9LTU9EUyA6PSBicGZfdGVzdG1vZC5rbyBicGZfdGVzdF9ub19jZmkua28gYnBmX3Rlc3RfbW9kb3JkZXJfeC5rbyBcXFxcXFxuIFxcdGJwZl90ZXN0X21vZG9yZGVyX3kua28gYnBmX3Rlc3RfcnFzcGlubG9jay5rb1xcbiBURVNUX0tNT0RfVEFSR0VUUyA9ICQoYWRkcHJlZml4ICQoT1VUUFVUKS8sJChURVNUX0tNT0RTKSlcXG4rIyBCdWlsZCBkaXJlY3RvcnkgZm9yIGtlcm5lbCBtb2R1bGVzOiByb3V0ZWQgdG8gJChPVVRQVVQpL3Rlc3Rfa21vZHMgd2hlblxcbisjIE9VVFBVVCBpcyBzZXQgc28gdGhhdCBrYnVpbGQgaW50ZXJtZWRpYXRlcyBzdGF5IG91dCBvZiB0aGUgc291cmNlIHRyZWUuXFxuK1RFU1RfS01PRFNfT1VURElSIDo9ICQoaWYgJChPVVRQVVQpLCQoT1VUUFVUKS90ZXN0X2ttb2RzLHRlc3Rfa21vZHMpXFxuIFxcbiAjIENvbXBpbGUgYnV0IG5vdCBwYXJ0IG9mICdtYWtlIHJ1bl90ZXN0cydcXG4gVEVTVF9HRU5fUFJPR1NfRVhURU5ERUQgPSBcXFxcXFxuQEAgLTE2Myw4ICsxNjYsOCBAQCBvdmVycmlkZSBkZWZpbmUgQ0xFQU5cXG4gXFx0JChRKSQoUk0pIC1yICQoVEVTVF9HRU5fRklMRVMpXFxuIFxcdCQoUSkkKFJNKSAtciAkKFRFU1RfS01PRFMpXFxuIFxcdCQoUSkkKFJNKSAtciAkKEVYVFJBX0NMRUFOKVxcbi1cXHQkKFEpJChNQUtFKSAtQyB0ZXN0X2ttb2RzIGNsZWFuXFxuLVxcdCQoUSkkKE1BS0UpIC1DIGxpYmFyZW5hIGNsZWFuXFxuK1xcdCQoUSkkKE1BS0UpIC1DIHRlc3Rfa21vZHMgJChpZiAkKE9VVFBVVCksT1VUUFVUPSQoT1VUUFVUKS90ZXN0X2ttb2RzKSBjbGVhblxcbitcXHQkKFEpJChNQUtFKSAtQyBsaWJhcmVuYSAkKGlmICQoT1VUUFVUKSxPVVRQVVQ9JChPVVRQVVQpL2xpYmFyZW5hKSBjbGVhblxcbiBcXHQkKFEpJChNQUtFKSBkb2NzLWNsZWFuXFxuIGVuZGVmXFxuIFxcbkBAIC0zMDEsMTcgKzMwNCwxOCBAQCAkKE9VVFBVVCkvc2lnbi1maWxlOiAuLi8uLi8uLi8uLi9zY3JpcHRzL3NpZ24tZmlsZS5jXFxuICMgc3VwcG9ydCB0aGF0IGZvciByZWd1bGFyIHJ1bGVzLiBIb3dldmVyLCBwYXR0ZXJuIG1hdGNoaW5nIHJ1bGVzIGFyZSBpbXBsaWNpdGx5XFxuICMgdHJlYXRlZCBhcyBncm91cGVkIGV2ZW4gd2l0aCBvbGRlciB2ZXJzaW9ucyBvZiBtYWtlLCBzbyBhcyBhIHdvcmthcm91bmQsIHRoZVxcbiAjIHN1YnN0KCkgdHVybnMgdGhlIHJ1bGUgaW50byBhIHBhdHRlcm4gbWF0Y2hpbmcgcnVsZVxcbi0kKGFkZHByZWZpeCB0ZXN0X2ttb2RzLywkKHN1YnN0IC5rbywla28sJChURVNUX0tNT0RTKSkpOiAkKFZNTElOVVhfQlRGKSAkKFJFU09MVkVfQlRGSURTKSAkKHdpbGRjYXJkIHRlc3Rfa21vZHMvTWFrZWZpbGUgdGVzdF9rbW9kcy8qLltjaF0pXFxuLVxcdCQoUSkkKFJNKSB0ZXN0X2ttb2RzLyoua28gdGVzdF9rbW9kcy8qLm1vZC5vICMgZm9yY2UgcmUtY29tcGlsYXRpb25cXG4rJChhZGRwcmVmaXggJChURVNUX0tNT0RTX09VVERJUikvLCQoc3Vic3QgLmtvLCVrbywkKFRFU1RfS01PRFMpKSk6ICQoVk1MSU5VWF9CVEYpICQoUkVTT0xWRV9CVEZJRFMpICQod2lsZGNhcmQgdGVzdF9rbW9kcy9NYWtlZmlsZSB0ZXN0X2ttb2RzLyouW2NoXSlcXG4rXFx0JChRKSQoUk0pICQoVEVTVF9LTU9EU19PVVRESVIpLyoua28gJChURVNUX0tNT0RTX09VVERJUikvKi5tb2QubyAjIGZvcmNlIHJlLWNvbXBpbGF0aW9uXFxuIFxcdCQoUSkkKE1BS0UpICQoc3VibWFrZV9leHRyYXMpIC1DIHRlc3Rfa21vZHNcXHRcXHRcXHRcXHRcXFxcXFxuIFxcdFxcdCQoaWYgJChPKSxPPSQoYWJzcGF0aCAkKE8pKSlcXHRcXHRcXHRcXHRcXHRcXFxcXFxuIFxcdFxcdCQoaWYgJChLQlVJTERfT1VUUFVUKSxLQlVJTERfT1VUUFVUPSQoYWJzcGF0aCAkKEtCVUlMRF9PVVRQVVQpKSlcXFxcXFxuK1xcdFxcdCQoaWYgJChPVVRQVVQpLE9VVFBVVD0kKE9VVFBVVCkvdGVzdF9rbW9kcylcXHRcXHRcXHRcXFxcXFxuIFxcdFxcdFJFU09MVkVfQlRGSURTPSQoUkVTT0xWRV9CVEZJRFMpXFx0XFx0XFx0XFx0XFxcXFxcbiBcXHRcXHRFWFRSQV9DRkxBR1M9JycgRVhUUkFfTERGTEFHUz0nJ1xcbiBcXG4tJChURVNUX0tNT0RfVEFSR0VUUyk6ICQoYWRkcHJlZml4IHRlc3Rfa21vZHMvLCQoVEVTVF9LTU9EUykpXFxuKyQoVEVTVF9LTU9EX1RBUkdFVFMpOiAkKGFkZHByZWZpeCAkKFRFU1RfS01PRFNfT1VURElSKS8sJChURVNUX0tNT0RTKSlcXG4gXFx0JChjYWxsIG1zZyxNT0QsLCRAKVxcbi1cXHQkKFEpJChpZiAkKFBFUk1JU1NJVkUpLGlmIFsgLWYgdGVzdF9rbW9kcy8kKEBGKSBdOyB0aGVuICljcCB0ZXN0X2ttb2RzLyQoQEYpICRAJChpZiAkKFBFUk1JU1NJVkUpLDsgZmkpXFxuK1xcdCQoUSkkKGlmICQoUEVSTUlTU0lWRSksaWYgWyAtZiAkKFRFU1RfS01PRFNfT1VURElSKS8kKEBGKSBdOyB0aGVuICljcCAkKFRFU1RfS01PRFNfT1VURElSKS8kKEBGKSAkQCQoaWYgJChQRVJNSVNTSVZFKSw7IGZpKVxcbiBcXG4gXFxuIERFRkFVTFRfQlBGVE9PTCA6PSAkKEhPU1RfU0NSQVRDSF9ESVIpL3NiaW4vYnBmdG9vbFxcbkBAIC01ODAsNyArNTg0LDcgQEAgVFJVTk5FUl9FWFRSQV9PQkpTIDo9ICQkKHBhdHN1YnN0ICUuYywkJChUUlVOTkVSX09VVFBVVCkvJS5vLFxcdFxcdFxcXFxcXG4gVFJVTk5FUl9MSUJfT0JKUyA6PSAkJChwYXRzdWJzdCAlLmMsJCQoVFJVTk5FUl9PVVRQVVQpLyUubyxcXHRcXHRcXFxcXFxuIFxcdFxcdFxcdFxcdCAkJChmaWx0ZXIgJS5jLCQoVFJVTk5FUl9MSUJfU09VUkNFUykpKVxcbiBUUlVOTkVSX0VYVFJBX0hEUlMgOj0gJCQoZmlsdGVyICUuaCwkKFRSVU5ORVJfRVhUUkFfU09VUkNFUykpXFxuLVRSVU5ORVJfVEVTVFNfSERSIDo9ICQoVFJVTk5FUl9URVNUU19ESVIpL3Rlc3RzLmhcXG4rVFJVTk5FUl9URVNUU19IRFIgOj0gJChPVVRQVVQpLyQoVFJVTk5FUl9URVNUU19ESVIpL3Rlc3RzLmhcXG4gVFJVTk5FUl9CUEZfU1JDUyA6PSAkJChub3RkaXIgJCQod2lsZGNhcmQgJChUUlVOTkVSX0JQRl9QUk9HU19ESVIpLyouYykpXFxuIFRSVU5ORVJfQlBGX09CSlMgOj0gJCQocGF0c3Vic3QgJS5jLCQkKFRSVU5ORVJfT1VUUFVUKS8lLmJwZi5vLCAkJChUUlVOTkVSX0JQRl9TUkNTKSlcXG4gVFJVTk5FUl9CUEZfU0tFTFMgOj0gJCQocGF0c3Vic3QgJS5jLCQkKFRSVU5ORVJfT1VUUFVUKS8lLnNrZWwuaCxcXHRcXFxcXFxuQEAgLTcyMCw5ICs3MjQsOSBAQCBlbmRpZlxcbiAjIGVuc3VyZSB3ZSBzZXQgdXAgdGVzdHMuaCBoZWFkZXIgZ2VuZXJhdGlvbiBydWxlIGp1c3Qgb25jZVxcbiBpZmVxICgkKCQoVFJVTk5FUl9URVNUU19ESVIpLXRlc3RzLWhkciksKVxcbiAkKFRSVU5ORVJfVEVTVFNfRElSKS10ZXN0cy1oZHIgOj0geVxcbi0kKFRSVU5ORVJfVEVTVFNfSERSKTogJChUUlVOTkVSX1RFU1RTX0RJUikvKi5jXFxuKyQoVFJVTk5FUl9URVNUU19IRFIpOiAkKFRSVU5ORVJfVEVTVFNfRElSKS8qLmMgfCAkKFRSVU5ORVJfT1VUUFVUKVxcbiBcXHQkJChjYWxsIG1zZyxURVNULUhEUiwkKFRSVU5ORVJfQklOQVJZKSwkJEApXFxuLVxcdCQkKHNoZWxsIChlY2hvICcvKiBHZW5lcmF0ZWQgaGVhZGVyLCBkbyBub3QgZWRpdCAqLyc7XFx0XFx0XFx0XFx0XFx0XFxcXFxcbitcXHQkJChzaGVsbCBta2RpciAtcCAkJChkaXIgJCRAKSBcXHUwMDI2XFx1MDAyNiAoZWNobyAnLyogR2VuZXJhdGVkIGhlYWRlciwgZG8gbm90IGVkaXQgKi8nO1xcdFxcdFxcdFxcXFxcXG4gXFx0XFx0ICBzZWQgLW4gLUUgJ3MvXnZvaWQgKHNlcmlhbF8pP3Rlc3RfKFthLXpBLVowLTlfXSspXFxcXCgodm9pZCk/XFxcXCkuKi9ERUZJTkVfVEVTVChcXFxcMikvcCdcXHRcXFxcXFxuIFxcdFxcdFxcdCQoVFJVTk5FUl9URVNUU19ESVIpLyouYyB8IHNvcnQgO1xcdFxcXFxcXG4gXFx0XFx0ICkgXFx1MDAzZSAkJEApXFxuQEAgLTgwMiw3ICs4MDYsNyBAQCAkKE9VVFBVVCkvJChUUlVOTkVSX0JJTkFSWSk6ICQoaWYgJChmaWx0ZXIgdGVzdF9wcm9ncyUsJDEpLCQoaWYgJChQRVJNSVNTSVZFKSwkJFxcbiBlbmRlZlxcbiBcXG4gVkVSSUZZX1NJR19TRVRVUCA6PSAkKENVUkRJUikvdmVyaWZ5X3NpZ19zZXR1cC5zaFxcbi1WRVJJRllfU0lHX0hEUiA6PSB2ZXJpZmljYXRpb25fY2VydC5oXFxuK1ZFUklGWV9TSUdfSERSIDo9ICQoT1VUUFVUKS92ZXJpZmljYXRpb25fY2VydC5oXFxuIFZFUklGSUNBVElPTl9DRVJUICAgOj0gJChCVUlMRF9ESVIpL3NpZ25pbmdfa2V5LmRlclxcbiBQUklWQVRFX0tFWSA6PSAkKEJVSUxEX0RJUikvc2lnbmluZ19rZXkucGVtXFxuIFxcbkBAIC04MjYsNyArODMwLDggQEAgTElCQVJFTkFfTUFLRV9BUkdTID0gXFxcXFxcbiBcXHRcXHRDTEFORz1cXFwiJChDTEFORylcXFwiIFxcXFxcXG4gXFx0XFx0QlBGX0NGTEFHUz1cXFwiJChCUEZfQ0ZMQUdTKSAkKENMQU5HX0NGTEFHUylcXFwiIFxcXFxcXG4gXFx0XFx0QlBGX1RBUkdFVF9FTkRJQU49XFxcIiQoQlBGX1RBUkdFVF9FTkRJQU4pXFxcIiBcXFxcXFxuLVxcdFxcdFE9XFxcIiQoUSlcXFwiXFxuK1xcdFxcdFE9XFxcIiQoUSlcXFwiIFxcXFxcXG4rXFx0XFx0T1VUUFVUPVxcXCIkKE9VVFBVVCkvbGliYXJlbmFcXFwiXFxuIFxcbiBMSUJBUkVOQV9CUEZfREVQUyA6PSAkKHdpbGRjYXJkIGxpYmFyZW5hL01ha2VmaWxlXFx0XFx0XFxcXFxcbiBcXHRcXHRcXHRcXHQgbGliYXJlbmEvaW5jbHVkZS8qXFx0XFx0XFxcXFxcbkBAIC04MzUsMTcgKzg0MCwxNyBAQCBMSUJBUkVOQV9CUEZfREVQUyA6PSAkKHdpbGRjYXJkIGxpYmFyZW5hL01ha2VmaWxlXFx0XFx0XFxcXFxcbiBcXHRcXHRcXHRcXHQgbGliYXJlbmEvc2VsZnRlc3RzLypcXHRcXHRcXFxcXFxuIFxcdFxcdFxcdFxcdCBsaWJhcmVuYS8qLmJwZi5vKVxcbiBcXG4tTElCQVJFTkFfU0tFTCA6PSBsaWJhcmVuYS9saWJhcmVuYS5za2VsLmhcXG4rTElCQVJFTkFfU0tFTCA6PSAkKE9VVFBVVCkvbGliYXJlbmEvbGliYXJlbmEuc2tlbC5oXFxuIFxcbiAkKExJQkFSRU5BX1NLRUwpOiAkKElOQ0xVREVfRElSKS92bWxpbnV4LmggJChCUEZPQkopICQoTElCQVJFTkFfQlBGX0RFUFMpXFxuLVxcdCskKE1BS0UpIC1DIGxpYmFyZW5hIGxpYmFyZW5hLnNrZWwuaCAkKExJQkFSRU5BX01BS0VfQVJHUylcXG4rXFx0KyQoTUFLRSkgLUMgbGliYXJlbmEgJChMSUJBUkVOQV9TS0VMKSAkKExJQkFSRU5BX01BS0VfQVJHUylcXG4gXFxuIGlmbmVxICgkKENMQU5HX0hBU19BUkVOQV9BU0FOKSwpXFxuLUxJQkFSRU5BX0FTQU5fU0tFTCA6PSBsaWJhcmVuYS9saWJhcmVuYV9hc2FuLnNrZWwuaFxcbitMSUJBUkVOQV9BU0FOX1NLRUwgOj0gJChPVVRQVVQpL2xpYmFyZW5hL2xpYmFyZW5hX2FzYW4uc2tlbC5oXFxuIENGTEFHUyArPSAtREhBU19CUEZfQVJFTkFfQVNBTlxcbiBcXG4gJChMSUJBUkVOQV9BU0FOX1NLRUwpOiAkKElOQ0xVREVfRElSKS92bWxpbnV4LmggJChCUEZPQkopICQoTElCQVJFTkFfQlBGX0RFUFMpXFxuLVxcdCskKE1BS0UpIC1DIGxpYmFyZW5hIGxpYmFyZW5hX2FzYW4uc2tlbC5oICQoTElCQVJFTkFfTUFLRV9BUkdTKVxcbitcXHQrJChNQUtFKSAtQyBsaWJhcmVuYSAkKExJQkFSRU5BX0FTQU5fU0tFTCkgJChMSUJBUkVOQV9NQUtFX0FSR1MpXFxuIGVuZGlmXFxuIFxcbiAjIERlZmluZSB0ZXN0X3Byb2dzIHRlc3QgcnVubmVyLlxcbkBAIC05MjMsMTQgKzkyOCwxNCBAQCAkKGV2YWwgJChjYWxsIERFRklORV9URVNUX1JVTk5FUix0ZXN0X21hcHMpKVxcbiAjIEl0IGlzIG11Y2ggc2ltcGxlciB0aGFuIHRlc3RfbWFwcy90ZXN0X3Byb2dzIGFuZCBzdWZmaWNpZW50bHkgZGlmZmVyZW50IGZyb21cXG4gIyB0aGVtIChlLmcuLCB0ZXN0LmggaXMgdXNpbmcgY29tcGxldGVseSBwYXR0ZXJuKSwgdGhhdCBpdCdzIHdvcnRoIGp1c3RcXG4gIyBleHBsaWNpdGx5IGRlZmluaW5nIGFsbCB0aGUgcnVsZXMgZXhwbGljaXRseS5cXG4tdmVyaWZpZXIvdGVzdHMuaDogdmVyaWZpZXIvKi5jXFxuLVxcdCQoc2hlbGwgKCBjZCB2ZXJpZmllci87IFxcXFxcXG4rJChPVVRQVVQpL3ZlcmlmaWVyL3Rlc3RzLmg6IHZlcmlmaWVyLyouYyB8ICQoT1VUUFVUKVxcbitcXHQkKHNoZWxsIG1rZGlyIC1wICQoT1VUUFVUKS92ZXJpZmllciBcXHUwMDI2XFx1MDAyNiAoIFxcXFxcXG4gXFx0XFx0ICBlY2hvICcvKiBHZW5lcmF0ZWQgaGVhZGVyLCBkbyBub3QgZWRpdCAqLyc7IFxcXFxcXG4gXFx0XFx0ICBlY2hvICcjaWZkZWYgRklMTF9BUlJBWSc7IFxcXFxcXG4tXFx0XFx0ICBscyAqLmMgMlxcdTAwM2UgL2Rldi9udWxsIHwgc2VkIC1lICdzQFxcXFwoLipcXFxcKUAjaW5jbHVkZSBcXFxcXFxcIlxcXFwxXFxcXFxcXCJAJzsgXFxcXFxcbitcXHRcXHQgIGxzIHZlcmlmaWVyLyouYyAyXFx1MDAzZSAvZGV2L251bGwgfCBzZWQgLWUgJ3NAXFxcXCguKlxcXFwpQCNpbmNsdWRlIFxcXCIkKENVUkRJUikvXFxcXDFcXFwiQCc7IFxcXFxcXG4gXFx0XFx0ICBlY2hvICcjZW5kaWYnIFxcXFxcXG4tXFx0XFx0KSBcXHUwMDNlIHZlcmlmaWVyL3Rlc3RzLmgpXFxuLSQoT1VUUFVUKS90ZXN0X3ZlcmlmaWVyOiB0ZXN0X3ZlcmlmaWVyLmMgdmVyaWZpZXIvdGVzdHMuaCAkKEJQRk9CSikgfCAkKE9VVFBVVClcXG4rXFx0XFx0KSBcXHUwMDNlICQoT1VUUFVUKS92ZXJpZmllci90ZXN0cy5oKVxcbiskKE9VVFBVVCkvdGVzdF92ZXJpZmllcjogdGVzdF92ZXJpZmllci5jICQoT1VUUFVUKS92ZXJpZmllci90ZXN0cy5oICQoQlBGT0JKKSB8ICQoT1VUUFVUKVxcbiBcXHQkKGNhbGwgbXNnLEJJTkFSWSwsJEApXFxuIFxcdCQoUSkkKENDKSAkKENGTEFHUykgJChmaWx0ZXIgJS5hICUubyAlLmMsJF4pICQoTERMSUJTKSAtbyAkQFxcbiBcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2xpYmFyZW5hL01ha2VmaWxlIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2xpYmFyZW5hL01ha2VmaWxlXFxuaW5kZXggNWUyYWI1MTQ4MDVlNC4uMTk1ZDVmODMzMTg2YSAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvbGliYXJlbmEvTWFrZWZpbGVcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvbGliYXJlbmEvTWFrZWZpbGVcXG5AQCAtMjcsMTAgKzI3LDE0IEBAIEJQRkRJUj0kKGFic3BhdGggJChMSUJBUkVOQSkvLi4pXFxuIElOQ0xVREVfRElSID89ICQoQlBGRElSKS90b29scy9pbmNsdWRlXFxuIExJQkJQRl9JTkNMVURFID89ICQoSU5DTFVERV9ESVIpXFxuIFxcbisjIEJ1aWxkIG91dHB1dCBkaXJlY3Rvcnk7IGRlZmF1bHRzIHRvIGluLXRyZWUgZm9yIHN0YW5kYWxvbmUgYnVpbGRzLlxcbitPVVRQVVQgPz0gLlxcbiskKHNoZWxsIG1rZGlyIC1wICQoT1VUUFVUKSlcXG4rXFxuICMgU2NhbiBzcmMvIGFuZCBzZWxmdGVzdHMvIHRvIGdlbmVyYXRlIHRoZSBmaW5hbCBiaW5hcmllc1xcbiBMSUJBUkVOQV9TT1VSQ0VTID0gJCh3aWxkY2FyZCAkKExJQkFSRU5BKS9zcmMvKi5icGYuYykgJCh3aWxkY2FyZCAkKExJQkFSRU5BKS9zZWxmdGVzdHMvKi5icGYuYylcXG4tTElCQVJFTkFfT0JKRUNUUyA9ICQobm90ZGlyICQoTElCQVJFTkFfU09VUkNFUzouYnBmLmM9LmJwZi5vKSlcXG4tTElCQVJFTkFfT0JKRUNUU19BU0FOID0gJChub3RkaXIgJChMSUJBUkVOQV9TT1VSQ0VTOi5icGYuYz1fYXNhbi5icGYubykpXFxuK0xJQkFSRU5BX09CSkVDVFMgPSAkKGFkZHByZWZpeCAkKE9VVFBVVCkvLCQobm90ZGlyICQoTElCQVJFTkFfU09VUkNFUzouYnBmLmM9LmJwZi5vKSkpXFxuK0xJQkFSRU5BX09CSkVDVFNfQVNBTiA9ICQoYWRkcHJlZml4ICQoT1VUUFVUKS8sJChub3RkaXIgJChMSUJBUkVOQV9TT1VSQ0VTOi5icGYuYz1fYXNhbi5icGYubykpKVxcbiBcXG4gSU5DTFVERVMgPSAtSSQoTElCQVJFTkEpL2luY2x1ZGUgLUkkKEJQRkRJUilcXG4gaWZuZXEgKCQoSU5DTFVERV9ESVIpLClcXG5AQCAtNjEsMzIgKzY1LDMyIEBAIENGTEFHUyArPSAkKElOQ0xVREVTKVxcbiB2cGF0aCAlLmJwZi5jICQoTElCQVJFTkEpL3NyYyAkKExJQkFSRU5BKS9zZWxmdGVzdHNcXG4gdnBhdGggJS5jICQoTElCQVJFTkEpL3NyYyAkKExJQkFSRU5BKS9zZWxmdGVzdHNcXG4gXFxuLXNrZWxldG9uczogbGliYXJlbmEuc2tlbC5oIGxpYmFyZW5hX2FzYW4uc2tlbC5oXFxuK3NrZWxldG9uczogJChPVVRQVVQpL2xpYmFyZW5hLnNrZWwuaCAkKE9VVFBVVCkvbGliYXJlbmFfYXNhbi5za2VsLmhcXG4gLlBIT05ZOiBza2VsZXRvbnNcXG4gXFxuLWxpYmFyZW5hX2FzYW4uc2tlbC5oOiBsaWJhcmVuYV9hc2FuLmJwZi5vXFxuKyQoT1VUUFVUKS9saWJhcmVuYV9hc2FuLnNrZWwuaDogJChPVVRQVVQpL2xpYmFyZW5hX2FzYW4uYnBmLm9cXG4gXFx0JChjYWxsIG1zZyxHRU4tU0tFTCxsaWJhcmVuYSwkQClcXG4gXFx0JChRKSQoQlBGVE9PTCkgZ2VuIHNrZWxldG9uICRcXHUwMDNjIG5hbWUgXFxcImxpYmFyZW5hX2FzYW5cXFwiIFxcdTAwM2UgJEBcXG4gXFxuLWxpYmFyZW5hLnNrZWwuaDogbGliYXJlbmEuYnBmLm9cXG4rJChPVVRQVVQpL2xpYmFyZW5hLnNrZWwuaDogJChPVVRQVVQpL2xpYmFyZW5hLmJwZi5vXFxuIFxcdCQoY2FsbCBtc2csR0VOLVNLRUwsbGliYXJlbmEsJEApXFxuIFxcdCQoUSkkKEJQRlRPT0wpIGdlbiBza2VsZXRvbiAkXFx1MDAzYyBuYW1lIFxcXCJsaWJhcmVuYVxcXCIgXFx1MDAzZSAkQFxcbiBcXG4tbGliYXJlbmFfYXNhbi5icGYubzogJChMSUJBUkVOQV9PQkpFQ1RTX0FTQU4pXFxuKyQoT1VUUFVUKS9saWJhcmVuYV9hc2FuLmJwZi5vOiAkKExJQkFSRU5BX09CSkVDVFNfQVNBTilcXG4gXFx0JChjYWxsIG1zZyxHRU4tT0JKLGxpYmFyZW5hLCRAKVxcbiBcXHQkKFEpJChCUEZUT09MKSBnZW4gb2JqZWN0ICRAICReXFxuIFxcbi1saWJhcmVuYS5icGYubzogJChMSUJBUkVOQV9PQkpFQ1RTKVxcbiskKE9VVFBVVCkvbGliYXJlbmEuYnBmLm86ICQoTElCQVJFTkFfT0JKRUNUUylcXG4gXFx0JChjYWxsIG1zZyxHRU4tT0JKLGxpYmFyZW5hLCRAKVxcbiBcXHQkKFEpJChCUEZUT09MKSBnZW4gb2JqZWN0ICRAICReXFxuIFxcbi0lX2FzYW4uYnBmLm86ICUuYnBmLmNcXG4rJChPVVRQVVQpLyVfYXNhbi5icGYubzogJS5icGYuY1xcbiBcXHQkKGNhbGwgbXNnLENMTkctQlBGLGxpYmFyZW5hLCRAKVxcbiBcXHQkKFEpJChDTEFORykgJChCUEZfQ0ZMQUdTKSAkKEFTQU5fRkxBR1MpIC1EQlBGX0FSRU5BX0FTQU4gJChCUEZfVEFSR0VUX0VORElBTikgLWMgJFxcdTAwM2MgLW8gJEBcXG4gXFxuLSUuYnBmLm86ICUuYnBmLmNcXG4rJChPVVRQVVQpLyUuYnBmLm86ICUuYnBmLmNcXG4gXFx0JChjYWxsIG1zZyxDTE5HLUJQRixsaWJhcmVuYSwkQClcXG4gXFx0JChRKSQoQ0xBTkcpICQoQlBGX0NGTEFHUykgJChCUEZfVEFSR0VUX0VORElBTikgLWMgJFxcdTAwM2MgLW8gJEBcXG4gXFxuIGNsZWFuOlxcbi1cXHQkKFEpcm0gLWYgKi5za2VsLmggKi5icGYubyAqLmxpbmtlZCoub1xcbitcXHQkKFEpcm0gLWYgJChPVVRQVVQpLyouc2tlbC5oICQoT1VUUFVUKS8qLmJwZi5vICQoT1VUUFVUKS8qLmxpbmtlZCoub1xcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9rbW9kcy9NYWtlZmlsZSBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2ttb2RzL01ha2VmaWxlXFxuaW5kZXggMDMxYzc0NTRjZTY1Zi4uNTNlNDdlNzE1ZWM0NCAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9rbW9kcy9NYWtlZmlsZVxcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2ttb2RzL01ha2VmaWxlXFxuQEAgLTMyLDE0ICszMiwxNyBAQCBQRVJNSVNTSVZFIDo9ICQoZmlsdGVyIDAsJChCUEZfU1RSSUNUX0JVSUxEKSlcXG4gYWxsOlxcbiBpZmVxICgkKFBFUk1JU1NJVkUpLClcXG4gXFx0JChRKSQoTUFLRSkgLUMgJChLRElSKSAkKGlmICQoS01PRF9PX1ZBTElEKSxPPSQoS01PRF9PX1ZBTElEKSBLQlVJTERfT1VUUFVUPSQoS01PRF9PX1ZBTElEKSxLQlVJTERfT1VUUFVUPSkgXFxcXFxcbitcXHRcXHQkKGlmICQoT1VUUFVUKSxNTz0kKE9VVFBVVCkpIFxcXFxcXG4gXFx0XFx0TT0kKFRFU1RfS01PRF9ESVIpIG1vZHVsZXNcXG4gZWxzZSBpZm5lcSAoXFxcIiQod2lsZGNhcmQgJChLRElSKSlcXFwiLCBcXFwiXFxcIilcXG4gXFx0JChRKSQoTUFLRSkgLUMgJChLRElSKSAkKGlmICQoS01PRF9PX1ZBTElEKSxPPSQoS01PRF9PX1ZBTElEKSBLQlVJTERfT1VUUFVUPSQoS01PRF9PX1ZBTElEKSxLQlVJTERfT1VUUFVUPSkgXFxcXFxcbitcXHRcXHQkKGlmICQoT1VUUFVUKSxNTz0kKE9VVFBVVCkpIFxcXFxcXG4gXFx0XFx0TT0kKFRFU1RfS01PRF9ESVIpIG1vZHVsZXNcXG4gZW5kaWZcXG4gXFxuIGNsZWFuOlxcbiBpZm5lcSAoXFxcIiQod2lsZGNhcmQgJChLRElSKSlcXFwiLCBcXFwiXFxcIilcXG4gXFx0JChRKSQoTUFLRSkgLUMgJChLRElSKSAkKGlmICQoS01PRF9PX1ZBTElEKSxPPSQoS01PRF9PX1ZBTElEKSBLQlVJTERfT1VUUFVUPSQoS01PRF9PX1ZBTElEKSxLQlVJTERfT1VUUFVUPSkgXFxcXFxcbitcXHRcXHQkKGlmICQoT1VUUFVUKSxNTz0kKE9VVFBVVCkpIFxcXFxcXG4gXFx0XFx0TT0kKFRFU1RfS01PRF9ESVIpIGNsZWFuXFxuIGVuZGlmXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDA0OjE0OjMyLjY3Mjg4ODA3NVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjU1NzU1NjczNDksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgTWFrZWZpbGVzIGZvciBCUEYgc2VsZnRlc3RzIHRvIGZpeCBvdXQtb2YtdHJlZSBidWlsZHMgKHdoZW4gT1VUUFVUIGlzIHNldCkuIEl0IGRvZXMgbm90IGNvbnRhaW4gYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIGNvZGUsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA3ZjQzODljMWE2MWYzYzY0OTk2MDg1YWY3MzdhMWVlOGJkMjk2ZTNhXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMzAgMDQ6MTQ6MzEgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvTWFrZWZpbGUgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvTWFrZWZpbGVcbmluZGV4IGI2NDJlZTQ4OWVhNjQuLmIxNTBhNjZmM2MyNTEgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvTWFrZWZpbGVcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9NYWtlZmlsZVxuQEAgLTEzNSw2ICsxMzUsOSBAQCBURVNUX1BST0dTX0VYVEVOREVEIDo9IFxcXG4gVEVTVF9LTU9EUyA6PSBicGZfdGVzdG1vZC5rbyBicGZfdGVzdF9ub19jZmkua28gYnBmX3Rlc3RfbW9kb3JkZXJfeC5rbyBcXFxuIFx0YnBmX3Rlc3RfbW9kb3JkZXJfeS5rbyBicGZfdGVzdF9ycXNwaW5sb2NrLmtvXG4gVEVTVF9LTU9EX1RBUkdFVFMgPSAkKGFkZHByZWZpeCAkKE9VVFBVVCkvLCQoVEVTVF9LTU9EUykpXG4rIyBCdWlsZCBkaXJlY3RvcnkgZm9yIGtlcm5lbCBtb2R1bGVzOiByb3V0ZWQgdG8gJChPVVRQVVQpL3Rlc3Rfa21vZHMgd2hlblxuKyMgT1VUUFVUIGlzIHNldCBzbyB0aGF0IGtidWlsZCBpbnRlcm1lZGlhdGVzIHN0YXkgb3V0IG9mIHRoZSBzb3VyY2UgdHJlZS5cbitURVNUX0tNT0RTX09VVERJUiA6PSAkKGlmICQoT1VUUFVUKSwkKE9VVFBVVCkvdGVzdF9rbW9kcyx0ZXN0X2ttb2RzKVxuIFxuICMgQ29tcGlsZSBidXQgbm90IHBhcnQgb2YgJ21ha2UgcnVuX3Rlc3RzJ1xuIFRFU1RfR0VOX1BST0dTX0VYVEVOREVEID0gXFxcbkBAIC0xNjMsOCArMTY2LDggQEAgb3ZlcnJpZGUgZGVmaW5lIENMRUFOXG4gXHQkKFEpJChSTSkgLXIgJChURVNUX0dFTl9GSUxFUylcbiBcdCQoUSkkKFJNKSAtciAkKFRFU1RfS01PRFMpXG4gXHQkKFEpJChSTSkgLXIgJChFWFRSQV9DTEVBTilcbi1cdCQoUSkkKE1BS0UpIC1DIHRlc3Rfa21vZHMgY2xlYW5cbi1cdCQoUSkkKE1BS0UpIC1DIGxpYmFyZW5hIGNsZWFuXG4rXHQkKFEpJChNQUtFKSAtQyB0ZXN0X2ttb2RzICQoaWYgJChPVVRQVVQpLE9VVFBVVD0kKE9VVFBVVCkvdGVzdF9rbW9kcykgY2xlYW5cbitcdCQoUSkkKE1BS0UpIC1DIGxpYmFyZW5hICQoaWYgJChPVVRQVVQpLE9VVFBVVD0kKE9VVFBVVCkvbGliYXJlbmEpIGNsZWFuXG4gXHQkKFEpJChNQUtFKSBkb2NzLWNsZWFuXG4gZW5kZWZcbiBcbkBAIC0zMDEsMTcgKzMwNCwxOCBAQCAkKE9VVFBVVCkvc2lnbi1maWxlOiAuLi8uLi8uLi8uLi9zY3JpcHRzL3NpZ24tZmlsZS5jXG4gIyBzdXBwb3J0IHRoYXQgZm9yIHJlZ3VsYXIgcnVsZXMuIEhvd2V2ZXIsIHBhdHRlcm4gbWF0Y2hpbmcgcnVsZXMgYXJlIGltcGxpY2l0bHlcbiAjIHRyZWF0ZWQgYXMgZ3JvdXBlZCBldmVuIHdpdGggb2xkZXIgdmVyc2lvbnMgb2YgbWFrZSwgc28gYXMgYSB3b3JrYXJvdW5kLCB0aGVcbiAjIHN1YnN0KCkgdHVybnMgdGhlIHJ1bGUgaW50byBhIHBhdHRlcm4gbWF0Y2hpbmcgcnVsZVxuLSQoYWRkcHJlZml4IHRlc3Rfa21vZHMvLCQoc3Vic3QgLmtvLCVrbywkKFRFU1RfS01PRFMpKSk6ICQoVk1MSU5VWF9CVEYpICQoUkVTT0xWRV9CVEZJRFMpICQod2lsZGNhcmQgdGVzdF9rbW9kcy9NYWtlZmlsZSB0ZXN0X2ttb2RzLyouW2NoXSlcbi1cdCQoUSkkKFJNKSB0ZXN0X2ttb2RzLyoua28gdGVzdF9rbW9kcy8qLm1vZC5vICMgZm9yY2UgcmUtY29tcGlsYXRpb25cbiskKGFkZHByZWZpeCAkKFRFU1RfS01PRFNfT1VURElSKS8sJChzdWJzdCAua28sJWtvLCQoVEVTVF9LTU9EUykpKTogJChWTUxJTlVYX0JURikgJChSRVNPTFZFX0JURklEUykgJCh3aWxkY2FyZCB0ZXN0X2ttb2RzL01ha2VmaWxlIHRlc3Rfa21vZHMvKi5bY2hdKVxuK1x0JChRKSQoUk0pICQoVEVTVF9LTU9EU19PVVRESVIpLyoua28gJChURVNUX0tNT0RTX09VVERJUikvKi5tb2QubyAjIGZvcmNlIHJlLWNvbXBpbGF0aW9uXG4gXHQkKFEpJChNQUtFKSAkKHN1Ym1ha2VfZXh0cmFzKSAtQyB0ZXN0X2ttb2RzXHRcdFx0XHRcXFxuIFx0XHQkKGlmICQoTyksTz0kKGFic3BhdGggJChPKSkpXHRcdFx0XHRcdFxcXG4gXHRcdCQoaWYgJChLQlVJTERfT1VUUFVUKSxLQlVJTERfT1VUUFVUPSQoYWJzcGF0aCAkKEtCVUlMRF9PVVRQVVQpKSlcXFxuK1x0XHQkKGlmICQoT1VUUFVUKSxPVVRQVVQ9JChPVVRQVVQpL3Rlc3Rfa21vZHMpXHRcdFx0XFxcbiBcdFx0UkVTT0xWRV9CVEZJRFM9JChSRVNPTFZFX0JURklEUylcdFx0XHRcdFxcXG4gXHRcdEVYVFJBX0NGTEFHUz0nJyBFWFRSQV9MREZMQUdTPScnXG4gXG4tJChURVNUX0tNT0RfVEFSR0VUUyk6ICQoYWRkcHJlZml4IHRlc3Rfa21vZHMvLCQoVEVTVF9LTU9EUykpXG4rJChURVNUX0tNT0RfVEFSR0VUUyk6ICQoYWRkcHJlZml4ICQoVEVTVF9LTU9EU19PVVRESVIpLywkKFRFU1RfS01PRFMpKVxuIFx0JChjYWxsIG1zZyxNT0QsLCRAKVxuLVx0JChRKSQoaWYgJChQRVJNSVNTSVZFKSxpZiBbIC1mIHRlc3Rfa21vZHMvJChARikgXTsgdGhlbiApY3AgdGVzdF9rbW9kcy8kKEBGKSAkQCQoaWYgJChQRVJNSVNTSVZFKSw7IGZpKVxuK1x0JChRKSQoaWYgJChQRVJNSVNTSVZFKSxpZiBbIC1mICQoVEVTVF9LTU9EU19PVVRESVIpLyQoQEYpIF07IHRoZW4gKWNwICQoVEVTVF9LTU9EU19PVVRESVIpLyQoQEYpICRAJChpZiAkKFBFUk1JU1NJVkUpLDsgZmkpXG4gXG4gXG4gREVGQVVMVF9CUEZUT09MIDo9ICQoSE9TVF9TQ1JBVENIX0RJUikvc2Jpbi9icGZ0b29sXG5AQCAtNTgwLDcgKzU4NCw3IEBAIFRSVU5ORVJfRVhUUkFfT0JKUyA6PSAkJChwYXRzdWJzdCAlLmMsJCQoVFJVTk5FUl9PVVRQVVQpLyUubyxcdFx0XFxcbiBUUlVOTkVSX0xJQl9PQkpTIDo9ICQkKHBhdHN1YnN0ICUuYywkJChUUlVOTkVSX09VVFBVVCkvJS5vLFx0XHRcXFxuIFx0XHRcdFx0ICQkKGZpbHRlciAlLmMsJChUUlVOTkVSX0xJQl9TT1VSQ0VTKSkpXG4gVFJVTk5FUl9FWFRSQV9IRFJTIDo9ICQkKGZpbHRlciAlLmgsJChUUlVOTkVSX0VYVFJBX1NPVVJDRVMpKVxuLVRSVU5ORVJfVEVTVFNfSERSIDo9ICQoVFJVTk5FUl9URVNUU19ESVIpL3Rlc3RzLmhcbitUUlVOTkVSX1RFU1RTX0hEUiA6PSAkKE9VVFBVVCkvJChUUlVOTkVSX1RFU1RTX0RJUikvdGVzdHMuaFxuIFRSVU5ORVJfQlBGX1NSQ1MgOj0gJCQobm90ZGlyICQkKHdpbGRjYXJkICQoVFJVTk5FUl9CUEZfUFJPR1NfRElSKS8qLmMpKVxuIFRSVU5ORVJfQlBGX09CSlMgOj0gJCQocGF0c3Vic3QgJS5jLCQkKFRSVU5ORVJfT1VUUFVUKS8lLmJwZi5vLCAkJChUUlVOTkVSX0JQRl9TUkNTKSlcbiBUUlVOTkVSX0JQRl9TS0VMUyA6PSAkJChwYXRzdWJzdCAlLmMsJCQoVFJVTk5FUl9PVVRQVVQpLyUuc2tlbC5oLFx0XFxcbkBAIC03MjAsOSArNzI0LDkgQEAgZW5kaWZcbiAjIGVuc3VyZSB3ZSBzZXQgdXAgdGVzdHMuaCBoZWFkZXIgZ2VuZXJhdGlvbiBydWxlIGp1c3Qgb25jZVxuIGlmZXEgKCQoJChUUlVOTkVSX1RFU1RTX0RJUiktdGVzdHMtaGRyKSwpXG4gJChUUlVOTkVSX1RFU1RTX0RJUiktdGVzdHMtaGRyIDo9IHlcbi0kKFRSVU5ORVJfVEVTVFNfSERSKTogJChUUlVOTkVSX1RFU1RTX0RJUikvKi5jXG4rJChUUlVOTkVSX1RFU1RTX0hEUik6ICQoVFJVTk5FUl9URVNUU19ESVIpLyouYyB8ICQoVFJVTk5FUl9PVVRQVVQpXG4gXHQkJChjYWxsIG1zZyxURVNULUhEUiwkKFRSVU5ORVJfQklOQVJZKSwkJEApXG4tXHQkJChzaGVsbCAoZWNobyAnLyogR2VuZXJhdGVkIGhlYWRlciwgZG8gbm90IGVkaXQgKi8nO1x0XHRcdFx0XHRcXFxuK1x0JCQoc2hlbGwgbWtkaXIgLXAgJCQoZGlyICQkQCkgXHUwMDI2XHUwMDI2IChlY2hvICcvKiBHZW5lcmF0ZWQgaGVhZGVyLCBkbyBub3QgZWRpdCAqLyc7XHRcdFx0XFxcbiBcdFx0ICBzZWQgLW4gLUUgJ3MvXnZvaWQgKHNlcmlhbF8pP3Rlc3RfKFthLXpBLVowLTlfXSspXFwoKHZvaWQpP1xcKS4qL0RFRklORV9URVNUKFxcMikvcCdcdFxcXG4gXHRcdFx0JChUUlVOTkVSX1RFU1RTX0RJUikvKi5jIHwgc29ydCA7XHRcXFxuIFx0XHQgKSBcdTAwM2UgJCRAKVxuQEAgLTgwMiw3ICs4MDYsNyBAQCAkKE9VVFBVVCkvJChUUlVOTkVSX0JJTkFSWSk6ICQoaWYgJChmaWx0ZXIgdGVzdF9wcm9ncyUsJDEpLCQoaWYgJChQRVJNSVNTSVZFKSwkJFxuIGVuZGVmXG4gXG4gVkVSSUZZX1NJR19TRVRVUCA6PSAkKENVUkRJUikvdmVyaWZ5X3NpZ19zZXR1cC5zaFxuLVZFUklGWV9TSUdfSERSIDo9IHZlcmlmaWNhdGlvbl9jZXJ0LmhcbitWRVJJRllfU0lHX0hEUiA6PSAkKE9VVFBVVCkvdmVyaWZpY2F0aW9uX2NlcnQuaFxuIFZFUklGSUNBVElPTl9DRVJUICAgOj0gJChCVUlMRF9ESVIpL3NpZ25pbmdfa2V5LmRlclxuIFBSSVZBVEVfS0VZIDo9ICQoQlVJTERfRElSKS9zaWduaW5nX2tleS5wZW1cbiBcbkBAIC04MjYsNyArODMwLDggQEAgTElCQVJFTkFfTUFLRV9BUkdTID0gXFxcbiBcdFx0Q0xBTkc9XCIkKENMQU5HKVwiIFxcXG4gXHRcdEJQRl9DRkxBR1M9XCIkKEJQRl9DRkxBR1MpICQoQ0xBTkdfQ0ZMQUdTKVwiIFxcXG4gXHRcdEJQRl9UQVJHRVRfRU5ESUFOPVwiJChCUEZfVEFSR0VUX0VORElBTilcIiBcXFxuLVx0XHRRPVwiJChRKVwiXG4rXHRcdFE9XCIkKFEpXCIgXFxcbitcdFx0T1VUUFVUPVwiJChPVVRQVVQpL2xpYmFyZW5hXCJcbiBcbiBMSUJBUkVOQV9CUEZfREVQUyA6PSAkKHdpbGRjYXJkIGxpYmFyZW5hL01ha2VmaWxlXHRcdFxcXG4gXHRcdFx0XHQgbGliYXJlbmEvaW5jbHVkZS8qXHRcdFxcXG5AQCAtODM1LDE3ICs4NDAsMTcgQEAgTElCQVJFTkFfQlBGX0RFUFMgOj0gJCh3aWxkY2FyZCBsaWJhcmVuYS9NYWtlZmlsZVx0XHRcXFxuIFx0XHRcdFx0IGxpYmFyZW5hL3NlbGZ0ZXN0cy8qXHRcdFxcXG4gXHRcdFx0XHQgbGliYXJlbmEvKi5icGYubylcbiBcbi1MSUJBUkVOQV9TS0VMIDo9IGxpYmFyZW5hL2xpYmFyZW5hLnNrZWwuaFxuK0xJQkFSRU5BX1NLRUwgOj0gJChPVVRQVVQpL2xpYmFyZW5hL2xpYmFyZW5hLnNrZWwuaFxuIFxuICQoTElCQVJFTkFfU0tFTCk6ICQoSU5DTFVERV9ESVIpL3ZtbGludXguaCAkKEJQRk9CSikgJChMSUJBUkVOQV9CUEZfREVQUylcbi1cdCskKE1BS0UpIC1DIGxpYmFyZW5hIGxpYmFyZW5hLnNrZWwuaCAkKExJQkFSRU5BX01BS0VfQVJHUylcbitcdCskKE1BS0UpIC1DIGxpYmFyZW5hICQoTElCQVJFTkFfU0tFTCkgJChMSUJBUkVOQV9NQUtFX0FSR1MpXG4gXG4gaWZuZXEgKCQoQ0xBTkdfSEFTX0FSRU5BX0FTQU4pLClcbi1MSUJBUkVOQV9BU0FOX1NLRUwgOj0gbGliYXJlbmEvbGliYXJlbmFfYXNhbi5za2VsLmhcbitMSUJBUkVOQV9BU0FOX1NLRUwgOj0gJChPVVRQVVQpL2xpYmFyZW5hL2xpYmFyZW5hX2FzYW4uc2tlbC5oXG4gQ0ZMQUdTICs9IC1ESEFTX0JQRl9BUkVOQV9BU0FOXG4gXG4gJChMSUJBUkVOQV9BU0FOX1NLRUwpOiAkKElOQ0xVREVfRElSKS92bWxpbnV4LmggJChCUEZPQkopICQoTElCQVJFTkFfQlBGX0RFUFMpXG4tXHQrJChNQUtFKSAtQyBsaWJhcmVuYSBsaWJhcmVuYV9hc2FuLnNrZWwuaCAkKExJQkFSRU5BX01BS0VfQVJHUylcbitcdCskKE1BS0UpIC1DIGxpYmFyZW5hICQoTElCQVJFTkFfQVNBTl9TS0VMKSAkKExJQkFSRU5BX01BS0VfQVJHUylcbiBlbmRpZlxuIFxuICMgRGVmaW5lIHRlc3RfcHJvZ3MgdGVzdCBydW5uZXIuXG5AQCAtOTIzLDE0ICs5MjgsMTQgQEAgJChldmFsICQoY2FsbCBERUZJTkVfVEVTVF9SVU5ORVIsdGVzdF9tYXBzKSlcbiAjIEl0IGlzIG11Y2ggc2ltcGxlciB0aGFuIHRlc3RfbWFwcy90ZXN0X3Byb2dzIGFuZCBzdWZmaWNpZW50bHkgZGlmZmVyZW50IGZyb21cbiAjIHRoZW0gKGUuZy4sIHRlc3QuaCBpcyB1c2luZyBjb21wbGV0ZWx5IHBhdHRlcm4pLCB0aGF0IGl0J3Mgd29ydGgganVzdFxuICMgZXhwbGljaXRseSBkZWZpbmluZyBhbGwgdGhlIHJ1bGVzIGV4cGxpY2l0bHkuXG4tdmVyaWZpZXIvdGVzdHMuaDogdmVyaWZpZXIvKi5jXG4tXHQkKHNoZWxsICggY2QgdmVyaWZpZXIvOyBcXFxuKyQoT1VUUFVUKS92ZXJpZmllci90ZXN0cy5oOiB2ZXJpZmllci8qLmMgfCAkKE9VVFBVVClcbitcdCQoc2hlbGwgbWtkaXIgLXAgJChPVVRQVVQpL3ZlcmlmaWVyIFx1MDAyNlx1MDAyNiAoIFxcXG4gXHRcdCAgZWNobyAnLyogR2VuZXJhdGVkIGhlYWRlciwgZG8gbm90IGVkaXQgKi8nOyBcXFxuIFx0XHQgIGVjaG8gJyNpZmRlZiBGSUxMX0FSUkFZJzsgXFxcbi1cdFx0ICBscyAqLmMgMlx1MDAzZSAvZGV2L251bGwgfCBzZWQgLWUgJ3NAXFwoLipcXClAI2luY2x1ZGUgXFxcIlxcMVxcXCJAJzsgXFxcbitcdFx0ICBscyB2ZXJpZmllci8qLmMgMlx1MDAzZSAvZGV2L251bGwgfCBzZWQgLWUgJ3NAXFwoLipcXClAI2luY2x1ZGUgXCIkKENVUkRJUikvXFwxXCJAJzsgXFxcbiBcdFx0ICBlY2hvICcjZW5kaWYnIFxcXG4tXHRcdCkgXHUwMDNlIHZlcmlmaWVyL3Rlc3RzLmgpXG4tJChPVVRQVVQpL3Rlc3RfdmVyaWZpZXI6IHRlc3RfdmVyaWZpZXIuYyB2ZXJpZmllci90ZXN0cy5oICQoQlBGT0JKKSB8ICQoT1VUUFVUKVxuK1x0XHQpIFx1MDAzZSAkKE9VVFBVVCkvdmVyaWZpZXIvdGVzdHMuaClcbiskKE9VVFBVVCkvdGVzdF92ZXJpZmllcjogdGVzdF92ZXJpZmllci5jICQoT1VUUFVUKS92ZXJpZmllci90ZXN0cy5oICQoQlBGT0JKKSB8ICQoT1VUUFVUKVxuIFx0JChjYWxsIG1zZyxCSU5BUlksLCRAKVxuIFx0JChRKSQoQ0MpICQoQ0ZMQUdTKSAkKGZpbHRlciAlLmEgJS5vICUuYywkXikgJChMRExJQlMpIC1vICRAXG4gXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2xpYmFyZW5hL01ha2VmaWxlIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2xpYmFyZW5hL01ha2VmaWxlXG5pbmRleCA1ZTJhYjUxNDgwNWU0Li4xOTVkNWY4MzMxODZhIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2xpYmFyZW5hL01ha2VmaWxlXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvbGliYXJlbmEvTWFrZWZpbGVcbkBAIC0yNywxMCArMjcsMTQgQEAgQlBGRElSPSQoYWJzcGF0aCAkKExJQkFSRU5BKS8uLilcbiBJTkNMVURFX0RJUiA/PSAkKEJQRkRJUikvdG9vbHMvaW5jbHVkZVxuIExJQkJQRl9JTkNMVURFID89ICQoSU5DTFVERV9ESVIpXG4gXG4rIyBCdWlsZCBvdXRwdXQgZGlyZWN0b3J5OyBkZWZhdWx0cyB0byBpbi10cmVlIGZvciBzdGFuZGFsb25lIGJ1aWxkcy5cbitPVVRQVVQgPz0gLlxuKyQoc2hlbGwgbWtkaXIgLXAgJChPVVRQVVQpKVxuK1xuICMgU2NhbiBzcmMvIGFuZCBzZWxmdGVzdHMvIHRvIGdlbmVyYXRlIHRoZSBmaW5hbCBiaW5hcmllc1xuIExJQkFSRU5BX1NPVVJDRVMgPSAkKHdpbGRjYXJkICQoTElCQVJFTkEpL3NyYy8qLmJwZi5jKSAkKHdpbGRjYXJkICQoTElCQVJFTkEpL3NlbGZ0ZXN0cy8qLmJwZi5jKVxuLUxJQkFSRU5BX09CSkVDVFMgPSAkKG5vdGRpciAkKExJQkFSRU5BX1NPVVJDRVM6LmJwZi5jPS5icGYubykpXG4tTElCQVJFTkFfT0JKRUNUU19BU0FOID0gJChub3RkaXIgJChMSUJBUkVOQV9TT1VSQ0VTOi5icGYuYz1fYXNhbi5icGYubykpXG4rTElCQVJFTkFfT0JKRUNUUyA9ICQoYWRkcHJlZml4ICQoT1VUUFVUKS8sJChub3RkaXIgJChMSUJBUkVOQV9TT1VSQ0VTOi5icGYuYz0uYnBmLm8pKSlcbitMSUJBUkVOQV9PQkpFQ1RTX0FTQU4gPSAkKGFkZHByZWZpeCAkKE9VVFBVVCkvLCQobm90ZGlyICQoTElCQVJFTkFfU09VUkNFUzouYnBmLmM9X2FzYW4uYnBmLm8pKSlcbiBcbiBJTkNMVURFUyA9IC1JJChMSUJBUkVOQSkvaW5jbHVkZSAtSSQoQlBGRElSKVxuIGlmbmVxICgkKElOQ0xVREVfRElSKSwpXG5AQCAtNjEsMzIgKzY1LDMyIEBAIENGTEFHUyArPSAkKElOQ0xVREVTKVxuIHZwYXRoICUuYnBmLmMgJChMSUJBUkVOQSkvc3JjICQoTElCQVJFTkEpL3NlbGZ0ZXN0c1xuIHZwYXRoICUuYyAkKExJQkFSRU5BKS9zcmMgJChMSUJBUkVOQSkvc2VsZnRlc3RzXG4gXG4tc2tlbGV0b25zOiBsaWJhcmVuYS5za2VsLmggbGliYXJlbmFfYXNhbi5za2VsLmhcbitza2VsZXRvbnM6ICQoT1VUUFVUKS9saWJhcmVuYS5za2VsLmggJChPVVRQVVQpL2xpYmFyZW5hX2FzYW4uc2tlbC5oXG4gLlBIT05ZOiBza2VsZXRvbnNcbiBcbi1saWJhcmVuYV9hc2FuLnNrZWwuaDogbGliYXJlbmFfYXNhbi5icGYub1xuKyQoT1VUUFVUKS9saWJhcmVuYV9hc2FuLnNrZWwuaDogJChPVVRQVVQpL2xpYmFyZW5hX2FzYW4uYnBmLm9cbiBcdCQoY2FsbCBtc2csR0VOLVNLRUwsbGliYXJlbmEsJEApXG4gXHQkKFEpJChCUEZUT09MKSBnZW4gc2tlbGV0b24gJFx1MDAzYyBuYW1lIFwibGliYXJlbmFfYXNhblwiIFx1MDAzZSAkQFxuIFxuLWxpYmFyZW5hLnNrZWwuaDogbGliYXJlbmEuYnBmLm9cbiskKE9VVFBVVCkvbGliYXJlbmEuc2tlbC5oOiAkKE9VVFBVVCkvbGliYXJlbmEuYnBmLm9cbiBcdCQoY2FsbCBtc2csR0VOLVNLRUwsbGliYXJlbmEsJEApXG4gXHQkKFEpJChCUEZUT09MKSBnZW4gc2tlbGV0b24gJFx1MDAzYyBuYW1lIFwibGliYXJlbmFcIiBcdTAwM2UgJEBcbiBcbi1saWJhcmVuYV9hc2FuLmJwZi5vOiAkKExJQkFSRU5BX09CSkVDVFNfQVNBTilcbiskKE9VVFBVVCkvbGliYXJlbmFfYXNhbi5icGYubzogJChMSUJBUkVOQV9PQkpFQ1RTX0FTQU4pXG4gXHQkKGNhbGwgbXNnLEdFTi1PQkosbGliYXJlbmEsJEApXG4gXHQkKFEpJChCUEZUT09MKSBnZW4gb2JqZWN0ICRAICReXG4gXG4tbGliYXJlbmEuYnBmLm86ICQoTElCQVJFTkFfT0JKRUNUUylcbiskKE9VVFBVVCkvbGliYXJlbmEuYnBmLm86ICQoTElCQVJFTkFfT0JKRUNUUylcbiBcdCQoY2FsbCBtc2csR0VOLU9CSixsaWJhcmVuYSwkQClcbiBcdCQoUSkkKEJQRlRPT0wpIGdlbiBvYmplY3QgJEAgJF5cbiBcbi0lX2FzYW4uYnBmLm86ICUuYnBmLmNcbiskKE9VVFBVVCkvJV9hc2FuLmJwZi5vOiAlLmJwZi5jXG4gXHQkKGNhbGwgbXNnLENMTkctQlBGLGxpYmFyZW5hLCRAKVxuIFx0JChRKSQoQ0xBTkcpICQoQlBGX0NGTEFHUykgJChBU0FOX0ZMQUdTKSAtREJQRl9BUkVOQV9BU0FOICQoQlBGX1RBUkdFVF9FTkRJQU4pIC1jICRcdTAwM2MgLW8gJEBcbiBcbi0lLmJwZi5vOiAlLmJwZi5jXG4rJChPVVRQVVQpLyUuYnBmLm86ICUuYnBmLmNcbiBcdCQoY2FsbCBtc2csQ0xORy1CUEYsbGliYXJlbmEsJEApXG4gXHQkKFEpJChDTEFORykgJChCUEZfQ0ZMQUdTKSAkKEJQRl9UQVJHRVRfRU5ESUFOKSAtYyAkXHUwMDNjIC1vICRAXG4gXG4gY2xlYW46XG4tXHQkKFEpcm0gLWYgKi5za2VsLmggKi5icGYubyAqLmxpbmtlZCoub1xuK1x0JChRKXJtIC1mICQoT1VUUFVUKS8qLnNrZWwuaCAkKE9VVFBVVCkvKi5icGYubyAkKE9VVFBVVCkvKi5saW5rZWQqLm9cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9rbW9kcy9NYWtlZmlsZSBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2ttb2RzL01ha2VmaWxlXG5pbmRleCAwMzFjNzQ1NGNlNjVmLi41M2U0N2U3MTVlYzQ0IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3Rfa21vZHMvTWFrZWZpbGVcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2ttb2RzL01ha2VmaWxlXG5AQCAtMzIsMTQgKzMyLDE3IEBAIFBFUk1JU1NJVkUgOj0gJChmaWx0ZXIgMCwkKEJQRl9TVFJJQ1RfQlVJTEQpKVxuIGFsbDpcbiBpZmVxICgkKFBFUk1JU1NJVkUpLClcbiBcdCQoUSkkKE1BS0UpIC1DICQoS0RJUikgJChpZiAkKEtNT0RfT19WQUxJRCksTz0kKEtNT0RfT19WQUxJRCkgS0JVSUxEX09VVFBVVD0kKEtNT0RfT19WQUxJRCksS0JVSUxEX09VVFBVVD0pIFxcXG4rXHRcdCQoaWYgJChPVVRQVVQpLE1PPSQoT1VUUFVUKSkgXFxcbiBcdFx0TT0kKFRFU1RfS01PRF9ESVIpIG1vZHVsZXNcbiBlbHNlIGlmbmVxIChcIiQod2lsZGNhcmQgJChLRElSKSlcIiwgXCJcIilcbiBcdCQoUSkkKE1BS0UpIC1DICQoS0RJUikgJChpZiAkKEtNT0RfT19WQUxJRCksTz0kKEtNT0RfT19WQUxJRCkgS0JVSUxEX09VVFBVVD0kKEtNT0RfT19WQUxJRCksS0JVSUxEX09VVFBVVD0pIFxcXG4rXHRcdCQoaWYgJChPVVRQVVQpLE1PPSQoT1VUUFVUKSkgXFxcbiBcdFx0TT0kKFRFU1RfS01PRF9ESVIpIG1vZHVsZXNcbiBlbmRpZlxuIFxuIGNsZWFuOlxuIGlmbmVxIChcIiQod2lsZGNhcmQgJChLRElSKSlcIiwgXCJcIilcbiBcdCQoUSkkKE1BS0UpIC1DICQoS0RJUikgJChpZiAkKEtNT0RfT19WQUxJRCksTz0kKEtNT0RfT19WQUxJRCkgS0JVSUxEX09VVFBVVD0kKEtNT0RfT19WQUxJRCksS0JVSUxEX09VVFBVVD0pIFxcXG4rXHRcdCQoaWYgJChPVVRQVVQpLE1PPSQoT1VUUFVUKSkgXFxcbiBcdFx0TT0kKFRFU1RfS01PRF9ESVIpIGNsZWFuXG4gZW5kaWZcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDA0OjE0OjMyLjY3Mjg4OTYyNVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU1NzU1NDAyNjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqV29ydGhGdXp6aW5nPWZhbHNlOiBBIFF1aWNrIEFzc2Vzc21lbnQqKlxuXG5Pa2F5LCBoZXJlJ3MgdGhlIGRlYWw6IEkndmUgZ290IGEgcGF0Y2ggaW4gZnJvbnQgb2YgbWUgdGhhdCB0b3VjaGVzIHNvbWUgTWFrZWZpbGVzIHdpdGhpbiB0aGUgQlBGIHNlbGZ0ZXN0IGZyYW1ld29yay4gU3BlY2lmaWNhbGx5LCBpdCdzIG1vZGlmeWluZyBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL01ha2VmaWxlYCwgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9saWJhcmVuYS9NYWtlZmlsZWAsIGFuZCBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3Rfa21vZHMvTWFrZWZpbGVgLiBNeSBpbW1lZGlhdGUgY29uY2VybiwgYXMgYWx3YXlzLCBpcyB3aGV0aGVyIHRoaXMgd2FycmFudHMgZnV6emluZyBlZmZvcnQuXG5cbkZyb20gbXkgaW5pdGlhbCBzY2FuLCB0aGUgY2hhbmdlcyBhcmUgZW50aXJlbHkgY29uZmluZWQgdG8gdGhlIGJ1aWxkIHN5c3RlbSBpdHNlbGYuIFRoaXMgcGF0Y2ggaXMganVzdCBhZGp1c3RpbmcgaG93IHRoZSBCUEYgc2VsZnRlc3RzIGFyZSBidWlsdCwgc3BlY2lmaWNhbGx5IGRlYWxpbmcgd2l0aCBvdXRwdXQgZGlyZWN0b3JpZXMgd2hlbiBgT1VUUFVUYCBpcyBkZWZpbmVkLiBUaGVyZSdzIG5vIG1vZGlmaWNhdGlvbiBvZiBhY3R1YWwga2VybmVsIGNvZGUsIG5vIGFsdGVyYXRpb25zIHRvIGRyaXZlcnMsIGFuZCBjZXJ0YWlubHkgbm8gYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGNoYW5nZXMuIFRoaXMgaXMgKnB1cmVseSogYnVpbGQgc3lzdGVtIGhvdXNla2VlcGluZy5cblxuTGV0IG1lIGp1c3QgcXVpY2tseSBjb25maXJtIHRoYXQgd2l0aCBhIGRlZXBlciBsb29rIGF0IHRoZSBkaWZmLiBZZXAsIGp1c3QgTWFrZWZpbGUgbW9kaWZpY2F0aW9ucyBmb3Igb3V0LW9mLXRyZWUgYnVpbGRzLiBObyBDIGNvZGUgaGFzIGJlZW4gdG91Y2hlZCwgbm90aGluZyB0aGF0IGludHJvZHVjZXMgYW55IG5ldyBmdW5jdGlvbmFsaXR5IG9yIGJ1ZyBwb3RlbnRpYWwgYXQgcnVudGltZS5cblxuU28sIGdpdmVuIHRoZSBuYXR1cmUgb2YgdGhlIGNoYW5nZXMsIEkgY2FuIGNvbmZpZGVudGx5IGRlY2xhcmUgdGhpcyBwYXRjaCBhcyAqbm90KiB3b3J0aCBmdXp6aW5nLiBJJ2xsIGZsYWcgYFdvcnRoRnV6emluZz1mYWxzZWAgYW5kIHN1Ym1pdCB0aGUgcmVzdWx0cy5cblxuXG4iLCJJbnB1dFRva2VucyI6NjA3OCwiT3V0cHV0VG9rZW5zIjo3NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0MSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDA0OjE0OjM4LjI0ODQzMzI3NFoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjA3OTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBNYWtlZmlsZXMgZm9yIEJQRiBzZWxmdGVzdHMgdG8gZml4IG91dC1vZi10cmVlIGJ1aWxkcyAod2hlbiBPVVRQVVQgaXMgc2V0KS4gSXQgZG9lcyBub3QgY29udGFpbiBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgY29kZSwgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgTWFrZWZpbGVzIGZvciBCUEYgc2VsZnRlc3RzIHRvIGZpeCBvdXQtb2YtdHJlZSBidWlsZHMgKHdoZW4gT1VUUFVUIGlzIHNldCkuIEl0IGRvZXMgbm90IGNvbnRhaW4gYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIGNvZGUsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowds7hc[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-30 04:10:12 +0000 UTC FinishedAt: 2026-07-30 04:14:38 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDA0OjE0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgTWFrZWZpbGVzIGZvciBCUEYgc2VsZnRlc3RzIHRvIGZpeCBvdXQtb2YtdHJlZSBidWlsZHMgKHdoZW4gT1VUUFVUIGlzIHNldCkuIEl0IGRvZXMgbm90IGNvbnRhaW4gYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIGNvZGUsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDA0OjE0PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgN2Y0Mzg5YzFhNjFmM2M2NDk5NjA4NWFmNzM3YTFlZThiZDI5NmUzYVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDMwIDA0OjE0OjMxIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9NYWtlZmlsZSBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9NYWtlZmlsZVxuaW5kZXggYjY0MmVlNDg5ZWE2NC4uYjE1MGE2NmYzYzI1MSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9NYWtlZmlsZVxuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL01ha2VmaWxlXG5AQCAtMTM1LDYgJiM0MzsxMzUsOSBAQCBURVNUX1BST0dTX0VYVEVOREVEIDo9IFxcXG4gVEVTVF9LTU9EUyA6PSBicGZfdGVzdG1vZC5rbyBicGZfdGVzdF9ub19jZmkua28gYnBmX3Rlc3RfbW9kb3JkZXJfeC5rbyBcXFxuIFx0YnBmX3Rlc3RfbW9kb3JkZXJfeS5rbyBicGZfdGVzdF9ycXNwaW5sb2NrLmtvXG4gVEVTVF9LTU9EX1RBUkdFVFMgPSAkKGFkZHByZWZpeCAkKE9VVFBVVCkvLCQoVEVTVF9LTU9EUykpXG4mIzQzOyMgQnVpbGQgZGlyZWN0b3J5IGZvciBrZXJuZWwgbW9kdWxlczogcm91dGVkIHRvICQoT1VUUFVUKS90ZXN0X2ttb2RzIHdoZW5cbiYjNDM7IyBPVVRQVVQgaXMgc2V0IHNvIHRoYXQga2J1aWxkIGludGVybWVkaWF0ZXMgc3RheSBvdXQgb2YgdGhlIHNvdXJjZSB0cmVlLlxuJiM0MztURVNUX0tNT0RTX09VVERJUiA6PSAkKGlmICQoT1VUUFVUKSwkKE9VVFBVVCkvdGVzdF9rbW9kcyx0ZXN0X2ttb2RzKVxuIFxuICMgQ29tcGlsZSBidXQgbm90IHBhcnQgb2YgJiMzOTttYWtlIHJ1bl90ZXN0cyYjMzk7XG4gVEVTVF9HRU5fUFJPR1NfRVhURU5ERUQgPSBcXFxuQEAgLTE2Myw4ICYjNDM7MTY2LDggQEAgb3ZlcnJpZGUgZGVmaW5lIENMRUFOXG4gXHQkKFEpJChSTSkgLXIgJChURVNUX0dFTl9GSUxFUylcbiBcdCQoUSkkKFJNKSAtciAkKFRFU1RfS01PRFMpXG4gXHQkKFEpJChSTSkgLXIgJChFWFRSQV9DTEVBTilcbi1cdCQoUSkkKE1BS0UpIC1DIHRlc3Rfa21vZHMgY2xlYW5cbi1cdCQoUSkkKE1BS0UpIC1DIGxpYmFyZW5hIGNsZWFuXG4mIzQzO1x0JChRKSQoTUFLRSkgLUMgdGVzdF9rbW9kcyAkKGlmICQoT1VUUFVUKSxPVVRQVVQ9JChPVVRQVVQpL3Rlc3Rfa21vZHMpIGNsZWFuXG4mIzQzO1x0JChRKSQoTUFLRSkgLUMgbGliYXJlbmEgJChpZiAkKE9VVFBVVCksT1VUUFVUPSQoT1VUUFVUKS9saWJhcmVuYSkgY2xlYW5cbiBcdCQoUSkkKE1BS0UpIGRvY3MtY2xlYW5cbiBlbmRlZlxuIFxuQEAgLTMwMSwxNyAmIzQzOzMwNCwxOCBAQCAkKE9VVFBVVCkvc2lnbi1maWxlOiAuLi8uLi8uLi8uLi9zY3JpcHRzL3NpZ24tZmlsZS5jXG4gIyBzdXBwb3J0IHRoYXQgZm9yIHJlZ3VsYXIgcnVsZXMuIEhvd2V2ZXIsIHBhdHRlcm4gbWF0Y2hpbmcgcnVsZXMgYXJlIGltcGxpY2l0bHlcbiAjIHRyZWF0ZWQgYXMgZ3JvdXBlZCBldmVuIHdpdGggb2xkZXIgdmVyc2lvbnMgb2YgbWFrZSwgc28gYXMgYSB3b3JrYXJvdW5kLCB0aGVcbiAjIHN1YnN0KCkgdHVybnMgdGhlIHJ1bGUgaW50byBhIHBhdHRlcm4gbWF0Y2hpbmcgcnVsZVxuLSQoYWRkcHJlZml4IHRlc3Rfa21vZHMvLCQoc3Vic3QgLmtvLCVrbywkKFRFU1RfS01PRFMpKSk6ICQoVk1MSU5VWF9CVEYpICQoUkVTT0xWRV9CVEZJRFMpICQod2lsZGNhcmQgdGVzdF9rbW9kcy9NYWtlZmlsZSB0ZXN0X2ttb2RzLyouW2NoXSlcbi1cdCQoUSkkKFJNKSB0ZXN0X2ttb2RzLyoua28gdGVzdF9rbW9kcy8qLm1vZC5vICMgZm9yY2UgcmUtY29tcGlsYXRpb25cbiYjNDM7JChhZGRwcmVmaXggJChURVNUX0tNT0RTX09VVERJUikvLCQoc3Vic3QgLmtvLCVrbywkKFRFU1RfS01PRFMpKSk6ICQoVk1MSU5VWF9CVEYpICQoUkVTT0xWRV9CVEZJRFMpICQod2lsZGNhcmQgdGVzdF9rbW9kcy9NYWtlZmlsZSB0ZXN0X2ttb2RzLyouW2NoXSlcbiYjNDM7XHQkKFEpJChSTSkgJChURVNUX0tNT0RTX09VVERJUikvKi5rbyAkKFRFU1RfS01PRFNfT1VURElSKS8qLm1vZC5vICMgZm9yY2UgcmUtY29tcGlsYXRpb25cbiBcdCQoUSkkKE1BS0UpICQoc3VibWFrZV9leHRyYXMpIC1DIHRlc3Rfa21vZHNcdFx0XHRcdFxcXG4gXHRcdCQoaWYgJChPKSxPPSQoYWJzcGF0aCAkKE8pKSlcdFx0XHRcdFx0XFxcbiBcdFx0JChpZiAkKEtCVUlMRF9PVVRQVVQpLEtCVUlMRF9PVVRQVVQ9JChhYnNwYXRoICQoS0JVSUxEX09VVFBVVCkpKVxcXG4mIzQzO1x0XHQkKGlmICQoT1VUUFVUKSxPVVRQVVQ9JChPVVRQVVQpL3Rlc3Rfa21vZHMpXHRcdFx0XFxcbiBcdFx0UkVTT0xWRV9CVEZJRFM9JChSRVNPTFZFX0JURklEUylcdFx0XHRcdFxcXG4gXHRcdEVYVFJBX0NGTEFHUz0mIzM5OyYjMzk7IEVYVFJBX0xERkxBR1M9JiMzOTsmIzM5O1xuIFxuLSQoVEVTVF9LTU9EX1RBUkdFVFMpOiAkKGFkZHByZWZpeCB0ZXN0X2ttb2RzLywkKFRFU1RfS01PRFMpKVxuJiM0MzskKFRFU1RfS01PRF9UQVJHRVRTKTogJChhZGRwcmVmaXggJChURVNUX0tNT0RTX09VVERJUikvLCQoVEVTVF9LTU9EUykpXG4gXHQkKGNhbGwgbXNnLE1PRCwsJEApXG4tXHQkKFEpJChpZiAkKFBFUk1JU1NJVkUpLGlmIFsgLWYgdGVzdF9rbW9kcy8kKEBGKSBdOyB0aGVuICljcCB0ZXN0X2ttb2RzLyQoQEYpICRAJChpZiAkKFBFUk1JU1NJVkUpLDsgZmkpXG4mIzQzO1x0JChRKSQoaWYgJChQRVJNSVNTSVZFKSxpZiBbIC1mICQoVEVTVF9LTU9EU19PVVRESVIpLyQoQEYpIF07IHRoZW4gKWNwICQoVEVTVF9LTU9EU19PVVRESVIpLyQoQEYpICRAJChpZiAkKFBFUk1JU1NJVkUpLDsgZmkpXG4gXG4gXG4gREVGQVVMVF9CUEZUT09MIDo9ICQoSE9TVF9TQ1JBVENIX0RJUikvc2Jpbi9icGZ0b29sXG5AQCAtNTgwLDcgJiM0Mzs1ODQsNyBAQCBUUlVOTkVSX0VYVFJBX09CSlMgOj0gJCQocGF0c3Vic3QgJS5jLCQkKFRSVU5ORVJfT1VUUFVUKS8lLm8sXHRcdFxcXG4gVFJVTk5FUl9MSUJfT0JKUyA6PSAkJChwYXRzdWJzdCAlLmMsJCQoVFJVTk5FUl9PVVRQVVQpLyUubyxcdFx0XFxcbiBcdFx0XHRcdCAkJChmaWx0ZXIgJS5jLCQoVFJVTk5FUl9MSUJfU09VUkNFUykpKVxuIFRSVU5ORVJfRVhUUkFfSERSUyA6PSAkJChmaWx0ZXIgJS5oLCQoVFJVTk5FUl9FWFRSQV9TT1VSQ0VTKSlcbi1UUlVOTkVSX1RFU1RTX0hEUiA6PSAkKFRSVU5ORVJfVEVTVFNfRElSKS90ZXN0cy5oXG4mIzQzO1RSVU5ORVJfVEVTVFNfSERSIDo9ICQoT1VUUFVUKS8kKFRSVU5ORVJfVEVTVFNfRElSKS90ZXN0cy5oXG4gVFJVTk5FUl9CUEZfU1JDUyA6PSAkJChub3RkaXIgJCQod2lsZGNhcmQgJChUUlVOTkVSX0JQRl9QUk9HU19ESVIpLyouYykpXG4gVFJVTk5FUl9CUEZfT0JKUyA6PSAkJChwYXRzdWJzdCAlLmMsJCQoVFJVTk5FUl9PVVRQVVQpLyUuYnBmLm8sICQkKFRSVU5ORVJfQlBGX1NSQ1MpKVxuIFRSVU5ORVJfQlBGX1NLRUxTIDo9ICQkKHBhdHN1YnN0ICUuYywkJChUUlVOTkVSX09VVFBVVCkvJS5za2VsLmgsXHRcXFxuQEAgLTcyMCw5ICYjNDM7NzI0LDkgQEAgZW5kaWZcbiAjIGVuc3VyZSB3ZSBzZXQgdXAgdGVzdHMuaCBoZWFkZXIgZ2VuZXJhdGlvbiBydWxlIGp1c3Qgb25jZVxuIGlmZXEgKCQoJChUUlVOTkVSX1RFU1RTX0RJUiktdGVzdHMtaGRyKSwpXG4gJChUUlVOTkVSX1RFU1RTX0RJUiktdGVzdHMtaGRyIDo9IHlcbi0kKFRSVU5ORVJfVEVTVFNfSERSKTogJChUUlVOTkVSX1RFU1RTX0RJUikvKi5jXG4mIzQzOyQoVFJVTk5FUl9URVNUU19IRFIpOiAkKFRSVU5ORVJfVEVTVFNfRElSKS8qLmMgfCAkKFRSVU5ORVJfT1VUUFVUKVxuIFx0JCQoY2FsbCBtc2csVEVTVC1IRFIsJChUUlVOTkVSX0JJTkFSWSksJCRAKVxuLVx0JCQoc2hlbGwgKGVjaG8gJiMzOTsvKiBHZW5lcmF0ZWQgaGVhZGVyLCBkbyBub3QgZWRpdCAqLyYjMzk7O1x0XHRcdFx0XHRcXFxuJiM0MztcdCQkKHNoZWxsIG1rZGlyIC1wICQkKGRpciAkJEApIFx1MDAyNlx1MDAyNiAoZWNobyAmIzM5Oy8qIEdlbmVyYXRlZCBoZWFkZXIsIGRvIG5vdCBlZGl0ICovJiMzOTs7XHRcdFx0XFxcbiBcdFx0ICBzZWQgLW4gLUUgJiMzOTtzL152b2lkIChzZXJpYWxfKT90ZXN0XyhbYS16QS1aMC05X10mIzQzOylcXCgodm9pZCk/XFwpLiovREVGSU5FX1RFU1QoXFwyKS9wJiMzOTtcdFxcXG4gXHRcdFx0JChUUlVOTkVSX1RFU1RTX0RJUikvKi5jIHwgc29ydCA7XHRcXFxuIFx0XHQgKSBcdTAwM2UgJCRAKVxuQEAgLTgwMiw3ICYjNDM7ODA2LDcgQEAgJChPVVRQVVQpLyQoVFJVTk5FUl9CSU5BUlkpOiAkKGlmICQoZmlsdGVyIHRlc3RfcHJvZ3MlLCQxKSwkKGlmICQoUEVSTUlTU0lWRSksJCRcbiBlbmRlZlxuIFxuIFZFUklGWV9TSUdfU0VUVVAgOj0gJChDVVJESVIpL3ZlcmlmeV9zaWdfc2V0dXAuc2hcbi1WRVJJRllfU0lHX0hEUiA6PSB2ZXJpZmljYXRpb25fY2VydC5oXG4mIzQzO1ZFUklGWV9TSUdfSERSIDo9ICQoT1VUUFVUKS92ZXJpZmljYXRpb25fY2VydC5oXG4gVkVSSUZJQ0FUSU9OX0NFUlQgICA6PSAkKEJVSUxEX0RJUikvc2lnbmluZ19rZXkuZGVyXG4gUFJJVkFURV9LRVkgOj0gJChCVUlMRF9ESVIpL3NpZ25pbmdfa2V5LnBlbVxuIFxuQEAgLTgyNiw3ICYjNDM7ODMwLDggQEAgTElCQVJFTkFfTUFLRV9BUkdTID0gXFxcbiBcdFx0Q0xBTkc9XCYjMzQ7JChDTEFORylcJiMzNDsgXFxcbiBcdFx0QlBGX0NGTEFHUz1cJiMzNDskKEJQRl9DRkxBR1MpICQoQ0xBTkdfQ0ZMQUdTKVwmIzM0OyBcXFxuIFx0XHRCUEZfVEFSR0VUX0VORElBTj1cJiMzNDskKEJQRl9UQVJHRVRfRU5ESUFOKVwmIzM0OyBcXFxuLVx0XHRRPVwmIzM0OyQoUSlcJiMzNDtcbiYjNDM7XHRcdFE9XCYjMzQ7JChRKVwmIzM0OyBcXFxuJiM0MztcdFx0T1VUUFVUPVwmIzM0OyQoT1VUUFVUKS9saWJhcmVuYVwmIzM0O1xuIFxuIExJQkFSRU5BX0JQRl9ERVBTIDo9ICQod2lsZGNhcmQgbGliYXJlbmEvTWFrZWZpbGVcdFx0XFxcbiBcdFx0XHRcdCBsaWJhcmVuYS9pbmNsdWRlLypcdFx0XFxcbkBAIC04MzUsMTcgJiM0Mzs4NDAsMTcgQEAgTElCQVJFTkFfQlBGX0RFUFMgOj0gJCh3aWxkY2FyZCBsaWJhcmVuYS9NYWtlZmlsZVx0XHRcXFxuIFx0XHRcdFx0IGxpYmFyZW5hL3NlbGZ0ZXN0cy8qXHRcdFxcXG4gXHRcdFx0XHQgbGliYXJlbmEvKi5icGYubylcbiBcbi1MSUJBUkVOQV9TS0VMIDo9IGxpYmFyZW5hL2xpYmFyZW5hLnNrZWwuaFxuJiM0MztMSUJBUkVOQV9TS0VMIDo9ICQoT1VUUFVUKS9saWJhcmVuYS9saWJhcmVuYS5za2VsLmhcbiBcbiAkKExJQkFSRU5BX1NLRUwpOiAkKElOQ0xVREVfRElSKS92bWxpbnV4LmggJChCUEZPQkopICQoTElCQVJFTkFfQlBGX0RFUFMpXG4tXHQmIzQzOyQoTUFLRSkgLUMgbGliYXJlbmEgbGliYXJlbmEuc2tlbC5oICQoTElCQVJFTkFfTUFLRV9BUkdTKVxuJiM0MztcdCYjNDM7JChNQUtFKSAtQyBsaWJhcmVuYSAkKExJQkFSRU5BX1NLRUwpICQoTElCQVJFTkFfTUFLRV9BUkdTKVxuIFxuIGlmbmVxICgkKENMQU5HX0hBU19BUkVOQV9BU0FOKSwpXG4tTElCQVJFTkFfQVNBTl9TS0VMIDo9IGxpYmFyZW5hL2xpYmFyZW5hX2FzYW4uc2tlbC5oXG4mIzQzO0xJQkFSRU5BX0FTQU5fU0tFTCA6PSAkKE9VVFBVVCkvbGliYXJlbmEvbGliYXJlbmFfYXNhbi5za2VsLmhcbiBDRkxBR1MgJiM0Mzs9IC1ESEFTX0JQRl9BUkVOQV9BU0FOXG4gXG4gJChMSUJBUkVOQV9BU0FOX1NLRUwpOiAkKElOQ0xVREVfRElSKS92bWxpbnV4LmggJChCUEZPQkopICQoTElCQVJFTkFfQlBGX0RFUFMpXG4tXHQmIzQzOyQoTUFLRSkgLUMgbGliYXJlbmEgbGliYXJlbmFfYXNhbi5za2VsLmggJChMSUJBUkVOQV9NQUtFX0FSR1MpXG4mIzQzO1x0JiM0MzskKE1BS0UpIC1DIGxpYmFyZW5hICQoTElCQVJFTkFfQVNBTl9TS0VMKSAkKExJQkFSRU5BX01BS0VfQVJHUylcbiBlbmRpZlxuIFxuICMgRGVmaW5lIHRlc3RfcHJvZ3MgdGVzdCBydW5uZXIuXG5AQCAtOTIzLDE0ICYjNDM7OTI4LDE0IEBAICQoZXZhbCAkKGNhbGwgREVGSU5FX1RFU1RfUlVOTkVSLHRlc3RfbWFwcykpXG4gIyBJdCBpcyBtdWNoIHNpbXBsZXIgdGhhbiB0ZXN0X21hcHMvdGVzdF9wcm9ncyBhbmQgc3VmZmljaWVudGx5IGRpZmZlcmVudCBmcm9tXG4gIyB0aGVtIChlLmcuLCB0ZXN0LmggaXMgdXNpbmcgY29tcGxldGVseSBwYXR0ZXJuKSwgdGhhdCBpdCYjMzk7cyB3b3J0aCBqdXN0XG4gIyBleHBsaWNpdGx5IGRlZmluaW5nIGFsbCB0aGUgcnVsZXMgZXhwbGljaXRseS5cbi12ZXJpZmllci90ZXN0cy5oOiB2ZXJpZmllci8qLmNcbi1cdCQoc2hlbGwgKCBjZCB2ZXJpZmllci87IFxcXG4mIzQzOyQoT1VUUFVUKS92ZXJpZmllci90ZXN0cy5oOiB2ZXJpZmllci8qLmMgfCAkKE9VVFBVVClcbiYjNDM7XHQkKHNoZWxsIG1rZGlyIC1wICQoT1VUUFVUKS92ZXJpZmllciBcdTAwMjZcdTAwMjYgKCBcXFxuIFx0XHQgIGVjaG8gJiMzOTsvKiBHZW5lcmF0ZWQgaGVhZGVyLCBkbyBub3QgZWRpdCAqLyYjMzk7OyBcXFxuIFx0XHQgIGVjaG8gJiMzOTsjaWZkZWYgRklMTF9BUlJBWSYjMzk7OyBcXFxuLVx0XHQgIGxzICouYyAyXHUwMDNlIC9kZXYvbnVsbCB8IHNlZCAtZSAmIzM5O3NAXFwoLipcXClAI2luY2x1ZGUgXFxcJiMzNDtcXDFcXFwmIzM0O0AmIzM5OzsgXFxcbiYjNDM7XHRcdCAgbHMgdmVyaWZpZXIvKi5jIDJcdTAwM2UgL2Rldi9udWxsIHwgc2VkIC1lICYjMzk7c0BcXCguKlxcKUAjaW5jbHVkZSBcJiMzNDskKENVUkRJUikvXFwxXCYjMzQ7QCYjMzk7OyBcXFxuIFx0XHQgIGVjaG8gJiMzOTsjZW5kaWYmIzM5OyBcXFxuLVx0XHQpIFx1MDAzZSB2ZXJpZmllci90ZXN0cy5oKVxuLSQoT1VUUFVUKS90ZXN0X3ZlcmlmaWVyOiB0ZXN0X3ZlcmlmaWVyLmMgdmVyaWZpZXIvdGVzdHMuaCAkKEJQRk9CSikgfCAkKE9VVFBVVClcbiYjNDM7XHRcdCkgXHUwMDNlICQoT1VUUFVUKS92ZXJpZmllci90ZXN0cy5oKVxuJiM0MzskKE9VVFBVVCkvdGVzdF92ZXJpZmllcjogdGVzdF92ZXJpZmllci5jICQoT1VUUFVUKS92ZXJpZmllci90ZXN0cy5oICQoQlBGT0JKKSB8ICQoT1VUUFVUKVxuIFx0JChjYWxsIG1zZyxCSU5BUlksLCRAKVxuIFx0JChRKSQoQ0MpICQoQ0ZMQUdTKSAkKGZpbHRlciAlLmEgJS5vICUuYywkXikgJChMRExJQlMpIC1vICRAXG4gXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2xpYmFyZW5hL01ha2VmaWxlIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2xpYmFyZW5hL01ha2VmaWxlXG5pbmRleCA1ZTJhYjUxNDgwNWU0Li4xOTVkNWY4MzMxODZhIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2xpYmFyZW5hL01ha2VmaWxlXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvbGliYXJlbmEvTWFrZWZpbGVcbkBAIC0yNywxMCAmIzQzOzI3LDE0IEBAIEJQRkRJUj0kKGFic3BhdGggJChMSUJBUkVOQSkvLi4pXG4gSU5DTFVERV9ESVIgPz0gJChCUEZESVIpL3Rvb2xzL2luY2x1ZGVcbiBMSUJCUEZfSU5DTFVERSA/PSAkKElOQ0xVREVfRElSKVxuIFxuJiM0MzsjIEJ1aWxkIG91dHB1dCBkaXJlY3Rvcnk7IGRlZmF1bHRzIHRvIGluLXRyZWUgZm9yIHN0YW5kYWxvbmUgYnVpbGRzLlxuJiM0MztPVVRQVVQgPz0gLlxuJiM0MzskKHNoZWxsIG1rZGlyIC1wICQoT1VUUFVUKSlcbiYjNDM7XG4gIyBTY2FuIHNyYy8gYW5kIHNlbGZ0ZXN0cy8gdG8gZ2VuZXJhdGUgdGhlIGZpbmFsIGJpbmFyaWVzXG4gTElCQVJFTkFfU09VUkNFUyA9ICQod2lsZGNhcmQgJChMSUJBUkVOQSkvc3JjLyouYnBmLmMpICQod2lsZGNhcmQgJChMSUJBUkVOQSkvc2VsZnRlc3RzLyouYnBmLmMpXG4tTElCQVJFTkFfT0JKRUNUUyA9ICQobm90ZGlyICQoTElCQVJFTkFfU09VUkNFUzouYnBmLmM9LmJwZi5vKSlcbi1MSUJBUkVOQV9PQkpFQ1RTX0FTQU4gPSAkKG5vdGRpciAkKExJQkFSRU5BX1NPVVJDRVM6LmJwZi5jPV9hc2FuLmJwZi5vKSlcbiYjNDM7TElCQVJFTkFfT0JKRUNUUyA9ICQoYWRkcHJlZml4ICQoT1VUUFVUKS8sJChub3RkaXIgJChMSUJBUkVOQV9TT1VSQ0VTOi5icGYuYz0uYnBmLm8pKSlcbiYjNDM7TElCQVJFTkFfT0JKRUNUU19BU0FOID0gJChhZGRwcmVmaXggJChPVVRQVVQpLywkKG5vdGRpciAkKExJQkFSRU5BX1NPVVJDRVM6LmJwZi5jPV9hc2FuLmJwZi5vKSkpXG4gXG4gSU5DTFVERVMgPSAtSSQoTElCQVJFTkEpL2luY2x1ZGUgLUkkKEJQRkRJUilcbiBpZm5lcSAoJChJTkNMVURFX0RJUiksKVxuQEAgLTYxLDMyICYjNDM7NjUsMzIgQEAgQ0ZMQUdTICYjNDM7PSAkKElOQ0xVREVTKVxuIHZwYXRoICUuYnBmLmMgJChMSUJBUkVOQSkvc3JjICQoTElCQVJFTkEpL3NlbGZ0ZXN0c1xuIHZwYXRoICUuYyAkKExJQkFSRU5BKS9zcmMgJChMSUJBUkVOQSkvc2VsZnRlc3RzXG4gXG4tc2tlbGV0b25zOiBsaWJhcmVuYS5za2VsLmggbGliYXJlbmFfYXNhbi5za2VsLmhcbiYjNDM7c2tlbGV0b25zOiAkKE9VVFBVVCkvbGliYXJlbmEuc2tlbC5oICQoT1VUUFVUKS9saWJhcmVuYV9hc2FuLnNrZWwuaFxuIC5QSE9OWTogc2tlbGV0b25zXG4gXG4tbGliYXJlbmFfYXNhbi5za2VsLmg6IGxpYmFyZW5hX2FzYW4uYnBmLm9cbiYjNDM7JChPVVRQVVQpL2xpYmFyZW5hX2FzYW4uc2tlbC5oOiAkKE9VVFBVVCkvbGliYXJlbmFfYXNhbi5icGYub1xuIFx0JChjYWxsIG1zZyxHRU4tU0tFTCxsaWJhcmVuYSwkQClcbiBcdCQoUSkkKEJQRlRPT0wpIGdlbiBza2VsZXRvbiAkXHUwMDNjIG5hbWUgXCYjMzQ7bGliYXJlbmFfYXNhblwmIzM0OyBcdTAwM2UgJEBcbiBcbi1saWJhcmVuYS5za2VsLmg6IGxpYmFyZW5hLmJwZi5vXG4mIzQzOyQoT1VUUFVUKS9saWJhcmVuYS5za2VsLmg6ICQoT1VUUFVUKS9saWJhcmVuYS5icGYub1xuIFx0JChjYWxsIG1zZyxHRU4tU0tFTCxsaWJhcmVuYSwkQClcbiBcdCQoUSkkKEJQRlRPT0wpIGdlbiBza2VsZXRvbiAkXHUwMDNjIG5hbWUgXCYjMzQ7bGliYXJlbmFcJiMzNDsgXHUwMDNlICRAXG4gXG4tbGliYXJlbmFfYXNhbi5icGYubzogJChMSUJBUkVOQV9PQkpFQ1RTX0FTQU4pXG4mIzQzOyQoT1VUUFVUKS9saWJhcmVuYV9hc2FuLmJwZi5vOiAkKExJQkFSRU5BX09CSkVDVFNfQVNBTilcbiBcdCQoY2FsbCBtc2csR0VOLU9CSixsaWJhcmVuYSwkQClcbiBcdCQoUSkkKEJQRlRPT0wpIGdlbiBvYmplY3QgJEAgJF5cbiBcbi1saWJhcmVuYS5icGYubzogJChMSUJBUkVOQV9PQkpFQ1RTKVxuJiM0MzskKE9VVFBVVCkvbGliYXJlbmEuYnBmLm86ICQoTElCQVJFTkFfT0JKRUNUUylcbiBcdCQoY2FsbCBtc2csR0VOLU9CSixsaWJhcmVuYSwkQClcbiBcdCQoUSkkKEJQRlRPT0wpIGdlbiBvYmplY3QgJEAgJF5cbiBcbi0lX2FzYW4uYnBmLm86ICUuYnBmLmNcbiYjNDM7JChPVVRQVVQpLyVfYXNhbi5icGYubzogJS5icGYuY1xuIFx0JChjYWxsIG1zZyxDTE5HLUJQRixsaWJhcmVuYSwkQClcbiBcdCQoUSkkKENMQU5HKSAkKEJQRl9DRkxBR1MpICQoQVNBTl9GTEFHUykgLURCUEZfQVJFTkFfQVNBTiAkKEJQRl9UQVJHRVRfRU5ESUFOKSAtYyAkXHUwMDNjIC1vICRAXG4gXG4tJS5icGYubzogJS5icGYuY1xuJiM0MzskKE9VVFBVVCkvJS5icGYubzogJS5icGYuY1xuIFx0JChjYWxsIG1zZyxDTE5HLUJQRixsaWJhcmVuYSwkQClcbiBcdCQoUSkkKENMQU5HKSAkKEJQRl9DRkxBR1MpICQoQlBGX1RBUkdFVF9FTkRJQU4pIC1jICRcdTAwM2MgLW8gJEBcbiBcbiBjbGVhbjpcbi1cdCQoUSlybSAtZiAqLnNrZWwuaCAqLmJwZi5vICoubGlua2VkKi5vXG4mIzQzO1x0JChRKXJtIC1mICQoT1VUUFVUKS8qLnNrZWwuaCAkKE9VVFBVVCkvKi5icGYubyAkKE9VVFBVVCkvKi5saW5rZWQqLm9cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9rbW9kcy9NYWtlZmlsZSBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2ttb2RzL01ha2VmaWxlXG5pbmRleCAwMzFjNzQ1NGNlNjVmLi41M2U0N2U3MTVlYzQ0IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3Rfa21vZHMvTWFrZWZpbGVcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2ttb2RzL01ha2VmaWxlXG5AQCAtMzIsMTQgJiM0MzszMiwxNyBAQCBQRVJNSVNTSVZFIDo9ICQoZmlsdGVyIDAsJChCUEZfU1RSSUNUX0JVSUxEKSlcbiBhbGw6XG4gaWZlcSAoJChQRVJNSVNTSVZFKSwpXG4gXHQkKFEpJChNQUtFKSAtQyAkKEtESVIpICQoaWYgJChLTU9EX09fVkFMSUQpLE89JChLTU9EX09fVkFMSUQpIEtCVUlMRF9PVVRQVVQ9JChLTU9EX09fVkFMSUQpLEtCVUlMRF9PVVRQVVQ9KSBcXFxuJiM0MztcdFx0JChpZiAkKE9VVFBVVCksTU89JChPVVRQVVQpKSBcXFxuIFx0XHRNPSQoVEVTVF9LTU9EX0RJUikgbW9kdWxlc1xuIGVsc2UgaWZuZXEgKFwmIzM0OyQod2lsZGNhcmQgJChLRElSKSlcJiMzNDssIFwmIzM0O1wmIzM0OylcbiBcdCQoUSkkKE1BS0UpIC1DICQoS0RJUikgJChpZiAkKEtNT0RfT19WQUxJRCksTz0kKEtNT0RfT19WQUxJRCkgS0JVSUxEX09VVFBVVD0kKEtNT0RfT19WQUxJRCksS0JVSUxEX09VVFBVVD0pIFxcXG4mIzQzO1x0XHQkKGlmICQoT1VUUFVUKSxNTz0kKE9VVFBVVCkpIFxcXG4gXHRcdE09JChURVNUX0tNT0RfRElSKSBtb2R1bGVzXG4gZW5kaWZcbiBcbiBjbGVhbjpcbiBpZm5lcSAoXCYjMzQ7JCh3aWxkY2FyZCAkKEtESVIpKVwmIzM0OywgXCYjMzQ7XCYjMzQ7KVxuIFx0JChRKSQoTUFLRSkgLUMgJChLRElSKSAkKGlmICQoS01PRF9PX1ZBTElEKSxPPSQoS01PRF9PX1ZBTElEKSBLQlVJTERfT1VUUFVUPSQoS01PRF9PX1ZBTElEKSxLQlVJTERfT1VUUFVUPSkgXFxcbiYjNDM7XHRcdCQoaWYgJChPVVRQVVQpLE1PPSQoT1VUUFVUKSkgXFxcbiBcdFx0TT0kKFRFU1RfS01PRF9ESVIpIGNsZWFuXG4gZW5kaWZcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwNDoxNDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBNYWtlZmlsZXMgZm9yIEJQRiBzZWxmdGVzdHMgdG8gZml4IG91dC1vZi10cmVlIGJ1aWxkcyAod2hlbiBPVVRQVVQgaXMgc2V0KS4gSXQgZG9lcyBub3QgY29udGFpbiBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgY29kZSwgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA3ZjQzODljMWE2MWYzYzY0OTk2MDg1YWY3MzdhMWVlOGJkMjk2ZTNhCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFRodSBKdWwgMzAgMDQ6MTQ6MzEgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvTWFrZWZpbGUgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvTWFrZWZpbGUKaW5kZXggYjY0MmVlNDg5ZWE2NC4uYjE1MGE2NmYzYzI1MSAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL01ha2VmaWxlCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9NYWtlZmlsZQpAQCAtMTM1LDYgJiM0MzsxMzUsOSBAQCBURVNUX1BST0dTX0VYVEVOREVEIDo9IFwKIFRFU1RfS01PRFMgOj0gYnBmX3Rlc3Rtb2Qua28gYnBmX3Rlc3Rfbm9fY2ZpLmtvIGJwZl90ZXN0X21vZG9yZGVyX3gua28gXAogCWJwZl90ZXN0X21vZG9yZGVyX3kua28gYnBmX3Rlc3RfcnFzcGlubG9jay5rbwogVEVTVF9LTU9EX1RBUkdFVFMgPSAkKGFkZHByZWZpeCAkKE9VVFBVVCkvLCQoVEVTVF9LTU9EUykpCiYjNDM7IyBCdWlsZCBkaXJlY3RvcnkgZm9yIGtlcm5lbCBtb2R1bGVzOiByb3V0ZWQgdG8gJChPVVRQVVQpL3Rlc3Rfa21vZHMgd2hlbgomIzQzOyMgT1VUUFVUIGlzIHNldCBzbyB0aGF0IGtidWlsZCBpbnRlcm1lZGlhdGVzIHN0YXkgb3V0IG9mIHRoZSBzb3VyY2UgdHJlZS4KJiM0MztURVNUX0tNT0RTX09VVERJUiA6PSAkKGlmICQoT1VUUFVUKSwkKE9VVFBVVCkvdGVzdF9rbW9kcyx0ZXN0X2ttb2RzKQogCiAjIENvbXBpbGUgYnV0IG5vdCBwYXJ0IG9mICYjMzk7bWFrZSBydW5fdGVzdHMmIzM5OwogVEVTVF9HRU5fUFJPR1NfRVhURU5ERUQgPSBcCkBAIC0xNjMsOCAmIzQzOzE2Niw4IEBAIG92ZXJyaWRlIGRlZmluZSBDTEVBTgogCSQoUSkkKFJNKSAtciAkKFRFU1RfR0VOX0ZJTEVTKQogCSQoUSkkKFJNKSAtciAkKFRFU1RfS01PRFMpCiAJJChRKSQoUk0pIC1yICQoRVhUUkFfQ0xFQU4pCi0JJChRKSQoTUFLRSkgLUMgdGVzdF9rbW9kcyBjbGVhbgotCSQoUSkkKE1BS0UpIC1DIGxpYmFyZW5hIGNsZWFuCiYjNDM7CSQoUSkkKE1BS0UpIC1DIHRlc3Rfa21vZHMgJChpZiAkKE9VVFBVVCksT1VUUFVUPSQoT1VUUFVUKS90ZXN0X2ttb2RzKSBjbGVhbgomIzQzOwkkKFEpJChNQUtFKSAtQyBsaWJhcmVuYSAkKGlmICQoT1VUUFVUKSxPVVRQVVQ9JChPVVRQVVQpL2xpYmFyZW5hKSBjbGVhbgogCSQoUSkkKE1BS0UpIGRvY3MtY2xlYW4KIGVuZGVmCiAKQEAgLTMwMSwxNyAmIzQzOzMwNCwxOCBAQCAkKE9VVFBVVCkvc2lnbi1maWxlOiAuLi8uLi8uLi8uLi9zY3JpcHRzL3NpZ24tZmlsZS5jCiAjIHN1cHBvcnQgdGhhdCBmb3IgcmVndWxhciBydWxlcy4gSG93ZXZlciwgcGF0dGVybiBtYXRjaGluZyBydWxlcyBhcmUgaW1wbGljaXRseQogIyB0cmVhdGVkIGFzIGdyb3VwZWQgZXZlbiB3aXRoIG9sZGVyIHZlcnNpb25zIG9mIG1ha2UsIHNvIGFzIGEgd29ya2Fyb3VuZCwgdGhlCiAjIHN1YnN0KCkgdHVybnMgdGhlIHJ1bGUgaW50byBhIHBhdHRlcm4gbWF0Y2hpbmcgcnVsZQotJChhZGRwcmVmaXggdGVzdF9rbW9kcy8sJChzdWJzdCAua28sJWtvLCQoVEVTVF9LTU9EUykpKTogJChWTUxJTlVYX0JURikgJChSRVNPTFZFX0JURklEUykgJCh3aWxkY2FyZCB0ZXN0X2ttb2RzL01ha2VmaWxlIHRlc3Rfa21vZHMvKi5bY2hdKQotCSQoUSkkKFJNKSB0ZXN0X2ttb2RzLyoua28gdGVzdF9rbW9kcy8qLm1vZC5vICMgZm9yY2UgcmUtY29tcGlsYXRpb24KJiM0MzskKGFkZHByZWZpeCAkKFRFU1RfS01PRFNfT1VURElSKS8sJChzdWJzdCAua28sJWtvLCQoVEVTVF9LTU9EUykpKTogJChWTUxJTlVYX0JURikgJChSRVNPTFZFX0JURklEUykgJCh3aWxkY2FyZCB0ZXN0X2ttb2RzL01ha2VmaWxlIHRlc3Rfa21vZHMvKi5bY2hdKQomIzQzOwkkKFEpJChSTSkgJChURVNUX0tNT0RTX09VVERJUikvKi5rbyAkKFRFU1RfS01PRFNfT1VURElSKS8qLm1vZC5vICMgZm9yY2UgcmUtY29tcGlsYXRpb24KIAkkKFEpJChNQUtFKSAkKHN1Ym1ha2VfZXh0cmFzKSAtQyB0ZXN0X2ttb2RzCQkJCVwKIAkJJChpZiAkKE8pLE89JChhYnNwYXRoICQoTykpKQkJCQkJXAogCQkkKGlmICQoS0JVSUxEX09VVFBVVCksS0JVSUxEX09VVFBVVD0kKGFic3BhdGggJChLQlVJTERfT1VUUFVUKSkpXAomIzQzOwkJJChpZiAkKE9VVFBVVCksT1VUUFVUPSQoT1VUUFVUKS90ZXN0X2ttb2RzKQkJCVwKIAkJUkVTT0xWRV9CVEZJRFM9JChSRVNPTFZFX0JURklEUykJCQkJXAogCQlFWFRSQV9DRkxBR1M9JiMzOTsmIzM5OyBFWFRSQV9MREZMQUdTPSYjMzk7JiMzOTsKIAotJChURVNUX0tNT0RfVEFSR0VUUyk6ICQoYWRkcHJlZml4IHRlc3Rfa21vZHMvLCQoVEVTVF9LTU9EUykpCiYjNDM7JChURVNUX0tNT0RfVEFSR0VUUyk6ICQoYWRkcHJlZml4ICQoVEVTVF9LTU9EU19PVVRESVIpLywkKFRFU1RfS01PRFMpKQogCSQoY2FsbCBtc2csTU9ELCwkQCkKLQkkKFEpJChpZiAkKFBFUk1JU1NJVkUpLGlmIFsgLWYgdGVzdF9rbW9kcy8kKEBGKSBdOyB0aGVuICljcCB0ZXN0X2ttb2RzLyQoQEYpICRAJChpZiAkKFBFUk1JU1NJVkUpLDsgZmkpCiYjNDM7CSQoUSkkKGlmICQoUEVSTUlTU0lWRSksaWYgWyAtZiAkKFRFU1RfS01PRFNfT1VURElSKS8kKEBGKSBdOyB0aGVuICljcCAkKFRFU1RfS01PRFNfT1VURElSKS8kKEBGKSAkQCQoaWYgJChQRVJNSVNTSVZFKSw7IGZpKQogCiAKIERFRkFVTFRfQlBGVE9PTCA6PSAkKEhPU1RfU0NSQVRDSF9ESVIpL3NiaW4vYnBmdG9vbApAQCAtNTgwLDcgJiM0Mzs1ODQsNyBAQCBUUlVOTkVSX0VYVFJBX09CSlMgOj0gJCQocGF0c3Vic3QgJS5jLCQkKFRSVU5ORVJfT1VUUFVUKS8lLm8sCQlcCiBUUlVOTkVSX0xJQl9PQkpTIDo9ICQkKHBhdHN1YnN0ICUuYywkJChUUlVOTkVSX09VVFBVVCkvJS5vLAkJXAogCQkJCSAkJChmaWx0ZXIgJS5jLCQoVFJVTk5FUl9MSUJfU09VUkNFUykpKQogVFJVTk5FUl9FWFRSQV9IRFJTIDo9ICQkKGZpbHRlciAlLmgsJChUUlVOTkVSX0VYVFJBX1NPVVJDRVMpKQotVFJVTk5FUl9URVNUU19IRFIgOj0gJChUUlVOTkVSX1RFU1RTX0RJUikvdGVzdHMuaAomIzQzO1RSVU5ORVJfVEVTVFNfSERSIDo9ICQoT1VUUFVUKS8kKFRSVU5ORVJfVEVTVFNfRElSKS90ZXN0cy5oCiBUUlVOTkVSX0JQRl9TUkNTIDo9ICQkKG5vdGRpciAkJCh3aWxkY2FyZCAkKFRSVU5ORVJfQlBGX1BST0dTX0RJUikvKi5jKSkKIFRSVU5ORVJfQlBGX09CSlMgOj0gJCQocGF0c3Vic3QgJS5jLCQkKFRSVU5ORVJfT1VUUFVUKS8lLmJwZi5vLCAkJChUUlVOTkVSX0JQRl9TUkNTKSkKIFRSVU5ORVJfQlBGX1NLRUxTIDo9ICQkKHBhdHN1YnN0ICUuYywkJChUUlVOTkVSX09VVFBVVCkvJS5za2VsLmgsCVwKQEAgLTcyMCw5ICYjNDM7NzI0LDkgQEAgZW5kaWYKICMgZW5zdXJlIHdlIHNldCB1cCB0ZXN0cy5oIGhlYWRlciBnZW5lcmF0aW9uIHJ1bGUganVzdCBvbmNlCiBpZmVxICgkKCQoVFJVTk5FUl9URVNUU19ESVIpLXRlc3RzLWhkciksKQogJChUUlVOTkVSX1RFU1RTX0RJUiktdGVzdHMtaGRyIDo9IHkKLSQoVFJVTk5FUl9URVNUU19IRFIpOiAkKFRSVU5ORVJfVEVTVFNfRElSKS8qLmMKJiM0MzskKFRSVU5ORVJfVEVTVFNfSERSKTogJChUUlVOTkVSX1RFU1RTX0RJUikvKi5jIHwgJChUUlVOTkVSX09VVFBVVCkKIAkkJChjYWxsIG1zZyxURVNULUhEUiwkKFRSVU5ORVJfQklOQVJZKSwkJEApCi0JJCQoc2hlbGwgKGVjaG8gJiMzOTsvKiBHZW5lcmF0ZWQgaGVhZGVyLCBkbyBub3QgZWRpdCAqLyYjMzk7OwkJCQkJXAomIzQzOwkkJChzaGVsbCBta2RpciAtcCAkJChkaXIgJCRAKSAmYW1wOyZhbXA7IChlY2hvICYjMzk7LyogR2VuZXJhdGVkIGhlYWRlciwgZG8gbm90IGVkaXQgKi8mIzM5OzsJCQlcCiAJCSAgc2VkIC1uIC1FICYjMzk7cy9edm9pZCAoc2VyaWFsXyk/dGVzdF8oW2EtekEtWjAtOV9dJiM0MzspXCgodm9pZCk/XCkuKi9ERUZJTkVfVEVTVChcMikvcCYjMzk7CVwKIAkJCSQoVFJVTk5FUl9URVNUU19ESVIpLyouYyB8IHNvcnQgOwlcCiAJCSApICZndDsgJCRAKQpAQCAtODAyLDcgJiM0Mzs4MDYsNyBAQCAkKE9VVFBVVCkvJChUUlVOTkVSX0JJTkFSWSk6ICQoaWYgJChmaWx0ZXIgdGVzdF9wcm9ncyUsJDEpLCQoaWYgJChQRVJNSVNTSVZFKSwkJAogZW5kZWYKIAogVkVSSUZZX1NJR19TRVRVUCA6PSAkKENVUkRJUikvdmVyaWZ5X3NpZ19zZXR1cC5zaAotVkVSSUZZX1NJR19IRFIgOj0gdmVyaWZpY2F0aW9uX2NlcnQuaAomIzQzO1ZFUklGWV9TSUdfSERSIDo9ICQoT1VUUFVUKS92ZXJpZmljYXRpb25fY2VydC5oCiBWRVJJRklDQVRJT05fQ0VSVCAgIDo9ICQoQlVJTERfRElSKS9zaWduaW5nX2tleS5kZXIKIFBSSVZBVEVfS0VZIDo9ICQoQlVJTERfRElSKS9zaWduaW5nX2tleS5wZW0KIApAQCAtODI2LDcgJiM0Mzs4MzAsOCBAQCBMSUJBUkVOQV9NQUtFX0FSR1MgPSBcCiAJCUNMQU5HPSYjMzQ7JChDTEFORykmIzM0OyBcCiAJCUJQRl9DRkxBR1M9JiMzNDskKEJQRl9DRkxBR1MpICQoQ0xBTkdfQ0ZMQUdTKSYjMzQ7IFwKIAkJQlBGX1RBUkdFVF9FTkRJQU49JiMzNDskKEJQRl9UQVJHRVRfRU5ESUFOKSYjMzQ7IFwKLQkJUT0mIzM0OyQoUSkmIzM0OwomIzQzOwkJUT0mIzM0OyQoUSkmIzM0OyBcCiYjNDM7CQlPVVRQVVQ9JiMzNDskKE9VVFBVVCkvbGliYXJlbmEmIzM0OwogCiBMSUJBUkVOQV9CUEZfREVQUyA6PSAkKHdpbGRjYXJkIGxpYmFyZW5hL01ha2VmaWxlCQlcCiAJCQkJIGxpYmFyZW5hL2luY2x1ZGUvKgkJXApAQCAtODM1LDE3ICYjNDM7ODQwLDE3IEBAIExJQkFSRU5BX0JQRl9ERVBTIDo9ICQod2lsZGNhcmQgbGliYXJlbmEvTWFrZWZpbGUJCVwKIAkJCQkgbGliYXJlbmEvc2VsZnRlc3RzLyoJCVwKIAkJCQkgbGliYXJlbmEvKi5icGYubykKIAotTElCQVJFTkFfU0tFTCA6PSBsaWJhcmVuYS9saWJhcmVuYS5za2VsLmgKJiM0MztMSUJBUkVOQV9TS0VMIDo9ICQoT1VUUFVUKS9saWJhcmVuYS9saWJhcmVuYS5za2VsLmgKIAogJChMSUJBUkVOQV9TS0VMKTogJChJTkNMVURFX0RJUikvdm1saW51eC5oICQoQlBGT0JKKSAkKExJQkFSRU5BX0JQRl9ERVBTKQotCSYjNDM7JChNQUtFKSAtQyBsaWJhcmVuYSBsaWJhcmVuYS5za2VsLmggJChMSUJBUkVOQV9NQUtFX0FSR1MpCiYjNDM7CSYjNDM7JChNQUtFKSAtQyBsaWJhcmVuYSAkKExJQkFSRU5BX1NLRUwpICQoTElCQVJFTkFfTUFLRV9BUkdTKQogCiBpZm5lcSAoJChDTEFOR19IQVNfQVJFTkFfQVNBTiksKQotTElCQVJFTkFfQVNBTl9TS0VMIDo9IGxpYmFyZW5hL2xpYmFyZW5hX2FzYW4uc2tlbC5oCiYjNDM7TElCQVJFTkFfQVNBTl9TS0VMIDo9ICQoT1VUUFVUKS9saWJhcmVuYS9saWJhcmVuYV9hc2FuLnNrZWwuaAogQ0ZMQUdTICYjNDM7PSAtREhBU19CUEZfQVJFTkFfQVNBTgogCiAkKExJQkFSRU5BX0FTQU5fU0tFTCk6ICQoSU5DTFVERV9ESVIpL3ZtbGludXguaCAkKEJQRk9CSikgJChMSUJBUkVOQV9CUEZfREVQUykKLQkmIzQzOyQoTUFLRSkgLUMgbGliYXJlbmEgbGliYXJlbmFfYXNhbi5za2VsLmggJChMSUJBUkVOQV9NQUtFX0FSR1MpCiYjNDM7CSYjNDM7JChNQUtFKSAtQyBsaWJhcmVuYSAkKExJQkFSRU5BX0FTQU5fU0tFTCkgJChMSUJBUkVOQV9NQUtFX0FSR1MpCiBlbmRpZgogCiAjIERlZmluZSB0ZXN0X3Byb2dzIHRlc3QgcnVubmVyLgpAQCAtOTIzLDE0ICYjNDM7OTI4LDE0IEBAICQoZXZhbCAkKGNhbGwgREVGSU5FX1RFU1RfUlVOTkVSLHRlc3RfbWFwcykpCiAjIEl0IGlzIG11Y2ggc2ltcGxlciB0aGFuIHRlc3RfbWFwcy90ZXN0X3Byb2dzIGFuZCBzdWZmaWNpZW50bHkgZGlmZmVyZW50IGZyb20KICMgdGhlbSAoZS5nLiwgdGVzdC5oIGlzIHVzaW5nIGNvbXBsZXRlbHkgcGF0dGVybiksIHRoYXQgaXQmIzM5O3Mgd29ydGgganVzdAogIyBleHBsaWNpdGx5IGRlZmluaW5nIGFsbCB0aGUgcnVsZXMgZXhwbGljaXRseS4KLXZlcmlmaWVyL3Rlc3RzLmg6IHZlcmlmaWVyLyouYwotCSQoc2hlbGwgKCBjZCB2ZXJpZmllci87IFwKJiM0MzskKE9VVFBVVCkvdmVyaWZpZXIvdGVzdHMuaDogdmVyaWZpZXIvKi5jIHwgJChPVVRQVVQpCiYjNDM7CSQoc2hlbGwgbWtkaXIgLXAgJChPVVRQVVQpL3ZlcmlmaWVyICZhbXA7JmFtcDsgKCBcCiAJCSAgZWNobyAmIzM5Oy8qIEdlbmVyYXRlZCBoZWFkZXIsIGRvIG5vdCBlZGl0ICovJiMzOTs7IFwKIAkJICBlY2hvICYjMzk7I2lmZGVmIEZJTExfQVJSQVkmIzM5OzsgXAotCQkgIGxzICouYyAyJmd0OyAvZGV2L251bGwgfCBzZWQgLWUgJiMzOTtzQFwoLipcKUAjaW5jbHVkZSBcJiMzNDtcMVwmIzM0O0AmIzM5OzsgXAomIzQzOwkJICBscyB2ZXJpZmllci8qLmMgMiZndDsgL2Rldi9udWxsIHwgc2VkIC1lICYjMzk7c0BcKC4qXClAI2luY2x1ZGUgJiMzNDskKENVUkRJUikvXDEmIzM0O0AmIzM5OzsgXAogCQkgIGVjaG8gJiMzOTsjZW5kaWYmIzM5OyBcCi0JCSkgJmd0OyB2ZXJpZmllci90ZXN0cy5oKQotJChPVVRQVVQpL3Rlc3RfdmVyaWZpZXI6IHRlc3RfdmVyaWZpZXIuYyB2ZXJpZmllci90ZXN0cy5oICQoQlBGT0JKKSB8ICQoT1VUUFVUKQomIzQzOwkJKSAmZ3Q7ICQoT1VUUFVUKS92ZXJpZmllci90ZXN0cy5oKQomIzQzOyQoT1VUUFVUKS90ZXN0X3ZlcmlmaWVyOiB0ZXN0X3ZlcmlmaWVyLmMgJChPVVRQVVQpL3ZlcmlmaWVyL3Rlc3RzLmggJChCUEZPQkopIHwgJChPVVRQVVQpCiAJJChjYWxsIG1zZyxCSU5BUlksLCRAKQogCSQoUSkkKENDKSAkKENGTEFHUykgJChmaWx0ZXIgJS5hICUubyAlLmMsJF4pICQoTERMSUJTKSAtbyAkQAogCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvbGliYXJlbmEvTWFrZWZpbGUgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvbGliYXJlbmEvTWFrZWZpbGUKaW5kZXggNWUyYWI1MTQ4MDVlNC4uMTk1ZDVmODMzMTg2YSAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2xpYmFyZW5hL01ha2VmaWxlCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9saWJhcmVuYS9NYWtlZmlsZQpAQCAtMjcsMTAgJiM0MzsyNywxNCBAQCBCUEZESVI9JChhYnNwYXRoICQoTElCQVJFTkEpLy4uKQogSU5DTFVERV9ESVIgPz0gJChCUEZESVIpL3Rvb2xzL2luY2x1ZGUKIExJQkJQRl9JTkNMVURFID89ICQoSU5DTFVERV9ESVIpCiAKJiM0MzsjIEJ1aWxkIG91dHB1dCBkaXJlY3Rvcnk7IGRlZmF1bHRzIHRvIGluLXRyZWUgZm9yIHN0YW5kYWxvbmUgYnVpbGRzLgomIzQzO09VVFBVVCA/PSAuCiYjNDM7JChzaGVsbCBta2RpciAtcCAkKE9VVFBVVCkpCiYjNDM7CiAjIFNjYW4gc3JjLyBhbmQgc2VsZnRlc3RzLyB0byBnZW5lcmF0ZSB0aGUgZmluYWwgYmluYXJpZXMKIExJQkFSRU5BX1NPVVJDRVMgPSAkKHdpbGRjYXJkICQoTElCQVJFTkEpL3NyYy8qLmJwZi5jKSAkKHdpbGRjYXJkICQoTElCQVJFTkEpL3NlbGZ0ZXN0cy8qLmJwZi5jKQotTElCQVJFTkFfT0JKRUNUUyA9ICQobm90ZGlyICQoTElCQVJFTkFfU09VUkNFUzouYnBmLmM9LmJwZi5vKSkKLUxJQkFSRU5BX09CSkVDVFNfQVNBTiA9ICQobm90ZGlyICQoTElCQVJFTkFfU09VUkNFUzouYnBmLmM9X2FzYW4uYnBmLm8pKQomIzQzO0xJQkFSRU5BX09CSkVDVFMgPSAkKGFkZHByZWZpeCAkKE9VVFBVVCkvLCQobm90ZGlyICQoTElCQVJFTkFfU09VUkNFUzouYnBmLmM9LmJwZi5vKSkpCiYjNDM7TElCQVJFTkFfT0JKRUNUU19BU0FOID0gJChhZGRwcmVmaXggJChPVVRQVVQpLywkKG5vdGRpciAkKExJQkFSRU5BX1NPVVJDRVM6LmJwZi5jPV9hc2FuLmJwZi5vKSkpCiAKIElOQ0xVREVTID0gLUkkKExJQkFSRU5BKS9pbmNsdWRlIC1JJChCUEZESVIpCiBpZm5lcSAoJChJTkNMVURFX0RJUiksKQpAQCAtNjEsMzIgJiM0Mzs2NSwzMiBAQCBDRkxBR1MgJiM0Mzs9ICQoSU5DTFVERVMpCiB2cGF0aCAlLmJwZi5jICQoTElCQVJFTkEpL3NyYyAkKExJQkFSRU5BKS9zZWxmdGVzdHMKIHZwYXRoICUuYyAkKExJQkFSRU5BKS9zcmMgJChMSUJBUkVOQSkvc2VsZnRlc3RzCiAKLXNrZWxldG9uczogbGliYXJlbmEuc2tlbC5oIGxpYmFyZW5hX2FzYW4uc2tlbC5oCiYjNDM7c2tlbGV0b25zOiAkKE9VVFBVVCkvbGliYXJlbmEuc2tlbC5oICQoT1VUUFVUKS9saWJhcmVuYV9hc2FuLnNrZWwuaAogLlBIT05ZOiBza2VsZXRvbnMKIAotbGliYXJlbmFfYXNhbi5za2VsLmg6IGxpYmFyZW5hX2FzYW4uYnBmLm8KJiM0MzskKE9VVFBVVCkvbGliYXJlbmFfYXNhbi5za2VsLmg6ICQoT1VUUFVUKS9saWJhcmVuYV9hc2FuLmJwZi5vCiAJJChjYWxsIG1zZyxHRU4tU0tFTCxsaWJhcmVuYSwkQCkKIAkkKFEpJChCUEZUT09MKSBnZW4gc2tlbGV0b24gJCZsdDsgbmFtZSAmIzM0O2xpYmFyZW5hX2FzYW4mIzM0OyAmZ3Q7ICRACiAKLWxpYmFyZW5hLnNrZWwuaDogbGliYXJlbmEuYnBmLm8KJiM0MzskKE9VVFBVVCkvbGliYXJlbmEuc2tlbC5oOiAkKE9VVFBVVCkvbGliYXJlbmEuYnBmLm8KIAkkKGNhbGwgbXNnLEdFTi1TS0VMLGxpYmFyZW5hLCRAKQogCSQoUSkkKEJQRlRPT0wpIGdlbiBza2VsZXRvbiAkJmx0OyBuYW1lICYjMzQ7bGliYXJlbmEmIzM0OyAmZ3Q7ICRACiAKLWxpYmFyZW5hX2FzYW4uYnBmLm86ICQoTElCQVJFTkFfT0JKRUNUU19BU0FOKQomIzQzOyQoT1VUUFVUKS9saWJhcmVuYV9hc2FuLmJwZi5vOiAkKExJQkFSRU5BX09CSkVDVFNfQVNBTikKIAkkKGNhbGwgbXNnLEdFTi1PQkosbGliYXJlbmEsJEApCiAJJChRKSQoQlBGVE9PTCkgZ2VuIG9iamVjdCAkQCAkXgogCi1saWJhcmVuYS5icGYubzogJChMSUJBUkVOQV9PQkpFQ1RTKQomIzQzOyQoT1VUUFVUKS9saWJhcmVuYS5icGYubzogJChMSUJBUkVOQV9PQkpFQ1RTKQogCSQoY2FsbCBtc2csR0VOLU9CSixsaWJhcmVuYSwkQCkKIAkkKFEpJChCUEZUT09MKSBnZW4gb2JqZWN0ICRAICReCiAKLSVfYXNhbi5icGYubzogJS5icGYuYwomIzQzOyQoT1VUUFVUKS8lX2FzYW4uYnBmLm86ICUuYnBmLmMKIAkkKGNhbGwgbXNnLENMTkctQlBGLGxpYmFyZW5hLCRAKQogCSQoUSkkKENMQU5HKSAkKEJQRl9DRkxBR1MpICQoQVNBTl9GTEFHUykgLURCUEZfQVJFTkFfQVNBTiAkKEJQRl9UQVJHRVRfRU5ESUFOKSAtYyAkJmx0OyAtbyAkQAogCi0lLmJwZi5vOiAlLmJwZi5jCiYjNDM7JChPVVRQVVQpLyUuYnBmLm86ICUuYnBmLmMKIAkkKGNhbGwgbXNnLENMTkctQlBGLGxpYmFyZW5hLCRAKQogCSQoUSkkKENMQU5HKSAkKEJQRl9DRkxBR1MpICQoQlBGX1RBUkdFVF9FTkRJQU4pIC1jICQmbHQ7IC1vICRACiAKIGNsZWFuOgotCSQoUSlybSAtZiAqLnNrZWwuaCAqLmJwZi5vICoubGlua2VkKi5vCiYjNDM7CSQoUSlybSAtZiAkKE9VVFBVVCkvKi5za2VsLmggJChPVVRQVVQpLyouYnBmLm8gJChPVVRQVVQpLyoubGlua2VkKi5vCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9rbW9kcy9NYWtlZmlsZSBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2ttb2RzL01ha2VmaWxlCmluZGV4IDAzMWM3NDU0Y2U2NWYuLjUzZTQ3ZTcxNWVjNDQgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2ttb2RzL01ha2VmaWxlCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2ttb2RzL01ha2VmaWxlCkBAIC0zMiwxNCAmIzQzOzMyLDE3IEBAIFBFUk1JU1NJVkUgOj0gJChmaWx0ZXIgMCwkKEJQRl9TVFJJQ1RfQlVJTEQpKQogYWxsOgogaWZlcSAoJChQRVJNSVNTSVZFKSwpCiAJJChRKSQoTUFLRSkgLUMgJChLRElSKSAkKGlmICQoS01PRF9PX1ZBTElEKSxPPSQoS01PRF9PX1ZBTElEKSBLQlVJTERfT1VUUFVUPSQoS01PRF9PX1ZBTElEKSxLQlVJTERfT1VUUFVUPSkgXAomIzQzOwkJJChpZiAkKE9VVFBVVCksTU89JChPVVRQVVQpKSBcCiAJCU09JChURVNUX0tNT0RfRElSKSBtb2R1bGVzCiBlbHNlIGlmbmVxICgmIzM0OyQod2lsZGNhcmQgJChLRElSKSkmIzM0OywgJiMzNDsmIzM0OykKIAkkKFEpJChNQUtFKSAtQyAkKEtESVIpICQoaWYgJChLTU9EX09fVkFMSUQpLE89JChLTU9EX09fVkFMSUQpIEtCVUlMRF9PVVRQVVQ9JChLTU9EX09fVkFMSUQpLEtCVUlMRF9PVVRQVVQ9KSBcCiYjNDM7CQkkKGlmICQoT1VUUFVUKSxNTz0kKE9VVFBVVCkpIFwKIAkJTT0kKFRFU1RfS01PRF9ESVIpIG1vZHVsZXMKIGVuZGlmCiAKIGNsZWFuOgogaWZuZXEgKCYjMzQ7JCh3aWxkY2FyZCAkKEtESVIpKSYjMzQ7LCAmIzM0OyYjMzQ7KQogCSQoUSkkKE1BS0UpIC1DICQoS0RJUikgJChpZiAkKEtNT0RfT19WQUxJRCksTz0kKEtNT0RfT19WQUxJRCkgS0JVSUxEX09VVFBVVD0kKEtNT0RfT19WQUxJRCksS0JVSUxEX09VVFBVVD0pIFwKJiM0MzsJCSQoaWYgJChPVVRQVVQpLE1PPSQoT1VUUFVUKSkgXAogCQlNPSQoVEVTVF9LTU9EX0RJUikgY2xlYW4KIGVuZGlmCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMwIDA0OjE0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYwNzgKCQkJCQkJCW91dHB1dDogNzQKCQkJCQkJCXRob3VnaHRzOiAyNDEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqV29ydGhGdXp6aW5nPWZhbHNlOiBBIFF1aWNrIEFzc2Vzc21lbnQqKgoKT2theSwgaGVyZSYjMzk7cyB0aGUgZGVhbDogSSYjMzk7dmUgZ290IGEgcGF0Y2ggaW4gZnJvbnQgb2YgbWUgdGhhdCB0b3VjaGVzIHNvbWUgTWFrZWZpbGVzIHdpdGhpbiB0aGUgQlBGIHNlbGZ0ZXN0IGZyYW1ld29yay4gU3BlY2lmaWNhbGx5LCBpdCYjMzk7cyBtb2RpZnlpbmcgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9NYWtlZmlsZWAsIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvbGliYXJlbmEvTWFrZWZpbGVgLCBhbmQgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2ttb2RzL01ha2VmaWxlYC4gTXkgaW1tZWRpYXRlIGNvbmNlcm4sIGFzIGFsd2F5cywgaXMgd2hldGhlciB0aGlzIHdhcnJhbnRzIGZ1enppbmcgZWZmb3J0LgoKRnJvbSBteSBpbml0aWFsIHNjYW4sIHRoZSBjaGFuZ2VzIGFyZSBlbnRpcmVseSBjb25maW5lZCB0byB0aGUgYnVpbGQgc3lzdGVtIGl0c2VsZi4gVGhpcyBwYXRjaCBpcyBqdXN0IGFkanVzdGluZyBob3cgdGhlIEJQRiBzZWxmdGVzdHMgYXJlIGJ1aWx0LCBzcGVjaWZpY2FsbHkgZGVhbGluZyB3aXRoIG91dHB1dCBkaXJlY3RvcmllcyB3aGVuIGBPVVRQVVRgIGlzIGRlZmluZWQuIFRoZXJlJiMzOTtzIG5vIG1vZGlmaWNhdGlvbiBvZiBhY3R1YWwga2VybmVsIGNvZGUsIG5vIGFsdGVyYXRpb25zIHRvIGRyaXZlcnMsIGFuZCBjZXJ0YWlubHkgbm8gYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGNoYW5nZXMuIFRoaXMgaXMgKnB1cmVseSogYnVpbGQgc3lzdGVtIGhvdXNla2VlcGluZy4KCkxldCBtZSBqdXN0IHF1aWNrbHkgY29uZmlybSB0aGF0IHdpdGggYSBkZWVwZXIgbG9vayBhdCB0aGUgZGlmZi4gWWVwLCBqdXN0IE1ha2VmaWxlIG1vZGlmaWNhdGlvbnMgZm9yIG91dC1vZi10cmVlIGJ1aWxkcy4gTm8gQyBjb2RlIGhhcyBiZWVuIHRvdWNoZWQsIG5vdGhpbmcgdGhhdCBpbnRyb2R1Y2VzIGFueSBuZXcgZnVuY3Rpb25hbGl0eSBvciBidWcgcG90ZW50aWFsIGF0IHJ1bnRpbWUuCgpTbywgZ2l2ZW4gdGhlIG5hdHVyZSBvZiB0aGUgY2hhbmdlcywgSSBjYW4gY29uZmlkZW50bHkgZGVjbGFyZSB0aGlzIHBhdGNoIGFzICpub3QqIHdvcnRoIGZ1enppbmcuIEkmIzM5O2xsIGZsYWcgYFdvcnRoRnV6emluZz1mYWxzZWAgYW5kIHN1Ym1pdCB0aGUgcmVzdWx0cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMCAwNDoxNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgTWFrZWZpbGVzIGZvciBCUEYgc2VsZnRlc3RzIHRvIGZpeCBvdXQtb2YtdHJlZSBidWlsZHMgKHdoZW4gT1VUUFVUIGlzIHNldCkuIEl0IGRvZXMgbm90IGNvbnRhaW4gYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIGNvZGUsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIE1ha2VmaWxlcyBmb3IgQlBGIHNlbGZ0ZXN0cyB0byBmaXggb3V0LW9mLXRyZWUgYnVpbGRzICh3aGVuIE9VVFBVVCBpcyBzZXQpLiBJdCBkb2VzIG5vdCBjb250YWluIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBjb2RlLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDA0OjE0OjMyLjMzMjExNDMyWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTkxNjM0NjU5NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBNYWtlZmlsZXMgZm9yIEJQRiBzZWxmdGVzdHMgdG8gZml4IG91dC1vZi10cmVlIGJ1aWxkcyAod2hlbiBPVVRQVVQgaXMgc2V0KS4gSXQgZG9lcyBub3QgY29udGFpbiBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgY29kZSwgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDA0OjE0OjMyLjMzMjEyMDQzWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMzk5NTY1MDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA3ZjQzODljMWE2MWYzYzY0OTk2MDg1YWY3MzdhMWVlOGJkMjk2ZTNhXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUaHUgSnVsIDMwIDA0OjE0OjMxIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9NYWtlZmlsZSBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9NYWtlZmlsZVxcbmluZGV4IGI2NDJlZTQ4OWVhNjQuLmIxNTBhNjZmM2MyNTEgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL01ha2VmaWxlXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL01ha2VmaWxlXFxuQEAgLTEzNSw2ICsxMzUsOSBAQCBURVNUX1BST0dTX0VYVEVOREVEIDo9IFxcXFxcXG4gVEVTVF9LTU9EUyA6PSBicGZfdGVzdG1vZC5rbyBicGZfdGVzdF9ub19jZmkua28gYnBmX3Rlc3RfbW9kb3JkZXJfeC5rbyBcXFxcXFxuIFxcdGJwZl90ZXN0X21vZG9yZGVyX3kua28gYnBmX3Rlc3RfcnFzcGlubG9jay5rb1xcbiBURVNUX0tNT0RfVEFSR0VUUyA9ICQoYWRkcHJlZml4ICQoT1VUUFVUKS8sJChURVNUX0tNT0RTKSlcXG4rIyBCdWlsZCBkaXJlY3RvcnkgZm9yIGtlcm5lbCBtb2R1bGVzOiByb3V0ZWQgdG8gJChPVVRQVVQpL3Rlc3Rfa21vZHMgd2hlblxcbisjIE9VVFBVVCBpcyBzZXQgc28gdGhhdCBrYnVpbGQgaW50ZXJtZWRpYXRlcyBzdGF5IG91dCBvZiB0aGUgc291cmNlIHRyZWUuXFxuK1RFU1RfS01PRFNfT1VURElSIDo9ICQoaWYgJChPVVRQVVQpLCQoT1VUUFVUKS90ZXN0X2ttb2RzLHRlc3Rfa21vZHMpXFxuIFxcbiAjIENvbXBpbGUgYnV0IG5vdCBwYXJ0IG9mICdtYWtlIHJ1bl90ZXN0cydcXG4gVEVTVF9HRU5fUFJPR1NfRVhURU5ERUQgPSBcXFxcXFxuQEAgLTE2Myw4ICsxNjYsOCBAQCBvdmVycmlkZSBkZWZpbmUgQ0xFQU5cXG4gXFx0JChRKSQoUk0pIC1yICQoVEVTVF9HRU5fRklMRVMpXFxuIFxcdCQoUSkkKFJNKSAtciAkKFRFU1RfS01PRFMpXFxuIFxcdCQoUSkkKFJNKSAtciAkKEVYVFJBX0NMRUFOKVxcbi1cXHQkKFEpJChNQUtFKSAtQyB0ZXN0X2ttb2RzIGNsZWFuXFxuLVxcdCQoUSkkKE1BS0UpIC1DIGxpYmFyZW5hIGNsZWFuXFxuK1xcdCQoUSkkKE1BS0UpIC1DIHRlc3Rfa21vZHMgJChpZiAkKE9VVFBVVCksT1VUUFVUPSQoT1VUUFVUKS90ZXN0X2ttb2RzKSBjbGVhblxcbitcXHQkKFEpJChNQUtFKSAtQyBsaWJhcmVuYSAkKGlmICQoT1VUUFVUKSxPVVRQVVQ9JChPVVRQVVQpL2xpYmFyZW5hKSBjbGVhblxcbiBcXHQkKFEpJChNQUtFKSBkb2NzLWNsZWFuXFxuIGVuZGVmXFxuIFxcbkBAIC0zMDEsMTcgKzMwNCwxOCBAQCAkKE9VVFBVVCkvc2lnbi1maWxlOiAuLi8uLi8uLi8uLi9zY3JpcHRzL3NpZ24tZmlsZS5jXFxuICMgc3VwcG9ydCB0aGF0IGZvciByZWd1bGFyIHJ1bGVzLiBIb3dldmVyLCBwYXR0ZXJuIG1hdGNoaW5nIHJ1bGVzIGFyZSBpbXBsaWNpdGx5XFxuICMgdHJlYXRlZCBhcyBncm91cGVkIGV2ZW4gd2l0aCBvbGRlciB2ZXJzaW9ucyBvZiBtYWtlLCBzbyBhcyBhIHdvcmthcm91bmQsIHRoZVxcbiAjIHN1YnN0KCkgdHVybnMgdGhlIHJ1bGUgaW50byBhIHBhdHRlcm4gbWF0Y2hpbmcgcnVsZVxcbi0kKGFkZHByZWZpeCB0ZXN0X2ttb2RzLywkKHN1YnN0IC5rbywla28sJChURVNUX0tNT0RTKSkpOiAkKFZNTElOVVhfQlRGKSAkKFJFU09MVkVfQlRGSURTKSAkKHdpbGRjYXJkIHRlc3Rfa21vZHMvTWFrZWZpbGUgdGVzdF9rbW9kcy8qLltjaF0pXFxuLVxcdCQoUSkkKFJNKSB0ZXN0X2ttb2RzLyoua28gdGVzdF9rbW9kcy8qLm1vZC5vICMgZm9yY2UgcmUtY29tcGlsYXRpb25cXG4rJChhZGRwcmVmaXggJChURVNUX0tNT0RTX09VVERJUikvLCQoc3Vic3QgLmtvLCVrbywkKFRFU1RfS01PRFMpKSk6ICQoVk1MSU5VWF9CVEYpICQoUkVTT0xWRV9CVEZJRFMpICQod2lsZGNhcmQgdGVzdF9rbW9kcy9NYWtlZmlsZSB0ZXN0X2ttb2RzLyouW2NoXSlcXG4rXFx0JChRKSQoUk0pICQoVEVTVF9LTU9EU19PVVRESVIpLyoua28gJChURVNUX0tNT0RTX09VVERJUikvKi5tb2QubyAjIGZvcmNlIHJlLWNvbXBpbGF0aW9uXFxuIFxcdCQoUSkkKE1BS0UpICQoc3VibWFrZV9leHRyYXMpIC1DIHRlc3Rfa21vZHNcXHRcXHRcXHRcXHRcXFxcXFxuIFxcdFxcdCQoaWYgJChPKSxPPSQoYWJzcGF0aCAkKE8pKSlcXHRcXHRcXHRcXHRcXHRcXFxcXFxuIFxcdFxcdCQoaWYgJChLQlVJTERfT1VUUFVUKSxLQlVJTERfT1VUUFVUPSQoYWJzcGF0aCAkKEtCVUlMRF9PVVRQVVQpKSlcXFxcXFxuK1xcdFxcdCQoaWYgJChPVVRQVVQpLE9VVFBVVD0kKE9VVFBVVCkvdGVzdF9rbW9kcylcXHRcXHRcXHRcXFxcXFxuIFxcdFxcdFJFU09MVkVfQlRGSURTPSQoUkVTT0xWRV9CVEZJRFMpXFx0XFx0XFx0XFx0XFxcXFxcbiBcXHRcXHRFWFRSQV9DRkxBR1M9JycgRVhUUkFfTERGTEFHUz0nJ1xcbiBcXG4tJChURVNUX0tNT0RfVEFSR0VUUyk6ICQoYWRkcHJlZml4IHRlc3Rfa21vZHMvLCQoVEVTVF9LTU9EUykpXFxuKyQoVEVTVF9LTU9EX1RBUkdFVFMpOiAkKGFkZHByZWZpeCAkKFRFU1RfS01PRFNfT1VURElSKS8sJChURVNUX0tNT0RTKSlcXG4gXFx0JChjYWxsIG1zZyxNT0QsLCRAKVxcbi1cXHQkKFEpJChpZiAkKFBFUk1JU1NJVkUpLGlmIFsgLWYgdGVzdF9rbW9kcy8kKEBGKSBdOyB0aGVuICljcCB0ZXN0X2ttb2RzLyQoQEYpICRAJChpZiAkKFBFUk1JU1NJVkUpLDsgZmkpXFxuK1xcdCQoUSkkKGlmICQoUEVSTUlTU0lWRSksaWYgWyAtZiAkKFRFU1RfS01PRFNfT1VURElSKS8kKEBGKSBdOyB0aGVuICljcCAkKFRFU1RfS01PRFNfT1VURElSKS8kKEBGKSAkQCQoaWYgJChQRVJNSVNTSVZFKSw7IGZpKVxcbiBcXG4gXFxuIERFRkFVTFRfQlBGVE9PTCA6PSAkKEhPU1RfU0NSQVRDSF9ESVIpL3NiaW4vYnBmdG9vbFxcbkBAIC01ODAsNyArNTg0LDcgQEAgVFJVTk5FUl9FWFRSQV9PQkpTIDo9ICQkKHBhdHN1YnN0ICUuYywkJChUUlVOTkVSX09VVFBVVCkvJS5vLFxcdFxcdFxcXFxcXG4gVFJVTk5FUl9MSUJfT0JKUyA6PSAkJChwYXRzdWJzdCAlLmMsJCQoVFJVTk5FUl9PVVRQVVQpLyUubyxcXHRcXHRcXFxcXFxuIFxcdFxcdFxcdFxcdCAkJChmaWx0ZXIgJS5jLCQoVFJVTk5FUl9MSUJfU09VUkNFUykpKVxcbiBUUlVOTkVSX0VYVFJBX0hEUlMgOj0gJCQoZmlsdGVyICUuaCwkKFRSVU5ORVJfRVhUUkFfU09VUkNFUykpXFxuLVRSVU5ORVJfVEVTVFNfSERSIDo9ICQoVFJVTk5FUl9URVNUU19ESVIpL3Rlc3RzLmhcXG4rVFJVTk5FUl9URVNUU19IRFIgOj0gJChPVVRQVVQpLyQoVFJVTk5FUl9URVNUU19ESVIpL3Rlc3RzLmhcXG4gVFJVTk5FUl9CUEZfU1JDUyA6PSAkJChub3RkaXIgJCQod2lsZGNhcmQgJChUUlVOTkVSX0JQRl9QUk9HU19ESVIpLyouYykpXFxuIFRSVU5ORVJfQlBGX09CSlMgOj0gJCQocGF0c3Vic3QgJS5jLCQkKFRSVU5ORVJfT1VUUFVUKS8lLmJwZi5vLCAkJChUUlVOTkVSX0JQRl9TUkNTKSlcXG4gVFJVTk5FUl9CUEZfU0tFTFMgOj0gJCQocGF0c3Vic3QgJS5jLCQkKFRSVU5ORVJfT1VUUFVUKS8lLnNrZWwuaCxcXHRcXFxcXFxuQEAgLTcyMCw5ICs3MjQsOSBAQCBlbmRpZlxcbiAjIGVuc3VyZSB3ZSBzZXQgdXAgdGVzdHMuaCBoZWFkZXIgZ2VuZXJhdGlvbiBydWxlIGp1c3Qgb25jZVxcbiBpZmVxICgkKCQoVFJVTk5FUl9URVNUU19ESVIpLXRlc3RzLWhkciksKVxcbiAkKFRSVU5ORVJfVEVTVFNfRElSKS10ZXN0cy1oZHIgOj0geVxcbi0kKFRSVU5ORVJfVEVTVFNfSERSKTogJChUUlVOTkVSX1RFU1RTX0RJUikvKi5jXFxuKyQoVFJVTk5FUl9URVNUU19IRFIpOiAkKFRSVU5ORVJfVEVTVFNfRElSKS8qLmMgfCAkKFRSVU5ORVJfT1VUUFVUKVxcbiBcXHQkJChjYWxsIG1zZyxURVNULUhEUiwkKFRSVU5ORVJfQklOQVJZKSwkJEApXFxuLVxcdCQkKHNoZWxsIChlY2hvICcvKiBHZW5lcmF0ZWQgaGVhZGVyLCBkbyBub3QgZWRpdCAqLyc7XFx0XFx0XFx0XFx0XFx0XFxcXFxcbitcXHQkJChzaGVsbCBta2RpciAtcCAkJChkaXIgJCRAKSBcXHUwMDI2XFx1MDAyNiAoZWNobyAnLyogR2VuZXJhdGVkIGhlYWRlciwgZG8gbm90IGVkaXQgKi8nO1xcdFxcdFxcdFxcXFxcXG4gXFx0XFx0ICBzZWQgLW4gLUUgJ3MvXnZvaWQgKHNlcmlhbF8pP3Rlc3RfKFthLXpBLVowLTlfXSspXFxcXCgodm9pZCk/XFxcXCkuKi9ERUZJTkVfVEVTVChcXFxcMikvcCdcXHRcXFxcXFxuIFxcdFxcdFxcdCQoVFJVTk5FUl9URVNUU19ESVIpLyouYyB8IHNvcnQgO1xcdFxcXFxcXG4gXFx0XFx0ICkgXFx1MDAzZSAkJEApXFxuQEAgLTgwMiw3ICs4MDYsNyBAQCAkKE9VVFBVVCkvJChUUlVOTkVSX0JJTkFSWSk6ICQoaWYgJChmaWx0ZXIgdGVzdF9wcm9ncyUsJDEpLCQoaWYgJChQRVJNSVNTSVZFKSwkJFxcbiBlbmRlZlxcbiBcXG4gVkVSSUZZX1NJR19TRVRVUCA6PSAkKENVUkRJUikvdmVyaWZ5X3NpZ19zZXR1cC5zaFxcbi1WRVJJRllfU0lHX0hEUiA6PSB2ZXJpZmljYXRpb25fY2VydC5oXFxuK1ZFUklGWV9TSUdfSERSIDo9ICQoT1VUUFVUKS92ZXJpZmljYXRpb25fY2VydC5oXFxuIFZFUklGSUNBVElPTl9DRVJUICAgOj0gJChCVUlMRF9ESVIpL3NpZ25pbmdfa2V5LmRlclxcbiBQUklWQVRFX0tFWSA6PSAkKEJVSUxEX0RJUikvc2lnbmluZ19rZXkucGVtXFxuIFxcbkBAIC04MjYsNyArODMwLDggQEAgTElCQVJFTkFfTUFLRV9BUkdTID0gXFxcXFxcbiBcXHRcXHRDTEFORz1cXFwiJChDTEFORylcXFwiIFxcXFxcXG4gXFx0XFx0QlBGX0NGTEFHUz1cXFwiJChCUEZfQ0ZMQUdTKSAkKENMQU5HX0NGTEFHUylcXFwiIFxcXFxcXG4gXFx0XFx0QlBGX1RBUkdFVF9FTkRJQU49XFxcIiQoQlBGX1RBUkdFVF9FTkRJQU4pXFxcIiBcXFxcXFxuLVxcdFxcdFE9XFxcIiQoUSlcXFwiXFxuK1xcdFxcdFE9XFxcIiQoUSlcXFwiIFxcXFxcXG4rXFx0XFx0T1VUUFVUPVxcXCIkKE9VVFBVVCkvbGliYXJlbmFcXFwiXFxuIFxcbiBMSUJBUkVOQV9CUEZfREVQUyA6PSAkKHdpbGRjYXJkIGxpYmFyZW5hL01ha2VmaWxlXFx0XFx0XFxcXFxcbiBcXHRcXHRcXHRcXHQgbGliYXJlbmEvaW5jbHVkZS8qXFx0XFx0XFxcXFxcbkBAIC04MzUsMTcgKzg0MCwxNyBAQCBMSUJBUkVOQV9CUEZfREVQUyA6PSAkKHdpbGRjYXJkIGxpYmFyZW5hL01ha2VmaWxlXFx0XFx0XFxcXFxcbiBcXHRcXHRcXHRcXHQgbGliYXJlbmEvc2VsZnRlc3RzLypcXHRcXHRcXFxcXFxuIFxcdFxcdFxcdFxcdCBsaWJhcmVuYS8qLmJwZi5vKVxcbiBcXG4tTElCQVJFTkFfU0tFTCA6PSBsaWJhcmVuYS9saWJhcmVuYS5za2VsLmhcXG4rTElCQVJFTkFfU0tFTCA6PSAkKE9VVFBVVCkvbGliYXJlbmEvbGliYXJlbmEuc2tlbC5oXFxuIFxcbiAkKExJQkFSRU5BX1NLRUwpOiAkKElOQ0xVREVfRElSKS92bWxpbnV4LmggJChCUEZPQkopICQoTElCQVJFTkFfQlBGX0RFUFMpXFxuLVxcdCskKE1BS0UpIC1DIGxpYmFyZW5hIGxpYmFyZW5hLnNrZWwuaCAkKExJQkFSRU5BX01BS0VfQVJHUylcXG4rXFx0KyQoTUFLRSkgLUMgbGliYXJlbmEgJChMSUJBUkVOQV9TS0VMKSAkKExJQkFSRU5BX01BS0VfQVJHUylcXG4gXFxuIGlmbmVxICgkKENMQU5HX0hBU19BUkVOQV9BU0FOKSwpXFxuLUxJQkFSRU5BX0FTQU5fU0tFTCA6PSBsaWJhcmVuYS9saWJhcmVuYV9hc2FuLnNrZWwuaFxcbitMSUJBUkVOQV9BU0FOX1NLRUwgOj0gJChPVVRQVVQpL2xpYmFyZW5hL2xpYmFyZW5hX2FzYW4uc2tlbC5oXFxuIENGTEFHUyArPSAtREhBU19CUEZfQVJFTkFfQVNBTlxcbiBcXG4gJChMSUJBUkVOQV9BU0FOX1NLRUwpOiAkKElOQ0xVREVfRElSKS92bWxpbnV4LmggJChCUEZPQkopICQoTElCQVJFTkFfQlBGX0RFUFMpXFxuLVxcdCskKE1BS0UpIC1DIGxpYmFyZW5hIGxpYmFyZW5hX2FzYW4uc2tlbC5oICQoTElCQVJFTkFfTUFLRV9BUkdTKVxcbitcXHQrJChNQUtFKSAtQyBsaWJhcmVuYSAkKExJQkFSRU5BX0FTQU5fU0tFTCkgJChMSUJBUkVOQV9NQUtFX0FSR1MpXFxuIGVuZGlmXFxuIFxcbiAjIERlZmluZSB0ZXN0X3Byb2dzIHRlc3QgcnVubmVyLlxcbkBAIC05MjMsMTQgKzkyOCwxNCBAQCAkKGV2YWwgJChjYWxsIERFRklORV9URVNUX1JVTk5FUix0ZXN0X21hcHMpKVxcbiAjIEl0IGlzIG11Y2ggc2ltcGxlciB0aGFuIHRlc3RfbWFwcy90ZXN0X3Byb2dzIGFuZCBzdWZmaWNpZW50bHkgZGlmZmVyZW50IGZyb21cXG4gIyB0aGVtIChlLmcuLCB0ZXN0LmggaXMgdXNpbmcgY29tcGxldGVseSBwYXR0ZXJuKSwgdGhhdCBpdCdzIHdvcnRoIGp1c3RcXG4gIyBleHBsaWNpdGx5IGRlZmluaW5nIGFsbCB0aGUgcnVsZXMgZXhwbGljaXRseS5cXG4tdmVyaWZpZXIvdGVzdHMuaDogdmVyaWZpZXIvKi5jXFxuLVxcdCQoc2hlbGwgKCBjZCB2ZXJpZmllci87IFxcXFxcXG4rJChPVVRQVVQpL3ZlcmlmaWVyL3Rlc3RzLmg6IHZlcmlmaWVyLyouYyB8ICQoT1VUUFVUKVxcbitcXHQkKHNoZWxsIG1rZGlyIC1wICQoT1VUUFVUKS92ZXJpZmllciBcXHUwMDI2XFx1MDAyNiAoIFxcXFxcXG4gXFx0XFx0ICBlY2hvICcvKiBHZW5lcmF0ZWQgaGVhZGVyLCBkbyBub3QgZWRpdCAqLyc7IFxcXFxcXG4gXFx0XFx0ICBlY2hvICcjaWZkZWYgRklMTF9BUlJBWSc7IFxcXFxcXG4tXFx0XFx0ICBscyAqLmMgMlxcdTAwM2UgL2Rldi9udWxsIHwgc2VkIC1lICdzQFxcXFwoLipcXFxcKUAjaW5jbHVkZSBcXFxcXFxcIlxcXFwxXFxcXFxcXCJAJzsgXFxcXFxcbitcXHRcXHQgIGxzIHZlcmlmaWVyLyouYyAyXFx1MDAzZSAvZGV2L251bGwgfCBzZWQgLWUgJ3NAXFxcXCguKlxcXFwpQCNpbmNsdWRlIFxcXCIkKENVUkRJUikvXFxcXDFcXFwiQCc7IFxcXFxcXG4gXFx0XFx0ICBlY2hvICcjZW5kaWYnIFxcXFxcXG4tXFx0XFx0KSBcXHUwMDNlIHZlcmlmaWVyL3Rlc3RzLmgpXFxuLSQoT1VUUFVUKS90ZXN0X3ZlcmlmaWVyOiB0ZXN0X3ZlcmlmaWVyLmMgdmVyaWZpZXIvdGVzdHMuaCAkKEJQRk9CSikgfCAkKE9VVFBVVClcXG4rXFx0XFx0KSBcXHUwMDNlICQoT1VUUFVUKS92ZXJpZmllci90ZXN0cy5oKVxcbiskKE9VVFBVVCkvdGVzdF92ZXJpZmllcjogdGVzdF92ZXJpZmllci5jICQoT1VUUFVUKS92ZXJpZmllci90ZXN0cy5oICQoQlBGT0JKKSB8ICQoT1VUUFVUKVxcbiBcXHQkKGNhbGwgbXNnLEJJTkFSWSwsJEApXFxuIFxcdCQoUSkkKENDKSAkKENGTEFHUykgJChmaWx0ZXIgJS5hICUubyAlLmMsJF4pICQoTERMSUJTKSAtbyAkQFxcbiBcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2xpYmFyZW5hL01ha2VmaWxlIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2xpYmFyZW5hL01ha2VmaWxlXFxuaW5kZXggNWUyYWI1MTQ4MDVlNC4uMTk1ZDVmODMzMTg2YSAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvbGliYXJlbmEvTWFrZWZpbGVcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvbGliYXJlbmEvTWFrZWZpbGVcXG5AQCAtMjcsMTAgKzI3LDE0IEBAIEJQRkRJUj0kKGFic3BhdGggJChMSUJBUkVOQSkvLi4pXFxuIElOQ0xVREVfRElSID89ICQoQlBGRElSKS90b29scy9pbmNsdWRlXFxuIExJQkJQRl9JTkNMVURFID89ICQoSU5DTFVERV9ESVIpXFxuIFxcbisjIEJ1aWxkIG91dHB1dCBkaXJlY3Rvcnk7IGRlZmF1bHRzIHRvIGluLXRyZWUgZm9yIHN0YW5kYWxvbmUgYnVpbGRzLlxcbitPVVRQVVQgPz0gLlxcbiskKHNoZWxsIG1rZGlyIC1wICQoT1VUUFVUKSlcXG4rXFxuICMgU2NhbiBzcmMvIGFuZCBzZWxmdGVzdHMvIHRvIGdlbmVyYXRlIHRoZSBmaW5hbCBiaW5hcmllc1xcbiBMSUJBUkVOQV9TT1VSQ0VTID0gJCh3aWxkY2FyZCAkKExJQkFSRU5BKS9zcmMvKi5icGYuYykgJCh3aWxkY2FyZCAkKExJQkFSRU5BKS9zZWxmdGVzdHMvKi5icGYuYylcXG4tTElCQVJFTkFfT0JKRUNUUyA9ICQobm90ZGlyICQoTElCQVJFTkFfU09VUkNFUzouYnBmLmM9LmJwZi5vKSlcXG4tTElCQVJFTkFfT0JKRUNUU19BU0FOID0gJChub3RkaXIgJChMSUJBUkVOQV9TT1VSQ0VTOi5icGYuYz1fYXNhbi5icGYubykpXFxuK0xJQkFSRU5BX09CSkVDVFMgPSAkKGFkZHByZWZpeCAkKE9VVFBVVCkvLCQobm90ZGlyICQoTElCQVJFTkFfU09VUkNFUzouYnBmLmM9LmJwZi5vKSkpXFxuK0xJQkFSRU5BX09CSkVDVFNfQVNBTiA9ICQoYWRkcHJlZml4ICQoT1VUUFVUKS8sJChub3RkaXIgJChMSUJBUkVOQV9TT1VSQ0VTOi5icGYuYz1fYXNhbi5icGYubykpKVxcbiBcXG4gSU5DTFVERVMgPSAtSSQoTElCQVJFTkEpL2luY2x1ZGUgLUkkKEJQRkRJUilcXG4gaWZuZXEgKCQoSU5DTFVERV9ESVIpLClcXG5AQCAtNjEsMzIgKzY1LDMyIEBAIENGTEFHUyArPSAkKElOQ0xVREVTKVxcbiB2cGF0aCAlLmJwZi5jICQoTElCQVJFTkEpL3NyYyAkKExJQkFSRU5BKS9zZWxmdGVzdHNcXG4gdnBhdGggJS5jICQoTElCQVJFTkEpL3NyYyAkKExJQkFSRU5BKS9zZWxmdGVzdHNcXG4gXFxuLXNrZWxldG9uczogbGliYXJlbmEuc2tlbC5oIGxpYmFyZW5hX2FzYW4uc2tlbC5oXFxuK3NrZWxldG9uczogJChPVVRQVVQpL2xpYmFyZW5hLnNrZWwuaCAkKE9VVFBVVCkvbGliYXJlbmFfYXNhbi5za2VsLmhcXG4gLlBIT05ZOiBza2VsZXRvbnNcXG4gXFxuLWxpYmFyZW5hX2FzYW4uc2tlbC5oOiBsaWJhcmVuYV9hc2FuLmJwZi5vXFxuKyQoT1VUUFVUKS9saWJhcmVuYV9hc2FuLnNrZWwuaDogJChPVVRQVVQpL2xpYmFyZW5hX2FzYW4uYnBmLm9cXG4gXFx0JChjYWxsIG1zZyxHRU4tU0tFTCxsaWJhcmVuYSwkQClcXG4gXFx0JChRKSQoQlBGVE9PTCkgZ2VuIHNrZWxldG9uICRcXHUwMDNjIG5hbWUgXFxcImxpYmFyZW5hX2FzYW5cXFwiIFxcdTAwM2UgJEBcXG4gXFxuLWxpYmFyZW5hLnNrZWwuaDogbGliYXJlbmEuYnBmLm9cXG4rJChPVVRQVVQpL2xpYmFyZW5hLnNrZWwuaDogJChPVVRQVVQpL2xpYmFyZW5hLmJwZi5vXFxuIFxcdCQoY2FsbCBtc2csR0VOLVNLRUwsbGliYXJlbmEsJEApXFxuIFxcdCQoUSkkKEJQRlRPT0wpIGdlbiBza2VsZXRvbiAkXFx1MDAzYyBuYW1lIFxcXCJsaWJhcmVuYVxcXCIgXFx1MDAzZSAkQFxcbiBcXG4tbGliYXJlbmFfYXNhbi5icGYubzogJChMSUJBUkVOQV9PQkpFQ1RTX0FTQU4pXFxuKyQoT1VUUFVUKS9saWJhcmVuYV9hc2FuLmJwZi5vOiAkKExJQkFSRU5BX09CSkVDVFNfQVNBTilcXG4gXFx0JChjYWxsIG1zZyxHRU4tT0JKLGxpYmFyZW5hLCRAKVxcbiBcXHQkKFEpJChCUEZUT09MKSBnZW4gb2JqZWN0ICRAICReXFxuIFxcbi1saWJhcmVuYS5icGYubzogJChMSUJBUkVOQV9PQkpFQ1RTKVxcbiskKE9VVFBVVCkvbGliYXJlbmEuYnBmLm86ICQoTElCQVJFTkFfT0JKRUNUUylcXG4gXFx0JChjYWxsIG1zZyxHRU4tT0JKLGxpYmFyZW5hLCRAKVxcbiBcXHQkKFEpJChCUEZUT09MKSBnZW4gb2JqZWN0ICRAICReXFxuIFxcbi0lX2FzYW4uYnBmLm86ICUuYnBmLmNcXG4rJChPVVRQVVQpLyVfYXNhbi5icGYubzogJS5icGYuY1xcbiBcXHQkKGNhbGwgbXNnLENMTkctQlBGLGxpYmFyZW5hLCRAKVxcbiBcXHQkKFEpJChDTEFORykgJChCUEZfQ0ZMQUdTKSAkKEFTQU5fRkxBR1MpIC1EQlBGX0FSRU5BX0FTQU4gJChCUEZfVEFSR0VUX0VORElBTikgLWMgJFxcdTAwM2MgLW8gJEBcXG4gXFxuLSUuYnBmLm86ICUuYnBmLmNcXG4rJChPVVRQVVQpLyUuYnBmLm86ICUuYnBmLmNcXG4gXFx0JChjYWxsIG1zZyxDTE5HLUJQRixsaWJhcmVuYSwkQClcXG4gXFx0JChRKSQoQ0xBTkcpICQoQlBGX0NGTEFHUykgJChCUEZfVEFSR0VUX0VORElBTikgLWMgJFxcdTAwM2MgLW8gJEBcXG4gXFxuIGNsZWFuOlxcbi1cXHQkKFEpcm0gLWYgKi5za2VsLmggKi5icGYubyAqLmxpbmtlZCoub1xcbitcXHQkKFEpcm0gLWYgJChPVVRQVVQpLyouc2tlbC5oICQoT1VUUFVUKS8qLmJwZi5vICQoT1VUUFVUKS8qLmxpbmtlZCoub1xcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9rbW9kcy9NYWtlZmlsZSBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2ttb2RzL01ha2VmaWxlXFxuaW5kZXggMDMxYzc0NTRjZTY1Zi4uNTNlNDdlNzE1ZWM0NCAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9rbW9kcy9NYWtlZmlsZVxcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2ttb2RzL01ha2VmaWxlXFxuQEAgLTMyLDE0ICszMiwxNyBAQCBQRVJNSVNTSVZFIDo9ICQoZmlsdGVyIDAsJChCUEZfU1RSSUNUX0JVSUxEKSlcXG4gYWxsOlxcbiBpZmVxICgkKFBFUk1JU1NJVkUpLClcXG4gXFx0JChRKSQoTUFLRSkgLUMgJChLRElSKSAkKGlmICQoS01PRF9PX1ZBTElEKSxPPSQoS01PRF9PX1ZBTElEKSBLQlVJTERfT1VUUFVUPSQoS01PRF9PX1ZBTElEKSxLQlVJTERfT1VUUFVUPSkgXFxcXFxcbitcXHRcXHQkKGlmICQoT1VUUFVUKSxNTz0kKE9VVFBVVCkpIFxcXFxcXG4gXFx0XFx0TT0kKFRFU1RfS01PRF9ESVIpIG1vZHVsZXNcXG4gZWxzZSBpZm5lcSAoXFxcIiQod2lsZGNhcmQgJChLRElSKSlcXFwiLCBcXFwiXFxcIilcXG4gXFx0JChRKSQoTUFLRSkgLUMgJChLRElSKSAkKGlmICQoS01PRF9PX1ZBTElEKSxPPSQoS01PRF9PX1ZBTElEKSBLQlVJTERfT1VUUFVUPSQoS01PRF9PX1ZBTElEKSxLQlVJTERfT1VUUFVUPSkgXFxcXFxcbitcXHRcXHQkKGlmICQoT1VUUFVUKSxNTz0kKE9VVFBVVCkpIFxcXFxcXG4gXFx0XFx0TT0kKFRFU1RfS01PRF9ESVIpIG1vZHVsZXNcXG4gZW5kaWZcXG4gXFxuIGNsZWFuOlxcbiBpZm5lcSAoXFxcIiQod2lsZGNhcmQgJChLRElSKSlcXFwiLCBcXFwiXFxcIilcXG4gXFx0JChRKSQoTUFLRSkgLUMgJChLRElSKSAkKGlmICQoS01PRF9PX1ZBTElEKSxPPSQoS01PRF9PX1ZBTElEKSBLQlVJTERfT1VUUFVUPSQoS01PRF9PX1ZBTElEKSxLQlVJTERfT1VUUFVUPSkgXFxcXFxcbitcXHRcXHQkKGlmICQoT1VUUFVUKSxNTz0kKE9VVFBVVCkpIFxcXFxcXG4gXFx0XFx0TT0kKFRFU1RfS01PRF9ESVIpIGNsZWFuXFxuIGVuZGlmXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDA0OjE0OjMyLjY3Mjg4ODA3NVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjU1NzU1NjczNDksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgTWFrZWZpbGVzIGZvciBCUEYgc2VsZnRlc3RzIHRvIGZpeCBvdXQtb2YtdHJlZSBidWlsZHMgKHdoZW4gT1VUUFVUIGlzIHNldCkuIEl0IGRvZXMgbm90IGNvbnRhaW4gYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIGNvZGUsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA3ZjQzODljMWE2MWYzYzY0OTk2MDg1YWY3MzdhMWVlOGJkMjk2ZTNhXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMzAgMDQ6MTQ6MzEgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvTWFrZWZpbGUgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvTWFrZWZpbGVcbmluZGV4IGI2NDJlZTQ4OWVhNjQuLmIxNTBhNjZmM2MyNTEgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvTWFrZWZpbGVcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9NYWtlZmlsZVxuQEAgLTEzNSw2ICsxMzUsOSBAQCBURVNUX1BST0dTX0VYVEVOREVEIDo9IFxcXG4gVEVTVF9LTU9EUyA6PSBicGZfdGVzdG1vZC5rbyBicGZfdGVzdF9ub19jZmkua28gYnBmX3Rlc3RfbW9kb3JkZXJfeC5rbyBcXFxuIFx0YnBmX3Rlc3RfbW9kb3JkZXJfeS5rbyBicGZfdGVzdF9ycXNwaW5sb2NrLmtvXG4gVEVTVF9LTU9EX1RBUkdFVFMgPSAkKGFkZHByZWZpeCAkKE9VVFBVVCkvLCQoVEVTVF9LTU9EUykpXG4rIyBCdWlsZCBkaXJlY3RvcnkgZm9yIGtlcm5lbCBtb2R1bGVzOiByb3V0ZWQgdG8gJChPVVRQVVQpL3Rlc3Rfa21vZHMgd2hlblxuKyMgT1VUUFVUIGlzIHNldCBzbyB0aGF0IGtidWlsZCBpbnRlcm1lZGlhdGVzIHN0YXkgb3V0IG9mIHRoZSBzb3VyY2UgdHJlZS5cbitURVNUX0tNT0RTX09VVERJUiA6PSAkKGlmICQoT1VUUFVUKSwkKE9VVFBVVCkvdGVzdF9rbW9kcyx0ZXN0X2ttb2RzKVxuIFxuICMgQ29tcGlsZSBidXQgbm90IHBhcnQgb2YgJ21ha2UgcnVuX3Rlc3RzJ1xuIFRFU1RfR0VOX1BST0dTX0VYVEVOREVEID0gXFxcbkBAIC0xNjMsOCArMTY2LDggQEAgb3ZlcnJpZGUgZGVmaW5lIENMRUFOXG4gXHQkKFEpJChSTSkgLXIgJChURVNUX0dFTl9GSUxFUylcbiBcdCQoUSkkKFJNKSAtciAkKFRFU1RfS01PRFMpXG4gXHQkKFEpJChSTSkgLXIgJChFWFRSQV9DTEVBTilcbi1cdCQoUSkkKE1BS0UpIC1DIHRlc3Rfa21vZHMgY2xlYW5cbi1cdCQoUSkkKE1BS0UpIC1DIGxpYmFyZW5hIGNsZWFuXG4rXHQkKFEpJChNQUtFKSAtQyB0ZXN0X2ttb2RzICQoaWYgJChPVVRQVVQpLE9VVFBVVD0kKE9VVFBVVCkvdGVzdF9rbW9kcykgY2xlYW5cbitcdCQoUSkkKE1BS0UpIC1DIGxpYmFyZW5hICQoaWYgJChPVVRQVVQpLE9VVFBVVD0kKE9VVFBVVCkvbGliYXJlbmEpIGNsZWFuXG4gXHQkKFEpJChNQUtFKSBkb2NzLWNsZWFuXG4gZW5kZWZcbiBcbkBAIC0zMDEsMTcgKzMwNCwxOCBAQCAkKE9VVFBVVCkvc2lnbi1maWxlOiAuLi8uLi8uLi8uLi9zY3JpcHRzL3NpZ24tZmlsZS5jXG4gIyBzdXBwb3J0IHRoYXQgZm9yIHJlZ3VsYXIgcnVsZXMuIEhvd2V2ZXIsIHBhdHRlcm4gbWF0Y2hpbmcgcnVsZXMgYXJlIGltcGxpY2l0bHlcbiAjIHRyZWF0ZWQgYXMgZ3JvdXBlZCBldmVuIHdpdGggb2xkZXIgdmVyc2lvbnMgb2YgbWFrZSwgc28gYXMgYSB3b3JrYXJvdW5kLCB0aGVcbiAjIHN1YnN0KCkgdHVybnMgdGhlIHJ1bGUgaW50byBhIHBhdHRlcm4gbWF0Y2hpbmcgcnVsZVxuLSQoYWRkcHJlZml4IHRlc3Rfa21vZHMvLCQoc3Vic3QgLmtvLCVrbywkKFRFU1RfS01PRFMpKSk6ICQoVk1MSU5VWF9CVEYpICQoUkVTT0xWRV9CVEZJRFMpICQod2lsZGNhcmQgdGVzdF9rbW9kcy9NYWtlZmlsZSB0ZXN0X2ttb2RzLyouW2NoXSlcbi1cdCQoUSkkKFJNKSB0ZXN0X2ttb2RzLyoua28gdGVzdF9rbW9kcy8qLm1vZC5vICMgZm9yY2UgcmUtY29tcGlsYXRpb25cbiskKGFkZHByZWZpeCAkKFRFU1RfS01PRFNfT1VURElSKS8sJChzdWJzdCAua28sJWtvLCQoVEVTVF9LTU9EUykpKTogJChWTUxJTlVYX0JURikgJChSRVNPTFZFX0JURklEUykgJCh3aWxkY2FyZCB0ZXN0X2ttb2RzL01ha2VmaWxlIHRlc3Rfa21vZHMvKi5bY2hdKVxuK1x0JChRKSQoUk0pICQoVEVTVF9LTU9EU19PVVRESVIpLyoua28gJChURVNUX0tNT0RTX09VVERJUikvKi5tb2QubyAjIGZvcmNlIHJlLWNvbXBpbGF0aW9uXG4gXHQkKFEpJChNQUtFKSAkKHN1Ym1ha2VfZXh0cmFzKSAtQyB0ZXN0X2ttb2RzXHRcdFx0XHRcXFxuIFx0XHQkKGlmICQoTyksTz0kKGFic3BhdGggJChPKSkpXHRcdFx0XHRcdFxcXG4gXHRcdCQoaWYgJChLQlVJTERfT1VUUFVUKSxLQlVJTERfT1VUUFVUPSQoYWJzcGF0aCAkKEtCVUlMRF9PVVRQVVQpKSlcXFxuK1x0XHQkKGlmICQoT1VUUFVUKSxPVVRQVVQ9JChPVVRQVVQpL3Rlc3Rfa21vZHMpXHRcdFx0XFxcbiBcdFx0UkVTT0xWRV9CVEZJRFM9JChSRVNPTFZFX0JURklEUylcdFx0XHRcdFxcXG4gXHRcdEVYVFJBX0NGTEFHUz0nJyBFWFRSQV9MREZMQUdTPScnXG4gXG4tJChURVNUX0tNT0RfVEFSR0VUUyk6ICQoYWRkcHJlZml4IHRlc3Rfa21vZHMvLCQoVEVTVF9LTU9EUykpXG4rJChURVNUX0tNT0RfVEFSR0VUUyk6ICQoYWRkcHJlZml4ICQoVEVTVF9LTU9EU19PVVRESVIpLywkKFRFU1RfS01PRFMpKVxuIFx0JChjYWxsIG1zZyxNT0QsLCRAKVxuLVx0JChRKSQoaWYgJChQRVJNSVNTSVZFKSxpZiBbIC1mIHRlc3Rfa21vZHMvJChARikgXTsgdGhlbiApY3AgdGVzdF9rbW9kcy8kKEBGKSAkQCQoaWYgJChQRVJNSVNTSVZFKSw7IGZpKVxuK1x0JChRKSQoaWYgJChQRVJNSVNTSVZFKSxpZiBbIC1mICQoVEVTVF9LTU9EU19PVVRESVIpLyQoQEYpIF07IHRoZW4gKWNwICQoVEVTVF9LTU9EU19PVVRESVIpLyQoQEYpICRAJChpZiAkKFBFUk1JU1NJVkUpLDsgZmkpXG4gXG4gXG4gREVGQVVMVF9CUEZUT09MIDo9ICQoSE9TVF9TQ1JBVENIX0RJUikvc2Jpbi9icGZ0b29sXG5AQCAtNTgwLDcgKzU4NCw3IEBAIFRSVU5ORVJfRVhUUkFfT0JKUyA6PSAkJChwYXRzdWJzdCAlLmMsJCQoVFJVTk5FUl9PVVRQVVQpLyUubyxcdFx0XFxcbiBUUlVOTkVSX0xJQl9PQkpTIDo9ICQkKHBhdHN1YnN0ICUuYywkJChUUlVOTkVSX09VVFBVVCkvJS5vLFx0XHRcXFxuIFx0XHRcdFx0ICQkKGZpbHRlciAlLmMsJChUUlVOTkVSX0xJQl9TT1VSQ0VTKSkpXG4gVFJVTk5FUl9FWFRSQV9IRFJTIDo9ICQkKGZpbHRlciAlLmgsJChUUlVOTkVSX0VYVFJBX1NPVVJDRVMpKVxuLVRSVU5ORVJfVEVTVFNfSERSIDo9ICQoVFJVTk5FUl9URVNUU19ESVIpL3Rlc3RzLmhcbitUUlVOTkVSX1RFU1RTX0hEUiA6PSAkKE9VVFBVVCkvJChUUlVOTkVSX1RFU1RTX0RJUikvdGVzdHMuaFxuIFRSVU5ORVJfQlBGX1NSQ1MgOj0gJCQobm90ZGlyICQkKHdpbGRjYXJkICQoVFJVTk5FUl9CUEZfUFJPR1NfRElSKS8qLmMpKVxuIFRSVU5ORVJfQlBGX09CSlMgOj0gJCQocGF0c3Vic3QgJS5jLCQkKFRSVU5ORVJfT1VUUFVUKS8lLmJwZi5vLCAkJChUUlVOTkVSX0JQRl9TUkNTKSlcbiBUUlVOTkVSX0JQRl9TS0VMUyA6PSAkJChwYXRzdWJzdCAlLmMsJCQoVFJVTk5FUl9PVVRQVVQpLyUuc2tlbC5oLFx0XFxcbkBAIC03MjAsOSArNzI0LDkgQEAgZW5kaWZcbiAjIGVuc3VyZSB3ZSBzZXQgdXAgdGVzdHMuaCBoZWFkZXIgZ2VuZXJhdGlvbiBydWxlIGp1c3Qgb25jZVxuIGlmZXEgKCQoJChUUlVOTkVSX1RFU1RTX0RJUiktdGVzdHMtaGRyKSwpXG4gJChUUlVOTkVSX1RFU1RTX0RJUiktdGVzdHMtaGRyIDo9IHlcbi0kKFRSVU5ORVJfVEVTVFNfSERSKTogJChUUlVOTkVSX1RFU1RTX0RJUikvKi5jXG4rJChUUlVOTkVSX1RFU1RTX0hEUik6ICQoVFJVTk5FUl9URVNUU19ESVIpLyouYyB8ICQoVFJVTk5FUl9PVVRQVVQpXG4gXHQkJChjYWxsIG1zZyxURVNULUhEUiwkKFRSVU5ORVJfQklOQVJZKSwkJEApXG4tXHQkJChzaGVsbCAoZWNobyAnLyogR2VuZXJhdGVkIGhlYWRlciwgZG8gbm90IGVkaXQgKi8nO1x0XHRcdFx0XHRcXFxuK1x0JCQoc2hlbGwgbWtkaXIgLXAgJCQoZGlyICQkQCkgXHUwMDI2XHUwMDI2IChlY2hvICcvKiBHZW5lcmF0ZWQgaGVhZGVyLCBkbyBub3QgZWRpdCAqLyc7XHRcdFx0XFxcbiBcdFx0ICBzZWQgLW4gLUUgJ3MvXnZvaWQgKHNlcmlhbF8pP3Rlc3RfKFthLXpBLVowLTlfXSspXFwoKHZvaWQpP1xcKS4qL0RFRklORV9URVNUKFxcMikvcCdcdFxcXG4gXHRcdFx0JChUUlVOTkVSX1RFU1RTX0RJUikvKi5jIHwgc29ydCA7XHRcXFxuIFx0XHQgKSBcdTAwM2UgJCRAKVxuQEAgLTgwMiw3ICs4MDYsNyBAQCAkKE9VVFBVVCkvJChUUlVOTkVSX0JJTkFSWSk6ICQoaWYgJChmaWx0ZXIgdGVzdF9wcm9ncyUsJDEpLCQoaWYgJChQRVJNSVNTSVZFKSwkJFxuIGVuZGVmXG4gXG4gVkVSSUZZX1NJR19TRVRVUCA6PSAkKENVUkRJUikvdmVyaWZ5X3NpZ19zZXR1cC5zaFxuLVZFUklGWV9TSUdfSERSIDo9IHZlcmlmaWNhdGlvbl9jZXJ0LmhcbitWRVJJRllfU0lHX0hEUiA6PSAkKE9VVFBVVCkvdmVyaWZpY2F0aW9uX2NlcnQuaFxuIFZFUklGSUNBVElPTl9DRVJUICAgOj0gJChCVUlMRF9ESVIpL3NpZ25pbmdfa2V5LmRlclxuIFBSSVZBVEVfS0VZIDo9ICQoQlVJTERfRElSKS9zaWduaW5nX2tleS5wZW1cbiBcbkBAIC04MjYsNyArODMwLDggQEAgTElCQVJFTkFfTUFLRV9BUkdTID0gXFxcbiBcdFx0Q0xBTkc9XCIkKENMQU5HKVwiIFxcXG4gXHRcdEJQRl9DRkxBR1M9XCIkKEJQRl9DRkxBR1MpICQoQ0xBTkdfQ0ZMQUdTKVwiIFxcXG4gXHRcdEJQRl9UQVJHRVRfRU5ESUFOPVwiJChCUEZfVEFSR0VUX0VORElBTilcIiBcXFxuLVx0XHRRPVwiJChRKVwiXG4rXHRcdFE9XCIkKFEpXCIgXFxcbitcdFx0T1VUUFVUPVwiJChPVVRQVVQpL2xpYmFyZW5hXCJcbiBcbiBMSUJBUkVOQV9CUEZfREVQUyA6PSAkKHdpbGRjYXJkIGxpYmFyZW5hL01ha2VmaWxlXHRcdFxcXG4gXHRcdFx0XHQgbGliYXJlbmEvaW5jbHVkZS8qXHRcdFxcXG5AQCAtODM1LDE3ICs4NDAsMTcgQEAgTElCQVJFTkFfQlBGX0RFUFMgOj0gJCh3aWxkY2FyZCBsaWJhcmVuYS9NYWtlZmlsZVx0XHRcXFxuIFx0XHRcdFx0IGxpYmFyZW5hL3NlbGZ0ZXN0cy8qXHRcdFxcXG4gXHRcdFx0XHQgbGliYXJlbmEvKi5icGYubylcbiBcbi1MSUJBUkVOQV9TS0VMIDo9IGxpYmFyZW5hL2xpYmFyZW5hLnNrZWwuaFxuK0xJQkFSRU5BX1NLRUwgOj0gJChPVVRQVVQpL2xpYmFyZW5hL2xpYmFyZW5hLnNrZWwuaFxuIFxuICQoTElCQVJFTkFfU0tFTCk6ICQoSU5DTFVERV9ESVIpL3ZtbGludXguaCAkKEJQRk9CSikgJChMSUJBUkVOQV9CUEZfREVQUylcbi1cdCskKE1BS0UpIC1DIGxpYmFyZW5hIGxpYmFyZW5hLnNrZWwuaCAkKExJQkFSRU5BX01BS0VfQVJHUylcbitcdCskKE1BS0UpIC1DIGxpYmFyZW5hICQoTElCQVJFTkFfU0tFTCkgJChMSUJBUkVOQV9NQUtFX0FSR1MpXG4gXG4gaWZuZXEgKCQoQ0xBTkdfSEFTX0FSRU5BX0FTQU4pLClcbi1MSUJBUkVOQV9BU0FOX1NLRUwgOj0gbGliYXJlbmEvbGliYXJlbmFfYXNhbi5za2VsLmhcbitMSUJBUkVOQV9BU0FOX1NLRUwgOj0gJChPVVRQVVQpL2xpYmFyZW5hL2xpYmFyZW5hX2FzYW4uc2tlbC5oXG4gQ0ZMQUdTICs9IC1ESEFTX0JQRl9BUkVOQV9BU0FOXG4gXG4gJChMSUJBUkVOQV9BU0FOX1NLRUwpOiAkKElOQ0xVREVfRElSKS92bWxpbnV4LmggJChCUEZPQkopICQoTElCQVJFTkFfQlBGX0RFUFMpXG4tXHQrJChNQUtFKSAtQyBsaWJhcmVuYSBsaWJhcmVuYV9hc2FuLnNrZWwuaCAkKExJQkFSRU5BX01BS0VfQVJHUylcbitcdCskKE1BS0UpIC1DIGxpYmFyZW5hICQoTElCQVJFTkFfQVNBTl9TS0VMKSAkKExJQkFSRU5BX01BS0VfQVJHUylcbiBlbmRpZlxuIFxuICMgRGVmaW5lIHRlc3RfcHJvZ3MgdGVzdCBydW5uZXIuXG5AQCAtOTIzLDE0ICs5MjgsMTQgQEAgJChldmFsICQoY2FsbCBERUZJTkVfVEVTVF9SVU5ORVIsdGVzdF9tYXBzKSlcbiAjIEl0IGlzIG11Y2ggc2ltcGxlciB0aGFuIHRlc3RfbWFwcy90ZXN0X3Byb2dzIGFuZCBzdWZmaWNpZW50bHkgZGlmZmVyZW50IGZyb21cbiAjIHRoZW0gKGUuZy4sIHRlc3QuaCBpcyB1c2luZyBjb21wbGV0ZWx5IHBhdHRlcm4pLCB0aGF0IGl0J3Mgd29ydGgganVzdFxuICMgZXhwbGljaXRseSBkZWZpbmluZyBhbGwgdGhlIHJ1bGVzIGV4cGxpY2l0bHkuXG4tdmVyaWZpZXIvdGVzdHMuaDogdmVyaWZpZXIvKi5jXG4tXHQkKHNoZWxsICggY2QgdmVyaWZpZXIvOyBcXFxuKyQoT1VUUFVUKS92ZXJpZmllci90ZXN0cy5oOiB2ZXJpZmllci8qLmMgfCAkKE9VVFBVVClcbitcdCQoc2hlbGwgbWtkaXIgLXAgJChPVVRQVVQpL3ZlcmlmaWVyIFx1MDAyNlx1MDAyNiAoIFxcXG4gXHRcdCAgZWNobyAnLyogR2VuZXJhdGVkIGhlYWRlciwgZG8gbm90IGVkaXQgKi8nOyBcXFxuIFx0XHQgIGVjaG8gJyNpZmRlZiBGSUxMX0FSUkFZJzsgXFxcbi1cdFx0ICBscyAqLmMgMlx1MDAzZSAvZGV2L251bGwgfCBzZWQgLWUgJ3NAXFwoLipcXClAI2luY2x1ZGUgXFxcIlxcMVxcXCJAJzsgXFxcbitcdFx0ICBscyB2ZXJpZmllci8qLmMgMlx1MDAzZSAvZGV2L251bGwgfCBzZWQgLWUgJ3NAXFwoLipcXClAI2luY2x1ZGUgXCIkKENVUkRJUikvXFwxXCJAJzsgXFxcbiBcdFx0ICBlY2hvICcjZW5kaWYnIFxcXG4tXHRcdCkgXHUwMDNlIHZlcmlmaWVyL3Rlc3RzLmgpXG4tJChPVVRQVVQpL3Rlc3RfdmVyaWZpZXI6IHRlc3RfdmVyaWZpZXIuYyB2ZXJpZmllci90ZXN0cy5oICQoQlBGT0JKKSB8ICQoT1VUUFVUKVxuK1x0XHQpIFx1MDAzZSAkKE9VVFBVVCkvdmVyaWZpZXIvdGVzdHMuaClcbiskKE9VVFBVVCkvdGVzdF92ZXJpZmllcjogdGVzdF92ZXJpZmllci5jICQoT1VUUFVUKS92ZXJpZmllci90ZXN0cy5oICQoQlBGT0JKKSB8ICQoT1VUUFVUKVxuIFx0JChjYWxsIG1zZyxCSU5BUlksLCRAKVxuIFx0JChRKSQoQ0MpICQoQ0ZMQUdTKSAkKGZpbHRlciAlLmEgJS5vICUuYywkXikgJChMRExJQlMpIC1vICRAXG4gXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2xpYmFyZW5hL01ha2VmaWxlIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2xpYmFyZW5hL01ha2VmaWxlXG5pbmRleCA1ZTJhYjUxNDgwNWU0Li4xOTVkNWY4MzMxODZhIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2xpYmFyZW5hL01ha2VmaWxlXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvbGliYXJlbmEvTWFrZWZpbGVcbkBAIC0yNywxMCArMjcsMTQgQEAgQlBGRElSPSQoYWJzcGF0aCAkKExJQkFSRU5BKS8uLilcbiBJTkNMVURFX0RJUiA/PSAkKEJQRkRJUikvdG9vbHMvaW5jbHVkZVxuIExJQkJQRl9JTkNMVURFID89ICQoSU5DTFVERV9ESVIpXG4gXG4rIyBCdWlsZCBvdXRwdXQgZGlyZWN0b3J5OyBkZWZhdWx0cyB0byBpbi10cmVlIGZvciBzdGFuZGFsb25lIGJ1aWxkcy5cbitPVVRQVVQgPz0gLlxuKyQoc2hlbGwgbWtkaXIgLXAgJChPVVRQVVQpKVxuK1xuICMgU2NhbiBzcmMvIGFuZCBzZWxmdGVzdHMvIHRvIGdlbmVyYXRlIHRoZSBmaW5hbCBiaW5hcmllc1xuIExJQkFSRU5BX1NPVVJDRVMgPSAkKHdpbGRjYXJkICQoTElCQVJFTkEpL3NyYy8qLmJwZi5jKSAkKHdpbGRjYXJkICQoTElCQVJFTkEpL3NlbGZ0ZXN0cy8qLmJwZi5jKVxuLUxJQkFSRU5BX09CSkVDVFMgPSAkKG5vdGRpciAkKExJQkFSRU5BX1NPVVJDRVM6LmJwZi5jPS5icGYubykpXG4tTElCQVJFTkFfT0JKRUNUU19BU0FOID0gJChub3RkaXIgJChMSUJBUkVOQV9TT1VSQ0VTOi5icGYuYz1fYXNhbi5icGYubykpXG4rTElCQVJFTkFfT0JKRUNUUyA9ICQoYWRkcHJlZml4ICQoT1VUUFVUKS8sJChub3RkaXIgJChMSUJBUkVOQV9TT1VSQ0VTOi5icGYuYz0uYnBmLm8pKSlcbitMSUJBUkVOQV9PQkpFQ1RTX0FTQU4gPSAkKGFkZHByZWZpeCAkKE9VVFBVVCkvLCQobm90ZGlyICQoTElCQVJFTkFfU09VUkNFUzouYnBmLmM9X2FzYW4uYnBmLm8pKSlcbiBcbiBJTkNMVURFUyA9IC1JJChMSUJBUkVOQSkvaW5jbHVkZSAtSSQoQlBGRElSKVxuIGlmbmVxICgkKElOQ0xVREVfRElSKSwpXG5AQCAtNjEsMzIgKzY1LDMyIEBAIENGTEFHUyArPSAkKElOQ0xVREVTKVxuIHZwYXRoICUuYnBmLmMgJChMSUJBUkVOQSkvc3JjICQoTElCQVJFTkEpL3NlbGZ0ZXN0c1xuIHZwYXRoICUuYyAkKExJQkFSRU5BKS9zcmMgJChMSUJBUkVOQSkvc2VsZnRlc3RzXG4gXG4tc2tlbGV0b25zOiBsaWJhcmVuYS5za2VsLmggbGliYXJlbmFfYXNhbi5za2VsLmhcbitza2VsZXRvbnM6ICQoT1VUUFVUKS9saWJhcmVuYS5za2VsLmggJChPVVRQVVQpL2xpYmFyZW5hX2FzYW4uc2tlbC5oXG4gLlBIT05ZOiBza2VsZXRvbnNcbiBcbi1saWJhcmVuYV9hc2FuLnNrZWwuaDogbGliYXJlbmFfYXNhbi5icGYub1xuKyQoT1VUUFVUKS9saWJhcmVuYV9hc2FuLnNrZWwuaDogJChPVVRQVVQpL2xpYmFyZW5hX2FzYW4uYnBmLm9cbiBcdCQoY2FsbCBtc2csR0VOLVNLRUwsbGliYXJlbmEsJEApXG4gXHQkKFEpJChCUEZUT09MKSBnZW4gc2tlbGV0b24gJFx1MDAzYyBuYW1lIFwibGliYXJlbmFfYXNhblwiIFx1MDAzZSAkQFxuIFxuLWxpYmFyZW5hLnNrZWwuaDogbGliYXJlbmEuYnBmLm9cbiskKE9VVFBVVCkvbGliYXJlbmEuc2tlbC5oOiAkKE9VVFBVVCkvbGliYXJlbmEuYnBmLm9cbiBcdCQoY2FsbCBtc2csR0VOLVNLRUwsbGliYXJlbmEsJEApXG4gXHQkKFEpJChCUEZUT09MKSBnZW4gc2tlbGV0b24gJFx1MDAzYyBuYW1lIFwibGliYXJlbmFcIiBcdTAwM2UgJEBcbiBcbi1saWJhcmVuYV9hc2FuLmJwZi5vOiAkKExJQkFSRU5BX09CSkVDVFNfQVNBTilcbiskKE9VVFBVVCkvbGliYXJlbmFfYXNhbi5icGYubzogJChMSUJBUkVOQV9PQkpFQ1RTX0FTQU4pXG4gXHQkKGNhbGwgbXNnLEdFTi1PQkosbGliYXJlbmEsJEApXG4gXHQkKFEpJChCUEZUT09MKSBnZW4gb2JqZWN0ICRAICReXG4gXG4tbGliYXJlbmEuYnBmLm86ICQoTElCQVJFTkFfT0JKRUNUUylcbiskKE9VVFBVVCkvbGliYXJlbmEuYnBmLm86ICQoTElCQVJFTkFfT0JKRUNUUylcbiBcdCQoY2FsbCBtc2csR0VOLU9CSixsaWJhcmVuYSwkQClcbiBcdCQoUSkkKEJQRlRPT0wpIGdlbiBvYmplY3QgJEAgJF5cbiBcbi0lX2FzYW4uYnBmLm86ICUuYnBmLmNcbiskKE9VVFBVVCkvJV9hc2FuLmJwZi5vOiAlLmJwZi5jXG4gXHQkKGNhbGwgbXNnLENMTkctQlBGLGxpYmFyZW5hLCRAKVxuIFx0JChRKSQoQ0xBTkcpICQoQlBGX0NGTEFHUykgJChBU0FOX0ZMQUdTKSAtREJQRl9BUkVOQV9BU0FOICQoQlBGX1RBUkdFVF9FTkRJQU4pIC1jICRcdTAwM2MgLW8gJEBcbiBcbi0lLmJwZi5vOiAlLmJwZi5jXG4rJChPVVRQVVQpLyUuYnBmLm86ICUuYnBmLmNcbiBcdCQoY2FsbCBtc2csQ0xORy1CUEYsbGliYXJlbmEsJEApXG4gXHQkKFEpJChDTEFORykgJChCUEZfQ0ZMQUdTKSAkKEJQRl9UQVJHRVRfRU5ESUFOKSAtYyAkXHUwMDNjIC1vICRAXG4gXG4gY2xlYW46XG4tXHQkKFEpcm0gLWYgKi5za2VsLmggKi5icGYubyAqLmxpbmtlZCoub1xuK1x0JChRKXJtIC1mICQoT1VUUFVUKS8qLnNrZWwuaCAkKE9VVFBVVCkvKi5icGYubyAkKE9VVFBVVCkvKi5saW5rZWQqLm9cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9rbW9kcy9NYWtlZmlsZSBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2ttb2RzL01ha2VmaWxlXG5pbmRleCAwMzFjNzQ1NGNlNjVmLi41M2U0N2U3MTVlYzQ0IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3Rfa21vZHMvTWFrZWZpbGVcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2ttb2RzL01ha2VmaWxlXG5AQCAtMzIsMTQgKzMyLDE3IEBAIFBFUk1JU1NJVkUgOj0gJChmaWx0ZXIgMCwkKEJQRl9TVFJJQ1RfQlVJTEQpKVxuIGFsbDpcbiBpZmVxICgkKFBFUk1JU1NJVkUpLClcbiBcdCQoUSkkKE1BS0UpIC1DICQoS0RJUikgJChpZiAkKEtNT0RfT19WQUxJRCksTz0kKEtNT0RfT19WQUxJRCkgS0JVSUxEX09VVFBVVD0kKEtNT0RfT19WQUxJRCksS0JVSUxEX09VVFBVVD0pIFxcXG4rXHRcdCQoaWYgJChPVVRQVVQpLE1PPSQoT1VUUFVUKSkgXFxcbiBcdFx0TT0kKFRFU1RfS01PRF9ESVIpIG1vZHVsZXNcbiBlbHNlIGlmbmVxIChcIiQod2lsZGNhcmQgJChLRElSKSlcIiwgXCJcIilcbiBcdCQoUSkkKE1BS0UpIC1DICQoS0RJUikgJChpZiAkKEtNT0RfT19WQUxJRCksTz0kKEtNT0RfT19WQUxJRCkgS0JVSUxEX09VVFBVVD0kKEtNT0RfT19WQUxJRCksS0JVSUxEX09VVFBVVD0pIFxcXG4rXHRcdCQoaWYgJChPVVRQVVQpLE1PPSQoT1VUUFVUKSkgXFxcbiBcdFx0TT0kKFRFU1RfS01PRF9ESVIpIG1vZHVsZXNcbiBlbmRpZlxuIFxuIGNsZWFuOlxuIGlmbmVxIChcIiQod2lsZGNhcmQgJChLRElSKSlcIiwgXCJcIilcbiBcdCQoUSkkKE1BS0UpIC1DICQoS0RJUikgJChpZiAkKEtNT0RfT19WQUxJRCksTz0kKEtNT0RfT19WQUxJRCkgS0JVSUxEX09VVFBVVD0kKEtNT0RfT19WQUxJRCksS0JVSUxEX09VVFBVVD0pIFxcXG4rXHRcdCQoaWYgJChPVVRQVVQpLE1PPSQoT1VUUFVUKSkgXFxcbiBcdFx0TT0kKFRFU1RfS01PRF9ESVIpIGNsZWFuXG4gZW5kaWZcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDA0OjE0OjMyLjY3Mjg4OTYyNVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU1NzU1NDAyNjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqV29ydGhGdXp6aW5nPWZhbHNlOiBBIFF1aWNrIEFzc2Vzc21lbnQqKlxuXG5Pa2F5LCBoZXJlJ3MgdGhlIGRlYWw6IEkndmUgZ290IGEgcGF0Y2ggaW4gZnJvbnQgb2YgbWUgdGhhdCB0b3VjaGVzIHNvbWUgTWFrZWZpbGVzIHdpdGhpbiB0aGUgQlBGIHNlbGZ0ZXN0IGZyYW1ld29yay4gU3BlY2lmaWNhbGx5LCBpdCdzIG1vZGlmeWluZyBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL01ha2VmaWxlYCwgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9saWJhcmVuYS9NYWtlZmlsZWAsIGFuZCBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3Rfa21vZHMvTWFrZWZpbGVgLiBNeSBpbW1lZGlhdGUgY29uY2VybiwgYXMgYWx3YXlzLCBpcyB3aGV0aGVyIHRoaXMgd2FycmFudHMgZnV6emluZyBlZmZvcnQuXG5cbkZyb20gbXkgaW5pdGlhbCBzY2FuLCB0aGUgY2hhbmdlcyBhcmUgZW50aXJlbHkgY29uZmluZWQgdG8gdGhlIGJ1aWxkIHN5c3RlbSBpdHNlbGYuIFRoaXMgcGF0Y2ggaXMganVzdCBhZGp1c3RpbmcgaG93IHRoZSBCUEYgc2VsZnRlc3RzIGFyZSBidWlsdCwgc3BlY2lmaWNhbGx5IGRlYWxpbmcgd2l0aCBvdXRwdXQgZGlyZWN0b3JpZXMgd2hlbiBgT1VUUFVUYCBpcyBkZWZpbmVkLiBUaGVyZSdzIG5vIG1vZGlmaWNhdGlvbiBvZiBhY3R1YWwga2VybmVsIGNvZGUsIG5vIGFsdGVyYXRpb25zIHRvIGRyaXZlcnMsIGFuZCBjZXJ0YWlubHkgbm8gYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGNoYW5nZXMuIFRoaXMgaXMgKnB1cmVseSogYnVpbGQgc3lzdGVtIGhvdXNla2VlcGluZy5cblxuTGV0IG1lIGp1c3QgcXVpY2tseSBjb25maXJtIHRoYXQgd2l0aCBhIGRlZXBlciBsb29rIGF0IHRoZSBkaWZmLiBZZXAsIGp1c3QgTWFrZWZpbGUgbW9kaWZpY2F0aW9ucyBmb3Igb3V0LW9mLXRyZWUgYnVpbGRzLiBObyBDIGNvZGUgaGFzIGJlZW4gdG91Y2hlZCwgbm90aGluZyB0aGF0IGludHJvZHVjZXMgYW55IG5ldyBmdW5jdGlvbmFsaXR5IG9yIGJ1ZyBwb3RlbnRpYWwgYXQgcnVudGltZS5cblxuU28sIGdpdmVuIHRoZSBuYXR1cmUgb2YgdGhlIGNoYW5nZXMsIEkgY2FuIGNvbmZpZGVudGx5IGRlY2xhcmUgdGhpcyBwYXRjaCBhcyAqbm90KiB3b3J0aCBmdXp6aW5nLiBJJ2xsIGZsYWcgYFdvcnRoRnV6emluZz1mYWxzZWAgYW5kIHN1Ym1pdCB0aGUgcmVzdWx0cy5cblxuXG4iLCJJbnB1dFRva2VucyI6NjA3OCwiT3V0cHV0VG9rZW5zIjo3NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0MSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMwVDA0OjE0OjM4LjI0ODQzMzI3NFoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjA3OTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBNYWtlZmlsZXMgZm9yIEJQRiBzZWxmdGVzdHMgdG8gZml4IG91dC1vZi10cmVlIGJ1aWxkcyAod2hlbiBPVVRQVVQgaXMgc2V0KS4gSXQgZG9lcyBub3QgY29udGFpbiBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgY29kZSwgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgTWFrZWZpbGVzIGZvciBCUEYgc2VsZnRlc3RzIHRvIGZpeCBvdXQtb2YtdHJlZSBidWlsZHMgKHdoZW4gT1VUUFVUIGlzIHNldCkuIEl0IGRvZXMgbm90IGNvbnRhaW4gYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIGNvZGUsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowds7hc[1] Phase: Running StartedAt: 2026-07-30 04:14:48 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowds7hc[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-07-30 04:14:48 +0000 UTC FinishedAt: 2026-07-30 04:14:53 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:code,Default:nil,Value:*1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*1,}