Name: series-workflow4hxkx Phase: Failed StartedAt: 2026-08-21 01:03:12 +0000 UTC FinishedAt: 2026-08-21 01:45:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4hxkx[0] Phase: Succeeded StartedAt: 2026-08-21 01:03:12 +0000 UTC FinishedAt: 2026-08-21 01:45:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4hxkx[0].run-triage Phase: Succeeded StartedAt: 2026-08-21 01:03:12 +0000 UTC FinishedAt: 2026-08-21 01:45: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+CgkJCTx0ZD4yMDI2LzA4LzIxIDAxOjQ1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBhZGRzIG5ldyB2bXN0YXQgY291bnRlcnMgZm9yIHBlci1vcmRlciBwYWdlIGFsbG9jYXRpb24gYW5kIGNvbXBhY3Rpb24gc3RhdGlzdGljcy4gSXQgZG9lcyBub3QgYWx0ZXIgdGhlIGZ1bmN0aW9uYWwgZXhlY3V0aW9uIGZsb3cgb2YgdGhlIGtlcm5lbCwgYXMgaXQgb25seSBpbmNyZW1lbnRzIGNvdW50ZXJzIHZpYSBjb3VudF92bV9ldmVudCgpLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMSAwMTo0NTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGRmZTk4YWU0Y2M4NzllMDQ3ZWJmNTRiMmM1NGJkYjY2MThlZDRhNGJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEF1ZyAyMSAwMTo0NToyNiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3ZtX2V2ZW50X2l0ZW0uaCBiL2luY2x1ZGUvbGludXgvdm1fZXZlbnRfaXRlbS5oXG5pbmRleCAwM2ZlOTVmNWEwMjAxLi43MjQ1NjFiN2U4MDBiIDEwMDY0NFxuLS0tIGEvaW5jbHVkZS9saW51eC92bV9ldmVudF9pdGVtLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbGludXgvdm1fZXZlbnRfaXRlbS5oXG5AQCAtMTc1LDYgJiM0MzsxNzUsMjUgQEAgZW51bSB2bV9ldmVudF9pdGVtIHsgUEdQR0lOLCBQR1BHT1VULCBQU1dQSU4sIFBTV1BPVVQsXG4gXHRcdEtTVEFDS19SRVNULFxuICNlbmRpZlxuICNlbmRpZiAvKiBDT05GSUdfREVCVUdfU1RBQ0tfVVNBR0UgKi9cbiYjNDM7XHRcdC8qXG4mIzQzO1x0XHQgKiBQZXItb3JkZXIgYWxsb2NhdGlvbiBzdGF0aXN0aWNzOiBlYWNoICpfRklSU1QuLipfTEFTVCByYW5nZVxuJiM0MztcdFx0ICogaXMgaW5kZXhlZCBieSBhbGxvY2F0aW9uIG9yZGVyLlxuJiM0MztcdFx0ICovXG4mIzQzO1x0XHRQR0FMTE9DX1NMT1dQQVRIX09SREVSX0ZJUlNULFxuJiM0MztcdFx0UEdBTExPQ19TTE9XUEFUSF9PUkRFUl9MQVNUID1cbiYjNDM7XHRcdFx0UEdBTExPQ19TTE9XUEFUSF9PUkRFUl9GSVJTVCAmIzQzOyBNQVhfUEFHRV9PUkRFUixcbiYjNDM7XHRcdFBHQUxMT0NfRkFJTF9PUkRFUl9GSVJTVCxcbiYjNDM7XHRcdFBHQUxMT0NfRkFJTF9PUkRFUl9MQVNUID1cbiYjNDM7XHRcdFx0UEdBTExPQ19GQUlMX09SREVSX0ZJUlNUICYjNDM7IE1BWF9QQUdFX09SREVSLFxuJiM0MzsjaWZkZWYgQ09ORklHX0NPTVBBQ1RJT05cbiYjNDM7XHRcdC8qIERpcmVjdCBjb21wYWN0aW9uIGlzIG5ldmVyIGVudGVyZWQgZm9yIG9yZGVyIDAgKi9cbiYjNDM7XHRcdENPTVBBQ1RTVEFMTF9PUkRFUl9GSVJTVCxcbiYjNDM7XHRcdENPTVBBQ1RTVEFMTF9PUkRFUl9MQVNUID1cbiYjNDM7XHRcdFx0Q09NUEFDVFNUQUxMX09SREVSX0ZJUlNUICYjNDM7IE1BWF9QQUdFX09SREVSIC0gMSxcbiYjNDM7XHRcdENPTVBBQ1RTVUNDRVNTX09SREVSX0ZJUlNULFxuJiM0MztcdFx0Q09NUEFDVFNVQ0NFU1NfT1JERVJfTEFTVCA9XG4mIzQzO1x0XHRcdENPTVBBQ1RTVUNDRVNTX09SREVSX0ZJUlNUICYjNDM7IE1BWF9QQUdFX09SREVSIC0gMSxcbiYjNDM7I2VuZGlmXG4gXHRcdE5SX1ZNX0VWRU5UX0lURU1TXG4gfTtcbiBcbmRpZmYgLS1naXQgYS9tbS9wYWdlX2FsbG9jLmMgYi9tbS9wYWdlX2FsbG9jLmNcbmluZGV4IGVlOTAyYTQ2OGMyZjUuLjJhMmIxNGYzYjUxNmYgMTAwNjQ0XG4tLS0gYS9tbS9wYWdlX2FsbG9jLmNcbiYjNDM7JiM0MzsmIzQzOyBiL21tL3BhZ2VfYWxsb2MuY1xuQEAgLTQxNjksNiAmIzQzOzQxNjksNyBAQCBfX2FsbG9jX3BhZ2VzX2RpcmVjdF9jb21wYWN0KGdmcF90IGdmcF9tYXNrLCB1bnNpZ25lZCBpbnQgb3JkZXIsXG4gXHQgKiBjb3VudCBhIGNvbXBhY3Rpb24gc3RhbGxcbiBcdCAqL1xuIFx0Y291bnRfdm1fZXZlbnQoQ09NUEFDVFNUQUxMKTtcbiYjNDM7XHRjb3VudF92bV9ldmVudChDT01QQUNUU1RBTExfT1JERVJfRklSU1QgJiM0Mzsgb3JkZXIgLSAxKTtcbiBcbiBcdC8qIFByZXAgYSBjYXB0dXJlZCBwYWdlIGlmIGF2YWlsYWJsZSAqL1xuIFx0aWYgKHBhZ2UpXG5AQCAtNDE4NCw2ICYjNDM7NDE4NSw3IEBAIF9fYWxsb2NfcGFnZXNfZGlyZWN0X2NvbXBhY3QoZ2ZwX3QgZ2ZwX21hc2ssIHVuc2lnbmVkIGludCBvcmRlcixcbiBcdFx0em9uZS1cdTAwM2Vjb21wYWN0X2Jsb2Nrc2tpcF9mbHVzaCA9IGZhbHNlO1xuIFx0XHRjb21wYWN0aW9uX2RlZmVyX3Jlc2V0KHpvbmUsIG9yZGVyLCB0cnVlKTtcbiBcdFx0Y291bnRfdm1fZXZlbnQoQ09NUEFDVFNVQ0NFU1MpO1xuJiM0MztcdFx0Y291bnRfdm1fZXZlbnQoQ09NUEFDVFNVQ0NFU1NfT1JERVJfRklSU1QgJiM0Mzsgb3JkZXIgLSAxKTtcbiBcdFx0cmV0dXJuIHBhZ2U7XG4gXHR9XG4gXG5AQCAtNDc1Nyw2ICYjNDM7NDc1OSw4IEBAIF9fYWxsb2NfcGFnZXNfc2xvd3BhdGgoZ2ZwX3QgZ2ZwX21hc2ssIHVuc2lnbmVkIGludCBvcmRlcixcbiBcdFx0V0FSTl9PTl9PTkNFKGN1cnJlbnQtXHUwMDNlZmxhZ3MgXHUwMDI2IFBGX01FTUFMTE9DKTtcbiBcdH1cbiBcbiYjNDM7XHRjb3VudF92bV9ldmVudChQR0FMTE9DX1NMT1dQQVRIX09SREVSX0ZJUlNUICYjNDM7IG9yZGVyKTtcbiYjNDM7XG4gcmVzdGFydDpcbiBcdGNvbXBhY3Rpb25fcmV0cmllcyA9IDA7XG4gXHRub19wcm9ncmVzc19sb29wcyA9IDA7XG5AQCAtNTMyMyw2ICYjNDM7NTMyNyw5IEBAIHN0cnVjdCBwYWdlICpfX2FsbG9jX2Zyb3plbl9wYWdlc19ub3Byb2YoZ2ZwX3QgZ2ZwLCB1bnNpZ25lZCBpbnQgb3JkZXIsXG4gXHRcdHBhZ2UgPSBOVUxMO1xuIFx0fVxuIFxuJiM0MztcdGlmICh1bmxpa2VseSghcGFnZSkpXG4mIzQzO1x0XHRjb3VudF92bV9ldmVudChQR0FMTE9DX0ZBSUxfT1JERVJfRklSU1QgJiM0Mzsgb3JkZXIpO1xuJiM0MztcbiBcdHRyYWNlX21tX3BhZ2VfYWxsb2MocGFnZSwgb3JkZXIsIGFsbG9jX2dmcCwgYWMubWlncmF0ZXR5cGUpO1xuIFx0a21zYW5fYWxsb2NfcGFnZShwYWdlLCBvcmRlciwgYWxsb2NfZ2ZwKTtcbiBcbmRpZmYgLS1naXQgYS9tbS92bXN0YXQuYyBiL21tL3Ztc3RhdC5jXG5pbmRleCBmNTM0OTcyZjUxN2RlLi4wOGYwZWJjN2ZmNDNjIDEwMDY0NFxuLS0tIGEvbW0vdm1zdGF0LmNcbiYjNDM7JiM0MzsmIzQzOyBiL21tL3Ztc3RhdC5jXG5AQCAtMTE4NCw2ICYjNDM7MTE4NCw5NCBAQCBpbnQgZnJhZ21lbnRhdGlvbl9pbmRleChzdHJ1Y3Qgem9uZSAqem9uZSwgdW5zaWduZWQgaW50IG9yZGVyKVxuIFx0W3h4IyNfTU9WQUJMRV0gPSB5eSBcJiMzNDtfbW92YWJsZVwmIzM0OyxcdFx0XFxcbiBcdFRFWFRfRk9SX0RFVklDRSh4eCwgeXkpXG4gXG4mIzQzOyNpZiBNQVhfUEFHRV9PUkRFUiBcdTAwM2U9IDRcbiYjNDM7I2RlZmluZSBURVhUX0ZPUl9PUkRFUl80KHh4LCB5eSkgW0koKHh4KSAmIzQzOyA0KV0gPSB5eSBcJiMzNDs0XCYjMzQ7LFxuJiM0MzsjZWxzZVxuJiM0MzsjZGVmaW5lIFRFWFRfRk9SX09SREVSXzQoeHgsIHl5KVxuJiM0MzsjZW5kaWZcbiYjNDM7XG4mIzQzOyNpZiBNQVhfUEFHRV9PUkRFUiBcdTAwM2U9IDVcbiYjNDM7I2RlZmluZSBURVhUX0ZPUl9PUkRFUl81KHh4LCB5eSkgW0koKHh4KSAmIzQzOyA1KV0gPSB5eSBcJiMzNDs1XCYjMzQ7LFxuJiM0MzsjZWxzZVxuJiM0MzsjZGVmaW5lIFRFWFRfRk9SX09SREVSXzUoeHgsIHl5KVxuJiM0MzsjZW5kaWZcbiYjNDM7XG4mIzQzOyNpZiBNQVhfUEFHRV9PUkRFUiBcdTAwM2U9IDZcbiYjNDM7I2RlZmluZSBURVhUX0ZPUl9PUkRFUl82KHh4LCB5eSkgW0koKHh4KSAmIzQzOyA2KV0gPSB5eSBcJiMzNDs2XCYjMzQ7LFxuJiM0MzsjZWxzZVxuJiM0MzsjZGVmaW5lIFRFWFRfRk9SX09SREVSXzYoeHgsIHl5KVxuJiM0MzsjZW5kaWZcbiYjNDM7XG4mIzQzOyNpZiBNQVhfUEFHRV9PUkRFUiBcdTAwM2U9IDdcbiYjNDM7I2RlZmluZSBURVhUX0ZPUl9PUkRFUl83KHh4LCB5eSkgW0koKHh4KSAmIzQzOyA3KV0gPSB5eSBcJiMzNDs3XCYjMzQ7LFxuJiM0MzsjZWxzZVxuJiM0MzsjZGVmaW5lIFRFWFRfRk9SX09SREVSXzcoeHgsIHl5KVxuJiM0MzsjZW5kaWZcbiYjNDM7XG4mIzQzOyNpZiBNQVhfUEFHRV9PUkRFUiBcdTAwM2U9IDhcbiYjNDM7I2RlZmluZSBURVhUX0ZPUl9PUkRFUl84KHh4LCB5eSkgW0koKHh4KSAmIzQzOyA4KV0gPSB5eSBcJiMzNDs4XCYjMzQ7LFxuJiM0MzsjZWxzZVxuJiM0MzsjZGVmaW5lIFRFWFRfRk9SX09SREVSXzgoeHgsIHl5KVxuJiM0MzsjZW5kaWZcbiYjNDM7XG4mIzQzOyNpZiBNQVhfUEFHRV9PUkRFUiBcdTAwM2U9IDlcbiYjNDM7I2RlZmluZSBURVhUX0ZPUl9PUkRFUl85KHh4LCB5eSkgW0koKHh4KSAmIzQzOyA5KV0gPSB5eSBcJiMzNDs5XCYjMzQ7LFxuJiM0MzsjZWxzZVxuJiM0MzsjZGVmaW5lIFRFWFRfRk9SX09SREVSXzkoeHgsIHl5KVxuJiM0MzsjZW5kaWZcbiYjNDM7XG4mIzQzOyNpZiBNQVhfUEFHRV9PUkRFUiBcdTAwM2U9IDEwXG4mIzQzOyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfMTAoeHgsIHl5KSBbSSgoeHgpICYjNDM7IDEwKV0gPSB5eSBcJiMzNDsxMFwmIzM0OyxcbiYjNDM7I2Vsc2VcbiYjNDM7I2RlZmluZSBURVhUX0ZPUl9PUkRFUl8xMCh4eCwgeXkpXG4mIzQzOyNlbmRpZlxuJiM0MztcbiYjNDM7I2lmIE1BWF9QQUdFX09SREVSIFx1MDAzZT0gMTFcbiYjNDM7I2RlZmluZSBURVhUX0ZPUl9PUkRFUl8xMSh4eCwgeXkpIFtJKCh4eCkgJiM0MzsgMTEpXSA9IHl5IFwmIzM0OzExXCYjMzQ7LFxuJiM0MzsjZWxzZVxuJiM0MzsjZGVmaW5lIFRFWFRfRk9SX09SREVSXzExKHh4LCB5eSlcbiYjNDM7I2VuZGlmXG4mIzQzO1xuJiM0MzsjaWYgTUFYX1BBR0VfT1JERVIgXHUwMDNlPSAxMlxuJiM0MzsjZGVmaW5lIFRFWFRfRk9SX09SREVSXzEyKHh4LCB5eSkgW0koKHh4KSAmIzQzOyAxMildID0geXkgXCYjMzQ7MTJcJiMzNDssXG4mIzQzOyNlbHNlXG4mIzQzOyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfMTIoeHgsIHl5KVxuJiM0MzsjZW5kaWZcbiYjNDM7XG4mIzQzOyNpZiBNQVhfUEFHRV9PUkRFUiBcdTAwM2U9IDEzXG4mIzQzOyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfMTMoeHgsIHl5KSBbSSgoeHgpICYjNDM7IDEzKV0gPSB5eSBcJiMzNDsxM1wmIzM0OyxcbiYjNDM7I2Vsc2VcbiYjNDM7I2RlZmluZSBURVhUX0ZPUl9PUkRFUl8xMyh4eCwgeXkpXG4mIzQzOyNlbmRpZlxuJiM0MztcbiYjNDM7c3RhdGljX2Fzc2VydChNQVhfUEFHRV9PUkRFUiBcdTAwM2U9IDQgXHUwMDI2XHUwMDI2IE1BWF9QQUdFX09SREVSIFx1MDAzYz0gMTMsXG4mIzQzO1x0ICAgICAgXCYjMzQ7dGhlIHBlci1vcmRlciBjb3VudGVyIG5hbWVzIG5lZWQgdXBkYXRpbmcgZm9yIHRoaXMgTUFYX1BBR0VfT1JERVJcJiMzNDspO1xuJiM0MztcbiYjNDM7LypcbiYjNDM7ICogKHh4KSAmIzQzOyBuIG11c3QgcmVzb2x2ZSB0byB0aGUgdm1fZXZlbnRfaXRlbSBmb3Igb3JkZXIgbiwgc28gcmFuZ2VzIHRoYXRcbiYjNDM7ICogc3RhcnQgYXQgb3JkZXIgMSBwYXNzIHRoZWlyICpfT1JERVJfRklSU1QgaXRlbSBtaW51cyBvbmUuIE9yZGVycyAxLi4zXG4mIzQzOyAqIGFyZSBnZW5lcmF0ZWQgdW5jb25kaXRpb25hbGx5LCA0Li4xMyBhcmUgTUFYX1BBR0VfT1JERVIgZGVwZW5kZW50IChlLmcuXG4mIzQzOyAqIHBwYzMyIHdpdGggMjU2ayBwYWdlcyBmb3JjZXMgNCBieSBkZWZhdWx0KS5cbiYjNDM7ICovXG4mIzQzOyNkZWZpbmUgVEVYVFNfRk9SX05PTlpFUk9fT1JERVJTKHh4LCB5eSlcdFxcXG4mIzQzO1x0W0koKHh4KSAmIzQzOyAxKV0gPSB5eSBcJiMzNDsxXCYjMzQ7LFx0XHRcdFxcXG4mIzQzO1x0W0koKHh4KSAmIzQzOyAyKV0gPSB5eSBcJiMzNDsyXCYjMzQ7LFx0XHRcdFxcXG4mIzQzO1x0W0koKHh4KSAmIzQzOyAzKV0gPSB5eSBcJiMzNDszXCYjMzQ7LFx0XHRcdFxcXG4mIzQzO1x0VEVYVF9GT1JfT1JERVJfNCh4eCwgeXkpXHRcdFxcXG4mIzQzO1x0VEVYVF9GT1JfT1JERVJfNSh4eCwgeXkpXHRcdFxcXG4mIzQzO1x0VEVYVF9GT1JfT1JERVJfNih4eCwgeXkpXHRcdFxcXG4mIzQzO1x0VEVYVF9GT1JfT1JERVJfNyh4eCwgeXkpXHRcdFxcXG4mIzQzO1x0VEVYVF9GT1JfT1JERVJfOCh4eCwgeXkpXHRcdFxcXG4mIzQzO1x0VEVYVF9GT1JfT1JERVJfOSh4eCwgeXkpXHRcdFxcXG4mIzQzO1x0VEVYVF9GT1JfT1JERVJfMTAoeHgsIHl5KVx0XHRcXFxuJiM0MztcdFRFWFRfRk9SX09SREVSXzExKHh4LCB5eSlcdFx0XFxcbiYjNDM7XHRURVhUX0ZPUl9PUkRFUl8xMih4eCwgeXkpXHRcdFxcXG4mIzQzO1x0VEVYVF9GT1JfT1JERVJfMTMoeHgsIHl5KVxuJiM0MztcbiYjNDM7I2RlZmluZSBURVhUU19GT1JfT1JERVJTKHh4LCB5eSlcdFx0XFxcbiYjNDM7XHRbSSh4eCldID0geXkgXCYjMzQ7MFwmIzM0OyxcdFx0XHRcXFxuJiM0MztcdFRFWFRTX0ZPUl9OT05aRVJPX09SREVSUyh4eCwgeXkpXG4mIzQzO1xuIGNvbnN0IGNoYXIgKiBjb25zdCB2bXN0YXRfdGV4dFtdID0ge1xuIFx0LyogZW51bSB6b25lX3N0YXRfaXRlbSBjb3VudGVycyAqL1xuICNkZWZpbmUgSSh4KSAoeClcbkBAIC0xNDg4LDYgJiM0MzsxNTc2LDE0IEBAIGNvbnN0IGNoYXIgKiBjb25zdCB2bXN0YXRfdGV4dFtdID0ge1xuICNpZiBUSFJFQURfU0laRSBcdTAwM2UgNjU1MzZcbiBcdFtJKEtTVEFDS19SRVNUKV1cdFx0XHQ9IFwmIzM0O2tzdGFja19yZXN0XCYjMzQ7LFxuICNlbmRpZlxuJiM0MzsjZW5kaWZcbiYjNDM7XHRURVhUU19GT1JfT1JERVJTKFBHQUxMT0NfU0xPV1BBVEhfT1JERVJfRklSU1QsIFwmIzM0O3BnYWxsb2Nfc2xvd3BhdGhfb3JkZXJcJiMzNDspXG4mIzQzO1x0VEVYVFNfRk9SX09SREVSUyhQR0FMTE9DX0ZBSUxfT1JERVJfRklSU1QsIFwmIzM0O3BnYWxsb2NfZmFpbF9vcmRlclwmIzM0OylcbiYjNDM7I2lmZGVmIENPTkZJR19DT01QQUNUSU9OXG4mIzQzO1x0VEVYVFNfRk9SX05PTlpFUk9fT1JERVJTKENPTVBBQ1RTVEFMTF9PUkRFUl9GSVJTVCAtIDEsXG4mIzQzO1x0XHRcdFx0IFwmIzM0O2NvbXBhY3Rfc3RhbGxfb3JkZXJcJiMzNDspXG4mIzQzO1x0VEVYVFNfRk9SX05PTlpFUk9fT1JERVJTKENPTVBBQ1RTVUNDRVNTX09SREVSX0ZJUlNUIC0gMSxcbiYjNDM7XHRcdFx0XHQgXCYjMzQ7Y29tcGFjdF9zdWNjZXNzX29yZGVyXCYjMzQ7KVxuICNlbmRpZlxuICN1bmRlZiBJXG4gI2VuZGlmIC8qIENPTkZJR19WTV9FVkVOVF9DT1VOVEVSUyAqL1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIxIDAxOjQ1PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IGFkZHMgbmV3IHZtc3RhdCBjb3VudGVycyBmb3IgcGVyLW9yZGVyIHBhZ2UgYWxsb2NhdGlvbiBhbmQgY29tcGFjdGlvbiBzdGF0aXN0aWNzLiBJdCBkb2VzIG5vdCBhbHRlciB0aGUgZnVuY3Rpb25hbCBleGVjdXRpb24gZmxvdyBvZiB0aGUga2VybmVsLCBhcyBpdCBvbmx5IGluY3JlbWVudHMgY291bnRlcnMgdmlhIGNvdW50X3ZtX2V2ZW50KCkuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZGZlOThhZTRjYzg3OWUwNDdlYmY1NGIyYzU0YmRiNjYxOGVkNGE0YgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBGcmkgQXVnIDIxIDAxOjQ1OjI2IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC92bV9ldmVudF9pdGVtLmggYi9pbmNsdWRlL2xpbnV4L3ZtX2V2ZW50X2l0ZW0uaAppbmRleCAwM2ZlOTVmNWEwMjAxLi43MjQ1NjFiN2U4MDBiIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3ZtX2V2ZW50X2l0ZW0uaAomIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL2xpbnV4L3ZtX2V2ZW50X2l0ZW0uaApAQCAtMTc1LDYgJiM0MzsxNzUsMjUgQEAgZW51bSB2bV9ldmVudF9pdGVtIHsgUEdQR0lOLCBQR1BHT1VULCBQU1dQSU4sIFBTV1BPVVQsCiAJCUtTVEFDS19SRVNULAogI2VuZGlmCiAjZW5kaWYgLyogQ09ORklHX0RFQlVHX1NUQUNLX1VTQUdFICovCiYjNDM7CQkvKgomIzQzOwkJICogUGVyLW9yZGVyIGFsbG9jYXRpb24gc3RhdGlzdGljczogZWFjaCAqX0ZJUlNULi4qX0xBU1QgcmFuZ2UKJiM0MzsJCSAqIGlzIGluZGV4ZWQgYnkgYWxsb2NhdGlvbiBvcmRlci4KJiM0MzsJCSAqLwomIzQzOwkJUEdBTExPQ19TTE9XUEFUSF9PUkRFUl9GSVJTVCwKJiM0MzsJCVBHQUxMT0NfU0xPV1BBVEhfT1JERVJfTEFTVCA9CiYjNDM7CQkJUEdBTExPQ19TTE9XUEFUSF9PUkRFUl9GSVJTVCAmIzQzOyBNQVhfUEFHRV9PUkRFUiwKJiM0MzsJCVBHQUxMT0NfRkFJTF9PUkRFUl9GSVJTVCwKJiM0MzsJCVBHQUxMT0NfRkFJTF9PUkRFUl9MQVNUID0KJiM0MzsJCQlQR0FMTE9DX0ZBSUxfT1JERVJfRklSU1QgJiM0MzsgTUFYX1BBR0VfT1JERVIsCiYjNDM7I2lmZGVmIENPTkZJR19DT01QQUNUSU9OCiYjNDM7CQkvKiBEaXJlY3QgY29tcGFjdGlvbiBpcyBuZXZlciBlbnRlcmVkIGZvciBvcmRlciAwICovCiYjNDM7CQlDT01QQUNUU1RBTExfT1JERVJfRklSU1QsCiYjNDM7CQlDT01QQUNUU1RBTExfT1JERVJfTEFTVCA9CiYjNDM7CQkJQ09NUEFDVFNUQUxMX09SREVSX0ZJUlNUICYjNDM7IE1BWF9QQUdFX09SREVSIC0gMSwKJiM0MzsJCUNPTVBBQ1RTVUNDRVNTX09SREVSX0ZJUlNULAomIzQzOwkJQ09NUEFDVFNVQ0NFU1NfT1JERVJfTEFTVCA9CiYjNDM7CQkJQ09NUEFDVFNVQ0NFU1NfT1JERVJfRklSU1QgJiM0MzsgTUFYX1BBR0VfT1JERVIgLSAxLAomIzQzOyNlbmRpZgogCQlOUl9WTV9FVkVOVF9JVEVNUwogfTsKIApkaWZmIC0tZ2l0IGEvbW0vcGFnZV9hbGxvYy5jIGIvbW0vcGFnZV9hbGxvYy5jCmluZGV4IGVlOTAyYTQ2OGMyZjUuLjJhMmIxNGYzYjUxNmYgMTAwNjQ0Ci0tLSBhL21tL3BhZ2VfYWxsb2MuYwomIzQzOyYjNDM7JiM0MzsgYi9tbS9wYWdlX2FsbG9jLmMKQEAgLTQxNjksNiAmIzQzOzQxNjksNyBAQCBfX2FsbG9jX3BhZ2VzX2RpcmVjdF9jb21wYWN0KGdmcF90IGdmcF9tYXNrLCB1bnNpZ25lZCBpbnQgb3JkZXIsCiAJICogY291bnQgYSBjb21wYWN0aW9uIHN0YWxsCiAJICovCiAJY291bnRfdm1fZXZlbnQoQ09NUEFDVFNUQUxMKTsKJiM0MzsJY291bnRfdm1fZXZlbnQoQ09NUEFDVFNUQUxMX09SREVSX0ZJUlNUICYjNDM7IG9yZGVyIC0gMSk7CiAKIAkvKiBQcmVwIGEgY2FwdHVyZWQgcGFnZSBpZiBhdmFpbGFibGUgKi8KIAlpZiAocGFnZSkKQEAgLTQxODQsNiAmIzQzOzQxODUsNyBAQCBfX2FsbG9jX3BhZ2VzX2RpcmVjdF9jb21wYWN0KGdmcF90IGdmcF9tYXNrLCB1bnNpZ25lZCBpbnQgb3JkZXIsCiAJCXpvbmUtJmd0O2NvbXBhY3RfYmxvY2tza2lwX2ZsdXNoID0gZmFsc2U7CiAJCWNvbXBhY3Rpb25fZGVmZXJfcmVzZXQoem9uZSwgb3JkZXIsIHRydWUpOwogCQljb3VudF92bV9ldmVudChDT01QQUNUU1VDQ0VTUyk7CiYjNDM7CQljb3VudF92bV9ldmVudChDT01QQUNUU1VDQ0VTU19PUkRFUl9GSVJTVCAmIzQzOyBvcmRlciAtIDEpOwogCQlyZXR1cm4gcGFnZTsKIAl9CiAKQEAgLTQ3NTcsNiAmIzQzOzQ3NTksOCBAQCBfX2FsbG9jX3BhZ2VzX3Nsb3dwYXRoKGdmcF90IGdmcF9tYXNrLCB1bnNpZ25lZCBpbnQgb3JkZXIsCiAJCVdBUk5fT05fT05DRShjdXJyZW50LSZndDtmbGFncyAmYW1wOyBQRl9NRU1BTExPQyk7CiAJfQogCiYjNDM7CWNvdW50X3ZtX2V2ZW50KFBHQUxMT0NfU0xPV1BBVEhfT1JERVJfRklSU1QgJiM0Mzsgb3JkZXIpOwomIzQzOwogcmVzdGFydDoKIAljb21wYWN0aW9uX3JldHJpZXMgPSAwOwogCW5vX3Byb2dyZXNzX2xvb3BzID0gMDsKQEAgLTUzMjMsNiAmIzQzOzUzMjcsOSBAQCBzdHJ1Y3QgcGFnZSAqX19hbGxvY19mcm96ZW5fcGFnZXNfbm9wcm9mKGdmcF90IGdmcCwgdW5zaWduZWQgaW50IG9yZGVyLAogCQlwYWdlID0gTlVMTDsKIAl9CiAKJiM0MzsJaWYgKHVubGlrZWx5KCFwYWdlKSkKJiM0MzsJCWNvdW50X3ZtX2V2ZW50KFBHQUxMT0NfRkFJTF9PUkRFUl9GSVJTVCAmIzQzOyBvcmRlcik7CiYjNDM7CiAJdHJhY2VfbW1fcGFnZV9hbGxvYyhwYWdlLCBvcmRlciwgYWxsb2NfZ2ZwLCBhYy5taWdyYXRldHlwZSk7CiAJa21zYW5fYWxsb2NfcGFnZShwYWdlLCBvcmRlciwgYWxsb2NfZ2ZwKTsKIApkaWZmIC0tZ2l0IGEvbW0vdm1zdGF0LmMgYi9tbS92bXN0YXQuYwppbmRleCBmNTM0OTcyZjUxN2RlLi4wOGYwZWJjN2ZmNDNjIDEwMDY0NAotLS0gYS9tbS92bXN0YXQuYwomIzQzOyYjNDM7JiM0MzsgYi9tbS92bXN0YXQuYwpAQCAtMTE4NCw2ICYjNDM7MTE4NCw5NCBAQCBpbnQgZnJhZ21lbnRhdGlvbl9pbmRleChzdHJ1Y3Qgem9uZSAqem9uZSwgdW5zaWduZWQgaW50IG9yZGVyKQogCVt4eCMjX01PVkFCTEVdID0geXkgJiMzNDtfbW92YWJsZSYjMzQ7LAkJXAogCVRFWFRfRk9SX0RFVklDRSh4eCwgeXkpCiAKJiM0MzsjaWYgTUFYX1BBR0VfT1JERVIgJmd0Oz0gNAomIzQzOyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfNCh4eCwgeXkpIFtJKCh4eCkgJiM0MzsgNCldID0geXkgJiMzNDs0JiMzNDssCiYjNDM7I2Vsc2UKJiM0MzsjZGVmaW5lIFRFWFRfRk9SX09SREVSXzQoeHgsIHl5KQomIzQzOyNlbmRpZgomIzQzOwomIzQzOyNpZiBNQVhfUEFHRV9PUkRFUiAmZ3Q7PSA1CiYjNDM7I2RlZmluZSBURVhUX0ZPUl9PUkRFUl81KHh4LCB5eSkgW0koKHh4KSAmIzQzOyA1KV0gPSB5eSAmIzM0OzUmIzM0OywKJiM0MzsjZWxzZQomIzQzOyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfNSh4eCwgeXkpCiYjNDM7I2VuZGlmCiYjNDM7CiYjNDM7I2lmIE1BWF9QQUdFX09SREVSICZndDs9IDYKJiM0MzsjZGVmaW5lIFRFWFRfRk9SX09SREVSXzYoeHgsIHl5KSBbSSgoeHgpICYjNDM7IDYpXSA9IHl5ICYjMzQ7NiYjMzQ7LAomIzQzOyNlbHNlCiYjNDM7I2RlZmluZSBURVhUX0ZPUl9PUkRFUl82KHh4LCB5eSkKJiM0MzsjZW5kaWYKJiM0MzsKJiM0MzsjaWYgTUFYX1BBR0VfT1JERVIgJmd0Oz0gNwomIzQzOyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfNyh4eCwgeXkpIFtJKCh4eCkgJiM0MzsgNyldID0geXkgJiMzNDs3JiMzNDssCiYjNDM7I2Vsc2UKJiM0MzsjZGVmaW5lIFRFWFRfRk9SX09SREVSXzcoeHgsIHl5KQomIzQzOyNlbmRpZgomIzQzOwomIzQzOyNpZiBNQVhfUEFHRV9PUkRFUiAmZ3Q7PSA4CiYjNDM7I2RlZmluZSBURVhUX0ZPUl9PUkRFUl84KHh4LCB5eSkgW0koKHh4KSAmIzQzOyA4KV0gPSB5eSAmIzM0OzgmIzM0OywKJiM0MzsjZWxzZQomIzQzOyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfOCh4eCwgeXkpCiYjNDM7I2VuZGlmCiYjNDM7CiYjNDM7I2lmIE1BWF9QQUdFX09SREVSICZndDs9IDkKJiM0MzsjZGVmaW5lIFRFWFRfRk9SX09SREVSXzkoeHgsIHl5KSBbSSgoeHgpICYjNDM7IDkpXSA9IHl5ICYjMzQ7OSYjMzQ7LAomIzQzOyNlbHNlCiYjNDM7I2RlZmluZSBURVhUX0ZPUl9PUkRFUl85KHh4LCB5eSkKJiM0MzsjZW5kaWYKJiM0MzsKJiM0MzsjaWYgTUFYX1BBR0VfT1JERVIgJmd0Oz0gMTAKJiM0MzsjZGVmaW5lIFRFWFRfRk9SX09SREVSXzEwKHh4LCB5eSkgW0koKHh4KSAmIzQzOyAxMCldID0geXkgJiMzNDsxMCYjMzQ7LAomIzQzOyNlbHNlCiYjNDM7I2RlZmluZSBURVhUX0ZPUl9PUkRFUl8xMCh4eCwgeXkpCiYjNDM7I2VuZGlmCiYjNDM7CiYjNDM7I2lmIE1BWF9QQUdFX09SREVSICZndDs9IDExCiYjNDM7I2RlZmluZSBURVhUX0ZPUl9PUkRFUl8xMSh4eCwgeXkpIFtJKCh4eCkgJiM0MzsgMTEpXSA9IHl5ICYjMzQ7MTEmIzM0OywKJiM0MzsjZWxzZQomIzQzOyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfMTEoeHgsIHl5KQomIzQzOyNlbmRpZgomIzQzOwomIzQzOyNpZiBNQVhfUEFHRV9PUkRFUiAmZ3Q7PSAxMgomIzQzOyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfMTIoeHgsIHl5KSBbSSgoeHgpICYjNDM7IDEyKV0gPSB5eSAmIzM0OzEyJiMzNDssCiYjNDM7I2Vsc2UKJiM0MzsjZGVmaW5lIFRFWFRfRk9SX09SREVSXzEyKHh4LCB5eSkKJiM0MzsjZW5kaWYKJiM0MzsKJiM0MzsjaWYgTUFYX1BBR0VfT1JERVIgJmd0Oz0gMTMKJiM0MzsjZGVmaW5lIFRFWFRfRk9SX09SREVSXzEzKHh4LCB5eSkgW0koKHh4KSAmIzQzOyAxMyldID0geXkgJiMzNDsxMyYjMzQ7LAomIzQzOyNlbHNlCiYjNDM7I2RlZmluZSBURVhUX0ZPUl9PUkRFUl8xMyh4eCwgeXkpCiYjNDM7I2VuZGlmCiYjNDM7CiYjNDM7c3RhdGljX2Fzc2VydChNQVhfUEFHRV9PUkRFUiAmZ3Q7PSA0ICZhbXA7JmFtcDsgTUFYX1BBR0VfT1JERVIgJmx0Oz0gMTMsCiYjNDM7CSAgICAgICYjMzQ7dGhlIHBlci1vcmRlciBjb3VudGVyIG5hbWVzIG5lZWQgdXBkYXRpbmcgZm9yIHRoaXMgTUFYX1BBR0VfT1JERVImIzM0Oyk7CiYjNDM7CiYjNDM7LyoKJiM0MzsgKiAoeHgpICYjNDM7IG4gbXVzdCByZXNvbHZlIHRvIHRoZSB2bV9ldmVudF9pdGVtIGZvciBvcmRlciBuLCBzbyByYW5nZXMgdGhhdAomIzQzOyAqIHN0YXJ0IGF0IG9yZGVyIDEgcGFzcyB0aGVpciAqX09SREVSX0ZJUlNUIGl0ZW0gbWludXMgb25lLiBPcmRlcnMgMS4uMwomIzQzOyAqIGFyZSBnZW5lcmF0ZWQgdW5jb25kaXRpb25hbGx5LCA0Li4xMyBhcmUgTUFYX1BBR0VfT1JERVIgZGVwZW5kZW50IChlLmcuCiYjNDM7ICogcHBjMzIgd2l0aCAyNTZrIHBhZ2VzIGZvcmNlcyA0IGJ5IGRlZmF1bHQpLgomIzQzOyAqLwomIzQzOyNkZWZpbmUgVEVYVFNfRk9SX05PTlpFUk9fT1JERVJTKHh4LCB5eSkJXAomIzQzOwlbSSgoeHgpICYjNDM7IDEpXSA9IHl5ICYjMzQ7MSYjMzQ7LAkJCVwKJiM0MzsJW0koKHh4KSAmIzQzOyAyKV0gPSB5eSAmIzM0OzImIzM0OywJCQlcCiYjNDM7CVtJKCh4eCkgJiM0MzsgMyldID0geXkgJiMzNDszJiMzNDssCQkJXAomIzQzOwlURVhUX0ZPUl9PUkRFUl80KHh4LCB5eSkJCVwKJiM0MzsJVEVYVF9GT1JfT1JERVJfNSh4eCwgeXkpCQlcCiYjNDM7CVRFWFRfRk9SX09SREVSXzYoeHgsIHl5KQkJXAomIzQzOwlURVhUX0ZPUl9PUkRFUl83KHh4LCB5eSkJCVwKJiM0MzsJVEVYVF9GT1JfT1JERVJfOCh4eCwgeXkpCQlcCiYjNDM7CVRFWFRfRk9SX09SREVSXzkoeHgsIHl5KQkJXAomIzQzOwlURVhUX0ZPUl9PUkRFUl8xMCh4eCwgeXkpCQlcCiYjNDM7CVRFWFRfRk9SX09SREVSXzExKHh4LCB5eSkJCVwKJiM0MzsJVEVYVF9GT1JfT1JERVJfMTIoeHgsIHl5KQkJXAomIzQzOwlURVhUX0ZPUl9PUkRFUl8xMyh4eCwgeXkpCiYjNDM7CiYjNDM7I2RlZmluZSBURVhUU19GT1JfT1JERVJTKHh4LCB5eSkJCVwKJiM0MzsJW0koeHgpXSA9IHl5ICYjMzQ7MCYjMzQ7LAkJCVwKJiM0MzsJVEVYVFNfRk9SX05PTlpFUk9fT1JERVJTKHh4LCB5eSkKJiM0MzsKIGNvbnN0IGNoYXIgKiBjb25zdCB2bXN0YXRfdGV4dFtdID0gewogCS8qIGVudW0gem9uZV9zdGF0X2l0ZW0gY291bnRlcnMgKi8KICNkZWZpbmUgSSh4KSAoeCkKQEAgLTE0ODgsNiAmIzQzOzE1NzYsMTQgQEAgY29uc3QgY2hhciAqIGNvbnN0IHZtc3RhdF90ZXh0W10gPSB7CiAjaWYgVEhSRUFEX1NJWkUgJmd0OyA2NTUzNgogCVtJKEtTVEFDS19SRVNUKV0JCQk9ICYjMzQ7a3N0YWNrX3Jlc3QmIzM0OywKICNlbmRpZgomIzQzOyNlbmRpZgomIzQzOwlURVhUU19GT1JfT1JERVJTKFBHQUxMT0NfU0xPV1BBVEhfT1JERVJfRklSU1QsICYjMzQ7cGdhbGxvY19zbG93cGF0aF9vcmRlciYjMzQ7KQomIzQzOwlURVhUU19GT1JfT1JERVJTKFBHQUxMT0NfRkFJTF9PUkRFUl9GSVJTVCwgJiMzNDtwZ2FsbG9jX2ZhaWxfb3JkZXImIzM0OykKJiM0MzsjaWZkZWYgQ09ORklHX0NPTVBBQ1RJT04KJiM0MzsJVEVYVFNfRk9SX05PTlpFUk9fT1JERVJTKENPTVBBQ1RTVEFMTF9PUkRFUl9GSVJTVCAtIDEsCiYjNDM7CQkJCSAmIzM0O2NvbXBhY3Rfc3RhbGxfb3JkZXImIzM0OykKJiM0MzsJVEVYVFNfRk9SX05PTlpFUk9fT1JERVJTKENPTVBBQ1RTVUNDRVNTX09SREVSX0ZJUlNUIC0gMSwKJiM0MzsJCQkJICYjMzQ7Y29tcGFjdF9zdWNjZXNzX29yZGVyJiMzNDspCiAjZW5kaWYKICN1bmRlZiBJCiAjZW5kaWYgLyogQ09ORklHX1ZNX0VWRU5UX0NPVU5URVJTICovCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIxIDAxOjQ1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQyMTgKCQkJCQkJCW91dHB1dDogNzMKCQkJCQkJCXRob3VnaHRzOiA3NTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQYXRjaCBmb3IgUG90ZW50aWFsIEZ1enppbmcgSW1wYWN0KioKCk9rYXksIHNvIEkmIzM5O3ZlIGdvdCB0aGlzIHBhdGNoIGFkZGluZyBzb21lIG5ldyBgdm1fZXZlbnRfaXRlbWAgY291bnRlcnMsIHNwZWNpZmljYWxseSB0cmFja2luZyBwZXItb3JkZXIgYWxsb2NhdGlvbiBzdGF0cyBsaWtlIGBQR0FMTE9DX1NMT1dQQVRIX09SREVSX0ZJUlNUYCwgYFBHQUxMT0NfRkFJTF9PUkRFUl9GSVJTVGAsIGBDT01QQUNUU1RBTExfT1JERVJfRklSU1RgLCBhbmQgYENPTVBBQ1RTVUNDRVNTX09SREVSX0ZJUlNUYC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsICYjMzQ7YXJlIHdlIGludHJvZHVjaW5nIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdGhhdCBjb3VsZCBiZSBmdXp6ZWQ/JiMzNDsgVGhhdCYjMzk7cyB0aGUga2V5IHF1ZXN0aW9uLgoKVGhlIGRlc2NyaXB0aW9uIHNheXMgdGhlc2UgYXJlIGp1c3QgbWV0cmljcywgcHVyZWx5IHN0YXRpc3RpY2FsLCBhbmQgdGhhdCBgY291bnRfdm1fZXZlbnRgIGlzIGp1c3QgaW5jcmVtZW50aW5nIGEgcGVyLUNQVSBjb3VudGVyLiBBbHJpZ2h0LCBsZXQmIzM5O3MgZHJpbGwgZG93biB0byB2ZXJpZnkuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhpcyBpc24mIzM5O3Qgc3VidGx5IGNoYW5naW5nIGFueSBiZWhhdmlvci4KCkkmIzM5O20gbG9va2luZyBhdCB0aGUgY29kZSBjaGFuZ2VzIGluIGBtbS9wYWdlX2FsbG9jLmNgLiBJIHNlZSB0aGUgYGNvdW50X3ZtX2V2ZW50YCBjYWxscyBiZWluZyBhZGRlZCB3aXRoaW4gYF9fYWxsb2NfcGFnZXNfZGlyZWN0X2NvbXBhY3RgLCBgX19hbGxvY19wYWdlc19zbG93cGF0aGAsIGFuZCBgX19hbGxvY19mcm96ZW5fcGFnZXNfbm9wcm9mYC4gRm9yIGluc3RhbmNlLCBpbiBgX19hbGxvY19wYWdlc19kaXJlY3RfY29tcGFjdGAsIEkgc2VlIHRoZSBhZGRpdGlvbnMgYWZ0ZXIgdGhlIGBDT01QQUNUU1RBTExgIGFuZCBgQ09NUEFDVFNVQ0NFU1NgIGNhbGxzLCBhbmQgZm9yIGBfX2FsbG9jX3BhZ2VzX3Nsb3dwYXRoYCBhbmQgYF9fYWxsb2NfZnJvemVuX3BhZ2VzX25vcHJvZmAgcmVsYXRlZCBjYWxscy4KCkl0IGxvb2tzIGxpa2UgdGhlIG5ldyBjb3VudGVycyBhcmUgYmVpbmcgaW5jcmVtZW50ZWQgYWxvbmdzaWRlIGV4aXN0aW5nIG9uZXMuIFRoZSBrZXkgcGFydCBpcyB0aGF0IHRoZSBwYXRjaCAqb25seSogaW50cm9kdWNlcyB0aGVzZSBgY291bnRfdm1fZXZlbnRgIGNhbGxzLiBUaGVyZSYjMzk7cyBubyBjb25kaXRpb25hbCBsb2dpYyBiYXNlZCBvbiB0aGVzZSBjb3VudGVyIGluY3JlbWVudHMsIG5vIG1vZGlmaWNhdGlvbnMgdG8gcGFnZSBhbGxvY2F0aW9uIGFsZ29yaXRobXMsIG5vIGNoYW5nZXMgdG8gYW55IGRhdGEgc3RydWN0dXJlcyBleGNlcHQgYWRkaW5nIHRoZSBjb3VudGVycyBhbmQgbGFiZWxzLiBJdCYjMzk7cyBqdXN0IGluc3RydW1lbnRhdGlvbiwgbm8gZnVuY3Rpb25hbCBhbHRlcmF0aW9ucy4KClRoZXJlZm9yZSwgYmVjYXVzZSB0aGlzIHBhdGNoICpvbmx5KiBhZGRzIGluc3RydW1lbnRhdGlvbiwgSSBjYW4gY29uZmlkZW50bHkgY29uY2x1ZGUgdGhhdCBgV29ydGhGdXp6aW5nYCBzaG91bGQgYmUgYGZhbHNlYC4gVGhpcyBkb2VzbiYjMzk7dCBjaGFuZ2Uga2VybmVsIGJlaGF2aW9yOyBpdCBqdXN0IGFkZHMgdmlzaWJpbGl0eSBpbnRvIGV4aXN0aW5nIGJlaGF2aW9yLiBUaGlzIGlzIHNpbXBseSBzdGF0aXN0aWNzIGNvbGxlY3Rpb247IGl0JiMzOTtzIG5vdCBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhbmQgc28gd29uJiMzOTt0IGFmZmVjdCBhbnkgZnV6emluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMSAwMTo0NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgYWRkcyBuZXcgdm1zdGF0IGNvdW50ZXJzIGZvciBwZXItb3JkZXIgcGFnZSBhbGxvY2F0aW9uIGFuZCBjb21wYWN0aW9uIHN0YXRpc3RpY3MuIEl0IGRvZXMgbm90IGFsdGVyIHRoZSBmdW5jdGlvbmFsIGV4ZWN1dGlvbiBmbG93IG9mIHRoZSBrZXJuZWwsIGFzIGl0IG9ubHkgaW5jcmVtZW50cyBjb3VudGVycyB2aWEgY291bnRfdm1fZXZlbnQoKS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgYWRkcyBuZXcgdm1zdGF0IGNvdW50ZXJzIGZvciBwZXItb3JkZXIgcGFnZSBhbGxvY2F0aW9uIGFuZCBjb21wYWN0aW9uIHN0YXRpc3RpY3MuIEl0IGRvZXMgbm90IGFsdGVyIHRoZSBmdW5jdGlvbmFsIGV4ZWN1dGlvbiBmbG93IG9mIHRoZSBrZXJuZWwsIGFzIGl0IG9ubHkgaW5jcmVtZW50cyBjb3VudGVycyB2aWEgY291bnRfdm1fZXZlbnQoKS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjEgMDE6NDU8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIxVDAxOjQ1OjI3LjU5Mjg1MjE4NFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwMTM4Nzg5NTkxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIG5ldyB2bXN0YXQgY291bnRlcnMgZm9yIHBlci1vcmRlciBwYWdlIGFsbG9jYXRpb24gYW5kIGNvbXBhY3Rpb24gc3RhdGlzdGljcy4gSXQgZG9lcyBub3QgYWx0ZXIgdGhlIGZ1bmN0aW9uYWwgZXhlY3V0aW9uIGZsb3cgb2YgdGhlIGtlcm5lbCwgYXMgaXQgb25seSBpbmNyZW1lbnRzIGNvdW50ZXJzIHZpYSBjb3VudF92bV9ldmVudCgpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjFUMDE6NDU6MjcuNTkyODYxNTM0WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjA1ODc0NjQ1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZGZlOThhZTRjYzg3OWUwNDdlYmY1NGIyYzU0YmRiNjYxOGVkNGE0YlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIEF1ZyAyMSAwMTo0NToyNiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3ZtX2V2ZW50X2l0ZW0uaCBiL2luY2x1ZGUvbGludXgvdm1fZXZlbnRfaXRlbS5oXFxuaW5kZXggMDNmZTk1ZjVhMDIwMS4uNzI0NTYxYjdlODAwYiAxMDA2NDRcXG4tLS0gYS9pbmNsdWRlL2xpbnV4L3ZtX2V2ZW50X2l0ZW0uaFxcbisrKyBiL2luY2x1ZGUvbGludXgvdm1fZXZlbnRfaXRlbS5oXFxuQEAgLTE3NSw2ICsxNzUsMjUgQEAgZW51bSB2bV9ldmVudF9pdGVtIHsgUEdQR0lOLCBQR1BHT1VULCBQU1dQSU4sIFBTV1BPVVQsXFxuIFxcdFxcdEtTVEFDS19SRVNULFxcbiAjZW5kaWZcXG4gI2VuZGlmIC8qIENPTkZJR19ERUJVR19TVEFDS19VU0FHRSAqL1xcbitcXHRcXHQvKlxcbitcXHRcXHQgKiBQZXItb3JkZXIgYWxsb2NhdGlvbiBzdGF0aXN0aWNzOiBlYWNoICpfRklSU1QuLipfTEFTVCByYW5nZVxcbitcXHRcXHQgKiBpcyBpbmRleGVkIGJ5IGFsbG9jYXRpb24gb3JkZXIuXFxuK1xcdFxcdCAqL1xcbitcXHRcXHRQR0FMTE9DX1NMT1dQQVRIX09SREVSX0ZJUlNULFxcbitcXHRcXHRQR0FMTE9DX1NMT1dQQVRIX09SREVSX0xBU1QgPVxcbitcXHRcXHRcXHRQR0FMTE9DX1NMT1dQQVRIX09SREVSX0ZJUlNUICsgTUFYX1BBR0VfT1JERVIsXFxuK1xcdFxcdFBHQUxMT0NfRkFJTF9PUkRFUl9GSVJTVCxcXG4rXFx0XFx0UEdBTExPQ19GQUlMX09SREVSX0xBU1QgPVxcbitcXHRcXHRcXHRQR0FMTE9DX0ZBSUxfT1JERVJfRklSU1QgKyBNQVhfUEFHRV9PUkRFUixcXG4rI2lmZGVmIENPTkZJR19DT01QQUNUSU9OXFxuK1xcdFxcdC8qIERpcmVjdCBjb21wYWN0aW9uIGlzIG5ldmVyIGVudGVyZWQgZm9yIG9yZGVyIDAgKi9cXG4rXFx0XFx0Q09NUEFDVFNUQUxMX09SREVSX0ZJUlNULFxcbitcXHRcXHRDT01QQUNUU1RBTExfT1JERVJfTEFTVCA9XFxuK1xcdFxcdFxcdENPTVBBQ1RTVEFMTF9PUkRFUl9GSVJTVCArIE1BWF9QQUdFX09SREVSIC0gMSxcXG4rXFx0XFx0Q09NUEFDVFNVQ0NFU1NfT1JERVJfRklSU1QsXFxuK1xcdFxcdENPTVBBQ1RTVUNDRVNTX09SREVSX0xBU1QgPVxcbitcXHRcXHRcXHRDT01QQUNUU1VDQ0VTU19PUkRFUl9GSVJTVCArIE1BWF9QQUdFX09SREVSIC0gMSxcXG4rI2VuZGlmXFxuIFxcdFxcdE5SX1ZNX0VWRU5UX0lURU1TXFxuIH07XFxuIFxcbmRpZmYgLS1naXQgYS9tbS9wYWdlX2FsbG9jLmMgYi9tbS9wYWdlX2FsbG9jLmNcXG5pbmRleCBlZTkwMmE0NjhjMmY1Li4yYTJiMTRmM2I1MTZmIDEwMDY0NFxcbi0tLSBhL21tL3BhZ2VfYWxsb2MuY1xcbisrKyBiL21tL3BhZ2VfYWxsb2MuY1xcbkBAIC00MTY5LDYgKzQxNjksNyBAQCBfX2FsbG9jX3BhZ2VzX2RpcmVjdF9jb21wYWN0KGdmcF90IGdmcF9tYXNrLCB1bnNpZ25lZCBpbnQgb3JkZXIsXFxuIFxcdCAqIGNvdW50IGEgY29tcGFjdGlvbiBzdGFsbFxcbiBcXHQgKi9cXG4gXFx0Y291bnRfdm1fZXZlbnQoQ09NUEFDVFNUQUxMKTtcXG4rXFx0Y291bnRfdm1fZXZlbnQoQ09NUEFDVFNUQUxMX09SREVSX0ZJUlNUICsgb3JkZXIgLSAxKTtcXG4gXFxuIFxcdC8qIFByZXAgYSBjYXB0dXJlZCBwYWdlIGlmIGF2YWlsYWJsZSAqL1xcbiBcXHRpZiAocGFnZSlcXG5AQCAtNDE4NCw2ICs0MTg1LDcgQEAgX19hbGxvY19wYWdlc19kaXJlY3RfY29tcGFjdChnZnBfdCBnZnBfbWFzaywgdW5zaWduZWQgaW50IG9yZGVyLFxcbiBcXHRcXHR6b25lLVxcdTAwM2Vjb21wYWN0X2Jsb2Nrc2tpcF9mbHVzaCA9IGZhbHNlO1xcbiBcXHRcXHRjb21wYWN0aW9uX2RlZmVyX3Jlc2V0KHpvbmUsIG9yZGVyLCB0cnVlKTtcXG4gXFx0XFx0Y291bnRfdm1fZXZlbnQoQ09NUEFDVFNVQ0NFU1MpO1xcbitcXHRcXHRjb3VudF92bV9ldmVudChDT01QQUNUU1VDQ0VTU19PUkRFUl9GSVJTVCArIG9yZGVyIC0gMSk7XFxuIFxcdFxcdHJldHVybiBwYWdlO1xcbiBcXHR9XFxuIFxcbkBAIC00NzU3LDYgKzQ3NTksOCBAQCBfX2FsbG9jX3BhZ2VzX3Nsb3dwYXRoKGdmcF90IGdmcF9tYXNrLCB1bnNpZ25lZCBpbnQgb3JkZXIsXFxuIFxcdFxcdFdBUk5fT05fT05DRShjdXJyZW50LVxcdTAwM2VmbGFncyBcXHUwMDI2IFBGX01FTUFMTE9DKTtcXG4gXFx0fVxcbiBcXG4rXFx0Y291bnRfdm1fZXZlbnQoUEdBTExPQ19TTE9XUEFUSF9PUkRFUl9GSVJTVCArIG9yZGVyKTtcXG4rXFxuIHJlc3RhcnQ6XFxuIFxcdGNvbXBhY3Rpb25fcmV0cmllcyA9IDA7XFxuIFxcdG5vX3Byb2dyZXNzX2xvb3BzID0gMDtcXG5AQCAtNTMyMyw2ICs1MzI3LDkgQEAgc3RydWN0IHBhZ2UgKl9fYWxsb2NfZnJvemVuX3BhZ2VzX25vcHJvZihnZnBfdCBnZnAsIHVuc2lnbmVkIGludCBvcmRlcixcXG4gXFx0XFx0cGFnZSA9IE5VTEw7XFxuIFxcdH1cXG4gXFxuK1xcdGlmICh1bmxpa2VseSghcGFnZSkpXFxuK1xcdFxcdGNvdW50X3ZtX2V2ZW50KFBHQUxMT0NfRkFJTF9PUkRFUl9GSVJTVCArIG9yZGVyKTtcXG4rXFxuIFxcdHRyYWNlX21tX3BhZ2VfYWxsb2MocGFnZSwgb3JkZXIsIGFsbG9jX2dmcCwgYWMubWlncmF0ZXR5cGUpO1xcbiBcXHRrbXNhbl9hbGxvY19wYWdlKHBhZ2UsIG9yZGVyLCBhbGxvY19nZnApO1xcbiBcXG5kaWZmIC0tZ2l0IGEvbW0vdm1zdGF0LmMgYi9tbS92bXN0YXQuY1xcbmluZGV4IGY1MzQ5NzJmNTE3ZGUuLjA4ZjBlYmM3ZmY0M2MgMTAwNjQ0XFxuLS0tIGEvbW0vdm1zdGF0LmNcXG4rKysgYi9tbS92bXN0YXQuY1xcbkBAIC0xMTg0LDYgKzExODQsOTQgQEAgaW50IGZyYWdtZW50YXRpb25faW5kZXgoc3RydWN0IHpvbmUgKnpvbmUsIHVuc2lnbmVkIGludCBvcmRlcilcXG4gXFx0W3h4IyNfTU9WQUJMRV0gPSB5eSBcXFwiX21vdmFibGVcXFwiLFxcdFxcdFxcXFxcXG4gXFx0VEVYVF9GT1JfREVWSUNFKHh4LCB5eSlcXG4gXFxuKyNpZiBNQVhfUEFHRV9PUkRFUiBcXHUwMDNlPSA0XFxuKyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfNCh4eCwgeXkpIFtJKCh4eCkgKyA0KV0gPSB5eSBcXFwiNFxcXCIsXFxuKyNlbHNlXFxuKyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfNCh4eCwgeXkpXFxuKyNlbmRpZlxcbitcXG4rI2lmIE1BWF9QQUdFX09SREVSIFxcdTAwM2U9IDVcXG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl81KHh4LCB5eSkgW0koKHh4KSArIDUpXSA9IHl5IFxcXCI1XFxcIixcXG4rI2Vsc2VcXG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl81KHh4LCB5eSlcXG4rI2VuZGlmXFxuK1xcbisjaWYgTUFYX1BBR0VfT1JERVIgXFx1MDAzZT0gNlxcbisjZGVmaW5lIFRFWFRfRk9SX09SREVSXzYoeHgsIHl5KSBbSSgoeHgpICsgNildID0geXkgXFxcIjZcXFwiLFxcbisjZWxzZVxcbisjZGVmaW5lIFRFWFRfRk9SX09SREVSXzYoeHgsIHl5KVxcbisjZW5kaWZcXG4rXFxuKyNpZiBNQVhfUEFHRV9PUkRFUiBcXHUwMDNlPSA3XFxuKyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfNyh4eCwgeXkpIFtJKCh4eCkgKyA3KV0gPSB5eSBcXFwiN1xcXCIsXFxuKyNlbHNlXFxuKyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfNyh4eCwgeXkpXFxuKyNlbmRpZlxcbitcXG4rI2lmIE1BWF9QQUdFX09SREVSIFxcdTAwM2U9IDhcXG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl84KHh4LCB5eSkgW0koKHh4KSArIDgpXSA9IHl5IFxcXCI4XFxcIixcXG4rI2Vsc2VcXG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl84KHh4LCB5eSlcXG4rI2VuZGlmXFxuK1xcbisjaWYgTUFYX1BBR0VfT1JERVIgXFx1MDAzZT0gOVxcbisjZGVmaW5lIFRFWFRfRk9SX09SREVSXzkoeHgsIHl5KSBbSSgoeHgpICsgOSldID0geXkgXFxcIjlcXFwiLFxcbisjZWxzZVxcbisjZGVmaW5lIFRFWFRfRk9SX09SREVSXzkoeHgsIHl5KVxcbisjZW5kaWZcXG4rXFxuKyNpZiBNQVhfUEFHRV9PUkRFUiBcXHUwMDNlPSAxMFxcbisjZGVmaW5lIFRFWFRfRk9SX09SREVSXzEwKHh4LCB5eSkgW0koKHh4KSArIDEwKV0gPSB5eSBcXFwiMTBcXFwiLFxcbisjZWxzZVxcbisjZGVmaW5lIFRFWFRfRk9SX09SREVSXzEwKHh4LCB5eSlcXG4rI2VuZGlmXFxuK1xcbisjaWYgTUFYX1BBR0VfT1JERVIgXFx1MDAzZT0gMTFcXG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl8xMSh4eCwgeXkpIFtJKCh4eCkgKyAxMSldID0geXkgXFxcIjExXFxcIixcXG4rI2Vsc2VcXG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl8xMSh4eCwgeXkpXFxuKyNlbmRpZlxcbitcXG4rI2lmIE1BWF9QQUdFX09SREVSIFxcdTAwM2U9IDEyXFxuKyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfMTIoeHgsIHl5KSBbSSgoeHgpICsgMTIpXSA9IHl5IFxcXCIxMlxcXCIsXFxuKyNlbHNlXFxuKyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfMTIoeHgsIHl5KVxcbisjZW5kaWZcXG4rXFxuKyNpZiBNQVhfUEFHRV9PUkRFUiBcXHUwMDNlPSAxM1xcbisjZGVmaW5lIFRFWFRfRk9SX09SREVSXzEzKHh4LCB5eSkgW0koKHh4KSArIDEzKV0gPSB5eSBcXFwiMTNcXFwiLFxcbisjZWxzZVxcbisjZGVmaW5lIFRFWFRfRk9SX09SREVSXzEzKHh4LCB5eSlcXG4rI2VuZGlmXFxuK1xcbitzdGF0aWNfYXNzZXJ0KE1BWF9QQUdFX09SREVSIFxcdTAwM2U9IDQgXFx1MDAyNlxcdTAwMjYgTUFYX1BBR0VfT1JERVIgXFx1MDAzYz0gMTMsXFxuK1xcdCAgICAgIFxcXCJ0aGUgcGVyLW9yZGVyIGNvdW50ZXIgbmFtZXMgbmVlZCB1cGRhdGluZyBmb3IgdGhpcyBNQVhfUEFHRV9PUkRFUlxcXCIpO1xcbitcXG4rLypcXG4rICogKHh4KSArIG4gbXVzdCByZXNvbHZlIHRvIHRoZSB2bV9ldmVudF9pdGVtIGZvciBvcmRlciBuLCBzbyByYW5nZXMgdGhhdFxcbisgKiBzdGFydCBhdCBvcmRlciAxIHBhc3MgdGhlaXIgKl9PUkRFUl9GSVJTVCBpdGVtIG1pbnVzIG9uZS4gT3JkZXJzIDEuLjNcXG4rICogYXJlIGdlbmVyYXRlZCB1bmNvbmRpdGlvbmFsbHksIDQuLjEzIGFyZSBNQVhfUEFHRV9PUkRFUiBkZXBlbmRlbnQgKGUuZy5cXG4rICogcHBjMzIgd2l0aCAyNTZrIHBhZ2VzIGZvcmNlcyA0IGJ5IGRlZmF1bHQpLlxcbisgKi9cXG4rI2RlZmluZSBURVhUU19GT1JfTk9OWkVST19PUkRFUlMoeHgsIHl5KVxcdFxcXFxcXG4rXFx0W0koKHh4KSArIDEpXSA9IHl5IFxcXCIxXFxcIixcXHRcXHRcXHRcXFxcXFxuK1xcdFtJKCh4eCkgKyAyKV0gPSB5eSBcXFwiMlxcXCIsXFx0XFx0XFx0XFxcXFxcbitcXHRbSSgoeHgpICsgMyldID0geXkgXFxcIjNcXFwiLFxcdFxcdFxcdFxcXFxcXG4rXFx0VEVYVF9GT1JfT1JERVJfNCh4eCwgeXkpXFx0XFx0XFxcXFxcbitcXHRURVhUX0ZPUl9PUkRFUl81KHh4LCB5eSlcXHRcXHRcXFxcXFxuK1xcdFRFWFRfRk9SX09SREVSXzYoeHgsIHl5KVxcdFxcdFxcXFxcXG4rXFx0VEVYVF9GT1JfT1JERVJfNyh4eCwgeXkpXFx0XFx0XFxcXFxcbitcXHRURVhUX0ZPUl9PUkRFUl84KHh4LCB5eSlcXHRcXHRcXFxcXFxuK1xcdFRFWFRfRk9SX09SREVSXzkoeHgsIHl5KVxcdFxcdFxcXFxcXG4rXFx0VEVYVF9GT1JfT1JERVJfMTAoeHgsIHl5KVxcdFxcdFxcXFxcXG4rXFx0VEVYVF9GT1JfT1JERVJfMTEoeHgsIHl5KVxcdFxcdFxcXFxcXG4rXFx0VEVYVF9GT1JfT1JERVJfMTIoeHgsIHl5KVxcdFxcdFxcXFxcXG4rXFx0VEVYVF9GT1JfT1JERVJfMTMoeHgsIHl5KVxcbitcXG4rI2RlZmluZSBURVhUU19GT1JfT1JERVJTKHh4LCB5eSlcXHRcXHRcXFxcXFxuK1xcdFtJKHh4KV0gPSB5eSBcXFwiMFxcXCIsXFx0XFx0XFx0XFxcXFxcbitcXHRURVhUU19GT1JfTk9OWkVST19PUkRFUlMoeHgsIHl5KVxcbitcXG4gY29uc3QgY2hhciAqIGNvbnN0IHZtc3RhdF90ZXh0W10gPSB7XFxuIFxcdC8qIGVudW0gem9uZV9zdGF0X2l0ZW0gY291bnRlcnMgKi9cXG4gI2RlZmluZSBJKHgpICh4KVxcbkBAIC0xNDg4LDYgKzE1NzYsMTQgQEAgY29uc3QgY2hhciAqIGNvbnN0IHZtc3RhdF90ZXh0W10gPSB7XFxuICNpZiBUSFJFQURfU0laRSBcXHUwMDNlIDY1NTM2XFxuIFxcdFtJKEtTVEFDS19SRVNUKV1cXHRcXHRcXHQ9IFxcXCJrc3RhY2tfcmVzdFxcXCIsXFxuICNlbmRpZlxcbisjZW5kaWZcXG4rXFx0VEVYVFNfRk9SX09SREVSUyhQR0FMTE9DX1NMT1dQQVRIX09SREVSX0ZJUlNULCBcXFwicGdhbGxvY19zbG93cGF0aF9vcmRlclxcXCIpXFxuK1xcdFRFWFRTX0ZPUl9PUkRFUlMoUEdBTExPQ19GQUlMX09SREVSX0ZJUlNULCBcXFwicGdhbGxvY19mYWlsX29yZGVyXFxcIilcXG4rI2lmZGVmIENPTkZJR19DT01QQUNUSU9OXFxuK1xcdFRFWFRTX0ZPUl9OT05aRVJPX09SREVSUyhDT01QQUNUU1RBTExfT1JERVJfRklSU1QgLSAxLFxcbitcXHRcXHRcXHRcXHQgXFxcImNvbXBhY3Rfc3RhbGxfb3JkZXJcXFwiKVxcbitcXHRURVhUU19GT1JfTk9OWkVST19PUkRFUlMoQ09NUEFDVFNVQ0NFU1NfT1JERVJfRklSU1QgLSAxLFxcbitcXHRcXHRcXHRcXHQgXFxcImNvbXBhY3Rfc3VjY2Vzc19vcmRlclxcXCIpXFxuICNlbmRpZlxcbiAjdW5kZWYgSVxcbiAjZW5kaWYgLyogQ09ORklHX1ZNX0VWRU5UX0NPVU5URVJTICovXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIxVDAxOjQ1OjI4Ljc5OTUwNjE5OVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjg5MzIxMTQ1NDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgYWRkcyBuZXcgdm1zdGF0IGNvdW50ZXJzIGZvciBwZXItb3JkZXIgcGFnZSBhbGxvY2F0aW9uIGFuZCBjb21wYWN0aW9uIHN0YXRpc3RpY3MuIEl0IGRvZXMgbm90IGFsdGVyIHRoZSBmdW5jdGlvbmFsIGV4ZWN1dGlvbiBmbG93IG9mIHRoZSBrZXJuZWwsIGFzIGl0IG9ubHkgaW5jcmVtZW50cyBjb3VudGVycyB2aWEgY291bnRfdm1fZXZlbnQoKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGRmZTk4YWU0Y2M4NzllMDQ3ZWJmNTRiMmM1NGJkYjY2MThlZDRhNGJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEF1ZyAyMSAwMTo0NToyNiAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvdm1fZXZlbnRfaXRlbS5oIGIvaW5jbHVkZS9saW51eC92bV9ldmVudF9pdGVtLmhcbmluZGV4IDAzZmU5NWY1YTAyMDEuLjcyNDU2MWI3ZTgwMGIgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL2xpbnV4L3ZtX2V2ZW50X2l0ZW0uaFxuKysrIGIvaW5jbHVkZS9saW51eC92bV9ldmVudF9pdGVtLmhcbkBAIC0xNzUsNiArMTc1LDI1IEBAIGVudW0gdm1fZXZlbnRfaXRlbSB7IFBHUEdJTiwgUEdQR09VVCwgUFNXUElOLCBQU1dQT1VULFxuIFx0XHRLU1RBQ0tfUkVTVCxcbiAjZW5kaWZcbiAjZW5kaWYgLyogQ09ORklHX0RFQlVHX1NUQUNLX1VTQUdFICovXG4rXHRcdC8qXG4rXHRcdCAqIFBlci1vcmRlciBhbGxvY2F0aW9uIHN0YXRpc3RpY3M6IGVhY2ggKl9GSVJTVC4uKl9MQVNUIHJhbmdlXG4rXHRcdCAqIGlzIGluZGV4ZWQgYnkgYWxsb2NhdGlvbiBvcmRlci5cbitcdFx0ICovXG4rXHRcdFBHQUxMT0NfU0xPV1BBVEhfT1JERVJfRklSU1QsXG4rXHRcdFBHQUxMT0NfU0xPV1BBVEhfT1JERVJfTEFTVCA9XG4rXHRcdFx0UEdBTExPQ19TTE9XUEFUSF9PUkRFUl9GSVJTVCArIE1BWF9QQUdFX09SREVSLFxuK1x0XHRQR0FMTE9DX0ZBSUxfT1JERVJfRklSU1QsXG4rXHRcdFBHQUxMT0NfRkFJTF9PUkRFUl9MQVNUID1cbitcdFx0XHRQR0FMTE9DX0ZBSUxfT1JERVJfRklSU1QgKyBNQVhfUEFHRV9PUkRFUixcbisjaWZkZWYgQ09ORklHX0NPTVBBQ1RJT05cbitcdFx0LyogRGlyZWN0IGNvbXBhY3Rpb24gaXMgbmV2ZXIgZW50ZXJlZCBmb3Igb3JkZXIgMCAqL1xuK1x0XHRDT01QQUNUU1RBTExfT1JERVJfRklSU1QsXG4rXHRcdENPTVBBQ1RTVEFMTF9PUkRFUl9MQVNUID1cbitcdFx0XHRDT01QQUNUU1RBTExfT1JERVJfRklSU1QgKyBNQVhfUEFHRV9PUkRFUiAtIDEsXG4rXHRcdENPTVBBQ1RTVUNDRVNTX09SREVSX0ZJUlNULFxuK1x0XHRDT01QQUNUU1VDQ0VTU19PUkRFUl9MQVNUID1cbitcdFx0XHRDT01QQUNUU1VDQ0VTU19PUkRFUl9GSVJTVCArIE1BWF9QQUdFX09SREVSIC0gMSxcbisjZW5kaWZcbiBcdFx0TlJfVk1fRVZFTlRfSVRFTVNcbiB9O1xuIFxuZGlmZiAtLWdpdCBhL21tL3BhZ2VfYWxsb2MuYyBiL21tL3BhZ2VfYWxsb2MuY1xuaW5kZXggZWU5MDJhNDY4YzJmNS4uMmEyYjE0ZjNiNTE2ZiAxMDA2NDRcbi0tLSBhL21tL3BhZ2VfYWxsb2MuY1xuKysrIGIvbW0vcGFnZV9hbGxvYy5jXG5AQCAtNDE2OSw2ICs0MTY5LDcgQEAgX19hbGxvY19wYWdlc19kaXJlY3RfY29tcGFjdChnZnBfdCBnZnBfbWFzaywgdW5zaWduZWQgaW50IG9yZGVyLFxuIFx0ICogY291bnQgYSBjb21wYWN0aW9uIHN0YWxsXG4gXHQgKi9cbiBcdGNvdW50X3ZtX2V2ZW50KENPTVBBQ1RTVEFMTCk7XG4rXHRjb3VudF92bV9ldmVudChDT01QQUNUU1RBTExfT1JERVJfRklSU1QgKyBvcmRlciAtIDEpO1xuIFxuIFx0LyogUHJlcCBhIGNhcHR1cmVkIHBhZ2UgaWYgYXZhaWxhYmxlICovXG4gXHRpZiAocGFnZSlcbkBAIC00MTg0LDYgKzQxODUsNyBAQCBfX2FsbG9jX3BhZ2VzX2RpcmVjdF9jb21wYWN0KGdmcF90IGdmcF9tYXNrLCB1bnNpZ25lZCBpbnQgb3JkZXIsXG4gXHRcdHpvbmUtXHUwMDNlY29tcGFjdF9ibG9ja3NraXBfZmx1c2ggPSBmYWxzZTtcbiBcdFx0Y29tcGFjdGlvbl9kZWZlcl9yZXNldCh6b25lLCBvcmRlciwgdHJ1ZSk7XG4gXHRcdGNvdW50X3ZtX2V2ZW50KENPTVBBQ1RTVUNDRVNTKTtcbitcdFx0Y291bnRfdm1fZXZlbnQoQ09NUEFDVFNVQ0NFU1NfT1JERVJfRklSU1QgKyBvcmRlciAtIDEpO1xuIFx0XHRyZXR1cm4gcGFnZTtcbiBcdH1cbiBcbkBAIC00NzU3LDYgKzQ3NTksOCBAQCBfX2FsbG9jX3BhZ2VzX3Nsb3dwYXRoKGdmcF90IGdmcF9tYXNrLCB1bnNpZ25lZCBpbnQgb3JkZXIsXG4gXHRcdFdBUk5fT05fT05DRShjdXJyZW50LVx1MDAzZWZsYWdzIFx1MDAyNiBQRl9NRU1BTExPQyk7XG4gXHR9XG4gXG4rXHRjb3VudF92bV9ldmVudChQR0FMTE9DX1NMT1dQQVRIX09SREVSX0ZJUlNUICsgb3JkZXIpO1xuK1xuIHJlc3RhcnQ6XG4gXHRjb21wYWN0aW9uX3JldHJpZXMgPSAwO1xuIFx0bm9fcHJvZ3Jlc3NfbG9vcHMgPSAwO1xuQEAgLTUzMjMsNiArNTMyNyw5IEBAIHN0cnVjdCBwYWdlICpfX2FsbG9jX2Zyb3plbl9wYWdlc19ub3Byb2YoZ2ZwX3QgZ2ZwLCB1bnNpZ25lZCBpbnQgb3JkZXIsXG4gXHRcdHBhZ2UgPSBOVUxMO1xuIFx0fVxuIFxuK1x0aWYgKHVubGlrZWx5KCFwYWdlKSlcbitcdFx0Y291bnRfdm1fZXZlbnQoUEdBTExPQ19GQUlMX09SREVSX0ZJUlNUICsgb3JkZXIpO1xuK1xuIFx0dHJhY2VfbW1fcGFnZV9hbGxvYyhwYWdlLCBvcmRlciwgYWxsb2NfZ2ZwLCBhYy5taWdyYXRldHlwZSk7XG4gXHRrbXNhbl9hbGxvY19wYWdlKHBhZ2UsIG9yZGVyLCBhbGxvY19nZnApO1xuIFxuZGlmZiAtLWdpdCBhL21tL3Ztc3RhdC5jIGIvbW0vdm1zdGF0LmNcbmluZGV4IGY1MzQ5NzJmNTE3ZGUuLjA4ZjBlYmM3ZmY0M2MgMTAwNjQ0XG4tLS0gYS9tbS92bXN0YXQuY1xuKysrIGIvbW0vdm1zdGF0LmNcbkBAIC0xMTg0LDYgKzExODQsOTQgQEAgaW50IGZyYWdtZW50YXRpb25faW5kZXgoc3RydWN0IHpvbmUgKnpvbmUsIHVuc2lnbmVkIGludCBvcmRlcilcbiBcdFt4eCMjX01PVkFCTEVdID0geXkgXCJfbW92YWJsZVwiLFx0XHRcXFxuIFx0VEVYVF9GT1JfREVWSUNFKHh4LCB5eSlcbiBcbisjaWYgTUFYX1BBR0VfT1JERVIgXHUwMDNlPSA0XG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl80KHh4LCB5eSkgW0koKHh4KSArIDQpXSA9IHl5IFwiNFwiLFxuKyNlbHNlXG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl80KHh4LCB5eSlcbisjZW5kaWZcbitcbisjaWYgTUFYX1BBR0VfT1JERVIgXHUwMDNlPSA1XG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl81KHh4LCB5eSkgW0koKHh4KSArIDUpXSA9IHl5IFwiNVwiLFxuKyNlbHNlXG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl81KHh4LCB5eSlcbisjZW5kaWZcbitcbisjaWYgTUFYX1BBR0VfT1JERVIgXHUwMDNlPSA2XG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl82KHh4LCB5eSkgW0koKHh4KSArIDYpXSA9IHl5IFwiNlwiLFxuKyNlbHNlXG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl82KHh4LCB5eSlcbisjZW5kaWZcbitcbisjaWYgTUFYX1BBR0VfT1JERVIgXHUwMDNlPSA3XG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl83KHh4LCB5eSkgW0koKHh4KSArIDcpXSA9IHl5IFwiN1wiLFxuKyNlbHNlXG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl83KHh4LCB5eSlcbisjZW5kaWZcbitcbisjaWYgTUFYX1BBR0VfT1JERVIgXHUwMDNlPSA4XG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl84KHh4LCB5eSkgW0koKHh4KSArIDgpXSA9IHl5IFwiOFwiLFxuKyNlbHNlXG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl84KHh4LCB5eSlcbisjZW5kaWZcbitcbisjaWYgTUFYX1BBR0VfT1JERVIgXHUwMDNlPSA5XG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl85KHh4LCB5eSkgW0koKHh4KSArIDkpXSA9IHl5IFwiOVwiLFxuKyNlbHNlXG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl85KHh4LCB5eSlcbisjZW5kaWZcbitcbisjaWYgTUFYX1BBR0VfT1JERVIgXHUwMDNlPSAxMFxuKyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfMTAoeHgsIHl5KSBbSSgoeHgpICsgMTApXSA9IHl5IFwiMTBcIixcbisjZWxzZVxuKyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfMTAoeHgsIHl5KVxuKyNlbmRpZlxuK1xuKyNpZiBNQVhfUEFHRV9PUkRFUiBcdTAwM2U9IDExXG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl8xMSh4eCwgeXkpIFtJKCh4eCkgKyAxMSldID0geXkgXCIxMVwiLFxuKyNlbHNlXG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl8xMSh4eCwgeXkpXG4rI2VuZGlmXG4rXG4rI2lmIE1BWF9QQUdFX09SREVSIFx1MDAzZT0gMTJcbisjZGVmaW5lIFRFWFRfRk9SX09SREVSXzEyKHh4LCB5eSkgW0koKHh4KSArIDEyKV0gPSB5eSBcIjEyXCIsXG4rI2Vsc2VcbisjZGVmaW5lIFRFWFRfRk9SX09SREVSXzEyKHh4LCB5eSlcbisjZW5kaWZcbitcbisjaWYgTUFYX1BBR0VfT1JERVIgXHUwMDNlPSAxM1xuKyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfMTMoeHgsIHl5KSBbSSgoeHgpICsgMTMpXSA9IHl5IFwiMTNcIixcbisjZWxzZVxuKyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfMTMoeHgsIHl5KVxuKyNlbmRpZlxuK1xuK3N0YXRpY19hc3NlcnQoTUFYX1BBR0VfT1JERVIgXHUwMDNlPSA0IFx1MDAyNlx1MDAyNiBNQVhfUEFHRV9PUkRFUiBcdTAwM2M9IDEzLFxuK1x0ICAgICAgXCJ0aGUgcGVyLW9yZGVyIGNvdW50ZXIgbmFtZXMgbmVlZCB1cGRhdGluZyBmb3IgdGhpcyBNQVhfUEFHRV9PUkRFUlwiKTtcbitcbisvKlxuKyAqICh4eCkgKyBuIG11c3QgcmVzb2x2ZSB0byB0aGUgdm1fZXZlbnRfaXRlbSBmb3Igb3JkZXIgbiwgc28gcmFuZ2VzIHRoYXRcbisgKiBzdGFydCBhdCBvcmRlciAxIHBhc3MgdGhlaXIgKl9PUkRFUl9GSVJTVCBpdGVtIG1pbnVzIG9uZS4gT3JkZXJzIDEuLjNcbisgKiBhcmUgZ2VuZXJhdGVkIHVuY29uZGl0aW9uYWxseSwgNC4uMTMgYXJlIE1BWF9QQUdFX09SREVSIGRlcGVuZGVudCAoZS5nLlxuKyAqIHBwYzMyIHdpdGggMjU2ayBwYWdlcyBmb3JjZXMgNCBieSBkZWZhdWx0KS5cbisgKi9cbisjZGVmaW5lIFRFWFRTX0ZPUl9OT05aRVJPX09SREVSUyh4eCwgeXkpXHRcXFxuK1x0W0koKHh4KSArIDEpXSA9IHl5IFwiMVwiLFx0XHRcdFxcXG4rXHRbSSgoeHgpICsgMildID0geXkgXCIyXCIsXHRcdFx0XFxcbitcdFtJKCh4eCkgKyAzKV0gPSB5eSBcIjNcIixcdFx0XHRcXFxuK1x0VEVYVF9GT1JfT1JERVJfNCh4eCwgeXkpXHRcdFxcXG4rXHRURVhUX0ZPUl9PUkRFUl81KHh4LCB5eSlcdFx0XFxcbitcdFRFWFRfRk9SX09SREVSXzYoeHgsIHl5KVx0XHRcXFxuK1x0VEVYVF9GT1JfT1JERVJfNyh4eCwgeXkpXHRcdFxcXG4rXHRURVhUX0ZPUl9PUkRFUl84KHh4LCB5eSlcdFx0XFxcbitcdFRFWFRfRk9SX09SREVSXzkoeHgsIHl5KVx0XHRcXFxuK1x0VEVYVF9GT1JfT1JERVJfMTAoeHgsIHl5KVx0XHRcXFxuK1x0VEVYVF9GT1JfT1JERVJfMTEoeHgsIHl5KVx0XHRcXFxuK1x0VEVYVF9GT1JfT1JERVJfMTIoeHgsIHl5KVx0XHRcXFxuK1x0VEVYVF9GT1JfT1JERVJfMTMoeHgsIHl5KVxuK1xuKyNkZWZpbmUgVEVYVFNfRk9SX09SREVSUyh4eCwgeXkpXHRcdFxcXG4rXHRbSSh4eCldID0geXkgXCIwXCIsXHRcdFx0XFxcbitcdFRFWFRTX0ZPUl9OT05aRVJPX09SREVSUyh4eCwgeXkpXG4rXG4gY29uc3QgY2hhciAqIGNvbnN0IHZtc3RhdF90ZXh0W10gPSB7XG4gXHQvKiBlbnVtIHpvbmVfc3RhdF9pdGVtIGNvdW50ZXJzICovXG4gI2RlZmluZSBJKHgpICh4KVxuQEAgLTE0ODgsNiArMTU3NiwxNCBAQCBjb25zdCBjaGFyICogY29uc3Qgdm1zdGF0X3RleHRbXSA9IHtcbiAjaWYgVEhSRUFEX1NJWkUgXHUwMDNlIDY1NTM2XG4gXHRbSShLU1RBQ0tfUkVTVCldXHRcdFx0PSBcImtzdGFja19yZXN0XCIsXG4gI2VuZGlmXG4rI2VuZGlmXG4rXHRURVhUU19GT1JfT1JERVJTKFBHQUxMT0NfU0xPV1BBVEhfT1JERVJfRklSU1QsIFwicGdhbGxvY19zbG93cGF0aF9vcmRlclwiKVxuK1x0VEVYVFNfRk9SX09SREVSUyhQR0FMTE9DX0ZBSUxfT1JERVJfRklSU1QsIFwicGdhbGxvY19mYWlsX29yZGVyXCIpXG4rI2lmZGVmIENPTkZJR19DT01QQUNUSU9OXG4rXHRURVhUU19GT1JfTk9OWkVST19PUkRFUlMoQ09NUEFDVFNUQUxMX09SREVSX0ZJUlNUIC0gMSxcbitcdFx0XHRcdCBcImNvbXBhY3Rfc3RhbGxfb3JkZXJcIilcbitcdFRFWFRTX0ZPUl9OT05aRVJPX09SREVSUyhDT01QQUNUU1VDQ0VTU19PUkRFUl9GSVJTVCAtIDEsXG4rXHRcdFx0XHQgXCJjb21wYWN0X3N1Y2Nlc3Nfb3JkZXJcIilcbiAjZW5kaWZcbiAjdW5kZWYgSVxuICNlbmRpZiAvKiBDT05GSUdfVk1fRVZFTlRfQ09VTlRFUlMgKi9cbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIxVDAxOjQ1OjI4Ljc5OTUwNzUzOVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg5MzIwOTE4NzYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBQYXRjaCBmb3IgUG90ZW50aWFsIEZ1enppbmcgSW1wYWN0KipcblxuT2theSwgc28gSSd2ZSBnb3QgdGhpcyBwYXRjaCBhZGRpbmcgc29tZSBuZXcgYHZtX2V2ZW50X2l0ZW1gIGNvdW50ZXJzLCBzcGVjaWZpY2FsbHkgdHJhY2tpbmcgcGVyLW9yZGVyIGFsbG9jYXRpb24gc3RhdHMgbGlrZSBgUEdBTExPQ19TTE9XUEFUSF9PUkRFUl9GSVJTVGAsIGBQR0FMTE9DX0ZBSUxfT1JERVJfRklSU1RgLCBgQ09NUEFDVFNUQUxMX09SREVSX0ZJUlNUYCwgYW5kIGBDT01QQUNUU1VDQ0VTU19PUkRFUl9GSVJTVGAuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcImFyZSB3ZSBpbnRyb2R1Y2luZyBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRoYXQgY291bGQgYmUgZnV6emVkP1wiIFRoYXQncyB0aGUga2V5IHF1ZXN0aW9uLlxuXG5UaGUgZGVzY3JpcHRpb24gc2F5cyB0aGVzZSBhcmUganVzdCBtZXRyaWNzLCBwdXJlbHkgc3RhdGlzdGljYWwsIGFuZCB0aGF0IGBjb3VudF92bV9ldmVudGAgaXMganVzdCBpbmNyZW1lbnRpbmcgYSBwZXItQ1BVIGNvdW50ZXIuIEFscmlnaHQsIGxldCdzIGRyaWxsIGRvd24gdG8gdmVyaWZ5LiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoaXMgaXNuJ3Qgc3VidGx5IGNoYW5naW5nIGFueSBiZWhhdmlvci5cblxuSSdtIGxvb2tpbmcgYXQgdGhlIGNvZGUgY2hhbmdlcyBpbiBgbW0vcGFnZV9hbGxvYy5jYC4gSSBzZWUgdGhlIGBjb3VudF92bV9ldmVudGAgY2FsbHMgYmVpbmcgYWRkZWQgd2l0aGluIGBfX2FsbG9jX3BhZ2VzX2RpcmVjdF9jb21wYWN0YCwgYF9fYWxsb2NfcGFnZXNfc2xvd3BhdGhgLCBhbmQgYF9fYWxsb2NfZnJvemVuX3BhZ2VzX25vcHJvZmAuIEZvciBpbnN0YW5jZSwgaW4gYF9fYWxsb2NfcGFnZXNfZGlyZWN0X2NvbXBhY3RgLCBJIHNlZSB0aGUgYWRkaXRpb25zIGFmdGVyIHRoZSBgQ09NUEFDVFNUQUxMYCBhbmQgYENPTVBBQ1RTVUNDRVNTYCBjYWxscywgYW5kIGZvciBgX19hbGxvY19wYWdlc19zbG93cGF0aGAgYW5kIGBfX2FsbG9jX2Zyb3plbl9wYWdlc19ub3Byb2ZgIHJlbGF0ZWQgY2FsbHMuXG5cbkl0IGxvb2tzIGxpa2UgdGhlIG5ldyBjb3VudGVycyBhcmUgYmVpbmcgaW5jcmVtZW50ZWQgYWxvbmdzaWRlIGV4aXN0aW5nIG9uZXMuIFRoZSBrZXkgcGFydCBpcyB0aGF0IHRoZSBwYXRjaCAqb25seSogaW50cm9kdWNlcyB0aGVzZSBgY291bnRfdm1fZXZlbnRgIGNhbGxzLiBUaGVyZSdzIG5vIGNvbmRpdGlvbmFsIGxvZ2ljIGJhc2VkIG9uIHRoZXNlIGNvdW50ZXIgaW5jcmVtZW50cywgbm8gbW9kaWZpY2F0aW9ucyB0byBwYWdlIGFsbG9jYXRpb24gYWxnb3JpdGhtcywgbm8gY2hhbmdlcyB0byBhbnkgZGF0YSBzdHJ1Y3R1cmVzIGV4Y2VwdCBhZGRpbmcgdGhlIGNvdW50ZXJzIGFuZCBsYWJlbHMuIEl0J3MganVzdCBpbnN0cnVtZW50YXRpb24sIG5vIGZ1bmN0aW9uYWwgYWx0ZXJhdGlvbnMuXG5cblRoZXJlZm9yZSwgYmVjYXVzZSB0aGlzIHBhdGNoICpvbmx5KiBhZGRzIGluc3RydW1lbnRhdGlvbiwgSSBjYW4gY29uZmlkZW50bHkgY29uY2x1ZGUgdGhhdCBgV29ydGhGdXp6aW5nYCBzaG91bGQgYmUgYGZhbHNlYC4gVGhpcyBkb2Vzbid0IGNoYW5nZSBrZXJuZWwgYmVoYXZpb3I7IGl0IGp1c3QgYWRkcyB2aXNpYmlsaXR5IGludG8gZXhpc3RpbmcgYmVoYXZpb3IuIFRoaXMgaXMgc2ltcGx5IHN0YXRpc3RpY3MgY29sbGVjdGlvbjsgaXQncyBub3QgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYW5kIHNvIHdvbid0IGFmZmVjdCBhbnkgZnV6emluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDIxOCwiT3V0cHV0VG9rZW5zIjo3MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjc1MiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIxVDAxOjQ1OjM3LjczMTYwMjIzNVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTcyMjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIG5ldyB2bXN0YXQgY291bnRlcnMgZm9yIHBlci1vcmRlciBwYWdlIGFsbG9jYXRpb24gYW5kIGNvbXBhY3Rpb24gc3RhdGlzdGljcy4gSXQgZG9lcyBub3QgYWx0ZXIgdGhlIGZ1bmN0aW9uYWwgZXhlY3V0aW9uIGZsb3cgb2YgdGhlIGtlcm5lbCwgYXMgaXQgb25seSBpbmNyZW1lbnRzIGNvdW50ZXJzIHZpYSBjb3VudF92bV9ldmVudCgpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIG5ldyB2bXN0YXQgY291bnRlcnMgZm9yIHBlci1vcmRlciBwYWdlIGFsbG9jYXRpb24gYW5kIGNvbXBhY3Rpb24gc3RhdGlzdGljcy4gSXQgZG9lcyBub3QgYWx0ZXIgdGhlIGZ1bmN0aW9uYWwgZXhlY3V0aW9uIGZsb3cgb2YgdGhlIGtlcm5lbCwgYXMgaXQgb25seSBpbmNyZW1lbnRzIGNvdW50ZXJzIHZpYSBjb3VudF92bV9ldmVudCgpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjFUMDE6NDU6MzcuNzMxNjIyNzg1WiIsIlNlcSI6NSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxNjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflow4hxkx[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-21 01:03:12 +0000 UTC FinishedAt: 2026-08-21 01:45: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+CgkJCTx0ZD4yMDI2LzA4LzIxIDAxOjQ1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBhZGRzIG5ldyB2bXN0YXQgY291bnRlcnMgZm9yIHBlci1vcmRlciBwYWdlIGFsbG9jYXRpb24gYW5kIGNvbXBhY3Rpb24gc3RhdGlzdGljcy4gSXQgZG9lcyBub3QgYWx0ZXIgdGhlIGZ1bmN0aW9uYWwgZXhlY3V0aW9uIGZsb3cgb2YgdGhlIGtlcm5lbCwgYXMgaXQgb25seSBpbmNyZW1lbnRzIGNvdW50ZXJzIHZpYSBjb3VudF92bV9ldmVudCgpLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMSAwMTo0NTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGRmZTk4YWU0Y2M4NzllMDQ3ZWJmNTRiMmM1NGJkYjY2MThlZDRhNGJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEF1ZyAyMSAwMTo0NToyNiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3ZtX2V2ZW50X2l0ZW0uaCBiL2luY2x1ZGUvbGludXgvdm1fZXZlbnRfaXRlbS5oXG5pbmRleCAwM2ZlOTVmNWEwMjAxLi43MjQ1NjFiN2U4MDBiIDEwMDY0NFxuLS0tIGEvaW5jbHVkZS9saW51eC92bV9ldmVudF9pdGVtLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbGludXgvdm1fZXZlbnRfaXRlbS5oXG5AQCAtMTc1LDYgJiM0MzsxNzUsMjUgQEAgZW51bSB2bV9ldmVudF9pdGVtIHsgUEdQR0lOLCBQR1BHT1VULCBQU1dQSU4sIFBTV1BPVVQsXG4gXHRcdEtTVEFDS19SRVNULFxuICNlbmRpZlxuICNlbmRpZiAvKiBDT05GSUdfREVCVUdfU1RBQ0tfVVNBR0UgKi9cbiYjNDM7XHRcdC8qXG4mIzQzO1x0XHQgKiBQZXItb3JkZXIgYWxsb2NhdGlvbiBzdGF0aXN0aWNzOiBlYWNoICpfRklSU1QuLipfTEFTVCByYW5nZVxuJiM0MztcdFx0ICogaXMgaW5kZXhlZCBieSBhbGxvY2F0aW9uIG9yZGVyLlxuJiM0MztcdFx0ICovXG4mIzQzO1x0XHRQR0FMTE9DX1NMT1dQQVRIX09SREVSX0ZJUlNULFxuJiM0MztcdFx0UEdBTExPQ19TTE9XUEFUSF9PUkRFUl9MQVNUID1cbiYjNDM7XHRcdFx0UEdBTExPQ19TTE9XUEFUSF9PUkRFUl9GSVJTVCAmIzQzOyBNQVhfUEFHRV9PUkRFUixcbiYjNDM7XHRcdFBHQUxMT0NfRkFJTF9PUkRFUl9GSVJTVCxcbiYjNDM7XHRcdFBHQUxMT0NfRkFJTF9PUkRFUl9MQVNUID1cbiYjNDM7XHRcdFx0UEdBTExPQ19GQUlMX09SREVSX0ZJUlNUICYjNDM7IE1BWF9QQUdFX09SREVSLFxuJiM0MzsjaWZkZWYgQ09ORklHX0NPTVBBQ1RJT05cbiYjNDM7XHRcdC8qIERpcmVjdCBjb21wYWN0aW9uIGlzIG5ldmVyIGVudGVyZWQgZm9yIG9yZGVyIDAgKi9cbiYjNDM7XHRcdENPTVBBQ1RTVEFMTF9PUkRFUl9GSVJTVCxcbiYjNDM7XHRcdENPTVBBQ1RTVEFMTF9PUkRFUl9MQVNUID1cbiYjNDM7XHRcdFx0Q09NUEFDVFNUQUxMX09SREVSX0ZJUlNUICYjNDM7IE1BWF9QQUdFX09SREVSIC0gMSxcbiYjNDM7XHRcdENPTVBBQ1RTVUNDRVNTX09SREVSX0ZJUlNULFxuJiM0MztcdFx0Q09NUEFDVFNVQ0NFU1NfT1JERVJfTEFTVCA9XG4mIzQzO1x0XHRcdENPTVBBQ1RTVUNDRVNTX09SREVSX0ZJUlNUICYjNDM7IE1BWF9QQUdFX09SREVSIC0gMSxcbiYjNDM7I2VuZGlmXG4gXHRcdE5SX1ZNX0VWRU5UX0lURU1TXG4gfTtcbiBcbmRpZmYgLS1naXQgYS9tbS9wYWdlX2FsbG9jLmMgYi9tbS9wYWdlX2FsbG9jLmNcbmluZGV4IGVlOTAyYTQ2OGMyZjUuLjJhMmIxNGYzYjUxNmYgMTAwNjQ0XG4tLS0gYS9tbS9wYWdlX2FsbG9jLmNcbiYjNDM7JiM0MzsmIzQzOyBiL21tL3BhZ2VfYWxsb2MuY1xuQEAgLTQxNjksNiAmIzQzOzQxNjksNyBAQCBfX2FsbG9jX3BhZ2VzX2RpcmVjdF9jb21wYWN0KGdmcF90IGdmcF9tYXNrLCB1bnNpZ25lZCBpbnQgb3JkZXIsXG4gXHQgKiBjb3VudCBhIGNvbXBhY3Rpb24gc3RhbGxcbiBcdCAqL1xuIFx0Y291bnRfdm1fZXZlbnQoQ09NUEFDVFNUQUxMKTtcbiYjNDM7XHRjb3VudF92bV9ldmVudChDT01QQUNUU1RBTExfT1JERVJfRklSU1QgJiM0Mzsgb3JkZXIgLSAxKTtcbiBcbiBcdC8qIFByZXAgYSBjYXB0dXJlZCBwYWdlIGlmIGF2YWlsYWJsZSAqL1xuIFx0aWYgKHBhZ2UpXG5AQCAtNDE4NCw2ICYjNDM7NDE4NSw3IEBAIF9fYWxsb2NfcGFnZXNfZGlyZWN0X2NvbXBhY3QoZ2ZwX3QgZ2ZwX21hc2ssIHVuc2lnbmVkIGludCBvcmRlcixcbiBcdFx0em9uZS1cdTAwM2Vjb21wYWN0X2Jsb2Nrc2tpcF9mbHVzaCA9IGZhbHNlO1xuIFx0XHRjb21wYWN0aW9uX2RlZmVyX3Jlc2V0KHpvbmUsIG9yZGVyLCB0cnVlKTtcbiBcdFx0Y291bnRfdm1fZXZlbnQoQ09NUEFDVFNVQ0NFU1MpO1xuJiM0MztcdFx0Y291bnRfdm1fZXZlbnQoQ09NUEFDVFNVQ0NFU1NfT1JERVJfRklSU1QgJiM0Mzsgb3JkZXIgLSAxKTtcbiBcdFx0cmV0dXJuIHBhZ2U7XG4gXHR9XG4gXG5AQCAtNDc1Nyw2ICYjNDM7NDc1OSw4IEBAIF9fYWxsb2NfcGFnZXNfc2xvd3BhdGgoZ2ZwX3QgZ2ZwX21hc2ssIHVuc2lnbmVkIGludCBvcmRlcixcbiBcdFx0V0FSTl9PTl9PTkNFKGN1cnJlbnQtXHUwMDNlZmxhZ3MgXHUwMDI2IFBGX01FTUFMTE9DKTtcbiBcdH1cbiBcbiYjNDM7XHRjb3VudF92bV9ldmVudChQR0FMTE9DX1NMT1dQQVRIX09SREVSX0ZJUlNUICYjNDM7IG9yZGVyKTtcbiYjNDM7XG4gcmVzdGFydDpcbiBcdGNvbXBhY3Rpb25fcmV0cmllcyA9IDA7XG4gXHRub19wcm9ncmVzc19sb29wcyA9IDA7XG5AQCAtNTMyMyw2ICYjNDM7NTMyNyw5IEBAIHN0cnVjdCBwYWdlICpfX2FsbG9jX2Zyb3plbl9wYWdlc19ub3Byb2YoZ2ZwX3QgZ2ZwLCB1bnNpZ25lZCBpbnQgb3JkZXIsXG4gXHRcdHBhZ2UgPSBOVUxMO1xuIFx0fVxuIFxuJiM0MztcdGlmICh1bmxpa2VseSghcGFnZSkpXG4mIzQzO1x0XHRjb3VudF92bV9ldmVudChQR0FMTE9DX0ZBSUxfT1JERVJfRklSU1QgJiM0Mzsgb3JkZXIpO1xuJiM0MztcbiBcdHRyYWNlX21tX3BhZ2VfYWxsb2MocGFnZSwgb3JkZXIsIGFsbG9jX2dmcCwgYWMubWlncmF0ZXR5cGUpO1xuIFx0a21zYW5fYWxsb2NfcGFnZShwYWdlLCBvcmRlciwgYWxsb2NfZ2ZwKTtcbiBcbmRpZmYgLS1naXQgYS9tbS92bXN0YXQuYyBiL21tL3Ztc3RhdC5jXG5pbmRleCBmNTM0OTcyZjUxN2RlLi4wOGYwZWJjN2ZmNDNjIDEwMDY0NFxuLS0tIGEvbW0vdm1zdGF0LmNcbiYjNDM7JiM0MzsmIzQzOyBiL21tL3Ztc3RhdC5jXG5AQCAtMTE4NCw2ICYjNDM7MTE4NCw5NCBAQCBpbnQgZnJhZ21lbnRhdGlvbl9pbmRleChzdHJ1Y3Qgem9uZSAqem9uZSwgdW5zaWduZWQgaW50IG9yZGVyKVxuIFx0W3h4IyNfTU9WQUJMRV0gPSB5eSBcJiMzNDtfbW92YWJsZVwmIzM0OyxcdFx0XFxcbiBcdFRFWFRfRk9SX0RFVklDRSh4eCwgeXkpXG4gXG4mIzQzOyNpZiBNQVhfUEFHRV9PUkRFUiBcdTAwM2U9IDRcbiYjNDM7I2RlZmluZSBURVhUX0ZPUl9PUkRFUl80KHh4LCB5eSkgW0koKHh4KSAmIzQzOyA0KV0gPSB5eSBcJiMzNDs0XCYjMzQ7LFxuJiM0MzsjZWxzZVxuJiM0MzsjZGVmaW5lIFRFWFRfRk9SX09SREVSXzQoeHgsIHl5KVxuJiM0MzsjZW5kaWZcbiYjNDM7XG4mIzQzOyNpZiBNQVhfUEFHRV9PUkRFUiBcdTAwM2U9IDVcbiYjNDM7I2RlZmluZSBURVhUX0ZPUl9PUkRFUl81KHh4LCB5eSkgW0koKHh4KSAmIzQzOyA1KV0gPSB5eSBcJiMzNDs1XCYjMzQ7LFxuJiM0MzsjZWxzZVxuJiM0MzsjZGVmaW5lIFRFWFRfRk9SX09SREVSXzUoeHgsIHl5KVxuJiM0MzsjZW5kaWZcbiYjNDM7XG4mIzQzOyNpZiBNQVhfUEFHRV9PUkRFUiBcdTAwM2U9IDZcbiYjNDM7I2RlZmluZSBURVhUX0ZPUl9PUkRFUl82KHh4LCB5eSkgW0koKHh4KSAmIzQzOyA2KV0gPSB5eSBcJiMzNDs2XCYjMzQ7LFxuJiM0MzsjZWxzZVxuJiM0MzsjZGVmaW5lIFRFWFRfRk9SX09SREVSXzYoeHgsIHl5KVxuJiM0MzsjZW5kaWZcbiYjNDM7XG4mIzQzOyNpZiBNQVhfUEFHRV9PUkRFUiBcdTAwM2U9IDdcbiYjNDM7I2RlZmluZSBURVhUX0ZPUl9PUkRFUl83KHh4LCB5eSkgW0koKHh4KSAmIzQzOyA3KV0gPSB5eSBcJiMzNDs3XCYjMzQ7LFxuJiM0MzsjZWxzZVxuJiM0MzsjZGVmaW5lIFRFWFRfRk9SX09SREVSXzcoeHgsIHl5KVxuJiM0MzsjZW5kaWZcbiYjNDM7XG4mIzQzOyNpZiBNQVhfUEFHRV9PUkRFUiBcdTAwM2U9IDhcbiYjNDM7I2RlZmluZSBURVhUX0ZPUl9PUkRFUl84KHh4LCB5eSkgW0koKHh4KSAmIzQzOyA4KV0gPSB5eSBcJiMzNDs4XCYjMzQ7LFxuJiM0MzsjZWxzZVxuJiM0MzsjZGVmaW5lIFRFWFRfRk9SX09SREVSXzgoeHgsIHl5KVxuJiM0MzsjZW5kaWZcbiYjNDM7XG4mIzQzOyNpZiBNQVhfUEFHRV9PUkRFUiBcdTAwM2U9IDlcbiYjNDM7I2RlZmluZSBURVhUX0ZPUl9PUkRFUl85KHh4LCB5eSkgW0koKHh4KSAmIzQzOyA5KV0gPSB5eSBcJiMzNDs5XCYjMzQ7LFxuJiM0MzsjZWxzZVxuJiM0MzsjZGVmaW5lIFRFWFRfRk9SX09SREVSXzkoeHgsIHl5KVxuJiM0MzsjZW5kaWZcbiYjNDM7XG4mIzQzOyNpZiBNQVhfUEFHRV9PUkRFUiBcdTAwM2U9IDEwXG4mIzQzOyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfMTAoeHgsIHl5KSBbSSgoeHgpICYjNDM7IDEwKV0gPSB5eSBcJiMzNDsxMFwmIzM0OyxcbiYjNDM7I2Vsc2VcbiYjNDM7I2RlZmluZSBURVhUX0ZPUl9PUkRFUl8xMCh4eCwgeXkpXG4mIzQzOyNlbmRpZlxuJiM0MztcbiYjNDM7I2lmIE1BWF9QQUdFX09SREVSIFx1MDAzZT0gMTFcbiYjNDM7I2RlZmluZSBURVhUX0ZPUl9PUkRFUl8xMSh4eCwgeXkpIFtJKCh4eCkgJiM0MzsgMTEpXSA9IHl5IFwmIzM0OzExXCYjMzQ7LFxuJiM0MzsjZWxzZVxuJiM0MzsjZGVmaW5lIFRFWFRfRk9SX09SREVSXzExKHh4LCB5eSlcbiYjNDM7I2VuZGlmXG4mIzQzO1xuJiM0MzsjaWYgTUFYX1BBR0VfT1JERVIgXHUwMDNlPSAxMlxuJiM0MzsjZGVmaW5lIFRFWFRfRk9SX09SREVSXzEyKHh4LCB5eSkgW0koKHh4KSAmIzQzOyAxMildID0geXkgXCYjMzQ7MTJcJiMzNDssXG4mIzQzOyNlbHNlXG4mIzQzOyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfMTIoeHgsIHl5KVxuJiM0MzsjZW5kaWZcbiYjNDM7XG4mIzQzOyNpZiBNQVhfUEFHRV9PUkRFUiBcdTAwM2U9IDEzXG4mIzQzOyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfMTMoeHgsIHl5KSBbSSgoeHgpICYjNDM7IDEzKV0gPSB5eSBcJiMzNDsxM1wmIzM0OyxcbiYjNDM7I2Vsc2VcbiYjNDM7I2RlZmluZSBURVhUX0ZPUl9PUkRFUl8xMyh4eCwgeXkpXG4mIzQzOyNlbmRpZlxuJiM0MztcbiYjNDM7c3RhdGljX2Fzc2VydChNQVhfUEFHRV9PUkRFUiBcdTAwM2U9IDQgXHUwMDI2XHUwMDI2IE1BWF9QQUdFX09SREVSIFx1MDAzYz0gMTMsXG4mIzQzO1x0ICAgICAgXCYjMzQ7dGhlIHBlci1vcmRlciBjb3VudGVyIG5hbWVzIG5lZWQgdXBkYXRpbmcgZm9yIHRoaXMgTUFYX1BBR0VfT1JERVJcJiMzNDspO1xuJiM0MztcbiYjNDM7LypcbiYjNDM7ICogKHh4KSAmIzQzOyBuIG11c3QgcmVzb2x2ZSB0byB0aGUgdm1fZXZlbnRfaXRlbSBmb3Igb3JkZXIgbiwgc28gcmFuZ2VzIHRoYXRcbiYjNDM7ICogc3RhcnQgYXQgb3JkZXIgMSBwYXNzIHRoZWlyICpfT1JERVJfRklSU1QgaXRlbSBtaW51cyBvbmUuIE9yZGVycyAxLi4zXG4mIzQzOyAqIGFyZSBnZW5lcmF0ZWQgdW5jb25kaXRpb25hbGx5LCA0Li4xMyBhcmUgTUFYX1BBR0VfT1JERVIgZGVwZW5kZW50IChlLmcuXG4mIzQzOyAqIHBwYzMyIHdpdGggMjU2ayBwYWdlcyBmb3JjZXMgNCBieSBkZWZhdWx0KS5cbiYjNDM7ICovXG4mIzQzOyNkZWZpbmUgVEVYVFNfRk9SX05PTlpFUk9fT1JERVJTKHh4LCB5eSlcdFxcXG4mIzQzO1x0W0koKHh4KSAmIzQzOyAxKV0gPSB5eSBcJiMzNDsxXCYjMzQ7LFx0XHRcdFxcXG4mIzQzO1x0W0koKHh4KSAmIzQzOyAyKV0gPSB5eSBcJiMzNDsyXCYjMzQ7LFx0XHRcdFxcXG4mIzQzO1x0W0koKHh4KSAmIzQzOyAzKV0gPSB5eSBcJiMzNDszXCYjMzQ7LFx0XHRcdFxcXG4mIzQzO1x0VEVYVF9GT1JfT1JERVJfNCh4eCwgeXkpXHRcdFxcXG4mIzQzO1x0VEVYVF9GT1JfT1JERVJfNSh4eCwgeXkpXHRcdFxcXG4mIzQzO1x0VEVYVF9GT1JfT1JERVJfNih4eCwgeXkpXHRcdFxcXG4mIzQzO1x0VEVYVF9GT1JfT1JERVJfNyh4eCwgeXkpXHRcdFxcXG4mIzQzO1x0VEVYVF9GT1JfT1JERVJfOCh4eCwgeXkpXHRcdFxcXG4mIzQzO1x0VEVYVF9GT1JfT1JERVJfOSh4eCwgeXkpXHRcdFxcXG4mIzQzO1x0VEVYVF9GT1JfT1JERVJfMTAoeHgsIHl5KVx0XHRcXFxuJiM0MztcdFRFWFRfRk9SX09SREVSXzExKHh4LCB5eSlcdFx0XFxcbiYjNDM7XHRURVhUX0ZPUl9PUkRFUl8xMih4eCwgeXkpXHRcdFxcXG4mIzQzO1x0VEVYVF9GT1JfT1JERVJfMTMoeHgsIHl5KVxuJiM0MztcbiYjNDM7I2RlZmluZSBURVhUU19GT1JfT1JERVJTKHh4LCB5eSlcdFx0XFxcbiYjNDM7XHRbSSh4eCldID0geXkgXCYjMzQ7MFwmIzM0OyxcdFx0XHRcXFxuJiM0MztcdFRFWFRTX0ZPUl9OT05aRVJPX09SREVSUyh4eCwgeXkpXG4mIzQzO1xuIGNvbnN0IGNoYXIgKiBjb25zdCB2bXN0YXRfdGV4dFtdID0ge1xuIFx0LyogZW51bSB6b25lX3N0YXRfaXRlbSBjb3VudGVycyAqL1xuICNkZWZpbmUgSSh4KSAoeClcbkBAIC0xNDg4LDYgJiM0MzsxNTc2LDE0IEBAIGNvbnN0IGNoYXIgKiBjb25zdCB2bXN0YXRfdGV4dFtdID0ge1xuICNpZiBUSFJFQURfU0laRSBcdTAwM2UgNjU1MzZcbiBcdFtJKEtTVEFDS19SRVNUKV1cdFx0XHQ9IFwmIzM0O2tzdGFja19yZXN0XCYjMzQ7LFxuICNlbmRpZlxuJiM0MzsjZW5kaWZcbiYjNDM7XHRURVhUU19GT1JfT1JERVJTKFBHQUxMT0NfU0xPV1BBVEhfT1JERVJfRklSU1QsIFwmIzM0O3BnYWxsb2Nfc2xvd3BhdGhfb3JkZXJcJiMzNDspXG4mIzQzO1x0VEVYVFNfRk9SX09SREVSUyhQR0FMTE9DX0ZBSUxfT1JERVJfRklSU1QsIFwmIzM0O3BnYWxsb2NfZmFpbF9vcmRlclwmIzM0OylcbiYjNDM7I2lmZGVmIENPTkZJR19DT01QQUNUSU9OXG4mIzQzO1x0VEVYVFNfRk9SX05PTlpFUk9fT1JERVJTKENPTVBBQ1RTVEFMTF9PUkRFUl9GSVJTVCAtIDEsXG4mIzQzO1x0XHRcdFx0IFwmIzM0O2NvbXBhY3Rfc3RhbGxfb3JkZXJcJiMzNDspXG4mIzQzO1x0VEVYVFNfRk9SX05PTlpFUk9fT1JERVJTKENPTVBBQ1RTVUNDRVNTX09SREVSX0ZJUlNUIC0gMSxcbiYjNDM7XHRcdFx0XHQgXCYjMzQ7Y29tcGFjdF9zdWNjZXNzX29yZGVyXCYjMzQ7KVxuICNlbmRpZlxuICN1bmRlZiBJXG4gI2VuZGlmIC8qIENPTkZJR19WTV9FVkVOVF9DT1VOVEVSUyAqL1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIxIDAxOjQ1PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IGFkZHMgbmV3IHZtc3RhdCBjb3VudGVycyBmb3IgcGVyLW9yZGVyIHBhZ2UgYWxsb2NhdGlvbiBhbmQgY29tcGFjdGlvbiBzdGF0aXN0aWNzLiBJdCBkb2VzIG5vdCBhbHRlciB0aGUgZnVuY3Rpb25hbCBleGVjdXRpb24gZmxvdyBvZiB0aGUga2VybmVsLCBhcyBpdCBvbmx5IGluY3JlbWVudHMgY291bnRlcnMgdmlhIGNvdW50X3ZtX2V2ZW50KCkuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZGZlOThhZTRjYzg3OWUwNDdlYmY1NGIyYzU0YmRiNjYxOGVkNGE0YgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBGcmkgQXVnIDIxIDAxOjQ1OjI2IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC92bV9ldmVudF9pdGVtLmggYi9pbmNsdWRlL2xpbnV4L3ZtX2V2ZW50X2l0ZW0uaAppbmRleCAwM2ZlOTVmNWEwMjAxLi43MjQ1NjFiN2U4MDBiIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3ZtX2V2ZW50X2l0ZW0uaAomIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL2xpbnV4L3ZtX2V2ZW50X2l0ZW0uaApAQCAtMTc1LDYgJiM0MzsxNzUsMjUgQEAgZW51bSB2bV9ldmVudF9pdGVtIHsgUEdQR0lOLCBQR1BHT1VULCBQU1dQSU4sIFBTV1BPVVQsCiAJCUtTVEFDS19SRVNULAogI2VuZGlmCiAjZW5kaWYgLyogQ09ORklHX0RFQlVHX1NUQUNLX1VTQUdFICovCiYjNDM7CQkvKgomIzQzOwkJICogUGVyLW9yZGVyIGFsbG9jYXRpb24gc3RhdGlzdGljczogZWFjaCAqX0ZJUlNULi4qX0xBU1QgcmFuZ2UKJiM0MzsJCSAqIGlzIGluZGV4ZWQgYnkgYWxsb2NhdGlvbiBvcmRlci4KJiM0MzsJCSAqLwomIzQzOwkJUEdBTExPQ19TTE9XUEFUSF9PUkRFUl9GSVJTVCwKJiM0MzsJCVBHQUxMT0NfU0xPV1BBVEhfT1JERVJfTEFTVCA9CiYjNDM7CQkJUEdBTExPQ19TTE9XUEFUSF9PUkRFUl9GSVJTVCAmIzQzOyBNQVhfUEFHRV9PUkRFUiwKJiM0MzsJCVBHQUxMT0NfRkFJTF9PUkRFUl9GSVJTVCwKJiM0MzsJCVBHQUxMT0NfRkFJTF9PUkRFUl9MQVNUID0KJiM0MzsJCQlQR0FMTE9DX0ZBSUxfT1JERVJfRklSU1QgJiM0MzsgTUFYX1BBR0VfT1JERVIsCiYjNDM7I2lmZGVmIENPTkZJR19DT01QQUNUSU9OCiYjNDM7CQkvKiBEaXJlY3QgY29tcGFjdGlvbiBpcyBuZXZlciBlbnRlcmVkIGZvciBvcmRlciAwICovCiYjNDM7CQlDT01QQUNUU1RBTExfT1JERVJfRklSU1QsCiYjNDM7CQlDT01QQUNUU1RBTExfT1JERVJfTEFTVCA9CiYjNDM7CQkJQ09NUEFDVFNUQUxMX09SREVSX0ZJUlNUICYjNDM7IE1BWF9QQUdFX09SREVSIC0gMSwKJiM0MzsJCUNPTVBBQ1RTVUNDRVNTX09SREVSX0ZJUlNULAomIzQzOwkJQ09NUEFDVFNVQ0NFU1NfT1JERVJfTEFTVCA9CiYjNDM7CQkJQ09NUEFDVFNVQ0NFU1NfT1JERVJfRklSU1QgJiM0MzsgTUFYX1BBR0VfT1JERVIgLSAxLAomIzQzOyNlbmRpZgogCQlOUl9WTV9FVkVOVF9JVEVNUwogfTsKIApkaWZmIC0tZ2l0IGEvbW0vcGFnZV9hbGxvYy5jIGIvbW0vcGFnZV9hbGxvYy5jCmluZGV4IGVlOTAyYTQ2OGMyZjUuLjJhMmIxNGYzYjUxNmYgMTAwNjQ0Ci0tLSBhL21tL3BhZ2VfYWxsb2MuYwomIzQzOyYjNDM7JiM0MzsgYi9tbS9wYWdlX2FsbG9jLmMKQEAgLTQxNjksNiAmIzQzOzQxNjksNyBAQCBfX2FsbG9jX3BhZ2VzX2RpcmVjdF9jb21wYWN0KGdmcF90IGdmcF9tYXNrLCB1bnNpZ25lZCBpbnQgb3JkZXIsCiAJICogY291bnQgYSBjb21wYWN0aW9uIHN0YWxsCiAJICovCiAJY291bnRfdm1fZXZlbnQoQ09NUEFDVFNUQUxMKTsKJiM0MzsJY291bnRfdm1fZXZlbnQoQ09NUEFDVFNUQUxMX09SREVSX0ZJUlNUICYjNDM7IG9yZGVyIC0gMSk7CiAKIAkvKiBQcmVwIGEgY2FwdHVyZWQgcGFnZSBpZiBhdmFpbGFibGUgKi8KIAlpZiAocGFnZSkKQEAgLTQxODQsNiAmIzQzOzQxODUsNyBAQCBfX2FsbG9jX3BhZ2VzX2RpcmVjdF9jb21wYWN0KGdmcF90IGdmcF9tYXNrLCB1bnNpZ25lZCBpbnQgb3JkZXIsCiAJCXpvbmUtJmd0O2NvbXBhY3RfYmxvY2tza2lwX2ZsdXNoID0gZmFsc2U7CiAJCWNvbXBhY3Rpb25fZGVmZXJfcmVzZXQoem9uZSwgb3JkZXIsIHRydWUpOwogCQljb3VudF92bV9ldmVudChDT01QQUNUU1VDQ0VTUyk7CiYjNDM7CQljb3VudF92bV9ldmVudChDT01QQUNUU1VDQ0VTU19PUkRFUl9GSVJTVCAmIzQzOyBvcmRlciAtIDEpOwogCQlyZXR1cm4gcGFnZTsKIAl9CiAKQEAgLTQ3NTcsNiAmIzQzOzQ3NTksOCBAQCBfX2FsbG9jX3BhZ2VzX3Nsb3dwYXRoKGdmcF90IGdmcF9tYXNrLCB1bnNpZ25lZCBpbnQgb3JkZXIsCiAJCVdBUk5fT05fT05DRShjdXJyZW50LSZndDtmbGFncyAmYW1wOyBQRl9NRU1BTExPQyk7CiAJfQogCiYjNDM7CWNvdW50X3ZtX2V2ZW50KFBHQUxMT0NfU0xPV1BBVEhfT1JERVJfRklSU1QgJiM0Mzsgb3JkZXIpOwomIzQzOwogcmVzdGFydDoKIAljb21wYWN0aW9uX3JldHJpZXMgPSAwOwogCW5vX3Byb2dyZXNzX2xvb3BzID0gMDsKQEAgLTUzMjMsNiAmIzQzOzUzMjcsOSBAQCBzdHJ1Y3QgcGFnZSAqX19hbGxvY19mcm96ZW5fcGFnZXNfbm9wcm9mKGdmcF90IGdmcCwgdW5zaWduZWQgaW50IG9yZGVyLAogCQlwYWdlID0gTlVMTDsKIAl9CiAKJiM0MzsJaWYgKHVubGlrZWx5KCFwYWdlKSkKJiM0MzsJCWNvdW50X3ZtX2V2ZW50KFBHQUxMT0NfRkFJTF9PUkRFUl9GSVJTVCAmIzQzOyBvcmRlcik7CiYjNDM7CiAJdHJhY2VfbW1fcGFnZV9hbGxvYyhwYWdlLCBvcmRlciwgYWxsb2NfZ2ZwLCBhYy5taWdyYXRldHlwZSk7CiAJa21zYW5fYWxsb2NfcGFnZShwYWdlLCBvcmRlciwgYWxsb2NfZ2ZwKTsKIApkaWZmIC0tZ2l0IGEvbW0vdm1zdGF0LmMgYi9tbS92bXN0YXQuYwppbmRleCBmNTM0OTcyZjUxN2RlLi4wOGYwZWJjN2ZmNDNjIDEwMDY0NAotLS0gYS9tbS92bXN0YXQuYwomIzQzOyYjNDM7JiM0MzsgYi9tbS92bXN0YXQuYwpAQCAtMTE4NCw2ICYjNDM7MTE4NCw5NCBAQCBpbnQgZnJhZ21lbnRhdGlvbl9pbmRleChzdHJ1Y3Qgem9uZSAqem9uZSwgdW5zaWduZWQgaW50IG9yZGVyKQogCVt4eCMjX01PVkFCTEVdID0geXkgJiMzNDtfbW92YWJsZSYjMzQ7LAkJXAogCVRFWFRfRk9SX0RFVklDRSh4eCwgeXkpCiAKJiM0MzsjaWYgTUFYX1BBR0VfT1JERVIgJmd0Oz0gNAomIzQzOyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfNCh4eCwgeXkpIFtJKCh4eCkgJiM0MzsgNCldID0geXkgJiMzNDs0JiMzNDssCiYjNDM7I2Vsc2UKJiM0MzsjZGVmaW5lIFRFWFRfRk9SX09SREVSXzQoeHgsIHl5KQomIzQzOyNlbmRpZgomIzQzOwomIzQzOyNpZiBNQVhfUEFHRV9PUkRFUiAmZ3Q7PSA1CiYjNDM7I2RlZmluZSBURVhUX0ZPUl9PUkRFUl81KHh4LCB5eSkgW0koKHh4KSAmIzQzOyA1KV0gPSB5eSAmIzM0OzUmIzM0OywKJiM0MzsjZWxzZQomIzQzOyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfNSh4eCwgeXkpCiYjNDM7I2VuZGlmCiYjNDM7CiYjNDM7I2lmIE1BWF9QQUdFX09SREVSICZndDs9IDYKJiM0MzsjZGVmaW5lIFRFWFRfRk9SX09SREVSXzYoeHgsIHl5KSBbSSgoeHgpICYjNDM7IDYpXSA9IHl5ICYjMzQ7NiYjMzQ7LAomIzQzOyNlbHNlCiYjNDM7I2RlZmluZSBURVhUX0ZPUl9PUkRFUl82KHh4LCB5eSkKJiM0MzsjZW5kaWYKJiM0MzsKJiM0MzsjaWYgTUFYX1BBR0VfT1JERVIgJmd0Oz0gNwomIzQzOyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfNyh4eCwgeXkpIFtJKCh4eCkgJiM0MzsgNyldID0geXkgJiMzNDs3JiMzNDssCiYjNDM7I2Vsc2UKJiM0MzsjZGVmaW5lIFRFWFRfRk9SX09SREVSXzcoeHgsIHl5KQomIzQzOyNlbmRpZgomIzQzOwomIzQzOyNpZiBNQVhfUEFHRV9PUkRFUiAmZ3Q7PSA4CiYjNDM7I2RlZmluZSBURVhUX0ZPUl9PUkRFUl84KHh4LCB5eSkgW0koKHh4KSAmIzQzOyA4KV0gPSB5eSAmIzM0OzgmIzM0OywKJiM0MzsjZWxzZQomIzQzOyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfOCh4eCwgeXkpCiYjNDM7I2VuZGlmCiYjNDM7CiYjNDM7I2lmIE1BWF9QQUdFX09SREVSICZndDs9IDkKJiM0MzsjZGVmaW5lIFRFWFRfRk9SX09SREVSXzkoeHgsIHl5KSBbSSgoeHgpICYjNDM7IDkpXSA9IHl5ICYjMzQ7OSYjMzQ7LAomIzQzOyNlbHNlCiYjNDM7I2RlZmluZSBURVhUX0ZPUl9PUkRFUl85KHh4LCB5eSkKJiM0MzsjZW5kaWYKJiM0MzsKJiM0MzsjaWYgTUFYX1BBR0VfT1JERVIgJmd0Oz0gMTAKJiM0MzsjZGVmaW5lIFRFWFRfRk9SX09SREVSXzEwKHh4LCB5eSkgW0koKHh4KSAmIzQzOyAxMCldID0geXkgJiMzNDsxMCYjMzQ7LAomIzQzOyNlbHNlCiYjNDM7I2RlZmluZSBURVhUX0ZPUl9PUkRFUl8xMCh4eCwgeXkpCiYjNDM7I2VuZGlmCiYjNDM7CiYjNDM7I2lmIE1BWF9QQUdFX09SREVSICZndDs9IDExCiYjNDM7I2RlZmluZSBURVhUX0ZPUl9PUkRFUl8xMSh4eCwgeXkpIFtJKCh4eCkgJiM0MzsgMTEpXSA9IHl5ICYjMzQ7MTEmIzM0OywKJiM0MzsjZWxzZQomIzQzOyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfMTEoeHgsIHl5KQomIzQzOyNlbmRpZgomIzQzOwomIzQzOyNpZiBNQVhfUEFHRV9PUkRFUiAmZ3Q7PSAxMgomIzQzOyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfMTIoeHgsIHl5KSBbSSgoeHgpICYjNDM7IDEyKV0gPSB5eSAmIzM0OzEyJiMzNDssCiYjNDM7I2Vsc2UKJiM0MzsjZGVmaW5lIFRFWFRfRk9SX09SREVSXzEyKHh4LCB5eSkKJiM0MzsjZW5kaWYKJiM0MzsKJiM0MzsjaWYgTUFYX1BBR0VfT1JERVIgJmd0Oz0gMTMKJiM0MzsjZGVmaW5lIFRFWFRfRk9SX09SREVSXzEzKHh4LCB5eSkgW0koKHh4KSAmIzQzOyAxMyldID0geXkgJiMzNDsxMyYjMzQ7LAomIzQzOyNlbHNlCiYjNDM7I2RlZmluZSBURVhUX0ZPUl9PUkRFUl8xMyh4eCwgeXkpCiYjNDM7I2VuZGlmCiYjNDM7CiYjNDM7c3RhdGljX2Fzc2VydChNQVhfUEFHRV9PUkRFUiAmZ3Q7PSA0ICZhbXA7JmFtcDsgTUFYX1BBR0VfT1JERVIgJmx0Oz0gMTMsCiYjNDM7CSAgICAgICYjMzQ7dGhlIHBlci1vcmRlciBjb3VudGVyIG5hbWVzIG5lZWQgdXBkYXRpbmcgZm9yIHRoaXMgTUFYX1BBR0VfT1JERVImIzM0Oyk7CiYjNDM7CiYjNDM7LyoKJiM0MzsgKiAoeHgpICYjNDM7IG4gbXVzdCByZXNvbHZlIHRvIHRoZSB2bV9ldmVudF9pdGVtIGZvciBvcmRlciBuLCBzbyByYW5nZXMgdGhhdAomIzQzOyAqIHN0YXJ0IGF0IG9yZGVyIDEgcGFzcyB0aGVpciAqX09SREVSX0ZJUlNUIGl0ZW0gbWludXMgb25lLiBPcmRlcnMgMS4uMwomIzQzOyAqIGFyZSBnZW5lcmF0ZWQgdW5jb25kaXRpb25hbGx5LCA0Li4xMyBhcmUgTUFYX1BBR0VfT1JERVIgZGVwZW5kZW50IChlLmcuCiYjNDM7ICogcHBjMzIgd2l0aCAyNTZrIHBhZ2VzIGZvcmNlcyA0IGJ5IGRlZmF1bHQpLgomIzQzOyAqLwomIzQzOyNkZWZpbmUgVEVYVFNfRk9SX05PTlpFUk9fT1JERVJTKHh4LCB5eSkJXAomIzQzOwlbSSgoeHgpICYjNDM7IDEpXSA9IHl5ICYjMzQ7MSYjMzQ7LAkJCVwKJiM0MzsJW0koKHh4KSAmIzQzOyAyKV0gPSB5eSAmIzM0OzImIzM0OywJCQlcCiYjNDM7CVtJKCh4eCkgJiM0MzsgMyldID0geXkgJiMzNDszJiMzNDssCQkJXAomIzQzOwlURVhUX0ZPUl9PUkRFUl80KHh4LCB5eSkJCVwKJiM0MzsJVEVYVF9GT1JfT1JERVJfNSh4eCwgeXkpCQlcCiYjNDM7CVRFWFRfRk9SX09SREVSXzYoeHgsIHl5KQkJXAomIzQzOwlURVhUX0ZPUl9PUkRFUl83KHh4LCB5eSkJCVwKJiM0MzsJVEVYVF9GT1JfT1JERVJfOCh4eCwgeXkpCQlcCiYjNDM7CVRFWFRfRk9SX09SREVSXzkoeHgsIHl5KQkJXAomIzQzOwlURVhUX0ZPUl9PUkRFUl8xMCh4eCwgeXkpCQlcCiYjNDM7CVRFWFRfRk9SX09SREVSXzExKHh4LCB5eSkJCVwKJiM0MzsJVEVYVF9GT1JfT1JERVJfMTIoeHgsIHl5KQkJXAomIzQzOwlURVhUX0ZPUl9PUkRFUl8xMyh4eCwgeXkpCiYjNDM7CiYjNDM7I2RlZmluZSBURVhUU19GT1JfT1JERVJTKHh4LCB5eSkJCVwKJiM0MzsJW0koeHgpXSA9IHl5ICYjMzQ7MCYjMzQ7LAkJCVwKJiM0MzsJVEVYVFNfRk9SX05PTlpFUk9fT1JERVJTKHh4LCB5eSkKJiM0MzsKIGNvbnN0IGNoYXIgKiBjb25zdCB2bXN0YXRfdGV4dFtdID0gewogCS8qIGVudW0gem9uZV9zdGF0X2l0ZW0gY291bnRlcnMgKi8KICNkZWZpbmUgSSh4KSAoeCkKQEAgLTE0ODgsNiAmIzQzOzE1NzYsMTQgQEAgY29uc3QgY2hhciAqIGNvbnN0IHZtc3RhdF90ZXh0W10gPSB7CiAjaWYgVEhSRUFEX1NJWkUgJmd0OyA2NTUzNgogCVtJKEtTVEFDS19SRVNUKV0JCQk9ICYjMzQ7a3N0YWNrX3Jlc3QmIzM0OywKICNlbmRpZgomIzQzOyNlbmRpZgomIzQzOwlURVhUU19GT1JfT1JERVJTKFBHQUxMT0NfU0xPV1BBVEhfT1JERVJfRklSU1QsICYjMzQ7cGdhbGxvY19zbG93cGF0aF9vcmRlciYjMzQ7KQomIzQzOwlURVhUU19GT1JfT1JERVJTKFBHQUxMT0NfRkFJTF9PUkRFUl9GSVJTVCwgJiMzNDtwZ2FsbG9jX2ZhaWxfb3JkZXImIzM0OykKJiM0MzsjaWZkZWYgQ09ORklHX0NPTVBBQ1RJT04KJiM0MzsJVEVYVFNfRk9SX05PTlpFUk9fT1JERVJTKENPTVBBQ1RTVEFMTF9PUkRFUl9GSVJTVCAtIDEsCiYjNDM7CQkJCSAmIzM0O2NvbXBhY3Rfc3RhbGxfb3JkZXImIzM0OykKJiM0MzsJVEVYVFNfRk9SX05PTlpFUk9fT1JERVJTKENPTVBBQ1RTVUNDRVNTX09SREVSX0ZJUlNUIC0gMSwKJiM0MzsJCQkJICYjMzQ7Y29tcGFjdF9zdWNjZXNzX29yZGVyJiMzNDspCiAjZW5kaWYKICN1bmRlZiBJCiAjZW5kaWYgLyogQ09ORklHX1ZNX0VWRU5UX0NPVU5URVJTICovCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIxIDAxOjQ1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQyMTgKCQkJCQkJCW91dHB1dDogNzMKCQkJCQkJCXRob3VnaHRzOiA3NTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQYXRjaCBmb3IgUG90ZW50aWFsIEZ1enppbmcgSW1wYWN0KioKCk9rYXksIHNvIEkmIzM5O3ZlIGdvdCB0aGlzIHBhdGNoIGFkZGluZyBzb21lIG5ldyBgdm1fZXZlbnRfaXRlbWAgY291bnRlcnMsIHNwZWNpZmljYWxseSB0cmFja2luZyBwZXItb3JkZXIgYWxsb2NhdGlvbiBzdGF0cyBsaWtlIGBQR0FMTE9DX1NMT1dQQVRIX09SREVSX0ZJUlNUYCwgYFBHQUxMT0NfRkFJTF9PUkRFUl9GSVJTVGAsIGBDT01QQUNUU1RBTExfT1JERVJfRklSU1RgLCBhbmQgYENPTVBBQ1RTVUNDRVNTX09SREVSX0ZJUlNUYC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsICYjMzQ7YXJlIHdlIGludHJvZHVjaW5nIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdGhhdCBjb3VsZCBiZSBmdXp6ZWQ/JiMzNDsgVGhhdCYjMzk7cyB0aGUga2V5IHF1ZXN0aW9uLgoKVGhlIGRlc2NyaXB0aW9uIHNheXMgdGhlc2UgYXJlIGp1c3QgbWV0cmljcywgcHVyZWx5IHN0YXRpc3RpY2FsLCBhbmQgdGhhdCBgY291bnRfdm1fZXZlbnRgIGlzIGp1c3QgaW5jcmVtZW50aW5nIGEgcGVyLUNQVSBjb3VudGVyLiBBbHJpZ2h0LCBsZXQmIzM5O3MgZHJpbGwgZG93biB0byB2ZXJpZnkuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhpcyBpc24mIzM5O3Qgc3VidGx5IGNoYW5naW5nIGFueSBiZWhhdmlvci4KCkkmIzM5O20gbG9va2luZyBhdCB0aGUgY29kZSBjaGFuZ2VzIGluIGBtbS9wYWdlX2FsbG9jLmNgLiBJIHNlZSB0aGUgYGNvdW50X3ZtX2V2ZW50YCBjYWxscyBiZWluZyBhZGRlZCB3aXRoaW4gYF9fYWxsb2NfcGFnZXNfZGlyZWN0X2NvbXBhY3RgLCBgX19hbGxvY19wYWdlc19zbG93cGF0aGAsIGFuZCBgX19hbGxvY19mcm96ZW5fcGFnZXNfbm9wcm9mYC4gRm9yIGluc3RhbmNlLCBpbiBgX19hbGxvY19wYWdlc19kaXJlY3RfY29tcGFjdGAsIEkgc2VlIHRoZSBhZGRpdGlvbnMgYWZ0ZXIgdGhlIGBDT01QQUNUU1RBTExgIGFuZCBgQ09NUEFDVFNVQ0NFU1NgIGNhbGxzLCBhbmQgZm9yIGBfX2FsbG9jX3BhZ2VzX3Nsb3dwYXRoYCBhbmQgYF9fYWxsb2NfZnJvemVuX3BhZ2VzX25vcHJvZmAgcmVsYXRlZCBjYWxscy4KCkl0IGxvb2tzIGxpa2UgdGhlIG5ldyBjb3VudGVycyBhcmUgYmVpbmcgaW5jcmVtZW50ZWQgYWxvbmdzaWRlIGV4aXN0aW5nIG9uZXMuIFRoZSBrZXkgcGFydCBpcyB0aGF0IHRoZSBwYXRjaCAqb25seSogaW50cm9kdWNlcyB0aGVzZSBgY291bnRfdm1fZXZlbnRgIGNhbGxzLiBUaGVyZSYjMzk7cyBubyBjb25kaXRpb25hbCBsb2dpYyBiYXNlZCBvbiB0aGVzZSBjb3VudGVyIGluY3JlbWVudHMsIG5vIG1vZGlmaWNhdGlvbnMgdG8gcGFnZSBhbGxvY2F0aW9uIGFsZ29yaXRobXMsIG5vIGNoYW5nZXMgdG8gYW55IGRhdGEgc3RydWN0dXJlcyBleGNlcHQgYWRkaW5nIHRoZSBjb3VudGVycyBhbmQgbGFiZWxzLiBJdCYjMzk7cyBqdXN0IGluc3RydW1lbnRhdGlvbiwgbm8gZnVuY3Rpb25hbCBhbHRlcmF0aW9ucy4KClRoZXJlZm9yZSwgYmVjYXVzZSB0aGlzIHBhdGNoICpvbmx5KiBhZGRzIGluc3RydW1lbnRhdGlvbiwgSSBjYW4gY29uZmlkZW50bHkgY29uY2x1ZGUgdGhhdCBgV29ydGhGdXp6aW5nYCBzaG91bGQgYmUgYGZhbHNlYC4gVGhpcyBkb2VzbiYjMzk7dCBjaGFuZ2Uga2VybmVsIGJlaGF2aW9yOyBpdCBqdXN0IGFkZHMgdmlzaWJpbGl0eSBpbnRvIGV4aXN0aW5nIGJlaGF2aW9yLiBUaGlzIGlzIHNpbXBseSBzdGF0aXN0aWNzIGNvbGxlY3Rpb247IGl0JiMzOTtzIG5vdCBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhbmQgc28gd29uJiMzOTt0IGFmZmVjdCBhbnkgZnV6emluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMSAwMTo0NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgYWRkcyBuZXcgdm1zdGF0IGNvdW50ZXJzIGZvciBwZXItb3JkZXIgcGFnZSBhbGxvY2F0aW9uIGFuZCBjb21wYWN0aW9uIHN0YXRpc3RpY3MuIEl0IGRvZXMgbm90IGFsdGVyIHRoZSBmdW5jdGlvbmFsIGV4ZWN1dGlvbiBmbG93IG9mIHRoZSBrZXJuZWwsIGFzIGl0IG9ubHkgaW5jcmVtZW50cyBjb3VudGVycyB2aWEgY291bnRfdm1fZXZlbnQoKS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgYWRkcyBuZXcgdm1zdGF0IGNvdW50ZXJzIGZvciBwZXItb3JkZXIgcGFnZSBhbGxvY2F0aW9uIGFuZCBjb21wYWN0aW9uIHN0YXRpc3RpY3MuIEl0IGRvZXMgbm90IGFsdGVyIHRoZSBmdW5jdGlvbmFsIGV4ZWN1dGlvbiBmbG93IG9mIHRoZSBrZXJuZWwsIGFzIGl0IG9ubHkgaW5jcmVtZW50cyBjb3VudGVycyB2aWEgY291bnRfdm1fZXZlbnQoKS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjEgMDE6NDU8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIxVDAxOjQ1OjI3LjU5Mjg1MjE4NFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwMTM4Nzg5NTkxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIG5ldyB2bXN0YXQgY291bnRlcnMgZm9yIHBlci1vcmRlciBwYWdlIGFsbG9jYXRpb24gYW5kIGNvbXBhY3Rpb24gc3RhdGlzdGljcy4gSXQgZG9lcyBub3QgYWx0ZXIgdGhlIGZ1bmN0aW9uYWwgZXhlY3V0aW9uIGZsb3cgb2YgdGhlIGtlcm5lbCwgYXMgaXQgb25seSBpbmNyZW1lbnRzIGNvdW50ZXJzIHZpYSBjb3VudF92bV9ldmVudCgpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjFUMDE6NDU6MjcuNTkyODYxNTM0WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjA1ODc0NjQ1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZGZlOThhZTRjYzg3OWUwNDdlYmY1NGIyYzU0YmRiNjYxOGVkNGE0YlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIEF1ZyAyMSAwMTo0NToyNiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3ZtX2V2ZW50X2l0ZW0uaCBiL2luY2x1ZGUvbGludXgvdm1fZXZlbnRfaXRlbS5oXFxuaW5kZXggMDNmZTk1ZjVhMDIwMS4uNzI0NTYxYjdlODAwYiAxMDA2NDRcXG4tLS0gYS9pbmNsdWRlL2xpbnV4L3ZtX2V2ZW50X2l0ZW0uaFxcbisrKyBiL2luY2x1ZGUvbGludXgvdm1fZXZlbnRfaXRlbS5oXFxuQEAgLTE3NSw2ICsxNzUsMjUgQEAgZW51bSB2bV9ldmVudF9pdGVtIHsgUEdQR0lOLCBQR1BHT1VULCBQU1dQSU4sIFBTV1BPVVQsXFxuIFxcdFxcdEtTVEFDS19SRVNULFxcbiAjZW5kaWZcXG4gI2VuZGlmIC8qIENPTkZJR19ERUJVR19TVEFDS19VU0FHRSAqL1xcbitcXHRcXHQvKlxcbitcXHRcXHQgKiBQZXItb3JkZXIgYWxsb2NhdGlvbiBzdGF0aXN0aWNzOiBlYWNoICpfRklSU1QuLipfTEFTVCByYW5nZVxcbitcXHRcXHQgKiBpcyBpbmRleGVkIGJ5IGFsbG9jYXRpb24gb3JkZXIuXFxuK1xcdFxcdCAqL1xcbitcXHRcXHRQR0FMTE9DX1NMT1dQQVRIX09SREVSX0ZJUlNULFxcbitcXHRcXHRQR0FMTE9DX1NMT1dQQVRIX09SREVSX0xBU1QgPVxcbitcXHRcXHRcXHRQR0FMTE9DX1NMT1dQQVRIX09SREVSX0ZJUlNUICsgTUFYX1BBR0VfT1JERVIsXFxuK1xcdFxcdFBHQUxMT0NfRkFJTF9PUkRFUl9GSVJTVCxcXG4rXFx0XFx0UEdBTExPQ19GQUlMX09SREVSX0xBU1QgPVxcbitcXHRcXHRcXHRQR0FMTE9DX0ZBSUxfT1JERVJfRklSU1QgKyBNQVhfUEFHRV9PUkRFUixcXG4rI2lmZGVmIENPTkZJR19DT01QQUNUSU9OXFxuK1xcdFxcdC8qIERpcmVjdCBjb21wYWN0aW9uIGlzIG5ldmVyIGVudGVyZWQgZm9yIG9yZGVyIDAgKi9cXG4rXFx0XFx0Q09NUEFDVFNUQUxMX09SREVSX0ZJUlNULFxcbitcXHRcXHRDT01QQUNUU1RBTExfT1JERVJfTEFTVCA9XFxuK1xcdFxcdFxcdENPTVBBQ1RTVEFMTF9PUkRFUl9GSVJTVCArIE1BWF9QQUdFX09SREVSIC0gMSxcXG4rXFx0XFx0Q09NUEFDVFNVQ0NFU1NfT1JERVJfRklSU1QsXFxuK1xcdFxcdENPTVBBQ1RTVUNDRVNTX09SREVSX0xBU1QgPVxcbitcXHRcXHRcXHRDT01QQUNUU1VDQ0VTU19PUkRFUl9GSVJTVCArIE1BWF9QQUdFX09SREVSIC0gMSxcXG4rI2VuZGlmXFxuIFxcdFxcdE5SX1ZNX0VWRU5UX0lURU1TXFxuIH07XFxuIFxcbmRpZmYgLS1naXQgYS9tbS9wYWdlX2FsbG9jLmMgYi9tbS9wYWdlX2FsbG9jLmNcXG5pbmRleCBlZTkwMmE0NjhjMmY1Li4yYTJiMTRmM2I1MTZmIDEwMDY0NFxcbi0tLSBhL21tL3BhZ2VfYWxsb2MuY1xcbisrKyBiL21tL3BhZ2VfYWxsb2MuY1xcbkBAIC00MTY5LDYgKzQxNjksNyBAQCBfX2FsbG9jX3BhZ2VzX2RpcmVjdF9jb21wYWN0KGdmcF90IGdmcF9tYXNrLCB1bnNpZ25lZCBpbnQgb3JkZXIsXFxuIFxcdCAqIGNvdW50IGEgY29tcGFjdGlvbiBzdGFsbFxcbiBcXHQgKi9cXG4gXFx0Y291bnRfdm1fZXZlbnQoQ09NUEFDVFNUQUxMKTtcXG4rXFx0Y291bnRfdm1fZXZlbnQoQ09NUEFDVFNUQUxMX09SREVSX0ZJUlNUICsgb3JkZXIgLSAxKTtcXG4gXFxuIFxcdC8qIFByZXAgYSBjYXB0dXJlZCBwYWdlIGlmIGF2YWlsYWJsZSAqL1xcbiBcXHRpZiAocGFnZSlcXG5AQCAtNDE4NCw2ICs0MTg1LDcgQEAgX19hbGxvY19wYWdlc19kaXJlY3RfY29tcGFjdChnZnBfdCBnZnBfbWFzaywgdW5zaWduZWQgaW50IG9yZGVyLFxcbiBcXHRcXHR6b25lLVxcdTAwM2Vjb21wYWN0X2Jsb2Nrc2tpcF9mbHVzaCA9IGZhbHNlO1xcbiBcXHRcXHRjb21wYWN0aW9uX2RlZmVyX3Jlc2V0KHpvbmUsIG9yZGVyLCB0cnVlKTtcXG4gXFx0XFx0Y291bnRfdm1fZXZlbnQoQ09NUEFDVFNVQ0NFU1MpO1xcbitcXHRcXHRjb3VudF92bV9ldmVudChDT01QQUNUU1VDQ0VTU19PUkRFUl9GSVJTVCArIG9yZGVyIC0gMSk7XFxuIFxcdFxcdHJldHVybiBwYWdlO1xcbiBcXHR9XFxuIFxcbkBAIC00NzU3LDYgKzQ3NTksOCBAQCBfX2FsbG9jX3BhZ2VzX3Nsb3dwYXRoKGdmcF90IGdmcF9tYXNrLCB1bnNpZ25lZCBpbnQgb3JkZXIsXFxuIFxcdFxcdFdBUk5fT05fT05DRShjdXJyZW50LVxcdTAwM2VmbGFncyBcXHUwMDI2IFBGX01FTUFMTE9DKTtcXG4gXFx0fVxcbiBcXG4rXFx0Y291bnRfdm1fZXZlbnQoUEdBTExPQ19TTE9XUEFUSF9PUkRFUl9GSVJTVCArIG9yZGVyKTtcXG4rXFxuIHJlc3RhcnQ6XFxuIFxcdGNvbXBhY3Rpb25fcmV0cmllcyA9IDA7XFxuIFxcdG5vX3Byb2dyZXNzX2xvb3BzID0gMDtcXG5AQCAtNTMyMyw2ICs1MzI3LDkgQEAgc3RydWN0IHBhZ2UgKl9fYWxsb2NfZnJvemVuX3BhZ2VzX25vcHJvZihnZnBfdCBnZnAsIHVuc2lnbmVkIGludCBvcmRlcixcXG4gXFx0XFx0cGFnZSA9IE5VTEw7XFxuIFxcdH1cXG4gXFxuK1xcdGlmICh1bmxpa2VseSghcGFnZSkpXFxuK1xcdFxcdGNvdW50X3ZtX2V2ZW50KFBHQUxMT0NfRkFJTF9PUkRFUl9GSVJTVCArIG9yZGVyKTtcXG4rXFxuIFxcdHRyYWNlX21tX3BhZ2VfYWxsb2MocGFnZSwgb3JkZXIsIGFsbG9jX2dmcCwgYWMubWlncmF0ZXR5cGUpO1xcbiBcXHRrbXNhbl9hbGxvY19wYWdlKHBhZ2UsIG9yZGVyLCBhbGxvY19nZnApO1xcbiBcXG5kaWZmIC0tZ2l0IGEvbW0vdm1zdGF0LmMgYi9tbS92bXN0YXQuY1xcbmluZGV4IGY1MzQ5NzJmNTE3ZGUuLjA4ZjBlYmM3ZmY0M2MgMTAwNjQ0XFxuLS0tIGEvbW0vdm1zdGF0LmNcXG4rKysgYi9tbS92bXN0YXQuY1xcbkBAIC0xMTg0LDYgKzExODQsOTQgQEAgaW50IGZyYWdtZW50YXRpb25faW5kZXgoc3RydWN0IHpvbmUgKnpvbmUsIHVuc2lnbmVkIGludCBvcmRlcilcXG4gXFx0W3h4IyNfTU9WQUJMRV0gPSB5eSBcXFwiX21vdmFibGVcXFwiLFxcdFxcdFxcXFxcXG4gXFx0VEVYVF9GT1JfREVWSUNFKHh4LCB5eSlcXG4gXFxuKyNpZiBNQVhfUEFHRV9PUkRFUiBcXHUwMDNlPSA0XFxuKyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfNCh4eCwgeXkpIFtJKCh4eCkgKyA0KV0gPSB5eSBcXFwiNFxcXCIsXFxuKyNlbHNlXFxuKyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfNCh4eCwgeXkpXFxuKyNlbmRpZlxcbitcXG4rI2lmIE1BWF9QQUdFX09SREVSIFxcdTAwM2U9IDVcXG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl81KHh4LCB5eSkgW0koKHh4KSArIDUpXSA9IHl5IFxcXCI1XFxcIixcXG4rI2Vsc2VcXG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl81KHh4LCB5eSlcXG4rI2VuZGlmXFxuK1xcbisjaWYgTUFYX1BBR0VfT1JERVIgXFx1MDAzZT0gNlxcbisjZGVmaW5lIFRFWFRfRk9SX09SREVSXzYoeHgsIHl5KSBbSSgoeHgpICsgNildID0geXkgXFxcIjZcXFwiLFxcbisjZWxzZVxcbisjZGVmaW5lIFRFWFRfRk9SX09SREVSXzYoeHgsIHl5KVxcbisjZW5kaWZcXG4rXFxuKyNpZiBNQVhfUEFHRV9PUkRFUiBcXHUwMDNlPSA3XFxuKyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfNyh4eCwgeXkpIFtJKCh4eCkgKyA3KV0gPSB5eSBcXFwiN1xcXCIsXFxuKyNlbHNlXFxuKyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfNyh4eCwgeXkpXFxuKyNlbmRpZlxcbitcXG4rI2lmIE1BWF9QQUdFX09SREVSIFxcdTAwM2U9IDhcXG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl84KHh4LCB5eSkgW0koKHh4KSArIDgpXSA9IHl5IFxcXCI4XFxcIixcXG4rI2Vsc2VcXG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl84KHh4LCB5eSlcXG4rI2VuZGlmXFxuK1xcbisjaWYgTUFYX1BBR0VfT1JERVIgXFx1MDAzZT0gOVxcbisjZGVmaW5lIFRFWFRfRk9SX09SREVSXzkoeHgsIHl5KSBbSSgoeHgpICsgOSldID0geXkgXFxcIjlcXFwiLFxcbisjZWxzZVxcbisjZGVmaW5lIFRFWFRfRk9SX09SREVSXzkoeHgsIHl5KVxcbisjZW5kaWZcXG4rXFxuKyNpZiBNQVhfUEFHRV9PUkRFUiBcXHUwMDNlPSAxMFxcbisjZGVmaW5lIFRFWFRfRk9SX09SREVSXzEwKHh4LCB5eSkgW0koKHh4KSArIDEwKV0gPSB5eSBcXFwiMTBcXFwiLFxcbisjZWxzZVxcbisjZGVmaW5lIFRFWFRfRk9SX09SREVSXzEwKHh4LCB5eSlcXG4rI2VuZGlmXFxuK1xcbisjaWYgTUFYX1BBR0VfT1JERVIgXFx1MDAzZT0gMTFcXG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl8xMSh4eCwgeXkpIFtJKCh4eCkgKyAxMSldID0geXkgXFxcIjExXFxcIixcXG4rI2Vsc2VcXG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl8xMSh4eCwgeXkpXFxuKyNlbmRpZlxcbitcXG4rI2lmIE1BWF9QQUdFX09SREVSIFxcdTAwM2U9IDEyXFxuKyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfMTIoeHgsIHl5KSBbSSgoeHgpICsgMTIpXSA9IHl5IFxcXCIxMlxcXCIsXFxuKyNlbHNlXFxuKyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfMTIoeHgsIHl5KVxcbisjZW5kaWZcXG4rXFxuKyNpZiBNQVhfUEFHRV9PUkRFUiBcXHUwMDNlPSAxM1xcbisjZGVmaW5lIFRFWFRfRk9SX09SREVSXzEzKHh4LCB5eSkgW0koKHh4KSArIDEzKV0gPSB5eSBcXFwiMTNcXFwiLFxcbisjZWxzZVxcbisjZGVmaW5lIFRFWFRfRk9SX09SREVSXzEzKHh4LCB5eSlcXG4rI2VuZGlmXFxuK1xcbitzdGF0aWNfYXNzZXJ0KE1BWF9QQUdFX09SREVSIFxcdTAwM2U9IDQgXFx1MDAyNlxcdTAwMjYgTUFYX1BBR0VfT1JERVIgXFx1MDAzYz0gMTMsXFxuK1xcdCAgICAgIFxcXCJ0aGUgcGVyLW9yZGVyIGNvdW50ZXIgbmFtZXMgbmVlZCB1cGRhdGluZyBmb3IgdGhpcyBNQVhfUEFHRV9PUkRFUlxcXCIpO1xcbitcXG4rLypcXG4rICogKHh4KSArIG4gbXVzdCByZXNvbHZlIHRvIHRoZSB2bV9ldmVudF9pdGVtIGZvciBvcmRlciBuLCBzbyByYW5nZXMgdGhhdFxcbisgKiBzdGFydCBhdCBvcmRlciAxIHBhc3MgdGhlaXIgKl9PUkRFUl9GSVJTVCBpdGVtIG1pbnVzIG9uZS4gT3JkZXJzIDEuLjNcXG4rICogYXJlIGdlbmVyYXRlZCB1bmNvbmRpdGlvbmFsbHksIDQuLjEzIGFyZSBNQVhfUEFHRV9PUkRFUiBkZXBlbmRlbnQgKGUuZy5cXG4rICogcHBjMzIgd2l0aCAyNTZrIHBhZ2VzIGZvcmNlcyA0IGJ5IGRlZmF1bHQpLlxcbisgKi9cXG4rI2RlZmluZSBURVhUU19GT1JfTk9OWkVST19PUkRFUlMoeHgsIHl5KVxcdFxcXFxcXG4rXFx0W0koKHh4KSArIDEpXSA9IHl5IFxcXCIxXFxcIixcXHRcXHRcXHRcXFxcXFxuK1xcdFtJKCh4eCkgKyAyKV0gPSB5eSBcXFwiMlxcXCIsXFx0XFx0XFx0XFxcXFxcbitcXHRbSSgoeHgpICsgMyldID0geXkgXFxcIjNcXFwiLFxcdFxcdFxcdFxcXFxcXG4rXFx0VEVYVF9GT1JfT1JERVJfNCh4eCwgeXkpXFx0XFx0XFxcXFxcbitcXHRURVhUX0ZPUl9PUkRFUl81KHh4LCB5eSlcXHRcXHRcXFxcXFxuK1xcdFRFWFRfRk9SX09SREVSXzYoeHgsIHl5KVxcdFxcdFxcXFxcXG4rXFx0VEVYVF9GT1JfT1JERVJfNyh4eCwgeXkpXFx0XFx0XFxcXFxcbitcXHRURVhUX0ZPUl9PUkRFUl84KHh4LCB5eSlcXHRcXHRcXFxcXFxuK1xcdFRFWFRfRk9SX09SREVSXzkoeHgsIHl5KVxcdFxcdFxcXFxcXG4rXFx0VEVYVF9GT1JfT1JERVJfMTAoeHgsIHl5KVxcdFxcdFxcXFxcXG4rXFx0VEVYVF9GT1JfT1JERVJfMTEoeHgsIHl5KVxcdFxcdFxcXFxcXG4rXFx0VEVYVF9GT1JfT1JERVJfMTIoeHgsIHl5KVxcdFxcdFxcXFxcXG4rXFx0VEVYVF9GT1JfT1JERVJfMTMoeHgsIHl5KVxcbitcXG4rI2RlZmluZSBURVhUU19GT1JfT1JERVJTKHh4LCB5eSlcXHRcXHRcXFxcXFxuK1xcdFtJKHh4KV0gPSB5eSBcXFwiMFxcXCIsXFx0XFx0XFx0XFxcXFxcbitcXHRURVhUU19GT1JfTk9OWkVST19PUkRFUlMoeHgsIHl5KVxcbitcXG4gY29uc3QgY2hhciAqIGNvbnN0IHZtc3RhdF90ZXh0W10gPSB7XFxuIFxcdC8qIGVudW0gem9uZV9zdGF0X2l0ZW0gY291bnRlcnMgKi9cXG4gI2RlZmluZSBJKHgpICh4KVxcbkBAIC0xNDg4LDYgKzE1NzYsMTQgQEAgY29uc3QgY2hhciAqIGNvbnN0IHZtc3RhdF90ZXh0W10gPSB7XFxuICNpZiBUSFJFQURfU0laRSBcXHUwMDNlIDY1NTM2XFxuIFxcdFtJKEtTVEFDS19SRVNUKV1cXHRcXHRcXHQ9IFxcXCJrc3RhY2tfcmVzdFxcXCIsXFxuICNlbmRpZlxcbisjZW5kaWZcXG4rXFx0VEVYVFNfRk9SX09SREVSUyhQR0FMTE9DX1NMT1dQQVRIX09SREVSX0ZJUlNULCBcXFwicGdhbGxvY19zbG93cGF0aF9vcmRlclxcXCIpXFxuK1xcdFRFWFRTX0ZPUl9PUkRFUlMoUEdBTExPQ19GQUlMX09SREVSX0ZJUlNULCBcXFwicGdhbGxvY19mYWlsX29yZGVyXFxcIilcXG4rI2lmZGVmIENPTkZJR19DT01QQUNUSU9OXFxuK1xcdFRFWFRTX0ZPUl9OT05aRVJPX09SREVSUyhDT01QQUNUU1RBTExfT1JERVJfRklSU1QgLSAxLFxcbitcXHRcXHRcXHRcXHQgXFxcImNvbXBhY3Rfc3RhbGxfb3JkZXJcXFwiKVxcbitcXHRURVhUU19GT1JfTk9OWkVST19PUkRFUlMoQ09NUEFDVFNVQ0NFU1NfT1JERVJfRklSU1QgLSAxLFxcbitcXHRcXHRcXHRcXHQgXFxcImNvbXBhY3Rfc3VjY2Vzc19vcmRlclxcXCIpXFxuICNlbmRpZlxcbiAjdW5kZWYgSVxcbiAjZW5kaWYgLyogQ09ORklHX1ZNX0VWRU5UX0NPVU5URVJTICovXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIxVDAxOjQ1OjI4Ljc5OTUwNjE5OVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjg5MzIxMTQ1NDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgYWRkcyBuZXcgdm1zdGF0IGNvdW50ZXJzIGZvciBwZXItb3JkZXIgcGFnZSBhbGxvY2F0aW9uIGFuZCBjb21wYWN0aW9uIHN0YXRpc3RpY3MuIEl0IGRvZXMgbm90IGFsdGVyIHRoZSBmdW5jdGlvbmFsIGV4ZWN1dGlvbiBmbG93IG9mIHRoZSBrZXJuZWwsIGFzIGl0IG9ubHkgaW5jcmVtZW50cyBjb3VudGVycyB2aWEgY291bnRfdm1fZXZlbnQoKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGRmZTk4YWU0Y2M4NzllMDQ3ZWJmNTRiMmM1NGJkYjY2MThlZDRhNGJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEF1ZyAyMSAwMTo0NToyNiAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvdm1fZXZlbnRfaXRlbS5oIGIvaW5jbHVkZS9saW51eC92bV9ldmVudF9pdGVtLmhcbmluZGV4IDAzZmU5NWY1YTAyMDEuLjcyNDU2MWI3ZTgwMGIgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL2xpbnV4L3ZtX2V2ZW50X2l0ZW0uaFxuKysrIGIvaW5jbHVkZS9saW51eC92bV9ldmVudF9pdGVtLmhcbkBAIC0xNzUsNiArMTc1LDI1IEBAIGVudW0gdm1fZXZlbnRfaXRlbSB7IFBHUEdJTiwgUEdQR09VVCwgUFNXUElOLCBQU1dQT1VULFxuIFx0XHRLU1RBQ0tfUkVTVCxcbiAjZW5kaWZcbiAjZW5kaWYgLyogQ09ORklHX0RFQlVHX1NUQUNLX1VTQUdFICovXG4rXHRcdC8qXG4rXHRcdCAqIFBlci1vcmRlciBhbGxvY2F0aW9uIHN0YXRpc3RpY3M6IGVhY2ggKl9GSVJTVC4uKl9MQVNUIHJhbmdlXG4rXHRcdCAqIGlzIGluZGV4ZWQgYnkgYWxsb2NhdGlvbiBvcmRlci5cbitcdFx0ICovXG4rXHRcdFBHQUxMT0NfU0xPV1BBVEhfT1JERVJfRklSU1QsXG4rXHRcdFBHQUxMT0NfU0xPV1BBVEhfT1JERVJfTEFTVCA9XG4rXHRcdFx0UEdBTExPQ19TTE9XUEFUSF9PUkRFUl9GSVJTVCArIE1BWF9QQUdFX09SREVSLFxuK1x0XHRQR0FMTE9DX0ZBSUxfT1JERVJfRklSU1QsXG4rXHRcdFBHQUxMT0NfRkFJTF9PUkRFUl9MQVNUID1cbitcdFx0XHRQR0FMTE9DX0ZBSUxfT1JERVJfRklSU1QgKyBNQVhfUEFHRV9PUkRFUixcbisjaWZkZWYgQ09ORklHX0NPTVBBQ1RJT05cbitcdFx0LyogRGlyZWN0IGNvbXBhY3Rpb24gaXMgbmV2ZXIgZW50ZXJlZCBmb3Igb3JkZXIgMCAqL1xuK1x0XHRDT01QQUNUU1RBTExfT1JERVJfRklSU1QsXG4rXHRcdENPTVBBQ1RTVEFMTF9PUkRFUl9MQVNUID1cbitcdFx0XHRDT01QQUNUU1RBTExfT1JERVJfRklSU1QgKyBNQVhfUEFHRV9PUkRFUiAtIDEsXG4rXHRcdENPTVBBQ1RTVUNDRVNTX09SREVSX0ZJUlNULFxuK1x0XHRDT01QQUNUU1VDQ0VTU19PUkRFUl9MQVNUID1cbitcdFx0XHRDT01QQUNUU1VDQ0VTU19PUkRFUl9GSVJTVCArIE1BWF9QQUdFX09SREVSIC0gMSxcbisjZW5kaWZcbiBcdFx0TlJfVk1fRVZFTlRfSVRFTVNcbiB9O1xuIFxuZGlmZiAtLWdpdCBhL21tL3BhZ2VfYWxsb2MuYyBiL21tL3BhZ2VfYWxsb2MuY1xuaW5kZXggZWU5MDJhNDY4YzJmNS4uMmEyYjE0ZjNiNTE2ZiAxMDA2NDRcbi0tLSBhL21tL3BhZ2VfYWxsb2MuY1xuKysrIGIvbW0vcGFnZV9hbGxvYy5jXG5AQCAtNDE2OSw2ICs0MTY5LDcgQEAgX19hbGxvY19wYWdlc19kaXJlY3RfY29tcGFjdChnZnBfdCBnZnBfbWFzaywgdW5zaWduZWQgaW50IG9yZGVyLFxuIFx0ICogY291bnQgYSBjb21wYWN0aW9uIHN0YWxsXG4gXHQgKi9cbiBcdGNvdW50X3ZtX2V2ZW50KENPTVBBQ1RTVEFMTCk7XG4rXHRjb3VudF92bV9ldmVudChDT01QQUNUU1RBTExfT1JERVJfRklSU1QgKyBvcmRlciAtIDEpO1xuIFxuIFx0LyogUHJlcCBhIGNhcHR1cmVkIHBhZ2UgaWYgYXZhaWxhYmxlICovXG4gXHRpZiAocGFnZSlcbkBAIC00MTg0LDYgKzQxODUsNyBAQCBfX2FsbG9jX3BhZ2VzX2RpcmVjdF9jb21wYWN0KGdmcF90IGdmcF9tYXNrLCB1bnNpZ25lZCBpbnQgb3JkZXIsXG4gXHRcdHpvbmUtXHUwMDNlY29tcGFjdF9ibG9ja3NraXBfZmx1c2ggPSBmYWxzZTtcbiBcdFx0Y29tcGFjdGlvbl9kZWZlcl9yZXNldCh6b25lLCBvcmRlciwgdHJ1ZSk7XG4gXHRcdGNvdW50X3ZtX2V2ZW50KENPTVBBQ1RTVUNDRVNTKTtcbitcdFx0Y291bnRfdm1fZXZlbnQoQ09NUEFDVFNVQ0NFU1NfT1JERVJfRklSU1QgKyBvcmRlciAtIDEpO1xuIFx0XHRyZXR1cm4gcGFnZTtcbiBcdH1cbiBcbkBAIC00NzU3LDYgKzQ3NTksOCBAQCBfX2FsbG9jX3BhZ2VzX3Nsb3dwYXRoKGdmcF90IGdmcF9tYXNrLCB1bnNpZ25lZCBpbnQgb3JkZXIsXG4gXHRcdFdBUk5fT05fT05DRShjdXJyZW50LVx1MDAzZWZsYWdzIFx1MDAyNiBQRl9NRU1BTExPQyk7XG4gXHR9XG4gXG4rXHRjb3VudF92bV9ldmVudChQR0FMTE9DX1NMT1dQQVRIX09SREVSX0ZJUlNUICsgb3JkZXIpO1xuK1xuIHJlc3RhcnQ6XG4gXHRjb21wYWN0aW9uX3JldHJpZXMgPSAwO1xuIFx0bm9fcHJvZ3Jlc3NfbG9vcHMgPSAwO1xuQEAgLTUzMjMsNiArNTMyNyw5IEBAIHN0cnVjdCBwYWdlICpfX2FsbG9jX2Zyb3plbl9wYWdlc19ub3Byb2YoZ2ZwX3QgZ2ZwLCB1bnNpZ25lZCBpbnQgb3JkZXIsXG4gXHRcdHBhZ2UgPSBOVUxMO1xuIFx0fVxuIFxuK1x0aWYgKHVubGlrZWx5KCFwYWdlKSlcbitcdFx0Y291bnRfdm1fZXZlbnQoUEdBTExPQ19GQUlMX09SREVSX0ZJUlNUICsgb3JkZXIpO1xuK1xuIFx0dHJhY2VfbW1fcGFnZV9hbGxvYyhwYWdlLCBvcmRlciwgYWxsb2NfZ2ZwLCBhYy5taWdyYXRldHlwZSk7XG4gXHRrbXNhbl9hbGxvY19wYWdlKHBhZ2UsIG9yZGVyLCBhbGxvY19nZnApO1xuIFxuZGlmZiAtLWdpdCBhL21tL3Ztc3RhdC5jIGIvbW0vdm1zdGF0LmNcbmluZGV4IGY1MzQ5NzJmNTE3ZGUuLjA4ZjBlYmM3ZmY0M2MgMTAwNjQ0XG4tLS0gYS9tbS92bXN0YXQuY1xuKysrIGIvbW0vdm1zdGF0LmNcbkBAIC0xMTg0LDYgKzExODQsOTQgQEAgaW50IGZyYWdtZW50YXRpb25faW5kZXgoc3RydWN0IHpvbmUgKnpvbmUsIHVuc2lnbmVkIGludCBvcmRlcilcbiBcdFt4eCMjX01PVkFCTEVdID0geXkgXCJfbW92YWJsZVwiLFx0XHRcXFxuIFx0VEVYVF9GT1JfREVWSUNFKHh4LCB5eSlcbiBcbisjaWYgTUFYX1BBR0VfT1JERVIgXHUwMDNlPSA0XG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl80KHh4LCB5eSkgW0koKHh4KSArIDQpXSA9IHl5IFwiNFwiLFxuKyNlbHNlXG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl80KHh4LCB5eSlcbisjZW5kaWZcbitcbisjaWYgTUFYX1BBR0VfT1JERVIgXHUwMDNlPSA1XG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl81KHh4LCB5eSkgW0koKHh4KSArIDUpXSA9IHl5IFwiNVwiLFxuKyNlbHNlXG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl81KHh4LCB5eSlcbisjZW5kaWZcbitcbisjaWYgTUFYX1BBR0VfT1JERVIgXHUwMDNlPSA2XG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl82KHh4LCB5eSkgW0koKHh4KSArIDYpXSA9IHl5IFwiNlwiLFxuKyNlbHNlXG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl82KHh4LCB5eSlcbisjZW5kaWZcbitcbisjaWYgTUFYX1BBR0VfT1JERVIgXHUwMDNlPSA3XG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl83KHh4LCB5eSkgW0koKHh4KSArIDcpXSA9IHl5IFwiN1wiLFxuKyNlbHNlXG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl83KHh4LCB5eSlcbisjZW5kaWZcbitcbisjaWYgTUFYX1BBR0VfT1JERVIgXHUwMDNlPSA4XG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl84KHh4LCB5eSkgW0koKHh4KSArIDgpXSA9IHl5IFwiOFwiLFxuKyNlbHNlXG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl84KHh4LCB5eSlcbisjZW5kaWZcbitcbisjaWYgTUFYX1BBR0VfT1JERVIgXHUwMDNlPSA5XG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl85KHh4LCB5eSkgW0koKHh4KSArIDkpXSA9IHl5IFwiOVwiLFxuKyNlbHNlXG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl85KHh4LCB5eSlcbisjZW5kaWZcbitcbisjaWYgTUFYX1BBR0VfT1JERVIgXHUwMDNlPSAxMFxuKyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfMTAoeHgsIHl5KSBbSSgoeHgpICsgMTApXSA9IHl5IFwiMTBcIixcbisjZWxzZVxuKyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfMTAoeHgsIHl5KVxuKyNlbmRpZlxuK1xuKyNpZiBNQVhfUEFHRV9PUkRFUiBcdTAwM2U9IDExXG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl8xMSh4eCwgeXkpIFtJKCh4eCkgKyAxMSldID0geXkgXCIxMVwiLFxuKyNlbHNlXG4rI2RlZmluZSBURVhUX0ZPUl9PUkRFUl8xMSh4eCwgeXkpXG4rI2VuZGlmXG4rXG4rI2lmIE1BWF9QQUdFX09SREVSIFx1MDAzZT0gMTJcbisjZGVmaW5lIFRFWFRfRk9SX09SREVSXzEyKHh4LCB5eSkgW0koKHh4KSArIDEyKV0gPSB5eSBcIjEyXCIsXG4rI2Vsc2VcbisjZGVmaW5lIFRFWFRfRk9SX09SREVSXzEyKHh4LCB5eSlcbisjZW5kaWZcbitcbisjaWYgTUFYX1BBR0VfT1JERVIgXHUwMDNlPSAxM1xuKyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfMTMoeHgsIHl5KSBbSSgoeHgpICsgMTMpXSA9IHl5IFwiMTNcIixcbisjZWxzZVxuKyNkZWZpbmUgVEVYVF9GT1JfT1JERVJfMTMoeHgsIHl5KVxuKyNlbmRpZlxuK1xuK3N0YXRpY19hc3NlcnQoTUFYX1BBR0VfT1JERVIgXHUwMDNlPSA0IFx1MDAyNlx1MDAyNiBNQVhfUEFHRV9PUkRFUiBcdTAwM2M9IDEzLFxuK1x0ICAgICAgXCJ0aGUgcGVyLW9yZGVyIGNvdW50ZXIgbmFtZXMgbmVlZCB1cGRhdGluZyBmb3IgdGhpcyBNQVhfUEFHRV9PUkRFUlwiKTtcbitcbisvKlxuKyAqICh4eCkgKyBuIG11c3QgcmVzb2x2ZSB0byB0aGUgdm1fZXZlbnRfaXRlbSBmb3Igb3JkZXIgbiwgc28gcmFuZ2VzIHRoYXRcbisgKiBzdGFydCBhdCBvcmRlciAxIHBhc3MgdGhlaXIgKl9PUkRFUl9GSVJTVCBpdGVtIG1pbnVzIG9uZS4gT3JkZXJzIDEuLjNcbisgKiBhcmUgZ2VuZXJhdGVkIHVuY29uZGl0aW9uYWxseSwgNC4uMTMgYXJlIE1BWF9QQUdFX09SREVSIGRlcGVuZGVudCAoZS5nLlxuKyAqIHBwYzMyIHdpdGggMjU2ayBwYWdlcyBmb3JjZXMgNCBieSBkZWZhdWx0KS5cbisgKi9cbisjZGVmaW5lIFRFWFRTX0ZPUl9OT05aRVJPX09SREVSUyh4eCwgeXkpXHRcXFxuK1x0W0koKHh4KSArIDEpXSA9IHl5IFwiMVwiLFx0XHRcdFxcXG4rXHRbSSgoeHgpICsgMildID0geXkgXCIyXCIsXHRcdFx0XFxcbitcdFtJKCh4eCkgKyAzKV0gPSB5eSBcIjNcIixcdFx0XHRcXFxuK1x0VEVYVF9GT1JfT1JERVJfNCh4eCwgeXkpXHRcdFxcXG4rXHRURVhUX0ZPUl9PUkRFUl81KHh4LCB5eSlcdFx0XFxcbitcdFRFWFRfRk9SX09SREVSXzYoeHgsIHl5KVx0XHRcXFxuK1x0VEVYVF9GT1JfT1JERVJfNyh4eCwgeXkpXHRcdFxcXG4rXHRURVhUX0ZPUl9PUkRFUl84KHh4LCB5eSlcdFx0XFxcbitcdFRFWFRfRk9SX09SREVSXzkoeHgsIHl5KVx0XHRcXFxuK1x0VEVYVF9GT1JfT1JERVJfMTAoeHgsIHl5KVx0XHRcXFxuK1x0VEVYVF9GT1JfT1JERVJfMTEoeHgsIHl5KVx0XHRcXFxuK1x0VEVYVF9GT1JfT1JERVJfMTIoeHgsIHl5KVx0XHRcXFxuK1x0VEVYVF9GT1JfT1JERVJfMTMoeHgsIHl5KVxuK1xuKyNkZWZpbmUgVEVYVFNfRk9SX09SREVSUyh4eCwgeXkpXHRcdFxcXG4rXHRbSSh4eCldID0geXkgXCIwXCIsXHRcdFx0XFxcbitcdFRFWFRTX0ZPUl9OT05aRVJPX09SREVSUyh4eCwgeXkpXG4rXG4gY29uc3QgY2hhciAqIGNvbnN0IHZtc3RhdF90ZXh0W10gPSB7XG4gXHQvKiBlbnVtIHpvbmVfc3RhdF9pdGVtIGNvdW50ZXJzICovXG4gI2RlZmluZSBJKHgpICh4KVxuQEAgLTE0ODgsNiArMTU3NiwxNCBAQCBjb25zdCBjaGFyICogY29uc3Qgdm1zdGF0X3RleHRbXSA9IHtcbiAjaWYgVEhSRUFEX1NJWkUgXHUwMDNlIDY1NTM2XG4gXHRbSShLU1RBQ0tfUkVTVCldXHRcdFx0PSBcImtzdGFja19yZXN0XCIsXG4gI2VuZGlmXG4rI2VuZGlmXG4rXHRURVhUU19GT1JfT1JERVJTKFBHQUxMT0NfU0xPV1BBVEhfT1JERVJfRklSU1QsIFwicGdhbGxvY19zbG93cGF0aF9vcmRlclwiKVxuK1x0VEVYVFNfRk9SX09SREVSUyhQR0FMTE9DX0ZBSUxfT1JERVJfRklSU1QsIFwicGdhbGxvY19mYWlsX29yZGVyXCIpXG4rI2lmZGVmIENPTkZJR19DT01QQUNUSU9OXG4rXHRURVhUU19GT1JfTk9OWkVST19PUkRFUlMoQ09NUEFDVFNUQUxMX09SREVSX0ZJUlNUIC0gMSxcbitcdFx0XHRcdCBcImNvbXBhY3Rfc3RhbGxfb3JkZXJcIilcbitcdFRFWFRTX0ZPUl9OT05aRVJPX09SREVSUyhDT01QQUNUU1VDQ0VTU19PUkRFUl9GSVJTVCAtIDEsXG4rXHRcdFx0XHQgXCJjb21wYWN0X3N1Y2Nlc3Nfb3JkZXJcIilcbiAjZW5kaWZcbiAjdW5kZWYgSVxuICNlbmRpZiAvKiBDT05GSUdfVk1fRVZFTlRfQ09VTlRFUlMgKi9cbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIxVDAxOjQ1OjI4Ljc5OTUwNzUzOVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg5MzIwOTE4NzYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBQYXRjaCBmb3IgUG90ZW50aWFsIEZ1enppbmcgSW1wYWN0KipcblxuT2theSwgc28gSSd2ZSBnb3QgdGhpcyBwYXRjaCBhZGRpbmcgc29tZSBuZXcgYHZtX2V2ZW50X2l0ZW1gIGNvdW50ZXJzLCBzcGVjaWZpY2FsbHkgdHJhY2tpbmcgcGVyLW9yZGVyIGFsbG9jYXRpb24gc3RhdHMgbGlrZSBgUEdBTExPQ19TTE9XUEFUSF9PUkRFUl9GSVJTVGAsIGBQR0FMTE9DX0ZBSUxfT1JERVJfRklSU1RgLCBgQ09NUEFDVFNUQUxMX09SREVSX0ZJUlNUYCwgYW5kIGBDT01QQUNUU1VDQ0VTU19PUkRFUl9GSVJTVGAuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcImFyZSB3ZSBpbnRyb2R1Y2luZyBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRoYXQgY291bGQgYmUgZnV6emVkP1wiIFRoYXQncyB0aGUga2V5IHF1ZXN0aW9uLlxuXG5UaGUgZGVzY3JpcHRpb24gc2F5cyB0aGVzZSBhcmUganVzdCBtZXRyaWNzLCBwdXJlbHkgc3RhdGlzdGljYWwsIGFuZCB0aGF0IGBjb3VudF92bV9ldmVudGAgaXMganVzdCBpbmNyZW1lbnRpbmcgYSBwZXItQ1BVIGNvdW50ZXIuIEFscmlnaHQsIGxldCdzIGRyaWxsIGRvd24gdG8gdmVyaWZ5LiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoaXMgaXNuJ3Qgc3VidGx5IGNoYW5naW5nIGFueSBiZWhhdmlvci5cblxuSSdtIGxvb2tpbmcgYXQgdGhlIGNvZGUgY2hhbmdlcyBpbiBgbW0vcGFnZV9hbGxvYy5jYC4gSSBzZWUgdGhlIGBjb3VudF92bV9ldmVudGAgY2FsbHMgYmVpbmcgYWRkZWQgd2l0aGluIGBfX2FsbG9jX3BhZ2VzX2RpcmVjdF9jb21wYWN0YCwgYF9fYWxsb2NfcGFnZXNfc2xvd3BhdGhgLCBhbmQgYF9fYWxsb2NfZnJvemVuX3BhZ2VzX25vcHJvZmAuIEZvciBpbnN0YW5jZSwgaW4gYF9fYWxsb2NfcGFnZXNfZGlyZWN0X2NvbXBhY3RgLCBJIHNlZSB0aGUgYWRkaXRpb25zIGFmdGVyIHRoZSBgQ09NUEFDVFNUQUxMYCBhbmQgYENPTVBBQ1RTVUNDRVNTYCBjYWxscywgYW5kIGZvciBgX19hbGxvY19wYWdlc19zbG93cGF0aGAgYW5kIGBfX2FsbG9jX2Zyb3plbl9wYWdlc19ub3Byb2ZgIHJlbGF0ZWQgY2FsbHMuXG5cbkl0IGxvb2tzIGxpa2UgdGhlIG5ldyBjb3VudGVycyBhcmUgYmVpbmcgaW5jcmVtZW50ZWQgYWxvbmdzaWRlIGV4aXN0aW5nIG9uZXMuIFRoZSBrZXkgcGFydCBpcyB0aGF0IHRoZSBwYXRjaCAqb25seSogaW50cm9kdWNlcyB0aGVzZSBgY291bnRfdm1fZXZlbnRgIGNhbGxzLiBUaGVyZSdzIG5vIGNvbmRpdGlvbmFsIGxvZ2ljIGJhc2VkIG9uIHRoZXNlIGNvdW50ZXIgaW5jcmVtZW50cywgbm8gbW9kaWZpY2F0aW9ucyB0byBwYWdlIGFsbG9jYXRpb24gYWxnb3JpdGhtcywgbm8gY2hhbmdlcyB0byBhbnkgZGF0YSBzdHJ1Y3R1cmVzIGV4Y2VwdCBhZGRpbmcgdGhlIGNvdW50ZXJzIGFuZCBsYWJlbHMuIEl0J3MganVzdCBpbnN0cnVtZW50YXRpb24sIG5vIGZ1bmN0aW9uYWwgYWx0ZXJhdGlvbnMuXG5cblRoZXJlZm9yZSwgYmVjYXVzZSB0aGlzIHBhdGNoICpvbmx5KiBhZGRzIGluc3RydW1lbnRhdGlvbiwgSSBjYW4gY29uZmlkZW50bHkgY29uY2x1ZGUgdGhhdCBgV29ydGhGdXp6aW5nYCBzaG91bGQgYmUgYGZhbHNlYC4gVGhpcyBkb2Vzbid0IGNoYW5nZSBrZXJuZWwgYmVoYXZpb3I7IGl0IGp1c3QgYWRkcyB2aXNpYmlsaXR5IGludG8gZXhpc3RpbmcgYmVoYXZpb3IuIFRoaXMgaXMgc2ltcGx5IHN0YXRpc3RpY3MgY29sbGVjdGlvbjsgaXQncyBub3QgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYW5kIHNvIHdvbid0IGFmZmVjdCBhbnkgZnV6emluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDIxOCwiT3V0cHV0VG9rZW5zIjo3MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjc1MiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIxVDAxOjQ1OjM3LjczMTYwMjIzNVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTcyMjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIG5ldyB2bXN0YXQgY291bnRlcnMgZm9yIHBlci1vcmRlciBwYWdlIGFsbG9jYXRpb24gYW5kIGNvbXBhY3Rpb24gc3RhdGlzdGljcy4gSXQgZG9lcyBub3QgYWx0ZXIgdGhlIGZ1bmN0aW9uYWwgZXhlY3V0aW9uIGZsb3cgb2YgdGhlIGtlcm5lbCwgYXMgaXQgb25seSBpbmNyZW1lbnRzIGNvdW50ZXJzIHZpYSBjb3VudF92bV9ldmVudCgpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIG5ldyB2bXN0YXQgY291bnRlcnMgZm9yIHBlci1vcmRlciBwYWdlIGFsbG9jYXRpb24gYW5kIGNvbXBhY3Rpb24gc3RhdGlzdGljcy4gSXQgZG9lcyBub3QgYWx0ZXIgdGhlIGZ1bmN0aW9uYWwgZXhlY3V0aW9uIGZsb3cgb2YgdGhlIGtlcm5lbCwgYXMgaXQgb25seSBpbmNyZW1lbnRzIGNvdW50ZXJzIHZpYSBjb3VudF92bV9ldmVudCgpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjFUMDE6NDU6MzcuNzMxNjIyNzg1WiIsIlNlcSI6NSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxNjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflow4hxkx[1] Phase: Running StartedAt: 2026-08-21 01:45:48 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4hxkx[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-21 01:45:48 +0000 UTC FinishedAt: 2026-08-21 01:45: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,}