Name: series-workflowgtf2v Phase: Failed StartedAt: 2026-06-29 07:33:23 +0000 UTC FinishedAt: 2026-06-29 07:47:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowgtf2v[0] Phase: Succeeded StartedAt: 2026-06-29 07:33:23 +0000 UTC FinishedAt: 2026-06-29 07:47:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowgtf2v[0].run-triage Phase: Succeeded StartedAt: 2026-06-29 07:33:23 +0000 UTC FinishedAt: 2026-06-29 07:47:27 +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+CgkJCTx0ZD4yMDI2LzA2LzI5IDA3OjQ3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgcmVwbGFjZXMgYHNlcV9idWZfcHV0c2Agd2l0aCBgc2VxX2J1Zl9wdXRjYCBmb3IgcHJpbnRpbmcgYSBzaW5nbGUgbmV3bGluZSBjaGFyYWN0ZXIgaW4gdmFyaW91cyBwYXJ0aXRpb24gcGFyc2Vycy4gVGhpcyBpcyBhIG1pbm9yIG9wdGltaXphdGlvbi9jbGVhbnVwIHRoYXQgZG9lcyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIHRoZSBleGVjdXRpb24gZmxvdyBvciBsb2dpYyBvZiB0aGUga2VybmVsLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwNzo0NzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGRkNmUyMjUyNzVmYzU2MWI1N2YzODliYmU3ZWVlNjBlMzhhYzVmNDhcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEp1biAyOSAwNzo0NzowNiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL2Fjb3JuLmMgYi9ibG9jay9wYXJ0aXRpb25zL2Fjb3JuLmNcbmluZGV4IDA2N2Q2YTI3YTNiZGYzLi5jNDgyNTA1MTc0NDgxOCAxMDA2NDRcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvYWNvcm4uY1xuJiM0MzsmIzQzOyYjNDM7IGIvYmxvY2svcGFydGl0aW9ucy9hY29ybi5jXG5AQCAtMjkwLDcgJiM0MzsyOTAsNyBAQCBpbnQgYWRmc3BhcnRfY2hlY2tfQURGUyhzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKVxuIFx0XHRcdGJyZWFrO1xuIFx0XHR9XG4gXHR9XG4tXHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcJiMzNDtcXG5cJiMzNDspO1xuJiM0MztcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICYjMzk7XFxuJiMzOTspO1xuIFx0cmV0dXJuIDE7XG4gfVxuICNlbmRpZlxuQEAgLTM5Nyw3ICYjNDM7Mzk3LDcgQEAgaW50IGFkZnNwYXJ0X2NoZWNrX0lDUyhzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKVxuIFx0fVxuIFxuIFx0cHV0X2Rldl9zZWN0b3Ioc2VjdCk7XG4tXHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcJiMzNDtcXG5cJiMzNDspO1xuJiM0MztcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICYjMzk7XFxuJiMzOTspO1xuIFx0cmV0dXJuIDE7XG4gfVxuICNlbmRpZlxuQEAgLTQ2OCw3ICYjNDM7NDY4LDcgQEAgaW50IGFkZnNwYXJ0X2NoZWNrX1BPV0VSVEVDKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpXG4gXHR9XG4gXG4gXHRwdXRfZGV2X3NlY3RvcihzZWN0KTtcbi1cdHNlcV9idWZfcHV0cyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsIFwmIzM0O1xcblwmIzM0Oyk7XG4mIzQzO1x0c2VxX2J1Zl9wdXRjKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgJiMzOTtcXG4mIzM5Oyk7XG4gXHRyZXR1cm4gMTtcbiB9XG4gI2VuZGlmXG5AQCAtNTM5LDcgJiM0Mzs1MzksNyBAQCBpbnQgYWRmc3BhcnRfY2hlY2tfRUVTT1goc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcbiBcbiBcdFx0c2l6ZSA9IGdldF9jYXBhY2l0eShzdGF0ZS1cdTAwM2VkaXNrKTtcbiBcdFx0cHV0X3BhcnRpdGlvbihzdGF0ZSwgc2xvdCYjNDM7JiM0MzssIHN0YXJ0LCBzaXplIC0gc3RhcnQpO1xuLVx0XHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcJiMzNDtcXG5cJiMzNDspO1xuJiM0MztcdFx0c2VxX2J1Zl9wdXRjKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgJiMzOTtcXG4mIzM5Oyk7XG4gXHR9XG4gXG4gXHRyZXR1cm4gaSA/IDEgOiAwO1xuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvYW1pZ2EuYyBiL2Jsb2NrL3BhcnRpdGlvbnMvYW1pZ2EuY1xuaW5kZXggODMyNTA0NmExNGViOTUuLmEyNzJmNjQ0NTBlY2M4IDEwMDY0NFxuLS0tIGEvYmxvY2svcGFydGl0aW9ucy9hbWlnYS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9ibG9jay9wYXJ0aXRpb25zL2FtaWdhLmNcbkBAIC0xOTQsNyAmIzQzOzE5NCw3IEBAIGludCBhbWlnYV9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcbiBcdFx0fVxuIFx0XHRyZXMgPSAxO1xuIFx0fVxuLVx0c2VxX2J1Zl9wdXRzKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgXCYjMzQ7XFxuXCYjMzQ7KTtcbiYjNDM7XHRzZXFfYnVmX3B1dGMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCAmIzM5O1xcbiYjMzk7KTtcbiBcbiByZGJfZG9uZTpcbiBcdHJldHVybiByZXM7XG5kaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy9hdGFyaS5jIGIvYmxvY2svcGFydGl0aW9ucy9hdGFyaS5jXG5pbmRleCAyNDM4ZDE0NDhmMzgyYy4uNTg4NjNjMWEyNzIzODUgMTAwNjQ0XG4tLS0gYS9ibG9jay9wYXJ0aXRpb25zL2F0YXJpLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2Jsb2NrL3BhcnRpdGlvbnMvYXRhcmkuY1xuQEAgLTE1MCw3ICYjNDM7MTUwLDcgQEAgaW50IGF0YXJpX3BhcnRpdGlvbihzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKVxuICNlbmRpZlxuIFx0cHV0X2Rldl9zZWN0b3Ioc2VjdCk7XG4gXG4tXHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcJiMzNDtcXG5cJiMzNDspO1xuJiM0MztcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICYjMzk7XFxuJiMzOTspO1xuIFxuIFx0cmV0dXJuIDE7XG4gfVxuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvY21kbGluZS5jIGIvYmxvY2svcGFydGl0aW9ucy9jbWRsaW5lLmNcbmluZGV4IDRmZDUyZWQxNTRiNGU4Li41MDA3NWVjY2FhZGU0NCAxMDA2NDRcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvY21kbGluZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9ibG9jay9wYXJ0aXRpb25zL2NtZGxpbmUuY1xuQEAgLTM3Nyw3ICYjNDM7Mzc3LDcgQEAgaW50IGNtZGxpbmVfcGFydGl0aW9uKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpXG4gXHRjbWRsaW5lX3BhcnRzX3NldChwYXJ0cywgZGlza19zaXplLCBzdGF0ZSk7XG4gXHRjbWRsaW5lX3BhcnRzX3ZlcmlmaWVyKDEsIHN0YXRlKTtcbiBcbi1cdHNlcV9idWZfcHV0cyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsIFwmIzM0O1xcblwmIzM0Oyk7XG4mIzQzO1x0c2VxX2J1Zl9wdXRjKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgJiMzOTtcXG4mIzM5Oyk7XG4gXG4gXHRyZXR1cm4gMTtcbiB9XG5kaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy9lZmkuYyBiL2Jsb2NrL3BhcnRpdGlvbnMvZWZpLmNcbmluZGV4IDk4NjVkNTkwOTNmYWMwLi42NTBiOTFlZmM4MzJhZiAxMDA2NDRcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvZWZpLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2Jsb2NrL3BhcnRpdGlvbnMvZWZpLmNcbkBAIC03NTEsNiAmIzQzOzc1MSw2IEBAIGludCBlZmlfcGFydGl0aW9uKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpXG4gXHR9XG4gXHRrZnJlZShwdGVzKTtcbiBcdGtmcmVlKGdwdCk7XG4tXHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcJiMzNDtcXG5cJiMzNDspO1xuJiM0MztcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICYjMzk7XFxuJiMzOTspO1xuIFx0cmV0dXJuIDE7XG4gfVxuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvaWJtLmMgYi9ibG9jay9wYXJ0aXRpb25zL2libS5jXG5pbmRleCA1NDA0N2U3MjJhOWQ5NC4uYTU3ZGUzYjE5MmZjMjEgMTAwNjQ0XG4tLS0gYS9ibG9jay9wYXJ0aXRpb25zL2libS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9ibG9jay9wYXJ0aXRpb25zL2libS5jXG5AQCAtMjE3LDcgJiM0MzsyMTcsNyBAQCBzdGF0aWMgaW50IGZpbmRfdm9sMV9wYXJ0aXRpb25zKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUsXG4gXHRcdGJsayYjNDM7JiM0Mzs7XG4gXHRcdGRhdGEgPSByZWFkX3BhcnRfc2VjdG9yKHN0YXRlLCBibGsgKiBzZWNwZXJibGssIFx1MDAyNnNlY3QpO1xuIFx0fVxuLVx0c2VxX2J1Zl9wdXRzKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgXCYjMzQ7XFxuXCYjMzQ7KTtcbiYjNDM7XHRzZXFfYnVmX3B1dGMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCAmIzM5O1xcbiYjMzk7KTtcbiBcbiBcdGlmICghZGF0YSlcbiBcdFx0cmV0dXJuIC0xO1xuQEAgLTI1NCw3ICYjNDM7MjU0LDcgQEAgc3RhdGljIGludCBmaW5kX2xueDFfcGFydGl0aW9ucyhzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlLFxuIFx0XHRzaXplID0gbnJfc2VjdG9ycztcbiBcdFx0aWYgKHNpemUgIT0gZ2VvX3NpemUpIHtcbiBcdFx0XHRpZiAoIWluZm8pIHtcbi1cdFx0XHRcdHNlcV9idWZfcHV0cyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsIFwmIzM0O1xcblwmIzM0Oyk7XG4mIzQzO1x0XHRcdFx0c2VxX2J1Zl9wdXRjKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgJiMzOTtcXG4mIzM5Oyk7XG4gXHRcdFx0XHRyZXR1cm4gMTtcbiBcdFx0XHR9XG4gXHRcdFx0aWYgKCFzdHJjbXAoaW5mby1cdTAwM2V0eXBlLCBcJiMzNDtFQ0tEXCYjMzQ7KSlcbkBAIC0yNjYsNyAmIzQzOzI2Niw3IEBAIHN0YXRpYyBpbnQgZmluZF9sbngxX3BhcnRpdGlvbnMoc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSxcbiBcdC8qIGZpcnN0IGFuZCBvbmx5IHBhcnRpdGlvbiBzdGFydHMgaW4gdGhlIGZpcnN0IGJsb2NrIGFmdGVyIHRoZSBsYWJlbCAqL1xuIFx0b2Zmc2V0ID0gbGFiZWxzZWN0ICYjNDM7IHNlY3BlcmJsaztcbiBcdHB1dF9wYXJ0aXRpb24oc3RhdGUsIDEsIG9mZnNldCwgc2l6ZSAtIG9mZnNldCk7XG4tXHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcJiMzNDtcXG5cJiMzNDspO1xuJiM0MztcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICYjMzk7XFxuJiMzOTspO1xuIFx0cmV0dXJuIDE7XG4gfVxuIFxuQEAgLTMwNyw3ICYjNDM7MzA3LDcgQEAgc3RhdGljIGludCBmaW5kX2NtczFfcGFydGl0aW9ucyhzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlLFxuIFx0fVxuIFxuIFx0cHV0X3BhcnRpdGlvbihzdGF0ZSwgMSwgb2Zmc2V0LCBzaXplLW9mZnNldCk7XG4tXHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcJiMzNDtcXG5cJiMzNDspO1xuJiM0MztcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICYjMzk7XFxuJiMzOTspO1xuIFx0cmV0dXJuIDE7XG4gfVxuIFxuQEAgLTM4OCw3ICYjNDM7Mzg4LDcgQEAgaW50IGlibV9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcbiBcdFx0XHRzaXplID0gbnJfc2VjdG9ycztcbiBcdFx0XHRvZmZzZXQgPSAoaW5mby1cdTAwM2VsYWJlbF9ibG9jayAmIzQzOyAxKSAqIChibG9ja3NpemUgXHUwMDNlXHUwMDNlIDkpO1xuIFx0XHRcdHB1dF9wYXJ0aXRpb24oc3RhdGUsIDEsIG9mZnNldCwgc2l6ZS1vZmZzZXQpO1xuLVx0XHRcdHNlcV9idWZfcHV0cyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsIFwmIzM0O1xcblwmIzM0Oyk7XG4mIzQzO1x0XHRcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICYjMzk7XFxuJiMzOTspO1xuIFx0XHR9XG4gXHR9IGVsc2VcbiBcdFx0cmVzID0gMDtcbmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL2thcm1hLmMgYi9ibG9jay9wYXJ0aXRpb25zL2thcm1hLmNcbmluZGV4IGE0ZTNjNTA1MDE3NzY3Li5iMGFiODQxNjk1MzhlOSAxMDA2NDRcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMva2FybWEuY1xuJiM0MzsmIzQzOyYjNDM7IGIvYmxvY2svcGFydGl0aW9ucy9rYXJtYS5jXG5AQCAtNTMsNyAmIzQzOzUzLDcgQEAgaW50IGthcm1hX3BhcnRpdGlvbihzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKVxuIFx0XHR9XG4gXHRcdHNsb3QmIzQzOyYjNDM7O1xuIFx0fVxuLVx0c2VxX2J1Zl9wdXRzKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgXCYjMzQ7XFxuXCYjMzQ7KTtcbiYjNDM7XHRzZXFfYnVmX3B1dGMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCAmIzM5O1xcbiYjMzk7KTtcbiBcdHB1dF9kZXZfc2VjdG9yKHNlY3QpO1xuIFx0cmV0dXJuIDE7XG4gfVxuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvbGRtLmMgYi9ibG9jay9wYXJ0aXRpb25zL2xkbS5jXG5pbmRleCBjMGJkY2FlNThhM2VlMC4uZDFiYmM5ZmIwOWY5MzkgMTAwNjQ0XG4tLS0gYS9ibG9jay9wYXJ0aXRpb25zL2xkbS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9ibG9jay9wYXJ0aXRpb25zL2xkbS5jXG5AQCAtNTk3LDcgJiM0Mzs1OTcsNyBAQCBzdGF0aWMgYm9vbCBsZG1fY3JlYXRlX2RhdGFfcGFydGl0aW9ucyAoc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpwcCxcbiBcdFx0cGFydF9udW0mIzQzOyYjNDM7O1xuIFx0fVxuIFxuLVx0c2VxX2J1Zl9wdXRzKFx1MDAyNnBwLVx1MDAzZXBwX2J1ZiwgXCYjMzQ7XFxuXCYjMzQ7KTtcbiYjNDM7XHRzZXFfYnVmX3B1dGMoXHUwMDI2cHAtXHUwMDNlcHBfYnVmLCAmIzM5O1xcbiYjMzk7KTtcbiBcdHJldHVybiB0cnVlO1xuIH1cbiBcbmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL21hYy5jIGIvYmxvY2svcGFydGl0aW9ucy9tYWMuY1xuaW5kZXggZGYwM2NhNDI4ZTE1NzQuLmJiNTcwYjVhNmVhYWIyIDEwMDY0NFxuLS0tIGEvYmxvY2svcGFydGl0aW9ucy9tYWMuY1xuJiM0MzsmIzQzOyYjNDM7IGIvYmxvY2svcGFydGl0aW9ucy9tYWMuY1xuQEAgLTE1Miw2ICYjNDM7MTUyLDYgQEAgaW50IG1hY19wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcbiAjZW5kaWZcbiBcbiBcdHB1dF9kZXZfc2VjdG9yKHNlY3QpO1xuLVx0c2VxX2J1Zl9wdXRzKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgXCYjMzQ7XFxuXCYjMzQ7KTtcbiYjNDM7XHRzZXFfYnVmX3B1dGMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCAmIzM5O1xcbiYjMzk7KTtcbiBcdHJldHVybiAxO1xuIH1cbmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL21zZG9zLmMgYi9ibG9jay9wYXJ0aXRpb25zL21zZG9zLmNcbmluZGV4IDIwMGVhNTNlYTZhMmM4Li40YTk2NTQxZjUzNTE1ZSAxMDA2NDRcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvbXNkb3MuY1xuJiM0MzsmIzQzOyYjNDM7IGIvYmxvY2svcGFydGl0aW9ucy9tc2Rvcy5jXG5AQCAtNjA4LDcgJiM0Mzs2MDgsNyBAQCBpbnQgbXNkb3NfcGFydGl0aW9uKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpXG4gXHRcdFx0ZmIgPSAoc3RydWN0IGZhdF9ib290X3NlY3RvciAqKSBkYXRhO1xuIFx0XHRcdGlmIChzbG90ID09IDEgXHUwMDI2XHUwMDI2IGZiLVx1MDAzZXJlc2VydmVkIFx1MDAyNlx1MDAyNiBmYi1cdTAwM2VmYXRzXG4gXHRcdFx0XHRcdTAwMjZcdTAwMjYgZmF0X3ZhbGlkX21lZGlhKGZiLVx1MDAzZW1lZGlhKSkge1xuLVx0XHRcdFx0c2VxX2J1Zl9wdXRzKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgXCYjMzQ7XFxuXCYjMzQ7KTtcbiYjNDM7XHRcdFx0XHRzZXFfYnVmX3B1dGMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCAmIzM5O1xcbiYjMzk7KTtcbiBcdFx0XHRcdHB1dF9kZXZfc2VjdG9yKHNlY3QpO1xuIFx0XHRcdFx0cmV0dXJuIDE7XG4gXHRcdFx0fSBlbHNlIHtcbkBAIC02NzIsNyAmIzQzOzY3Miw3IEBAIGludCBtc2Rvc19wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcbiBcdFx0XHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcJiMzNDtbRVpEXVwmIzM0Oyk7XG4gXHR9XG4gXG4tXHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcJiMzNDtcXG5cJiMzNDspO1xuJiM0MztcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICYjMzk7XFxuJiMzOTspO1xuIFxuIFx0Lyogc2Vjb25kIHBhc3MgLSBvdXRwdXQgZm9yIGVhY2ggb24gYSBzZXBhcmF0ZSBsaW5lICovXG4gXHRwID0gKHN0cnVjdCBtc2Rvc19wYXJ0aXRpb24gKikgKDB4MWJlICYjNDM7IGRhdGEpO1xuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvb2YuYyBiL2Jsb2NrL3BhcnRpdGlvbnMvb2YuY1xuaW5kZXggNTM2NjRlYTA2YjY1NDAuLjc4MDNlNmY0ZWNkZDk4IDEwMDY0NFxuLS0tIGEvYmxvY2svcGFydGl0aW9ucy9vZi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9ibG9jay9wYXJ0aXRpb25zL29mLmNcbkBAIC0xMDQsNyAmIzQzOzEwNCw3IEBAIGludCBvZl9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcbiBcdFx0c2xvdCYjNDM7JiM0Mzs7XG4gXHR9XG4gXG4tXHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcJiMzNDtcXG5cJiMzNDspO1xuJiM0MztcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICYjMzk7XFxuJiMzOTspO1xuIFxuIFx0b2Zfbm9kZV9wdXQocGFydGl0aW9uc19ucCk7XG4gXHRyZXR1cm4gMTtcbmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL29zZi5jIGIvYmxvY2svcGFydGl0aW9ucy9vc2YuY1xuaW5kZXggMmE2OTI1ODRkYmE5MWEuLjZmODNkNDc1OWE1ZDRiIDEwMDY0NFxuLS0tIGEvYmxvY2svcGFydGl0aW9ucy9vc2YuY1xuJiM0MzsmIzQzOyYjNDM7IGIvYmxvY2svcGFydGl0aW9ucy9vc2YuY1xuQEAgLTgxLDcgJiM0Mzs4MSw3IEBAIGludCBvc2ZfcGFydGl0aW9uKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpXG4gXHRcdFx0XHRsZTMyX3RvX2NwdShwYXJ0aXRpb24tXHUwMDNlcF9zaXplKSk7XG4gXHRcdHNsb3QmIzQzOyYjNDM7O1xuIFx0fVxuLVx0c2VxX2J1Zl9wdXRzKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgXCYjMzQ7XFxuXCYjMzQ7KTtcbiYjNDM7XHRzZXFfYnVmX3B1dGMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCAmIzM5O1xcbiYjMzk7KTtcbiBcdHB1dF9kZXZfc2VjdG9yKHNlY3QpO1xuIFx0cmV0dXJuIDE7XG4gfVxuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvc2dpLmMgYi9ibG9jay9wYXJ0aXRpb25zL3NnaS5jXG5pbmRleCAyMzgzY2E2M2NkNjY0NS4uZjc0M2UzNTgzNDE3NTggMTAwNjQ0XG4tLS0gYS9ibG9jay9wYXJ0aXRpb25zL3NnaS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9ibG9jay9wYXJ0aXRpb25zL3NnaS5jXG5AQCAtNzksNyAmIzQzOzc5LDcgQEAgaW50IHNnaV9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcbiBcdFx0fVxuIFx0XHRzbG90JiM0MzsmIzQzOztcbiBcdH1cbi1cdHNlcV9idWZfcHV0cyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsIFwmIzM0O1xcblwmIzM0Oyk7XG4mIzQzO1x0c2VxX2J1Zl9wdXRjKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgJiMzOTtcXG4mIzM5Oyk7XG4gXHRwdXRfZGV2X3NlY3RvcihzZWN0KTtcbiBcdHJldHVybiAxO1xuIH1cbmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL3N1bi5jIGIvYmxvY2svcGFydGl0aW9ucy9zdW4uY1xuaW5kZXggOTJjNjQ1ZmNkMmUwOWIuLmM3MWJhZDc4ZjM0YWYwIDEwMDY0NFxuLS0tIGEvYmxvY2svcGFydGl0aW9ucy9zdW4uY1xuJiM0MzsmIzQzOyYjNDM7IGIvYmxvY2svcGFydGl0aW9ucy9zdW4uY1xuQEAgLTEyMSw3ICYjNDM7MTIxLDcgQEAgaW50IHN1bl9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcbiBcdFx0fVxuIFx0XHRzbG90JiM0MzsmIzQzOztcbiBcdH1cbi1cdHNlcV9idWZfcHV0cyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsIFwmIzM0O1xcblwmIzM0Oyk7XG4mIzQzO1x0c2VxX2J1Zl9wdXRjKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgJiMzOTtcXG4mIzM5Oyk7XG4gXHRwdXRfZGV2X3NlY3RvcihzZWN0KTtcbiBcdHJldHVybiAxO1xuIH1cbmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL3N5c3Y2OC5jIGIvYmxvY2svcGFydGl0aW9ucy9zeXN2NjguY1xuaW5kZXggNDcwZTBmOWRlN2JlMzguLjMxZDM0OGFjMmRmYjNlIDEwMDY0NFxuLS0tIGEvYmxvY2svcGFydGl0aW9ucy9zeXN2NjguY1xuJiM0MzsmIzQzOyYjNDM7IGIvYmxvY2svcGFydGl0aW9ucy9zeXN2NjguY1xuQEAgLTg2LDcgJiM0Mzs4Niw3IEBAIGludCBzeXN2NjhfcGFydGl0aW9uKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpXG4gXHRcdH1cbiBcdFx0c2xvdCYjNDM7JiM0Mzs7XG4gXHR9XG4tXHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcJiMzNDtcXG5cJiMzNDspO1xuJiM0MztcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICYjMzk7XFxuJiMzOTspO1xuIFx0cHV0X2Rldl9zZWN0b3Ioc2VjdCk7XG4gXHRyZXR1cm4gMTtcbiB9XG5kaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy91bHRyaXguYyBiL2Jsb2NrL3BhcnRpdGlvbnMvdWx0cml4LmNcbmluZGV4IGI0YjlkZGM1N2E1ZDZmLi44YWM0MmZkYTI1ZDE2MSAxMDA2NDRcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvdWx0cml4LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2Jsb2NrL3BhcnRpdGlvbnMvdWx0cml4LmNcbkBAIC0zOSw3ICYjNDM7MzksNyBAQCBpbnQgdWx0cml4X3BhcnRpdGlvbihzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKVxuIFx0XHRcdFx0XHQgICAgICBsYWJlbC1cdTAwM2VwdF9wYXJ0W2ldLnBpX2Jsa29mZixcbiBcdFx0XHRcdFx0ICAgICAgbGFiZWwtXHUwMDNlcHRfcGFydFtpXS5waV9uYmxvY2tzKTtcbiBcdFx0cHV0X2Rldl9zZWN0b3Ioc2VjdCk7XG4tXHRcdHNlcV9idWZfcHV0cyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsIFwmIzM0O1xcblwmIzM0Oyk7XG4mIzQzO1x0XHRzZXFfYnVmX3B1dGMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCAmIzM5O1xcbiYjMzk7KTtcbiBcdFx0cmV0dXJuIDE7XG4gXHR9IGVsc2Uge1xuIFx0XHRwdXRfZGV2X3NlY3RvcihzZWN0KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwNzo0NzwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IHJlcGxhY2VzIGBzZXFfYnVmX3B1dHNgIHdpdGggYHNlcV9idWZfcHV0Y2AgZm9yIHByaW50aW5nIGEgc2luZ2xlIG5ld2xpbmUgY2hhcmFjdGVyIGluIHZhcmlvdXMgcGFydGl0aW9uIHBhcnNlcnMuIFRoaXMgaXMgYSBtaW5vciBvcHRpbWl6YXRpb24vY2xlYW51cCB0aGF0IGRvZXMgbm90IGZ1bmN0aW9uYWxseSBhbHRlciB0aGUgZXhlY3V0aW9uIGZsb3cgb3IgbG9naWMgb2YgdGhlIGtlcm5lbC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGRkNmUyMjUyNzVmYzU2MWI1N2YzODliYmU3ZWVlNjBlMzhhYzVmNDgKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEp1biAyOSAwNzo0NzowNiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvYWNvcm4uYyBiL2Jsb2NrL3BhcnRpdGlvbnMvYWNvcm4uYwppbmRleCAwNjdkNmEyN2EzYmRmMy4uYzQ4MjUwNTE3NDQ4MTggMTAwNjQ0Ci0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvYWNvcm4uYwomIzQzOyYjNDM7JiM0MzsgYi9ibG9jay9wYXJ0aXRpb25zL2Fjb3JuLmMKQEAgLTI5MCw3ICYjNDM7MjkwLDcgQEAgaW50IGFkZnNwYXJ0X2NoZWNrX0FERlMoc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSkKIAkJCWJyZWFrOwogCQl9CiAJfQotCXNlcV9idWZfcHV0cygmYW1wO3N0YXRlLSZndDtwcF9idWYsICYjMzQ7XG4mIzM0Oyk7CiYjNDM7CXNlcV9idWZfcHV0YygmYW1wO3N0YXRlLSZndDtwcF9idWYsICYjMzk7XG4mIzM5Oyk7CiAJcmV0dXJuIDE7CiB9CiAjZW5kaWYKQEAgLTM5Nyw3ICYjNDM7Mzk3LDcgQEAgaW50IGFkZnNwYXJ0X2NoZWNrX0lDUyhzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKQogCX0KIAogCXB1dF9kZXZfc2VjdG9yKHNlY3QpOwotCXNlcV9idWZfcHV0cygmYW1wO3N0YXRlLSZndDtwcF9idWYsICYjMzQ7XG4mIzM0Oyk7CiYjNDM7CXNlcV9idWZfcHV0YygmYW1wO3N0YXRlLSZndDtwcF9idWYsICYjMzk7XG4mIzM5Oyk7CiAJcmV0dXJuIDE7CiB9CiAjZW5kaWYKQEAgLTQ2OCw3ICYjNDM7NDY4LDcgQEAgaW50IGFkZnNwYXJ0X2NoZWNrX1BPV0VSVEVDKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpCiAJfQogCiAJcHV0X2Rldl9zZWN0b3Ioc2VjdCk7Ci0Jc2VxX2J1Zl9wdXRzKCZhbXA7c3RhdGUtJmd0O3BwX2J1ZiwgJiMzNDtcbiYjMzQ7KTsKJiM0MzsJc2VxX2J1Zl9wdXRjKCZhbXA7c3RhdGUtJmd0O3BwX2J1ZiwgJiMzOTtcbiYjMzk7KTsKIAlyZXR1cm4gMTsKIH0KICNlbmRpZgpAQCAtNTM5LDcgJiM0Mzs1MzksNyBAQCBpbnQgYWRmc3BhcnRfY2hlY2tfRUVTT1goc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSkKIAogCQlzaXplID0gZ2V0X2NhcGFjaXR5KHN0YXRlLSZndDtkaXNrKTsKIAkJcHV0X3BhcnRpdGlvbihzdGF0ZSwgc2xvdCYjNDM7JiM0MzssIHN0YXJ0LCBzaXplIC0gc3RhcnQpOwotCQlzZXFfYnVmX3B1dHMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM0O1xuJiMzNDspOwomIzQzOwkJc2VxX2J1Zl9wdXRjKCZhbXA7c3RhdGUtJmd0O3BwX2J1ZiwgJiMzOTtcbiYjMzk7KTsKIAl9CiAKIAlyZXR1cm4gaSA/IDEgOiAwOwpkaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy9hbWlnYS5jIGIvYmxvY2svcGFydGl0aW9ucy9hbWlnYS5jCmluZGV4IDgzMjUwNDZhMTRlYjk1Li5hMjcyZjY0NDUwZWNjOCAxMDA2NDQKLS0tIGEvYmxvY2svcGFydGl0aW9ucy9hbWlnYS5jCiYjNDM7JiM0MzsmIzQzOyBiL2Jsb2NrL3BhcnRpdGlvbnMvYW1pZ2EuYwpAQCAtMTk0LDcgJiM0MzsxOTQsNyBAQCBpbnQgYW1pZ2FfcGFydGl0aW9uKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpCiAJCX0KIAkJcmVzID0gMTsKIAl9Ci0Jc2VxX2J1Zl9wdXRzKCZhbXA7c3RhdGUtJmd0O3BwX2J1ZiwgJiMzNDtcbiYjMzQ7KTsKJiM0MzsJc2VxX2J1Zl9wdXRjKCZhbXA7c3RhdGUtJmd0O3BwX2J1ZiwgJiMzOTtcbiYjMzk7KTsKIAogcmRiX2RvbmU6CiAJcmV0dXJuIHJlczsKZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvYXRhcmkuYyBiL2Jsb2NrL3BhcnRpdGlvbnMvYXRhcmkuYwppbmRleCAyNDM4ZDE0NDhmMzgyYy4uNTg4NjNjMWEyNzIzODUgMTAwNjQ0Ci0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvYXRhcmkuYwomIzQzOyYjNDM7JiM0MzsgYi9ibG9jay9wYXJ0aXRpb25zL2F0YXJpLmMKQEAgLTE1MCw3ICYjNDM7MTUwLDcgQEAgaW50IGF0YXJpX3BhcnRpdGlvbihzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKQogI2VuZGlmCiAJcHV0X2Rldl9zZWN0b3Ioc2VjdCk7CiAKLQlzZXFfYnVmX3B1dHMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM0O1xuJiMzNDspOwomIzQzOwlzZXFfYnVmX3B1dGMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM5O1xuJiMzOTspOwogCiAJcmV0dXJuIDE7CiB9CmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL2NtZGxpbmUuYyBiL2Jsb2NrL3BhcnRpdGlvbnMvY21kbGluZS5jCmluZGV4IDRmZDUyZWQxNTRiNGU4Li41MDA3NWVjY2FhZGU0NCAxMDA2NDQKLS0tIGEvYmxvY2svcGFydGl0aW9ucy9jbWRsaW5lLmMKJiM0MzsmIzQzOyYjNDM7IGIvYmxvY2svcGFydGl0aW9ucy9jbWRsaW5lLmMKQEAgLTM3Nyw3ICYjNDM7Mzc3LDcgQEAgaW50IGNtZGxpbmVfcGFydGl0aW9uKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpCiAJY21kbGluZV9wYXJ0c19zZXQocGFydHMsIGRpc2tfc2l6ZSwgc3RhdGUpOwogCWNtZGxpbmVfcGFydHNfdmVyaWZpZXIoMSwgc3RhdGUpOwogCi0Jc2VxX2J1Zl9wdXRzKCZhbXA7c3RhdGUtJmd0O3BwX2J1ZiwgJiMzNDtcbiYjMzQ7KTsKJiM0MzsJc2VxX2J1Zl9wdXRjKCZhbXA7c3RhdGUtJmd0O3BwX2J1ZiwgJiMzOTtcbiYjMzk7KTsKIAogCXJldHVybiAxOwogfQpkaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy9lZmkuYyBiL2Jsb2NrL3BhcnRpdGlvbnMvZWZpLmMKaW5kZXggOTg2NWQ1OTA5M2ZhYzAuLjY1MGI5MWVmYzgzMmFmIDEwMDY0NAotLS0gYS9ibG9jay9wYXJ0aXRpb25zL2VmaS5jCiYjNDM7JiM0MzsmIzQzOyBiL2Jsb2NrL3BhcnRpdGlvbnMvZWZpLmMKQEAgLTc1MSw2ICYjNDM7NzUxLDYgQEAgaW50IGVmaV9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSkKIAl9CiAJa2ZyZWUocHRlcyk7CiAJa2ZyZWUoZ3B0KTsKLQlzZXFfYnVmX3B1dHMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM0O1xuJiMzNDspOwomIzQzOwlzZXFfYnVmX3B1dGMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM5O1xuJiMzOTspOwogCXJldHVybiAxOwogfQpkaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy9pYm0uYyBiL2Jsb2NrL3BhcnRpdGlvbnMvaWJtLmMKaW5kZXggNTQwNDdlNzIyYTlkOTQuLmE1N2RlM2IxOTJmYzIxIDEwMDY0NAotLS0gYS9ibG9jay9wYXJ0aXRpb25zL2libS5jCiYjNDM7JiM0MzsmIzQzOyBiL2Jsb2NrL3BhcnRpdGlvbnMvaWJtLmMKQEAgLTIxNyw3ICYjNDM7MjE3LDcgQEAgc3RhdGljIGludCBmaW5kX3ZvbDFfcGFydGl0aW9ucyhzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlLAogCQlibGsmIzQzOyYjNDM7OwogCQlkYXRhID0gcmVhZF9wYXJ0X3NlY3RvcihzdGF0ZSwgYmxrICogc2VjcGVyYmxrLCAmYW1wO3NlY3QpOwogCX0KLQlzZXFfYnVmX3B1dHMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM0O1xuJiMzNDspOwomIzQzOwlzZXFfYnVmX3B1dGMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM5O1xuJiMzOTspOwogCiAJaWYgKCFkYXRhKQogCQlyZXR1cm4gLTE7CkBAIC0yNTQsNyAmIzQzOzI1NCw3IEBAIHN0YXRpYyBpbnQgZmluZF9sbngxX3BhcnRpdGlvbnMoc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSwKIAkJc2l6ZSA9IG5yX3NlY3RvcnM7CiAJCWlmIChzaXplICE9IGdlb19zaXplKSB7CiAJCQlpZiAoIWluZm8pIHsKLQkJCQlzZXFfYnVmX3B1dHMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM0O1xuJiMzNDspOwomIzQzOwkJCQlzZXFfYnVmX3B1dGMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM5O1xuJiMzOTspOwogCQkJCXJldHVybiAxOwogCQkJfQogCQkJaWYgKCFzdHJjbXAoaW5mby0mZ3Q7dHlwZSwgJiMzNDtFQ0tEJiMzNDspKQpAQCAtMjY2LDcgJiM0MzsyNjYsNyBAQCBzdGF0aWMgaW50IGZpbmRfbG54MV9wYXJ0aXRpb25zKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUsCiAJLyogZmlyc3QgYW5kIG9ubHkgcGFydGl0aW9uIHN0YXJ0cyBpbiB0aGUgZmlyc3QgYmxvY2sgYWZ0ZXIgdGhlIGxhYmVsICovCiAJb2Zmc2V0ID0gbGFiZWxzZWN0ICYjNDM7IHNlY3BlcmJsazsKIAlwdXRfcGFydGl0aW9uKHN0YXRlLCAxLCBvZmZzZXQsIHNpemUgLSBvZmZzZXQpOwotCXNlcV9idWZfcHV0cygmYW1wO3N0YXRlLSZndDtwcF9idWYsICYjMzQ7XG4mIzM0Oyk7CiYjNDM7CXNlcV9idWZfcHV0YygmYW1wO3N0YXRlLSZndDtwcF9idWYsICYjMzk7XG4mIzM5Oyk7CiAJcmV0dXJuIDE7CiB9CiAKQEAgLTMwNyw3ICYjNDM7MzA3LDcgQEAgc3RhdGljIGludCBmaW5kX2NtczFfcGFydGl0aW9ucyhzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlLAogCX0KIAogCXB1dF9wYXJ0aXRpb24oc3RhdGUsIDEsIG9mZnNldCwgc2l6ZS1vZmZzZXQpOwotCXNlcV9idWZfcHV0cygmYW1wO3N0YXRlLSZndDtwcF9idWYsICYjMzQ7XG4mIzM0Oyk7CiYjNDM7CXNlcV9idWZfcHV0YygmYW1wO3N0YXRlLSZndDtwcF9idWYsICYjMzk7XG4mIzM5Oyk7CiAJcmV0dXJuIDE7CiB9CiAKQEAgLTM4OCw3ICYjNDM7Mzg4LDcgQEAgaW50IGlibV9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSkKIAkJCXNpemUgPSBucl9zZWN0b3JzOwogCQkJb2Zmc2V0ID0gKGluZm8tJmd0O2xhYmVsX2Jsb2NrICYjNDM7IDEpICogKGJsb2Nrc2l6ZSAmZ3Q7Jmd0OyA5KTsKIAkJCXB1dF9wYXJ0aXRpb24oc3RhdGUsIDEsIG9mZnNldCwgc2l6ZS1vZmZzZXQpOwotCQkJc2VxX2J1Zl9wdXRzKCZhbXA7c3RhdGUtJmd0O3BwX2J1ZiwgJiMzNDtcbiYjMzQ7KTsKJiM0MzsJCQlzZXFfYnVmX3B1dGMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM5O1xuJiMzOTspOwogCQl9CiAJfSBlbHNlCiAJCXJlcyA9IDA7CmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL2thcm1hLmMgYi9ibG9jay9wYXJ0aXRpb25zL2thcm1hLmMKaW5kZXggYTRlM2M1MDUwMTc3NjcuLmIwYWI4NDE2OTUzOGU5IDEwMDY0NAotLS0gYS9ibG9jay9wYXJ0aXRpb25zL2thcm1hLmMKJiM0MzsmIzQzOyYjNDM7IGIvYmxvY2svcGFydGl0aW9ucy9rYXJtYS5jCkBAIC01Myw3ICYjNDM7NTMsNyBAQCBpbnQga2FybWFfcGFydGl0aW9uKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpCiAJCX0KIAkJc2xvdCYjNDM7JiM0Mzs7CiAJfQotCXNlcV9idWZfcHV0cygmYW1wO3N0YXRlLSZndDtwcF9idWYsICYjMzQ7XG4mIzM0Oyk7CiYjNDM7CXNlcV9idWZfcHV0YygmYW1wO3N0YXRlLSZndDtwcF9idWYsICYjMzk7XG4mIzM5Oyk7CiAJcHV0X2Rldl9zZWN0b3Ioc2VjdCk7CiAJcmV0dXJuIDE7CiB9CmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL2xkbS5jIGIvYmxvY2svcGFydGl0aW9ucy9sZG0uYwppbmRleCBjMGJkY2FlNThhM2VlMC4uZDFiYmM5ZmIwOWY5MzkgMTAwNjQ0Ci0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvbGRtLmMKJiM0MzsmIzQzOyYjNDM7IGIvYmxvY2svcGFydGl0aW9ucy9sZG0uYwpAQCAtNTk3LDcgJiM0Mzs1OTcsNyBAQCBzdGF0aWMgYm9vbCBsZG1fY3JlYXRlX2RhdGFfcGFydGl0aW9ucyAoc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpwcCwKIAkJcGFydF9udW0mIzQzOyYjNDM7OwogCX0KIAotCXNlcV9idWZfcHV0cygmYW1wO3BwLSZndDtwcF9idWYsICYjMzQ7XG4mIzM0Oyk7CiYjNDM7CXNlcV9idWZfcHV0YygmYW1wO3BwLSZndDtwcF9idWYsICYjMzk7XG4mIzM5Oyk7CiAJcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvbWFjLmMgYi9ibG9jay9wYXJ0aXRpb25zL21hYy5jCmluZGV4IGRmMDNjYTQyOGUxNTc0Li5iYjU3MGI1YTZlYWFiMiAxMDA2NDQKLS0tIGEvYmxvY2svcGFydGl0aW9ucy9tYWMuYwomIzQzOyYjNDM7JiM0MzsgYi9ibG9jay9wYXJ0aXRpb25zL21hYy5jCkBAIC0xNTIsNiAmIzQzOzE1Miw2IEBAIGludCBtYWNfcGFydGl0aW9uKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpCiAjZW5kaWYKIAogCXB1dF9kZXZfc2VjdG9yKHNlY3QpOwotCXNlcV9idWZfcHV0cygmYW1wO3N0YXRlLSZndDtwcF9idWYsICYjMzQ7XG4mIzM0Oyk7CiYjNDM7CXNlcV9idWZfcHV0YygmYW1wO3N0YXRlLSZndDtwcF9idWYsICYjMzk7XG4mIzM5Oyk7CiAJcmV0dXJuIDE7CiB9CmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL21zZG9zLmMgYi9ibG9jay9wYXJ0aXRpb25zL21zZG9zLmMKaW5kZXggMjAwZWE1M2VhNmEyYzguLjRhOTY1NDFmNTM1MTVlIDEwMDY0NAotLS0gYS9ibG9jay9wYXJ0aXRpb25zL21zZG9zLmMKJiM0MzsmIzQzOyYjNDM7IGIvYmxvY2svcGFydGl0aW9ucy9tc2Rvcy5jCkBAIC02MDgsNyAmIzQzOzYwOCw3IEBAIGludCBtc2Rvc19wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSkKIAkJCWZiID0gKHN0cnVjdCBmYXRfYm9vdF9zZWN0b3IgKikgZGF0YTsKIAkJCWlmIChzbG90ID09IDEgJmFtcDsmYW1wOyBmYi0mZ3Q7cmVzZXJ2ZWQgJmFtcDsmYW1wOyBmYi0mZ3Q7ZmF0cwogCQkJCSZhbXA7JmFtcDsgZmF0X3ZhbGlkX21lZGlhKGZiLSZndDttZWRpYSkpIHsKLQkJCQlzZXFfYnVmX3B1dHMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM0O1xuJiMzNDspOwomIzQzOwkJCQlzZXFfYnVmX3B1dGMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM5O1xuJiMzOTspOwogCQkJCXB1dF9kZXZfc2VjdG9yKHNlY3QpOwogCQkJCXJldHVybiAxOwogCQkJfSBlbHNlIHsKQEAgLTY3Miw3ICYjNDM7NjcyLDcgQEAgaW50IG1zZG9zX3BhcnRpdGlvbihzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKQogCQkJc2VxX2J1Zl9wdXRzKCZhbXA7c3RhdGUtJmd0O3BwX2J1ZiwgJiMzNDtbRVpEXSYjMzQ7KTsKIAl9CiAKLQlzZXFfYnVmX3B1dHMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM0O1xuJiMzNDspOwomIzQzOwlzZXFfYnVmX3B1dGMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM5O1xuJiMzOTspOwogCiAJLyogc2Vjb25kIHBhc3MgLSBvdXRwdXQgZm9yIGVhY2ggb24gYSBzZXBhcmF0ZSBsaW5lICovCiAJcCA9IChzdHJ1Y3QgbXNkb3NfcGFydGl0aW9uICopICgweDFiZSAmIzQzOyBkYXRhKTsKZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvb2YuYyBiL2Jsb2NrL3BhcnRpdGlvbnMvb2YuYwppbmRleCA1MzY2NGVhMDZiNjU0MC4uNzgwM2U2ZjRlY2RkOTggMTAwNjQ0Ci0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvb2YuYwomIzQzOyYjNDM7JiM0MzsgYi9ibG9jay9wYXJ0aXRpb25zL29mLmMKQEAgLTEwNCw3ICYjNDM7MTA0LDcgQEAgaW50IG9mX3BhcnRpdGlvbihzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKQogCQlzbG90JiM0MzsmIzQzOzsKIAl9CiAKLQlzZXFfYnVmX3B1dHMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM0O1xuJiMzNDspOwomIzQzOwlzZXFfYnVmX3B1dGMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM5O1xuJiMzOTspOwogCiAJb2Zfbm9kZV9wdXQocGFydGl0aW9uc19ucCk7CiAJcmV0dXJuIDE7CmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL29zZi5jIGIvYmxvY2svcGFydGl0aW9ucy9vc2YuYwppbmRleCAyYTY5MjU4NGRiYTkxYS4uNmY4M2Q0NzU5YTVkNGIgMTAwNjQ0Ci0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvb3NmLmMKJiM0MzsmIzQzOyYjNDM7IGIvYmxvY2svcGFydGl0aW9ucy9vc2YuYwpAQCAtODEsNyAmIzQzOzgxLDcgQEAgaW50IG9zZl9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSkKIAkJCQlsZTMyX3RvX2NwdShwYXJ0aXRpb24tJmd0O3Bfc2l6ZSkpOwogCQlzbG90JiM0MzsmIzQzOzsKIAl9Ci0Jc2VxX2J1Zl9wdXRzKCZhbXA7c3RhdGUtJmd0O3BwX2J1ZiwgJiMzNDtcbiYjMzQ7KTsKJiM0MzsJc2VxX2J1Zl9wdXRjKCZhbXA7c3RhdGUtJmd0O3BwX2J1ZiwgJiMzOTtcbiYjMzk7KTsKIAlwdXRfZGV2X3NlY3RvcihzZWN0KTsKIAlyZXR1cm4gMTsKIH0KZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvc2dpLmMgYi9ibG9jay9wYXJ0aXRpb25zL3NnaS5jCmluZGV4IDIzODNjYTYzY2Q2NjQ1Li5mNzQzZTM1ODM0MTc1OCAxMDA2NDQKLS0tIGEvYmxvY2svcGFydGl0aW9ucy9zZ2kuYwomIzQzOyYjNDM7JiM0MzsgYi9ibG9jay9wYXJ0aXRpb25zL3NnaS5jCkBAIC03OSw3ICYjNDM7NzksNyBAQCBpbnQgc2dpX3BhcnRpdGlvbihzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKQogCQl9CiAJCXNsb3QmIzQzOyYjNDM7OwogCX0KLQlzZXFfYnVmX3B1dHMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM0O1xuJiMzNDspOwomIzQzOwlzZXFfYnVmX3B1dGMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM5O1xuJiMzOTspOwogCXB1dF9kZXZfc2VjdG9yKHNlY3QpOwogCXJldHVybiAxOwogfQpkaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy9zdW4uYyBiL2Jsb2NrL3BhcnRpdGlvbnMvc3VuLmMKaW5kZXggOTJjNjQ1ZmNkMmUwOWIuLmM3MWJhZDc4ZjM0YWYwIDEwMDY0NAotLS0gYS9ibG9jay9wYXJ0aXRpb25zL3N1bi5jCiYjNDM7JiM0MzsmIzQzOyBiL2Jsb2NrL3BhcnRpdGlvbnMvc3VuLmMKQEAgLTEyMSw3ICYjNDM7MTIxLDcgQEAgaW50IHN1bl9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSkKIAkJfQogCQlzbG90JiM0MzsmIzQzOzsKIAl9Ci0Jc2VxX2J1Zl9wdXRzKCZhbXA7c3RhdGUtJmd0O3BwX2J1ZiwgJiMzNDtcbiYjMzQ7KTsKJiM0MzsJc2VxX2J1Zl9wdXRjKCZhbXA7c3RhdGUtJmd0O3BwX2J1ZiwgJiMzOTtcbiYjMzk7KTsKIAlwdXRfZGV2X3NlY3RvcihzZWN0KTsKIAlyZXR1cm4gMTsKIH0KZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvc3lzdjY4LmMgYi9ibG9jay9wYXJ0aXRpb25zL3N5c3Y2OC5jCmluZGV4IDQ3MGUwZjlkZTdiZTM4Li4zMWQzNDhhYzJkZmIzZSAxMDA2NDQKLS0tIGEvYmxvY2svcGFydGl0aW9ucy9zeXN2NjguYwomIzQzOyYjNDM7JiM0MzsgYi9ibG9jay9wYXJ0aXRpb25zL3N5c3Y2OC5jCkBAIC04Niw3ICYjNDM7ODYsNyBAQCBpbnQgc3lzdjY4X3BhcnRpdGlvbihzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKQogCQl9CiAJCXNsb3QmIzQzOyYjNDM7OwogCX0KLQlzZXFfYnVmX3B1dHMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM0O1xuJiMzNDspOwomIzQzOwlzZXFfYnVmX3B1dGMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM5O1xuJiMzOTspOwogCXB1dF9kZXZfc2VjdG9yKHNlY3QpOwogCXJldHVybiAxOwogfQpkaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy91bHRyaXguYyBiL2Jsb2NrL3BhcnRpdGlvbnMvdWx0cml4LmMKaW5kZXggYjRiOWRkYzU3YTVkNmYuLjhhYzQyZmRhMjVkMTYxIDEwMDY0NAotLS0gYS9ibG9jay9wYXJ0aXRpb25zL3VsdHJpeC5jCiYjNDM7JiM0MzsmIzQzOyBiL2Jsb2NrL3BhcnRpdGlvbnMvdWx0cml4LmMKQEAgLTM5LDcgJiM0MzszOSw3IEBAIGludCB1bHRyaXhfcGFydGl0aW9uKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpCiAJCQkJCSAgICAgIGxhYmVsLSZndDtwdF9wYXJ0W2ldLnBpX2Jsa29mZiwKIAkJCQkJICAgICAgbGFiZWwtJmd0O3B0X3BhcnRbaV0ucGlfbmJsb2Nrcyk7CiAJCXB1dF9kZXZfc2VjdG9yKHNlY3QpOwotCQlzZXFfYnVmX3B1dHMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM0O1xuJiMzNDspOwomIzQzOwkJc2VxX2J1Zl9wdXRjKCZhbXA7c3RhdGUtJmd0O3BwX2J1ZiwgJiMzOTtcbiYjMzk7KTsKIAkJcmV0dXJuIDE7CiAJfSBlbHNlIHsKIAkJcHV0X2Rldl9zZWN0b3Ioc2VjdCk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA3OjQ3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU1MTgKCQkJCQkJCW91dHB1dDogODQKCQkJCQkJCXRob3VnaHRzOiAxOTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgUHJvcG9zZWQgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7dmUgYmVlbiBwcmVzZW50ZWQgd2l0aCBhIHBhdGNoIHRhcmdldGluZyBzb21lIHBhcnRpdGlvbiBwYXJzZXJzIHdpdGhpbiBgYmxvY2svcGFydGl0aW9ucy9gLiBUaGUgY29yZSBvZiB0aGUgY2hhbmdlIHJldm9sdmVzIGFyb3VuZCByZXBsYWNpbmcgaW5zdGFuY2VzIG9mIGBzZXFfYnVmX3B1dHMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM0O1xuJiMzNDspO2Agd2l0aCBgc2VxX2J1Zl9wdXRjKCZhbXA7c3RhdGUtJmd0O3BwX2J1ZiwgJiMzOTtcbiYjMzk7KTtgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCB0aGlzIGlzIHB1cmVseSBjb3NtZXRpYyDigJMgYW4gb3B0aW1pemF0aW9uLiBJdCYjMzk7cyBub3QgbW9kaWZ5aW5nIHRoZSBwcm9ncmFtJiMzOTtzIGxvZ2ljIG9yIGFsdGVyaW5nIGFueSBleGVjdXRpb24gcGF0aHMsIGp1c3Qgc3dpdGNoaW5nIGZyb20gcHJpbnRpbmcgYSBzdHJpbmcgbGl0ZXJhbCBuZXdsaW5lIHRvIHByaW50aW5nIHRoZSBuZXdsaW5lIGNoYXJhY3RlciBkaXJlY3RseS4gVGhlcmVmb3JlLCBJIGRvbiYjMzk7dCBzZWUgYW55IGltbWVkaWF0ZSB2YWx1ZSBpbiBmdXp6aW5nIHRoaXMgc3BlY2lmaWMgY2hhbmdlLgoKVG8gYmUgYWJzb2x1dGVseSBjZXJ0YWluLCBJJiMzOTt2ZSBqdXN0IGRvdWJsZS1jaGVja2VkIHRoZSB1bmRlcmx5aW5nIGZ1bmN0aW9ucy4gYHNlcV9idWZfcHV0c2AgaW50ZXJuYWxseSBjYWxjdWxhdGVzIHRoZSBzdHJpbmcgbGVuZ3RoIGFuZCB0aGVuIGNhbGxzIGBzZXFfYnVmX3B1dG1lbWAuIGBzZXFfYnVmX3B1dGNgLCBvbiB0aGUgb3RoZXIgaGFuZCwgZGlyZWN0bHkgcGxhY2VzIHRoZSBjaGFyYWN0ZXIgaW4gdGhlIGJ1ZmZlci4gIENydWNpYWxseSwgdGhlIG5ldCBlZmZlY3Qgb24gdGhlIGJ1ZmZlciYjMzk7cyBjb250ZW50cyB3aWxsIGJlICppZGVudGljYWwqLiBUaGlzIGNvbmZpcm1zIGl0OyBpdCBpcyBhIG1pbm9yIG9wdGltaXphdGlvbi4KClRoZXJlZm9yZSwgSSYjMzk7bSBnb2luZyB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjkgMDc6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IHJlcGxhY2VzIGBzZXFfYnVmX3B1dHNgIHdpdGggYHNlcV9idWZfcHV0Y2AgZm9yIHByaW50aW5nIGEgc2luZ2xlIG5ld2xpbmUgY2hhcmFjdGVyIGluIHZhcmlvdXMgcGFydGl0aW9uIHBhcnNlcnMuIFRoaXMgaXMgYSBtaW5vciBvcHRpbWl6YXRpb24vY2xlYW51cCB0aGF0IGRvZXMgbm90IGZ1bmN0aW9uYWxseSBhbHRlciB0aGUgZXhlY3V0aW9uIGZsb3cgb3IgbG9naWMgb2YgdGhlIGtlcm5lbC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgcmVwbGFjZXMgYHNlcV9idWZfcHV0c2Agd2l0aCBgc2VxX2J1Zl9wdXRjYCBmb3IgcHJpbnRpbmcgYSBzaW5nbGUgbmV3bGluZSBjaGFyYWN0ZXIgaW4gdmFyaW91cyBwYXJ0aXRpb24gcGFyc2Vycy4gVGhpcyBpcyBhIG1pbm9yIG9wdGltaXphdGlvbi9jbGVhbnVwIHRoYXQgZG9lcyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIHRoZSBleGVjdXRpb24gZmxvdyBvciBsb2dpYyBvZiB0aGUga2VybmVsLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA3OjQ3OjA3LjkwMjAzNjg2NFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU3Nzk4MjU1MDcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgcmVwbGFjZXMgYHNlcV9idWZfcHV0c2Agd2l0aCBgc2VxX2J1Zl9wdXRjYCBmb3IgcHJpbnRpbmcgYSBzaW5nbGUgbmV3bGluZSBjaGFyYWN0ZXIgaW4gdmFyaW91cyBwYXJ0aXRpb24gcGFyc2Vycy4gVGhpcyBpcyBhIG1pbm9yIG9wdGltaXphdGlvbi9jbGVhbnVwIHRoYXQgZG9lcyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIHRoZSBleGVjdXRpb24gZmxvdyBvciBsb2dpYyBvZiB0aGUga2VybmVsLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDc6NDc6MDcuOTAyMDQxNjQ0WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NzEyMjI0OTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBkZDZlMjI1Mjc1ZmM1NjFiNTdmMzg5YmJlN2VlZTYwZTM4YWM1ZjQ4XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gSnVuIDI5IDA3OjQ3OjA2IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvYWNvcm4uYyBiL2Jsb2NrL3BhcnRpdGlvbnMvYWNvcm4uY1xcbmluZGV4IDA2N2Q2YTI3YTNiZGYzLi5jNDgyNTA1MTc0NDgxOCAxMDA2NDRcXG4tLS0gYS9ibG9jay9wYXJ0aXRpb25zL2Fjb3JuLmNcXG4rKysgYi9ibG9jay9wYXJ0aXRpb25zL2Fjb3JuLmNcXG5AQCAtMjkwLDcgKzI5MCw3IEBAIGludCBhZGZzcGFydF9jaGVja19BREZTKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpXFxuIFxcdFxcdFxcdGJyZWFrO1xcbiBcXHRcXHR9XFxuIFxcdH1cXG4tXFx0c2VxX2J1Zl9wdXRzKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCBcXFwiXFxcXG5cXFwiKTtcXG4rXFx0c2VxX2J1Zl9wdXRjKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCAnXFxcXG4nKTtcXG4gXFx0cmV0dXJuIDE7XFxuIH1cXG4gI2VuZGlmXFxuQEAgLTM5Nyw3ICszOTcsNyBAQCBpbnQgYWRmc3BhcnRfY2hlY2tfSUNTKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpXFxuIFxcdH1cXG4gXFxuIFxcdHB1dF9kZXZfc2VjdG9yKHNlY3QpO1xcbi1cXHRzZXFfYnVmX3B1dHMoXFx1MDAyNnN0YXRlLVxcdTAwM2VwcF9idWYsIFxcXCJcXFxcblxcXCIpO1xcbitcXHRzZXFfYnVmX3B1dGMoXFx1MDAyNnN0YXRlLVxcdTAwM2VwcF9idWYsICdcXFxcbicpO1xcbiBcXHRyZXR1cm4gMTtcXG4gfVxcbiAjZW5kaWZcXG5AQCAtNDY4LDcgKzQ2OCw3IEBAIGludCBhZGZzcGFydF9jaGVja19QT1dFUlRFQyhzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKVxcbiBcXHR9XFxuIFxcbiBcXHRwdXRfZGV2X3NlY3RvcihzZWN0KTtcXG4tXFx0c2VxX2J1Zl9wdXRzKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCBcXFwiXFxcXG5cXFwiKTtcXG4rXFx0c2VxX2J1Zl9wdXRjKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCAnXFxcXG4nKTtcXG4gXFx0cmV0dXJuIDE7XFxuIH1cXG4gI2VuZGlmXFxuQEAgLTUzOSw3ICs1MzksNyBAQCBpbnQgYWRmc3BhcnRfY2hlY2tfRUVTT1goc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcXG4gXFxuIFxcdFxcdHNpemUgPSBnZXRfY2FwYWNpdHkoc3RhdGUtXFx1MDAzZWRpc2spO1xcbiBcXHRcXHRwdXRfcGFydGl0aW9uKHN0YXRlLCBzbG90KyssIHN0YXJ0LCBzaXplIC0gc3RhcnQpO1xcbi1cXHRcXHRzZXFfYnVmX3B1dHMoXFx1MDAyNnN0YXRlLVxcdTAwM2VwcF9idWYsIFxcXCJcXFxcblxcXCIpO1xcbitcXHRcXHRzZXFfYnVmX3B1dGMoXFx1MDAyNnN0YXRlLVxcdTAwM2VwcF9idWYsICdcXFxcbicpO1xcbiBcXHR9XFxuIFxcbiBcXHRyZXR1cm4gaSA/IDEgOiAwO1xcbmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL2FtaWdhLmMgYi9ibG9jay9wYXJ0aXRpb25zL2FtaWdhLmNcXG5pbmRleCA4MzI1MDQ2YTE0ZWI5NS4uYTI3MmY2NDQ1MGVjYzggMTAwNjQ0XFxuLS0tIGEvYmxvY2svcGFydGl0aW9ucy9hbWlnYS5jXFxuKysrIGIvYmxvY2svcGFydGl0aW9ucy9hbWlnYS5jXFxuQEAgLTE5NCw3ICsxOTQsNyBAQCBpbnQgYW1pZ2FfcGFydGl0aW9uKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpXFxuIFxcdFxcdH1cXG4gXFx0XFx0cmVzID0gMTtcXG4gXFx0fVxcbi1cXHRzZXFfYnVmX3B1dHMoXFx1MDAyNnN0YXRlLVxcdTAwM2VwcF9idWYsIFxcXCJcXFxcblxcXCIpO1xcbitcXHRzZXFfYnVmX3B1dGMoXFx1MDAyNnN0YXRlLVxcdTAwM2VwcF9idWYsICdcXFxcbicpO1xcbiBcXG4gcmRiX2RvbmU6XFxuIFxcdHJldHVybiByZXM7XFxuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvYXRhcmkuYyBiL2Jsb2NrL3BhcnRpdGlvbnMvYXRhcmkuY1xcbmluZGV4IDI0MzhkMTQ0OGYzODJjLi41ODg2M2MxYTI3MjM4NSAxMDA2NDRcXG4tLS0gYS9ibG9jay9wYXJ0aXRpb25zL2F0YXJpLmNcXG4rKysgYi9ibG9jay9wYXJ0aXRpb25zL2F0YXJpLmNcXG5AQCAtMTUwLDcgKzE1MCw3IEBAIGludCBhdGFyaV9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcXG4gI2VuZGlmXFxuIFxcdHB1dF9kZXZfc2VjdG9yKHNlY3QpO1xcbiBcXG4tXFx0c2VxX2J1Zl9wdXRzKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCBcXFwiXFxcXG5cXFwiKTtcXG4rXFx0c2VxX2J1Zl9wdXRjKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCAnXFxcXG4nKTtcXG4gXFxuIFxcdHJldHVybiAxO1xcbiB9XFxuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvY21kbGluZS5jIGIvYmxvY2svcGFydGl0aW9ucy9jbWRsaW5lLmNcXG5pbmRleCA0ZmQ1MmVkMTU0YjRlOC4uNTAwNzVlY2NhYWRlNDQgMTAwNjQ0XFxuLS0tIGEvYmxvY2svcGFydGl0aW9ucy9jbWRsaW5lLmNcXG4rKysgYi9ibG9jay9wYXJ0aXRpb25zL2NtZGxpbmUuY1xcbkBAIC0zNzcsNyArMzc3LDcgQEAgaW50IGNtZGxpbmVfcGFydGl0aW9uKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpXFxuIFxcdGNtZGxpbmVfcGFydHNfc2V0KHBhcnRzLCBkaXNrX3NpemUsIHN0YXRlKTtcXG4gXFx0Y21kbGluZV9wYXJ0c192ZXJpZmllcigxLCBzdGF0ZSk7XFxuIFxcbi1cXHRzZXFfYnVmX3B1dHMoXFx1MDAyNnN0YXRlLVxcdTAwM2VwcF9idWYsIFxcXCJcXFxcblxcXCIpO1xcbitcXHRzZXFfYnVmX3B1dGMoXFx1MDAyNnN0YXRlLVxcdTAwM2VwcF9idWYsICdcXFxcbicpO1xcbiBcXG4gXFx0cmV0dXJuIDE7XFxuIH1cXG5kaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy9lZmkuYyBiL2Jsb2NrL3BhcnRpdGlvbnMvZWZpLmNcXG5pbmRleCA5ODY1ZDU5MDkzZmFjMC4uNjUwYjkxZWZjODMyYWYgMTAwNjQ0XFxuLS0tIGEvYmxvY2svcGFydGl0aW9ucy9lZmkuY1xcbisrKyBiL2Jsb2NrL3BhcnRpdGlvbnMvZWZpLmNcXG5AQCAtNzUxLDYgKzc1MSw2IEBAIGludCBlZmlfcGFydGl0aW9uKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpXFxuIFxcdH1cXG4gXFx0a2ZyZWUocHRlcyk7XFxuIFxcdGtmcmVlKGdwdCk7XFxuLVxcdHNlcV9idWZfcHV0cyhcXHUwMDI2c3RhdGUtXFx1MDAzZXBwX2J1ZiwgXFxcIlxcXFxuXFxcIik7XFxuK1xcdHNlcV9idWZfcHV0YyhcXHUwMDI2c3RhdGUtXFx1MDAzZXBwX2J1ZiwgJ1xcXFxuJyk7XFxuIFxcdHJldHVybiAxO1xcbiB9XFxuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvaWJtLmMgYi9ibG9jay9wYXJ0aXRpb25zL2libS5jXFxuaW5kZXggNTQwNDdlNzIyYTlkOTQuLmE1N2RlM2IxOTJmYzIxIDEwMDY0NFxcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvaWJtLmNcXG4rKysgYi9ibG9jay9wYXJ0aXRpb25zL2libS5jXFxuQEAgLTIxNyw3ICsyMTcsNyBAQCBzdGF0aWMgaW50IGZpbmRfdm9sMV9wYXJ0aXRpb25zKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUsXFxuIFxcdFxcdGJsaysrO1xcbiBcXHRcXHRkYXRhID0gcmVhZF9wYXJ0X3NlY3RvcihzdGF0ZSwgYmxrICogc2VjcGVyYmxrLCBcXHUwMDI2c2VjdCk7XFxuIFxcdH1cXG4tXFx0c2VxX2J1Zl9wdXRzKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCBcXFwiXFxcXG5cXFwiKTtcXG4rXFx0c2VxX2J1Zl9wdXRjKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCAnXFxcXG4nKTtcXG4gXFxuIFxcdGlmICghZGF0YSlcXG4gXFx0XFx0cmV0dXJuIC0xO1xcbkBAIC0yNTQsNyArMjU0LDcgQEAgc3RhdGljIGludCBmaW5kX2xueDFfcGFydGl0aW9ucyhzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlLFxcbiBcXHRcXHRzaXplID0gbnJfc2VjdG9ycztcXG4gXFx0XFx0aWYgKHNpemUgIT0gZ2VvX3NpemUpIHtcXG4gXFx0XFx0XFx0aWYgKCFpbmZvKSB7XFxuLVxcdFxcdFxcdFxcdHNlcV9idWZfcHV0cyhcXHUwMDI2c3RhdGUtXFx1MDAzZXBwX2J1ZiwgXFxcIlxcXFxuXFxcIik7XFxuK1xcdFxcdFxcdFxcdHNlcV9idWZfcHV0YyhcXHUwMDI2c3RhdGUtXFx1MDAzZXBwX2J1ZiwgJ1xcXFxuJyk7XFxuIFxcdFxcdFxcdFxcdHJldHVybiAxO1xcbiBcXHRcXHRcXHR9XFxuIFxcdFxcdFxcdGlmICghc3RyY21wKGluZm8tXFx1MDAzZXR5cGUsIFxcXCJFQ0tEXFxcIikpXFxuQEAgLTI2Niw3ICsyNjYsNyBAQCBzdGF0aWMgaW50IGZpbmRfbG54MV9wYXJ0aXRpb25zKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUsXFxuIFxcdC8qIGZpcnN0IGFuZCBvbmx5IHBhcnRpdGlvbiBzdGFydHMgaW4gdGhlIGZpcnN0IGJsb2NrIGFmdGVyIHRoZSBsYWJlbCAqL1xcbiBcXHRvZmZzZXQgPSBsYWJlbHNlY3QgKyBzZWNwZXJibGs7XFxuIFxcdHB1dF9wYXJ0aXRpb24oc3RhdGUsIDEsIG9mZnNldCwgc2l6ZSAtIG9mZnNldCk7XFxuLVxcdHNlcV9idWZfcHV0cyhcXHUwMDI2c3RhdGUtXFx1MDAzZXBwX2J1ZiwgXFxcIlxcXFxuXFxcIik7XFxuK1xcdHNlcV9idWZfcHV0YyhcXHUwMDI2c3RhdGUtXFx1MDAzZXBwX2J1ZiwgJ1xcXFxuJyk7XFxuIFxcdHJldHVybiAxO1xcbiB9XFxuIFxcbkBAIC0zMDcsNyArMzA3LDcgQEAgc3RhdGljIGludCBmaW5kX2NtczFfcGFydGl0aW9ucyhzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlLFxcbiBcXHR9XFxuIFxcbiBcXHRwdXRfcGFydGl0aW9uKHN0YXRlLCAxLCBvZmZzZXQsIHNpemUtb2Zmc2V0KTtcXG4tXFx0c2VxX2J1Zl9wdXRzKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCBcXFwiXFxcXG5cXFwiKTtcXG4rXFx0c2VxX2J1Zl9wdXRjKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCAnXFxcXG4nKTtcXG4gXFx0cmV0dXJuIDE7XFxuIH1cXG4gXFxuQEAgLTM4OCw3ICszODgsNyBAQCBpbnQgaWJtX3BhcnRpdGlvbihzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKVxcbiBcXHRcXHRcXHRzaXplID0gbnJfc2VjdG9ycztcXG4gXFx0XFx0XFx0b2Zmc2V0ID0gKGluZm8tXFx1MDAzZWxhYmVsX2Jsb2NrICsgMSkgKiAoYmxvY2tzaXplIFxcdTAwM2VcXHUwMDNlIDkpO1xcbiBcXHRcXHRcXHRwdXRfcGFydGl0aW9uKHN0YXRlLCAxLCBvZmZzZXQsIHNpemUtb2Zmc2V0KTtcXG4tXFx0XFx0XFx0c2VxX2J1Zl9wdXRzKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCBcXFwiXFxcXG5cXFwiKTtcXG4rXFx0XFx0XFx0c2VxX2J1Zl9wdXRjKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCAnXFxcXG4nKTtcXG4gXFx0XFx0fVxcbiBcXHR9IGVsc2VcXG4gXFx0XFx0cmVzID0gMDtcXG5kaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy9rYXJtYS5jIGIvYmxvY2svcGFydGl0aW9ucy9rYXJtYS5jXFxuaW5kZXggYTRlM2M1MDUwMTc3NjcuLmIwYWI4NDE2OTUzOGU5IDEwMDY0NFxcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMva2FybWEuY1xcbisrKyBiL2Jsb2NrL3BhcnRpdGlvbnMva2FybWEuY1xcbkBAIC01Myw3ICs1Myw3IEBAIGludCBrYXJtYV9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcXG4gXFx0XFx0fVxcbiBcXHRcXHRzbG90Kys7XFxuIFxcdH1cXG4tXFx0c2VxX2J1Zl9wdXRzKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCBcXFwiXFxcXG5cXFwiKTtcXG4rXFx0c2VxX2J1Zl9wdXRjKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCAnXFxcXG4nKTtcXG4gXFx0cHV0X2Rldl9zZWN0b3Ioc2VjdCk7XFxuIFxcdHJldHVybiAxO1xcbiB9XFxuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvbGRtLmMgYi9ibG9jay9wYXJ0aXRpb25zL2xkbS5jXFxuaW5kZXggYzBiZGNhZTU4YTNlZTAuLmQxYmJjOWZiMDlmOTM5IDEwMDY0NFxcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvbGRtLmNcXG4rKysgYi9ibG9jay9wYXJ0aXRpb25zL2xkbS5jXFxuQEAgLTU5Nyw3ICs1OTcsNyBAQCBzdGF0aWMgYm9vbCBsZG1fY3JlYXRlX2RhdGFfcGFydGl0aW9ucyAoc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpwcCxcXG4gXFx0XFx0cGFydF9udW0rKztcXG4gXFx0fVxcbiBcXG4tXFx0c2VxX2J1Zl9wdXRzKFxcdTAwMjZwcC1cXHUwMDNlcHBfYnVmLCBcXFwiXFxcXG5cXFwiKTtcXG4rXFx0c2VxX2J1Zl9wdXRjKFxcdTAwMjZwcC1cXHUwMDNlcHBfYnVmLCAnXFxcXG4nKTtcXG4gXFx0cmV0dXJuIHRydWU7XFxuIH1cXG4gXFxuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvbWFjLmMgYi9ibG9jay9wYXJ0aXRpb25zL21hYy5jXFxuaW5kZXggZGYwM2NhNDI4ZTE1NzQuLmJiNTcwYjVhNmVhYWIyIDEwMDY0NFxcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvbWFjLmNcXG4rKysgYi9ibG9jay9wYXJ0aXRpb25zL21hYy5jXFxuQEAgLTE1Miw2ICsxNTIsNiBAQCBpbnQgbWFjX3BhcnRpdGlvbihzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKVxcbiAjZW5kaWZcXG4gXFxuIFxcdHB1dF9kZXZfc2VjdG9yKHNlY3QpO1xcbi1cXHRzZXFfYnVmX3B1dHMoXFx1MDAyNnN0YXRlLVxcdTAwM2VwcF9idWYsIFxcXCJcXFxcblxcXCIpO1xcbitcXHRzZXFfYnVmX3B1dGMoXFx1MDAyNnN0YXRlLVxcdTAwM2VwcF9idWYsICdcXFxcbicpO1xcbiBcXHRyZXR1cm4gMTtcXG4gfVxcbmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL21zZG9zLmMgYi9ibG9jay9wYXJ0aXRpb25zL21zZG9zLmNcXG5pbmRleCAyMDBlYTUzZWE2YTJjOC4uNGE5NjU0MWY1MzUxNWUgMTAwNjQ0XFxuLS0tIGEvYmxvY2svcGFydGl0aW9ucy9tc2Rvcy5jXFxuKysrIGIvYmxvY2svcGFydGl0aW9ucy9tc2Rvcy5jXFxuQEAgLTYwOCw3ICs2MDgsNyBAQCBpbnQgbXNkb3NfcGFydGl0aW9uKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpXFxuIFxcdFxcdFxcdGZiID0gKHN0cnVjdCBmYXRfYm9vdF9zZWN0b3IgKikgZGF0YTtcXG4gXFx0XFx0XFx0aWYgKHNsb3QgPT0gMSBcXHUwMDI2XFx1MDAyNiBmYi1cXHUwMDNlcmVzZXJ2ZWQgXFx1MDAyNlxcdTAwMjYgZmItXFx1MDAzZWZhdHNcXG4gXFx0XFx0XFx0XFx0XFx1MDAyNlxcdTAwMjYgZmF0X3ZhbGlkX21lZGlhKGZiLVxcdTAwM2VtZWRpYSkpIHtcXG4tXFx0XFx0XFx0XFx0c2VxX2J1Zl9wdXRzKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCBcXFwiXFxcXG5cXFwiKTtcXG4rXFx0XFx0XFx0XFx0c2VxX2J1Zl9wdXRjKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCAnXFxcXG4nKTtcXG4gXFx0XFx0XFx0XFx0cHV0X2Rldl9zZWN0b3Ioc2VjdCk7XFxuIFxcdFxcdFxcdFxcdHJldHVybiAxO1xcbiBcXHRcXHRcXHR9IGVsc2Uge1xcbkBAIC02NzIsNyArNjcyLDcgQEAgaW50IG1zZG9zX3BhcnRpdGlvbihzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKVxcbiBcXHRcXHRcXHRzZXFfYnVmX3B1dHMoXFx1MDAyNnN0YXRlLVxcdTAwM2VwcF9idWYsIFxcXCJbRVpEXVxcXCIpO1xcbiBcXHR9XFxuIFxcbi1cXHRzZXFfYnVmX3B1dHMoXFx1MDAyNnN0YXRlLVxcdTAwM2VwcF9idWYsIFxcXCJcXFxcblxcXCIpO1xcbitcXHRzZXFfYnVmX3B1dGMoXFx1MDAyNnN0YXRlLVxcdTAwM2VwcF9idWYsICdcXFxcbicpO1xcbiBcXG4gXFx0Lyogc2Vjb25kIHBhc3MgLSBvdXRwdXQgZm9yIGVhY2ggb24gYSBzZXBhcmF0ZSBsaW5lICovXFxuIFxcdHAgPSAoc3RydWN0IG1zZG9zX3BhcnRpdGlvbiAqKSAoMHgxYmUgKyBkYXRhKTtcXG5kaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy9vZi5jIGIvYmxvY2svcGFydGl0aW9ucy9vZi5jXFxuaW5kZXggNTM2NjRlYTA2YjY1NDAuLjc4MDNlNmY0ZWNkZDk4IDEwMDY0NFxcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvb2YuY1xcbisrKyBiL2Jsb2NrL3BhcnRpdGlvbnMvb2YuY1xcbkBAIC0xMDQsNyArMTA0LDcgQEAgaW50IG9mX3BhcnRpdGlvbihzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKVxcbiBcXHRcXHRzbG90Kys7XFxuIFxcdH1cXG4gXFxuLVxcdHNlcV9idWZfcHV0cyhcXHUwMDI2c3RhdGUtXFx1MDAzZXBwX2J1ZiwgXFxcIlxcXFxuXFxcIik7XFxuK1xcdHNlcV9idWZfcHV0YyhcXHUwMDI2c3RhdGUtXFx1MDAzZXBwX2J1ZiwgJ1xcXFxuJyk7XFxuIFxcbiBcXHRvZl9ub2RlX3B1dChwYXJ0aXRpb25zX25wKTtcXG4gXFx0cmV0dXJuIDE7XFxuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvb3NmLmMgYi9ibG9jay9wYXJ0aXRpb25zL29zZi5jXFxuaW5kZXggMmE2OTI1ODRkYmE5MWEuLjZmODNkNDc1OWE1ZDRiIDEwMDY0NFxcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvb3NmLmNcXG4rKysgYi9ibG9jay9wYXJ0aXRpb25zL29zZi5jXFxuQEAgLTgxLDcgKzgxLDcgQEAgaW50IG9zZl9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcXG4gXFx0XFx0XFx0XFx0bGUzMl90b19jcHUocGFydGl0aW9uLVxcdTAwM2VwX3NpemUpKTtcXG4gXFx0XFx0c2xvdCsrO1xcbiBcXHR9XFxuLVxcdHNlcV9idWZfcHV0cyhcXHUwMDI2c3RhdGUtXFx1MDAzZXBwX2J1ZiwgXFxcIlxcXFxuXFxcIik7XFxuK1xcdHNlcV9idWZfcHV0YyhcXHUwMDI2c3RhdGUtXFx1MDAzZXBwX2J1ZiwgJ1xcXFxuJyk7XFxuIFxcdHB1dF9kZXZfc2VjdG9yKHNlY3QpO1xcbiBcXHRyZXR1cm4gMTtcXG4gfVxcbmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL3NnaS5jIGIvYmxvY2svcGFydGl0aW9ucy9zZ2kuY1xcbmluZGV4IDIzODNjYTYzY2Q2NjQ1Li5mNzQzZTM1ODM0MTc1OCAxMDA2NDRcXG4tLS0gYS9ibG9jay9wYXJ0aXRpb25zL3NnaS5jXFxuKysrIGIvYmxvY2svcGFydGl0aW9ucy9zZ2kuY1xcbkBAIC03OSw3ICs3OSw3IEBAIGludCBzZ2lfcGFydGl0aW9uKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpXFxuIFxcdFxcdH1cXG4gXFx0XFx0c2xvdCsrO1xcbiBcXHR9XFxuLVxcdHNlcV9idWZfcHV0cyhcXHUwMDI2c3RhdGUtXFx1MDAzZXBwX2J1ZiwgXFxcIlxcXFxuXFxcIik7XFxuK1xcdHNlcV9idWZfcHV0YyhcXHUwMDI2c3RhdGUtXFx1MDAzZXBwX2J1ZiwgJ1xcXFxuJyk7XFxuIFxcdHB1dF9kZXZfc2VjdG9yKHNlY3QpO1xcbiBcXHRyZXR1cm4gMTtcXG4gfVxcbmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL3N1bi5jIGIvYmxvY2svcGFydGl0aW9ucy9zdW4uY1xcbmluZGV4IDkyYzY0NWZjZDJlMDliLi5jNzFiYWQ3OGYzNGFmMCAxMDA2NDRcXG4tLS0gYS9ibG9jay9wYXJ0aXRpb25zL3N1bi5jXFxuKysrIGIvYmxvY2svcGFydGl0aW9ucy9zdW4uY1xcbkBAIC0xMjEsNyArMTIxLDcgQEAgaW50IHN1bl9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcXG4gXFx0XFx0fVxcbiBcXHRcXHRzbG90Kys7XFxuIFxcdH1cXG4tXFx0c2VxX2J1Zl9wdXRzKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCBcXFwiXFxcXG5cXFwiKTtcXG4rXFx0c2VxX2J1Zl9wdXRjKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCAnXFxcXG4nKTtcXG4gXFx0cHV0X2Rldl9zZWN0b3Ioc2VjdCk7XFxuIFxcdHJldHVybiAxO1xcbiB9XFxuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvc3lzdjY4LmMgYi9ibG9jay9wYXJ0aXRpb25zL3N5c3Y2OC5jXFxuaW5kZXggNDcwZTBmOWRlN2JlMzguLjMxZDM0OGFjMmRmYjNlIDEwMDY0NFxcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvc3lzdjY4LmNcXG4rKysgYi9ibG9jay9wYXJ0aXRpb25zL3N5c3Y2OC5jXFxuQEAgLTg2LDcgKzg2LDcgQEAgaW50IHN5c3Y2OF9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcXG4gXFx0XFx0fVxcbiBcXHRcXHRzbG90Kys7XFxuIFxcdH1cXG4tXFx0c2VxX2J1Zl9wdXRzKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCBcXFwiXFxcXG5cXFwiKTtcXG4rXFx0c2VxX2J1Zl9wdXRjKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCAnXFxcXG4nKTtcXG4gXFx0cHV0X2Rldl9zZWN0b3Ioc2VjdCk7XFxuIFxcdHJldHVybiAxO1xcbiB9XFxuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvdWx0cml4LmMgYi9ibG9jay9wYXJ0aXRpb25zL3VsdHJpeC5jXFxuaW5kZXggYjRiOWRkYzU3YTVkNmYuLjhhYzQyZmRhMjVkMTYxIDEwMDY0NFxcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvdWx0cml4LmNcXG4rKysgYi9ibG9jay9wYXJ0aXRpb25zL3VsdHJpeC5jXFxuQEAgLTM5LDcgKzM5LDcgQEAgaW50IHVsdHJpeF9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcXG4gXFx0XFx0XFx0XFx0XFx0ICAgICAgbGFiZWwtXFx1MDAzZXB0X3BhcnRbaV0ucGlfYmxrb2ZmLFxcbiBcXHRcXHRcXHRcXHRcXHQgICAgICBsYWJlbC1cXHUwMDNlcHRfcGFydFtpXS5waV9uYmxvY2tzKTtcXG4gXFx0XFx0cHV0X2Rldl9zZWN0b3Ioc2VjdCk7XFxuLVxcdFxcdHNlcV9idWZfcHV0cyhcXHUwMDI2c3RhdGUtXFx1MDAzZXBwX2J1ZiwgXFxcIlxcXFxuXFxcIik7XFxuK1xcdFxcdHNlcV9idWZfcHV0YyhcXHUwMDI2c3RhdGUtXFx1MDAzZXBwX2J1ZiwgJ1xcXFxuJyk7XFxuIFxcdFxcdHJldHVybiAxO1xcbiBcXHR9IGVsc2Uge1xcbiBcXHRcXHRwdXRfZGV2X3NlY3RvcihzZWN0KTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDc6NDc6MDguMzc0MTQzMjk4WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MzA3NzA4NDMzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IHJlcGxhY2VzIGBzZXFfYnVmX3B1dHNgIHdpdGggYHNlcV9idWZfcHV0Y2AgZm9yIHByaW50aW5nIGEgc2luZ2xlIG5ld2xpbmUgY2hhcmFjdGVyIGluIHZhcmlvdXMgcGFydGl0aW9uIHBhcnNlcnMuIFRoaXMgaXMgYSBtaW5vciBvcHRpbWl6YXRpb24vY2xlYW51cCB0aGF0IGRvZXMgbm90IGZ1bmN0aW9uYWxseSBhbHRlciB0aGUgZXhlY3V0aW9uIGZsb3cgb3IgbG9naWMgb2YgdGhlIGtlcm5lbC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZGQ2ZTIyNTI3NWZjNTYxYjU3ZjM4OWJiZTdlZWU2MGUzOGFjNWY0OFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gSnVuIDI5IDA3OjQ3OjA2IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy9hY29ybi5jIGIvYmxvY2svcGFydGl0aW9ucy9hY29ybi5jXG5pbmRleCAwNjdkNmEyN2EzYmRmMy4uYzQ4MjUwNTE3NDQ4MTggMTAwNjQ0XG4tLS0gYS9ibG9jay9wYXJ0aXRpb25zL2Fjb3JuLmNcbisrKyBiL2Jsb2NrL3BhcnRpdGlvbnMvYWNvcm4uY1xuQEAgLTI5MCw3ICsyOTAsNyBAQCBpbnQgYWRmc3BhcnRfY2hlY2tfQURGUyhzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKVxuIFx0XHRcdGJyZWFrO1xuIFx0XHR9XG4gXHR9XG4tXHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcIlxcblwiKTtcbitcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICdcXG4nKTtcbiBcdHJldHVybiAxO1xuIH1cbiAjZW5kaWZcbkBAIC0zOTcsNyArMzk3LDcgQEAgaW50IGFkZnNwYXJ0X2NoZWNrX0lDUyhzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKVxuIFx0fVxuIFxuIFx0cHV0X2Rldl9zZWN0b3Ioc2VjdCk7XG4tXHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcIlxcblwiKTtcbitcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICdcXG4nKTtcbiBcdHJldHVybiAxO1xuIH1cbiAjZW5kaWZcbkBAIC00NjgsNyArNDY4LDcgQEAgaW50IGFkZnNwYXJ0X2NoZWNrX1BPV0VSVEVDKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpXG4gXHR9XG4gXG4gXHRwdXRfZGV2X3NlY3RvcihzZWN0KTtcbi1cdHNlcV9idWZfcHV0cyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsIFwiXFxuXCIpO1xuK1x0c2VxX2J1Zl9wdXRjKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgJ1xcbicpO1xuIFx0cmV0dXJuIDE7XG4gfVxuICNlbmRpZlxuQEAgLTUzOSw3ICs1MzksNyBAQCBpbnQgYWRmc3BhcnRfY2hlY2tfRUVTT1goc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcbiBcbiBcdFx0c2l6ZSA9IGdldF9jYXBhY2l0eShzdGF0ZS1cdTAwM2VkaXNrKTtcbiBcdFx0cHV0X3BhcnRpdGlvbihzdGF0ZSwgc2xvdCsrLCBzdGFydCwgc2l6ZSAtIHN0YXJ0KTtcbi1cdFx0c2VxX2J1Zl9wdXRzKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgXCJcXG5cIik7XG4rXHRcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICdcXG4nKTtcbiBcdH1cbiBcbiBcdHJldHVybiBpID8gMSA6IDA7XG5kaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy9hbWlnYS5jIGIvYmxvY2svcGFydGl0aW9ucy9hbWlnYS5jXG5pbmRleCA4MzI1MDQ2YTE0ZWI5NS4uYTI3MmY2NDQ1MGVjYzggMTAwNjQ0XG4tLS0gYS9ibG9jay9wYXJ0aXRpb25zL2FtaWdhLmNcbisrKyBiL2Jsb2NrL3BhcnRpdGlvbnMvYW1pZ2EuY1xuQEAgLTE5NCw3ICsxOTQsNyBAQCBpbnQgYW1pZ2FfcGFydGl0aW9uKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpXG4gXHRcdH1cbiBcdFx0cmVzID0gMTtcbiBcdH1cbi1cdHNlcV9idWZfcHV0cyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsIFwiXFxuXCIpO1xuK1x0c2VxX2J1Zl9wdXRjKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgJ1xcbicpO1xuIFxuIHJkYl9kb25lOlxuIFx0cmV0dXJuIHJlcztcbmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL2F0YXJpLmMgYi9ibG9jay9wYXJ0aXRpb25zL2F0YXJpLmNcbmluZGV4IDI0MzhkMTQ0OGYzODJjLi41ODg2M2MxYTI3MjM4NSAxMDA2NDRcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvYXRhcmkuY1xuKysrIGIvYmxvY2svcGFydGl0aW9ucy9hdGFyaS5jXG5AQCAtMTUwLDcgKzE1MCw3IEBAIGludCBhdGFyaV9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcbiAjZW5kaWZcbiBcdHB1dF9kZXZfc2VjdG9yKHNlY3QpO1xuIFxuLVx0c2VxX2J1Zl9wdXRzKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgXCJcXG5cIik7XG4rXHRzZXFfYnVmX3B1dGMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCAnXFxuJyk7XG4gXG4gXHRyZXR1cm4gMTtcbiB9XG5kaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy9jbWRsaW5lLmMgYi9ibG9jay9wYXJ0aXRpb25zL2NtZGxpbmUuY1xuaW5kZXggNGZkNTJlZDE1NGI0ZTguLjUwMDc1ZWNjYWFkZTQ0IDEwMDY0NFxuLS0tIGEvYmxvY2svcGFydGl0aW9ucy9jbWRsaW5lLmNcbisrKyBiL2Jsb2NrL3BhcnRpdGlvbnMvY21kbGluZS5jXG5AQCAtMzc3LDcgKzM3Nyw3IEBAIGludCBjbWRsaW5lX3BhcnRpdGlvbihzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKVxuIFx0Y21kbGluZV9wYXJ0c19zZXQocGFydHMsIGRpc2tfc2l6ZSwgc3RhdGUpO1xuIFx0Y21kbGluZV9wYXJ0c192ZXJpZmllcigxLCBzdGF0ZSk7XG4gXG4tXHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcIlxcblwiKTtcbitcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICdcXG4nKTtcbiBcbiBcdHJldHVybiAxO1xuIH1cbmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL2VmaS5jIGIvYmxvY2svcGFydGl0aW9ucy9lZmkuY1xuaW5kZXggOTg2NWQ1OTA5M2ZhYzAuLjY1MGI5MWVmYzgzMmFmIDEwMDY0NFxuLS0tIGEvYmxvY2svcGFydGl0aW9ucy9lZmkuY1xuKysrIGIvYmxvY2svcGFydGl0aW9ucy9lZmkuY1xuQEAgLTc1MSw2ICs3NTEsNiBAQCBpbnQgZWZpX3BhcnRpdGlvbihzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKVxuIFx0fVxuIFx0a2ZyZWUocHRlcyk7XG4gXHRrZnJlZShncHQpO1xuLVx0c2VxX2J1Zl9wdXRzKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgXCJcXG5cIik7XG4rXHRzZXFfYnVmX3B1dGMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCAnXFxuJyk7XG4gXHRyZXR1cm4gMTtcbiB9XG5kaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy9pYm0uYyBiL2Jsb2NrL3BhcnRpdGlvbnMvaWJtLmNcbmluZGV4IDU0MDQ3ZTcyMmE5ZDk0Li5hNTdkZTNiMTkyZmMyMSAxMDA2NDRcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvaWJtLmNcbisrKyBiL2Jsb2NrL3BhcnRpdGlvbnMvaWJtLmNcbkBAIC0yMTcsNyArMjE3LDcgQEAgc3RhdGljIGludCBmaW5kX3ZvbDFfcGFydGl0aW9ucyhzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlLFxuIFx0XHRibGsrKztcbiBcdFx0ZGF0YSA9IHJlYWRfcGFydF9zZWN0b3Ioc3RhdGUsIGJsayAqIHNlY3BlcmJsaywgXHUwMDI2c2VjdCk7XG4gXHR9XG4tXHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcIlxcblwiKTtcbitcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICdcXG4nKTtcbiBcbiBcdGlmICghZGF0YSlcbiBcdFx0cmV0dXJuIC0xO1xuQEAgLTI1NCw3ICsyNTQsNyBAQCBzdGF0aWMgaW50IGZpbmRfbG54MV9wYXJ0aXRpb25zKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUsXG4gXHRcdHNpemUgPSBucl9zZWN0b3JzO1xuIFx0XHRpZiAoc2l6ZSAhPSBnZW9fc2l6ZSkge1xuIFx0XHRcdGlmICghaW5mbykge1xuLVx0XHRcdFx0c2VxX2J1Zl9wdXRzKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgXCJcXG5cIik7XG4rXHRcdFx0XHRzZXFfYnVmX3B1dGMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCAnXFxuJyk7XG4gXHRcdFx0XHRyZXR1cm4gMTtcbiBcdFx0XHR9XG4gXHRcdFx0aWYgKCFzdHJjbXAoaW5mby1cdTAwM2V0eXBlLCBcIkVDS0RcIikpXG5AQCAtMjY2LDcgKzI2Niw3IEBAIHN0YXRpYyBpbnQgZmluZF9sbngxX3BhcnRpdGlvbnMoc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSxcbiBcdC8qIGZpcnN0IGFuZCBvbmx5IHBhcnRpdGlvbiBzdGFydHMgaW4gdGhlIGZpcnN0IGJsb2NrIGFmdGVyIHRoZSBsYWJlbCAqL1xuIFx0b2Zmc2V0ID0gbGFiZWxzZWN0ICsgc2VjcGVyYmxrO1xuIFx0cHV0X3BhcnRpdGlvbihzdGF0ZSwgMSwgb2Zmc2V0LCBzaXplIC0gb2Zmc2V0KTtcbi1cdHNlcV9idWZfcHV0cyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsIFwiXFxuXCIpO1xuK1x0c2VxX2J1Zl9wdXRjKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgJ1xcbicpO1xuIFx0cmV0dXJuIDE7XG4gfVxuIFxuQEAgLTMwNyw3ICszMDcsNyBAQCBzdGF0aWMgaW50IGZpbmRfY21zMV9wYXJ0aXRpb25zKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUsXG4gXHR9XG4gXG4gXHRwdXRfcGFydGl0aW9uKHN0YXRlLCAxLCBvZmZzZXQsIHNpemUtb2Zmc2V0KTtcbi1cdHNlcV9idWZfcHV0cyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsIFwiXFxuXCIpO1xuK1x0c2VxX2J1Zl9wdXRjKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgJ1xcbicpO1xuIFx0cmV0dXJuIDE7XG4gfVxuIFxuQEAgLTM4OCw3ICszODgsNyBAQCBpbnQgaWJtX3BhcnRpdGlvbihzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKVxuIFx0XHRcdHNpemUgPSBucl9zZWN0b3JzO1xuIFx0XHRcdG9mZnNldCA9IChpbmZvLVx1MDAzZWxhYmVsX2Jsb2NrICsgMSkgKiAoYmxvY2tzaXplIFx1MDAzZVx1MDAzZSA5KTtcbiBcdFx0XHRwdXRfcGFydGl0aW9uKHN0YXRlLCAxLCBvZmZzZXQsIHNpemUtb2Zmc2V0KTtcbi1cdFx0XHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcIlxcblwiKTtcbitcdFx0XHRzZXFfYnVmX3B1dGMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCAnXFxuJyk7XG4gXHRcdH1cbiBcdH0gZWxzZVxuIFx0XHRyZXMgPSAwO1xuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMva2FybWEuYyBiL2Jsb2NrL3BhcnRpdGlvbnMva2FybWEuY1xuaW5kZXggYTRlM2M1MDUwMTc3NjcuLmIwYWI4NDE2OTUzOGU5IDEwMDY0NFxuLS0tIGEvYmxvY2svcGFydGl0aW9ucy9rYXJtYS5jXG4rKysgYi9ibG9jay9wYXJ0aXRpb25zL2thcm1hLmNcbkBAIC01Myw3ICs1Myw3IEBAIGludCBrYXJtYV9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcbiBcdFx0fVxuIFx0XHRzbG90Kys7XG4gXHR9XG4tXHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcIlxcblwiKTtcbitcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICdcXG4nKTtcbiBcdHB1dF9kZXZfc2VjdG9yKHNlY3QpO1xuIFx0cmV0dXJuIDE7XG4gfVxuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvbGRtLmMgYi9ibG9jay9wYXJ0aXRpb25zL2xkbS5jXG5pbmRleCBjMGJkY2FlNThhM2VlMC4uZDFiYmM5ZmIwOWY5MzkgMTAwNjQ0XG4tLS0gYS9ibG9jay9wYXJ0aXRpb25zL2xkbS5jXG4rKysgYi9ibG9jay9wYXJ0aXRpb25zL2xkbS5jXG5AQCAtNTk3LDcgKzU5Nyw3IEBAIHN0YXRpYyBib29sIGxkbV9jcmVhdGVfZGF0YV9wYXJ0aXRpb25zIChzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnBwLFxuIFx0XHRwYXJ0X251bSsrO1xuIFx0fVxuIFxuLVx0c2VxX2J1Zl9wdXRzKFx1MDAyNnBwLVx1MDAzZXBwX2J1ZiwgXCJcXG5cIik7XG4rXHRzZXFfYnVmX3B1dGMoXHUwMDI2cHAtXHUwMDNlcHBfYnVmLCAnXFxuJyk7XG4gXHRyZXR1cm4gdHJ1ZTtcbiB9XG4gXG5kaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy9tYWMuYyBiL2Jsb2NrL3BhcnRpdGlvbnMvbWFjLmNcbmluZGV4IGRmMDNjYTQyOGUxNTc0Li5iYjU3MGI1YTZlYWFiMiAxMDA2NDRcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvbWFjLmNcbisrKyBiL2Jsb2NrL3BhcnRpdGlvbnMvbWFjLmNcbkBAIC0xNTIsNiArMTUyLDYgQEAgaW50IG1hY19wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcbiAjZW5kaWZcbiBcbiBcdHB1dF9kZXZfc2VjdG9yKHNlY3QpO1xuLVx0c2VxX2J1Zl9wdXRzKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgXCJcXG5cIik7XG4rXHRzZXFfYnVmX3B1dGMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCAnXFxuJyk7XG4gXHRyZXR1cm4gMTtcbiB9XG5kaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy9tc2Rvcy5jIGIvYmxvY2svcGFydGl0aW9ucy9tc2Rvcy5jXG5pbmRleCAyMDBlYTUzZWE2YTJjOC4uNGE5NjU0MWY1MzUxNWUgMTAwNjQ0XG4tLS0gYS9ibG9jay9wYXJ0aXRpb25zL21zZG9zLmNcbisrKyBiL2Jsb2NrL3BhcnRpdGlvbnMvbXNkb3MuY1xuQEAgLTYwOCw3ICs2MDgsNyBAQCBpbnQgbXNkb3NfcGFydGl0aW9uKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpXG4gXHRcdFx0ZmIgPSAoc3RydWN0IGZhdF9ib290X3NlY3RvciAqKSBkYXRhO1xuIFx0XHRcdGlmIChzbG90ID09IDEgXHUwMDI2XHUwMDI2IGZiLVx1MDAzZXJlc2VydmVkIFx1MDAyNlx1MDAyNiBmYi1cdTAwM2VmYXRzXG4gXHRcdFx0XHRcdTAwMjZcdTAwMjYgZmF0X3ZhbGlkX21lZGlhKGZiLVx1MDAzZW1lZGlhKSkge1xuLVx0XHRcdFx0c2VxX2J1Zl9wdXRzKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgXCJcXG5cIik7XG4rXHRcdFx0XHRzZXFfYnVmX3B1dGMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCAnXFxuJyk7XG4gXHRcdFx0XHRwdXRfZGV2X3NlY3RvcihzZWN0KTtcbiBcdFx0XHRcdHJldHVybiAxO1xuIFx0XHRcdH0gZWxzZSB7XG5AQCAtNjcyLDcgKzY3Miw3IEBAIGludCBtc2Rvc19wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcbiBcdFx0XHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcIltFWkRdXCIpO1xuIFx0fVxuIFxuLVx0c2VxX2J1Zl9wdXRzKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgXCJcXG5cIik7XG4rXHRzZXFfYnVmX3B1dGMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCAnXFxuJyk7XG4gXG4gXHQvKiBzZWNvbmQgcGFzcyAtIG91dHB1dCBmb3IgZWFjaCBvbiBhIHNlcGFyYXRlIGxpbmUgKi9cbiBcdHAgPSAoc3RydWN0IG1zZG9zX3BhcnRpdGlvbiAqKSAoMHgxYmUgKyBkYXRhKTtcbmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL29mLmMgYi9ibG9jay9wYXJ0aXRpb25zL29mLmNcbmluZGV4IDUzNjY0ZWEwNmI2NTQwLi43ODAzZTZmNGVjZGQ5OCAxMDA2NDRcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvb2YuY1xuKysrIGIvYmxvY2svcGFydGl0aW9ucy9vZi5jXG5AQCAtMTA0LDcgKzEwNCw3IEBAIGludCBvZl9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcbiBcdFx0c2xvdCsrO1xuIFx0fVxuIFxuLVx0c2VxX2J1Zl9wdXRzKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgXCJcXG5cIik7XG4rXHRzZXFfYnVmX3B1dGMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCAnXFxuJyk7XG4gXG4gXHRvZl9ub2RlX3B1dChwYXJ0aXRpb25zX25wKTtcbiBcdHJldHVybiAxO1xuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvb3NmLmMgYi9ibG9jay9wYXJ0aXRpb25zL29zZi5jXG5pbmRleCAyYTY5MjU4NGRiYTkxYS4uNmY4M2Q0NzU5YTVkNGIgMTAwNjQ0XG4tLS0gYS9ibG9jay9wYXJ0aXRpb25zL29zZi5jXG4rKysgYi9ibG9jay9wYXJ0aXRpb25zL29zZi5jXG5AQCAtODEsNyArODEsNyBAQCBpbnQgb3NmX3BhcnRpdGlvbihzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKVxuIFx0XHRcdFx0bGUzMl90b19jcHUocGFydGl0aW9uLVx1MDAzZXBfc2l6ZSkpO1xuIFx0XHRzbG90Kys7XG4gXHR9XG4tXHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcIlxcblwiKTtcbitcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICdcXG4nKTtcbiBcdHB1dF9kZXZfc2VjdG9yKHNlY3QpO1xuIFx0cmV0dXJuIDE7XG4gfVxuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvc2dpLmMgYi9ibG9jay9wYXJ0aXRpb25zL3NnaS5jXG5pbmRleCAyMzgzY2E2M2NkNjY0NS4uZjc0M2UzNTgzNDE3NTggMTAwNjQ0XG4tLS0gYS9ibG9jay9wYXJ0aXRpb25zL3NnaS5jXG4rKysgYi9ibG9jay9wYXJ0aXRpb25zL3NnaS5jXG5AQCAtNzksNyArNzksNyBAQCBpbnQgc2dpX3BhcnRpdGlvbihzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKVxuIFx0XHR9XG4gXHRcdHNsb3QrKztcbiBcdH1cbi1cdHNlcV9idWZfcHV0cyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsIFwiXFxuXCIpO1xuK1x0c2VxX2J1Zl9wdXRjKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgJ1xcbicpO1xuIFx0cHV0X2Rldl9zZWN0b3Ioc2VjdCk7XG4gXHRyZXR1cm4gMTtcbiB9XG5kaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy9zdW4uYyBiL2Jsb2NrL3BhcnRpdGlvbnMvc3VuLmNcbmluZGV4IDkyYzY0NWZjZDJlMDliLi5jNzFiYWQ3OGYzNGFmMCAxMDA2NDRcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvc3VuLmNcbisrKyBiL2Jsb2NrL3BhcnRpdGlvbnMvc3VuLmNcbkBAIC0xMjEsNyArMTIxLDcgQEAgaW50IHN1bl9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcbiBcdFx0fVxuIFx0XHRzbG90Kys7XG4gXHR9XG4tXHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcIlxcblwiKTtcbitcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICdcXG4nKTtcbiBcdHB1dF9kZXZfc2VjdG9yKHNlY3QpO1xuIFx0cmV0dXJuIDE7XG4gfVxuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvc3lzdjY4LmMgYi9ibG9jay9wYXJ0aXRpb25zL3N5c3Y2OC5jXG5pbmRleCA0NzBlMGY5ZGU3YmUzOC4uMzFkMzQ4YWMyZGZiM2UgMTAwNjQ0XG4tLS0gYS9ibG9jay9wYXJ0aXRpb25zL3N5c3Y2OC5jXG4rKysgYi9ibG9jay9wYXJ0aXRpb25zL3N5c3Y2OC5jXG5AQCAtODYsNyArODYsNyBAQCBpbnQgc3lzdjY4X3BhcnRpdGlvbihzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKVxuIFx0XHR9XG4gXHRcdHNsb3QrKztcbiBcdH1cbi1cdHNlcV9idWZfcHV0cyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsIFwiXFxuXCIpO1xuK1x0c2VxX2J1Zl9wdXRjKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgJ1xcbicpO1xuIFx0cHV0X2Rldl9zZWN0b3Ioc2VjdCk7XG4gXHRyZXR1cm4gMTtcbiB9XG5kaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy91bHRyaXguYyBiL2Jsb2NrL3BhcnRpdGlvbnMvdWx0cml4LmNcbmluZGV4IGI0YjlkZGM1N2E1ZDZmLi44YWM0MmZkYTI1ZDE2MSAxMDA2NDRcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvdWx0cml4LmNcbisrKyBiL2Jsb2NrL3BhcnRpdGlvbnMvdWx0cml4LmNcbkBAIC0zOSw3ICszOSw3IEBAIGludCB1bHRyaXhfcGFydGl0aW9uKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpXG4gXHRcdFx0XHRcdCAgICAgIGxhYmVsLVx1MDAzZXB0X3BhcnRbaV0ucGlfYmxrb2ZmLFxuIFx0XHRcdFx0XHQgICAgICBsYWJlbC1cdTAwM2VwdF9wYXJ0W2ldLnBpX25ibG9ja3MpO1xuIFx0XHRwdXRfZGV2X3NlY3RvcihzZWN0KTtcbi1cdFx0c2VxX2J1Zl9wdXRzKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgXCJcXG5cIik7XG4rXHRcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICdcXG4nKTtcbiBcdFx0cmV0dXJuIDE7XG4gXHR9IGVsc2Uge1xuIFx0XHRwdXRfZGV2X3NlY3RvcihzZWN0KTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA3OjQ3OjA4LjM3NDE0NDgwOFoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUzMDc2NTc4NzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgUHJvcG9zZWQgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGJlZW4gcHJlc2VudGVkIHdpdGggYSBwYXRjaCB0YXJnZXRpbmcgc29tZSBwYXJ0aXRpb24gcGFyc2VycyB3aXRoaW4gYGJsb2NrL3BhcnRpdGlvbnMvYC4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSByZXZvbHZlcyBhcm91bmQgcmVwbGFjaW5nIGluc3RhbmNlcyBvZiBgc2VxX2J1Zl9wdXRzKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgXCJcXG5cIik7YCB3aXRoIGBzZXFfYnVmX3B1dGMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCAnXFxuJyk7YC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgdGhpcyBpcyBwdXJlbHkgY29zbWV0aWMg4oCTIGFuIG9wdGltaXphdGlvbi4gSXQncyBub3QgbW9kaWZ5aW5nIHRoZSBwcm9ncmFtJ3MgbG9naWMgb3IgYWx0ZXJpbmcgYW55IGV4ZWN1dGlvbiBwYXRocywganVzdCBzd2l0Y2hpbmcgZnJvbSBwcmludGluZyBhIHN0cmluZyBsaXRlcmFsIG5ld2xpbmUgdG8gcHJpbnRpbmcgdGhlIG5ld2xpbmUgY2hhcmFjdGVyIGRpcmVjdGx5LiBUaGVyZWZvcmUsIEkgZG9uJ3Qgc2VlIGFueSBpbW1lZGlhdGUgdmFsdWUgaW4gZnV6emluZyB0aGlzIHNwZWNpZmljIGNoYW5nZS5cblxuVG8gYmUgYWJzb2x1dGVseSBjZXJ0YWluLCBJJ3ZlIGp1c3QgZG91YmxlLWNoZWNrZWQgdGhlIHVuZGVybHlpbmcgZnVuY3Rpb25zLiBgc2VxX2J1Zl9wdXRzYCBpbnRlcm5hbGx5IGNhbGN1bGF0ZXMgdGhlIHN0cmluZyBsZW5ndGggYW5kIHRoZW4gY2FsbHMgYHNlcV9idWZfcHV0bWVtYC4gYHNlcV9idWZfcHV0Y2AsIG9uIHRoZSBvdGhlciBoYW5kLCBkaXJlY3RseSBwbGFjZXMgdGhlIGNoYXJhY3RlciBpbiB0aGUgYnVmZmVyLiAgQ3J1Y2lhbGx5LCB0aGUgbmV0IGVmZmVjdCBvbiB0aGUgYnVmZmVyJ3MgY29udGVudHMgd2lsbCBiZSAqaWRlbnRpY2FsKi4gVGhpcyBjb25maXJtcyBpdDsgaXQgaXMgYSBtaW5vciBvcHRpbWl6YXRpb24uXG5cblRoZXJlZm9yZSwgSSdtIGdvaW5nIHRvIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTUxOCwiT3V0cHV0VG9rZW5zIjo4NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5NiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA3OjQ3OjEzLjY4MTgwNjM1MVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzI5NDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSByZXBsYWNlcyBgc2VxX2J1Zl9wdXRzYCB3aXRoIGBzZXFfYnVmX3B1dGNgIGZvciBwcmludGluZyBhIHNpbmdsZSBuZXdsaW5lIGNoYXJhY3RlciBpbiB2YXJpb3VzIHBhcnRpdGlvbiBwYXJzZXJzLiBUaGlzIGlzIGEgbWlub3Igb3B0aW1pemF0aW9uL2NsZWFudXAgdGhhdCBkb2VzIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgdGhlIGV4ZWN1dGlvbiBmbG93IG9yIGxvZ2ljIG9mIHRoZSBrZXJuZWwuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IHJlcGxhY2VzIGBzZXFfYnVmX3B1dHNgIHdpdGggYHNlcV9idWZfcHV0Y2AgZm9yIHByaW50aW5nIGEgc2luZ2xlIG5ld2xpbmUgY2hhcmFjdGVyIGluIHZhcmlvdXMgcGFydGl0aW9uIHBhcnNlcnMuIFRoaXMgaXMgYSBtaW5vciBvcHRpbWl6YXRpb24vY2xlYW51cCB0aGF0IGRvZXMgbm90IGZ1bmN0aW9uYWxseSBhbHRlciB0aGUgZXhlY3V0aW9uIGZsb3cgb3IgbG9naWMgb2YgdGhlIGtlcm5lbC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },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-workflowgtf2v[0].run-triage(0) Phase: Succeeded StartedAt: 2026-06-29 07:33:23 +0000 UTC FinishedAt: 2026-06-29 07:47:14 +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+CgkJCTx0ZD4yMDI2LzA2LzI5IDA3OjQ3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgcmVwbGFjZXMgYHNlcV9idWZfcHV0c2Agd2l0aCBgc2VxX2J1Zl9wdXRjYCBmb3IgcHJpbnRpbmcgYSBzaW5nbGUgbmV3bGluZSBjaGFyYWN0ZXIgaW4gdmFyaW91cyBwYXJ0aXRpb24gcGFyc2Vycy4gVGhpcyBpcyBhIG1pbm9yIG9wdGltaXphdGlvbi9jbGVhbnVwIHRoYXQgZG9lcyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIHRoZSBleGVjdXRpb24gZmxvdyBvciBsb2dpYyBvZiB0aGUga2VybmVsLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwNzo0NzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGRkNmUyMjUyNzVmYzU2MWI1N2YzODliYmU3ZWVlNjBlMzhhYzVmNDhcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEp1biAyOSAwNzo0NzowNiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL2Fjb3JuLmMgYi9ibG9jay9wYXJ0aXRpb25zL2Fjb3JuLmNcbmluZGV4IDA2N2Q2YTI3YTNiZGYzLi5jNDgyNTA1MTc0NDgxOCAxMDA2NDRcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvYWNvcm4uY1xuJiM0MzsmIzQzOyYjNDM7IGIvYmxvY2svcGFydGl0aW9ucy9hY29ybi5jXG5AQCAtMjkwLDcgJiM0MzsyOTAsNyBAQCBpbnQgYWRmc3BhcnRfY2hlY2tfQURGUyhzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKVxuIFx0XHRcdGJyZWFrO1xuIFx0XHR9XG4gXHR9XG4tXHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcJiMzNDtcXG5cJiMzNDspO1xuJiM0MztcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICYjMzk7XFxuJiMzOTspO1xuIFx0cmV0dXJuIDE7XG4gfVxuICNlbmRpZlxuQEAgLTM5Nyw3ICYjNDM7Mzk3LDcgQEAgaW50IGFkZnNwYXJ0X2NoZWNrX0lDUyhzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKVxuIFx0fVxuIFxuIFx0cHV0X2Rldl9zZWN0b3Ioc2VjdCk7XG4tXHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcJiMzNDtcXG5cJiMzNDspO1xuJiM0MztcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICYjMzk7XFxuJiMzOTspO1xuIFx0cmV0dXJuIDE7XG4gfVxuICNlbmRpZlxuQEAgLTQ2OCw3ICYjNDM7NDY4LDcgQEAgaW50IGFkZnNwYXJ0X2NoZWNrX1BPV0VSVEVDKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpXG4gXHR9XG4gXG4gXHRwdXRfZGV2X3NlY3RvcihzZWN0KTtcbi1cdHNlcV9idWZfcHV0cyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsIFwmIzM0O1xcblwmIzM0Oyk7XG4mIzQzO1x0c2VxX2J1Zl9wdXRjKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgJiMzOTtcXG4mIzM5Oyk7XG4gXHRyZXR1cm4gMTtcbiB9XG4gI2VuZGlmXG5AQCAtNTM5LDcgJiM0Mzs1MzksNyBAQCBpbnQgYWRmc3BhcnRfY2hlY2tfRUVTT1goc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcbiBcbiBcdFx0c2l6ZSA9IGdldF9jYXBhY2l0eShzdGF0ZS1cdTAwM2VkaXNrKTtcbiBcdFx0cHV0X3BhcnRpdGlvbihzdGF0ZSwgc2xvdCYjNDM7JiM0MzssIHN0YXJ0LCBzaXplIC0gc3RhcnQpO1xuLVx0XHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcJiMzNDtcXG5cJiMzNDspO1xuJiM0MztcdFx0c2VxX2J1Zl9wdXRjKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgJiMzOTtcXG4mIzM5Oyk7XG4gXHR9XG4gXG4gXHRyZXR1cm4gaSA/IDEgOiAwO1xuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvYW1pZ2EuYyBiL2Jsb2NrL3BhcnRpdGlvbnMvYW1pZ2EuY1xuaW5kZXggODMyNTA0NmExNGViOTUuLmEyNzJmNjQ0NTBlY2M4IDEwMDY0NFxuLS0tIGEvYmxvY2svcGFydGl0aW9ucy9hbWlnYS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9ibG9jay9wYXJ0aXRpb25zL2FtaWdhLmNcbkBAIC0xOTQsNyAmIzQzOzE5NCw3IEBAIGludCBhbWlnYV9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcbiBcdFx0fVxuIFx0XHRyZXMgPSAxO1xuIFx0fVxuLVx0c2VxX2J1Zl9wdXRzKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgXCYjMzQ7XFxuXCYjMzQ7KTtcbiYjNDM7XHRzZXFfYnVmX3B1dGMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCAmIzM5O1xcbiYjMzk7KTtcbiBcbiByZGJfZG9uZTpcbiBcdHJldHVybiByZXM7XG5kaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy9hdGFyaS5jIGIvYmxvY2svcGFydGl0aW9ucy9hdGFyaS5jXG5pbmRleCAyNDM4ZDE0NDhmMzgyYy4uNTg4NjNjMWEyNzIzODUgMTAwNjQ0XG4tLS0gYS9ibG9jay9wYXJ0aXRpb25zL2F0YXJpLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2Jsb2NrL3BhcnRpdGlvbnMvYXRhcmkuY1xuQEAgLTE1MCw3ICYjNDM7MTUwLDcgQEAgaW50IGF0YXJpX3BhcnRpdGlvbihzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKVxuICNlbmRpZlxuIFx0cHV0X2Rldl9zZWN0b3Ioc2VjdCk7XG4gXG4tXHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcJiMzNDtcXG5cJiMzNDspO1xuJiM0MztcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICYjMzk7XFxuJiMzOTspO1xuIFxuIFx0cmV0dXJuIDE7XG4gfVxuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvY21kbGluZS5jIGIvYmxvY2svcGFydGl0aW9ucy9jbWRsaW5lLmNcbmluZGV4IDRmZDUyZWQxNTRiNGU4Li41MDA3NWVjY2FhZGU0NCAxMDA2NDRcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvY21kbGluZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9ibG9jay9wYXJ0aXRpb25zL2NtZGxpbmUuY1xuQEAgLTM3Nyw3ICYjNDM7Mzc3LDcgQEAgaW50IGNtZGxpbmVfcGFydGl0aW9uKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpXG4gXHRjbWRsaW5lX3BhcnRzX3NldChwYXJ0cywgZGlza19zaXplLCBzdGF0ZSk7XG4gXHRjbWRsaW5lX3BhcnRzX3ZlcmlmaWVyKDEsIHN0YXRlKTtcbiBcbi1cdHNlcV9idWZfcHV0cyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsIFwmIzM0O1xcblwmIzM0Oyk7XG4mIzQzO1x0c2VxX2J1Zl9wdXRjKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgJiMzOTtcXG4mIzM5Oyk7XG4gXG4gXHRyZXR1cm4gMTtcbiB9XG5kaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy9lZmkuYyBiL2Jsb2NrL3BhcnRpdGlvbnMvZWZpLmNcbmluZGV4IDk4NjVkNTkwOTNmYWMwLi42NTBiOTFlZmM4MzJhZiAxMDA2NDRcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvZWZpLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2Jsb2NrL3BhcnRpdGlvbnMvZWZpLmNcbkBAIC03NTEsNiAmIzQzOzc1MSw2IEBAIGludCBlZmlfcGFydGl0aW9uKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpXG4gXHR9XG4gXHRrZnJlZShwdGVzKTtcbiBcdGtmcmVlKGdwdCk7XG4tXHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcJiMzNDtcXG5cJiMzNDspO1xuJiM0MztcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICYjMzk7XFxuJiMzOTspO1xuIFx0cmV0dXJuIDE7XG4gfVxuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvaWJtLmMgYi9ibG9jay9wYXJ0aXRpb25zL2libS5jXG5pbmRleCA1NDA0N2U3MjJhOWQ5NC4uYTU3ZGUzYjE5MmZjMjEgMTAwNjQ0XG4tLS0gYS9ibG9jay9wYXJ0aXRpb25zL2libS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9ibG9jay9wYXJ0aXRpb25zL2libS5jXG5AQCAtMjE3LDcgJiM0MzsyMTcsNyBAQCBzdGF0aWMgaW50IGZpbmRfdm9sMV9wYXJ0aXRpb25zKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUsXG4gXHRcdGJsayYjNDM7JiM0Mzs7XG4gXHRcdGRhdGEgPSByZWFkX3BhcnRfc2VjdG9yKHN0YXRlLCBibGsgKiBzZWNwZXJibGssIFx1MDAyNnNlY3QpO1xuIFx0fVxuLVx0c2VxX2J1Zl9wdXRzKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgXCYjMzQ7XFxuXCYjMzQ7KTtcbiYjNDM7XHRzZXFfYnVmX3B1dGMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCAmIzM5O1xcbiYjMzk7KTtcbiBcbiBcdGlmICghZGF0YSlcbiBcdFx0cmV0dXJuIC0xO1xuQEAgLTI1NCw3ICYjNDM7MjU0LDcgQEAgc3RhdGljIGludCBmaW5kX2xueDFfcGFydGl0aW9ucyhzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlLFxuIFx0XHRzaXplID0gbnJfc2VjdG9ycztcbiBcdFx0aWYgKHNpemUgIT0gZ2VvX3NpemUpIHtcbiBcdFx0XHRpZiAoIWluZm8pIHtcbi1cdFx0XHRcdHNlcV9idWZfcHV0cyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsIFwmIzM0O1xcblwmIzM0Oyk7XG4mIzQzO1x0XHRcdFx0c2VxX2J1Zl9wdXRjKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgJiMzOTtcXG4mIzM5Oyk7XG4gXHRcdFx0XHRyZXR1cm4gMTtcbiBcdFx0XHR9XG4gXHRcdFx0aWYgKCFzdHJjbXAoaW5mby1cdTAwM2V0eXBlLCBcJiMzNDtFQ0tEXCYjMzQ7KSlcbkBAIC0yNjYsNyAmIzQzOzI2Niw3IEBAIHN0YXRpYyBpbnQgZmluZF9sbngxX3BhcnRpdGlvbnMoc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSxcbiBcdC8qIGZpcnN0IGFuZCBvbmx5IHBhcnRpdGlvbiBzdGFydHMgaW4gdGhlIGZpcnN0IGJsb2NrIGFmdGVyIHRoZSBsYWJlbCAqL1xuIFx0b2Zmc2V0ID0gbGFiZWxzZWN0ICYjNDM7IHNlY3BlcmJsaztcbiBcdHB1dF9wYXJ0aXRpb24oc3RhdGUsIDEsIG9mZnNldCwgc2l6ZSAtIG9mZnNldCk7XG4tXHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcJiMzNDtcXG5cJiMzNDspO1xuJiM0MztcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICYjMzk7XFxuJiMzOTspO1xuIFx0cmV0dXJuIDE7XG4gfVxuIFxuQEAgLTMwNyw3ICYjNDM7MzA3LDcgQEAgc3RhdGljIGludCBmaW5kX2NtczFfcGFydGl0aW9ucyhzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlLFxuIFx0fVxuIFxuIFx0cHV0X3BhcnRpdGlvbihzdGF0ZSwgMSwgb2Zmc2V0LCBzaXplLW9mZnNldCk7XG4tXHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcJiMzNDtcXG5cJiMzNDspO1xuJiM0MztcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICYjMzk7XFxuJiMzOTspO1xuIFx0cmV0dXJuIDE7XG4gfVxuIFxuQEAgLTM4OCw3ICYjNDM7Mzg4LDcgQEAgaW50IGlibV9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcbiBcdFx0XHRzaXplID0gbnJfc2VjdG9ycztcbiBcdFx0XHRvZmZzZXQgPSAoaW5mby1cdTAwM2VsYWJlbF9ibG9jayAmIzQzOyAxKSAqIChibG9ja3NpemUgXHUwMDNlXHUwMDNlIDkpO1xuIFx0XHRcdHB1dF9wYXJ0aXRpb24oc3RhdGUsIDEsIG9mZnNldCwgc2l6ZS1vZmZzZXQpO1xuLVx0XHRcdHNlcV9idWZfcHV0cyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsIFwmIzM0O1xcblwmIzM0Oyk7XG4mIzQzO1x0XHRcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICYjMzk7XFxuJiMzOTspO1xuIFx0XHR9XG4gXHR9IGVsc2VcbiBcdFx0cmVzID0gMDtcbmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL2thcm1hLmMgYi9ibG9jay9wYXJ0aXRpb25zL2thcm1hLmNcbmluZGV4IGE0ZTNjNTA1MDE3NzY3Li5iMGFiODQxNjk1MzhlOSAxMDA2NDRcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMva2FybWEuY1xuJiM0MzsmIzQzOyYjNDM7IGIvYmxvY2svcGFydGl0aW9ucy9rYXJtYS5jXG5AQCAtNTMsNyAmIzQzOzUzLDcgQEAgaW50IGthcm1hX3BhcnRpdGlvbihzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKVxuIFx0XHR9XG4gXHRcdHNsb3QmIzQzOyYjNDM7O1xuIFx0fVxuLVx0c2VxX2J1Zl9wdXRzKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgXCYjMzQ7XFxuXCYjMzQ7KTtcbiYjNDM7XHRzZXFfYnVmX3B1dGMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCAmIzM5O1xcbiYjMzk7KTtcbiBcdHB1dF9kZXZfc2VjdG9yKHNlY3QpO1xuIFx0cmV0dXJuIDE7XG4gfVxuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvbGRtLmMgYi9ibG9jay9wYXJ0aXRpb25zL2xkbS5jXG5pbmRleCBjMGJkY2FlNThhM2VlMC4uZDFiYmM5ZmIwOWY5MzkgMTAwNjQ0XG4tLS0gYS9ibG9jay9wYXJ0aXRpb25zL2xkbS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9ibG9jay9wYXJ0aXRpb25zL2xkbS5jXG5AQCAtNTk3LDcgJiM0Mzs1OTcsNyBAQCBzdGF0aWMgYm9vbCBsZG1fY3JlYXRlX2RhdGFfcGFydGl0aW9ucyAoc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpwcCxcbiBcdFx0cGFydF9udW0mIzQzOyYjNDM7O1xuIFx0fVxuIFxuLVx0c2VxX2J1Zl9wdXRzKFx1MDAyNnBwLVx1MDAzZXBwX2J1ZiwgXCYjMzQ7XFxuXCYjMzQ7KTtcbiYjNDM7XHRzZXFfYnVmX3B1dGMoXHUwMDI2cHAtXHUwMDNlcHBfYnVmLCAmIzM5O1xcbiYjMzk7KTtcbiBcdHJldHVybiB0cnVlO1xuIH1cbiBcbmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL21hYy5jIGIvYmxvY2svcGFydGl0aW9ucy9tYWMuY1xuaW5kZXggZGYwM2NhNDI4ZTE1NzQuLmJiNTcwYjVhNmVhYWIyIDEwMDY0NFxuLS0tIGEvYmxvY2svcGFydGl0aW9ucy9tYWMuY1xuJiM0MzsmIzQzOyYjNDM7IGIvYmxvY2svcGFydGl0aW9ucy9tYWMuY1xuQEAgLTE1Miw2ICYjNDM7MTUyLDYgQEAgaW50IG1hY19wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcbiAjZW5kaWZcbiBcbiBcdHB1dF9kZXZfc2VjdG9yKHNlY3QpO1xuLVx0c2VxX2J1Zl9wdXRzKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgXCYjMzQ7XFxuXCYjMzQ7KTtcbiYjNDM7XHRzZXFfYnVmX3B1dGMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCAmIzM5O1xcbiYjMzk7KTtcbiBcdHJldHVybiAxO1xuIH1cbmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL21zZG9zLmMgYi9ibG9jay9wYXJ0aXRpb25zL21zZG9zLmNcbmluZGV4IDIwMGVhNTNlYTZhMmM4Li40YTk2NTQxZjUzNTE1ZSAxMDA2NDRcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvbXNkb3MuY1xuJiM0MzsmIzQzOyYjNDM7IGIvYmxvY2svcGFydGl0aW9ucy9tc2Rvcy5jXG5AQCAtNjA4LDcgJiM0Mzs2MDgsNyBAQCBpbnQgbXNkb3NfcGFydGl0aW9uKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpXG4gXHRcdFx0ZmIgPSAoc3RydWN0IGZhdF9ib290X3NlY3RvciAqKSBkYXRhO1xuIFx0XHRcdGlmIChzbG90ID09IDEgXHUwMDI2XHUwMDI2IGZiLVx1MDAzZXJlc2VydmVkIFx1MDAyNlx1MDAyNiBmYi1cdTAwM2VmYXRzXG4gXHRcdFx0XHRcdTAwMjZcdTAwMjYgZmF0X3ZhbGlkX21lZGlhKGZiLVx1MDAzZW1lZGlhKSkge1xuLVx0XHRcdFx0c2VxX2J1Zl9wdXRzKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgXCYjMzQ7XFxuXCYjMzQ7KTtcbiYjNDM7XHRcdFx0XHRzZXFfYnVmX3B1dGMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCAmIzM5O1xcbiYjMzk7KTtcbiBcdFx0XHRcdHB1dF9kZXZfc2VjdG9yKHNlY3QpO1xuIFx0XHRcdFx0cmV0dXJuIDE7XG4gXHRcdFx0fSBlbHNlIHtcbkBAIC02NzIsNyAmIzQzOzY3Miw3IEBAIGludCBtc2Rvc19wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcbiBcdFx0XHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcJiMzNDtbRVpEXVwmIzM0Oyk7XG4gXHR9XG4gXG4tXHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcJiMzNDtcXG5cJiMzNDspO1xuJiM0MztcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICYjMzk7XFxuJiMzOTspO1xuIFxuIFx0Lyogc2Vjb25kIHBhc3MgLSBvdXRwdXQgZm9yIGVhY2ggb24gYSBzZXBhcmF0ZSBsaW5lICovXG4gXHRwID0gKHN0cnVjdCBtc2Rvc19wYXJ0aXRpb24gKikgKDB4MWJlICYjNDM7IGRhdGEpO1xuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvb2YuYyBiL2Jsb2NrL3BhcnRpdGlvbnMvb2YuY1xuaW5kZXggNTM2NjRlYTA2YjY1NDAuLjc4MDNlNmY0ZWNkZDk4IDEwMDY0NFxuLS0tIGEvYmxvY2svcGFydGl0aW9ucy9vZi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9ibG9jay9wYXJ0aXRpb25zL29mLmNcbkBAIC0xMDQsNyAmIzQzOzEwNCw3IEBAIGludCBvZl9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcbiBcdFx0c2xvdCYjNDM7JiM0Mzs7XG4gXHR9XG4gXG4tXHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcJiMzNDtcXG5cJiMzNDspO1xuJiM0MztcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICYjMzk7XFxuJiMzOTspO1xuIFxuIFx0b2Zfbm9kZV9wdXQocGFydGl0aW9uc19ucCk7XG4gXHRyZXR1cm4gMTtcbmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL29zZi5jIGIvYmxvY2svcGFydGl0aW9ucy9vc2YuY1xuaW5kZXggMmE2OTI1ODRkYmE5MWEuLjZmODNkNDc1OWE1ZDRiIDEwMDY0NFxuLS0tIGEvYmxvY2svcGFydGl0aW9ucy9vc2YuY1xuJiM0MzsmIzQzOyYjNDM7IGIvYmxvY2svcGFydGl0aW9ucy9vc2YuY1xuQEAgLTgxLDcgJiM0Mzs4MSw3IEBAIGludCBvc2ZfcGFydGl0aW9uKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpXG4gXHRcdFx0XHRsZTMyX3RvX2NwdShwYXJ0aXRpb24tXHUwMDNlcF9zaXplKSk7XG4gXHRcdHNsb3QmIzQzOyYjNDM7O1xuIFx0fVxuLVx0c2VxX2J1Zl9wdXRzKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgXCYjMzQ7XFxuXCYjMzQ7KTtcbiYjNDM7XHRzZXFfYnVmX3B1dGMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCAmIzM5O1xcbiYjMzk7KTtcbiBcdHB1dF9kZXZfc2VjdG9yKHNlY3QpO1xuIFx0cmV0dXJuIDE7XG4gfVxuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvc2dpLmMgYi9ibG9jay9wYXJ0aXRpb25zL3NnaS5jXG5pbmRleCAyMzgzY2E2M2NkNjY0NS4uZjc0M2UzNTgzNDE3NTggMTAwNjQ0XG4tLS0gYS9ibG9jay9wYXJ0aXRpb25zL3NnaS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9ibG9jay9wYXJ0aXRpb25zL3NnaS5jXG5AQCAtNzksNyAmIzQzOzc5LDcgQEAgaW50IHNnaV9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcbiBcdFx0fVxuIFx0XHRzbG90JiM0MzsmIzQzOztcbiBcdH1cbi1cdHNlcV9idWZfcHV0cyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsIFwmIzM0O1xcblwmIzM0Oyk7XG4mIzQzO1x0c2VxX2J1Zl9wdXRjKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgJiMzOTtcXG4mIzM5Oyk7XG4gXHRwdXRfZGV2X3NlY3RvcihzZWN0KTtcbiBcdHJldHVybiAxO1xuIH1cbmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL3N1bi5jIGIvYmxvY2svcGFydGl0aW9ucy9zdW4uY1xuaW5kZXggOTJjNjQ1ZmNkMmUwOWIuLmM3MWJhZDc4ZjM0YWYwIDEwMDY0NFxuLS0tIGEvYmxvY2svcGFydGl0aW9ucy9zdW4uY1xuJiM0MzsmIzQzOyYjNDM7IGIvYmxvY2svcGFydGl0aW9ucy9zdW4uY1xuQEAgLTEyMSw3ICYjNDM7MTIxLDcgQEAgaW50IHN1bl9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcbiBcdFx0fVxuIFx0XHRzbG90JiM0MzsmIzQzOztcbiBcdH1cbi1cdHNlcV9idWZfcHV0cyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsIFwmIzM0O1xcblwmIzM0Oyk7XG4mIzQzO1x0c2VxX2J1Zl9wdXRjKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgJiMzOTtcXG4mIzM5Oyk7XG4gXHRwdXRfZGV2X3NlY3RvcihzZWN0KTtcbiBcdHJldHVybiAxO1xuIH1cbmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL3N5c3Y2OC5jIGIvYmxvY2svcGFydGl0aW9ucy9zeXN2NjguY1xuaW5kZXggNDcwZTBmOWRlN2JlMzguLjMxZDM0OGFjMmRmYjNlIDEwMDY0NFxuLS0tIGEvYmxvY2svcGFydGl0aW9ucy9zeXN2NjguY1xuJiM0MzsmIzQzOyYjNDM7IGIvYmxvY2svcGFydGl0aW9ucy9zeXN2NjguY1xuQEAgLTg2LDcgJiM0Mzs4Niw3IEBAIGludCBzeXN2NjhfcGFydGl0aW9uKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpXG4gXHRcdH1cbiBcdFx0c2xvdCYjNDM7JiM0Mzs7XG4gXHR9XG4tXHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcJiMzNDtcXG5cJiMzNDspO1xuJiM0MztcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICYjMzk7XFxuJiMzOTspO1xuIFx0cHV0X2Rldl9zZWN0b3Ioc2VjdCk7XG4gXHRyZXR1cm4gMTtcbiB9XG5kaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy91bHRyaXguYyBiL2Jsb2NrL3BhcnRpdGlvbnMvdWx0cml4LmNcbmluZGV4IGI0YjlkZGM1N2E1ZDZmLi44YWM0MmZkYTI1ZDE2MSAxMDA2NDRcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvdWx0cml4LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2Jsb2NrL3BhcnRpdGlvbnMvdWx0cml4LmNcbkBAIC0zOSw3ICYjNDM7MzksNyBAQCBpbnQgdWx0cml4X3BhcnRpdGlvbihzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKVxuIFx0XHRcdFx0XHQgICAgICBsYWJlbC1cdTAwM2VwdF9wYXJ0W2ldLnBpX2Jsa29mZixcbiBcdFx0XHRcdFx0ICAgICAgbGFiZWwtXHUwMDNlcHRfcGFydFtpXS5waV9uYmxvY2tzKTtcbiBcdFx0cHV0X2Rldl9zZWN0b3Ioc2VjdCk7XG4tXHRcdHNlcV9idWZfcHV0cyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsIFwmIzM0O1xcblwmIzM0Oyk7XG4mIzQzO1x0XHRzZXFfYnVmX3B1dGMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCAmIzM5O1xcbiYjMzk7KTtcbiBcdFx0cmV0dXJuIDE7XG4gXHR9IGVsc2Uge1xuIFx0XHRwdXRfZGV2X3NlY3RvcihzZWN0KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOSAwNzo0NzwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IHJlcGxhY2VzIGBzZXFfYnVmX3B1dHNgIHdpdGggYHNlcV9idWZfcHV0Y2AgZm9yIHByaW50aW5nIGEgc2luZ2xlIG5ld2xpbmUgY2hhcmFjdGVyIGluIHZhcmlvdXMgcGFydGl0aW9uIHBhcnNlcnMuIFRoaXMgaXMgYSBtaW5vciBvcHRpbWl6YXRpb24vY2xlYW51cCB0aGF0IGRvZXMgbm90IGZ1bmN0aW9uYWxseSBhbHRlciB0aGUgZXhlY3V0aW9uIGZsb3cgb3IgbG9naWMgb2YgdGhlIGtlcm5lbC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGRkNmUyMjUyNzVmYzU2MWI1N2YzODliYmU3ZWVlNjBlMzhhYzVmNDgKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEp1biAyOSAwNzo0NzowNiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvYWNvcm4uYyBiL2Jsb2NrL3BhcnRpdGlvbnMvYWNvcm4uYwppbmRleCAwNjdkNmEyN2EzYmRmMy4uYzQ4MjUwNTE3NDQ4MTggMTAwNjQ0Ci0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvYWNvcm4uYwomIzQzOyYjNDM7JiM0MzsgYi9ibG9jay9wYXJ0aXRpb25zL2Fjb3JuLmMKQEAgLTI5MCw3ICYjNDM7MjkwLDcgQEAgaW50IGFkZnNwYXJ0X2NoZWNrX0FERlMoc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSkKIAkJCWJyZWFrOwogCQl9CiAJfQotCXNlcV9idWZfcHV0cygmYW1wO3N0YXRlLSZndDtwcF9idWYsICYjMzQ7XG4mIzM0Oyk7CiYjNDM7CXNlcV9idWZfcHV0YygmYW1wO3N0YXRlLSZndDtwcF9idWYsICYjMzk7XG4mIzM5Oyk7CiAJcmV0dXJuIDE7CiB9CiAjZW5kaWYKQEAgLTM5Nyw3ICYjNDM7Mzk3LDcgQEAgaW50IGFkZnNwYXJ0X2NoZWNrX0lDUyhzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKQogCX0KIAogCXB1dF9kZXZfc2VjdG9yKHNlY3QpOwotCXNlcV9idWZfcHV0cygmYW1wO3N0YXRlLSZndDtwcF9idWYsICYjMzQ7XG4mIzM0Oyk7CiYjNDM7CXNlcV9idWZfcHV0YygmYW1wO3N0YXRlLSZndDtwcF9idWYsICYjMzk7XG4mIzM5Oyk7CiAJcmV0dXJuIDE7CiB9CiAjZW5kaWYKQEAgLTQ2OCw3ICYjNDM7NDY4LDcgQEAgaW50IGFkZnNwYXJ0X2NoZWNrX1BPV0VSVEVDKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpCiAJfQogCiAJcHV0X2Rldl9zZWN0b3Ioc2VjdCk7Ci0Jc2VxX2J1Zl9wdXRzKCZhbXA7c3RhdGUtJmd0O3BwX2J1ZiwgJiMzNDtcbiYjMzQ7KTsKJiM0MzsJc2VxX2J1Zl9wdXRjKCZhbXA7c3RhdGUtJmd0O3BwX2J1ZiwgJiMzOTtcbiYjMzk7KTsKIAlyZXR1cm4gMTsKIH0KICNlbmRpZgpAQCAtNTM5LDcgJiM0Mzs1MzksNyBAQCBpbnQgYWRmc3BhcnRfY2hlY2tfRUVTT1goc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSkKIAogCQlzaXplID0gZ2V0X2NhcGFjaXR5KHN0YXRlLSZndDtkaXNrKTsKIAkJcHV0X3BhcnRpdGlvbihzdGF0ZSwgc2xvdCYjNDM7JiM0MzssIHN0YXJ0LCBzaXplIC0gc3RhcnQpOwotCQlzZXFfYnVmX3B1dHMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM0O1xuJiMzNDspOwomIzQzOwkJc2VxX2J1Zl9wdXRjKCZhbXA7c3RhdGUtJmd0O3BwX2J1ZiwgJiMzOTtcbiYjMzk7KTsKIAl9CiAKIAlyZXR1cm4gaSA/IDEgOiAwOwpkaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy9hbWlnYS5jIGIvYmxvY2svcGFydGl0aW9ucy9hbWlnYS5jCmluZGV4IDgzMjUwNDZhMTRlYjk1Li5hMjcyZjY0NDUwZWNjOCAxMDA2NDQKLS0tIGEvYmxvY2svcGFydGl0aW9ucy9hbWlnYS5jCiYjNDM7JiM0MzsmIzQzOyBiL2Jsb2NrL3BhcnRpdGlvbnMvYW1pZ2EuYwpAQCAtMTk0LDcgJiM0MzsxOTQsNyBAQCBpbnQgYW1pZ2FfcGFydGl0aW9uKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpCiAJCX0KIAkJcmVzID0gMTsKIAl9Ci0Jc2VxX2J1Zl9wdXRzKCZhbXA7c3RhdGUtJmd0O3BwX2J1ZiwgJiMzNDtcbiYjMzQ7KTsKJiM0MzsJc2VxX2J1Zl9wdXRjKCZhbXA7c3RhdGUtJmd0O3BwX2J1ZiwgJiMzOTtcbiYjMzk7KTsKIAogcmRiX2RvbmU6CiAJcmV0dXJuIHJlczsKZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvYXRhcmkuYyBiL2Jsb2NrL3BhcnRpdGlvbnMvYXRhcmkuYwppbmRleCAyNDM4ZDE0NDhmMzgyYy4uNTg4NjNjMWEyNzIzODUgMTAwNjQ0Ci0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvYXRhcmkuYwomIzQzOyYjNDM7JiM0MzsgYi9ibG9jay9wYXJ0aXRpb25zL2F0YXJpLmMKQEAgLTE1MCw3ICYjNDM7MTUwLDcgQEAgaW50IGF0YXJpX3BhcnRpdGlvbihzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKQogI2VuZGlmCiAJcHV0X2Rldl9zZWN0b3Ioc2VjdCk7CiAKLQlzZXFfYnVmX3B1dHMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM0O1xuJiMzNDspOwomIzQzOwlzZXFfYnVmX3B1dGMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM5O1xuJiMzOTspOwogCiAJcmV0dXJuIDE7CiB9CmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL2NtZGxpbmUuYyBiL2Jsb2NrL3BhcnRpdGlvbnMvY21kbGluZS5jCmluZGV4IDRmZDUyZWQxNTRiNGU4Li41MDA3NWVjY2FhZGU0NCAxMDA2NDQKLS0tIGEvYmxvY2svcGFydGl0aW9ucy9jbWRsaW5lLmMKJiM0MzsmIzQzOyYjNDM7IGIvYmxvY2svcGFydGl0aW9ucy9jbWRsaW5lLmMKQEAgLTM3Nyw3ICYjNDM7Mzc3LDcgQEAgaW50IGNtZGxpbmVfcGFydGl0aW9uKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpCiAJY21kbGluZV9wYXJ0c19zZXQocGFydHMsIGRpc2tfc2l6ZSwgc3RhdGUpOwogCWNtZGxpbmVfcGFydHNfdmVyaWZpZXIoMSwgc3RhdGUpOwogCi0Jc2VxX2J1Zl9wdXRzKCZhbXA7c3RhdGUtJmd0O3BwX2J1ZiwgJiMzNDtcbiYjMzQ7KTsKJiM0MzsJc2VxX2J1Zl9wdXRjKCZhbXA7c3RhdGUtJmd0O3BwX2J1ZiwgJiMzOTtcbiYjMzk7KTsKIAogCXJldHVybiAxOwogfQpkaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy9lZmkuYyBiL2Jsb2NrL3BhcnRpdGlvbnMvZWZpLmMKaW5kZXggOTg2NWQ1OTA5M2ZhYzAuLjY1MGI5MWVmYzgzMmFmIDEwMDY0NAotLS0gYS9ibG9jay9wYXJ0aXRpb25zL2VmaS5jCiYjNDM7JiM0MzsmIzQzOyBiL2Jsb2NrL3BhcnRpdGlvbnMvZWZpLmMKQEAgLTc1MSw2ICYjNDM7NzUxLDYgQEAgaW50IGVmaV9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSkKIAl9CiAJa2ZyZWUocHRlcyk7CiAJa2ZyZWUoZ3B0KTsKLQlzZXFfYnVmX3B1dHMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM0O1xuJiMzNDspOwomIzQzOwlzZXFfYnVmX3B1dGMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM5O1xuJiMzOTspOwogCXJldHVybiAxOwogfQpkaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy9pYm0uYyBiL2Jsb2NrL3BhcnRpdGlvbnMvaWJtLmMKaW5kZXggNTQwNDdlNzIyYTlkOTQuLmE1N2RlM2IxOTJmYzIxIDEwMDY0NAotLS0gYS9ibG9jay9wYXJ0aXRpb25zL2libS5jCiYjNDM7JiM0MzsmIzQzOyBiL2Jsb2NrL3BhcnRpdGlvbnMvaWJtLmMKQEAgLTIxNyw3ICYjNDM7MjE3LDcgQEAgc3RhdGljIGludCBmaW5kX3ZvbDFfcGFydGl0aW9ucyhzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlLAogCQlibGsmIzQzOyYjNDM7OwogCQlkYXRhID0gcmVhZF9wYXJ0X3NlY3RvcihzdGF0ZSwgYmxrICogc2VjcGVyYmxrLCAmYW1wO3NlY3QpOwogCX0KLQlzZXFfYnVmX3B1dHMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM0O1xuJiMzNDspOwomIzQzOwlzZXFfYnVmX3B1dGMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM5O1xuJiMzOTspOwogCiAJaWYgKCFkYXRhKQogCQlyZXR1cm4gLTE7CkBAIC0yNTQsNyAmIzQzOzI1NCw3IEBAIHN0YXRpYyBpbnQgZmluZF9sbngxX3BhcnRpdGlvbnMoc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSwKIAkJc2l6ZSA9IG5yX3NlY3RvcnM7CiAJCWlmIChzaXplICE9IGdlb19zaXplKSB7CiAJCQlpZiAoIWluZm8pIHsKLQkJCQlzZXFfYnVmX3B1dHMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM0O1xuJiMzNDspOwomIzQzOwkJCQlzZXFfYnVmX3B1dGMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM5O1xuJiMzOTspOwogCQkJCXJldHVybiAxOwogCQkJfQogCQkJaWYgKCFzdHJjbXAoaW5mby0mZ3Q7dHlwZSwgJiMzNDtFQ0tEJiMzNDspKQpAQCAtMjY2LDcgJiM0MzsyNjYsNyBAQCBzdGF0aWMgaW50IGZpbmRfbG54MV9wYXJ0aXRpb25zKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUsCiAJLyogZmlyc3QgYW5kIG9ubHkgcGFydGl0aW9uIHN0YXJ0cyBpbiB0aGUgZmlyc3QgYmxvY2sgYWZ0ZXIgdGhlIGxhYmVsICovCiAJb2Zmc2V0ID0gbGFiZWxzZWN0ICYjNDM7IHNlY3BlcmJsazsKIAlwdXRfcGFydGl0aW9uKHN0YXRlLCAxLCBvZmZzZXQsIHNpemUgLSBvZmZzZXQpOwotCXNlcV9idWZfcHV0cygmYW1wO3N0YXRlLSZndDtwcF9idWYsICYjMzQ7XG4mIzM0Oyk7CiYjNDM7CXNlcV9idWZfcHV0YygmYW1wO3N0YXRlLSZndDtwcF9idWYsICYjMzk7XG4mIzM5Oyk7CiAJcmV0dXJuIDE7CiB9CiAKQEAgLTMwNyw3ICYjNDM7MzA3LDcgQEAgc3RhdGljIGludCBmaW5kX2NtczFfcGFydGl0aW9ucyhzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlLAogCX0KIAogCXB1dF9wYXJ0aXRpb24oc3RhdGUsIDEsIG9mZnNldCwgc2l6ZS1vZmZzZXQpOwotCXNlcV9idWZfcHV0cygmYW1wO3N0YXRlLSZndDtwcF9idWYsICYjMzQ7XG4mIzM0Oyk7CiYjNDM7CXNlcV9idWZfcHV0YygmYW1wO3N0YXRlLSZndDtwcF9idWYsICYjMzk7XG4mIzM5Oyk7CiAJcmV0dXJuIDE7CiB9CiAKQEAgLTM4OCw3ICYjNDM7Mzg4LDcgQEAgaW50IGlibV9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSkKIAkJCXNpemUgPSBucl9zZWN0b3JzOwogCQkJb2Zmc2V0ID0gKGluZm8tJmd0O2xhYmVsX2Jsb2NrICYjNDM7IDEpICogKGJsb2Nrc2l6ZSAmZ3Q7Jmd0OyA5KTsKIAkJCXB1dF9wYXJ0aXRpb24oc3RhdGUsIDEsIG9mZnNldCwgc2l6ZS1vZmZzZXQpOwotCQkJc2VxX2J1Zl9wdXRzKCZhbXA7c3RhdGUtJmd0O3BwX2J1ZiwgJiMzNDtcbiYjMzQ7KTsKJiM0MzsJCQlzZXFfYnVmX3B1dGMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM5O1xuJiMzOTspOwogCQl9CiAJfSBlbHNlCiAJCXJlcyA9IDA7CmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL2thcm1hLmMgYi9ibG9jay9wYXJ0aXRpb25zL2thcm1hLmMKaW5kZXggYTRlM2M1MDUwMTc3NjcuLmIwYWI4NDE2OTUzOGU5IDEwMDY0NAotLS0gYS9ibG9jay9wYXJ0aXRpb25zL2thcm1hLmMKJiM0MzsmIzQzOyYjNDM7IGIvYmxvY2svcGFydGl0aW9ucy9rYXJtYS5jCkBAIC01Myw3ICYjNDM7NTMsNyBAQCBpbnQga2FybWFfcGFydGl0aW9uKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpCiAJCX0KIAkJc2xvdCYjNDM7JiM0Mzs7CiAJfQotCXNlcV9idWZfcHV0cygmYW1wO3N0YXRlLSZndDtwcF9idWYsICYjMzQ7XG4mIzM0Oyk7CiYjNDM7CXNlcV9idWZfcHV0YygmYW1wO3N0YXRlLSZndDtwcF9idWYsICYjMzk7XG4mIzM5Oyk7CiAJcHV0X2Rldl9zZWN0b3Ioc2VjdCk7CiAJcmV0dXJuIDE7CiB9CmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL2xkbS5jIGIvYmxvY2svcGFydGl0aW9ucy9sZG0uYwppbmRleCBjMGJkY2FlNThhM2VlMC4uZDFiYmM5ZmIwOWY5MzkgMTAwNjQ0Ci0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvbGRtLmMKJiM0MzsmIzQzOyYjNDM7IGIvYmxvY2svcGFydGl0aW9ucy9sZG0uYwpAQCAtNTk3LDcgJiM0Mzs1OTcsNyBAQCBzdGF0aWMgYm9vbCBsZG1fY3JlYXRlX2RhdGFfcGFydGl0aW9ucyAoc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpwcCwKIAkJcGFydF9udW0mIzQzOyYjNDM7OwogCX0KIAotCXNlcV9idWZfcHV0cygmYW1wO3BwLSZndDtwcF9idWYsICYjMzQ7XG4mIzM0Oyk7CiYjNDM7CXNlcV9idWZfcHV0YygmYW1wO3BwLSZndDtwcF9idWYsICYjMzk7XG4mIzM5Oyk7CiAJcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvbWFjLmMgYi9ibG9jay9wYXJ0aXRpb25zL21hYy5jCmluZGV4IGRmMDNjYTQyOGUxNTc0Li5iYjU3MGI1YTZlYWFiMiAxMDA2NDQKLS0tIGEvYmxvY2svcGFydGl0aW9ucy9tYWMuYwomIzQzOyYjNDM7JiM0MzsgYi9ibG9jay9wYXJ0aXRpb25zL21hYy5jCkBAIC0xNTIsNiAmIzQzOzE1Miw2IEBAIGludCBtYWNfcGFydGl0aW9uKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpCiAjZW5kaWYKIAogCXB1dF9kZXZfc2VjdG9yKHNlY3QpOwotCXNlcV9idWZfcHV0cygmYW1wO3N0YXRlLSZndDtwcF9idWYsICYjMzQ7XG4mIzM0Oyk7CiYjNDM7CXNlcV9idWZfcHV0YygmYW1wO3N0YXRlLSZndDtwcF9idWYsICYjMzk7XG4mIzM5Oyk7CiAJcmV0dXJuIDE7CiB9CmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL21zZG9zLmMgYi9ibG9jay9wYXJ0aXRpb25zL21zZG9zLmMKaW5kZXggMjAwZWE1M2VhNmEyYzguLjRhOTY1NDFmNTM1MTVlIDEwMDY0NAotLS0gYS9ibG9jay9wYXJ0aXRpb25zL21zZG9zLmMKJiM0MzsmIzQzOyYjNDM7IGIvYmxvY2svcGFydGl0aW9ucy9tc2Rvcy5jCkBAIC02MDgsNyAmIzQzOzYwOCw3IEBAIGludCBtc2Rvc19wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSkKIAkJCWZiID0gKHN0cnVjdCBmYXRfYm9vdF9zZWN0b3IgKikgZGF0YTsKIAkJCWlmIChzbG90ID09IDEgJmFtcDsmYW1wOyBmYi0mZ3Q7cmVzZXJ2ZWQgJmFtcDsmYW1wOyBmYi0mZ3Q7ZmF0cwogCQkJCSZhbXA7JmFtcDsgZmF0X3ZhbGlkX21lZGlhKGZiLSZndDttZWRpYSkpIHsKLQkJCQlzZXFfYnVmX3B1dHMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM0O1xuJiMzNDspOwomIzQzOwkJCQlzZXFfYnVmX3B1dGMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM5O1xuJiMzOTspOwogCQkJCXB1dF9kZXZfc2VjdG9yKHNlY3QpOwogCQkJCXJldHVybiAxOwogCQkJfSBlbHNlIHsKQEAgLTY3Miw3ICYjNDM7NjcyLDcgQEAgaW50IG1zZG9zX3BhcnRpdGlvbihzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKQogCQkJc2VxX2J1Zl9wdXRzKCZhbXA7c3RhdGUtJmd0O3BwX2J1ZiwgJiMzNDtbRVpEXSYjMzQ7KTsKIAl9CiAKLQlzZXFfYnVmX3B1dHMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM0O1xuJiMzNDspOwomIzQzOwlzZXFfYnVmX3B1dGMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM5O1xuJiMzOTspOwogCiAJLyogc2Vjb25kIHBhc3MgLSBvdXRwdXQgZm9yIGVhY2ggb24gYSBzZXBhcmF0ZSBsaW5lICovCiAJcCA9IChzdHJ1Y3QgbXNkb3NfcGFydGl0aW9uICopICgweDFiZSAmIzQzOyBkYXRhKTsKZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvb2YuYyBiL2Jsb2NrL3BhcnRpdGlvbnMvb2YuYwppbmRleCA1MzY2NGVhMDZiNjU0MC4uNzgwM2U2ZjRlY2RkOTggMTAwNjQ0Ci0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvb2YuYwomIzQzOyYjNDM7JiM0MzsgYi9ibG9jay9wYXJ0aXRpb25zL29mLmMKQEAgLTEwNCw3ICYjNDM7MTA0LDcgQEAgaW50IG9mX3BhcnRpdGlvbihzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKQogCQlzbG90JiM0MzsmIzQzOzsKIAl9CiAKLQlzZXFfYnVmX3B1dHMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM0O1xuJiMzNDspOwomIzQzOwlzZXFfYnVmX3B1dGMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM5O1xuJiMzOTspOwogCiAJb2Zfbm9kZV9wdXQocGFydGl0aW9uc19ucCk7CiAJcmV0dXJuIDE7CmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL29zZi5jIGIvYmxvY2svcGFydGl0aW9ucy9vc2YuYwppbmRleCAyYTY5MjU4NGRiYTkxYS4uNmY4M2Q0NzU5YTVkNGIgMTAwNjQ0Ci0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvb3NmLmMKJiM0MzsmIzQzOyYjNDM7IGIvYmxvY2svcGFydGl0aW9ucy9vc2YuYwpAQCAtODEsNyAmIzQzOzgxLDcgQEAgaW50IG9zZl9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSkKIAkJCQlsZTMyX3RvX2NwdShwYXJ0aXRpb24tJmd0O3Bfc2l6ZSkpOwogCQlzbG90JiM0MzsmIzQzOzsKIAl9Ci0Jc2VxX2J1Zl9wdXRzKCZhbXA7c3RhdGUtJmd0O3BwX2J1ZiwgJiMzNDtcbiYjMzQ7KTsKJiM0MzsJc2VxX2J1Zl9wdXRjKCZhbXA7c3RhdGUtJmd0O3BwX2J1ZiwgJiMzOTtcbiYjMzk7KTsKIAlwdXRfZGV2X3NlY3RvcihzZWN0KTsKIAlyZXR1cm4gMTsKIH0KZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvc2dpLmMgYi9ibG9jay9wYXJ0aXRpb25zL3NnaS5jCmluZGV4IDIzODNjYTYzY2Q2NjQ1Li5mNzQzZTM1ODM0MTc1OCAxMDA2NDQKLS0tIGEvYmxvY2svcGFydGl0aW9ucy9zZ2kuYwomIzQzOyYjNDM7JiM0MzsgYi9ibG9jay9wYXJ0aXRpb25zL3NnaS5jCkBAIC03OSw3ICYjNDM7NzksNyBAQCBpbnQgc2dpX3BhcnRpdGlvbihzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKQogCQl9CiAJCXNsb3QmIzQzOyYjNDM7OwogCX0KLQlzZXFfYnVmX3B1dHMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM0O1xuJiMzNDspOwomIzQzOwlzZXFfYnVmX3B1dGMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM5O1xuJiMzOTspOwogCXB1dF9kZXZfc2VjdG9yKHNlY3QpOwogCXJldHVybiAxOwogfQpkaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy9zdW4uYyBiL2Jsb2NrL3BhcnRpdGlvbnMvc3VuLmMKaW5kZXggOTJjNjQ1ZmNkMmUwOWIuLmM3MWJhZDc4ZjM0YWYwIDEwMDY0NAotLS0gYS9ibG9jay9wYXJ0aXRpb25zL3N1bi5jCiYjNDM7JiM0MzsmIzQzOyBiL2Jsb2NrL3BhcnRpdGlvbnMvc3VuLmMKQEAgLTEyMSw3ICYjNDM7MTIxLDcgQEAgaW50IHN1bl9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSkKIAkJfQogCQlzbG90JiM0MzsmIzQzOzsKIAl9Ci0Jc2VxX2J1Zl9wdXRzKCZhbXA7c3RhdGUtJmd0O3BwX2J1ZiwgJiMzNDtcbiYjMzQ7KTsKJiM0MzsJc2VxX2J1Zl9wdXRjKCZhbXA7c3RhdGUtJmd0O3BwX2J1ZiwgJiMzOTtcbiYjMzk7KTsKIAlwdXRfZGV2X3NlY3RvcihzZWN0KTsKIAlyZXR1cm4gMTsKIH0KZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvc3lzdjY4LmMgYi9ibG9jay9wYXJ0aXRpb25zL3N5c3Y2OC5jCmluZGV4IDQ3MGUwZjlkZTdiZTM4Li4zMWQzNDhhYzJkZmIzZSAxMDA2NDQKLS0tIGEvYmxvY2svcGFydGl0aW9ucy9zeXN2NjguYwomIzQzOyYjNDM7JiM0MzsgYi9ibG9jay9wYXJ0aXRpb25zL3N5c3Y2OC5jCkBAIC04Niw3ICYjNDM7ODYsNyBAQCBpbnQgc3lzdjY4X3BhcnRpdGlvbihzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKQogCQl9CiAJCXNsb3QmIzQzOyYjNDM7OwogCX0KLQlzZXFfYnVmX3B1dHMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM0O1xuJiMzNDspOwomIzQzOwlzZXFfYnVmX3B1dGMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM5O1xuJiMzOTspOwogCXB1dF9kZXZfc2VjdG9yKHNlY3QpOwogCXJldHVybiAxOwogfQpkaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy91bHRyaXguYyBiL2Jsb2NrL3BhcnRpdGlvbnMvdWx0cml4LmMKaW5kZXggYjRiOWRkYzU3YTVkNmYuLjhhYzQyZmRhMjVkMTYxIDEwMDY0NAotLS0gYS9ibG9jay9wYXJ0aXRpb25zL3VsdHJpeC5jCiYjNDM7JiM0MzsmIzQzOyBiL2Jsb2NrL3BhcnRpdGlvbnMvdWx0cml4LmMKQEAgLTM5LDcgJiM0MzszOSw3IEBAIGludCB1bHRyaXhfcGFydGl0aW9uKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpCiAJCQkJCSAgICAgIGxhYmVsLSZndDtwdF9wYXJ0W2ldLnBpX2Jsa29mZiwKIAkJCQkJICAgICAgbGFiZWwtJmd0O3B0X3BhcnRbaV0ucGlfbmJsb2Nrcyk7CiAJCXB1dF9kZXZfc2VjdG9yKHNlY3QpOwotCQlzZXFfYnVmX3B1dHMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM0O1xuJiMzNDspOwomIzQzOwkJc2VxX2J1Zl9wdXRjKCZhbXA7c3RhdGUtJmd0O3BwX2J1ZiwgJiMzOTtcbiYjMzk7KTsKIAkJcmV0dXJuIDE7CiAJfSBlbHNlIHsKIAkJcHV0X2Rldl9zZWN0b3Ioc2VjdCk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI5IDA3OjQ3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU1MTgKCQkJCQkJCW91dHB1dDogODQKCQkJCQkJCXRob3VnaHRzOiAxOTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgUHJvcG9zZWQgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7dmUgYmVlbiBwcmVzZW50ZWQgd2l0aCBhIHBhdGNoIHRhcmdldGluZyBzb21lIHBhcnRpdGlvbiBwYXJzZXJzIHdpdGhpbiBgYmxvY2svcGFydGl0aW9ucy9gLiBUaGUgY29yZSBvZiB0aGUgY2hhbmdlIHJldm9sdmVzIGFyb3VuZCByZXBsYWNpbmcgaW5zdGFuY2VzIG9mIGBzZXFfYnVmX3B1dHMoJmFtcDtzdGF0ZS0mZ3Q7cHBfYnVmLCAmIzM0O1xuJiMzNDspO2Agd2l0aCBgc2VxX2J1Zl9wdXRjKCZhbXA7c3RhdGUtJmd0O3BwX2J1ZiwgJiMzOTtcbiYjMzk7KTtgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCB0aGlzIGlzIHB1cmVseSBjb3NtZXRpYyDigJMgYW4gb3B0aW1pemF0aW9uLiBJdCYjMzk7cyBub3QgbW9kaWZ5aW5nIHRoZSBwcm9ncmFtJiMzOTtzIGxvZ2ljIG9yIGFsdGVyaW5nIGFueSBleGVjdXRpb24gcGF0aHMsIGp1c3Qgc3dpdGNoaW5nIGZyb20gcHJpbnRpbmcgYSBzdHJpbmcgbGl0ZXJhbCBuZXdsaW5lIHRvIHByaW50aW5nIHRoZSBuZXdsaW5lIGNoYXJhY3RlciBkaXJlY3RseS4gVGhlcmVmb3JlLCBJIGRvbiYjMzk7dCBzZWUgYW55IGltbWVkaWF0ZSB2YWx1ZSBpbiBmdXp6aW5nIHRoaXMgc3BlY2lmaWMgY2hhbmdlLgoKVG8gYmUgYWJzb2x1dGVseSBjZXJ0YWluLCBJJiMzOTt2ZSBqdXN0IGRvdWJsZS1jaGVja2VkIHRoZSB1bmRlcmx5aW5nIGZ1bmN0aW9ucy4gYHNlcV9idWZfcHV0c2AgaW50ZXJuYWxseSBjYWxjdWxhdGVzIHRoZSBzdHJpbmcgbGVuZ3RoIGFuZCB0aGVuIGNhbGxzIGBzZXFfYnVmX3B1dG1lbWAuIGBzZXFfYnVmX3B1dGNgLCBvbiB0aGUgb3RoZXIgaGFuZCwgZGlyZWN0bHkgcGxhY2VzIHRoZSBjaGFyYWN0ZXIgaW4gdGhlIGJ1ZmZlci4gIENydWNpYWxseSwgdGhlIG5ldCBlZmZlY3Qgb24gdGhlIGJ1ZmZlciYjMzk7cyBjb250ZW50cyB3aWxsIGJlICppZGVudGljYWwqLiBUaGlzIGNvbmZpcm1zIGl0OyBpdCBpcyBhIG1pbm9yIG9wdGltaXphdGlvbi4KClRoZXJlZm9yZSwgSSYjMzk7bSBnb2luZyB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjkgMDc6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IHJlcGxhY2VzIGBzZXFfYnVmX3B1dHNgIHdpdGggYHNlcV9idWZfcHV0Y2AgZm9yIHByaW50aW5nIGEgc2luZ2xlIG5ld2xpbmUgY2hhcmFjdGVyIGluIHZhcmlvdXMgcGFydGl0aW9uIHBhcnNlcnMuIFRoaXMgaXMgYSBtaW5vciBvcHRpbWl6YXRpb24vY2xlYW51cCB0aGF0IGRvZXMgbm90IGZ1bmN0aW9uYWxseSBhbHRlciB0aGUgZXhlY3V0aW9uIGZsb3cgb3IgbG9naWMgb2YgdGhlIGtlcm5lbC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgcmVwbGFjZXMgYHNlcV9idWZfcHV0c2Agd2l0aCBgc2VxX2J1Zl9wdXRjYCBmb3IgcHJpbnRpbmcgYSBzaW5nbGUgbmV3bGluZSBjaGFyYWN0ZXIgaW4gdmFyaW91cyBwYXJ0aXRpb24gcGFyc2Vycy4gVGhpcyBpcyBhIG1pbm9yIG9wdGltaXphdGlvbi9jbGVhbnVwIHRoYXQgZG9lcyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIHRoZSBleGVjdXRpb24gZmxvdyBvciBsb2dpYyBvZiB0aGUga2VybmVsLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA3OjQ3OjA3LjkwMjAzNjg2NFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU3Nzk4MjU1MDcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgcmVwbGFjZXMgYHNlcV9idWZfcHV0c2Agd2l0aCBgc2VxX2J1Zl9wdXRjYCBmb3IgcHJpbnRpbmcgYSBzaW5nbGUgbmV3bGluZSBjaGFyYWN0ZXIgaW4gdmFyaW91cyBwYXJ0aXRpb24gcGFyc2Vycy4gVGhpcyBpcyBhIG1pbm9yIG9wdGltaXphdGlvbi9jbGVhbnVwIHRoYXQgZG9lcyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIHRoZSBleGVjdXRpb24gZmxvdyBvciBsb2dpYyBvZiB0aGUga2VybmVsLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDc6NDc6MDcuOTAyMDQxNjQ0WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NzEyMjI0OTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBkZDZlMjI1Mjc1ZmM1NjFiNTdmMzg5YmJlN2VlZTYwZTM4YWM1ZjQ4XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gSnVuIDI5IDA3OjQ3OjA2IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvYWNvcm4uYyBiL2Jsb2NrL3BhcnRpdGlvbnMvYWNvcm4uY1xcbmluZGV4IDA2N2Q2YTI3YTNiZGYzLi5jNDgyNTA1MTc0NDgxOCAxMDA2NDRcXG4tLS0gYS9ibG9jay9wYXJ0aXRpb25zL2Fjb3JuLmNcXG4rKysgYi9ibG9jay9wYXJ0aXRpb25zL2Fjb3JuLmNcXG5AQCAtMjkwLDcgKzI5MCw3IEBAIGludCBhZGZzcGFydF9jaGVja19BREZTKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpXFxuIFxcdFxcdFxcdGJyZWFrO1xcbiBcXHRcXHR9XFxuIFxcdH1cXG4tXFx0c2VxX2J1Zl9wdXRzKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCBcXFwiXFxcXG5cXFwiKTtcXG4rXFx0c2VxX2J1Zl9wdXRjKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCAnXFxcXG4nKTtcXG4gXFx0cmV0dXJuIDE7XFxuIH1cXG4gI2VuZGlmXFxuQEAgLTM5Nyw3ICszOTcsNyBAQCBpbnQgYWRmc3BhcnRfY2hlY2tfSUNTKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpXFxuIFxcdH1cXG4gXFxuIFxcdHB1dF9kZXZfc2VjdG9yKHNlY3QpO1xcbi1cXHRzZXFfYnVmX3B1dHMoXFx1MDAyNnN0YXRlLVxcdTAwM2VwcF9idWYsIFxcXCJcXFxcblxcXCIpO1xcbitcXHRzZXFfYnVmX3B1dGMoXFx1MDAyNnN0YXRlLVxcdTAwM2VwcF9idWYsICdcXFxcbicpO1xcbiBcXHRyZXR1cm4gMTtcXG4gfVxcbiAjZW5kaWZcXG5AQCAtNDY4LDcgKzQ2OCw3IEBAIGludCBhZGZzcGFydF9jaGVja19QT1dFUlRFQyhzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKVxcbiBcXHR9XFxuIFxcbiBcXHRwdXRfZGV2X3NlY3RvcihzZWN0KTtcXG4tXFx0c2VxX2J1Zl9wdXRzKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCBcXFwiXFxcXG5cXFwiKTtcXG4rXFx0c2VxX2J1Zl9wdXRjKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCAnXFxcXG4nKTtcXG4gXFx0cmV0dXJuIDE7XFxuIH1cXG4gI2VuZGlmXFxuQEAgLTUzOSw3ICs1MzksNyBAQCBpbnQgYWRmc3BhcnRfY2hlY2tfRUVTT1goc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcXG4gXFxuIFxcdFxcdHNpemUgPSBnZXRfY2FwYWNpdHkoc3RhdGUtXFx1MDAzZWRpc2spO1xcbiBcXHRcXHRwdXRfcGFydGl0aW9uKHN0YXRlLCBzbG90KyssIHN0YXJ0LCBzaXplIC0gc3RhcnQpO1xcbi1cXHRcXHRzZXFfYnVmX3B1dHMoXFx1MDAyNnN0YXRlLVxcdTAwM2VwcF9idWYsIFxcXCJcXFxcblxcXCIpO1xcbitcXHRcXHRzZXFfYnVmX3B1dGMoXFx1MDAyNnN0YXRlLVxcdTAwM2VwcF9idWYsICdcXFxcbicpO1xcbiBcXHR9XFxuIFxcbiBcXHRyZXR1cm4gaSA/IDEgOiAwO1xcbmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL2FtaWdhLmMgYi9ibG9jay9wYXJ0aXRpb25zL2FtaWdhLmNcXG5pbmRleCA4MzI1MDQ2YTE0ZWI5NS4uYTI3MmY2NDQ1MGVjYzggMTAwNjQ0XFxuLS0tIGEvYmxvY2svcGFydGl0aW9ucy9hbWlnYS5jXFxuKysrIGIvYmxvY2svcGFydGl0aW9ucy9hbWlnYS5jXFxuQEAgLTE5NCw3ICsxOTQsNyBAQCBpbnQgYW1pZ2FfcGFydGl0aW9uKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpXFxuIFxcdFxcdH1cXG4gXFx0XFx0cmVzID0gMTtcXG4gXFx0fVxcbi1cXHRzZXFfYnVmX3B1dHMoXFx1MDAyNnN0YXRlLVxcdTAwM2VwcF9idWYsIFxcXCJcXFxcblxcXCIpO1xcbitcXHRzZXFfYnVmX3B1dGMoXFx1MDAyNnN0YXRlLVxcdTAwM2VwcF9idWYsICdcXFxcbicpO1xcbiBcXG4gcmRiX2RvbmU6XFxuIFxcdHJldHVybiByZXM7XFxuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvYXRhcmkuYyBiL2Jsb2NrL3BhcnRpdGlvbnMvYXRhcmkuY1xcbmluZGV4IDI0MzhkMTQ0OGYzODJjLi41ODg2M2MxYTI3MjM4NSAxMDA2NDRcXG4tLS0gYS9ibG9jay9wYXJ0aXRpb25zL2F0YXJpLmNcXG4rKysgYi9ibG9jay9wYXJ0aXRpb25zL2F0YXJpLmNcXG5AQCAtMTUwLDcgKzE1MCw3IEBAIGludCBhdGFyaV9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcXG4gI2VuZGlmXFxuIFxcdHB1dF9kZXZfc2VjdG9yKHNlY3QpO1xcbiBcXG4tXFx0c2VxX2J1Zl9wdXRzKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCBcXFwiXFxcXG5cXFwiKTtcXG4rXFx0c2VxX2J1Zl9wdXRjKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCAnXFxcXG4nKTtcXG4gXFxuIFxcdHJldHVybiAxO1xcbiB9XFxuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvY21kbGluZS5jIGIvYmxvY2svcGFydGl0aW9ucy9jbWRsaW5lLmNcXG5pbmRleCA0ZmQ1MmVkMTU0YjRlOC4uNTAwNzVlY2NhYWRlNDQgMTAwNjQ0XFxuLS0tIGEvYmxvY2svcGFydGl0aW9ucy9jbWRsaW5lLmNcXG4rKysgYi9ibG9jay9wYXJ0aXRpb25zL2NtZGxpbmUuY1xcbkBAIC0zNzcsNyArMzc3LDcgQEAgaW50IGNtZGxpbmVfcGFydGl0aW9uKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpXFxuIFxcdGNtZGxpbmVfcGFydHNfc2V0KHBhcnRzLCBkaXNrX3NpemUsIHN0YXRlKTtcXG4gXFx0Y21kbGluZV9wYXJ0c192ZXJpZmllcigxLCBzdGF0ZSk7XFxuIFxcbi1cXHRzZXFfYnVmX3B1dHMoXFx1MDAyNnN0YXRlLVxcdTAwM2VwcF9idWYsIFxcXCJcXFxcblxcXCIpO1xcbitcXHRzZXFfYnVmX3B1dGMoXFx1MDAyNnN0YXRlLVxcdTAwM2VwcF9idWYsICdcXFxcbicpO1xcbiBcXG4gXFx0cmV0dXJuIDE7XFxuIH1cXG5kaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy9lZmkuYyBiL2Jsb2NrL3BhcnRpdGlvbnMvZWZpLmNcXG5pbmRleCA5ODY1ZDU5MDkzZmFjMC4uNjUwYjkxZWZjODMyYWYgMTAwNjQ0XFxuLS0tIGEvYmxvY2svcGFydGl0aW9ucy9lZmkuY1xcbisrKyBiL2Jsb2NrL3BhcnRpdGlvbnMvZWZpLmNcXG5AQCAtNzUxLDYgKzc1MSw2IEBAIGludCBlZmlfcGFydGl0aW9uKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpXFxuIFxcdH1cXG4gXFx0a2ZyZWUocHRlcyk7XFxuIFxcdGtmcmVlKGdwdCk7XFxuLVxcdHNlcV9idWZfcHV0cyhcXHUwMDI2c3RhdGUtXFx1MDAzZXBwX2J1ZiwgXFxcIlxcXFxuXFxcIik7XFxuK1xcdHNlcV9idWZfcHV0YyhcXHUwMDI2c3RhdGUtXFx1MDAzZXBwX2J1ZiwgJ1xcXFxuJyk7XFxuIFxcdHJldHVybiAxO1xcbiB9XFxuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvaWJtLmMgYi9ibG9jay9wYXJ0aXRpb25zL2libS5jXFxuaW5kZXggNTQwNDdlNzIyYTlkOTQuLmE1N2RlM2IxOTJmYzIxIDEwMDY0NFxcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvaWJtLmNcXG4rKysgYi9ibG9jay9wYXJ0aXRpb25zL2libS5jXFxuQEAgLTIxNyw3ICsyMTcsNyBAQCBzdGF0aWMgaW50IGZpbmRfdm9sMV9wYXJ0aXRpb25zKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUsXFxuIFxcdFxcdGJsaysrO1xcbiBcXHRcXHRkYXRhID0gcmVhZF9wYXJ0X3NlY3RvcihzdGF0ZSwgYmxrICogc2VjcGVyYmxrLCBcXHUwMDI2c2VjdCk7XFxuIFxcdH1cXG4tXFx0c2VxX2J1Zl9wdXRzKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCBcXFwiXFxcXG5cXFwiKTtcXG4rXFx0c2VxX2J1Zl9wdXRjKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCAnXFxcXG4nKTtcXG4gXFxuIFxcdGlmICghZGF0YSlcXG4gXFx0XFx0cmV0dXJuIC0xO1xcbkBAIC0yNTQsNyArMjU0LDcgQEAgc3RhdGljIGludCBmaW5kX2xueDFfcGFydGl0aW9ucyhzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlLFxcbiBcXHRcXHRzaXplID0gbnJfc2VjdG9ycztcXG4gXFx0XFx0aWYgKHNpemUgIT0gZ2VvX3NpemUpIHtcXG4gXFx0XFx0XFx0aWYgKCFpbmZvKSB7XFxuLVxcdFxcdFxcdFxcdHNlcV9idWZfcHV0cyhcXHUwMDI2c3RhdGUtXFx1MDAzZXBwX2J1ZiwgXFxcIlxcXFxuXFxcIik7XFxuK1xcdFxcdFxcdFxcdHNlcV9idWZfcHV0YyhcXHUwMDI2c3RhdGUtXFx1MDAzZXBwX2J1ZiwgJ1xcXFxuJyk7XFxuIFxcdFxcdFxcdFxcdHJldHVybiAxO1xcbiBcXHRcXHRcXHR9XFxuIFxcdFxcdFxcdGlmICghc3RyY21wKGluZm8tXFx1MDAzZXR5cGUsIFxcXCJFQ0tEXFxcIikpXFxuQEAgLTI2Niw3ICsyNjYsNyBAQCBzdGF0aWMgaW50IGZpbmRfbG54MV9wYXJ0aXRpb25zKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUsXFxuIFxcdC8qIGZpcnN0IGFuZCBvbmx5IHBhcnRpdGlvbiBzdGFydHMgaW4gdGhlIGZpcnN0IGJsb2NrIGFmdGVyIHRoZSBsYWJlbCAqL1xcbiBcXHRvZmZzZXQgPSBsYWJlbHNlY3QgKyBzZWNwZXJibGs7XFxuIFxcdHB1dF9wYXJ0aXRpb24oc3RhdGUsIDEsIG9mZnNldCwgc2l6ZSAtIG9mZnNldCk7XFxuLVxcdHNlcV9idWZfcHV0cyhcXHUwMDI2c3RhdGUtXFx1MDAzZXBwX2J1ZiwgXFxcIlxcXFxuXFxcIik7XFxuK1xcdHNlcV9idWZfcHV0YyhcXHUwMDI2c3RhdGUtXFx1MDAzZXBwX2J1ZiwgJ1xcXFxuJyk7XFxuIFxcdHJldHVybiAxO1xcbiB9XFxuIFxcbkBAIC0zMDcsNyArMzA3LDcgQEAgc3RhdGljIGludCBmaW5kX2NtczFfcGFydGl0aW9ucyhzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlLFxcbiBcXHR9XFxuIFxcbiBcXHRwdXRfcGFydGl0aW9uKHN0YXRlLCAxLCBvZmZzZXQsIHNpemUtb2Zmc2V0KTtcXG4tXFx0c2VxX2J1Zl9wdXRzKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCBcXFwiXFxcXG5cXFwiKTtcXG4rXFx0c2VxX2J1Zl9wdXRjKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCAnXFxcXG4nKTtcXG4gXFx0cmV0dXJuIDE7XFxuIH1cXG4gXFxuQEAgLTM4OCw3ICszODgsNyBAQCBpbnQgaWJtX3BhcnRpdGlvbihzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKVxcbiBcXHRcXHRcXHRzaXplID0gbnJfc2VjdG9ycztcXG4gXFx0XFx0XFx0b2Zmc2V0ID0gKGluZm8tXFx1MDAzZWxhYmVsX2Jsb2NrICsgMSkgKiAoYmxvY2tzaXplIFxcdTAwM2VcXHUwMDNlIDkpO1xcbiBcXHRcXHRcXHRwdXRfcGFydGl0aW9uKHN0YXRlLCAxLCBvZmZzZXQsIHNpemUtb2Zmc2V0KTtcXG4tXFx0XFx0XFx0c2VxX2J1Zl9wdXRzKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCBcXFwiXFxcXG5cXFwiKTtcXG4rXFx0XFx0XFx0c2VxX2J1Zl9wdXRjKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCAnXFxcXG4nKTtcXG4gXFx0XFx0fVxcbiBcXHR9IGVsc2VcXG4gXFx0XFx0cmVzID0gMDtcXG5kaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy9rYXJtYS5jIGIvYmxvY2svcGFydGl0aW9ucy9rYXJtYS5jXFxuaW5kZXggYTRlM2M1MDUwMTc3NjcuLmIwYWI4NDE2OTUzOGU5IDEwMDY0NFxcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMva2FybWEuY1xcbisrKyBiL2Jsb2NrL3BhcnRpdGlvbnMva2FybWEuY1xcbkBAIC01Myw3ICs1Myw3IEBAIGludCBrYXJtYV9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcXG4gXFx0XFx0fVxcbiBcXHRcXHRzbG90Kys7XFxuIFxcdH1cXG4tXFx0c2VxX2J1Zl9wdXRzKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCBcXFwiXFxcXG5cXFwiKTtcXG4rXFx0c2VxX2J1Zl9wdXRjKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCAnXFxcXG4nKTtcXG4gXFx0cHV0X2Rldl9zZWN0b3Ioc2VjdCk7XFxuIFxcdHJldHVybiAxO1xcbiB9XFxuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvbGRtLmMgYi9ibG9jay9wYXJ0aXRpb25zL2xkbS5jXFxuaW5kZXggYzBiZGNhZTU4YTNlZTAuLmQxYmJjOWZiMDlmOTM5IDEwMDY0NFxcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvbGRtLmNcXG4rKysgYi9ibG9jay9wYXJ0aXRpb25zL2xkbS5jXFxuQEAgLTU5Nyw3ICs1OTcsNyBAQCBzdGF0aWMgYm9vbCBsZG1fY3JlYXRlX2RhdGFfcGFydGl0aW9ucyAoc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpwcCxcXG4gXFx0XFx0cGFydF9udW0rKztcXG4gXFx0fVxcbiBcXG4tXFx0c2VxX2J1Zl9wdXRzKFxcdTAwMjZwcC1cXHUwMDNlcHBfYnVmLCBcXFwiXFxcXG5cXFwiKTtcXG4rXFx0c2VxX2J1Zl9wdXRjKFxcdTAwMjZwcC1cXHUwMDNlcHBfYnVmLCAnXFxcXG4nKTtcXG4gXFx0cmV0dXJuIHRydWU7XFxuIH1cXG4gXFxuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvbWFjLmMgYi9ibG9jay9wYXJ0aXRpb25zL21hYy5jXFxuaW5kZXggZGYwM2NhNDI4ZTE1NzQuLmJiNTcwYjVhNmVhYWIyIDEwMDY0NFxcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvbWFjLmNcXG4rKysgYi9ibG9jay9wYXJ0aXRpb25zL21hYy5jXFxuQEAgLTE1Miw2ICsxNTIsNiBAQCBpbnQgbWFjX3BhcnRpdGlvbihzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKVxcbiAjZW5kaWZcXG4gXFxuIFxcdHB1dF9kZXZfc2VjdG9yKHNlY3QpO1xcbi1cXHRzZXFfYnVmX3B1dHMoXFx1MDAyNnN0YXRlLVxcdTAwM2VwcF9idWYsIFxcXCJcXFxcblxcXCIpO1xcbitcXHRzZXFfYnVmX3B1dGMoXFx1MDAyNnN0YXRlLVxcdTAwM2VwcF9idWYsICdcXFxcbicpO1xcbiBcXHRyZXR1cm4gMTtcXG4gfVxcbmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL21zZG9zLmMgYi9ibG9jay9wYXJ0aXRpb25zL21zZG9zLmNcXG5pbmRleCAyMDBlYTUzZWE2YTJjOC4uNGE5NjU0MWY1MzUxNWUgMTAwNjQ0XFxuLS0tIGEvYmxvY2svcGFydGl0aW9ucy9tc2Rvcy5jXFxuKysrIGIvYmxvY2svcGFydGl0aW9ucy9tc2Rvcy5jXFxuQEAgLTYwOCw3ICs2MDgsNyBAQCBpbnQgbXNkb3NfcGFydGl0aW9uKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpXFxuIFxcdFxcdFxcdGZiID0gKHN0cnVjdCBmYXRfYm9vdF9zZWN0b3IgKikgZGF0YTtcXG4gXFx0XFx0XFx0aWYgKHNsb3QgPT0gMSBcXHUwMDI2XFx1MDAyNiBmYi1cXHUwMDNlcmVzZXJ2ZWQgXFx1MDAyNlxcdTAwMjYgZmItXFx1MDAzZWZhdHNcXG4gXFx0XFx0XFx0XFx0XFx1MDAyNlxcdTAwMjYgZmF0X3ZhbGlkX21lZGlhKGZiLVxcdTAwM2VtZWRpYSkpIHtcXG4tXFx0XFx0XFx0XFx0c2VxX2J1Zl9wdXRzKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCBcXFwiXFxcXG5cXFwiKTtcXG4rXFx0XFx0XFx0XFx0c2VxX2J1Zl9wdXRjKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCAnXFxcXG4nKTtcXG4gXFx0XFx0XFx0XFx0cHV0X2Rldl9zZWN0b3Ioc2VjdCk7XFxuIFxcdFxcdFxcdFxcdHJldHVybiAxO1xcbiBcXHRcXHRcXHR9IGVsc2Uge1xcbkBAIC02NzIsNyArNjcyLDcgQEAgaW50IG1zZG9zX3BhcnRpdGlvbihzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKVxcbiBcXHRcXHRcXHRzZXFfYnVmX3B1dHMoXFx1MDAyNnN0YXRlLVxcdTAwM2VwcF9idWYsIFxcXCJbRVpEXVxcXCIpO1xcbiBcXHR9XFxuIFxcbi1cXHRzZXFfYnVmX3B1dHMoXFx1MDAyNnN0YXRlLVxcdTAwM2VwcF9idWYsIFxcXCJcXFxcblxcXCIpO1xcbitcXHRzZXFfYnVmX3B1dGMoXFx1MDAyNnN0YXRlLVxcdTAwM2VwcF9idWYsICdcXFxcbicpO1xcbiBcXG4gXFx0Lyogc2Vjb25kIHBhc3MgLSBvdXRwdXQgZm9yIGVhY2ggb24gYSBzZXBhcmF0ZSBsaW5lICovXFxuIFxcdHAgPSAoc3RydWN0IG1zZG9zX3BhcnRpdGlvbiAqKSAoMHgxYmUgKyBkYXRhKTtcXG5kaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy9vZi5jIGIvYmxvY2svcGFydGl0aW9ucy9vZi5jXFxuaW5kZXggNTM2NjRlYTA2YjY1NDAuLjc4MDNlNmY0ZWNkZDk4IDEwMDY0NFxcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvb2YuY1xcbisrKyBiL2Jsb2NrL3BhcnRpdGlvbnMvb2YuY1xcbkBAIC0xMDQsNyArMTA0LDcgQEAgaW50IG9mX3BhcnRpdGlvbihzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKVxcbiBcXHRcXHRzbG90Kys7XFxuIFxcdH1cXG4gXFxuLVxcdHNlcV9idWZfcHV0cyhcXHUwMDI2c3RhdGUtXFx1MDAzZXBwX2J1ZiwgXFxcIlxcXFxuXFxcIik7XFxuK1xcdHNlcV9idWZfcHV0YyhcXHUwMDI2c3RhdGUtXFx1MDAzZXBwX2J1ZiwgJ1xcXFxuJyk7XFxuIFxcbiBcXHRvZl9ub2RlX3B1dChwYXJ0aXRpb25zX25wKTtcXG4gXFx0cmV0dXJuIDE7XFxuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvb3NmLmMgYi9ibG9jay9wYXJ0aXRpb25zL29zZi5jXFxuaW5kZXggMmE2OTI1ODRkYmE5MWEuLjZmODNkNDc1OWE1ZDRiIDEwMDY0NFxcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvb3NmLmNcXG4rKysgYi9ibG9jay9wYXJ0aXRpb25zL29zZi5jXFxuQEAgLTgxLDcgKzgxLDcgQEAgaW50IG9zZl9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcXG4gXFx0XFx0XFx0XFx0bGUzMl90b19jcHUocGFydGl0aW9uLVxcdTAwM2VwX3NpemUpKTtcXG4gXFx0XFx0c2xvdCsrO1xcbiBcXHR9XFxuLVxcdHNlcV9idWZfcHV0cyhcXHUwMDI2c3RhdGUtXFx1MDAzZXBwX2J1ZiwgXFxcIlxcXFxuXFxcIik7XFxuK1xcdHNlcV9idWZfcHV0YyhcXHUwMDI2c3RhdGUtXFx1MDAzZXBwX2J1ZiwgJ1xcXFxuJyk7XFxuIFxcdHB1dF9kZXZfc2VjdG9yKHNlY3QpO1xcbiBcXHRyZXR1cm4gMTtcXG4gfVxcbmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL3NnaS5jIGIvYmxvY2svcGFydGl0aW9ucy9zZ2kuY1xcbmluZGV4IDIzODNjYTYzY2Q2NjQ1Li5mNzQzZTM1ODM0MTc1OCAxMDA2NDRcXG4tLS0gYS9ibG9jay9wYXJ0aXRpb25zL3NnaS5jXFxuKysrIGIvYmxvY2svcGFydGl0aW9ucy9zZ2kuY1xcbkBAIC03OSw3ICs3OSw3IEBAIGludCBzZ2lfcGFydGl0aW9uKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpXFxuIFxcdFxcdH1cXG4gXFx0XFx0c2xvdCsrO1xcbiBcXHR9XFxuLVxcdHNlcV9idWZfcHV0cyhcXHUwMDI2c3RhdGUtXFx1MDAzZXBwX2J1ZiwgXFxcIlxcXFxuXFxcIik7XFxuK1xcdHNlcV9idWZfcHV0YyhcXHUwMDI2c3RhdGUtXFx1MDAzZXBwX2J1ZiwgJ1xcXFxuJyk7XFxuIFxcdHB1dF9kZXZfc2VjdG9yKHNlY3QpO1xcbiBcXHRyZXR1cm4gMTtcXG4gfVxcbmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL3N1bi5jIGIvYmxvY2svcGFydGl0aW9ucy9zdW4uY1xcbmluZGV4IDkyYzY0NWZjZDJlMDliLi5jNzFiYWQ3OGYzNGFmMCAxMDA2NDRcXG4tLS0gYS9ibG9jay9wYXJ0aXRpb25zL3N1bi5jXFxuKysrIGIvYmxvY2svcGFydGl0aW9ucy9zdW4uY1xcbkBAIC0xMjEsNyArMTIxLDcgQEAgaW50IHN1bl9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcXG4gXFx0XFx0fVxcbiBcXHRcXHRzbG90Kys7XFxuIFxcdH1cXG4tXFx0c2VxX2J1Zl9wdXRzKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCBcXFwiXFxcXG5cXFwiKTtcXG4rXFx0c2VxX2J1Zl9wdXRjKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCAnXFxcXG4nKTtcXG4gXFx0cHV0X2Rldl9zZWN0b3Ioc2VjdCk7XFxuIFxcdHJldHVybiAxO1xcbiB9XFxuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvc3lzdjY4LmMgYi9ibG9jay9wYXJ0aXRpb25zL3N5c3Y2OC5jXFxuaW5kZXggNDcwZTBmOWRlN2JlMzguLjMxZDM0OGFjMmRmYjNlIDEwMDY0NFxcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvc3lzdjY4LmNcXG4rKysgYi9ibG9jay9wYXJ0aXRpb25zL3N5c3Y2OC5jXFxuQEAgLTg2LDcgKzg2LDcgQEAgaW50IHN5c3Y2OF9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcXG4gXFx0XFx0fVxcbiBcXHRcXHRzbG90Kys7XFxuIFxcdH1cXG4tXFx0c2VxX2J1Zl9wdXRzKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCBcXFwiXFxcXG5cXFwiKTtcXG4rXFx0c2VxX2J1Zl9wdXRjKFxcdTAwMjZzdGF0ZS1cXHUwMDNlcHBfYnVmLCAnXFxcXG4nKTtcXG4gXFx0cHV0X2Rldl9zZWN0b3Ioc2VjdCk7XFxuIFxcdHJldHVybiAxO1xcbiB9XFxuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvdWx0cml4LmMgYi9ibG9jay9wYXJ0aXRpb25zL3VsdHJpeC5jXFxuaW5kZXggYjRiOWRkYzU3YTVkNmYuLjhhYzQyZmRhMjVkMTYxIDEwMDY0NFxcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvdWx0cml4LmNcXG4rKysgYi9ibG9jay9wYXJ0aXRpb25zL3VsdHJpeC5jXFxuQEAgLTM5LDcgKzM5LDcgQEAgaW50IHVsdHJpeF9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcXG4gXFx0XFx0XFx0XFx0XFx0ICAgICAgbGFiZWwtXFx1MDAzZXB0X3BhcnRbaV0ucGlfYmxrb2ZmLFxcbiBcXHRcXHRcXHRcXHRcXHQgICAgICBsYWJlbC1cXHUwMDNlcHRfcGFydFtpXS5waV9uYmxvY2tzKTtcXG4gXFx0XFx0cHV0X2Rldl9zZWN0b3Ioc2VjdCk7XFxuLVxcdFxcdHNlcV9idWZfcHV0cyhcXHUwMDI2c3RhdGUtXFx1MDAzZXBwX2J1ZiwgXFxcIlxcXFxuXFxcIik7XFxuK1xcdFxcdHNlcV9idWZfcHV0YyhcXHUwMDI2c3RhdGUtXFx1MDAzZXBwX2J1ZiwgJ1xcXFxuJyk7XFxuIFxcdFxcdHJldHVybiAxO1xcbiBcXHR9IGVsc2Uge1xcbiBcXHRcXHRwdXRfZGV2X3NlY3RvcihzZWN0KTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjlUMDc6NDc6MDguMzc0MTQzMjk4WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MzA3NzA4NDMzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IHJlcGxhY2VzIGBzZXFfYnVmX3B1dHNgIHdpdGggYHNlcV9idWZfcHV0Y2AgZm9yIHByaW50aW5nIGEgc2luZ2xlIG5ld2xpbmUgY2hhcmFjdGVyIGluIHZhcmlvdXMgcGFydGl0aW9uIHBhcnNlcnMuIFRoaXMgaXMgYSBtaW5vciBvcHRpbWl6YXRpb24vY2xlYW51cCB0aGF0IGRvZXMgbm90IGZ1bmN0aW9uYWxseSBhbHRlciB0aGUgZXhlY3V0aW9uIGZsb3cgb3IgbG9naWMgb2YgdGhlIGtlcm5lbC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZGQ2ZTIyNTI3NWZjNTYxYjU3ZjM4OWJiZTdlZWU2MGUzOGFjNWY0OFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gSnVuIDI5IDA3OjQ3OjA2IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy9hY29ybi5jIGIvYmxvY2svcGFydGl0aW9ucy9hY29ybi5jXG5pbmRleCAwNjdkNmEyN2EzYmRmMy4uYzQ4MjUwNTE3NDQ4MTggMTAwNjQ0XG4tLS0gYS9ibG9jay9wYXJ0aXRpb25zL2Fjb3JuLmNcbisrKyBiL2Jsb2NrL3BhcnRpdGlvbnMvYWNvcm4uY1xuQEAgLTI5MCw3ICsyOTAsNyBAQCBpbnQgYWRmc3BhcnRfY2hlY2tfQURGUyhzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKVxuIFx0XHRcdGJyZWFrO1xuIFx0XHR9XG4gXHR9XG4tXHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcIlxcblwiKTtcbitcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICdcXG4nKTtcbiBcdHJldHVybiAxO1xuIH1cbiAjZW5kaWZcbkBAIC0zOTcsNyArMzk3LDcgQEAgaW50IGFkZnNwYXJ0X2NoZWNrX0lDUyhzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKVxuIFx0fVxuIFxuIFx0cHV0X2Rldl9zZWN0b3Ioc2VjdCk7XG4tXHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcIlxcblwiKTtcbitcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICdcXG4nKTtcbiBcdHJldHVybiAxO1xuIH1cbiAjZW5kaWZcbkBAIC00NjgsNyArNDY4LDcgQEAgaW50IGFkZnNwYXJ0X2NoZWNrX1BPV0VSVEVDKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpXG4gXHR9XG4gXG4gXHRwdXRfZGV2X3NlY3RvcihzZWN0KTtcbi1cdHNlcV9idWZfcHV0cyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsIFwiXFxuXCIpO1xuK1x0c2VxX2J1Zl9wdXRjKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgJ1xcbicpO1xuIFx0cmV0dXJuIDE7XG4gfVxuICNlbmRpZlxuQEAgLTUzOSw3ICs1MzksNyBAQCBpbnQgYWRmc3BhcnRfY2hlY2tfRUVTT1goc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcbiBcbiBcdFx0c2l6ZSA9IGdldF9jYXBhY2l0eShzdGF0ZS1cdTAwM2VkaXNrKTtcbiBcdFx0cHV0X3BhcnRpdGlvbihzdGF0ZSwgc2xvdCsrLCBzdGFydCwgc2l6ZSAtIHN0YXJ0KTtcbi1cdFx0c2VxX2J1Zl9wdXRzKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgXCJcXG5cIik7XG4rXHRcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICdcXG4nKTtcbiBcdH1cbiBcbiBcdHJldHVybiBpID8gMSA6IDA7XG5kaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy9hbWlnYS5jIGIvYmxvY2svcGFydGl0aW9ucy9hbWlnYS5jXG5pbmRleCA4MzI1MDQ2YTE0ZWI5NS4uYTI3MmY2NDQ1MGVjYzggMTAwNjQ0XG4tLS0gYS9ibG9jay9wYXJ0aXRpb25zL2FtaWdhLmNcbisrKyBiL2Jsb2NrL3BhcnRpdGlvbnMvYW1pZ2EuY1xuQEAgLTE5NCw3ICsxOTQsNyBAQCBpbnQgYW1pZ2FfcGFydGl0aW9uKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpXG4gXHRcdH1cbiBcdFx0cmVzID0gMTtcbiBcdH1cbi1cdHNlcV9idWZfcHV0cyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsIFwiXFxuXCIpO1xuK1x0c2VxX2J1Zl9wdXRjKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgJ1xcbicpO1xuIFxuIHJkYl9kb25lOlxuIFx0cmV0dXJuIHJlcztcbmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL2F0YXJpLmMgYi9ibG9jay9wYXJ0aXRpb25zL2F0YXJpLmNcbmluZGV4IDI0MzhkMTQ0OGYzODJjLi41ODg2M2MxYTI3MjM4NSAxMDA2NDRcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvYXRhcmkuY1xuKysrIGIvYmxvY2svcGFydGl0aW9ucy9hdGFyaS5jXG5AQCAtMTUwLDcgKzE1MCw3IEBAIGludCBhdGFyaV9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcbiAjZW5kaWZcbiBcdHB1dF9kZXZfc2VjdG9yKHNlY3QpO1xuIFxuLVx0c2VxX2J1Zl9wdXRzKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgXCJcXG5cIik7XG4rXHRzZXFfYnVmX3B1dGMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCAnXFxuJyk7XG4gXG4gXHRyZXR1cm4gMTtcbiB9XG5kaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy9jbWRsaW5lLmMgYi9ibG9jay9wYXJ0aXRpb25zL2NtZGxpbmUuY1xuaW5kZXggNGZkNTJlZDE1NGI0ZTguLjUwMDc1ZWNjYWFkZTQ0IDEwMDY0NFxuLS0tIGEvYmxvY2svcGFydGl0aW9ucy9jbWRsaW5lLmNcbisrKyBiL2Jsb2NrL3BhcnRpdGlvbnMvY21kbGluZS5jXG5AQCAtMzc3LDcgKzM3Nyw3IEBAIGludCBjbWRsaW5lX3BhcnRpdGlvbihzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKVxuIFx0Y21kbGluZV9wYXJ0c19zZXQocGFydHMsIGRpc2tfc2l6ZSwgc3RhdGUpO1xuIFx0Y21kbGluZV9wYXJ0c192ZXJpZmllcigxLCBzdGF0ZSk7XG4gXG4tXHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcIlxcblwiKTtcbitcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICdcXG4nKTtcbiBcbiBcdHJldHVybiAxO1xuIH1cbmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL2VmaS5jIGIvYmxvY2svcGFydGl0aW9ucy9lZmkuY1xuaW5kZXggOTg2NWQ1OTA5M2ZhYzAuLjY1MGI5MWVmYzgzMmFmIDEwMDY0NFxuLS0tIGEvYmxvY2svcGFydGl0aW9ucy9lZmkuY1xuKysrIGIvYmxvY2svcGFydGl0aW9ucy9lZmkuY1xuQEAgLTc1MSw2ICs3NTEsNiBAQCBpbnQgZWZpX3BhcnRpdGlvbihzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKVxuIFx0fVxuIFx0a2ZyZWUocHRlcyk7XG4gXHRrZnJlZShncHQpO1xuLVx0c2VxX2J1Zl9wdXRzKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgXCJcXG5cIik7XG4rXHRzZXFfYnVmX3B1dGMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCAnXFxuJyk7XG4gXHRyZXR1cm4gMTtcbiB9XG5kaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy9pYm0uYyBiL2Jsb2NrL3BhcnRpdGlvbnMvaWJtLmNcbmluZGV4IDU0MDQ3ZTcyMmE5ZDk0Li5hNTdkZTNiMTkyZmMyMSAxMDA2NDRcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvaWJtLmNcbisrKyBiL2Jsb2NrL3BhcnRpdGlvbnMvaWJtLmNcbkBAIC0yMTcsNyArMjE3LDcgQEAgc3RhdGljIGludCBmaW5kX3ZvbDFfcGFydGl0aW9ucyhzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlLFxuIFx0XHRibGsrKztcbiBcdFx0ZGF0YSA9IHJlYWRfcGFydF9zZWN0b3Ioc3RhdGUsIGJsayAqIHNlY3BlcmJsaywgXHUwMDI2c2VjdCk7XG4gXHR9XG4tXHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcIlxcblwiKTtcbitcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICdcXG4nKTtcbiBcbiBcdGlmICghZGF0YSlcbiBcdFx0cmV0dXJuIC0xO1xuQEAgLTI1NCw3ICsyNTQsNyBAQCBzdGF0aWMgaW50IGZpbmRfbG54MV9wYXJ0aXRpb25zKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUsXG4gXHRcdHNpemUgPSBucl9zZWN0b3JzO1xuIFx0XHRpZiAoc2l6ZSAhPSBnZW9fc2l6ZSkge1xuIFx0XHRcdGlmICghaW5mbykge1xuLVx0XHRcdFx0c2VxX2J1Zl9wdXRzKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgXCJcXG5cIik7XG4rXHRcdFx0XHRzZXFfYnVmX3B1dGMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCAnXFxuJyk7XG4gXHRcdFx0XHRyZXR1cm4gMTtcbiBcdFx0XHR9XG4gXHRcdFx0aWYgKCFzdHJjbXAoaW5mby1cdTAwM2V0eXBlLCBcIkVDS0RcIikpXG5AQCAtMjY2LDcgKzI2Niw3IEBAIHN0YXRpYyBpbnQgZmluZF9sbngxX3BhcnRpdGlvbnMoc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSxcbiBcdC8qIGZpcnN0IGFuZCBvbmx5IHBhcnRpdGlvbiBzdGFydHMgaW4gdGhlIGZpcnN0IGJsb2NrIGFmdGVyIHRoZSBsYWJlbCAqL1xuIFx0b2Zmc2V0ID0gbGFiZWxzZWN0ICsgc2VjcGVyYmxrO1xuIFx0cHV0X3BhcnRpdGlvbihzdGF0ZSwgMSwgb2Zmc2V0LCBzaXplIC0gb2Zmc2V0KTtcbi1cdHNlcV9idWZfcHV0cyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsIFwiXFxuXCIpO1xuK1x0c2VxX2J1Zl9wdXRjKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgJ1xcbicpO1xuIFx0cmV0dXJuIDE7XG4gfVxuIFxuQEAgLTMwNyw3ICszMDcsNyBAQCBzdGF0aWMgaW50IGZpbmRfY21zMV9wYXJ0aXRpb25zKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUsXG4gXHR9XG4gXG4gXHRwdXRfcGFydGl0aW9uKHN0YXRlLCAxLCBvZmZzZXQsIHNpemUtb2Zmc2V0KTtcbi1cdHNlcV9idWZfcHV0cyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsIFwiXFxuXCIpO1xuK1x0c2VxX2J1Zl9wdXRjKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgJ1xcbicpO1xuIFx0cmV0dXJuIDE7XG4gfVxuIFxuQEAgLTM4OCw3ICszODgsNyBAQCBpbnQgaWJtX3BhcnRpdGlvbihzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKVxuIFx0XHRcdHNpemUgPSBucl9zZWN0b3JzO1xuIFx0XHRcdG9mZnNldCA9IChpbmZvLVx1MDAzZWxhYmVsX2Jsb2NrICsgMSkgKiAoYmxvY2tzaXplIFx1MDAzZVx1MDAzZSA5KTtcbiBcdFx0XHRwdXRfcGFydGl0aW9uKHN0YXRlLCAxLCBvZmZzZXQsIHNpemUtb2Zmc2V0KTtcbi1cdFx0XHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcIlxcblwiKTtcbitcdFx0XHRzZXFfYnVmX3B1dGMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCAnXFxuJyk7XG4gXHRcdH1cbiBcdH0gZWxzZVxuIFx0XHRyZXMgPSAwO1xuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMva2FybWEuYyBiL2Jsb2NrL3BhcnRpdGlvbnMva2FybWEuY1xuaW5kZXggYTRlM2M1MDUwMTc3NjcuLmIwYWI4NDE2OTUzOGU5IDEwMDY0NFxuLS0tIGEvYmxvY2svcGFydGl0aW9ucy9rYXJtYS5jXG4rKysgYi9ibG9jay9wYXJ0aXRpb25zL2thcm1hLmNcbkBAIC01Myw3ICs1Myw3IEBAIGludCBrYXJtYV9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcbiBcdFx0fVxuIFx0XHRzbG90Kys7XG4gXHR9XG4tXHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcIlxcblwiKTtcbitcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICdcXG4nKTtcbiBcdHB1dF9kZXZfc2VjdG9yKHNlY3QpO1xuIFx0cmV0dXJuIDE7XG4gfVxuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvbGRtLmMgYi9ibG9jay9wYXJ0aXRpb25zL2xkbS5jXG5pbmRleCBjMGJkY2FlNThhM2VlMC4uZDFiYmM5ZmIwOWY5MzkgMTAwNjQ0XG4tLS0gYS9ibG9jay9wYXJ0aXRpb25zL2xkbS5jXG4rKysgYi9ibG9jay9wYXJ0aXRpb25zL2xkbS5jXG5AQCAtNTk3LDcgKzU5Nyw3IEBAIHN0YXRpYyBib29sIGxkbV9jcmVhdGVfZGF0YV9wYXJ0aXRpb25zIChzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnBwLFxuIFx0XHRwYXJ0X251bSsrO1xuIFx0fVxuIFxuLVx0c2VxX2J1Zl9wdXRzKFx1MDAyNnBwLVx1MDAzZXBwX2J1ZiwgXCJcXG5cIik7XG4rXHRzZXFfYnVmX3B1dGMoXHUwMDI2cHAtXHUwMDNlcHBfYnVmLCAnXFxuJyk7XG4gXHRyZXR1cm4gdHJ1ZTtcbiB9XG4gXG5kaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy9tYWMuYyBiL2Jsb2NrL3BhcnRpdGlvbnMvbWFjLmNcbmluZGV4IGRmMDNjYTQyOGUxNTc0Li5iYjU3MGI1YTZlYWFiMiAxMDA2NDRcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvbWFjLmNcbisrKyBiL2Jsb2NrL3BhcnRpdGlvbnMvbWFjLmNcbkBAIC0xNTIsNiArMTUyLDYgQEAgaW50IG1hY19wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcbiAjZW5kaWZcbiBcbiBcdHB1dF9kZXZfc2VjdG9yKHNlY3QpO1xuLVx0c2VxX2J1Zl9wdXRzKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgXCJcXG5cIik7XG4rXHRzZXFfYnVmX3B1dGMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCAnXFxuJyk7XG4gXHRyZXR1cm4gMTtcbiB9XG5kaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy9tc2Rvcy5jIGIvYmxvY2svcGFydGl0aW9ucy9tc2Rvcy5jXG5pbmRleCAyMDBlYTUzZWE2YTJjOC4uNGE5NjU0MWY1MzUxNWUgMTAwNjQ0XG4tLS0gYS9ibG9jay9wYXJ0aXRpb25zL21zZG9zLmNcbisrKyBiL2Jsb2NrL3BhcnRpdGlvbnMvbXNkb3MuY1xuQEAgLTYwOCw3ICs2MDgsNyBAQCBpbnQgbXNkb3NfcGFydGl0aW9uKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpXG4gXHRcdFx0ZmIgPSAoc3RydWN0IGZhdF9ib290X3NlY3RvciAqKSBkYXRhO1xuIFx0XHRcdGlmIChzbG90ID09IDEgXHUwMDI2XHUwMDI2IGZiLVx1MDAzZXJlc2VydmVkIFx1MDAyNlx1MDAyNiBmYi1cdTAwM2VmYXRzXG4gXHRcdFx0XHRcdTAwMjZcdTAwMjYgZmF0X3ZhbGlkX21lZGlhKGZiLVx1MDAzZW1lZGlhKSkge1xuLVx0XHRcdFx0c2VxX2J1Zl9wdXRzKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgXCJcXG5cIik7XG4rXHRcdFx0XHRzZXFfYnVmX3B1dGMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCAnXFxuJyk7XG4gXHRcdFx0XHRwdXRfZGV2X3NlY3RvcihzZWN0KTtcbiBcdFx0XHRcdHJldHVybiAxO1xuIFx0XHRcdH0gZWxzZSB7XG5AQCAtNjcyLDcgKzY3Miw3IEBAIGludCBtc2Rvc19wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcbiBcdFx0XHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcIltFWkRdXCIpO1xuIFx0fVxuIFxuLVx0c2VxX2J1Zl9wdXRzKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgXCJcXG5cIik7XG4rXHRzZXFfYnVmX3B1dGMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCAnXFxuJyk7XG4gXG4gXHQvKiBzZWNvbmQgcGFzcyAtIG91dHB1dCBmb3IgZWFjaCBvbiBhIHNlcGFyYXRlIGxpbmUgKi9cbiBcdHAgPSAoc3RydWN0IG1zZG9zX3BhcnRpdGlvbiAqKSAoMHgxYmUgKyBkYXRhKTtcbmRpZmYgLS1naXQgYS9ibG9jay9wYXJ0aXRpb25zL29mLmMgYi9ibG9jay9wYXJ0aXRpb25zL29mLmNcbmluZGV4IDUzNjY0ZWEwNmI2NTQwLi43ODAzZTZmNGVjZGQ5OCAxMDA2NDRcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvb2YuY1xuKysrIGIvYmxvY2svcGFydGl0aW9ucy9vZi5jXG5AQCAtMTA0LDcgKzEwNCw3IEBAIGludCBvZl9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcbiBcdFx0c2xvdCsrO1xuIFx0fVxuIFxuLVx0c2VxX2J1Zl9wdXRzKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgXCJcXG5cIik7XG4rXHRzZXFfYnVmX3B1dGMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCAnXFxuJyk7XG4gXG4gXHRvZl9ub2RlX3B1dChwYXJ0aXRpb25zX25wKTtcbiBcdHJldHVybiAxO1xuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvb3NmLmMgYi9ibG9jay9wYXJ0aXRpb25zL29zZi5jXG5pbmRleCAyYTY5MjU4NGRiYTkxYS4uNmY4M2Q0NzU5YTVkNGIgMTAwNjQ0XG4tLS0gYS9ibG9jay9wYXJ0aXRpb25zL29zZi5jXG4rKysgYi9ibG9jay9wYXJ0aXRpb25zL29zZi5jXG5AQCAtODEsNyArODEsNyBAQCBpbnQgb3NmX3BhcnRpdGlvbihzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKVxuIFx0XHRcdFx0bGUzMl90b19jcHUocGFydGl0aW9uLVx1MDAzZXBfc2l6ZSkpO1xuIFx0XHRzbG90Kys7XG4gXHR9XG4tXHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcIlxcblwiKTtcbitcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICdcXG4nKTtcbiBcdHB1dF9kZXZfc2VjdG9yKHNlY3QpO1xuIFx0cmV0dXJuIDE7XG4gfVxuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvc2dpLmMgYi9ibG9jay9wYXJ0aXRpb25zL3NnaS5jXG5pbmRleCAyMzgzY2E2M2NkNjY0NS4uZjc0M2UzNTgzNDE3NTggMTAwNjQ0XG4tLS0gYS9ibG9jay9wYXJ0aXRpb25zL3NnaS5jXG4rKysgYi9ibG9jay9wYXJ0aXRpb25zL3NnaS5jXG5AQCAtNzksNyArNzksNyBAQCBpbnQgc2dpX3BhcnRpdGlvbihzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKVxuIFx0XHR9XG4gXHRcdHNsb3QrKztcbiBcdH1cbi1cdHNlcV9idWZfcHV0cyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsIFwiXFxuXCIpO1xuK1x0c2VxX2J1Zl9wdXRjKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgJ1xcbicpO1xuIFx0cHV0X2Rldl9zZWN0b3Ioc2VjdCk7XG4gXHRyZXR1cm4gMTtcbiB9XG5kaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy9zdW4uYyBiL2Jsb2NrL3BhcnRpdGlvbnMvc3VuLmNcbmluZGV4IDkyYzY0NWZjZDJlMDliLi5jNzFiYWQ3OGYzNGFmMCAxMDA2NDRcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvc3VuLmNcbisrKyBiL2Jsb2NrL3BhcnRpdGlvbnMvc3VuLmNcbkBAIC0xMjEsNyArMTIxLDcgQEAgaW50IHN1bl9wYXJ0aXRpb24oc3RydWN0IHBhcnNlZF9wYXJ0aXRpb25zICpzdGF0ZSlcbiBcdFx0fVxuIFx0XHRzbG90Kys7XG4gXHR9XG4tXHRzZXFfYnVmX3B1dHMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCBcIlxcblwiKTtcbitcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICdcXG4nKTtcbiBcdHB1dF9kZXZfc2VjdG9yKHNlY3QpO1xuIFx0cmV0dXJuIDE7XG4gfVxuZGlmZiAtLWdpdCBhL2Jsb2NrL3BhcnRpdGlvbnMvc3lzdjY4LmMgYi9ibG9jay9wYXJ0aXRpb25zL3N5c3Y2OC5jXG5pbmRleCA0NzBlMGY5ZGU3YmUzOC4uMzFkMzQ4YWMyZGZiM2UgMTAwNjQ0XG4tLS0gYS9ibG9jay9wYXJ0aXRpb25zL3N5c3Y2OC5jXG4rKysgYi9ibG9jay9wYXJ0aXRpb25zL3N5c3Y2OC5jXG5AQCAtODYsNyArODYsNyBAQCBpbnQgc3lzdjY4X3BhcnRpdGlvbihzdHJ1Y3QgcGFyc2VkX3BhcnRpdGlvbnMgKnN0YXRlKVxuIFx0XHR9XG4gXHRcdHNsb3QrKztcbiBcdH1cbi1cdHNlcV9idWZfcHV0cyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsIFwiXFxuXCIpO1xuK1x0c2VxX2J1Zl9wdXRjKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgJ1xcbicpO1xuIFx0cHV0X2Rldl9zZWN0b3Ioc2VjdCk7XG4gXHRyZXR1cm4gMTtcbiB9XG5kaWZmIC0tZ2l0IGEvYmxvY2svcGFydGl0aW9ucy91bHRyaXguYyBiL2Jsb2NrL3BhcnRpdGlvbnMvdWx0cml4LmNcbmluZGV4IGI0YjlkZGM1N2E1ZDZmLi44YWM0MmZkYTI1ZDE2MSAxMDA2NDRcbi0tLSBhL2Jsb2NrL3BhcnRpdGlvbnMvdWx0cml4LmNcbisrKyBiL2Jsb2NrL3BhcnRpdGlvbnMvdWx0cml4LmNcbkBAIC0zOSw3ICszOSw3IEBAIGludCB1bHRyaXhfcGFydGl0aW9uKHN0cnVjdCBwYXJzZWRfcGFydGl0aW9ucyAqc3RhdGUpXG4gXHRcdFx0XHRcdCAgICAgIGxhYmVsLVx1MDAzZXB0X3BhcnRbaV0ucGlfYmxrb2ZmLFxuIFx0XHRcdFx0XHQgICAgICBsYWJlbC1cdTAwM2VwdF9wYXJ0W2ldLnBpX25ibG9ja3MpO1xuIFx0XHRwdXRfZGV2X3NlY3RvcihzZWN0KTtcbi1cdFx0c2VxX2J1Zl9wdXRzKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgXCJcXG5cIik7XG4rXHRcdHNlcV9idWZfcHV0YyhcdTAwMjZzdGF0ZS1cdTAwM2VwcF9idWYsICdcXG4nKTtcbiBcdFx0cmV0dXJuIDE7XG4gXHR9IGVsc2Uge1xuIFx0XHRwdXRfZGV2X3NlY3RvcihzZWN0KTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA3OjQ3OjA4LjM3NDE0NDgwOFoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUzMDc2NTc4NzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgUHJvcG9zZWQgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGJlZW4gcHJlc2VudGVkIHdpdGggYSBwYXRjaCB0YXJnZXRpbmcgc29tZSBwYXJ0aXRpb24gcGFyc2VycyB3aXRoaW4gYGJsb2NrL3BhcnRpdGlvbnMvYC4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSByZXZvbHZlcyBhcm91bmQgcmVwbGFjaW5nIGluc3RhbmNlcyBvZiBgc2VxX2J1Zl9wdXRzKFx1MDAyNnN0YXRlLVx1MDAzZXBwX2J1ZiwgXCJcXG5cIik7YCB3aXRoIGBzZXFfYnVmX3B1dGMoXHUwMDI2c3RhdGUtXHUwMDNlcHBfYnVmLCAnXFxuJyk7YC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgdGhpcyBpcyBwdXJlbHkgY29zbWV0aWMg4oCTIGFuIG9wdGltaXphdGlvbi4gSXQncyBub3QgbW9kaWZ5aW5nIHRoZSBwcm9ncmFtJ3MgbG9naWMgb3IgYWx0ZXJpbmcgYW55IGV4ZWN1dGlvbiBwYXRocywganVzdCBzd2l0Y2hpbmcgZnJvbSBwcmludGluZyBhIHN0cmluZyBsaXRlcmFsIG5ld2xpbmUgdG8gcHJpbnRpbmcgdGhlIG5ld2xpbmUgY2hhcmFjdGVyIGRpcmVjdGx5LiBUaGVyZWZvcmUsIEkgZG9uJ3Qgc2VlIGFueSBpbW1lZGlhdGUgdmFsdWUgaW4gZnV6emluZyB0aGlzIHNwZWNpZmljIGNoYW5nZS5cblxuVG8gYmUgYWJzb2x1dGVseSBjZXJ0YWluLCBJJ3ZlIGp1c3QgZG91YmxlLWNoZWNrZWQgdGhlIHVuZGVybHlpbmcgZnVuY3Rpb25zLiBgc2VxX2J1Zl9wdXRzYCBpbnRlcm5hbGx5IGNhbGN1bGF0ZXMgdGhlIHN0cmluZyBsZW5ndGggYW5kIHRoZW4gY2FsbHMgYHNlcV9idWZfcHV0bWVtYC4gYHNlcV9idWZfcHV0Y2AsIG9uIHRoZSBvdGhlciBoYW5kLCBkaXJlY3RseSBwbGFjZXMgdGhlIGNoYXJhY3RlciBpbiB0aGUgYnVmZmVyLiAgQ3J1Y2lhbGx5LCB0aGUgbmV0IGVmZmVjdCBvbiB0aGUgYnVmZmVyJ3MgY29udGVudHMgd2lsbCBiZSAqaWRlbnRpY2FsKi4gVGhpcyBjb25maXJtcyBpdDsgaXQgaXMgYSBtaW5vciBvcHRpbWl6YXRpb24uXG5cblRoZXJlZm9yZSwgSSdtIGdvaW5nIHRvIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTUxOCwiT3V0cHV0VG9rZW5zIjo4NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5NiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI5VDA3OjQ3OjEzLjY4MTgwNjM1MVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzI5NDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSByZXBsYWNlcyBgc2VxX2J1Zl9wdXRzYCB3aXRoIGBzZXFfYnVmX3B1dGNgIGZvciBwcmludGluZyBhIHNpbmdsZSBuZXdsaW5lIGNoYXJhY3RlciBpbiB2YXJpb3VzIHBhcnRpdGlvbiBwYXJzZXJzLiBUaGlzIGlzIGEgbWlub3Igb3B0aW1pemF0aW9uL2NsZWFudXAgdGhhdCBkb2VzIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgdGhlIGV4ZWN1dGlvbiBmbG93IG9yIGxvZ2ljIG9mIHRoZSBrZXJuZWwuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IHJlcGxhY2VzIGBzZXFfYnVmX3B1dHNgIHdpdGggYHNlcV9idWZfcHV0Y2AgZm9yIHByaW50aW5nIGEgc2luZ2xlIG5ld2xpbmUgY2hhcmFjdGVyIGluIHZhcmlvdXMgcGFydGl0aW9uIHBhcnNlcnMuIFRoaXMgaXMgYSBtaW5vciBvcHRpbWl6YXRpb24vY2xlYW51cCB0aGF0IGRvZXMgbm90IGZ1bmN0aW9uYWxseSBhbHRlciB0aGUgZXhlY3V0aW9uIGZsb3cgb3IgbG9naWMgb2YgdGhlIGtlcm5lbC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },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-workflowgtf2v[1] Phase: Running StartedAt: 2026-06-29 07:47:27 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowgtf2v[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-06-29 07:47:27 +0000 UTC FinishedAt: 2026-06-29 07:47:34 +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,}