Name: series-workflowmf8d2 Phase: Failed StartedAt: 2026-08-24 22:53:21 +0000 UTC FinishedAt: 2026-08-24 23:37:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmf8d2[0] Phase: Succeeded StartedAt: 2026-08-24 22:53:21 +0000 UTC FinishedAt: 2026-08-24 23:37:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmf8d2[0].run-triage Phase: Succeeded StartedAt: 2026-08-24 22:53:21 +0000 UTC FinishedAt: 2026-08-24 23:37:32 +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+CgkJCTx0ZD4yMDI2LzA4LzI0IDIzOjM3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBCUEYgc2VsZnRlc3RzIGluIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi8gdG8gYWRkIGEgX19za2lwIHRhZyBhbmQgZml4IHNvbWUgdGVzdCBjb21waWxhdGlvbiBpc3N1ZXMuIEl0IGRvZXMgbm90IG1ha2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIGNvZGUgaXRzZWxmLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAyMzozNzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDhkMzVmNGI1YWFhODAzNWFkMjg4YjcxODk3YjU2ZDdmYTgwNzJhMTlcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAyNCAyMzozNzowNiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYXJlbmFfa2Z1bmMuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9hcmVuYV9rZnVuYy5jXG5pbmRleCBiZjBkMzA0ZTBlNTljLi41MDYwOWYzYjA1NjRhIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2FyZW5hX2tmdW5jLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9hcmVuYV9rZnVuYy5jXG5AQCAtMjMzLDggJiM0MzsyMzMsOSBAQCBTRUMoXCYjMzQ7c3lzY2FsbFwmIzM0OylcbiBfX2FyY2hfeDg2XzY0XG4gX19hcmNoX2FybTY0XG4gX19kZXNjcmlwdGlvbihcJiMzNDthcmVuYV9hcmdfc3RhY2s6IG5vdCBzdXBwb3J0ZWQsIGR1bW15IHRlc3RcJiMzNDspXG4mIzQzO19fc2tpcChcJiMzNDthcmVuYV9hcmdfc3RhY2s6IG5vdCBzdXBwb3J0ZWRcJiMzNDspXG4gX19zdWNjZXNzXG4taW50IGFyZW5hX2FyZ19zdGFjayh2b2lkICpjdHgpXG4mIzQzO2ludCBkdW1teV90ZXN0KHZvaWQgKmN0eClcbiB7XG4gXHRyZXR1cm4gMDtcbiB9XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9taXNjLmggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX21pc2MuaFxuaW5kZXggNWVhY2YxYjQzMjUyMS4uZWI4OGQ5Y2U2YzM0OCAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfbWlzYy5oXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX21pc2MuaFxuQEAgLTEwNiw2ICYjNDM7MTA2LDExIEBAXG4gICogX19kZXNjcmlwdGlvbiAgICAgVGV4dCB0byBiZSB1c2VkIGZvciBkaXNwbGF5IGFuZCBhcyBhbiBhZGRpdGlvbmFsIGZpbHRlclxuICAqICAgICAgICAgICAgICAgICAgIGFsaWFzLCB3aGlsZSB0aGUgb3JpZ2luYWwgcHJvZ3JhbSBuYW1lIHN0YXlzIG1hdGNoYWJsZS5cbiAgKlxuJiM0MzsgKiBfX3NraXAgICAgICAgICAgICBSZXBvcnQgdGhlIHRlc3QgYXMgU0tJUCB3aXRoIHRoZSBnaXZlbiByZWFzb24gaW5zdGVhZCBvZlxuJiM0MzsgKiAgICAgICAgICAgICAgICAgICBydW5uaW5nIGl0LiBGb3IgcGxhY2Vob2xkZXIgcHJvZ3JhbXMgdGhhdCBzdGFuZCBpbiBmb3IgYVxuJiM0MzsgKiAgICAgICAgICAgICAgICAgICBmZWF0dXJlIHRoZSB0b29sY2hhaW4gb3IgSklUIGNhbm5vdCBwcm92aWRlLCBzbyBhIHJ1biBkb2VzXG4mIzQzOyAqICAgICAgICAgICAgICAgICAgIG5vdCByZXBvcnQgT0sgZm9yIGNvdmVyYWdlIGl0IG5ldmVyIGV4ZWN1dGVkLlxuJiM0MzsgKlxuICAqIF9fbG9nX2xldmVsICAgICAgIExvZyBsZXZlbCB0byB1c2UgZm9yIHRoZSBwcm9ncmFtLCBudW1lcmljIHZhbHVlIGV4cGVjdGVkLlxuICAqXG4gICogX19mbGFnICAgICAgICAgICAgQWRkcyBvbmUgZmxhZyB1c2UgZm9yIHRoZSBwcm9ncmFtLCB0aGUgZm9sbG93aW5nIHZhbHVlcyBhcmUgdmFsaWQ6XG5AQCAtMTM5LDYgJiM0MzsxNDQsNyBAQFxuICNkZWZpbmUgX19mYWlsdXJlXHRcdF9fdGVzdF90YWcoXCYjMzQ7dGVzdF9leHBlY3RfZmFpbHVyZVwmIzM0OylcbiAjZGVmaW5lIF9fc3VjY2Vzc1x0XHRfX3Rlc3RfdGFnKFwmIzM0O3Rlc3RfZXhwZWN0X3N1Y2Nlc3NcJiMzNDspXG4gI2RlZmluZSBfX2Rlc2NyaXB0aW9uKGRlc2MpXHRfX3Rlc3RfdGFnKFwmIzM0O3Rlc3RfZGVzY3JpcHRpb249XCYjMzQ7IGRlc2MpXG4mIzQzOyNkZWZpbmUgX19za2lwKHJlYXNvbilcdFx0X190ZXN0X3RhZyhcJiMzNDt0ZXN0X3NraXA9XCYjMzQ7IHJlYXNvbilcbiAjZGVmaW5lIF9fbXNnX3VucHJpdihtc2cpXHRfX3Rlc3RfdGFnKFwmIzM0O3Rlc3RfZXhwZWN0X21zZ191bnByaXY9XCYjMzQ7IG1zZylcbiAjZGVmaW5lIF9fbm90X21zZ191bnByaXYobXNnKVx0X190ZXN0X3RhZyhcJiMzNDt0ZXN0X2V4cGVjdF9ub3RfbXNnX3VucHJpdj1cJiMzNDsgbXNnKVxuICNkZWZpbmUgX194bGF0ZWRfdW5wcml2KG1zZylcdF9fdGVzdF90YWcoXCYjMzQ7dGVzdF9leHBlY3RfeGxhdGVkX3VucHJpdj1cJiMzNDsgbXNnKVxuQEAgLTI1NSwxMSAmIzQzOzI2MSwxMSBAQFxuICAgICAgKGRlZmluZWQoX19UQVJHRVRfQVJDSF9yaXNjdikgXHUwMDI2XHUwMDI2IF9fcmlzY3ZfeGxlbiA9PSA2NCkgfHxcdFx0XFxcbiAgICAgIGRlZmluZWQoX19UQVJHRVRfQVJDSF9hcm0pIHx8IGRlZmluZWQoX19UQVJHRVRfQVJDSF9zMzkwKSB8fFx0XFxcbiAgICAgIGRlZmluZWQoX19UQVJHRVRfQVJDSF9sb29uZ2FyY2gpKSBcdTAwMjZcdTAwMjZcdFx0XHRcdFxcXG4tXHRfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOFxuJiM0MztcdChfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOCB8fCBkZWZpbmVkKF9fQlBGX0ZFQVRVUkVfR09UT0wpKVxuICNkZWZpbmUgQ0FOX1VTRV9HT1RPTFxuICNlbmRpZlxuIFxuLSNpZiBfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOFxuJiM0MzsjaWYgX19jbGFuZ19tYWpvcl9fIFx1MDAzZT0gMTggfHwgZGVmaW5lZChfX0JQRl9GRUFUVVJFX1NUKVxuICNkZWZpbmUgQ0FOX1VTRV9CUEZfU1RcbiAjZW5kaWZcbiBcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvY29tcHV0ZV9saXZlX3JlZ2lzdGVycy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2NvbXB1dGVfbGl2ZV9yZWdpc3RlcnMuY1xuaW5kZXggMzM4ZTY3Y2Q4ODU2YS4uOTQxYjY1ZmU3YzA3MSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9jb21wdXRlX2xpdmVfcmVnaXN0ZXJzLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9jb21wdXRlX2xpdmVfcmVnaXN0ZXJzLmNcbkBAIC0yOTksNyAmIzQzOzI5OSwxNSBAQCBfX25ha2VkIHZvaWQgZ290b2wodm9pZClcbiBcdFx0XCYjMzQ7cjMgPSAyNDtcJiMzNDtcbiBcdFx0XCYjMzQ7aWYgcjEgXHUwMDNlIDB4NyBnb3RvICYjNDM7MjtcJiMzNDtcbiBcdFx0XCYjMzQ7cjAgPSByMjtcJiMzNDtcbiYjNDM7I2lmZGVmIF9fY2xhbmdfX1xuIFx0XHRcJiMzNDtnb3RvbCAmIzQzOzE7XCYjMzQ7XG4mIzQzOyNlbHNlXG4mIzQzO1x0XHQvKlxuJiM0MztcdFx0ICogZ2FzIG1pcy1wYXJzZXMgJiMzOTtnb3RvbCAmIzQzOzEmIzM5OyBhcyAmIzM5O2dvdG8gbCYjNDM7MSYjMzk7LCBzYW1lIGVuY29kaW5nXG4mIzQzO1x0XHQgKiB3aXRob3V0IHRoZSBzaWduIChiaW51dGlscyBQUiBnYXMvMzQ1NTgpLlxuJiM0MztcdFx0ICovXG4mIzQzO1x0XHRcJiMzNDtnb3RvbCAxO1wmIzM0O1xuJiM0MzsjZW5kaWZcbiBcdFx0XCYjMzQ7cjAgPSByMztcJiMzNDtcbiBcdFx0XCYjMzQ7ZXhpdDtcJiMzNDtcbiBcdFx0OlxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdGFja19hcmdfZmFpbC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmNcbmluZGV4IGFkOWQ0YmZlMTVkY2MuLmVlZDk3ZDU4MjUxNTcgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RhY2tfYXJnX2ZhaWwuY1xuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmNcbkBAIC0xMDMsOCAmIzQzOzEwMyw5IEBAIF9fbmFrZWQgdm9pZCByMTFfc3RvcmVfemVyb19vZmYodm9pZClcbiBcbiBTRUMoXCYjMzQ7dGNcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDtzdGFja19hcmdfZmFpbDogbm90IHN1cHBvcnRlZCwgZHVtbXkgdGVzdFwmIzM0OylcbiYjNDM7X19za2lwKFwmIzM0O3N0YWNrX2FyZ19mYWlsOiBub3Qgc3VwcG9ydGVkXCYjMzQ7KVxuIF9fc3VjY2Vzc1xuLWludCB0ZXN0X3N0YWNrX2FyZ19iaWcoc3RydWN0IF9fc2tfYnVmZiAqc2tiKVxuJiM0MztpbnQgZHVtbXlfdGVzdChzdHJ1Y3QgX19za19idWZmICpza2IpXG4ge1xuIFx0cmV0dXJuIDA7XG4gfVxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdGFja19hcmdfcHJlY2lzaW9uLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RhY2tfYXJnX3ByZWNpc2lvbi5jXG5pbmRleCBiZWUyZWVlYzAyMWQ3Li5jZTAzMDFhNDFmYTk0IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19wcmVjaXNpb24uY1xuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19wcmVjaXNpb24uY1xuQEAgLTEyNCw2ICYjNDM7MTI0LDcgQEAgX19uYWtlZCB2b2lkIHN0YWNrX2FyZ19wcmVjaXNpb25fYnBmMmJwZih2b2lkKVxuIFxuIFNFQyhcJiMzNDtzb2NrZXRcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDtzdGFja19hcmdfcHJlY2lzaW9uOiBub3Qgc3VwcG9ydGVkLCBkdW1teSB0ZXN0XCYjMzQ7KVxuJiM0MztfX3NraXAoXCYjMzQ7c3RhY2tfYXJnX3ByZWNpc2lvbjogbm90IHN1cHBvcnRlZFwmIzM0OylcbiBfX3N1Y2Nlc3NcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxuIHtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYWdncmVnYXRlX3JldC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2FnZ3JlZ2F0ZV9yZXQuY1xuaW5kZXggNzg1MWJhZGUyYjQwNi4uZjVjMTE2NjAyN2ExZCAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9hZ2dyZWdhdGVfcmV0LmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9hZ2dyZWdhdGVfcmV0LmNcbkBAIC0xNjcsNiAmIzQzOzE2Nyw3IEBAIGludCBhZ2dyZWdhdGVfcmV0X2tmdW5jX3N0cnVjdF9jX3Rlc3Qoc3RydWN0IF9fc2tfYnVmZiAqc2tiKVxuIFxuIFNFQyhcJiMzNDtzb2NrZXRcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDt2ZXJpZmllcl9hZ2dyZWdhdGVfcmV0OiBuZWVkcyBMTFZNIDIzLCBkdW1teSB0ZXN0XCYjMzQ7KVxuJiM0MztfX3NraXAoXCYjMzQ7bmVlZHMgTExWTSAyM1wmIzM0OylcbiBfX3N1Y2Nlc3NcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxuIHtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYnN3YXAuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9ic3dhcC5jXG5pbmRleCBjZmZhZjM2MTkyYmM1Li40OGZmYjViMjQyZDI0IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jzd2FwLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9ic3dhcC5jXG5AQCAtOCw3ICYjNDM7OCw3IEBAXG4gXHQoZGVmaW5lZChfX1RBUkdFVF9BUkNIX3Jpc2N2KSBcdTAwMjZcdTAwMjYgX19yaXNjdl94bGVuID09IDY0KSB8fCBcXFxuIFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2FybSkgfHwgZGVmaW5lZChfX1RBUkdFVF9BUkNIX3MzOTApIHx8IFxcXG4gXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfbG9vbmdhcmNoKSkgXHUwMDI2XHUwMDI2IFxcXG4tXHRfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOFxuJiM0MztcdChfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOCB8fCBkZWZpbmVkKF9fQlBGX0ZFQVRVUkVfQlNXQVApKVxuIFxuIFNFQyhcJiMzNDtzb2NrZXRcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDtCU1dBUCwgMTZcJiMzNDspXG5AQCAtMTE3LDYgJiM0MzsxMTcsNyBAQCBsMF8lPTpcdFx0XHRcdFx0XHRcdFxcXG4gXG4gU0VDKFwmIzM0O3NvY2tldFwmIzM0OylcbiBfX2Rlc2NyaXB0aW9uKFwmIzM0O2NwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0XCYjMzQ7KVxuJiM0MztfX3NraXAoXCYjMzQ7Y3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXRcJiMzNDspXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2dvdG9sLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfZ290b2wuY1xuaW5kZXggZDVkOGYyNGRmMzk0OS4uYzBmZDMwYTNhNGMxMyAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9nb3RvbC5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfZ290b2wuY1xuQEAgLTUyLDYgJiM0Mzs1Miw3IEBAIF9fbmFrZWQgdm9pZCBnb3RvbF9sYXJnZV9pbW0odm9pZClcbiBcbiBTRUMoXCYjMzQ7c29ja2V0XCYjMzQ7KVxuIF9fZGVzY3JpcHRpb24oXCYjMzQ7Y3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQsIHVzZSBhIGR1bW15IHRlc3RcJiMzNDspXG4mIzQzO19fc2tpcChcJiMzNDtjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdFwmIzM0OylcbiBfX3N1Y2Nlc3NcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxuIHtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbGRzeC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xkc3guY1xuaW5kZXggNDEzNDA4NzdkYzlkOS4uNzU3NjJlMTFiNDQzZiAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sZHN4LmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sZHN4LmNcbkBAIC05LDEzICYjNDM7OSw3IEBAXG4gXHQoZGVmaW5lZChfX1RBUkdFVF9BUkNIX3Jpc2N2KSBcdTAwMjZcdTAwMjYgX19yaXNjdl94bGVuID09IDY0KSB8fCBcXFxuIFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2FybSkgfHwgZGVmaW5lZChfX1RBUkdFVF9BUkNIX3MzOTApIHx8IFxcXG4gXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfbG9vbmdhcmNoKSkgXHUwMDI2XHUwMDI2IFxcXG4tXHRfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOFxuLVxuLXN0cnVjdCB7XG4tXHRfX3VpbnQodHlwZSwgQlBGX01BUF9UWVBFX0FSRU5BKTtcbi1cdF9fdWludChtYXBfZmxhZ3MsIEJQRl9GX01NQVBBQkxFKTtcbi1cdF9fdWludChtYXhfZW50cmllcywgMSk7XG4tfSBhcmVuYSBTRUMoXCYjMzQ7Lm1hcHNcJiMzNDspO1xuJiM0MztcdChfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOCB8fCBkZWZpbmVkKF9fQlBGX0ZFQVRVUkVfTERTWCkpXG4gXG4gU0VDKFwmIzM0O3NvY2tldFwmIzM0OylcbiBfX2Rlc2NyaXB0aW9uKFwmIzM0O0xEU1gsIFM4XCYjMzQ7KVxuQEAgLTI2Myw2ICYjNDM7MjU3LDE0IEBAIF9fbmFrZWQgdm9pZCBsZHN4X2N0eF84KHZvaWQpXG4gXHQ6IF9fY2xvYmJlcl9hbGwpO1xuIH1cbiBcbiYjNDM7I2lmZGVmIF9fQlBGX0ZFQVRVUkVfQUREUl9TUEFDRV9DQVNUXG4mIzQzO1xuJiM0MztzdHJ1Y3Qge1xuJiM0MztcdF9fdWludCh0eXBlLCBCUEZfTUFQX1RZUEVfQVJFTkEpO1xuJiM0MztcdF9fdWludChtYXBfZmxhZ3MsIEJQRl9GX01NQVBBQkxFKTtcbiYjNDM7XHRfX3VpbnQobWF4X2VudHJpZXMsIDEpO1xuJiM0Mzt9IGFyZW5hIFNFQyhcJiMzNDsubWFwc1wmIzM0Oyk7XG4mIzQzO1xuIFNFQyhcJiMzNDtzeXNjYWxsXCYjMzQ7KVxuIF9fZGVzY3JpcHRpb24oXCYjMzQ7QXJlbmEgTERTWCBEaXNhc21cJiMzNDspXG4gX19zdWNjZXNzXG5AQCAtNDMyLDEwICYjNDM7NDM0LDEzIEBAIHZvaWQga2Z1bmNfcm9vdCh2b2lkKVxuIFx0YnBmX2FyZW5hX2FsbG9jX3BhZ2VzKDAsIDAsIDAsIDAsIDApO1xuIH1cbiBcbiYjNDM7I2VuZGlmIC8qIF9fQlBGX0ZFQVRVUkVfQUREUl9TUEFDRV9DQVNUICovXG4mIzQzO1xuICNlbHNlXG4gXG4gU0VDKFwmIzM0O3NvY2tldFwmIzM0OylcbiBfX2Rlc2NyaXB0aW9uKFwmIzM0O2NwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0XCYjMzQ7KVxuJiM0MztfX3NraXAoXCYjMzQ7Y3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXRcJiMzNDspXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xvYWRfYWNxdWlyZS5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xvYWRfYWNxdWlyZS5jXG5pbmRleCBkMTcwMjZkNzQ4MGQ4Li5iY2MzNGU3OThjNjM0IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xvYWRfYWNxdWlyZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbG9hZF9hY3F1aXJlLmNcbkBAIC0yNjcsNiAmIzQzOzI2Nyw3IEBAIF9fbmFrZWQgdm9pZCBsb2FkX2FjcXVpcmVfd2l0aF9pbnZhbGlkX3JlZyh2b2lkKVxuIFxuIFNFQyhcJiMzNDtzb2NrZXRcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDtDbGFuZyB2ZXJzaW9uIFx1MDAzYyAxOCwgRU5BQkxFX0FUT01JQ1NfVEVTVFMgbm90IGRlZmluZWQsIGFuZC9vciBKSVQgZG9lc24mIzM5O3Qgc3VwcG9ydCBsb2FkLWFjcXVpcmUsIHVzZSBhIGR1bW15IHRlc3RcJiMzNDspXG4mIzQzO19fc2tpcChcJiMzNDtDbGFuZyB2ZXJzaW9uIFx1MDAzYyAxOCwgRU5BQkxFX0FUT01JQ1NfVEVTVFMgbm90IGRlZmluZWQsIGFuZC9vciBKSVQgZG9lc24mIzM5O3Qgc3VwcG9ydCBsb2FkLWFjcXVpcmVcJiMzNDspXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX21vdnN4LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbW92c3guY1xuaW5kZXggYTRkODgxNGViNWVkYy4uMTk1YjI3YTUxMjI0ZiAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9tb3ZzeC5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbW92c3guY1xuQEAgLTgsNyAmIzQzOzgsNyBAQFxuIFx0KGRlZmluZWQoX19UQVJHRVRfQVJDSF9yaXNjdikgXHUwMDI2XHUwMDI2IF9fcmlzY3ZfeGxlbiA9PSA2NCkgfHwgXFxcbiBcdGRlZmluZWQoX19UQVJHRVRfQVJDSF9hcm0pIHx8IGRlZmluZWQoX19UQVJHRVRfQVJDSF9zMzkwKSB8fCBcXFxuIFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2xvb25nYXJjaCkpIFx1MDAyNlx1MDAyNiBcXFxuLVx0X19jbGFuZ19tYWpvcl9fIFx1MDAzZT0gMThcbiYjNDM7XHQoX19jbGFuZ19tYWpvcl9fIFx1MDAzZT0gMTggfHwgZGVmaW5lZChfX0JQRl9GRUFUVVJFX01PVlNYKSlcbiBcbiBTRUMoXCYjMzQ7c29ja2V0XCYjMzQ7KVxuIF9fZGVzY3JpcHRpb24oXCYjMzQ7TU9WMzJTWCwgUzhcJiMzNDspXG5AQCAtMzQzLDYgJiM0MzszNDMsNyBAQCBsYWJlbF8lPTogXHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcbiBcbiBTRUMoXCYjMzQ7c29ja2V0XCYjMzQ7KVxuIF9fZGVzY3JpcHRpb24oXCYjMzQ7Y3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQsIHVzZSBhIGR1bW15IHRlc3RcJiMzNDspXG4mIzQzO19fc2tpcChcJiMzNDtjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdFwmIzM0OylcbiBfX3N1Y2Nlc3NcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxuIHtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcGVyY3B1X2FkZHIuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wZXJjcHVfYWRkci5jXG5pbmRleCA5NjdmNGU2ZTNhNDkwLi5mZDQxOGYyNzk5NmY1IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3BlcmNwdV9hZGRyLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wZXJjcHVfYWRkci5jXG5AQCAtNjEsNiAmIzQzOzYxLDcgQEAgX19uYWtlZCB2b2lkIHBlcmNwdV9hZGRyKHZvaWQpXG4gXG4gU0VDKFwmIzM0O3Jhd190cFwmIzM0OylcbiBfX2Rlc2NyaXB0aW9uKFwmIzM0O3BlcmNwdSBhZGRyIGR1bW15XCYjMzQ7KVxuJiM0MztfX3NraXAoXCYjMzQ7cGVyY3B1IGFkZHIgdGVzdHMgbmVlZCB4ODZcJiMzNDspXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3ByaXZhdGVfc3RhY2suYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wcml2YXRlX3N0YWNrLmNcbmluZGV4IGVhMGE3ZTczMzMxZGEuLjNkOTk5NGE1MjQ2NGUgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcHJpdmF0ZV9zdGFjay5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcHJpdmF0ZV9zdGFjay5jXG5AQCAtMzc3LDYgJiM0MzszNzcsNyBAQCBpbnQgcHJpdmF0ZV9zdGFja19tYXhfZGVwdGgodm9pZClcbiBcbiBTRUMoXCYjMzQ7a3Byb2JlXCYjMzQ7KVxuIF9fZGVzY3JpcHRpb24oXCYjMzQ7cHJpdmF0ZSBzdGFjayBpcyBub3Qgc3VwcG9ydGVkLCB1c2UgYSBkdW1teSB0ZXN0XCYjMzQ7KVxuJiM0MztfX3NraXAoXCYjMzQ7cHJpdmF0ZSBzdGFjayBpcyBub3Qgc3VwcG9ydGVkXCYjMzQ7KVxuIF9fc3VjY2Vzc1xuIGludCBkdW1teV90ZXN0KHZvaWQpXG4ge1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zZGl2LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2Rpdi5jXG5pbmRleCA5NWYzMjM5Y2UyMjhiLi5kNmNiZTFlMjdmZDZiIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3NkaXYuY1xuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3NkaXYuY1xuQEAgLTksNyAmIzQzOzksNyBAQFxuIFx0KGRlZmluZWQoX19UQVJHRVRfQVJDSF9yaXNjdikgXHUwMDI2XHUwMDI2IF9fcmlzY3ZfeGxlbiA9PSA2NCkgfHwgXFxcbiBcdGRlZmluZWQoX19UQVJHRVRfQVJDSF9hcm0pIHx8IGRlZmluZWQoX19UQVJHRVRfQVJDSF9zMzkwKSB8fCBcXFxuIFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2xvb25nYXJjaCkpIFx1MDAyNlx1MDAyNiBcXFxuLVx0X19jbGFuZ19tYWpvcl9fIFx1MDAzZT0gMThcbiYjNDM7XHQoX19jbGFuZ19tYWpvcl9fIFx1MDAzZT0gMTggfHwgZGVmaW5lZChfX0JQRl9GRUFUVVJFX1NESVZfU01PRCkpXG4gXG4gU0VDKFwmIzM0O3NvY2tldFwmIzM0OylcbiBfX2Rlc2NyaXB0aW9uKFwmIzM0O1NESVYzMiwgbm9uLXplcm8gaW1tIGRpdmlzb3IsIGNoZWNrIDFcJiMzNDspXG5AQCAtMTI3MSw2ICYjNDM7MTI3MSw3IEBAIF9fbmFrZWQgdm9pZCBzbW9kMzJfaW50X21pbl9tb2RfbmVnMl9pbW0odm9pZClcbiBcbiBTRUMoXCYjMzQ7c29ja2V0XCYjMzQ7KVxuIF9fZGVzY3JpcHRpb24oXCYjMzQ7Y3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQsIHVzZSBhIGR1bW15IHRlc3RcJiMzNDspXG4mIzQzO19fc2tpcChcJiMzNDtjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdFwmIzM0OylcbiBfX3N1Y2Nlc3NcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxuIHtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnLmNcbmluZGV4IDdlMGNlNWRiMjhhMGQuLjUxZDIyZmFmNDU1OWYgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmcuY1xuQEAgLTQzNiw2ICYjNDM7NDM2LDcgQEAgX19uYWtlZCB2b2lkIHN0YWNrX2FyZ19zZXF1ZW50aWFsX2NhbGxzKHZvaWQpXG4gXG4gU0VDKFwmIzM0O3NvY2tldFwmIzM0OylcbiBfX2Rlc2NyaXB0aW9uKFwmIzM0O3N0YWNrX2FyZyBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCwgdXNlIGEgZHVtbXkgdGVzdFwmIzM0OylcbiYjNDM7X19za2lwKFwmIzM0O3N0YWNrX2FyZyBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdFwmIzM0OylcbiBfX3N1Y2Nlc3NcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxuIHtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnX29yZGVyLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnX29yZGVyLmNcbmluZGV4IGM5ZmU0ODU3ZGEzZjUuLjhlNDMyNTI3M2IzZDggMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnX29yZGVyLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmdfb3JkZXIuY1xuQEAgLTE3NCw2ICYjNDM7MTc0LDcgQEAgX19uYWtlZCB2b2lkIHN0YWNrX2FyZ19yZWFkX3dpdGhvdXRfd3JpdGVfMih2b2lkKVxuIFxuIFNFQyhcJiMzNDtzb2NrZXRcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDtzdGFja19hcmcgb3JkZXIgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQsIHVzZSBhIGR1bW15IHRlc3RcJiMzNDspXG4mIzQzO19fc2tpcChcJiMzNDtzdGFja19hcmcgb3JkZXIgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXRcJiMzNDspXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0b3JlX3JlbGVhc2UuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdG9yZV9yZWxlYXNlLmNcbmluZGV4IDcyZjFlYjAwNjA3NDguLjBhYmJlZTVjZTEwOTIgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RvcmVfcmVsZWFzZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RvcmVfcmVsZWFzZS5jXG5AQCAtMjkwLDYgJiM0MzsyOTAsNyBAQCBfX25ha2VkIHZvaWQgc3RvcmVfcmVsZWFzZV93aXRoX2ludmFsaWRfcmVnKHZvaWQpXG4gXG4gU0VDKFwmIzM0O3NvY2tldFwmIzM0OylcbiBfX2Rlc2NyaXB0aW9uKFwmIzM0O0NsYW5nIHZlcnNpb24gXHUwMDNjIDE4LCBFTkFCTEVfQVRPTUlDU19URVNUUyBub3QgZGVmaW5lZCwgYW5kL29yIEpJVCBkb2VzbiYjMzk7dCBzdXBwb3J0IHN0b3JlLXJlbGVhc2UsIHVzZSBhIGR1bW15IHRlc3RcJiMzNDspXG4mIzQzO19fc2tpcChcJiMzNDtDbGFuZyB2ZXJzaW9uIFx1MDAzYyAxOCwgRU5BQkxFX0FUT01JQ1NfVEVTVFMgbm90IGRlZmluZWQsIGFuZC9vciBKSVQgZG9lc24mIzM5O3Qgc3VwcG9ydCBzdG9yZS1yZWxlYXNlXCYjMzQ7KVxuIF9fc3VjY2Vzc1xuIGludCBkdW1teV90ZXN0KHZvaWQpXG4ge1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2xvYWRlci5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfbG9hZGVyLmNcbmluZGV4IDA3ODA3NzU3YjUxOGQuLjc5NGE3ZGZiMDU3OTYgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9sb2FkZXIuY1xuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfbG9hZGVyLmNcbkBAIC03MCw2ICYjNDM7NzAsNyBAQCBzdHJ1Y3QgdGVzdF9zcGVjIHtcbiBcdGludCBhcmNoX21hc2s7XG4gXHRpbnQgbG9hZF9tYXNrO1xuIFx0aW50IGxpbmVhcl9zejtcbiYjNDM7XHRjb25zdCBjaGFyICpza2lwX3JlYXNvbjtcbiBcdGJvb2wgYXV4aWxpYXJ5O1xuIFx0Ym9vbCB2YWxpZDtcbiB9O1xuQEAgLTQ1Niw2ICYjNDM7NDU3LDggQEAgc3RhdGljIGludCBwYXJzZV90ZXN0X3NwZWMoc3RydWN0IHRlc3RfbG9hZGVyICp0ZXN0ZXIsXG4gXHRcdFx0Y29udGludWU7XG4gXHRcdGlmICgodmFsID0gc3RyX2hhc19wZngocywgXCYjMzQ7dGVzdF9kZXNjcmlwdGlvbj1cJiMzNDspKSkge1xuIFx0XHRcdGRlc2NyaXB0aW9uID0gdmFsO1xuJiM0MztcdFx0fSBlbHNlIGlmICgodmFsID0gc3RyX2hhc19wZngocywgXCYjMzQ7dGVzdF9za2lwPVwmIzM0OykpKSB7XG4mIzQzO1x0XHRcdHNwZWMtXHUwMDNlc2tpcF9yZWFzb24gPSB2YWw7XG4gXHRcdH0gZWxzZSBpZiAoc3RyY21wKHMsIFwmIzM0O3Rlc3RfZXhwZWN0X2ZhaWx1cmVcJiMzNDspID09IDApIHtcbiBcdFx0XHRzcGVjLVx1MDAzZXByaXYuZXhwZWN0X2ZhaWx1cmUgPSB0cnVlO1xuIFx0XHRcdHNwZWMtXHUwMDNlbW9kZV9tYXNrIHw9IFBSSVY7XG5AQCAtMTMyNyw2ICYjNDM7MTMzMCwxMiBAQCB2b2lkIHJ1bl9zdWJ0ZXN0KHN0cnVjdCB0ZXN0X2xvYWRlciAqdGVzdGVyLFxuIFx0aWYgKCF0ZXN0X19zdGFydF9zdWJ0ZXN0X3dpdGhfZGVzYyhzdWJzcGVjLVx1MDAzZW5hbWUsIHN1YnNwZWMtXHUwMDNlZGVzY3JpcHRpb24pKVxuIFx0XHRyZXR1cm47XG4gXG4mIzQzO1x0aWYgKHNwZWMtXHUwMDNlc2tpcF9yZWFzb24pIHtcbiYjNDM7XHRcdHByaW50ZihcJiMzNDslczpTS0lQOiAlc1xcblwmIzM0OywgX19mdW5jX18sIHNwZWMtXHUwMDNlc2tpcF9yZWFzb24pO1xuJiM0MztcdFx0dGVzdF9fc2tpcCgpO1xuJiM0MztcdFx0cmV0dXJuO1xuJiM0MztcdH1cbiYjNDM7XG4gXHRpZiAoKGdldF9jdXJyZW50X2FyY2goKSBcdTAwMjYgc3BlYy1cdTAwM2VhcmNoX21hc2spID09IDApIHtcbiBcdFx0dGVzdF9fc2tpcCgpO1xuIFx0XHRyZXR1cm47XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMjM6Mzc8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgQlBGIHNlbGZ0ZXN0cyBpbiB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvIHRvIGFkZCBhIF9fc2tpcCB0YWcgYW5kIGZpeCBzb21lIHRlc3QgY29tcGlsYXRpb24gaXNzdWVzLiBJdCBkb2VzIG5vdCBtYWtlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBjb2RlIGl0c2VsZi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA4ZDM1ZjRiNWFhYTgwMzVhZDI4OGI3MTg5N2I1NmQ3ZmE4MDcyYTE5CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIE1vbiBBdWcgMjQgMjM6Mzc6MDYgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYXJlbmFfa2Z1bmMuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9hcmVuYV9rZnVuYy5jCmluZGV4IGJmMGQzMDRlMGU1OWMuLjUwNjA5ZjNiMDU2NGEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9hcmVuYV9rZnVuYy5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9hcmVuYV9rZnVuYy5jCkBAIC0yMzMsOCAmIzQzOzIzMyw5IEBAIFNFQygmIzM0O3N5c2NhbGwmIzM0OykKIF9fYXJjaF94ODZfNjQKIF9fYXJjaF9hcm02NAogX19kZXNjcmlwdGlvbigmIzM0O2FyZW5hX2FyZ19zdGFjazogbm90IHN1cHBvcnRlZCwgZHVtbXkgdGVzdCYjMzQ7KQomIzQzO19fc2tpcCgmIzM0O2FyZW5hX2FyZ19zdGFjazogbm90IHN1cHBvcnRlZCYjMzQ7KQogX19zdWNjZXNzCi1pbnQgYXJlbmFfYXJnX3N0YWNrKHZvaWQgKmN0eCkKJiM0MztpbnQgZHVtbXlfdGVzdCh2b2lkICpjdHgpCiB7CiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX21pc2MuaCBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfbWlzYy5oCmluZGV4IDVlYWNmMWI0MzI1MjEuLmViODhkOWNlNmMzNDggMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfbWlzYy5oCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfbWlzYy5oCkBAIC0xMDYsNiAmIzQzOzEwNiwxMSBAQAogICogX19kZXNjcmlwdGlvbiAgICAgVGV4dCB0byBiZSB1c2VkIGZvciBkaXNwbGF5IGFuZCBhcyBhbiBhZGRpdGlvbmFsIGZpbHRlcgogICogICAgICAgICAgICAgICAgICAgYWxpYXMsIHdoaWxlIHRoZSBvcmlnaW5hbCBwcm9ncmFtIG5hbWUgc3RheXMgbWF0Y2hhYmxlLgogICoKJiM0MzsgKiBfX3NraXAgICAgICAgICAgICBSZXBvcnQgdGhlIHRlc3QgYXMgU0tJUCB3aXRoIHRoZSBnaXZlbiByZWFzb24gaW5zdGVhZCBvZgomIzQzOyAqICAgICAgICAgICAgICAgICAgIHJ1bm5pbmcgaXQuIEZvciBwbGFjZWhvbGRlciBwcm9ncmFtcyB0aGF0IHN0YW5kIGluIGZvciBhCiYjNDM7ICogICAgICAgICAgICAgICAgICAgZmVhdHVyZSB0aGUgdG9vbGNoYWluIG9yIEpJVCBjYW5ub3QgcHJvdmlkZSwgc28gYSBydW4gZG9lcwomIzQzOyAqICAgICAgICAgICAgICAgICAgIG5vdCByZXBvcnQgT0sgZm9yIGNvdmVyYWdlIGl0IG5ldmVyIGV4ZWN1dGVkLgomIzQzOyAqCiAgKiBfX2xvZ19sZXZlbCAgICAgICBMb2cgbGV2ZWwgdG8gdXNlIGZvciB0aGUgcHJvZ3JhbSwgbnVtZXJpYyB2YWx1ZSBleHBlY3RlZC4KICAqCiAgKiBfX2ZsYWcgICAgICAgICAgICBBZGRzIG9uZSBmbGFnIHVzZSBmb3IgdGhlIHByb2dyYW0sIHRoZSBmb2xsb3dpbmcgdmFsdWVzIGFyZSB2YWxpZDoKQEAgLTEzOSw2ICYjNDM7MTQ0LDcgQEAKICNkZWZpbmUgX19mYWlsdXJlCQlfX3Rlc3RfdGFnKCYjMzQ7dGVzdF9leHBlY3RfZmFpbHVyZSYjMzQ7KQogI2RlZmluZSBfX3N1Y2Nlc3MJCV9fdGVzdF90YWcoJiMzNDt0ZXN0X2V4cGVjdF9zdWNjZXNzJiMzNDspCiAjZGVmaW5lIF9fZGVzY3JpcHRpb24oZGVzYykJX190ZXN0X3RhZygmIzM0O3Rlc3RfZGVzY3JpcHRpb249JiMzNDsgZGVzYykKJiM0MzsjZGVmaW5lIF9fc2tpcChyZWFzb24pCQlfX3Rlc3RfdGFnKCYjMzQ7dGVzdF9za2lwPSYjMzQ7IHJlYXNvbikKICNkZWZpbmUgX19tc2dfdW5wcml2KG1zZykJX190ZXN0X3RhZygmIzM0O3Rlc3RfZXhwZWN0X21zZ191bnByaXY9JiMzNDsgbXNnKQogI2RlZmluZSBfX25vdF9tc2dfdW5wcml2KG1zZykJX190ZXN0X3RhZygmIzM0O3Rlc3RfZXhwZWN0X25vdF9tc2dfdW5wcml2PSYjMzQ7IG1zZykKICNkZWZpbmUgX194bGF0ZWRfdW5wcml2KG1zZykJX190ZXN0X3RhZygmIzM0O3Rlc3RfZXhwZWN0X3hsYXRlZF91bnByaXY9JiMzNDsgbXNnKQpAQCAtMjU1LDExICYjNDM7MjYxLDExIEBACiAgICAgIChkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfcmlzY3YpICZhbXA7JmFtcDsgX19yaXNjdl94bGVuID09IDY0KSB8fAkJXAogICAgICBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfYXJtKSB8fCBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfczM5MCkgfHwJXAogICAgICBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfbG9vbmdhcmNoKSkgJmFtcDsmYW1wOwkJCQlcCi0JX19jbGFuZ19tYWpvcl9fICZndDs9IDE4CiYjNDM7CShfX2NsYW5nX21ham9yX18gJmd0Oz0gMTggfHwgZGVmaW5lZChfX0JQRl9GRUFUVVJFX0dPVE9MKSkKICNkZWZpbmUgQ0FOX1VTRV9HT1RPTAogI2VuZGlmCiAKLSNpZiBfX2NsYW5nX21ham9yX18gJmd0Oz0gMTgKJiM0MzsjaWYgX19jbGFuZ19tYWpvcl9fICZndDs9IDE4IHx8IGRlZmluZWQoX19CUEZfRkVBVFVSRV9TVCkKICNkZWZpbmUgQ0FOX1VTRV9CUEZfU1QKICNlbmRpZgogCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvY29tcHV0ZV9saXZlX3JlZ2lzdGVycy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2NvbXB1dGVfbGl2ZV9yZWdpc3RlcnMuYwppbmRleCAzMzhlNjdjZDg4NTZhLi45NDFiNjVmZTdjMDcxIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvY29tcHV0ZV9saXZlX3JlZ2lzdGVycy5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9jb21wdXRlX2xpdmVfcmVnaXN0ZXJzLmMKQEAgLTI5OSw3ICYjNDM7Mjk5LDE1IEBAIF9fbmFrZWQgdm9pZCBnb3RvbCh2b2lkKQogCQkmIzM0O3IzID0gMjQ7JiMzNDsKIAkJJiMzNDtpZiByMSAmZ3Q7IDB4NyBnb3RvICYjNDM7MjsmIzM0OwogCQkmIzM0O3IwID0gcjI7JiMzNDsKJiM0MzsjaWZkZWYgX19jbGFuZ19fCiAJCSYjMzQ7Z290b2wgJiM0MzsxOyYjMzQ7CiYjNDM7I2Vsc2UKJiM0MzsJCS8qCiYjNDM7CQkgKiBnYXMgbWlzLXBhcnNlcyAmIzM5O2dvdG9sICYjNDM7MSYjMzk7IGFzICYjMzk7Z290byBsJiM0MzsxJiMzOTssIHNhbWUgZW5jb2RpbmcKJiM0MzsJCSAqIHdpdGhvdXQgdGhlIHNpZ24gKGJpbnV0aWxzIFBSIGdhcy8zNDU1OCkuCiYjNDM7CQkgKi8KJiM0MzsJCSYjMzQ7Z290b2wgMTsmIzM0OwomIzQzOyNlbmRpZgogCQkmIzM0O3IwID0gcjM7JiMzNDsKIAkJJiMzNDtleGl0OyYjMzQ7CiAJCToKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdGFja19hcmdfZmFpbC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmMKaW5kZXggYWQ5ZDRiZmUxNWRjYy4uZWVkOTdkNTgyNTE1NyAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmMKQEAgLTEwMyw4ICYjNDM7MTAzLDkgQEAgX19uYWtlZCB2b2lkIHIxMV9zdG9yZV96ZXJvX29mZih2b2lkKQogCiBTRUMoJiMzNDt0YyYjMzQ7KQogX19kZXNjcmlwdGlvbigmIzM0O3N0YWNrX2FyZ19mYWlsOiBub3Qgc3VwcG9ydGVkLCBkdW1teSB0ZXN0JiMzNDspCiYjNDM7X19za2lwKCYjMzQ7c3RhY2tfYXJnX2ZhaWw6IG5vdCBzdXBwb3J0ZWQmIzM0OykKIF9fc3VjY2VzcwotaW50IHRlc3Rfc3RhY2tfYXJnX2JpZyhzdHJ1Y3QgX19za19idWZmICpza2IpCiYjNDM7aW50IGR1bW15X3Rlc3Qoc3RydWN0IF9fc2tfYnVmZiAqc2tiKQogewogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19wcmVjaXNpb24uYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdGFja19hcmdfcHJlY2lzaW9uLmMKaW5kZXggYmVlMmVlZWMwMjFkNy4uY2UwMzAxYTQxZmE5NCAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19wcmVjaXNpb24uYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RhY2tfYXJnX3ByZWNpc2lvbi5jCkBAIC0xMjQsNiAmIzQzOzEyNCw3IEBAIF9fbmFrZWQgdm9pZCBzdGFja19hcmdfcHJlY2lzaW9uX2JwZjJicGYodm9pZCkKIAogU0VDKCYjMzQ7c29ja2V0JiMzNDspCiBfX2Rlc2NyaXB0aW9uKCYjMzQ7c3RhY2tfYXJnX3ByZWNpc2lvbjogbm90IHN1cHBvcnRlZCwgZHVtbXkgdGVzdCYjMzQ7KQomIzQzO19fc2tpcCgmIzM0O3N0YWNrX2FyZ19wcmVjaXNpb246IG5vdCBzdXBwb3J0ZWQmIzM0OykKIF9fc3VjY2VzcwogaW50IGR1bW15X3Rlc3Qodm9pZCkKIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9hZ2dyZWdhdGVfcmV0LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYWdncmVnYXRlX3JldC5jCmluZGV4IDc4NTFiYWRlMmI0MDYuLmY1YzExNjYwMjdhMWQgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9hZ2dyZWdhdGVfcmV0LmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2FnZ3JlZ2F0ZV9yZXQuYwpAQCAtMTY3LDYgJiM0MzsxNjcsNyBAQCBpbnQgYWdncmVnYXRlX3JldF9rZnVuY19zdHJ1Y3RfY190ZXN0KHN0cnVjdCBfX3NrX2J1ZmYgKnNrYikKIAogU0VDKCYjMzQ7c29ja2V0JiMzNDspCiBfX2Rlc2NyaXB0aW9uKCYjMzQ7dmVyaWZpZXJfYWdncmVnYXRlX3JldDogbmVlZHMgTExWTSAyMywgZHVtbXkgdGVzdCYjMzQ7KQomIzQzO19fc2tpcCgmIzM0O25lZWRzIExMVk0gMjMmIzM0OykKIF9fc3VjY2VzcwogaW50IGR1bW15X3Rlc3Qodm9pZCkKIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9ic3dhcC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jzd2FwLmMKaW5kZXggY2ZmYWYzNjE5MmJjNS4uNDhmZmI1YjI0MmQyNCAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jzd2FwLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jzd2FwLmMKQEAgLTgsNyAmIzQzOzgsNyBAQAogCShkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfcmlzY3YpICZhbXA7JmFtcDsgX19yaXNjdl94bGVuID09IDY0KSB8fCBcCiAJZGVmaW5lZChfX1RBUkdFVF9BUkNIX2FybSkgfHwgZGVmaW5lZChfX1RBUkdFVF9BUkNIX3MzOTApIHx8IFwKIAlkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfbG9vbmdhcmNoKSkgJmFtcDsmYW1wOyBcCi0JX19jbGFuZ19tYWpvcl9fICZndDs9IDE4CiYjNDM7CShfX2NsYW5nX21ham9yX18gJmd0Oz0gMTggfHwgZGVmaW5lZChfX0JQRl9GRUFUVVJFX0JTV0FQKSkKIAogU0VDKCYjMzQ7c29ja2V0JiMzNDspCiBfX2Rlc2NyaXB0aW9uKCYjMzQ7QlNXQVAsIDE2JiMzNDspCkBAIC0xMTcsNiAmIzQzOzExNyw3IEBAIGwwXyU9OgkJCQkJCQlcCiAKIFNFQygmIzM0O3NvY2tldCYjMzQ7KQogX19kZXNjcmlwdGlvbigmIzM0O2NwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0JiMzNDspCiYjNDM7X19za2lwKCYjMzQ7Y3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQmIzM0OykKIF9fc3VjY2VzcwogaW50IGR1bW15X3Rlc3Qodm9pZCkKIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9nb3RvbC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2dvdG9sLmMKaW5kZXggZDVkOGYyNGRmMzk0OS4uYzBmZDMwYTNhNGMxMyAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2dvdG9sLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2dvdG9sLmMKQEAgLTUyLDYgJiM0Mzs1Miw3IEBAIF9fbmFrZWQgdm9pZCBnb3RvbF9sYXJnZV9pbW0odm9pZCkKIAogU0VDKCYjMzQ7c29ja2V0JiMzNDspCiBfX2Rlc2NyaXB0aW9uKCYjMzQ7Y3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQsIHVzZSBhIGR1bW15IHRlc3QmIzM0OykKJiM0MztfX3NraXAoJiMzNDtjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCYjMzQ7KQogX19zdWNjZXNzCiBpbnQgZHVtbXlfdGVzdCh2b2lkKQogewpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xkc3guYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sZHN4LmMKaW5kZXggNDEzNDA4NzdkYzlkOS4uNzU3NjJlMTFiNDQzZiAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xkc3guYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbGRzeC5jCkBAIC05LDEzICYjNDM7OSw3IEBACiAJKGRlZmluZWQoX19UQVJHRVRfQVJDSF9yaXNjdikgJmFtcDsmYW1wOyBfX3Jpc2N2X3hsZW4gPT0gNjQpIHx8IFwKIAlkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfYXJtKSB8fCBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfczM5MCkgfHwgXAogCWRlZmluZWQoX19UQVJHRVRfQVJDSF9sb29uZ2FyY2gpKSAmYW1wOyZhbXA7IFwKLQlfX2NsYW5nX21ham9yX18gJmd0Oz0gMTgKLQotc3RydWN0IHsKLQlfX3VpbnQodHlwZSwgQlBGX01BUF9UWVBFX0FSRU5BKTsKLQlfX3VpbnQobWFwX2ZsYWdzLCBCUEZfRl9NTUFQQUJMRSk7Ci0JX191aW50KG1heF9lbnRyaWVzLCAxKTsKLX0gYXJlbmEgU0VDKCYjMzQ7Lm1hcHMmIzM0Oyk7CiYjNDM7CShfX2NsYW5nX21ham9yX18gJmd0Oz0gMTggfHwgZGVmaW5lZChfX0JQRl9GRUFUVVJFX0xEU1gpKQogCiBTRUMoJiMzNDtzb2NrZXQmIzM0OykKIF9fZGVzY3JpcHRpb24oJiMzNDtMRFNYLCBTOCYjMzQ7KQpAQCAtMjYzLDYgJiM0MzsyNTcsMTQgQEAgX19uYWtlZCB2b2lkIGxkc3hfY3R4Xzgodm9pZCkKIAk6IF9fY2xvYmJlcl9hbGwpOwogfQogCiYjNDM7I2lmZGVmIF9fQlBGX0ZFQVRVUkVfQUREUl9TUEFDRV9DQVNUCiYjNDM7CiYjNDM7c3RydWN0IHsKJiM0MzsJX191aW50KHR5cGUsIEJQRl9NQVBfVFlQRV9BUkVOQSk7CiYjNDM7CV9fdWludChtYXBfZmxhZ3MsIEJQRl9GX01NQVBBQkxFKTsKJiM0MzsJX191aW50KG1heF9lbnRyaWVzLCAxKTsKJiM0Mzt9IGFyZW5hIFNFQygmIzM0Oy5tYXBzJiMzNDspOwomIzQzOwogU0VDKCYjMzQ7c3lzY2FsbCYjMzQ7KQogX19kZXNjcmlwdGlvbigmIzM0O0FyZW5hIExEU1ggRGlzYXNtJiMzNDspCiBfX3N1Y2Nlc3MKQEAgLTQzMiwxMCAmIzQzOzQzNCwxMyBAQCB2b2lkIGtmdW5jX3Jvb3Qodm9pZCkKIAlicGZfYXJlbmFfYWxsb2NfcGFnZXMoMCwgMCwgMCwgMCwgMCk7CiB9CiAKJiM0MzsjZW5kaWYgLyogX19CUEZfRkVBVFVSRV9BRERSX1NQQUNFX0NBU1QgKi8KJiM0MzsKICNlbHNlCiAKIFNFQygmIzM0O3NvY2tldCYjMzQ7KQogX19kZXNjcmlwdGlvbigmIzM0O2NwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0JiMzNDspCiYjNDM7X19za2lwKCYjMzQ7Y3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQmIzM0OykKIF9fc3VjY2VzcwogaW50IGR1bW15X3Rlc3Qodm9pZCkKIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sb2FkX2FjcXVpcmUuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sb2FkX2FjcXVpcmUuYwppbmRleCBkMTcwMjZkNzQ4MGQ4Li5iY2MzNGU3OThjNjM0IDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbG9hZF9hY3F1aXJlLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xvYWRfYWNxdWlyZS5jCkBAIC0yNjcsNiAmIzQzOzI2Nyw3IEBAIF9fbmFrZWQgdm9pZCBsb2FkX2FjcXVpcmVfd2l0aF9pbnZhbGlkX3JlZyh2b2lkKQogCiBTRUMoJiMzNDtzb2NrZXQmIzM0OykKIF9fZGVzY3JpcHRpb24oJiMzNDtDbGFuZyB2ZXJzaW9uICZsdDsgMTgsIEVOQUJMRV9BVE9NSUNTX1RFU1RTIG5vdCBkZWZpbmVkLCBhbmQvb3IgSklUIGRvZXNuJiMzOTt0IHN1cHBvcnQgbG9hZC1hY3F1aXJlLCB1c2UgYSBkdW1teSB0ZXN0JiMzNDspCiYjNDM7X19za2lwKCYjMzQ7Q2xhbmcgdmVyc2lvbiAmbHQ7IDE4LCBFTkFCTEVfQVRPTUlDU19URVNUUyBub3QgZGVmaW5lZCwgYW5kL29yIEpJVCBkb2VzbiYjMzk7dCBzdXBwb3J0IGxvYWQtYWNxdWlyZSYjMzQ7KQogX19zdWNjZXNzCiBpbnQgZHVtbXlfdGVzdCh2b2lkKQogewpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX21vdnN4LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbW92c3guYwppbmRleCBhNGQ4ODE0ZWI1ZWRjLi4xOTViMjdhNTEyMjRmIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbW92c3guYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbW92c3guYwpAQCAtOCw3ICYjNDM7OCw3IEBACiAJKGRlZmluZWQoX19UQVJHRVRfQVJDSF9yaXNjdikgJmFtcDsmYW1wOyBfX3Jpc2N2X3hsZW4gPT0gNjQpIHx8IFwKIAlkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfYXJtKSB8fCBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfczM5MCkgfHwgXAogCWRlZmluZWQoX19UQVJHRVRfQVJDSF9sb29uZ2FyY2gpKSAmYW1wOyZhbXA7IFwKLQlfX2NsYW5nX21ham9yX18gJmd0Oz0gMTgKJiM0MzsJKF9fY2xhbmdfbWFqb3JfXyAmZ3Q7PSAxOCB8fCBkZWZpbmVkKF9fQlBGX0ZFQVRVUkVfTU9WU1gpKQogCiBTRUMoJiMzNDtzb2NrZXQmIzM0OykKIF9fZGVzY3JpcHRpb24oJiMzNDtNT1YzMlNYLCBTOCYjMzQ7KQpAQCAtMzQzLDYgJiM0MzszNDMsNyBAQCBsYWJlbF8lPTogCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAKIFNFQygmIzM0O3NvY2tldCYjMzQ7KQogX19kZXNjcmlwdGlvbigmIzM0O2NwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0JiMzNDspCiYjNDM7X19za2lwKCYjMzQ7Y3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQmIzM0OykKIF9fc3VjY2VzcwogaW50IGR1bW15X3Rlc3Qodm9pZCkKIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wZXJjcHVfYWRkci5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3BlcmNwdV9hZGRyLmMKaW5kZXggOTY3ZjRlNmUzYTQ5MC4uZmQ0MThmMjc5OTZmNSAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3BlcmNwdV9hZGRyLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3BlcmNwdV9hZGRyLmMKQEAgLTYxLDYgJiM0Mzs2MSw3IEBAIF9fbmFrZWQgdm9pZCBwZXJjcHVfYWRkcih2b2lkKQogCiBTRUMoJiMzNDtyYXdfdHAmIzM0OykKIF9fZGVzY3JpcHRpb24oJiMzNDtwZXJjcHUgYWRkciBkdW1teSYjMzQ7KQomIzQzO19fc2tpcCgmIzM0O3BlcmNwdSBhZGRyIHRlc3RzIG5lZWQgeDg2JiMzNDspCiBfX3N1Y2Nlc3MKIGludCBkdW1teV90ZXN0KHZvaWQpCiB7CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcHJpdmF0ZV9zdGFjay5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3ByaXZhdGVfc3RhY2suYwppbmRleCBlYTBhN2U3MzMzMWRhLi4zZDk5OTRhNTI0NjRlIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcHJpdmF0ZV9zdGFjay5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wcml2YXRlX3N0YWNrLmMKQEAgLTM3Nyw2ICYjNDM7Mzc3LDcgQEAgaW50IHByaXZhdGVfc3RhY2tfbWF4X2RlcHRoKHZvaWQpCiAKIFNFQygmIzM0O2twcm9iZSYjMzQ7KQogX19kZXNjcmlwdGlvbigmIzM0O3ByaXZhdGUgc3RhY2sgaXMgbm90IHN1cHBvcnRlZCwgdXNlIGEgZHVtbXkgdGVzdCYjMzQ7KQomIzQzO19fc2tpcCgmIzM0O3ByaXZhdGUgc3RhY2sgaXMgbm90IHN1cHBvcnRlZCYjMzQ7KQogX19zdWNjZXNzCiBpbnQgZHVtbXlfdGVzdCh2b2lkKQogewpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3NkaXYuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zZGl2LmMKaW5kZXggOTVmMzIzOWNlMjI4Yi4uZDZjYmUxZTI3ZmQ2YiAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3NkaXYuYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2Rpdi5jCkBAIC05LDcgJiM0Mzs5LDcgQEAKIAkoZGVmaW5lZChfX1RBUkdFVF9BUkNIX3Jpc2N2KSAmYW1wOyZhbXA7IF9fcmlzY3ZfeGxlbiA9PSA2NCkgfHwgXAogCWRlZmluZWQoX19UQVJHRVRfQVJDSF9hcm0pIHx8IGRlZmluZWQoX19UQVJHRVRfQVJDSF9zMzkwKSB8fCBcCiAJZGVmaW5lZChfX1RBUkdFVF9BUkNIX2xvb25nYXJjaCkpICZhbXA7JmFtcDsgXAotCV9fY2xhbmdfbWFqb3JfXyAmZ3Q7PSAxOAomIzQzOwkoX19jbGFuZ19tYWpvcl9fICZndDs9IDE4IHx8IGRlZmluZWQoX19CUEZfRkVBVFVSRV9TRElWX1NNT0QpKQogCiBTRUMoJiMzNDtzb2NrZXQmIzM0OykKIF9fZGVzY3JpcHRpb24oJiMzNDtTRElWMzIsIG5vbi16ZXJvIGltbSBkaXZpc29yLCBjaGVjayAxJiMzNDspCkBAIC0xMjcxLDYgJiM0MzsxMjcxLDcgQEAgX19uYWtlZCB2b2lkIHNtb2QzMl9pbnRfbWluX21vZF9uZWcyX2ltbSh2b2lkKQogCiBTRUMoJiMzNDtzb2NrZXQmIzM0OykKIF9fZGVzY3JpcHRpb24oJiMzNDtjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCwgdXNlIGEgZHVtbXkgdGVzdCYjMzQ7KQomIzQzO19fc2tpcCgmIzM0O2NwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0JiMzNDspCiBfX3N1Y2Nlc3MKIGludCBkdW1teV90ZXN0KHZvaWQpCiB7CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnLmMKaW5kZXggN2UwY2U1ZGIyOGEwZC4uNTFkMjJmYWY0NTU5ZiAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZy5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmcuYwpAQCAtNDM2LDYgJiM0Mzs0MzYsNyBAQCBfX25ha2VkIHZvaWQgc3RhY2tfYXJnX3NlcXVlbnRpYWxfY2FsbHModm9pZCkKIAogU0VDKCYjMzQ7c29ja2V0JiMzNDspCiBfX2Rlc2NyaXB0aW9uKCYjMzQ7c3RhY2tfYXJnIGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0JiMzNDspCiYjNDM7X19za2lwKCYjMzQ7c3RhY2tfYXJnIGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0JiMzNDspCiBfX3N1Y2Nlc3MKIGludCBkdW1teV90ZXN0KHZvaWQpCiB7CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnX29yZGVyLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnX29yZGVyLmMKaW5kZXggYzlmZTQ4NTdkYTNmNS4uOGU0MzI1MjczYjNkOCAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZ19vcmRlci5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmdfb3JkZXIuYwpAQCAtMTc0LDYgJiM0MzsxNzQsNyBAQCBfX25ha2VkIHZvaWQgc3RhY2tfYXJnX3JlYWRfd2l0aG91dF93cml0ZV8yKHZvaWQpCiAKIFNFQygmIzM0O3NvY2tldCYjMzQ7KQogX19kZXNjcmlwdGlvbigmIzM0O3N0YWNrX2FyZyBvcmRlciBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCwgdXNlIGEgZHVtbXkgdGVzdCYjMzQ7KQomIzQzO19fc2tpcCgmIzM0O3N0YWNrX2FyZyBvcmRlciBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCYjMzQ7KQogX19zdWNjZXNzCiBpbnQgZHVtbXlfdGVzdCh2b2lkKQogewpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0b3JlX3JlbGVhc2UuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdG9yZV9yZWxlYXNlLmMKaW5kZXggNzJmMWViMDA2MDc0OC4uMGFiYmVlNWNlMTA5MiAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0b3JlX3JlbGVhc2UuYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RvcmVfcmVsZWFzZS5jCkBAIC0yOTAsNiAmIzQzOzI5MCw3IEBAIF9fbmFrZWQgdm9pZCBzdG9yZV9yZWxlYXNlX3dpdGhfaW52YWxpZF9yZWcodm9pZCkKIAogU0VDKCYjMzQ7c29ja2V0JiMzNDspCiBfX2Rlc2NyaXB0aW9uKCYjMzQ7Q2xhbmcgdmVyc2lvbiAmbHQ7IDE4LCBFTkFCTEVfQVRPTUlDU19URVNUUyBub3QgZGVmaW5lZCwgYW5kL29yIEpJVCBkb2VzbiYjMzk7dCBzdXBwb3J0IHN0b3JlLXJlbGVhc2UsIHVzZSBhIGR1bW15IHRlc3QmIzM0OykKJiM0MztfX3NraXAoJiMzNDtDbGFuZyB2ZXJzaW9uICZsdDsgMTgsIEVOQUJMRV9BVE9NSUNTX1RFU1RTIG5vdCBkZWZpbmVkLCBhbmQvb3IgSklUIGRvZXNuJiMzOTt0IHN1cHBvcnQgc3RvcmUtcmVsZWFzZSYjMzQ7KQogX19zdWNjZXNzCiBpbnQgZHVtbXlfdGVzdCh2b2lkKQogewpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfbG9hZGVyLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9sb2FkZXIuYwppbmRleCAwNzgwNzc1N2I1MThkLi43OTRhN2RmYjA1Nzk2IDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9sb2FkZXIuYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9sb2FkZXIuYwpAQCAtNzAsNiAmIzQzOzcwLDcgQEAgc3RydWN0IHRlc3Rfc3BlYyB7CiAJaW50IGFyY2hfbWFzazsKIAlpbnQgbG9hZF9tYXNrOwogCWludCBsaW5lYXJfc3o7CiYjNDM7CWNvbnN0IGNoYXIgKnNraXBfcmVhc29uOwogCWJvb2wgYXV4aWxpYXJ5OwogCWJvb2wgdmFsaWQ7CiB9OwpAQCAtNDU2LDYgJiM0Mzs0NTcsOCBAQCBzdGF0aWMgaW50IHBhcnNlX3Rlc3Rfc3BlYyhzdHJ1Y3QgdGVzdF9sb2FkZXIgKnRlc3RlciwKIAkJCWNvbnRpbnVlOwogCQlpZiAoKHZhbCA9IHN0cl9oYXNfcGZ4KHMsICYjMzQ7dGVzdF9kZXNjcmlwdGlvbj0mIzM0OykpKSB7CiAJCQlkZXNjcmlwdGlvbiA9IHZhbDsKJiM0MzsJCX0gZWxzZSBpZiAoKHZhbCA9IHN0cl9oYXNfcGZ4KHMsICYjMzQ7dGVzdF9za2lwPSYjMzQ7KSkpIHsKJiM0MzsJCQlzcGVjLSZndDtza2lwX3JlYXNvbiA9IHZhbDsKIAkJfSBlbHNlIGlmIChzdHJjbXAocywgJiMzNDt0ZXN0X2V4cGVjdF9mYWlsdXJlJiMzNDspID09IDApIHsKIAkJCXNwZWMtJmd0O3ByaXYuZXhwZWN0X2ZhaWx1cmUgPSB0cnVlOwogCQkJc3BlYy0mZ3Q7bW9kZV9tYXNrIHw9IFBSSVY7CkBAIC0xMzI3LDYgJiM0MzsxMzMwLDEyIEBAIHZvaWQgcnVuX3N1YnRlc3Qoc3RydWN0IHRlc3RfbG9hZGVyICp0ZXN0ZXIsCiAJaWYgKCF0ZXN0X19zdGFydF9zdWJ0ZXN0X3dpdGhfZGVzYyhzdWJzcGVjLSZndDtuYW1lLCBzdWJzcGVjLSZndDtkZXNjcmlwdGlvbikpCiAJCXJldHVybjsKIAomIzQzOwlpZiAoc3BlYy0mZ3Q7c2tpcF9yZWFzb24pIHsKJiM0MzsJCXByaW50ZigmIzM0OyVzOlNLSVA6ICVzXG4mIzM0OywgX19mdW5jX18sIHNwZWMtJmd0O3NraXBfcmVhc29uKTsKJiM0MzsJCXRlc3RfX3NraXAoKTsKJiM0MzsJCXJldHVybjsKJiM0MzsJfQomIzQzOwogCWlmICgoZ2V0X2N1cnJlbnRfYXJjaCgpICZhbXA7IHNwZWMtJmd0O2FyY2hfbWFzaykgPT0gMCkgewogCQl0ZXN0X19za2lwKCk7CiAJCXJldHVybjsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMjM6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzM2NgoJCQkJCQkJb3V0cHV0OiA3OAoJCQkJCQkJdGhvdWdodHM6IDc2MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEJQRiBTZWxmdGVzdCBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgdGhlIEJQRiBzZWxmdGVzdHMuIFNlZW1zIGxpa2UgdGhlIHByaW1hcnkgZm9jdXMgaGVyZSBpcyBzdHJlYW1saW5pbmcgdGhlIHRlc3QgZXhlY3V0aW9uIHByb2Nlc3MuIFRoZSBpbnRyb2R1Y3Rpb24gb2YgdGhlIGBfX3NraXBgIHRhZyBpbiBgYnBmX21pc2MuaGAgYW5kIHRoZSBjb3JyZXNwb25kaW5nIHBhcnNpbmcgb2YgYHRlc3Rfc2tpcD1gIGluIGB0ZXN0X2xvYWRlci5jYCBpcyBhIHdlbGNvbWUgYWRkaXRpb247IGl0IGFsbG93cyBmb3IgbXVjaCBtb3JlIGdyYW51bGFyIGNvbnRyb2wgb3ZlciB0ZXN0IHNraXBwaW5nLCByYXRoZXIgdGhhbiBoYXZpbmcgdG8gcnVuIGR1bW15IHRlc3RzLiBJIGFwcHJlY2lhdGUgdGhlIGZvcndhcmQgdGhpbmtpbmcgaGVyZSwgdG9vLCBieSBhY2NvdW50aW5nIGZvciB2YXJpb3VzIGZlYXR1cmUgZmxhZ3MgbGlrZSBgX19CUEZfRkVBVFVSRV9HT1RPTGAsIGBfX0JQRl9GRUFUVVJFX1NUYCwgYW5kIHRoZSByZXN0LCBhbG9uZyB3aXRoIHRoZSBjbGFuZyB2ZXJzaW9uIGNoZWNrLiBUaGUgYGNvbXB1dGVfbGl2ZV9yZWdpc3RlcnMuY2AgZml4IGZvciB0aGUgYGdvdG9sICYjNDM7MWAgcGFyc2luZyBpc3N1ZSBpcyBhIGdvb2QgY2F0Y2ggYXMgd2VsbC4KCk5vdywgdGhlIGltcG9ydGFudCBxdWVzdGlvbi4uLmlzIHRoaXMgKmp1c3QqIGEgdG9vbGluZyBjaGFuZ2UsIG9yIGlzIGl0IGdvaW5nIHRvIGhhdmUga25vY2stb24gZWZmZWN0cyBmb3IgdGhlIGtlcm5lbCBpdHNlbGY/IExldCYjMzk7cyB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgdGhlIGRpZmYuIE9rYXksIHJ1bm5pbmcgdGhyb3VnaCB0aGUgY2hhbmdlZCBmaWxlcywgSSBjYW4gc2VlIHRoaXMgaXMgc3RyaWN0bHkgYSBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2AgbW9kaWZpY2F0aW9uLiBUaGUgcGF0Y2ggYWx0ZXJzIHRlc3QgcHJvZ3JhbXMgYW5kIHRoZSB0ZXN0IGxvYWRlciBidXQgZG9lc24mIzM5O3QgdG91Y2ggdGhlIGtlcm5lbCBzb3VyY2UgY29kZSBvciBhcmNoaXRlY3R1cmUuIEdpdmVuIHRoZSBmYWN0IHRoYXQgb25seSB0ZXN0IGNvZGUgYW5kIHRlc3QgZnJhbWV3b3JrIGNvZGUgaGFzIGJlZW4gbW9kaWZpZWQsIEkgY2FuIGRlZmluaXRpdmVseSBzYXkgdGhhdCB0aGVzZSBjaGFuZ2VzIHdvbiYjMzk7dCBpbnRyb2R1Y2UgbmV3IGF0dGFjayBzdXJmYWNlcy4gVGhlcmUmIzM5O3Mgbm8gY2hhbmdlIHRvIHRoZSBiZWhhdmlvciBvZiB0aGUgQlBGIHZlcmlmaWVyIG9yIHRoZSBCUEYgSklULCBzbyBubyBrZXJuZWwgZnV6emluZyBpcyBuZWNlc3NhcnkuIFRoZXJlZm9yZSwgSSB3aWxsIHJlc3BvbmQgd2l0aCBgV29ydGhGdXp6aW5nPWZhbHNlYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAyMzozNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgQlBGIHNlbGZ0ZXN0cyBpbiB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvIHRvIGFkZCBhIF9fc2tpcCB0YWcgYW5kIGZpeCBzb21lIHRlc3QgY29tcGlsYXRpb24gaXNzdWVzLiBJdCBkb2VzIG5vdCBtYWtlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBjb2RlIGl0c2VsZi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgQlBGIHNlbGZ0ZXN0cyBpbiB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvIHRvIGFkZCBhIF9fc2tpcCB0YWcgYW5kIGZpeCBzb21lIHRlc3QgY29tcGlsYXRpb24gaXNzdWVzLiBJdCBkb2VzIG5vdCBtYWtlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBjb2RlIGl0c2VsZi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMjM6Mzc8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDIzOjM3OjA4LjgyMTI4NTAyN1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExMzY4MjY0MTAyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBCUEYgc2VsZnRlc3RzIGluIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi8gdG8gYWRkIGEgX19za2lwIHRhZyBhbmQgZml4IHNvbWUgdGVzdCBjb21waWxhdGlvbiBpc3N1ZXMuIEl0IGRvZXMgbm90IG1ha2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIGNvZGUgaXRzZWxmLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMjM6Mzc6MDguODIxMzAzNjQ3WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzIyOTIwNjAzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgOGQzNWY0YjVhYWE4MDM1YWQyODhiNzE4OTdiNTZkN2ZhODA3MmExOVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEF1ZyAyNCAyMzozNzowNiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYXJlbmFfa2Z1bmMuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9hcmVuYV9rZnVuYy5jXFxuaW5kZXggYmYwZDMwNGUwZTU5Yy4uNTA2MDlmM2IwNTY0YSAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYXJlbmFfa2Z1bmMuY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9hcmVuYV9rZnVuYy5jXFxuQEAgLTIzMyw4ICsyMzMsOSBAQCBTRUMoXFxcInN5c2NhbGxcXFwiKVxcbiBfX2FyY2hfeDg2XzY0XFxuIF9fYXJjaF9hcm02NFxcbiBfX2Rlc2NyaXB0aW9uKFxcXCJhcmVuYV9hcmdfc3RhY2s6IG5vdCBzdXBwb3J0ZWQsIGR1bW15IHRlc3RcXFwiKVxcbitfX3NraXAoXFxcImFyZW5hX2FyZ19zdGFjazogbm90IHN1cHBvcnRlZFxcXCIpXFxuIF9fc3VjY2Vzc1xcbi1pbnQgYXJlbmFfYXJnX3N0YWNrKHZvaWQgKmN0eClcXG4raW50IGR1bW15X3Rlc3Qodm9pZCAqY3R4KVxcbiB7XFxuIFxcdHJldHVybiAwO1xcbiB9XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfbWlzYy5oIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9taXNjLmhcXG5pbmRleCA1ZWFjZjFiNDMyNTIxLi5lYjg4ZDljZTZjMzQ4IDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfbWlzYy5oXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9taXNjLmhcXG5AQCAtMTA2LDYgKzEwNiwxMSBAQFxcbiAgKiBfX2Rlc2NyaXB0aW9uICAgICBUZXh0IHRvIGJlIHVzZWQgZm9yIGRpc3BsYXkgYW5kIGFzIGFuIGFkZGl0aW9uYWwgZmlsdGVyXFxuICAqICAgICAgICAgICAgICAgICAgIGFsaWFzLCB3aGlsZSB0aGUgb3JpZ2luYWwgcHJvZ3JhbSBuYW1lIHN0YXlzIG1hdGNoYWJsZS5cXG4gICpcXG4rICogX19za2lwICAgICAgICAgICAgUmVwb3J0IHRoZSB0ZXN0IGFzIFNLSVAgd2l0aCB0aGUgZ2l2ZW4gcmVhc29uIGluc3RlYWQgb2ZcXG4rICogICAgICAgICAgICAgICAgICAgcnVubmluZyBpdC4gRm9yIHBsYWNlaG9sZGVyIHByb2dyYW1zIHRoYXQgc3RhbmQgaW4gZm9yIGFcXG4rICogICAgICAgICAgICAgICAgICAgZmVhdHVyZSB0aGUgdG9vbGNoYWluIG9yIEpJVCBjYW5ub3QgcHJvdmlkZSwgc28gYSBydW4gZG9lc1xcbisgKiAgICAgICAgICAgICAgICAgICBub3QgcmVwb3J0IE9LIGZvciBjb3ZlcmFnZSBpdCBuZXZlciBleGVjdXRlZC5cXG4rICpcXG4gICogX19sb2dfbGV2ZWwgICAgICAgTG9nIGxldmVsIHRvIHVzZSBmb3IgdGhlIHByb2dyYW0sIG51bWVyaWMgdmFsdWUgZXhwZWN0ZWQuXFxuICAqXFxuICAqIF9fZmxhZyAgICAgICAgICAgIEFkZHMgb25lIGZsYWcgdXNlIGZvciB0aGUgcHJvZ3JhbSwgdGhlIGZvbGxvd2luZyB2YWx1ZXMgYXJlIHZhbGlkOlxcbkBAIC0xMzksNiArMTQ0LDcgQEBcXG4gI2RlZmluZSBfX2ZhaWx1cmVcXHRcXHRfX3Rlc3RfdGFnKFxcXCJ0ZXN0X2V4cGVjdF9mYWlsdXJlXFxcIilcXG4gI2RlZmluZSBfX3N1Y2Nlc3NcXHRcXHRfX3Rlc3RfdGFnKFxcXCJ0ZXN0X2V4cGVjdF9zdWNjZXNzXFxcIilcXG4gI2RlZmluZSBfX2Rlc2NyaXB0aW9uKGRlc2MpXFx0X190ZXN0X3RhZyhcXFwidGVzdF9kZXNjcmlwdGlvbj1cXFwiIGRlc2MpXFxuKyNkZWZpbmUgX19za2lwKHJlYXNvbilcXHRcXHRfX3Rlc3RfdGFnKFxcXCJ0ZXN0X3NraXA9XFxcIiByZWFzb24pXFxuICNkZWZpbmUgX19tc2dfdW5wcml2KG1zZylcXHRfX3Rlc3RfdGFnKFxcXCJ0ZXN0X2V4cGVjdF9tc2dfdW5wcml2PVxcXCIgbXNnKVxcbiAjZGVmaW5lIF9fbm90X21zZ191bnByaXYobXNnKVxcdF9fdGVzdF90YWcoXFxcInRlc3RfZXhwZWN0X25vdF9tc2dfdW5wcml2PVxcXCIgbXNnKVxcbiAjZGVmaW5lIF9feGxhdGVkX3VucHJpdihtc2cpXFx0X190ZXN0X3RhZyhcXFwidGVzdF9leHBlY3RfeGxhdGVkX3VucHJpdj1cXFwiIG1zZylcXG5AQCAtMjU1LDExICsyNjEsMTEgQEBcXG4gICAgICAoZGVmaW5lZChfX1RBUkdFVF9BUkNIX3Jpc2N2KSBcXHUwMDI2XFx1MDAyNiBfX3Jpc2N2X3hsZW4gPT0gNjQpIHx8XFx0XFx0XFxcXFxcbiAgICAgIGRlZmluZWQoX19UQVJHRVRfQVJDSF9hcm0pIHx8IGRlZmluZWQoX19UQVJHRVRfQVJDSF9zMzkwKSB8fFxcdFxcXFxcXG4gICAgICBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfbG9vbmdhcmNoKSkgXFx1MDAyNlxcdTAwMjZcXHRcXHRcXHRcXHRcXFxcXFxuLVxcdF9fY2xhbmdfbWFqb3JfXyBcXHUwMDNlPSAxOFxcbitcXHQoX19jbGFuZ19tYWpvcl9fIFxcdTAwM2U9IDE4IHx8IGRlZmluZWQoX19CUEZfRkVBVFVSRV9HT1RPTCkpXFxuICNkZWZpbmUgQ0FOX1VTRV9HT1RPTFxcbiAjZW5kaWZcXG4gXFxuLSNpZiBfX2NsYW5nX21ham9yX18gXFx1MDAzZT0gMThcXG4rI2lmIF9fY2xhbmdfbWFqb3JfXyBcXHUwMDNlPSAxOCB8fCBkZWZpbmVkKF9fQlBGX0ZFQVRVUkVfU1QpXFxuICNkZWZpbmUgQ0FOX1VTRV9CUEZfU1RcXG4gI2VuZGlmXFxuIFxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvY29tcHV0ZV9saXZlX3JlZ2lzdGVycy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2NvbXB1dGVfbGl2ZV9yZWdpc3RlcnMuY1xcbmluZGV4IDMzOGU2N2NkODg1NmEuLjk0MWI2NWZlN2MwNzEgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2NvbXB1dGVfbGl2ZV9yZWdpc3RlcnMuY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9jb21wdXRlX2xpdmVfcmVnaXN0ZXJzLmNcXG5AQCAtMjk5LDcgKzI5OSwxNSBAQCBfX25ha2VkIHZvaWQgZ290b2wodm9pZClcXG4gXFx0XFx0XFxcInIzID0gMjQ7XFxcIlxcbiBcXHRcXHRcXFwiaWYgcjEgXFx1MDAzZSAweDcgZ290byArMjtcXFwiXFxuIFxcdFxcdFxcXCJyMCA9IHIyO1xcXCJcXG4rI2lmZGVmIF9fY2xhbmdfX1xcbiBcXHRcXHRcXFwiZ290b2wgKzE7XFxcIlxcbisjZWxzZVxcbitcXHRcXHQvKlxcbitcXHRcXHQgKiBnYXMgbWlzLXBhcnNlcyAnZ290b2wgKzEnIGFzICdnb3RvIGwrMScsIHNhbWUgZW5jb2RpbmdcXG4rXFx0XFx0ICogd2l0aG91dCB0aGUgc2lnbiAoYmludXRpbHMgUFIgZ2FzLzM0NTU4KS5cXG4rXFx0XFx0ICovXFxuK1xcdFxcdFxcXCJnb3RvbCAxO1xcXCJcXG4rI2VuZGlmXFxuIFxcdFxcdFxcXCJyMCA9IHIzO1xcXCJcXG4gXFx0XFx0XFxcImV4aXQ7XFxcIlxcbiBcXHRcXHQ6XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdGFja19hcmdfZmFpbC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmNcXG5pbmRleCBhZDlkNGJmZTE1ZGNjLi5lZWQ5N2Q1ODI1MTU3IDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdGFja19hcmdfZmFpbC5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmNcXG5AQCAtMTAzLDggKzEwMyw5IEBAIF9fbmFrZWQgdm9pZCByMTFfc3RvcmVfemVyb19vZmYodm9pZClcXG4gXFxuIFNFQyhcXFwidGNcXFwiKVxcbiBfX2Rlc2NyaXB0aW9uKFxcXCJzdGFja19hcmdfZmFpbDogbm90IHN1cHBvcnRlZCwgZHVtbXkgdGVzdFxcXCIpXFxuK19fc2tpcChcXFwic3RhY2tfYXJnX2ZhaWw6IG5vdCBzdXBwb3J0ZWRcXFwiKVxcbiBfX3N1Y2Nlc3NcXG4taW50IHRlc3Rfc3RhY2tfYXJnX2JpZyhzdHJ1Y3QgX19za19idWZmICpza2IpXFxuK2ludCBkdW1teV90ZXN0KHN0cnVjdCBfX3NrX2J1ZmYgKnNrYilcXG4ge1xcbiBcXHRyZXR1cm4gMDtcXG4gfVxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RhY2tfYXJnX3ByZWNpc2lvbi5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19wcmVjaXNpb24uY1xcbmluZGV4IGJlZTJlZWVjMDIxZDcuLmNlMDMwMWE0MWZhOTQgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19wcmVjaXNpb24uY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdGFja19hcmdfcHJlY2lzaW9uLmNcXG5AQCAtMTI0LDYgKzEyNCw3IEBAIF9fbmFrZWQgdm9pZCBzdGFja19hcmdfcHJlY2lzaW9uX2JwZjJicGYodm9pZClcXG4gXFxuIFNFQyhcXFwic29ja2V0XFxcIilcXG4gX19kZXNjcmlwdGlvbihcXFwic3RhY2tfYXJnX3ByZWNpc2lvbjogbm90IHN1cHBvcnRlZCwgZHVtbXkgdGVzdFxcXCIpXFxuK19fc2tpcChcXFwic3RhY2tfYXJnX3ByZWNpc2lvbjogbm90IHN1cHBvcnRlZFxcXCIpXFxuIF9fc3VjY2Vzc1xcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxcbiB7XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9hZ2dyZWdhdGVfcmV0LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYWdncmVnYXRlX3JldC5jXFxuaW5kZXggNzg1MWJhZGUyYjQwNi4uZjVjMTE2NjAyN2ExZCAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYWdncmVnYXRlX3JldC5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2FnZ3JlZ2F0ZV9yZXQuY1xcbkBAIC0xNjcsNiArMTY3LDcgQEAgaW50IGFnZ3JlZ2F0ZV9yZXRfa2Z1bmNfc3RydWN0X2NfdGVzdChzdHJ1Y3QgX19za19idWZmICpza2IpXFxuIFxcbiBTRUMoXFxcInNvY2tldFxcXCIpXFxuIF9fZGVzY3JpcHRpb24oXFxcInZlcmlmaWVyX2FnZ3JlZ2F0ZV9yZXQ6IG5lZWRzIExMVk0gMjMsIGR1bW15IHRlc3RcXFwiKVxcbitfX3NraXAoXFxcIm5lZWRzIExMVk0gMjNcXFwiKVxcbiBfX3N1Y2Nlc3NcXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcXG4ge1xcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYnN3YXAuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9ic3dhcC5jXFxuaW5kZXggY2ZmYWYzNjE5MmJjNS4uNDhmZmI1YjI0MmQyNCAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYnN3YXAuY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9ic3dhcC5jXFxuQEAgLTgsNyArOCw3IEBAXFxuIFxcdChkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfcmlzY3YpIFxcdTAwMjZcXHUwMDI2IF9fcmlzY3ZfeGxlbiA9PSA2NCkgfHwgXFxcXFxcbiBcXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfYXJtKSB8fCBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfczM5MCkgfHwgXFxcXFxcbiBcXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfbG9vbmdhcmNoKSkgXFx1MDAyNlxcdTAwMjYgXFxcXFxcbi1cXHRfX2NsYW5nX21ham9yX18gXFx1MDAzZT0gMThcXG4rXFx0KF9fY2xhbmdfbWFqb3JfXyBcXHUwMDNlPSAxOCB8fCBkZWZpbmVkKF9fQlBGX0ZFQVRVUkVfQlNXQVApKVxcbiBcXG4gU0VDKFxcXCJzb2NrZXRcXFwiKVxcbiBfX2Rlc2NyaXB0aW9uKFxcXCJCU1dBUCwgMTZcXFwiKVxcbkBAIC0xMTcsNiArMTE3LDcgQEAgbDBfJT06XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbiBcXG4gU0VDKFxcXCJzb2NrZXRcXFwiKVxcbiBfX2Rlc2NyaXB0aW9uKFxcXCJjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCwgdXNlIGEgZHVtbXkgdGVzdFxcXCIpXFxuK19fc2tpcChcXFwiY3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXRcXFwiKVxcbiBfX3N1Y2Nlc3NcXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcXG4ge1xcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfZ290b2wuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9nb3RvbC5jXFxuaW5kZXggZDVkOGYyNGRmMzk0OS4uYzBmZDMwYTNhNGMxMyAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfZ290b2wuY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9nb3RvbC5jXFxuQEAgLTUyLDYgKzUyLDcgQEAgX19uYWtlZCB2b2lkIGdvdG9sX2xhcmdlX2ltbSh2b2lkKVxcbiBcXG4gU0VDKFxcXCJzb2NrZXRcXFwiKVxcbiBfX2Rlc2NyaXB0aW9uKFxcXCJjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCwgdXNlIGEgZHVtbXkgdGVzdFxcXCIpXFxuK19fc2tpcChcXFwiY3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXRcXFwiKVxcbiBfX3N1Y2Nlc3NcXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcXG4ge1xcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbGRzeC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xkc3guY1xcbmluZGV4IDQxMzQwODc3ZGM5ZDkuLjc1NzYyZTExYjQ0M2YgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xkc3guY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sZHN4LmNcXG5AQCAtOSwxMyArOSw3IEBAXFxuIFxcdChkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfcmlzY3YpIFxcdTAwMjZcXHUwMDI2IF9fcmlzY3ZfeGxlbiA9PSA2NCkgfHwgXFxcXFxcbiBcXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfYXJtKSB8fCBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfczM5MCkgfHwgXFxcXFxcbiBcXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfbG9vbmdhcmNoKSkgXFx1MDAyNlxcdTAwMjYgXFxcXFxcbi1cXHRfX2NsYW5nX21ham9yX18gXFx1MDAzZT0gMThcXG4tXFxuLXN0cnVjdCB7XFxuLVxcdF9fdWludCh0eXBlLCBCUEZfTUFQX1RZUEVfQVJFTkEpO1xcbi1cXHRfX3VpbnQobWFwX2ZsYWdzLCBCUEZfRl9NTUFQQUJMRSk7XFxuLVxcdF9fdWludChtYXhfZW50cmllcywgMSk7XFxuLX0gYXJlbmEgU0VDKFxcXCIubWFwc1xcXCIpO1xcbitcXHQoX19jbGFuZ19tYWpvcl9fIFxcdTAwM2U9IDE4IHx8IGRlZmluZWQoX19CUEZfRkVBVFVSRV9MRFNYKSlcXG4gXFxuIFNFQyhcXFwic29ja2V0XFxcIilcXG4gX19kZXNjcmlwdGlvbihcXFwiTERTWCwgUzhcXFwiKVxcbkBAIC0yNjMsNiArMjU3LDE0IEBAIF9fbmFrZWQgdm9pZCBsZHN4X2N0eF84KHZvaWQpXFxuIFxcdDogX19jbG9iYmVyX2FsbCk7XFxuIH1cXG4gXFxuKyNpZmRlZiBfX0JQRl9GRUFUVVJFX0FERFJfU1BBQ0VfQ0FTVFxcbitcXG4rc3RydWN0IHtcXG4rXFx0X191aW50KHR5cGUsIEJQRl9NQVBfVFlQRV9BUkVOQSk7XFxuK1xcdF9fdWludChtYXBfZmxhZ3MsIEJQRl9GX01NQVBBQkxFKTtcXG4rXFx0X191aW50KG1heF9lbnRyaWVzLCAxKTtcXG4rfSBhcmVuYSBTRUMoXFxcIi5tYXBzXFxcIik7XFxuK1xcbiBTRUMoXFxcInN5c2NhbGxcXFwiKVxcbiBfX2Rlc2NyaXB0aW9uKFxcXCJBcmVuYSBMRFNYIERpc2FzbVxcXCIpXFxuIF9fc3VjY2Vzc1xcbkBAIC00MzIsMTAgKzQzNCwxMyBAQCB2b2lkIGtmdW5jX3Jvb3Qodm9pZClcXG4gXFx0YnBmX2FyZW5hX2FsbG9jX3BhZ2VzKDAsIDAsIDAsIDAsIDApO1xcbiB9XFxuIFxcbisjZW5kaWYgLyogX19CUEZfRkVBVFVSRV9BRERSX1NQQUNFX0NBU1QgKi9cXG4rXFxuICNlbHNlXFxuIFxcbiBTRUMoXFxcInNvY2tldFxcXCIpXFxuIF9fZGVzY3JpcHRpb24oXFxcImNwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0XFxcIilcXG4rX19za2lwKFxcXCJjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdFxcXCIpXFxuIF9fc3VjY2Vzc1xcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxcbiB7XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sb2FkX2FjcXVpcmUuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sb2FkX2FjcXVpcmUuY1xcbmluZGV4IGQxNzAyNmQ3NDgwZDguLmJjYzM0ZTc5OGM2MzQgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xvYWRfYWNxdWlyZS5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xvYWRfYWNxdWlyZS5jXFxuQEAgLTI2Nyw2ICsyNjcsNyBAQCBfX25ha2VkIHZvaWQgbG9hZF9hY3F1aXJlX3dpdGhfaW52YWxpZF9yZWcodm9pZClcXG4gXFxuIFNFQyhcXFwic29ja2V0XFxcIilcXG4gX19kZXNjcmlwdGlvbihcXFwiQ2xhbmcgdmVyc2lvbiBcXHUwMDNjIDE4LCBFTkFCTEVfQVRPTUlDU19URVNUUyBub3QgZGVmaW5lZCwgYW5kL29yIEpJVCBkb2Vzbid0IHN1cHBvcnQgbG9hZC1hY3F1aXJlLCB1c2UgYSBkdW1teSB0ZXN0XFxcIilcXG4rX19za2lwKFxcXCJDbGFuZyB2ZXJzaW9uIFxcdTAwM2MgMTgsIEVOQUJMRV9BVE9NSUNTX1RFU1RTIG5vdCBkZWZpbmVkLCBhbmQvb3IgSklUIGRvZXNuJ3Qgc3VwcG9ydCBsb2FkLWFjcXVpcmVcXFwiKVxcbiBfX3N1Y2Nlc3NcXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcXG4ge1xcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbW92c3guYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9tb3ZzeC5jXFxuaW5kZXggYTRkODgxNGViNWVkYy4uMTk1YjI3YTUxMjI0ZiAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbW92c3guY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9tb3ZzeC5jXFxuQEAgLTgsNyArOCw3IEBAXFxuIFxcdChkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfcmlzY3YpIFxcdTAwMjZcXHUwMDI2IF9fcmlzY3ZfeGxlbiA9PSA2NCkgfHwgXFxcXFxcbiBcXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfYXJtKSB8fCBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfczM5MCkgfHwgXFxcXFxcbiBcXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfbG9vbmdhcmNoKSkgXFx1MDAyNlxcdTAwMjYgXFxcXFxcbi1cXHRfX2NsYW5nX21ham9yX18gXFx1MDAzZT0gMThcXG4rXFx0KF9fY2xhbmdfbWFqb3JfXyBcXHUwMDNlPSAxOCB8fCBkZWZpbmVkKF9fQlBGX0ZFQVRVUkVfTU9WU1gpKVxcbiBcXG4gU0VDKFxcXCJzb2NrZXRcXFwiKVxcbiBfX2Rlc2NyaXB0aW9uKFxcXCJNT1YzMlNYLCBTOFxcXCIpXFxuQEAgLTM0Myw2ICszNDMsNyBAQCBsYWJlbF8lPTogXFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXFxcXG4gXFxuIFNFQyhcXFwic29ja2V0XFxcIilcXG4gX19kZXNjcmlwdGlvbihcXFwiY3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQsIHVzZSBhIGR1bW15IHRlc3RcXFwiKVxcbitfX3NraXAoXFxcImNwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0XFxcIilcXG4gX19zdWNjZXNzXFxuIGludCBkdW1teV90ZXN0KHZvaWQpXFxuIHtcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3BlcmNwdV9hZGRyLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcGVyY3B1X2FkZHIuY1xcbmluZGV4IDk2N2Y0ZTZlM2E0OTAuLmZkNDE4ZjI3OTk2ZjUgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3BlcmNwdV9hZGRyLmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcGVyY3B1X2FkZHIuY1xcbkBAIC02MSw2ICs2MSw3IEBAIF9fbmFrZWQgdm9pZCBwZXJjcHVfYWRkcih2b2lkKVxcbiBcXG4gU0VDKFxcXCJyYXdfdHBcXFwiKVxcbiBfX2Rlc2NyaXB0aW9uKFxcXCJwZXJjcHUgYWRkciBkdW1teVxcXCIpXFxuK19fc2tpcChcXFwicGVyY3B1IGFkZHIgdGVzdHMgbmVlZCB4ODZcXFwiKVxcbiBfX3N1Y2Nlc3NcXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcXG4ge1xcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcHJpdmF0ZV9zdGFjay5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3ByaXZhdGVfc3RhY2suY1xcbmluZGV4IGVhMGE3ZTczMzMxZGEuLjNkOTk5NGE1MjQ2NGUgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3ByaXZhdGVfc3RhY2suY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wcml2YXRlX3N0YWNrLmNcXG5AQCAtMzc3LDYgKzM3Nyw3IEBAIGludCBwcml2YXRlX3N0YWNrX21heF9kZXB0aCh2b2lkKVxcbiBcXG4gU0VDKFxcXCJrcHJvYmVcXFwiKVxcbiBfX2Rlc2NyaXB0aW9uKFxcXCJwcml2YXRlIHN0YWNrIGlzIG5vdCBzdXBwb3J0ZWQsIHVzZSBhIGR1bW15IHRlc3RcXFwiKVxcbitfX3NraXAoXFxcInByaXZhdGUgc3RhY2sgaXMgbm90IHN1cHBvcnRlZFxcXCIpXFxuIF9fc3VjY2Vzc1xcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxcbiB7XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zZGl2LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2Rpdi5jXFxuaW5kZXggOTVmMzIzOWNlMjI4Yi4uZDZjYmUxZTI3ZmQ2YiAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2Rpdi5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3NkaXYuY1xcbkBAIC05LDcgKzksNyBAQFxcbiBcXHQoZGVmaW5lZChfX1RBUkdFVF9BUkNIX3Jpc2N2KSBcXHUwMDI2XFx1MDAyNiBfX3Jpc2N2X3hsZW4gPT0gNjQpIHx8IFxcXFxcXG4gXFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2FybSkgfHwgZGVmaW5lZChfX1RBUkdFVF9BUkNIX3MzOTApIHx8IFxcXFxcXG4gXFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2xvb25nYXJjaCkpIFxcdTAwMjZcXHUwMDI2IFxcXFxcXG4tXFx0X19jbGFuZ19tYWpvcl9fIFxcdTAwM2U9IDE4XFxuK1xcdChfX2NsYW5nX21ham9yX18gXFx1MDAzZT0gMTggfHwgZGVmaW5lZChfX0JQRl9GRUFUVVJFX1NESVZfU01PRCkpXFxuIFxcbiBTRUMoXFxcInNvY2tldFxcXCIpXFxuIF9fZGVzY3JpcHRpb24oXFxcIlNESVYzMiwgbm9uLXplcm8gaW1tIGRpdmlzb3IsIGNoZWNrIDFcXFwiKVxcbkBAIC0xMjcxLDYgKzEyNzEsNyBAQCBfX25ha2VkIHZvaWQgc21vZDMyX2ludF9taW5fbW9kX25lZzJfaW1tKHZvaWQpXFxuIFxcbiBTRUMoXFxcInNvY2tldFxcXCIpXFxuIF9fZGVzY3JpcHRpb24oXFxcImNwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0XFxcIilcXG4rX19za2lwKFxcXCJjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdFxcXCIpXFxuIF9fc3VjY2Vzc1xcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxcbiB7XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmcuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmcuY1xcbmluZGV4IDdlMGNlNWRiMjhhMGQuLjUxZDIyZmFmNDU1OWYgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZy5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZy5jXFxuQEAgLTQzNiw2ICs0MzYsNyBAQCBfX25ha2VkIHZvaWQgc3RhY2tfYXJnX3NlcXVlbnRpYWxfY2FsbHModm9pZClcXG4gXFxuIFNFQyhcXFwic29ja2V0XFxcIilcXG4gX19kZXNjcmlwdGlvbihcXFwic3RhY2tfYXJnIGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0XFxcIilcXG4rX19za2lwKFxcXCJzdGFja19hcmcgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXRcXFwiKVxcbiBfX3N1Y2Nlc3NcXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcXG4ge1xcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnX29yZGVyLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnX29yZGVyLmNcXG5pbmRleCBjOWZlNDg1N2RhM2Y1Li44ZTQzMjUyNzNiM2Q4IDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmdfb3JkZXIuY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmdfb3JkZXIuY1xcbkBAIC0xNzQsNiArMTc0LDcgQEAgX19uYWtlZCB2b2lkIHN0YWNrX2FyZ19yZWFkX3dpdGhvdXRfd3JpdGVfMih2b2lkKVxcbiBcXG4gU0VDKFxcXCJzb2NrZXRcXFwiKVxcbiBfX2Rlc2NyaXB0aW9uKFxcXCJzdGFja19hcmcgb3JkZXIgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQsIHVzZSBhIGR1bW15IHRlc3RcXFwiKVxcbitfX3NraXAoXFxcInN0YWNrX2FyZyBvcmRlciBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdFxcXCIpXFxuIF9fc3VjY2Vzc1xcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxcbiB7XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdG9yZV9yZWxlYXNlLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RvcmVfcmVsZWFzZS5jXFxuaW5kZXggNzJmMWViMDA2MDc0OC4uMGFiYmVlNWNlMTA5MiAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RvcmVfcmVsZWFzZS5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0b3JlX3JlbGVhc2UuY1xcbkBAIC0yOTAsNiArMjkwLDcgQEAgX19uYWtlZCB2b2lkIHN0b3JlX3JlbGVhc2Vfd2l0aF9pbnZhbGlkX3JlZyh2b2lkKVxcbiBcXG4gU0VDKFxcXCJzb2NrZXRcXFwiKVxcbiBfX2Rlc2NyaXB0aW9uKFxcXCJDbGFuZyB2ZXJzaW9uIFxcdTAwM2MgMTgsIEVOQUJMRV9BVE9NSUNTX1RFU1RTIG5vdCBkZWZpbmVkLCBhbmQvb3IgSklUIGRvZXNuJ3Qgc3VwcG9ydCBzdG9yZS1yZWxlYXNlLCB1c2UgYSBkdW1teSB0ZXN0XFxcIilcXG4rX19za2lwKFxcXCJDbGFuZyB2ZXJzaW9uIFxcdTAwM2MgMTgsIEVOQUJMRV9BVE9NSUNTX1RFU1RTIG5vdCBkZWZpbmVkLCBhbmQvb3IgSklUIGRvZXNuJ3Qgc3VwcG9ydCBzdG9yZS1yZWxlYXNlXFxcIilcXG4gX19zdWNjZXNzXFxuIGludCBkdW1teV90ZXN0KHZvaWQpXFxuIHtcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfbG9hZGVyLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9sb2FkZXIuY1xcbmluZGV4IDA3ODA3NzU3YjUxOGQuLjc5NGE3ZGZiMDU3OTYgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfbG9hZGVyLmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9sb2FkZXIuY1xcbkBAIC03MCw2ICs3MCw3IEBAIHN0cnVjdCB0ZXN0X3NwZWMge1xcbiBcXHRpbnQgYXJjaF9tYXNrO1xcbiBcXHRpbnQgbG9hZF9tYXNrO1xcbiBcXHRpbnQgbGluZWFyX3N6O1xcbitcXHRjb25zdCBjaGFyICpza2lwX3JlYXNvbjtcXG4gXFx0Ym9vbCBhdXhpbGlhcnk7XFxuIFxcdGJvb2wgdmFsaWQ7XFxuIH07XFxuQEAgLTQ1Niw2ICs0NTcsOCBAQCBzdGF0aWMgaW50IHBhcnNlX3Rlc3Rfc3BlYyhzdHJ1Y3QgdGVzdF9sb2FkZXIgKnRlc3RlcixcXG4gXFx0XFx0XFx0Y29udGludWU7XFxuIFxcdFxcdGlmICgodmFsID0gc3RyX2hhc19wZngocywgXFxcInRlc3RfZGVzY3JpcHRpb249XFxcIikpKSB7XFxuIFxcdFxcdFxcdGRlc2NyaXB0aW9uID0gdmFsO1xcbitcXHRcXHR9IGVsc2UgaWYgKCh2YWwgPSBzdHJfaGFzX3BmeChzLCBcXFwidGVzdF9za2lwPVxcXCIpKSkge1xcbitcXHRcXHRcXHRzcGVjLVxcdTAwM2Vza2lwX3JlYXNvbiA9IHZhbDtcXG4gXFx0XFx0fSBlbHNlIGlmIChzdHJjbXAocywgXFxcInRlc3RfZXhwZWN0X2ZhaWx1cmVcXFwiKSA9PSAwKSB7XFxuIFxcdFxcdFxcdHNwZWMtXFx1MDAzZXByaXYuZXhwZWN0X2ZhaWx1cmUgPSB0cnVlO1xcbiBcXHRcXHRcXHRzcGVjLVxcdTAwM2Vtb2RlX21hc2sgfD0gUFJJVjtcXG5AQCAtMTMyNyw2ICsxMzMwLDEyIEBAIHZvaWQgcnVuX3N1YnRlc3Qoc3RydWN0IHRlc3RfbG9hZGVyICp0ZXN0ZXIsXFxuIFxcdGlmICghdGVzdF9fc3RhcnRfc3VidGVzdF93aXRoX2Rlc2Moc3Vic3BlYy1cXHUwMDNlbmFtZSwgc3Vic3BlYy1cXHUwMDNlZGVzY3JpcHRpb24pKVxcbiBcXHRcXHRyZXR1cm47XFxuIFxcbitcXHRpZiAoc3BlYy1cXHUwMDNlc2tpcF9yZWFzb24pIHtcXG4rXFx0XFx0cHJpbnRmKFxcXCIlczpTS0lQOiAlc1xcXFxuXFxcIiwgX19mdW5jX18sIHNwZWMtXFx1MDAzZXNraXBfcmVhc29uKTtcXG4rXFx0XFx0dGVzdF9fc2tpcCgpO1xcbitcXHRcXHRyZXR1cm47XFxuK1xcdH1cXG4rXFxuIFxcdGlmICgoZ2V0X2N1cnJlbnRfYXJjaCgpIFxcdTAwMjYgc3BlYy1cXHUwMDNlYXJjaF9tYXNrKSA9PSAwKSB7XFxuIFxcdFxcdHRlc3RfX3NraXAoKTtcXG4gXFx0XFx0cmV0dXJuO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQyMzozNzoxMC41NDUxOTgwMVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjk2NDQzMzUxNjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgQlBGIHNlbGZ0ZXN0cyBpbiB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvIHRvIGFkZCBhIF9fc2tpcCB0YWcgYW5kIGZpeCBzb21lIHRlc3QgY29tcGlsYXRpb24gaXNzdWVzLiBJdCBkb2VzIG5vdCBtYWtlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBjb2RlIGl0c2VsZi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDhkMzVmNGI1YWFhODAzNWFkMjg4YjcxODk3YjU2ZDdmYTgwNzJhMTlcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAyNCAyMzozNzowNiAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9hcmVuYV9rZnVuYy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2FyZW5hX2tmdW5jLmNcbmluZGV4IGJmMGQzMDRlMGU1OWMuLjUwNjA5ZjNiMDU2NGEgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYXJlbmFfa2Z1bmMuY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2FyZW5hX2tmdW5jLmNcbkBAIC0yMzMsOCArMjMzLDkgQEAgU0VDKFwic3lzY2FsbFwiKVxuIF9fYXJjaF94ODZfNjRcbiBfX2FyY2hfYXJtNjRcbiBfX2Rlc2NyaXB0aW9uKFwiYXJlbmFfYXJnX3N0YWNrOiBub3Qgc3VwcG9ydGVkLCBkdW1teSB0ZXN0XCIpXG4rX19za2lwKFwiYXJlbmFfYXJnX3N0YWNrOiBub3Qgc3VwcG9ydGVkXCIpXG4gX19zdWNjZXNzXG4taW50IGFyZW5hX2FyZ19zdGFjayh2b2lkICpjdHgpXG4raW50IGR1bW15X3Rlc3Qodm9pZCAqY3R4KVxuIHtcbiBcdHJldHVybiAwO1xuIH1cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX21pc2MuaCBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfbWlzYy5oXG5pbmRleCA1ZWFjZjFiNDMyNTIxLi5lYjg4ZDljZTZjMzQ4IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9taXNjLmhcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfbWlzYy5oXG5AQCAtMTA2LDYgKzEwNiwxMSBAQFxuICAqIF9fZGVzY3JpcHRpb24gICAgIFRleHQgdG8gYmUgdXNlZCBmb3IgZGlzcGxheSBhbmQgYXMgYW4gYWRkaXRpb25hbCBmaWx0ZXJcbiAgKiAgICAgICAgICAgICAgICAgICBhbGlhcywgd2hpbGUgdGhlIG9yaWdpbmFsIHByb2dyYW0gbmFtZSBzdGF5cyBtYXRjaGFibGUuXG4gICpcbisgKiBfX3NraXAgICAgICAgICAgICBSZXBvcnQgdGhlIHRlc3QgYXMgU0tJUCB3aXRoIHRoZSBnaXZlbiByZWFzb24gaW5zdGVhZCBvZlxuKyAqICAgICAgICAgICAgICAgICAgIHJ1bm5pbmcgaXQuIEZvciBwbGFjZWhvbGRlciBwcm9ncmFtcyB0aGF0IHN0YW5kIGluIGZvciBhXG4rICogICAgICAgICAgICAgICAgICAgZmVhdHVyZSB0aGUgdG9vbGNoYWluIG9yIEpJVCBjYW5ub3QgcHJvdmlkZSwgc28gYSBydW4gZG9lc1xuKyAqICAgICAgICAgICAgICAgICAgIG5vdCByZXBvcnQgT0sgZm9yIGNvdmVyYWdlIGl0IG5ldmVyIGV4ZWN1dGVkLlxuKyAqXG4gICogX19sb2dfbGV2ZWwgICAgICAgTG9nIGxldmVsIHRvIHVzZSBmb3IgdGhlIHByb2dyYW0sIG51bWVyaWMgdmFsdWUgZXhwZWN0ZWQuXG4gICpcbiAgKiBfX2ZsYWcgICAgICAgICAgICBBZGRzIG9uZSBmbGFnIHVzZSBmb3IgdGhlIHByb2dyYW0sIHRoZSBmb2xsb3dpbmcgdmFsdWVzIGFyZSB2YWxpZDpcbkBAIC0xMzksNiArMTQ0LDcgQEBcbiAjZGVmaW5lIF9fZmFpbHVyZVx0XHRfX3Rlc3RfdGFnKFwidGVzdF9leHBlY3RfZmFpbHVyZVwiKVxuICNkZWZpbmUgX19zdWNjZXNzXHRcdF9fdGVzdF90YWcoXCJ0ZXN0X2V4cGVjdF9zdWNjZXNzXCIpXG4gI2RlZmluZSBfX2Rlc2NyaXB0aW9uKGRlc2MpXHRfX3Rlc3RfdGFnKFwidGVzdF9kZXNjcmlwdGlvbj1cIiBkZXNjKVxuKyNkZWZpbmUgX19za2lwKHJlYXNvbilcdFx0X190ZXN0X3RhZyhcInRlc3Rfc2tpcD1cIiByZWFzb24pXG4gI2RlZmluZSBfX21zZ191bnByaXYobXNnKVx0X190ZXN0X3RhZyhcInRlc3RfZXhwZWN0X21zZ191bnByaXY9XCIgbXNnKVxuICNkZWZpbmUgX19ub3RfbXNnX3VucHJpdihtc2cpXHRfX3Rlc3RfdGFnKFwidGVzdF9leHBlY3Rfbm90X21zZ191bnByaXY9XCIgbXNnKVxuICNkZWZpbmUgX194bGF0ZWRfdW5wcml2KG1zZylcdF9fdGVzdF90YWcoXCJ0ZXN0X2V4cGVjdF94bGF0ZWRfdW5wcml2PVwiIG1zZylcbkBAIC0yNTUsMTEgKzI2MSwxMSBAQFxuICAgICAgKGRlZmluZWQoX19UQVJHRVRfQVJDSF9yaXNjdikgXHUwMDI2XHUwMDI2IF9fcmlzY3ZfeGxlbiA9PSA2NCkgfHxcdFx0XFxcbiAgICAgIGRlZmluZWQoX19UQVJHRVRfQVJDSF9hcm0pIHx8IGRlZmluZWQoX19UQVJHRVRfQVJDSF9zMzkwKSB8fFx0XFxcbiAgICAgIGRlZmluZWQoX19UQVJHRVRfQVJDSF9sb29uZ2FyY2gpKSBcdTAwMjZcdTAwMjZcdFx0XHRcdFxcXG4tXHRfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOFxuK1x0KF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4IHx8IGRlZmluZWQoX19CUEZfRkVBVFVSRV9HT1RPTCkpXG4gI2RlZmluZSBDQU5fVVNFX0dPVE9MXG4gI2VuZGlmXG4gXG4tI2lmIF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4XG4rI2lmIF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4IHx8IGRlZmluZWQoX19CUEZfRkVBVFVSRV9TVClcbiAjZGVmaW5lIENBTl9VU0VfQlBGX1NUXG4gI2VuZGlmXG4gXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2NvbXB1dGVfbGl2ZV9yZWdpc3RlcnMuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9jb21wdXRlX2xpdmVfcmVnaXN0ZXJzLmNcbmluZGV4IDMzOGU2N2NkODg1NmEuLjk0MWI2NWZlN2MwNzEgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvY29tcHV0ZV9saXZlX3JlZ2lzdGVycy5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvY29tcHV0ZV9saXZlX3JlZ2lzdGVycy5jXG5AQCAtMjk5LDcgKzI5OSwxNSBAQCBfX25ha2VkIHZvaWQgZ290b2wodm9pZClcbiBcdFx0XCJyMyA9IDI0O1wiXG4gXHRcdFwiaWYgcjEgXHUwMDNlIDB4NyBnb3RvICsyO1wiXG4gXHRcdFwicjAgPSByMjtcIlxuKyNpZmRlZiBfX2NsYW5nX19cbiBcdFx0XCJnb3RvbCArMTtcIlxuKyNlbHNlXG4rXHRcdC8qXG4rXHRcdCAqIGdhcyBtaXMtcGFyc2VzICdnb3RvbCArMScgYXMgJ2dvdG8gbCsxJywgc2FtZSBlbmNvZGluZ1xuK1x0XHQgKiB3aXRob3V0IHRoZSBzaWduIChiaW51dGlscyBQUiBnYXMvMzQ1NTgpLlxuK1x0XHQgKi9cbitcdFx0XCJnb3RvbCAxO1wiXG4rI2VuZGlmXG4gXHRcdFwicjAgPSByMztcIlxuIFx0XHRcImV4aXQ7XCJcbiBcdFx0OlxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdGFja19hcmdfZmFpbC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmNcbmluZGV4IGFkOWQ0YmZlMTVkY2MuLmVlZDk3ZDU4MjUxNTcgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RhY2tfYXJnX2ZhaWwuY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmNcbkBAIC0xMDMsOCArMTAzLDkgQEAgX19uYWtlZCB2b2lkIHIxMV9zdG9yZV96ZXJvX29mZih2b2lkKVxuIFxuIFNFQyhcInRjXCIpXG4gX19kZXNjcmlwdGlvbihcInN0YWNrX2FyZ19mYWlsOiBub3Qgc3VwcG9ydGVkLCBkdW1teSB0ZXN0XCIpXG4rX19za2lwKFwic3RhY2tfYXJnX2ZhaWw6IG5vdCBzdXBwb3J0ZWRcIilcbiBfX3N1Y2Nlc3Ncbi1pbnQgdGVzdF9zdGFja19hcmdfYmlnKHN0cnVjdCBfX3NrX2J1ZmYgKnNrYilcbitpbnQgZHVtbXlfdGVzdChzdHJ1Y3QgX19za19idWZmICpza2IpXG4ge1xuIFx0cmV0dXJuIDA7XG4gfVxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdGFja19hcmdfcHJlY2lzaW9uLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RhY2tfYXJnX3ByZWNpc2lvbi5jXG5pbmRleCBiZWUyZWVlYzAyMWQ3Li5jZTAzMDFhNDFmYTk0IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19wcmVjaXNpb24uY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19wcmVjaXNpb24uY1xuQEAgLTEyNCw2ICsxMjQsNyBAQCBfX25ha2VkIHZvaWQgc3RhY2tfYXJnX3ByZWNpc2lvbl9icGYyYnBmKHZvaWQpXG4gXG4gU0VDKFwic29ja2V0XCIpXG4gX19kZXNjcmlwdGlvbihcInN0YWNrX2FyZ19wcmVjaXNpb246IG5vdCBzdXBwb3J0ZWQsIGR1bW15IHRlc3RcIilcbitfX3NraXAoXCJzdGFja19hcmdfcHJlY2lzaW9uOiBub3Qgc3VwcG9ydGVkXCIpXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2FnZ3JlZ2F0ZV9yZXQuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9hZ2dyZWdhdGVfcmV0LmNcbmluZGV4IDc4NTFiYWRlMmI0MDYuLmY1YzExNjYwMjdhMWQgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYWdncmVnYXRlX3JldC5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYWdncmVnYXRlX3JldC5jXG5AQCAtMTY3LDYgKzE2Nyw3IEBAIGludCBhZ2dyZWdhdGVfcmV0X2tmdW5jX3N0cnVjdF9jX3Rlc3Qoc3RydWN0IF9fc2tfYnVmZiAqc2tiKVxuIFxuIFNFQyhcInNvY2tldFwiKVxuIF9fZGVzY3JpcHRpb24oXCJ2ZXJpZmllcl9hZ2dyZWdhdGVfcmV0OiBuZWVkcyBMTFZNIDIzLCBkdW1teSB0ZXN0XCIpXG4rX19za2lwKFwibmVlZHMgTExWTSAyM1wiKVxuIF9fc3VjY2Vzc1xuIGludCBkdW1teV90ZXN0KHZvaWQpXG4ge1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9ic3dhcC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jzd2FwLmNcbmluZGV4IGNmZmFmMzYxOTJiYzUuLjQ4ZmZiNWIyNDJkMjQgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYnN3YXAuY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jzd2FwLmNcbkBAIC04LDcgKzgsNyBAQFxuIFx0KGRlZmluZWQoX19UQVJHRVRfQVJDSF9yaXNjdikgXHUwMDI2XHUwMDI2IF9fcmlzY3ZfeGxlbiA9PSA2NCkgfHwgXFxcbiBcdGRlZmluZWQoX19UQVJHRVRfQVJDSF9hcm0pIHx8IGRlZmluZWQoX19UQVJHRVRfQVJDSF9zMzkwKSB8fCBcXFxuIFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2xvb25nYXJjaCkpIFx1MDAyNlx1MDAyNiBcXFxuLVx0X19jbGFuZ19tYWpvcl9fIFx1MDAzZT0gMThcbitcdChfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOCB8fCBkZWZpbmVkKF9fQlBGX0ZFQVRVUkVfQlNXQVApKVxuIFxuIFNFQyhcInNvY2tldFwiKVxuIF9fZGVzY3JpcHRpb24oXCJCU1dBUCwgMTZcIilcbkBAIC0xMTcsNiArMTE3LDcgQEAgbDBfJT06XHRcdFx0XHRcdFx0XHRcXFxuIFxuIFNFQyhcInNvY2tldFwiKVxuIF9fZGVzY3JpcHRpb24oXCJjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCwgdXNlIGEgZHVtbXkgdGVzdFwiKVxuK19fc2tpcChcImNwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0XCIpXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2dvdG9sLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfZ290b2wuY1xuaW5kZXggZDVkOGYyNGRmMzk0OS4uYzBmZDMwYTNhNGMxMyAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9nb3RvbC5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfZ290b2wuY1xuQEAgLTUyLDYgKzUyLDcgQEAgX19uYWtlZCB2b2lkIGdvdG9sX2xhcmdlX2ltbSh2b2lkKVxuIFxuIFNFQyhcInNvY2tldFwiKVxuIF9fZGVzY3JpcHRpb24oXCJjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCwgdXNlIGEgZHVtbXkgdGVzdFwiKVxuK19fc2tpcChcImNwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0XCIpXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xkc3guYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sZHN4LmNcbmluZGV4IDQxMzQwODc3ZGM5ZDkuLjc1NzYyZTExYjQ0M2YgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbGRzeC5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbGRzeC5jXG5AQCAtOSwxMyArOSw3IEBAXG4gXHQoZGVmaW5lZChfX1RBUkdFVF9BUkNIX3Jpc2N2KSBcdTAwMjZcdTAwMjYgX19yaXNjdl94bGVuID09IDY0KSB8fCBcXFxuIFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2FybSkgfHwgZGVmaW5lZChfX1RBUkdFVF9BUkNIX3MzOTApIHx8IFxcXG4gXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfbG9vbmdhcmNoKSkgXHUwMDI2XHUwMDI2IFxcXG4tXHRfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOFxuLVxuLXN0cnVjdCB7XG4tXHRfX3VpbnQodHlwZSwgQlBGX01BUF9UWVBFX0FSRU5BKTtcbi1cdF9fdWludChtYXBfZmxhZ3MsIEJQRl9GX01NQVBBQkxFKTtcbi1cdF9fdWludChtYXhfZW50cmllcywgMSk7XG4tfSBhcmVuYSBTRUMoXCIubWFwc1wiKTtcbitcdChfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOCB8fCBkZWZpbmVkKF9fQlBGX0ZFQVRVUkVfTERTWCkpXG4gXG4gU0VDKFwic29ja2V0XCIpXG4gX19kZXNjcmlwdGlvbihcIkxEU1gsIFM4XCIpXG5AQCAtMjYzLDYgKzI1NywxNCBAQCBfX25ha2VkIHZvaWQgbGRzeF9jdHhfOCh2b2lkKVxuIFx0OiBfX2Nsb2JiZXJfYWxsKTtcbiB9XG4gXG4rI2lmZGVmIF9fQlBGX0ZFQVRVUkVfQUREUl9TUEFDRV9DQVNUXG4rXG4rc3RydWN0IHtcbitcdF9fdWludCh0eXBlLCBCUEZfTUFQX1RZUEVfQVJFTkEpO1xuK1x0X191aW50KG1hcF9mbGFncywgQlBGX0ZfTU1BUEFCTEUpO1xuK1x0X191aW50KG1heF9lbnRyaWVzLCAxKTtcbit9IGFyZW5hIFNFQyhcIi5tYXBzXCIpO1xuK1xuIFNFQyhcInN5c2NhbGxcIilcbiBfX2Rlc2NyaXB0aW9uKFwiQXJlbmEgTERTWCBEaXNhc21cIilcbiBfX3N1Y2Nlc3NcbkBAIC00MzIsMTAgKzQzNCwxMyBAQCB2b2lkIGtmdW5jX3Jvb3Qodm9pZClcbiBcdGJwZl9hcmVuYV9hbGxvY19wYWdlcygwLCAwLCAwLCAwLCAwKTtcbiB9XG4gXG4rI2VuZGlmIC8qIF9fQlBGX0ZFQVRVUkVfQUREUl9TUEFDRV9DQVNUICovXG4rXG4gI2Vsc2VcbiBcbiBTRUMoXCJzb2NrZXRcIilcbiBfX2Rlc2NyaXB0aW9uKFwiY3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQsIHVzZSBhIGR1bW15IHRlc3RcIilcbitfX3NraXAoXCJjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdFwiKVxuIF9fc3VjY2Vzc1xuIGludCBkdW1teV90ZXN0KHZvaWQpXG4ge1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sb2FkX2FjcXVpcmUuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sb2FkX2FjcXVpcmUuY1xuaW5kZXggZDE3MDI2ZDc0ODBkOC4uYmNjMzRlNzk4YzYzNCAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sb2FkX2FjcXVpcmUuY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xvYWRfYWNxdWlyZS5jXG5AQCAtMjY3LDYgKzI2Nyw3IEBAIF9fbmFrZWQgdm9pZCBsb2FkX2FjcXVpcmVfd2l0aF9pbnZhbGlkX3JlZyh2b2lkKVxuIFxuIFNFQyhcInNvY2tldFwiKVxuIF9fZGVzY3JpcHRpb24oXCJDbGFuZyB2ZXJzaW9uIFx1MDAzYyAxOCwgRU5BQkxFX0FUT01JQ1NfVEVTVFMgbm90IGRlZmluZWQsIGFuZC9vciBKSVQgZG9lc24ndCBzdXBwb3J0IGxvYWQtYWNxdWlyZSwgdXNlIGEgZHVtbXkgdGVzdFwiKVxuK19fc2tpcChcIkNsYW5nIHZlcnNpb24gXHUwMDNjIDE4LCBFTkFCTEVfQVRPTUlDU19URVNUUyBub3QgZGVmaW5lZCwgYW5kL29yIEpJVCBkb2Vzbid0IHN1cHBvcnQgbG9hZC1hY3F1aXJlXCIpXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX21vdnN4LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbW92c3guY1xuaW5kZXggYTRkODgxNGViNWVkYy4uMTk1YjI3YTUxMjI0ZiAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9tb3ZzeC5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbW92c3guY1xuQEAgLTgsNyArOCw3IEBAXG4gXHQoZGVmaW5lZChfX1RBUkdFVF9BUkNIX3Jpc2N2KSBcdTAwMjZcdTAwMjYgX19yaXNjdl94bGVuID09IDY0KSB8fCBcXFxuIFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2FybSkgfHwgZGVmaW5lZChfX1RBUkdFVF9BUkNIX3MzOTApIHx8IFxcXG4gXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfbG9vbmdhcmNoKSkgXHUwMDI2XHUwMDI2IFxcXG4tXHRfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOFxuK1x0KF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4IHx8IGRlZmluZWQoX19CUEZfRkVBVFVSRV9NT1ZTWCkpXG4gXG4gU0VDKFwic29ja2V0XCIpXG4gX19kZXNjcmlwdGlvbihcIk1PVjMyU1gsIFM4XCIpXG5AQCAtMzQzLDYgKzM0Myw3IEBAIGxhYmVsXyU9OiBcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxuIFxuIFNFQyhcInNvY2tldFwiKVxuIF9fZGVzY3JpcHRpb24oXCJjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCwgdXNlIGEgZHVtbXkgdGVzdFwiKVxuK19fc2tpcChcImNwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0XCIpXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3BlcmNwdV9hZGRyLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcGVyY3B1X2FkZHIuY1xuaW5kZXggOTY3ZjRlNmUzYTQ5MC4uZmQ0MThmMjc5OTZmNSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wZXJjcHVfYWRkci5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcGVyY3B1X2FkZHIuY1xuQEAgLTYxLDYgKzYxLDcgQEAgX19uYWtlZCB2b2lkIHBlcmNwdV9hZGRyKHZvaWQpXG4gXG4gU0VDKFwicmF3X3RwXCIpXG4gX19kZXNjcmlwdGlvbihcInBlcmNwdSBhZGRyIGR1bW15XCIpXG4rX19za2lwKFwicGVyY3B1IGFkZHIgdGVzdHMgbmVlZCB4ODZcIilcbiBfX3N1Y2Nlc3NcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxuIHtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcHJpdmF0ZV9zdGFjay5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3ByaXZhdGVfc3RhY2suY1xuaW5kZXggZWEwYTdlNzMzMzFkYS4uM2Q5OTk0YTUyNDY0ZSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wcml2YXRlX3N0YWNrLmNcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wcml2YXRlX3N0YWNrLmNcbkBAIC0zNzcsNiArMzc3LDcgQEAgaW50IHByaXZhdGVfc3RhY2tfbWF4X2RlcHRoKHZvaWQpXG4gXG4gU0VDKFwia3Byb2JlXCIpXG4gX19kZXNjcmlwdGlvbihcInByaXZhdGUgc3RhY2sgaXMgbm90IHN1cHBvcnRlZCwgdXNlIGEgZHVtbXkgdGVzdFwiKVxuK19fc2tpcChcInByaXZhdGUgc3RhY2sgaXMgbm90IHN1cHBvcnRlZFwiKVxuIF9fc3VjY2Vzc1xuIGludCBkdW1teV90ZXN0KHZvaWQpXG4ge1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zZGl2LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2Rpdi5jXG5pbmRleCA5NWYzMjM5Y2UyMjhiLi5kNmNiZTFlMjdmZDZiIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3NkaXYuY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3NkaXYuY1xuQEAgLTksNyArOSw3IEBAXG4gXHQoZGVmaW5lZChfX1RBUkdFVF9BUkNIX3Jpc2N2KSBcdTAwMjZcdTAwMjYgX19yaXNjdl94bGVuID09IDY0KSB8fCBcXFxuIFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2FybSkgfHwgZGVmaW5lZChfX1RBUkdFVF9BUkNIX3MzOTApIHx8IFxcXG4gXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfbG9vbmdhcmNoKSkgXHUwMDI2XHUwMDI2IFxcXG4tXHRfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOFxuK1x0KF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4IHx8IGRlZmluZWQoX19CUEZfRkVBVFVSRV9TRElWX1NNT0QpKVxuIFxuIFNFQyhcInNvY2tldFwiKVxuIF9fZGVzY3JpcHRpb24oXCJTRElWMzIsIG5vbi16ZXJvIGltbSBkaXZpc29yLCBjaGVjayAxXCIpXG5AQCAtMTI3MSw2ICsxMjcxLDcgQEAgX19uYWtlZCB2b2lkIHNtb2QzMl9pbnRfbWluX21vZF9uZWcyX2ltbSh2b2lkKVxuIFxuIFNFQyhcInNvY2tldFwiKVxuIF9fZGVzY3JpcHRpb24oXCJjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCwgdXNlIGEgZHVtbXkgdGVzdFwiKVxuK19fc2tpcChcImNwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0XCIpXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZy5jXG5pbmRleCA3ZTBjZTVkYjI4YTBkLi41MWQyMmZhZjQ1NTlmIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZy5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnLmNcbkBAIC00MzYsNiArNDM2LDcgQEAgX19uYWtlZCB2b2lkIHN0YWNrX2FyZ19zZXF1ZW50aWFsX2NhbGxzKHZvaWQpXG4gXG4gU0VDKFwic29ja2V0XCIpXG4gX19kZXNjcmlwdGlvbihcInN0YWNrX2FyZyBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCwgdXNlIGEgZHVtbXkgdGVzdFwiKVxuK19fc2tpcChcInN0YWNrX2FyZyBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdFwiKVxuIF9fc3VjY2Vzc1xuIGludCBkdW1teV90ZXN0KHZvaWQpXG4ge1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmdfb3JkZXIuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmdfb3JkZXIuY1xuaW5kZXggYzlmZTQ4NTdkYTNmNS4uOGU0MzI1MjczYjNkOCAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmdfb3JkZXIuY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZ19vcmRlci5jXG5AQCAtMTc0LDYgKzE3NCw3IEBAIF9fbmFrZWQgdm9pZCBzdGFja19hcmdfcmVhZF93aXRob3V0X3dyaXRlXzIodm9pZClcbiBcbiBTRUMoXCJzb2NrZXRcIilcbiBfX2Rlc2NyaXB0aW9uKFwic3RhY2tfYXJnIG9yZGVyIGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0XCIpXG4rX19za2lwKFwic3RhY2tfYXJnIG9yZGVyIGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0XCIpXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0b3JlX3JlbGVhc2UuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdG9yZV9yZWxlYXNlLmNcbmluZGV4IDcyZjFlYjAwNjA3NDguLjBhYmJlZTVjZTEwOTIgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RvcmVfcmVsZWFzZS5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RvcmVfcmVsZWFzZS5jXG5AQCAtMjkwLDYgKzI5MCw3IEBAIF9fbmFrZWQgdm9pZCBzdG9yZV9yZWxlYXNlX3dpdGhfaW52YWxpZF9yZWcodm9pZClcbiBcbiBTRUMoXCJzb2NrZXRcIilcbiBfX2Rlc2NyaXB0aW9uKFwiQ2xhbmcgdmVyc2lvbiBcdTAwM2MgMTgsIEVOQUJMRV9BVE9NSUNTX1RFU1RTIG5vdCBkZWZpbmVkLCBhbmQvb3IgSklUIGRvZXNuJ3Qgc3VwcG9ydCBzdG9yZS1yZWxlYXNlLCB1c2UgYSBkdW1teSB0ZXN0XCIpXG4rX19za2lwKFwiQ2xhbmcgdmVyc2lvbiBcdTAwM2MgMTgsIEVOQUJMRV9BVE9NSUNTX1RFU1RTIG5vdCBkZWZpbmVkLCBhbmQvb3IgSklUIGRvZXNuJ3Qgc3VwcG9ydCBzdG9yZS1yZWxlYXNlXCIpXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfbG9hZGVyLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9sb2FkZXIuY1xuaW5kZXggMDc4MDc3NTdiNTE4ZC4uNzk0YTdkZmIwNTc5NiAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2xvYWRlci5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9sb2FkZXIuY1xuQEAgLTcwLDYgKzcwLDcgQEAgc3RydWN0IHRlc3Rfc3BlYyB7XG4gXHRpbnQgYXJjaF9tYXNrO1xuIFx0aW50IGxvYWRfbWFzaztcbiBcdGludCBsaW5lYXJfc3o7XG4rXHRjb25zdCBjaGFyICpza2lwX3JlYXNvbjtcbiBcdGJvb2wgYXV4aWxpYXJ5O1xuIFx0Ym9vbCB2YWxpZDtcbiB9O1xuQEAgLTQ1Niw2ICs0NTcsOCBAQCBzdGF0aWMgaW50IHBhcnNlX3Rlc3Rfc3BlYyhzdHJ1Y3QgdGVzdF9sb2FkZXIgKnRlc3RlcixcbiBcdFx0XHRjb250aW51ZTtcbiBcdFx0aWYgKCh2YWwgPSBzdHJfaGFzX3BmeChzLCBcInRlc3RfZGVzY3JpcHRpb249XCIpKSkge1xuIFx0XHRcdGRlc2NyaXB0aW9uID0gdmFsO1xuK1x0XHR9IGVsc2UgaWYgKCh2YWwgPSBzdHJfaGFzX3BmeChzLCBcInRlc3Rfc2tpcD1cIikpKSB7XG4rXHRcdFx0c3BlYy1cdTAwM2Vza2lwX3JlYXNvbiA9IHZhbDtcbiBcdFx0fSBlbHNlIGlmIChzdHJjbXAocywgXCJ0ZXN0X2V4cGVjdF9mYWlsdXJlXCIpID09IDApIHtcbiBcdFx0XHRzcGVjLVx1MDAzZXByaXYuZXhwZWN0X2ZhaWx1cmUgPSB0cnVlO1xuIFx0XHRcdHNwZWMtXHUwMDNlbW9kZV9tYXNrIHw9IFBSSVY7XG5AQCAtMTMyNyw2ICsxMzMwLDEyIEBAIHZvaWQgcnVuX3N1YnRlc3Qoc3RydWN0IHRlc3RfbG9hZGVyICp0ZXN0ZXIsXG4gXHRpZiAoIXRlc3RfX3N0YXJ0X3N1YnRlc3Rfd2l0aF9kZXNjKHN1YnNwZWMtXHUwMDNlbmFtZSwgc3Vic3BlYy1cdTAwM2VkZXNjcmlwdGlvbikpXG4gXHRcdHJldHVybjtcbiBcbitcdGlmIChzcGVjLVx1MDAzZXNraXBfcmVhc29uKSB7XG4rXHRcdHByaW50ZihcIiVzOlNLSVA6ICVzXFxuXCIsIF9fZnVuY19fLCBzcGVjLVx1MDAzZXNraXBfcmVhc29uKTtcbitcdFx0dGVzdF9fc2tpcCgpO1xuK1x0XHRyZXR1cm47XG4rXHR9XG4rXG4gXHRpZiAoKGdldF9jdXJyZW50X2FyY2goKSBcdTAwMjYgc3BlYy1cdTAwM2VhcmNoX21hc2spID09IDApIHtcbiBcdFx0dGVzdF9fc2tpcCgpO1xuIFx0XHRyZXR1cm47XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQyMzozNzoxMC41NDUyMDA1WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTY0NDI5ODk1OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEJQRiBTZWxmdGVzdCBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIHRoZSBCUEYgc2VsZnRlc3RzLiBTZWVtcyBsaWtlIHRoZSBwcmltYXJ5IGZvY3VzIGhlcmUgaXMgc3RyZWFtbGluaW5nIHRoZSB0ZXN0IGV4ZWN1dGlvbiBwcm9jZXNzLiBUaGUgaW50cm9kdWN0aW9uIG9mIHRoZSBgX19za2lwYCB0YWcgaW4gYGJwZl9taXNjLmhgIGFuZCB0aGUgY29ycmVzcG9uZGluZyBwYXJzaW5nIG9mIGB0ZXN0X3NraXA9YCBpbiBgdGVzdF9sb2FkZXIuY2AgaXMgYSB3ZWxjb21lIGFkZGl0aW9uOyBpdCBhbGxvd3MgZm9yIG11Y2ggbW9yZSBncmFudWxhciBjb250cm9sIG92ZXIgdGVzdCBza2lwcGluZywgcmF0aGVyIHRoYW4gaGF2aW5nIHRvIHJ1biBkdW1teSB0ZXN0cy4gSSBhcHByZWNpYXRlIHRoZSBmb3J3YXJkIHRoaW5raW5nIGhlcmUsIHRvbywgYnkgYWNjb3VudGluZyBmb3IgdmFyaW91cyBmZWF0dXJlIGZsYWdzIGxpa2UgYF9fQlBGX0ZFQVRVUkVfR09UT0xgLCBgX19CUEZfRkVBVFVSRV9TVGAsIGFuZCB0aGUgcmVzdCwgYWxvbmcgd2l0aCB0aGUgY2xhbmcgdmVyc2lvbiBjaGVjay4gVGhlIGBjb21wdXRlX2xpdmVfcmVnaXN0ZXJzLmNgIGZpeCBmb3IgdGhlIGBnb3RvbCArMWAgcGFyc2luZyBpc3N1ZSBpcyBhIGdvb2QgY2F0Y2ggYXMgd2VsbC5cblxuTm93LCB0aGUgaW1wb3J0YW50IHF1ZXN0aW9uLi4uaXMgdGhpcyAqanVzdCogYSB0b29saW5nIGNoYW5nZSwgb3IgaXMgaXQgZ29pbmcgdG8gaGF2ZSBrbm9jay1vbiBlZmZlY3RzIGZvciB0aGUga2VybmVsIGl0c2VsZj8gTGV0J3MgdGFrZSBhIGNsb3NlciBsb29rIGF0IHRoZSBkaWZmLiBPa2F5LCBydW5uaW5nIHRocm91Z2ggdGhlIGNoYW5nZWQgZmlsZXMsIEkgY2FuIHNlZSB0aGlzIGlzIHN0cmljdGx5IGEgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9gIG1vZGlmaWNhdGlvbi4gVGhlIHBhdGNoIGFsdGVycyB0ZXN0IHByb2dyYW1zIGFuZCB0aGUgdGVzdCBsb2FkZXIgYnV0IGRvZXNuJ3QgdG91Y2ggdGhlIGtlcm5lbCBzb3VyY2UgY29kZSBvciBhcmNoaXRlY3R1cmUuIEdpdmVuIHRoZSBmYWN0IHRoYXQgb25seSB0ZXN0IGNvZGUgYW5kIHRlc3QgZnJhbWV3b3JrIGNvZGUgaGFzIGJlZW4gbW9kaWZpZWQsIEkgY2FuIGRlZmluaXRpdmVseSBzYXkgdGhhdCB0aGVzZSBjaGFuZ2VzIHdvbid0IGludHJvZHVjZSBuZXcgYXR0YWNrIHN1cmZhY2VzLiBUaGVyZSdzIG5vIGNoYW5nZSB0byB0aGUgYmVoYXZpb3Igb2YgdGhlIEJQRiB2ZXJpZmllciBvciB0aGUgQlBGIEpJVCwgc28gbm8ga2VybmVsIGZ1enppbmcgaXMgbmVjZXNzYXJ5LiBUaGVyZWZvcmUsIEkgd2lsbCByZXNwb25kIHdpdGggYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjczNjYsIk91dHB1dFRva2VucyI6NzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3NjMsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQyMzozNzoyMC4xODk1MDI2NzlaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI4NjEwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgQlBGIHNlbGZ0ZXN0cyBpbiB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvIHRvIGFkZCBhIF9fc2tpcCB0YWcgYW5kIGZpeCBzb21lIHRlc3QgY29tcGlsYXRpb24gaXNzdWVzLiBJdCBkb2VzIG5vdCBtYWtlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBjb2RlIGl0c2VsZi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgQlBGIHNlbGZ0ZXN0cyBpbiB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvIHRvIGFkZCBhIF9fc2tpcCB0YWcgYW5kIGZpeCBzb21lIHRlc3QgY29tcGlsYXRpb24gaXNzdWVzLiBJdCBkb2VzIG5vdCBtYWtlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBjb2RlIGl0c2VsZi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDIzOjM3OjIwLjE4OTUzNTYxOVoiLCJTZXEiOjUsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyOTkwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowmf8d2[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-24 22:53:21 +0000 UTC FinishedAt: 2026-08-24 23:37:22 +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+CgkJCTx0ZD4yMDI2LzA4LzI0IDIzOjM3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBCUEYgc2VsZnRlc3RzIGluIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi8gdG8gYWRkIGEgX19za2lwIHRhZyBhbmQgZml4IHNvbWUgdGVzdCBjb21waWxhdGlvbiBpc3N1ZXMuIEl0IGRvZXMgbm90IG1ha2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIGNvZGUgaXRzZWxmLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAyMzozNzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDhkMzVmNGI1YWFhODAzNWFkMjg4YjcxODk3YjU2ZDdmYTgwNzJhMTlcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAyNCAyMzozNzowNiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYXJlbmFfa2Z1bmMuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9hcmVuYV9rZnVuYy5jXG5pbmRleCBiZjBkMzA0ZTBlNTljLi41MDYwOWYzYjA1NjRhIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2FyZW5hX2tmdW5jLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9hcmVuYV9rZnVuYy5jXG5AQCAtMjMzLDggJiM0MzsyMzMsOSBAQCBTRUMoXCYjMzQ7c3lzY2FsbFwmIzM0OylcbiBfX2FyY2hfeDg2XzY0XG4gX19hcmNoX2FybTY0XG4gX19kZXNjcmlwdGlvbihcJiMzNDthcmVuYV9hcmdfc3RhY2s6IG5vdCBzdXBwb3J0ZWQsIGR1bW15IHRlc3RcJiMzNDspXG4mIzQzO19fc2tpcChcJiMzNDthcmVuYV9hcmdfc3RhY2s6IG5vdCBzdXBwb3J0ZWRcJiMzNDspXG4gX19zdWNjZXNzXG4taW50IGFyZW5hX2FyZ19zdGFjayh2b2lkICpjdHgpXG4mIzQzO2ludCBkdW1teV90ZXN0KHZvaWQgKmN0eClcbiB7XG4gXHRyZXR1cm4gMDtcbiB9XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9taXNjLmggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX21pc2MuaFxuaW5kZXggNWVhY2YxYjQzMjUyMS4uZWI4OGQ5Y2U2YzM0OCAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfbWlzYy5oXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX21pc2MuaFxuQEAgLTEwNiw2ICYjNDM7MTA2LDExIEBAXG4gICogX19kZXNjcmlwdGlvbiAgICAgVGV4dCB0byBiZSB1c2VkIGZvciBkaXNwbGF5IGFuZCBhcyBhbiBhZGRpdGlvbmFsIGZpbHRlclxuICAqICAgICAgICAgICAgICAgICAgIGFsaWFzLCB3aGlsZSB0aGUgb3JpZ2luYWwgcHJvZ3JhbSBuYW1lIHN0YXlzIG1hdGNoYWJsZS5cbiAgKlxuJiM0MzsgKiBfX3NraXAgICAgICAgICAgICBSZXBvcnQgdGhlIHRlc3QgYXMgU0tJUCB3aXRoIHRoZSBnaXZlbiByZWFzb24gaW5zdGVhZCBvZlxuJiM0MzsgKiAgICAgICAgICAgICAgICAgICBydW5uaW5nIGl0LiBGb3IgcGxhY2Vob2xkZXIgcHJvZ3JhbXMgdGhhdCBzdGFuZCBpbiBmb3IgYVxuJiM0MzsgKiAgICAgICAgICAgICAgICAgICBmZWF0dXJlIHRoZSB0b29sY2hhaW4gb3IgSklUIGNhbm5vdCBwcm92aWRlLCBzbyBhIHJ1biBkb2VzXG4mIzQzOyAqICAgICAgICAgICAgICAgICAgIG5vdCByZXBvcnQgT0sgZm9yIGNvdmVyYWdlIGl0IG5ldmVyIGV4ZWN1dGVkLlxuJiM0MzsgKlxuICAqIF9fbG9nX2xldmVsICAgICAgIExvZyBsZXZlbCB0byB1c2UgZm9yIHRoZSBwcm9ncmFtLCBudW1lcmljIHZhbHVlIGV4cGVjdGVkLlxuICAqXG4gICogX19mbGFnICAgICAgICAgICAgQWRkcyBvbmUgZmxhZyB1c2UgZm9yIHRoZSBwcm9ncmFtLCB0aGUgZm9sbG93aW5nIHZhbHVlcyBhcmUgdmFsaWQ6XG5AQCAtMTM5LDYgJiM0MzsxNDQsNyBAQFxuICNkZWZpbmUgX19mYWlsdXJlXHRcdF9fdGVzdF90YWcoXCYjMzQ7dGVzdF9leHBlY3RfZmFpbHVyZVwmIzM0OylcbiAjZGVmaW5lIF9fc3VjY2Vzc1x0XHRfX3Rlc3RfdGFnKFwmIzM0O3Rlc3RfZXhwZWN0X3N1Y2Nlc3NcJiMzNDspXG4gI2RlZmluZSBfX2Rlc2NyaXB0aW9uKGRlc2MpXHRfX3Rlc3RfdGFnKFwmIzM0O3Rlc3RfZGVzY3JpcHRpb249XCYjMzQ7IGRlc2MpXG4mIzQzOyNkZWZpbmUgX19za2lwKHJlYXNvbilcdFx0X190ZXN0X3RhZyhcJiMzNDt0ZXN0X3NraXA9XCYjMzQ7IHJlYXNvbilcbiAjZGVmaW5lIF9fbXNnX3VucHJpdihtc2cpXHRfX3Rlc3RfdGFnKFwmIzM0O3Rlc3RfZXhwZWN0X21zZ191bnByaXY9XCYjMzQ7IG1zZylcbiAjZGVmaW5lIF9fbm90X21zZ191bnByaXYobXNnKVx0X190ZXN0X3RhZyhcJiMzNDt0ZXN0X2V4cGVjdF9ub3RfbXNnX3VucHJpdj1cJiMzNDsgbXNnKVxuICNkZWZpbmUgX194bGF0ZWRfdW5wcml2KG1zZylcdF9fdGVzdF90YWcoXCYjMzQ7dGVzdF9leHBlY3RfeGxhdGVkX3VucHJpdj1cJiMzNDsgbXNnKVxuQEAgLTI1NSwxMSAmIzQzOzI2MSwxMSBAQFxuICAgICAgKGRlZmluZWQoX19UQVJHRVRfQVJDSF9yaXNjdikgXHUwMDI2XHUwMDI2IF9fcmlzY3ZfeGxlbiA9PSA2NCkgfHxcdFx0XFxcbiAgICAgIGRlZmluZWQoX19UQVJHRVRfQVJDSF9hcm0pIHx8IGRlZmluZWQoX19UQVJHRVRfQVJDSF9zMzkwKSB8fFx0XFxcbiAgICAgIGRlZmluZWQoX19UQVJHRVRfQVJDSF9sb29uZ2FyY2gpKSBcdTAwMjZcdTAwMjZcdFx0XHRcdFxcXG4tXHRfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOFxuJiM0MztcdChfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOCB8fCBkZWZpbmVkKF9fQlBGX0ZFQVRVUkVfR09UT0wpKVxuICNkZWZpbmUgQ0FOX1VTRV9HT1RPTFxuICNlbmRpZlxuIFxuLSNpZiBfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOFxuJiM0MzsjaWYgX19jbGFuZ19tYWpvcl9fIFx1MDAzZT0gMTggfHwgZGVmaW5lZChfX0JQRl9GRUFUVVJFX1NUKVxuICNkZWZpbmUgQ0FOX1VTRV9CUEZfU1RcbiAjZW5kaWZcbiBcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvY29tcHV0ZV9saXZlX3JlZ2lzdGVycy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2NvbXB1dGVfbGl2ZV9yZWdpc3RlcnMuY1xuaW5kZXggMzM4ZTY3Y2Q4ODU2YS4uOTQxYjY1ZmU3YzA3MSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9jb21wdXRlX2xpdmVfcmVnaXN0ZXJzLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9jb21wdXRlX2xpdmVfcmVnaXN0ZXJzLmNcbkBAIC0yOTksNyAmIzQzOzI5OSwxNSBAQCBfX25ha2VkIHZvaWQgZ290b2wodm9pZClcbiBcdFx0XCYjMzQ7cjMgPSAyNDtcJiMzNDtcbiBcdFx0XCYjMzQ7aWYgcjEgXHUwMDNlIDB4NyBnb3RvICYjNDM7MjtcJiMzNDtcbiBcdFx0XCYjMzQ7cjAgPSByMjtcJiMzNDtcbiYjNDM7I2lmZGVmIF9fY2xhbmdfX1xuIFx0XHRcJiMzNDtnb3RvbCAmIzQzOzE7XCYjMzQ7XG4mIzQzOyNlbHNlXG4mIzQzO1x0XHQvKlxuJiM0MztcdFx0ICogZ2FzIG1pcy1wYXJzZXMgJiMzOTtnb3RvbCAmIzQzOzEmIzM5OyBhcyAmIzM5O2dvdG8gbCYjNDM7MSYjMzk7LCBzYW1lIGVuY29kaW5nXG4mIzQzO1x0XHQgKiB3aXRob3V0IHRoZSBzaWduIChiaW51dGlscyBQUiBnYXMvMzQ1NTgpLlxuJiM0MztcdFx0ICovXG4mIzQzO1x0XHRcJiMzNDtnb3RvbCAxO1wmIzM0O1xuJiM0MzsjZW5kaWZcbiBcdFx0XCYjMzQ7cjAgPSByMztcJiMzNDtcbiBcdFx0XCYjMzQ7ZXhpdDtcJiMzNDtcbiBcdFx0OlxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdGFja19hcmdfZmFpbC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmNcbmluZGV4IGFkOWQ0YmZlMTVkY2MuLmVlZDk3ZDU4MjUxNTcgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RhY2tfYXJnX2ZhaWwuY1xuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmNcbkBAIC0xMDMsOCAmIzQzOzEwMyw5IEBAIF9fbmFrZWQgdm9pZCByMTFfc3RvcmVfemVyb19vZmYodm9pZClcbiBcbiBTRUMoXCYjMzQ7dGNcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDtzdGFja19hcmdfZmFpbDogbm90IHN1cHBvcnRlZCwgZHVtbXkgdGVzdFwmIzM0OylcbiYjNDM7X19za2lwKFwmIzM0O3N0YWNrX2FyZ19mYWlsOiBub3Qgc3VwcG9ydGVkXCYjMzQ7KVxuIF9fc3VjY2Vzc1xuLWludCB0ZXN0X3N0YWNrX2FyZ19iaWcoc3RydWN0IF9fc2tfYnVmZiAqc2tiKVxuJiM0MztpbnQgZHVtbXlfdGVzdChzdHJ1Y3QgX19za19idWZmICpza2IpXG4ge1xuIFx0cmV0dXJuIDA7XG4gfVxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdGFja19hcmdfcHJlY2lzaW9uLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RhY2tfYXJnX3ByZWNpc2lvbi5jXG5pbmRleCBiZWUyZWVlYzAyMWQ3Li5jZTAzMDFhNDFmYTk0IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19wcmVjaXNpb24uY1xuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19wcmVjaXNpb24uY1xuQEAgLTEyNCw2ICYjNDM7MTI0LDcgQEAgX19uYWtlZCB2b2lkIHN0YWNrX2FyZ19wcmVjaXNpb25fYnBmMmJwZih2b2lkKVxuIFxuIFNFQyhcJiMzNDtzb2NrZXRcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDtzdGFja19hcmdfcHJlY2lzaW9uOiBub3Qgc3VwcG9ydGVkLCBkdW1teSB0ZXN0XCYjMzQ7KVxuJiM0MztfX3NraXAoXCYjMzQ7c3RhY2tfYXJnX3ByZWNpc2lvbjogbm90IHN1cHBvcnRlZFwmIzM0OylcbiBfX3N1Y2Nlc3NcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxuIHtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYWdncmVnYXRlX3JldC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2FnZ3JlZ2F0ZV9yZXQuY1xuaW5kZXggNzg1MWJhZGUyYjQwNi4uZjVjMTE2NjAyN2ExZCAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9hZ2dyZWdhdGVfcmV0LmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9hZ2dyZWdhdGVfcmV0LmNcbkBAIC0xNjcsNiAmIzQzOzE2Nyw3IEBAIGludCBhZ2dyZWdhdGVfcmV0X2tmdW5jX3N0cnVjdF9jX3Rlc3Qoc3RydWN0IF9fc2tfYnVmZiAqc2tiKVxuIFxuIFNFQyhcJiMzNDtzb2NrZXRcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDt2ZXJpZmllcl9hZ2dyZWdhdGVfcmV0OiBuZWVkcyBMTFZNIDIzLCBkdW1teSB0ZXN0XCYjMzQ7KVxuJiM0MztfX3NraXAoXCYjMzQ7bmVlZHMgTExWTSAyM1wmIzM0OylcbiBfX3N1Y2Nlc3NcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxuIHtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYnN3YXAuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9ic3dhcC5jXG5pbmRleCBjZmZhZjM2MTkyYmM1Li40OGZmYjViMjQyZDI0IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jzd2FwLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9ic3dhcC5jXG5AQCAtOCw3ICYjNDM7OCw3IEBAXG4gXHQoZGVmaW5lZChfX1RBUkdFVF9BUkNIX3Jpc2N2KSBcdTAwMjZcdTAwMjYgX19yaXNjdl94bGVuID09IDY0KSB8fCBcXFxuIFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2FybSkgfHwgZGVmaW5lZChfX1RBUkdFVF9BUkNIX3MzOTApIHx8IFxcXG4gXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfbG9vbmdhcmNoKSkgXHUwMDI2XHUwMDI2IFxcXG4tXHRfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOFxuJiM0MztcdChfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOCB8fCBkZWZpbmVkKF9fQlBGX0ZFQVRVUkVfQlNXQVApKVxuIFxuIFNFQyhcJiMzNDtzb2NrZXRcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDtCU1dBUCwgMTZcJiMzNDspXG5AQCAtMTE3LDYgJiM0MzsxMTcsNyBAQCBsMF8lPTpcdFx0XHRcdFx0XHRcdFxcXG4gXG4gU0VDKFwmIzM0O3NvY2tldFwmIzM0OylcbiBfX2Rlc2NyaXB0aW9uKFwmIzM0O2NwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0XCYjMzQ7KVxuJiM0MztfX3NraXAoXCYjMzQ7Y3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXRcJiMzNDspXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2dvdG9sLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfZ290b2wuY1xuaW5kZXggZDVkOGYyNGRmMzk0OS4uYzBmZDMwYTNhNGMxMyAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9nb3RvbC5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfZ290b2wuY1xuQEAgLTUyLDYgJiM0Mzs1Miw3IEBAIF9fbmFrZWQgdm9pZCBnb3RvbF9sYXJnZV9pbW0odm9pZClcbiBcbiBTRUMoXCYjMzQ7c29ja2V0XCYjMzQ7KVxuIF9fZGVzY3JpcHRpb24oXCYjMzQ7Y3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQsIHVzZSBhIGR1bW15IHRlc3RcJiMzNDspXG4mIzQzO19fc2tpcChcJiMzNDtjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdFwmIzM0OylcbiBfX3N1Y2Nlc3NcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxuIHtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbGRzeC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xkc3guY1xuaW5kZXggNDEzNDA4NzdkYzlkOS4uNzU3NjJlMTFiNDQzZiAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sZHN4LmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sZHN4LmNcbkBAIC05LDEzICYjNDM7OSw3IEBAXG4gXHQoZGVmaW5lZChfX1RBUkdFVF9BUkNIX3Jpc2N2KSBcdTAwMjZcdTAwMjYgX19yaXNjdl94bGVuID09IDY0KSB8fCBcXFxuIFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2FybSkgfHwgZGVmaW5lZChfX1RBUkdFVF9BUkNIX3MzOTApIHx8IFxcXG4gXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfbG9vbmdhcmNoKSkgXHUwMDI2XHUwMDI2IFxcXG4tXHRfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOFxuLVxuLXN0cnVjdCB7XG4tXHRfX3VpbnQodHlwZSwgQlBGX01BUF9UWVBFX0FSRU5BKTtcbi1cdF9fdWludChtYXBfZmxhZ3MsIEJQRl9GX01NQVBBQkxFKTtcbi1cdF9fdWludChtYXhfZW50cmllcywgMSk7XG4tfSBhcmVuYSBTRUMoXCYjMzQ7Lm1hcHNcJiMzNDspO1xuJiM0MztcdChfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOCB8fCBkZWZpbmVkKF9fQlBGX0ZFQVRVUkVfTERTWCkpXG4gXG4gU0VDKFwmIzM0O3NvY2tldFwmIzM0OylcbiBfX2Rlc2NyaXB0aW9uKFwmIzM0O0xEU1gsIFM4XCYjMzQ7KVxuQEAgLTI2Myw2ICYjNDM7MjU3LDE0IEBAIF9fbmFrZWQgdm9pZCBsZHN4X2N0eF84KHZvaWQpXG4gXHQ6IF9fY2xvYmJlcl9hbGwpO1xuIH1cbiBcbiYjNDM7I2lmZGVmIF9fQlBGX0ZFQVRVUkVfQUREUl9TUEFDRV9DQVNUXG4mIzQzO1xuJiM0MztzdHJ1Y3Qge1xuJiM0MztcdF9fdWludCh0eXBlLCBCUEZfTUFQX1RZUEVfQVJFTkEpO1xuJiM0MztcdF9fdWludChtYXBfZmxhZ3MsIEJQRl9GX01NQVBBQkxFKTtcbiYjNDM7XHRfX3VpbnQobWF4X2VudHJpZXMsIDEpO1xuJiM0Mzt9IGFyZW5hIFNFQyhcJiMzNDsubWFwc1wmIzM0Oyk7XG4mIzQzO1xuIFNFQyhcJiMzNDtzeXNjYWxsXCYjMzQ7KVxuIF9fZGVzY3JpcHRpb24oXCYjMzQ7QXJlbmEgTERTWCBEaXNhc21cJiMzNDspXG4gX19zdWNjZXNzXG5AQCAtNDMyLDEwICYjNDM7NDM0LDEzIEBAIHZvaWQga2Z1bmNfcm9vdCh2b2lkKVxuIFx0YnBmX2FyZW5hX2FsbG9jX3BhZ2VzKDAsIDAsIDAsIDAsIDApO1xuIH1cbiBcbiYjNDM7I2VuZGlmIC8qIF9fQlBGX0ZFQVRVUkVfQUREUl9TUEFDRV9DQVNUICovXG4mIzQzO1xuICNlbHNlXG4gXG4gU0VDKFwmIzM0O3NvY2tldFwmIzM0OylcbiBfX2Rlc2NyaXB0aW9uKFwmIzM0O2NwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0XCYjMzQ7KVxuJiM0MztfX3NraXAoXCYjMzQ7Y3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXRcJiMzNDspXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xvYWRfYWNxdWlyZS5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xvYWRfYWNxdWlyZS5jXG5pbmRleCBkMTcwMjZkNzQ4MGQ4Li5iY2MzNGU3OThjNjM0IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xvYWRfYWNxdWlyZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbG9hZF9hY3F1aXJlLmNcbkBAIC0yNjcsNiAmIzQzOzI2Nyw3IEBAIF9fbmFrZWQgdm9pZCBsb2FkX2FjcXVpcmVfd2l0aF9pbnZhbGlkX3JlZyh2b2lkKVxuIFxuIFNFQyhcJiMzNDtzb2NrZXRcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDtDbGFuZyB2ZXJzaW9uIFx1MDAzYyAxOCwgRU5BQkxFX0FUT01JQ1NfVEVTVFMgbm90IGRlZmluZWQsIGFuZC9vciBKSVQgZG9lc24mIzM5O3Qgc3VwcG9ydCBsb2FkLWFjcXVpcmUsIHVzZSBhIGR1bW15IHRlc3RcJiMzNDspXG4mIzQzO19fc2tpcChcJiMzNDtDbGFuZyB2ZXJzaW9uIFx1MDAzYyAxOCwgRU5BQkxFX0FUT01JQ1NfVEVTVFMgbm90IGRlZmluZWQsIGFuZC9vciBKSVQgZG9lc24mIzM5O3Qgc3VwcG9ydCBsb2FkLWFjcXVpcmVcJiMzNDspXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX21vdnN4LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbW92c3guY1xuaW5kZXggYTRkODgxNGViNWVkYy4uMTk1YjI3YTUxMjI0ZiAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9tb3ZzeC5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbW92c3guY1xuQEAgLTgsNyAmIzQzOzgsNyBAQFxuIFx0KGRlZmluZWQoX19UQVJHRVRfQVJDSF9yaXNjdikgXHUwMDI2XHUwMDI2IF9fcmlzY3ZfeGxlbiA9PSA2NCkgfHwgXFxcbiBcdGRlZmluZWQoX19UQVJHRVRfQVJDSF9hcm0pIHx8IGRlZmluZWQoX19UQVJHRVRfQVJDSF9zMzkwKSB8fCBcXFxuIFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2xvb25nYXJjaCkpIFx1MDAyNlx1MDAyNiBcXFxuLVx0X19jbGFuZ19tYWpvcl9fIFx1MDAzZT0gMThcbiYjNDM7XHQoX19jbGFuZ19tYWpvcl9fIFx1MDAzZT0gMTggfHwgZGVmaW5lZChfX0JQRl9GRUFUVVJFX01PVlNYKSlcbiBcbiBTRUMoXCYjMzQ7c29ja2V0XCYjMzQ7KVxuIF9fZGVzY3JpcHRpb24oXCYjMzQ7TU9WMzJTWCwgUzhcJiMzNDspXG5AQCAtMzQzLDYgJiM0MzszNDMsNyBAQCBsYWJlbF8lPTogXHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcbiBcbiBTRUMoXCYjMzQ7c29ja2V0XCYjMzQ7KVxuIF9fZGVzY3JpcHRpb24oXCYjMzQ7Y3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQsIHVzZSBhIGR1bW15IHRlc3RcJiMzNDspXG4mIzQzO19fc2tpcChcJiMzNDtjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdFwmIzM0OylcbiBfX3N1Y2Nlc3NcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxuIHtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcGVyY3B1X2FkZHIuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wZXJjcHVfYWRkci5jXG5pbmRleCA5NjdmNGU2ZTNhNDkwLi5mZDQxOGYyNzk5NmY1IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3BlcmNwdV9hZGRyLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wZXJjcHVfYWRkci5jXG5AQCAtNjEsNiAmIzQzOzYxLDcgQEAgX19uYWtlZCB2b2lkIHBlcmNwdV9hZGRyKHZvaWQpXG4gXG4gU0VDKFwmIzM0O3Jhd190cFwmIzM0OylcbiBfX2Rlc2NyaXB0aW9uKFwmIzM0O3BlcmNwdSBhZGRyIGR1bW15XCYjMzQ7KVxuJiM0MztfX3NraXAoXCYjMzQ7cGVyY3B1IGFkZHIgdGVzdHMgbmVlZCB4ODZcJiMzNDspXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3ByaXZhdGVfc3RhY2suYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wcml2YXRlX3N0YWNrLmNcbmluZGV4IGVhMGE3ZTczMzMxZGEuLjNkOTk5NGE1MjQ2NGUgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcHJpdmF0ZV9zdGFjay5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcHJpdmF0ZV9zdGFjay5jXG5AQCAtMzc3LDYgJiM0MzszNzcsNyBAQCBpbnQgcHJpdmF0ZV9zdGFja19tYXhfZGVwdGgodm9pZClcbiBcbiBTRUMoXCYjMzQ7a3Byb2JlXCYjMzQ7KVxuIF9fZGVzY3JpcHRpb24oXCYjMzQ7cHJpdmF0ZSBzdGFjayBpcyBub3Qgc3VwcG9ydGVkLCB1c2UgYSBkdW1teSB0ZXN0XCYjMzQ7KVxuJiM0MztfX3NraXAoXCYjMzQ7cHJpdmF0ZSBzdGFjayBpcyBub3Qgc3VwcG9ydGVkXCYjMzQ7KVxuIF9fc3VjY2Vzc1xuIGludCBkdW1teV90ZXN0KHZvaWQpXG4ge1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zZGl2LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2Rpdi5jXG5pbmRleCA5NWYzMjM5Y2UyMjhiLi5kNmNiZTFlMjdmZDZiIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3NkaXYuY1xuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3NkaXYuY1xuQEAgLTksNyAmIzQzOzksNyBAQFxuIFx0KGRlZmluZWQoX19UQVJHRVRfQVJDSF9yaXNjdikgXHUwMDI2XHUwMDI2IF9fcmlzY3ZfeGxlbiA9PSA2NCkgfHwgXFxcbiBcdGRlZmluZWQoX19UQVJHRVRfQVJDSF9hcm0pIHx8IGRlZmluZWQoX19UQVJHRVRfQVJDSF9zMzkwKSB8fCBcXFxuIFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2xvb25nYXJjaCkpIFx1MDAyNlx1MDAyNiBcXFxuLVx0X19jbGFuZ19tYWpvcl9fIFx1MDAzZT0gMThcbiYjNDM7XHQoX19jbGFuZ19tYWpvcl9fIFx1MDAzZT0gMTggfHwgZGVmaW5lZChfX0JQRl9GRUFUVVJFX1NESVZfU01PRCkpXG4gXG4gU0VDKFwmIzM0O3NvY2tldFwmIzM0OylcbiBfX2Rlc2NyaXB0aW9uKFwmIzM0O1NESVYzMiwgbm9uLXplcm8gaW1tIGRpdmlzb3IsIGNoZWNrIDFcJiMzNDspXG5AQCAtMTI3MSw2ICYjNDM7MTI3MSw3IEBAIF9fbmFrZWQgdm9pZCBzbW9kMzJfaW50X21pbl9tb2RfbmVnMl9pbW0odm9pZClcbiBcbiBTRUMoXCYjMzQ7c29ja2V0XCYjMzQ7KVxuIF9fZGVzY3JpcHRpb24oXCYjMzQ7Y3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQsIHVzZSBhIGR1bW15IHRlc3RcJiMzNDspXG4mIzQzO19fc2tpcChcJiMzNDtjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdFwmIzM0OylcbiBfX3N1Y2Nlc3NcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxuIHtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnLmNcbmluZGV4IDdlMGNlNWRiMjhhMGQuLjUxZDIyZmFmNDU1OWYgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmcuY1xuQEAgLTQzNiw2ICYjNDM7NDM2LDcgQEAgX19uYWtlZCB2b2lkIHN0YWNrX2FyZ19zZXF1ZW50aWFsX2NhbGxzKHZvaWQpXG4gXG4gU0VDKFwmIzM0O3NvY2tldFwmIzM0OylcbiBfX2Rlc2NyaXB0aW9uKFwmIzM0O3N0YWNrX2FyZyBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCwgdXNlIGEgZHVtbXkgdGVzdFwmIzM0OylcbiYjNDM7X19za2lwKFwmIzM0O3N0YWNrX2FyZyBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdFwmIzM0OylcbiBfX3N1Y2Nlc3NcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxuIHtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnX29yZGVyLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnX29yZGVyLmNcbmluZGV4IGM5ZmU0ODU3ZGEzZjUuLjhlNDMyNTI3M2IzZDggMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnX29yZGVyLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmdfb3JkZXIuY1xuQEAgLTE3NCw2ICYjNDM7MTc0LDcgQEAgX19uYWtlZCB2b2lkIHN0YWNrX2FyZ19yZWFkX3dpdGhvdXRfd3JpdGVfMih2b2lkKVxuIFxuIFNFQyhcJiMzNDtzb2NrZXRcJiMzNDspXG4gX19kZXNjcmlwdGlvbihcJiMzNDtzdGFja19hcmcgb3JkZXIgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQsIHVzZSBhIGR1bW15IHRlc3RcJiMzNDspXG4mIzQzO19fc2tpcChcJiMzNDtzdGFja19hcmcgb3JkZXIgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXRcJiMzNDspXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0b3JlX3JlbGVhc2UuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdG9yZV9yZWxlYXNlLmNcbmluZGV4IDcyZjFlYjAwNjA3NDguLjBhYmJlZTVjZTEwOTIgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RvcmVfcmVsZWFzZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RvcmVfcmVsZWFzZS5jXG5AQCAtMjkwLDYgJiM0MzsyOTAsNyBAQCBfX25ha2VkIHZvaWQgc3RvcmVfcmVsZWFzZV93aXRoX2ludmFsaWRfcmVnKHZvaWQpXG4gXG4gU0VDKFwmIzM0O3NvY2tldFwmIzM0OylcbiBfX2Rlc2NyaXB0aW9uKFwmIzM0O0NsYW5nIHZlcnNpb24gXHUwMDNjIDE4LCBFTkFCTEVfQVRPTUlDU19URVNUUyBub3QgZGVmaW5lZCwgYW5kL29yIEpJVCBkb2VzbiYjMzk7dCBzdXBwb3J0IHN0b3JlLXJlbGVhc2UsIHVzZSBhIGR1bW15IHRlc3RcJiMzNDspXG4mIzQzO19fc2tpcChcJiMzNDtDbGFuZyB2ZXJzaW9uIFx1MDAzYyAxOCwgRU5BQkxFX0FUT01JQ1NfVEVTVFMgbm90IGRlZmluZWQsIGFuZC9vciBKSVQgZG9lc24mIzM5O3Qgc3VwcG9ydCBzdG9yZS1yZWxlYXNlXCYjMzQ7KVxuIF9fc3VjY2Vzc1xuIGludCBkdW1teV90ZXN0KHZvaWQpXG4ge1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2xvYWRlci5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfbG9hZGVyLmNcbmluZGV4IDA3ODA3NzU3YjUxOGQuLjc5NGE3ZGZiMDU3OTYgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9sb2FkZXIuY1xuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfbG9hZGVyLmNcbkBAIC03MCw2ICYjNDM7NzAsNyBAQCBzdHJ1Y3QgdGVzdF9zcGVjIHtcbiBcdGludCBhcmNoX21hc2s7XG4gXHRpbnQgbG9hZF9tYXNrO1xuIFx0aW50IGxpbmVhcl9zejtcbiYjNDM7XHRjb25zdCBjaGFyICpza2lwX3JlYXNvbjtcbiBcdGJvb2wgYXV4aWxpYXJ5O1xuIFx0Ym9vbCB2YWxpZDtcbiB9O1xuQEAgLTQ1Niw2ICYjNDM7NDU3LDggQEAgc3RhdGljIGludCBwYXJzZV90ZXN0X3NwZWMoc3RydWN0IHRlc3RfbG9hZGVyICp0ZXN0ZXIsXG4gXHRcdFx0Y29udGludWU7XG4gXHRcdGlmICgodmFsID0gc3RyX2hhc19wZngocywgXCYjMzQ7dGVzdF9kZXNjcmlwdGlvbj1cJiMzNDspKSkge1xuIFx0XHRcdGRlc2NyaXB0aW9uID0gdmFsO1xuJiM0MztcdFx0fSBlbHNlIGlmICgodmFsID0gc3RyX2hhc19wZngocywgXCYjMzQ7dGVzdF9za2lwPVwmIzM0OykpKSB7XG4mIzQzO1x0XHRcdHNwZWMtXHUwMDNlc2tpcF9yZWFzb24gPSB2YWw7XG4gXHRcdH0gZWxzZSBpZiAoc3RyY21wKHMsIFwmIzM0O3Rlc3RfZXhwZWN0X2ZhaWx1cmVcJiMzNDspID09IDApIHtcbiBcdFx0XHRzcGVjLVx1MDAzZXByaXYuZXhwZWN0X2ZhaWx1cmUgPSB0cnVlO1xuIFx0XHRcdHNwZWMtXHUwMDNlbW9kZV9tYXNrIHw9IFBSSVY7XG5AQCAtMTMyNyw2ICYjNDM7MTMzMCwxMiBAQCB2b2lkIHJ1bl9zdWJ0ZXN0KHN0cnVjdCB0ZXN0X2xvYWRlciAqdGVzdGVyLFxuIFx0aWYgKCF0ZXN0X19zdGFydF9zdWJ0ZXN0X3dpdGhfZGVzYyhzdWJzcGVjLVx1MDAzZW5hbWUsIHN1YnNwZWMtXHUwMDNlZGVzY3JpcHRpb24pKVxuIFx0XHRyZXR1cm47XG4gXG4mIzQzO1x0aWYgKHNwZWMtXHUwMDNlc2tpcF9yZWFzb24pIHtcbiYjNDM7XHRcdHByaW50ZihcJiMzNDslczpTS0lQOiAlc1xcblwmIzM0OywgX19mdW5jX18sIHNwZWMtXHUwMDNlc2tpcF9yZWFzb24pO1xuJiM0MztcdFx0dGVzdF9fc2tpcCgpO1xuJiM0MztcdFx0cmV0dXJuO1xuJiM0MztcdH1cbiYjNDM7XG4gXHRpZiAoKGdldF9jdXJyZW50X2FyY2goKSBcdTAwMjYgc3BlYy1cdTAwM2VhcmNoX21hc2spID09IDApIHtcbiBcdFx0dGVzdF9fc2tpcCgpO1xuIFx0XHRyZXR1cm47XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMjM6Mzc8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgQlBGIHNlbGZ0ZXN0cyBpbiB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvIHRvIGFkZCBhIF9fc2tpcCB0YWcgYW5kIGZpeCBzb21lIHRlc3QgY29tcGlsYXRpb24gaXNzdWVzLiBJdCBkb2VzIG5vdCBtYWtlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBjb2RlIGl0c2VsZi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA4ZDM1ZjRiNWFhYTgwMzVhZDI4OGI3MTg5N2I1NmQ3ZmE4MDcyYTE5CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIE1vbiBBdWcgMjQgMjM6Mzc6MDYgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYXJlbmFfa2Z1bmMuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9hcmVuYV9rZnVuYy5jCmluZGV4IGJmMGQzMDRlMGU1OWMuLjUwNjA5ZjNiMDU2NGEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9hcmVuYV9rZnVuYy5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9hcmVuYV9rZnVuYy5jCkBAIC0yMzMsOCAmIzQzOzIzMyw5IEBAIFNFQygmIzM0O3N5c2NhbGwmIzM0OykKIF9fYXJjaF94ODZfNjQKIF9fYXJjaF9hcm02NAogX19kZXNjcmlwdGlvbigmIzM0O2FyZW5hX2FyZ19zdGFjazogbm90IHN1cHBvcnRlZCwgZHVtbXkgdGVzdCYjMzQ7KQomIzQzO19fc2tpcCgmIzM0O2FyZW5hX2FyZ19zdGFjazogbm90IHN1cHBvcnRlZCYjMzQ7KQogX19zdWNjZXNzCi1pbnQgYXJlbmFfYXJnX3N0YWNrKHZvaWQgKmN0eCkKJiM0MztpbnQgZHVtbXlfdGVzdCh2b2lkICpjdHgpCiB7CiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX21pc2MuaCBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfbWlzYy5oCmluZGV4IDVlYWNmMWI0MzI1MjEuLmViODhkOWNlNmMzNDggMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfbWlzYy5oCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfbWlzYy5oCkBAIC0xMDYsNiAmIzQzOzEwNiwxMSBAQAogICogX19kZXNjcmlwdGlvbiAgICAgVGV4dCB0byBiZSB1c2VkIGZvciBkaXNwbGF5IGFuZCBhcyBhbiBhZGRpdGlvbmFsIGZpbHRlcgogICogICAgICAgICAgICAgICAgICAgYWxpYXMsIHdoaWxlIHRoZSBvcmlnaW5hbCBwcm9ncmFtIG5hbWUgc3RheXMgbWF0Y2hhYmxlLgogICoKJiM0MzsgKiBfX3NraXAgICAgICAgICAgICBSZXBvcnQgdGhlIHRlc3QgYXMgU0tJUCB3aXRoIHRoZSBnaXZlbiByZWFzb24gaW5zdGVhZCBvZgomIzQzOyAqICAgICAgICAgICAgICAgICAgIHJ1bm5pbmcgaXQuIEZvciBwbGFjZWhvbGRlciBwcm9ncmFtcyB0aGF0IHN0YW5kIGluIGZvciBhCiYjNDM7ICogICAgICAgICAgICAgICAgICAgZmVhdHVyZSB0aGUgdG9vbGNoYWluIG9yIEpJVCBjYW5ub3QgcHJvdmlkZSwgc28gYSBydW4gZG9lcwomIzQzOyAqICAgICAgICAgICAgICAgICAgIG5vdCByZXBvcnQgT0sgZm9yIGNvdmVyYWdlIGl0IG5ldmVyIGV4ZWN1dGVkLgomIzQzOyAqCiAgKiBfX2xvZ19sZXZlbCAgICAgICBMb2cgbGV2ZWwgdG8gdXNlIGZvciB0aGUgcHJvZ3JhbSwgbnVtZXJpYyB2YWx1ZSBleHBlY3RlZC4KICAqCiAgKiBfX2ZsYWcgICAgICAgICAgICBBZGRzIG9uZSBmbGFnIHVzZSBmb3IgdGhlIHByb2dyYW0sIHRoZSBmb2xsb3dpbmcgdmFsdWVzIGFyZSB2YWxpZDoKQEAgLTEzOSw2ICYjNDM7MTQ0LDcgQEAKICNkZWZpbmUgX19mYWlsdXJlCQlfX3Rlc3RfdGFnKCYjMzQ7dGVzdF9leHBlY3RfZmFpbHVyZSYjMzQ7KQogI2RlZmluZSBfX3N1Y2Nlc3MJCV9fdGVzdF90YWcoJiMzNDt0ZXN0X2V4cGVjdF9zdWNjZXNzJiMzNDspCiAjZGVmaW5lIF9fZGVzY3JpcHRpb24oZGVzYykJX190ZXN0X3RhZygmIzM0O3Rlc3RfZGVzY3JpcHRpb249JiMzNDsgZGVzYykKJiM0MzsjZGVmaW5lIF9fc2tpcChyZWFzb24pCQlfX3Rlc3RfdGFnKCYjMzQ7dGVzdF9za2lwPSYjMzQ7IHJlYXNvbikKICNkZWZpbmUgX19tc2dfdW5wcml2KG1zZykJX190ZXN0X3RhZygmIzM0O3Rlc3RfZXhwZWN0X21zZ191bnByaXY9JiMzNDsgbXNnKQogI2RlZmluZSBfX25vdF9tc2dfdW5wcml2KG1zZykJX190ZXN0X3RhZygmIzM0O3Rlc3RfZXhwZWN0X25vdF9tc2dfdW5wcml2PSYjMzQ7IG1zZykKICNkZWZpbmUgX194bGF0ZWRfdW5wcml2KG1zZykJX190ZXN0X3RhZygmIzM0O3Rlc3RfZXhwZWN0X3hsYXRlZF91bnByaXY9JiMzNDsgbXNnKQpAQCAtMjU1LDExICYjNDM7MjYxLDExIEBACiAgICAgIChkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfcmlzY3YpICZhbXA7JmFtcDsgX19yaXNjdl94bGVuID09IDY0KSB8fAkJXAogICAgICBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfYXJtKSB8fCBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfczM5MCkgfHwJXAogICAgICBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfbG9vbmdhcmNoKSkgJmFtcDsmYW1wOwkJCQlcCi0JX19jbGFuZ19tYWpvcl9fICZndDs9IDE4CiYjNDM7CShfX2NsYW5nX21ham9yX18gJmd0Oz0gMTggfHwgZGVmaW5lZChfX0JQRl9GRUFUVVJFX0dPVE9MKSkKICNkZWZpbmUgQ0FOX1VTRV9HT1RPTAogI2VuZGlmCiAKLSNpZiBfX2NsYW5nX21ham9yX18gJmd0Oz0gMTgKJiM0MzsjaWYgX19jbGFuZ19tYWpvcl9fICZndDs9IDE4IHx8IGRlZmluZWQoX19CUEZfRkVBVFVSRV9TVCkKICNkZWZpbmUgQ0FOX1VTRV9CUEZfU1QKICNlbmRpZgogCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvY29tcHV0ZV9saXZlX3JlZ2lzdGVycy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2NvbXB1dGVfbGl2ZV9yZWdpc3RlcnMuYwppbmRleCAzMzhlNjdjZDg4NTZhLi45NDFiNjVmZTdjMDcxIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvY29tcHV0ZV9saXZlX3JlZ2lzdGVycy5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9jb21wdXRlX2xpdmVfcmVnaXN0ZXJzLmMKQEAgLTI5OSw3ICYjNDM7Mjk5LDE1IEBAIF9fbmFrZWQgdm9pZCBnb3RvbCh2b2lkKQogCQkmIzM0O3IzID0gMjQ7JiMzNDsKIAkJJiMzNDtpZiByMSAmZ3Q7IDB4NyBnb3RvICYjNDM7MjsmIzM0OwogCQkmIzM0O3IwID0gcjI7JiMzNDsKJiM0MzsjaWZkZWYgX19jbGFuZ19fCiAJCSYjMzQ7Z290b2wgJiM0MzsxOyYjMzQ7CiYjNDM7I2Vsc2UKJiM0MzsJCS8qCiYjNDM7CQkgKiBnYXMgbWlzLXBhcnNlcyAmIzM5O2dvdG9sICYjNDM7MSYjMzk7IGFzICYjMzk7Z290byBsJiM0MzsxJiMzOTssIHNhbWUgZW5jb2RpbmcKJiM0MzsJCSAqIHdpdGhvdXQgdGhlIHNpZ24gKGJpbnV0aWxzIFBSIGdhcy8zNDU1OCkuCiYjNDM7CQkgKi8KJiM0MzsJCSYjMzQ7Z290b2wgMTsmIzM0OwomIzQzOyNlbmRpZgogCQkmIzM0O3IwID0gcjM7JiMzNDsKIAkJJiMzNDtleGl0OyYjMzQ7CiAJCToKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdGFja19hcmdfZmFpbC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmMKaW5kZXggYWQ5ZDRiZmUxNWRjYy4uZWVkOTdkNTgyNTE1NyAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmMKQEAgLTEwMyw4ICYjNDM7MTAzLDkgQEAgX19uYWtlZCB2b2lkIHIxMV9zdG9yZV96ZXJvX29mZih2b2lkKQogCiBTRUMoJiMzNDt0YyYjMzQ7KQogX19kZXNjcmlwdGlvbigmIzM0O3N0YWNrX2FyZ19mYWlsOiBub3Qgc3VwcG9ydGVkLCBkdW1teSB0ZXN0JiMzNDspCiYjNDM7X19za2lwKCYjMzQ7c3RhY2tfYXJnX2ZhaWw6IG5vdCBzdXBwb3J0ZWQmIzM0OykKIF9fc3VjY2VzcwotaW50IHRlc3Rfc3RhY2tfYXJnX2JpZyhzdHJ1Y3QgX19za19idWZmICpza2IpCiYjNDM7aW50IGR1bW15X3Rlc3Qoc3RydWN0IF9fc2tfYnVmZiAqc2tiKQogewogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19wcmVjaXNpb24uYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdGFja19hcmdfcHJlY2lzaW9uLmMKaW5kZXggYmVlMmVlZWMwMjFkNy4uY2UwMzAxYTQxZmE5NCAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19wcmVjaXNpb24uYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RhY2tfYXJnX3ByZWNpc2lvbi5jCkBAIC0xMjQsNiAmIzQzOzEyNCw3IEBAIF9fbmFrZWQgdm9pZCBzdGFja19hcmdfcHJlY2lzaW9uX2JwZjJicGYodm9pZCkKIAogU0VDKCYjMzQ7c29ja2V0JiMzNDspCiBfX2Rlc2NyaXB0aW9uKCYjMzQ7c3RhY2tfYXJnX3ByZWNpc2lvbjogbm90IHN1cHBvcnRlZCwgZHVtbXkgdGVzdCYjMzQ7KQomIzQzO19fc2tpcCgmIzM0O3N0YWNrX2FyZ19wcmVjaXNpb246IG5vdCBzdXBwb3J0ZWQmIzM0OykKIF9fc3VjY2VzcwogaW50IGR1bW15X3Rlc3Qodm9pZCkKIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9hZ2dyZWdhdGVfcmV0LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYWdncmVnYXRlX3JldC5jCmluZGV4IDc4NTFiYWRlMmI0MDYuLmY1YzExNjYwMjdhMWQgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9hZ2dyZWdhdGVfcmV0LmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2FnZ3JlZ2F0ZV9yZXQuYwpAQCAtMTY3LDYgJiM0MzsxNjcsNyBAQCBpbnQgYWdncmVnYXRlX3JldF9rZnVuY19zdHJ1Y3RfY190ZXN0KHN0cnVjdCBfX3NrX2J1ZmYgKnNrYikKIAogU0VDKCYjMzQ7c29ja2V0JiMzNDspCiBfX2Rlc2NyaXB0aW9uKCYjMzQ7dmVyaWZpZXJfYWdncmVnYXRlX3JldDogbmVlZHMgTExWTSAyMywgZHVtbXkgdGVzdCYjMzQ7KQomIzQzO19fc2tpcCgmIzM0O25lZWRzIExMVk0gMjMmIzM0OykKIF9fc3VjY2VzcwogaW50IGR1bW15X3Rlc3Qodm9pZCkKIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9ic3dhcC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jzd2FwLmMKaW5kZXggY2ZmYWYzNjE5MmJjNS4uNDhmZmI1YjI0MmQyNCAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jzd2FwLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jzd2FwLmMKQEAgLTgsNyAmIzQzOzgsNyBAQAogCShkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfcmlzY3YpICZhbXA7JmFtcDsgX19yaXNjdl94bGVuID09IDY0KSB8fCBcCiAJZGVmaW5lZChfX1RBUkdFVF9BUkNIX2FybSkgfHwgZGVmaW5lZChfX1RBUkdFVF9BUkNIX3MzOTApIHx8IFwKIAlkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfbG9vbmdhcmNoKSkgJmFtcDsmYW1wOyBcCi0JX19jbGFuZ19tYWpvcl9fICZndDs9IDE4CiYjNDM7CShfX2NsYW5nX21ham9yX18gJmd0Oz0gMTggfHwgZGVmaW5lZChfX0JQRl9GRUFUVVJFX0JTV0FQKSkKIAogU0VDKCYjMzQ7c29ja2V0JiMzNDspCiBfX2Rlc2NyaXB0aW9uKCYjMzQ7QlNXQVAsIDE2JiMzNDspCkBAIC0xMTcsNiAmIzQzOzExNyw3IEBAIGwwXyU9OgkJCQkJCQlcCiAKIFNFQygmIzM0O3NvY2tldCYjMzQ7KQogX19kZXNjcmlwdGlvbigmIzM0O2NwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0JiMzNDspCiYjNDM7X19za2lwKCYjMzQ7Y3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQmIzM0OykKIF9fc3VjY2VzcwogaW50IGR1bW15X3Rlc3Qodm9pZCkKIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9nb3RvbC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2dvdG9sLmMKaW5kZXggZDVkOGYyNGRmMzk0OS4uYzBmZDMwYTNhNGMxMyAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2dvdG9sLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2dvdG9sLmMKQEAgLTUyLDYgJiM0Mzs1Miw3IEBAIF9fbmFrZWQgdm9pZCBnb3RvbF9sYXJnZV9pbW0odm9pZCkKIAogU0VDKCYjMzQ7c29ja2V0JiMzNDspCiBfX2Rlc2NyaXB0aW9uKCYjMzQ7Y3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQsIHVzZSBhIGR1bW15IHRlc3QmIzM0OykKJiM0MztfX3NraXAoJiMzNDtjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCYjMzQ7KQogX19zdWNjZXNzCiBpbnQgZHVtbXlfdGVzdCh2b2lkKQogewpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xkc3guYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sZHN4LmMKaW5kZXggNDEzNDA4NzdkYzlkOS4uNzU3NjJlMTFiNDQzZiAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xkc3guYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbGRzeC5jCkBAIC05LDEzICYjNDM7OSw3IEBACiAJKGRlZmluZWQoX19UQVJHRVRfQVJDSF9yaXNjdikgJmFtcDsmYW1wOyBfX3Jpc2N2X3hsZW4gPT0gNjQpIHx8IFwKIAlkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfYXJtKSB8fCBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfczM5MCkgfHwgXAogCWRlZmluZWQoX19UQVJHRVRfQVJDSF9sb29uZ2FyY2gpKSAmYW1wOyZhbXA7IFwKLQlfX2NsYW5nX21ham9yX18gJmd0Oz0gMTgKLQotc3RydWN0IHsKLQlfX3VpbnQodHlwZSwgQlBGX01BUF9UWVBFX0FSRU5BKTsKLQlfX3VpbnQobWFwX2ZsYWdzLCBCUEZfRl9NTUFQQUJMRSk7Ci0JX191aW50KG1heF9lbnRyaWVzLCAxKTsKLX0gYXJlbmEgU0VDKCYjMzQ7Lm1hcHMmIzM0Oyk7CiYjNDM7CShfX2NsYW5nX21ham9yX18gJmd0Oz0gMTggfHwgZGVmaW5lZChfX0JQRl9GRUFUVVJFX0xEU1gpKQogCiBTRUMoJiMzNDtzb2NrZXQmIzM0OykKIF9fZGVzY3JpcHRpb24oJiMzNDtMRFNYLCBTOCYjMzQ7KQpAQCAtMjYzLDYgJiM0MzsyNTcsMTQgQEAgX19uYWtlZCB2b2lkIGxkc3hfY3R4Xzgodm9pZCkKIAk6IF9fY2xvYmJlcl9hbGwpOwogfQogCiYjNDM7I2lmZGVmIF9fQlBGX0ZFQVRVUkVfQUREUl9TUEFDRV9DQVNUCiYjNDM7CiYjNDM7c3RydWN0IHsKJiM0MzsJX191aW50KHR5cGUsIEJQRl9NQVBfVFlQRV9BUkVOQSk7CiYjNDM7CV9fdWludChtYXBfZmxhZ3MsIEJQRl9GX01NQVBBQkxFKTsKJiM0MzsJX191aW50KG1heF9lbnRyaWVzLCAxKTsKJiM0Mzt9IGFyZW5hIFNFQygmIzM0Oy5tYXBzJiMzNDspOwomIzQzOwogU0VDKCYjMzQ7c3lzY2FsbCYjMzQ7KQogX19kZXNjcmlwdGlvbigmIzM0O0FyZW5hIExEU1ggRGlzYXNtJiMzNDspCiBfX3N1Y2Nlc3MKQEAgLTQzMiwxMCAmIzQzOzQzNCwxMyBAQCB2b2lkIGtmdW5jX3Jvb3Qodm9pZCkKIAlicGZfYXJlbmFfYWxsb2NfcGFnZXMoMCwgMCwgMCwgMCwgMCk7CiB9CiAKJiM0MzsjZW5kaWYgLyogX19CUEZfRkVBVFVSRV9BRERSX1NQQUNFX0NBU1QgKi8KJiM0MzsKICNlbHNlCiAKIFNFQygmIzM0O3NvY2tldCYjMzQ7KQogX19kZXNjcmlwdGlvbigmIzM0O2NwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0JiMzNDspCiYjNDM7X19za2lwKCYjMzQ7Y3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQmIzM0OykKIF9fc3VjY2VzcwogaW50IGR1bW15X3Rlc3Qodm9pZCkKIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sb2FkX2FjcXVpcmUuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sb2FkX2FjcXVpcmUuYwppbmRleCBkMTcwMjZkNzQ4MGQ4Li5iY2MzNGU3OThjNjM0IDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbG9hZF9hY3F1aXJlLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xvYWRfYWNxdWlyZS5jCkBAIC0yNjcsNiAmIzQzOzI2Nyw3IEBAIF9fbmFrZWQgdm9pZCBsb2FkX2FjcXVpcmVfd2l0aF9pbnZhbGlkX3JlZyh2b2lkKQogCiBTRUMoJiMzNDtzb2NrZXQmIzM0OykKIF9fZGVzY3JpcHRpb24oJiMzNDtDbGFuZyB2ZXJzaW9uICZsdDsgMTgsIEVOQUJMRV9BVE9NSUNTX1RFU1RTIG5vdCBkZWZpbmVkLCBhbmQvb3IgSklUIGRvZXNuJiMzOTt0IHN1cHBvcnQgbG9hZC1hY3F1aXJlLCB1c2UgYSBkdW1teSB0ZXN0JiMzNDspCiYjNDM7X19za2lwKCYjMzQ7Q2xhbmcgdmVyc2lvbiAmbHQ7IDE4LCBFTkFCTEVfQVRPTUlDU19URVNUUyBub3QgZGVmaW5lZCwgYW5kL29yIEpJVCBkb2VzbiYjMzk7dCBzdXBwb3J0IGxvYWQtYWNxdWlyZSYjMzQ7KQogX19zdWNjZXNzCiBpbnQgZHVtbXlfdGVzdCh2b2lkKQogewpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX21vdnN4LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbW92c3guYwppbmRleCBhNGQ4ODE0ZWI1ZWRjLi4xOTViMjdhNTEyMjRmIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbW92c3guYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbW92c3guYwpAQCAtOCw3ICYjNDM7OCw3IEBACiAJKGRlZmluZWQoX19UQVJHRVRfQVJDSF9yaXNjdikgJmFtcDsmYW1wOyBfX3Jpc2N2X3hsZW4gPT0gNjQpIHx8IFwKIAlkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfYXJtKSB8fCBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfczM5MCkgfHwgXAogCWRlZmluZWQoX19UQVJHRVRfQVJDSF9sb29uZ2FyY2gpKSAmYW1wOyZhbXA7IFwKLQlfX2NsYW5nX21ham9yX18gJmd0Oz0gMTgKJiM0MzsJKF9fY2xhbmdfbWFqb3JfXyAmZ3Q7PSAxOCB8fCBkZWZpbmVkKF9fQlBGX0ZFQVRVUkVfTU9WU1gpKQogCiBTRUMoJiMzNDtzb2NrZXQmIzM0OykKIF9fZGVzY3JpcHRpb24oJiMzNDtNT1YzMlNYLCBTOCYjMzQ7KQpAQCAtMzQzLDYgJiM0MzszNDMsNyBAQCBsYWJlbF8lPTogCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAKIFNFQygmIzM0O3NvY2tldCYjMzQ7KQogX19kZXNjcmlwdGlvbigmIzM0O2NwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0JiMzNDspCiYjNDM7X19za2lwKCYjMzQ7Y3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQmIzM0OykKIF9fc3VjY2VzcwogaW50IGR1bW15X3Rlc3Qodm9pZCkKIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wZXJjcHVfYWRkci5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3BlcmNwdV9hZGRyLmMKaW5kZXggOTY3ZjRlNmUzYTQ5MC4uZmQ0MThmMjc5OTZmNSAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3BlcmNwdV9hZGRyLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3BlcmNwdV9hZGRyLmMKQEAgLTYxLDYgJiM0Mzs2MSw3IEBAIF9fbmFrZWQgdm9pZCBwZXJjcHVfYWRkcih2b2lkKQogCiBTRUMoJiMzNDtyYXdfdHAmIzM0OykKIF9fZGVzY3JpcHRpb24oJiMzNDtwZXJjcHUgYWRkciBkdW1teSYjMzQ7KQomIzQzO19fc2tpcCgmIzM0O3BlcmNwdSBhZGRyIHRlc3RzIG5lZWQgeDg2JiMzNDspCiBfX3N1Y2Nlc3MKIGludCBkdW1teV90ZXN0KHZvaWQpCiB7CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcHJpdmF0ZV9zdGFjay5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3ByaXZhdGVfc3RhY2suYwppbmRleCBlYTBhN2U3MzMzMWRhLi4zZDk5OTRhNTI0NjRlIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcHJpdmF0ZV9zdGFjay5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wcml2YXRlX3N0YWNrLmMKQEAgLTM3Nyw2ICYjNDM7Mzc3LDcgQEAgaW50IHByaXZhdGVfc3RhY2tfbWF4X2RlcHRoKHZvaWQpCiAKIFNFQygmIzM0O2twcm9iZSYjMzQ7KQogX19kZXNjcmlwdGlvbigmIzM0O3ByaXZhdGUgc3RhY2sgaXMgbm90IHN1cHBvcnRlZCwgdXNlIGEgZHVtbXkgdGVzdCYjMzQ7KQomIzQzO19fc2tpcCgmIzM0O3ByaXZhdGUgc3RhY2sgaXMgbm90IHN1cHBvcnRlZCYjMzQ7KQogX19zdWNjZXNzCiBpbnQgZHVtbXlfdGVzdCh2b2lkKQogewpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3NkaXYuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zZGl2LmMKaW5kZXggOTVmMzIzOWNlMjI4Yi4uZDZjYmUxZTI3ZmQ2YiAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3NkaXYuYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2Rpdi5jCkBAIC05LDcgJiM0Mzs5LDcgQEAKIAkoZGVmaW5lZChfX1RBUkdFVF9BUkNIX3Jpc2N2KSAmYW1wOyZhbXA7IF9fcmlzY3ZfeGxlbiA9PSA2NCkgfHwgXAogCWRlZmluZWQoX19UQVJHRVRfQVJDSF9hcm0pIHx8IGRlZmluZWQoX19UQVJHRVRfQVJDSF9zMzkwKSB8fCBcCiAJZGVmaW5lZChfX1RBUkdFVF9BUkNIX2xvb25nYXJjaCkpICZhbXA7JmFtcDsgXAotCV9fY2xhbmdfbWFqb3JfXyAmZ3Q7PSAxOAomIzQzOwkoX19jbGFuZ19tYWpvcl9fICZndDs9IDE4IHx8IGRlZmluZWQoX19CUEZfRkVBVFVSRV9TRElWX1NNT0QpKQogCiBTRUMoJiMzNDtzb2NrZXQmIzM0OykKIF9fZGVzY3JpcHRpb24oJiMzNDtTRElWMzIsIG5vbi16ZXJvIGltbSBkaXZpc29yLCBjaGVjayAxJiMzNDspCkBAIC0xMjcxLDYgJiM0MzsxMjcxLDcgQEAgX19uYWtlZCB2b2lkIHNtb2QzMl9pbnRfbWluX21vZF9uZWcyX2ltbSh2b2lkKQogCiBTRUMoJiMzNDtzb2NrZXQmIzM0OykKIF9fZGVzY3JpcHRpb24oJiMzNDtjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCwgdXNlIGEgZHVtbXkgdGVzdCYjMzQ7KQomIzQzO19fc2tpcCgmIzM0O2NwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0JiMzNDspCiBfX3N1Y2Nlc3MKIGludCBkdW1teV90ZXN0KHZvaWQpCiB7CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnLmMKaW5kZXggN2UwY2U1ZGIyOGEwZC4uNTFkMjJmYWY0NTU5ZiAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZy5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmcuYwpAQCAtNDM2LDYgJiM0Mzs0MzYsNyBAQCBfX25ha2VkIHZvaWQgc3RhY2tfYXJnX3NlcXVlbnRpYWxfY2FsbHModm9pZCkKIAogU0VDKCYjMzQ7c29ja2V0JiMzNDspCiBfX2Rlc2NyaXB0aW9uKCYjMzQ7c3RhY2tfYXJnIGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0JiMzNDspCiYjNDM7X19za2lwKCYjMzQ7c3RhY2tfYXJnIGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0JiMzNDspCiBfX3N1Y2Nlc3MKIGludCBkdW1teV90ZXN0KHZvaWQpCiB7CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnX29yZGVyLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnX29yZGVyLmMKaW5kZXggYzlmZTQ4NTdkYTNmNS4uOGU0MzI1MjczYjNkOCAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZ19vcmRlci5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmdfb3JkZXIuYwpAQCAtMTc0LDYgJiM0MzsxNzQsNyBAQCBfX25ha2VkIHZvaWQgc3RhY2tfYXJnX3JlYWRfd2l0aG91dF93cml0ZV8yKHZvaWQpCiAKIFNFQygmIzM0O3NvY2tldCYjMzQ7KQogX19kZXNjcmlwdGlvbigmIzM0O3N0YWNrX2FyZyBvcmRlciBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCwgdXNlIGEgZHVtbXkgdGVzdCYjMzQ7KQomIzQzO19fc2tpcCgmIzM0O3N0YWNrX2FyZyBvcmRlciBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCYjMzQ7KQogX19zdWNjZXNzCiBpbnQgZHVtbXlfdGVzdCh2b2lkKQogewpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0b3JlX3JlbGVhc2UuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdG9yZV9yZWxlYXNlLmMKaW5kZXggNzJmMWViMDA2MDc0OC4uMGFiYmVlNWNlMTA5MiAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0b3JlX3JlbGVhc2UuYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RvcmVfcmVsZWFzZS5jCkBAIC0yOTAsNiAmIzQzOzI5MCw3IEBAIF9fbmFrZWQgdm9pZCBzdG9yZV9yZWxlYXNlX3dpdGhfaW52YWxpZF9yZWcodm9pZCkKIAogU0VDKCYjMzQ7c29ja2V0JiMzNDspCiBfX2Rlc2NyaXB0aW9uKCYjMzQ7Q2xhbmcgdmVyc2lvbiAmbHQ7IDE4LCBFTkFCTEVfQVRPTUlDU19URVNUUyBub3QgZGVmaW5lZCwgYW5kL29yIEpJVCBkb2VzbiYjMzk7dCBzdXBwb3J0IHN0b3JlLXJlbGVhc2UsIHVzZSBhIGR1bW15IHRlc3QmIzM0OykKJiM0MztfX3NraXAoJiMzNDtDbGFuZyB2ZXJzaW9uICZsdDsgMTgsIEVOQUJMRV9BVE9NSUNTX1RFU1RTIG5vdCBkZWZpbmVkLCBhbmQvb3IgSklUIGRvZXNuJiMzOTt0IHN1cHBvcnQgc3RvcmUtcmVsZWFzZSYjMzQ7KQogX19zdWNjZXNzCiBpbnQgZHVtbXlfdGVzdCh2b2lkKQogewpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfbG9hZGVyLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9sb2FkZXIuYwppbmRleCAwNzgwNzc1N2I1MThkLi43OTRhN2RmYjA1Nzk2IDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9sb2FkZXIuYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9sb2FkZXIuYwpAQCAtNzAsNiAmIzQzOzcwLDcgQEAgc3RydWN0IHRlc3Rfc3BlYyB7CiAJaW50IGFyY2hfbWFzazsKIAlpbnQgbG9hZF9tYXNrOwogCWludCBsaW5lYXJfc3o7CiYjNDM7CWNvbnN0IGNoYXIgKnNraXBfcmVhc29uOwogCWJvb2wgYXV4aWxpYXJ5OwogCWJvb2wgdmFsaWQ7CiB9OwpAQCAtNDU2LDYgJiM0Mzs0NTcsOCBAQCBzdGF0aWMgaW50IHBhcnNlX3Rlc3Rfc3BlYyhzdHJ1Y3QgdGVzdF9sb2FkZXIgKnRlc3RlciwKIAkJCWNvbnRpbnVlOwogCQlpZiAoKHZhbCA9IHN0cl9oYXNfcGZ4KHMsICYjMzQ7dGVzdF9kZXNjcmlwdGlvbj0mIzM0OykpKSB7CiAJCQlkZXNjcmlwdGlvbiA9IHZhbDsKJiM0MzsJCX0gZWxzZSBpZiAoKHZhbCA9IHN0cl9oYXNfcGZ4KHMsICYjMzQ7dGVzdF9za2lwPSYjMzQ7KSkpIHsKJiM0MzsJCQlzcGVjLSZndDtza2lwX3JlYXNvbiA9IHZhbDsKIAkJfSBlbHNlIGlmIChzdHJjbXAocywgJiMzNDt0ZXN0X2V4cGVjdF9mYWlsdXJlJiMzNDspID09IDApIHsKIAkJCXNwZWMtJmd0O3ByaXYuZXhwZWN0X2ZhaWx1cmUgPSB0cnVlOwogCQkJc3BlYy0mZ3Q7bW9kZV9tYXNrIHw9IFBSSVY7CkBAIC0xMzI3LDYgJiM0MzsxMzMwLDEyIEBAIHZvaWQgcnVuX3N1YnRlc3Qoc3RydWN0IHRlc3RfbG9hZGVyICp0ZXN0ZXIsCiAJaWYgKCF0ZXN0X19zdGFydF9zdWJ0ZXN0X3dpdGhfZGVzYyhzdWJzcGVjLSZndDtuYW1lLCBzdWJzcGVjLSZndDtkZXNjcmlwdGlvbikpCiAJCXJldHVybjsKIAomIzQzOwlpZiAoc3BlYy0mZ3Q7c2tpcF9yZWFzb24pIHsKJiM0MzsJCXByaW50ZigmIzM0OyVzOlNLSVA6ICVzXG4mIzM0OywgX19mdW5jX18sIHNwZWMtJmd0O3NraXBfcmVhc29uKTsKJiM0MzsJCXRlc3RfX3NraXAoKTsKJiM0MzsJCXJldHVybjsKJiM0MzsJfQomIzQzOwogCWlmICgoZ2V0X2N1cnJlbnRfYXJjaCgpICZhbXA7IHNwZWMtJmd0O2FyY2hfbWFzaykgPT0gMCkgewogCQl0ZXN0X19za2lwKCk7CiAJCXJldHVybjsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMjM6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzM2NgoJCQkJCQkJb3V0cHV0OiA3OAoJCQkJCQkJdGhvdWdodHM6IDc2MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEJQRiBTZWxmdGVzdCBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgdGhlIEJQRiBzZWxmdGVzdHMuIFNlZW1zIGxpa2UgdGhlIHByaW1hcnkgZm9jdXMgaGVyZSBpcyBzdHJlYW1saW5pbmcgdGhlIHRlc3QgZXhlY3V0aW9uIHByb2Nlc3MuIFRoZSBpbnRyb2R1Y3Rpb24gb2YgdGhlIGBfX3NraXBgIHRhZyBpbiBgYnBmX21pc2MuaGAgYW5kIHRoZSBjb3JyZXNwb25kaW5nIHBhcnNpbmcgb2YgYHRlc3Rfc2tpcD1gIGluIGB0ZXN0X2xvYWRlci5jYCBpcyBhIHdlbGNvbWUgYWRkaXRpb247IGl0IGFsbG93cyBmb3IgbXVjaCBtb3JlIGdyYW51bGFyIGNvbnRyb2wgb3ZlciB0ZXN0IHNraXBwaW5nLCByYXRoZXIgdGhhbiBoYXZpbmcgdG8gcnVuIGR1bW15IHRlc3RzLiBJIGFwcHJlY2lhdGUgdGhlIGZvcndhcmQgdGhpbmtpbmcgaGVyZSwgdG9vLCBieSBhY2NvdW50aW5nIGZvciB2YXJpb3VzIGZlYXR1cmUgZmxhZ3MgbGlrZSBgX19CUEZfRkVBVFVSRV9HT1RPTGAsIGBfX0JQRl9GRUFUVVJFX1NUYCwgYW5kIHRoZSByZXN0LCBhbG9uZyB3aXRoIHRoZSBjbGFuZyB2ZXJzaW9uIGNoZWNrLiBUaGUgYGNvbXB1dGVfbGl2ZV9yZWdpc3RlcnMuY2AgZml4IGZvciB0aGUgYGdvdG9sICYjNDM7MWAgcGFyc2luZyBpc3N1ZSBpcyBhIGdvb2QgY2F0Y2ggYXMgd2VsbC4KCk5vdywgdGhlIGltcG9ydGFudCBxdWVzdGlvbi4uLmlzIHRoaXMgKmp1c3QqIGEgdG9vbGluZyBjaGFuZ2UsIG9yIGlzIGl0IGdvaW5nIHRvIGhhdmUga25vY2stb24gZWZmZWN0cyBmb3IgdGhlIGtlcm5lbCBpdHNlbGY/IExldCYjMzk7cyB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgdGhlIGRpZmYuIE9rYXksIHJ1bm5pbmcgdGhyb3VnaCB0aGUgY2hhbmdlZCBmaWxlcywgSSBjYW4gc2VlIHRoaXMgaXMgc3RyaWN0bHkgYSBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2AgbW9kaWZpY2F0aW9uLiBUaGUgcGF0Y2ggYWx0ZXJzIHRlc3QgcHJvZ3JhbXMgYW5kIHRoZSB0ZXN0IGxvYWRlciBidXQgZG9lc24mIzM5O3QgdG91Y2ggdGhlIGtlcm5lbCBzb3VyY2UgY29kZSBvciBhcmNoaXRlY3R1cmUuIEdpdmVuIHRoZSBmYWN0IHRoYXQgb25seSB0ZXN0IGNvZGUgYW5kIHRlc3QgZnJhbWV3b3JrIGNvZGUgaGFzIGJlZW4gbW9kaWZpZWQsIEkgY2FuIGRlZmluaXRpdmVseSBzYXkgdGhhdCB0aGVzZSBjaGFuZ2VzIHdvbiYjMzk7dCBpbnRyb2R1Y2UgbmV3IGF0dGFjayBzdXJmYWNlcy4gVGhlcmUmIzM5O3Mgbm8gY2hhbmdlIHRvIHRoZSBiZWhhdmlvciBvZiB0aGUgQlBGIHZlcmlmaWVyIG9yIHRoZSBCUEYgSklULCBzbyBubyBrZXJuZWwgZnV6emluZyBpcyBuZWNlc3NhcnkuIFRoZXJlZm9yZSwgSSB3aWxsIHJlc3BvbmQgd2l0aCBgV29ydGhGdXp6aW5nPWZhbHNlYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAyMzozNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgQlBGIHNlbGZ0ZXN0cyBpbiB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvIHRvIGFkZCBhIF9fc2tpcCB0YWcgYW5kIGZpeCBzb21lIHRlc3QgY29tcGlsYXRpb24gaXNzdWVzLiBJdCBkb2VzIG5vdCBtYWtlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBjb2RlIGl0c2VsZi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgQlBGIHNlbGZ0ZXN0cyBpbiB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvIHRvIGFkZCBhIF9fc2tpcCB0YWcgYW5kIGZpeCBzb21lIHRlc3QgY29tcGlsYXRpb24gaXNzdWVzLiBJdCBkb2VzIG5vdCBtYWtlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBjb2RlIGl0c2VsZi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMjM6Mzc8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDIzOjM3OjA4LjgyMTI4NTAyN1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExMzY4MjY0MTAyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBCUEYgc2VsZnRlc3RzIGluIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi8gdG8gYWRkIGEgX19za2lwIHRhZyBhbmQgZml4IHNvbWUgdGVzdCBjb21waWxhdGlvbiBpc3N1ZXMuIEl0IGRvZXMgbm90IG1ha2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIGNvZGUgaXRzZWxmLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMjM6Mzc6MDguODIxMzAzNjQ3WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzIyOTIwNjAzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgOGQzNWY0YjVhYWE4MDM1YWQyODhiNzE4OTdiNTZkN2ZhODA3MmExOVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEF1ZyAyNCAyMzozNzowNiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYXJlbmFfa2Z1bmMuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9hcmVuYV9rZnVuYy5jXFxuaW5kZXggYmYwZDMwNGUwZTU5Yy4uNTA2MDlmM2IwNTY0YSAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYXJlbmFfa2Z1bmMuY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9hcmVuYV9rZnVuYy5jXFxuQEAgLTIzMyw4ICsyMzMsOSBAQCBTRUMoXFxcInN5c2NhbGxcXFwiKVxcbiBfX2FyY2hfeDg2XzY0XFxuIF9fYXJjaF9hcm02NFxcbiBfX2Rlc2NyaXB0aW9uKFxcXCJhcmVuYV9hcmdfc3RhY2s6IG5vdCBzdXBwb3J0ZWQsIGR1bW15IHRlc3RcXFwiKVxcbitfX3NraXAoXFxcImFyZW5hX2FyZ19zdGFjazogbm90IHN1cHBvcnRlZFxcXCIpXFxuIF9fc3VjY2Vzc1xcbi1pbnQgYXJlbmFfYXJnX3N0YWNrKHZvaWQgKmN0eClcXG4raW50IGR1bW15X3Rlc3Qodm9pZCAqY3R4KVxcbiB7XFxuIFxcdHJldHVybiAwO1xcbiB9XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfbWlzYy5oIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9taXNjLmhcXG5pbmRleCA1ZWFjZjFiNDMyNTIxLi5lYjg4ZDljZTZjMzQ4IDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfbWlzYy5oXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9taXNjLmhcXG5AQCAtMTA2LDYgKzEwNiwxMSBAQFxcbiAgKiBfX2Rlc2NyaXB0aW9uICAgICBUZXh0IHRvIGJlIHVzZWQgZm9yIGRpc3BsYXkgYW5kIGFzIGFuIGFkZGl0aW9uYWwgZmlsdGVyXFxuICAqICAgICAgICAgICAgICAgICAgIGFsaWFzLCB3aGlsZSB0aGUgb3JpZ2luYWwgcHJvZ3JhbSBuYW1lIHN0YXlzIG1hdGNoYWJsZS5cXG4gICpcXG4rICogX19za2lwICAgICAgICAgICAgUmVwb3J0IHRoZSB0ZXN0IGFzIFNLSVAgd2l0aCB0aGUgZ2l2ZW4gcmVhc29uIGluc3RlYWQgb2ZcXG4rICogICAgICAgICAgICAgICAgICAgcnVubmluZyBpdC4gRm9yIHBsYWNlaG9sZGVyIHByb2dyYW1zIHRoYXQgc3RhbmQgaW4gZm9yIGFcXG4rICogICAgICAgICAgICAgICAgICAgZmVhdHVyZSB0aGUgdG9vbGNoYWluIG9yIEpJVCBjYW5ub3QgcHJvdmlkZSwgc28gYSBydW4gZG9lc1xcbisgKiAgICAgICAgICAgICAgICAgICBub3QgcmVwb3J0IE9LIGZvciBjb3ZlcmFnZSBpdCBuZXZlciBleGVjdXRlZC5cXG4rICpcXG4gICogX19sb2dfbGV2ZWwgICAgICAgTG9nIGxldmVsIHRvIHVzZSBmb3IgdGhlIHByb2dyYW0sIG51bWVyaWMgdmFsdWUgZXhwZWN0ZWQuXFxuICAqXFxuICAqIF9fZmxhZyAgICAgICAgICAgIEFkZHMgb25lIGZsYWcgdXNlIGZvciB0aGUgcHJvZ3JhbSwgdGhlIGZvbGxvd2luZyB2YWx1ZXMgYXJlIHZhbGlkOlxcbkBAIC0xMzksNiArMTQ0LDcgQEBcXG4gI2RlZmluZSBfX2ZhaWx1cmVcXHRcXHRfX3Rlc3RfdGFnKFxcXCJ0ZXN0X2V4cGVjdF9mYWlsdXJlXFxcIilcXG4gI2RlZmluZSBfX3N1Y2Nlc3NcXHRcXHRfX3Rlc3RfdGFnKFxcXCJ0ZXN0X2V4cGVjdF9zdWNjZXNzXFxcIilcXG4gI2RlZmluZSBfX2Rlc2NyaXB0aW9uKGRlc2MpXFx0X190ZXN0X3RhZyhcXFwidGVzdF9kZXNjcmlwdGlvbj1cXFwiIGRlc2MpXFxuKyNkZWZpbmUgX19za2lwKHJlYXNvbilcXHRcXHRfX3Rlc3RfdGFnKFxcXCJ0ZXN0X3NraXA9XFxcIiByZWFzb24pXFxuICNkZWZpbmUgX19tc2dfdW5wcml2KG1zZylcXHRfX3Rlc3RfdGFnKFxcXCJ0ZXN0X2V4cGVjdF9tc2dfdW5wcml2PVxcXCIgbXNnKVxcbiAjZGVmaW5lIF9fbm90X21zZ191bnByaXYobXNnKVxcdF9fdGVzdF90YWcoXFxcInRlc3RfZXhwZWN0X25vdF9tc2dfdW5wcml2PVxcXCIgbXNnKVxcbiAjZGVmaW5lIF9feGxhdGVkX3VucHJpdihtc2cpXFx0X190ZXN0X3RhZyhcXFwidGVzdF9leHBlY3RfeGxhdGVkX3VucHJpdj1cXFwiIG1zZylcXG5AQCAtMjU1LDExICsyNjEsMTEgQEBcXG4gICAgICAoZGVmaW5lZChfX1RBUkdFVF9BUkNIX3Jpc2N2KSBcXHUwMDI2XFx1MDAyNiBfX3Jpc2N2X3hsZW4gPT0gNjQpIHx8XFx0XFx0XFxcXFxcbiAgICAgIGRlZmluZWQoX19UQVJHRVRfQVJDSF9hcm0pIHx8IGRlZmluZWQoX19UQVJHRVRfQVJDSF9zMzkwKSB8fFxcdFxcXFxcXG4gICAgICBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfbG9vbmdhcmNoKSkgXFx1MDAyNlxcdTAwMjZcXHRcXHRcXHRcXHRcXFxcXFxuLVxcdF9fY2xhbmdfbWFqb3JfXyBcXHUwMDNlPSAxOFxcbitcXHQoX19jbGFuZ19tYWpvcl9fIFxcdTAwM2U9IDE4IHx8IGRlZmluZWQoX19CUEZfRkVBVFVSRV9HT1RPTCkpXFxuICNkZWZpbmUgQ0FOX1VTRV9HT1RPTFxcbiAjZW5kaWZcXG4gXFxuLSNpZiBfX2NsYW5nX21ham9yX18gXFx1MDAzZT0gMThcXG4rI2lmIF9fY2xhbmdfbWFqb3JfXyBcXHUwMDNlPSAxOCB8fCBkZWZpbmVkKF9fQlBGX0ZFQVRVUkVfU1QpXFxuICNkZWZpbmUgQ0FOX1VTRV9CUEZfU1RcXG4gI2VuZGlmXFxuIFxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvY29tcHV0ZV9saXZlX3JlZ2lzdGVycy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2NvbXB1dGVfbGl2ZV9yZWdpc3RlcnMuY1xcbmluZGV4IDMzOGU2N2NkODg1NmEuLjk0MWI2NWZlN2MwNzEgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2NvbXB1dGVfbGl2ZV9yZWdpc3RlcnMuY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9jb21wdXRlX2xpdmVfcmVnaXN0ZXJzLmNcXG5AQCAtMjk5LDcgKzI5OSwxNSBAQCBfX25ha2VkIHZvaWQgZ290b2wodm9pZClcXG4gXFx0XFx0XFxcInIzID0gMjQ7XFxcIlxcbiBcXHRcXHRcXFwiaWYgcjEgXFx1MDAzZSAweDcgZ290byArMjtcXFwiXFxuIFxcdFxcdFxcXCJyMCA9IHIyO1xcXCJcXG4rI2lmZGVmIF9fY2xhbmdfX1xcbiBcXHRcXHRcXFwiZ290b2wgKzE7XFxcIlxcbisjZWxzZVxcbitcXHRcXHQvKlxcbitcXHRcXHQgKiBnYXMgbWlzLXBhcnNlcyAnZ290b2wgKzEnIGFzICdnb3RvIGwrMScsIHNhbWUgZW5jb2RpbmdcXG4rXFx0XFx0ICogd2l0aG91dCB0aGUgc2lnbiAoYmludXRpbHMgUFIgZ2FzLzM0NTU4KS5cXG4rXFx0XFx0ICovXFxuK1xcdFxcdFxcXCJnb3RvbCAxO1xcXCJcXG4rI2VuZGlmXFxuIFxcdFxcdFxcXCJyMCA9IHIzO1xcXCJcXG4gXFx0XFx0XFxcImV4aXQ7XFxcIlxcbiBcXHRcXHQ6XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdGFja19hcmdfZmFpbC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmNcXG5pbmRleCBhZDlkNGJmZTE1ZGNjLi5lZWQ5N2Q1ODI1MTU3IDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdGFja19hcmdfZmFpbC5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmNcXG5AQCAtMTAzLDggKzEwMyw5IEBAIF9fbmFrZWQgdm9pZCByMTFfc3RvcmVfemVyb19vZmYodm9pZClcXG4gXFxuIFNFQyhcXFwidGNcXFwiKVxcbiBfX2Rlc2NyaXB0aW9uKFxcXCJzdGFja19hcmdfZmFpbDogbm90IHN1cHBvcnRlZCwgZHVtbXkgdGVzdFxcXCIpXFxuK19fc2tpcChcXFwic3RhY2tfYXJnX2ZhaWw6IG5vdCBzdXBwb3J0ZWRcXFwiKVxcbiBfX3N1Y2Nlc3NcXG4taW50IHRlc3Rfc3RhY2tfYXJnX2JpZyhzdHJ1Y3QgX19za19idWZmICpza2IpXFxuK2ludCBkdW1teV90ZXN0KHN0cnVjdCBfX3NrX2J1ZmYgKnNrYilcXG4ge1xcbiBcXHRyZXR1cm4gMDtcXG4gfVxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RhY2tfYXJnX3ByZWNpc2lvbi5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19wcmVjaXNpb24uY1xcbmluZGV4IGJlZTJlZWVjMDIxZDcuLmNlMDMwMWE0MWZhOTQgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19wcmVjaXNpb24uY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdGFja19hcmdfcHJlY2lzaW9uLmNcXG5AQCAtMTI0LDYgKzEyNCw3IEBAIF9fbmFrZWQgdm9pZCBzdGFja19hcmdfcHJlY2lzaW9uX2JwZjJicGYodm9pZClcXG4gXFxuIFNFQyhcXFwic29ja2V0XFxcIilcXG4gX19kZXNjcmlwdGlvbihcXFwic3RhY2tfYXJnX3ByZWNpc2lvbjogbm90IHN1cHBvcnRlZCwgZHVtbXkgdGVzdFxcXCIpXFxuK19fc2tpcChcXFwic3RhY2tfYXJnX3ByZWNpc2lvbjogbm90IHN1cHBvcnRlZFxcXCIpXFxuIF9fc3VjY2Vzc1xcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxcbiB7XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9hZ2dyZWdhdGVfcmV0LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYWdncmVnYXRlX3JldC5jXFxuaW5kZXggNzg1MWJhZGUyYjQwNi4uZjVjMTE2NjAyN2ExZCAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYWdncmVnYXRlX3JldC5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2FnZ3JlZ2F0ZV9yZXQuY1xcbkBAIC0xNjcsNiArMTY3LDcgQEAgaW50IGFnZ3JlZ2F0ZV9yZXRfa2Z1bmNfc3RydWN0X2NfdGVzdChzdHJ1Y3QgX19za19idWZmICpza2IpXFxuIFxcbiBTRUMoXFxcInNvY2tldFxcXCIpXFxuIF9fZGVzY3JpcHRpb24oXFxcInZlcmlmaWVyX2FnZ3JlZ2F0ZV9yZXQ6IG5lZWRzIExMVk0gMjMsIGR1bW15IHRlc3RcXFwiKVxcbitfX3NraXAoXFxcIm5lZWRzIExMVk0gMjNcXFwiKVxcbiBfX3N1Y2Nlc3NcXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcXG4ge1xcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYnN3YXAuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9ic3dhcC5jXFxuaW5kZXggY2ZmYWYzNjE5MmJjNS4uNDhmZmI1YjI0MmQyNCAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYnN3YXAuY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9ic3dhcC5jXFxuQEAgLTgsNyArOCw3IEBAXFxuIFxcdChkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfcmlzY3YpIFxcdTAwMjZcXHUwMDI2IF9fcmlzY3ZfeGxlbiA9PSA2NCkgfHwgXFxcXFxcbiBcXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfYXJtKSB8fCBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfczM5MCkgfHwgXFxcXFxcbiBcXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfbG9vbmdhcmNoKSkgXFx1MDAyNlxcdTAwMjYgXFxcXFxcbi1cXHRfX2NsYW5nX21ham9yX18gXFx1MDAzZT0gMThcXG4rXFx0KF9fY2xhbmdfbWFqb3JfXyBcXHUwMDNlPSAxOCB8fCBkZWZpbmVkKF9fQlBGX0ZFQVRVUkVfQlNXQVApKVxcbiBcXG4gU0VDKFxcXCJzb2NrZXRcXFwiKVxcbiBfX2Rlc2NyaXB0aW9uKFxcXCJCU1dBUCwgMTZcXFwiKVxcbkBAIC0xMTcsNiArMTE3LDcgQEAgbDBfJT06XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbiBcXG4gU0VDKFxcXCJzb2NrZXRcXFwiKVxcbiBfX2Rlc2NyaXB0aW9uKFxcXCJjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCwgdXNlIGEgZHVtbXkgdGVzdFxcXCIpXFxuK19fc2tpcChcXFwiY3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXRcXFwiKVxcbiBfX3N1Y2Nlc3NcXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcXG4ge1xcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfZ290b2wuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9nb3RvbC5jXFxuaW5kZXggZDVkOGYyNGRmMzk0OS4uYzBmZDMwYTNhNGMxMyAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfZ290b2wuY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9nb3RvbC5jXFxuQEAgLTUyLDYgKzUyLDcgQEAgX19uYWtlZCB2b2lkIGdvdG9sX2xhcmdlX2ltbSh2b2lkKVxcbiBcXG4gU0VDKFxcXCJzb2NrZXRcXFwiKVxcbiBfX2Rlc2NyaXB0aW9uKFxcXCJjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCwgdXNlIGEgZHVtbXkgdGVzdFxcXCIpXFxuK19fc2tpcChcXFwiY3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXRcXFwiKVxcbiBfX3N1Y2Nlc3NcXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcXG4ge1xcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbGRzeC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xkc3guY1xcbmluZGV4IDQxMzQwODc3ZGM5ZDkuLjc1NzYyZTExYjQ0M2YgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xkc3guY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sZHN4LmNcXG5AQCAtOSwxMyArOSw3IEBAXFxuIFxcdChkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfcmlzY3YpIFxcdTAwMjZcXHUwMDI2IF9fcmlzY3ZfeGxlbiA9PSA2NCkgfHwgXFxcXFxcbiBcXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfYXJtKSB8fCBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfczM5MCkgfHwgXFxcXFxcbiBcXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfbG9vbmdhcmNoKSkgXFx1MDAyNlxcdTAwMjYgXFxcXFxcbi1cXHRfX2NsYW5nX21ham9yX18gXFx1MDAzZT0gMThcXG4tXFxuLXN0cnVjdCB7XFxuLVxcdF9fdWludCh0eXBlLCBCUEZfTUFQX1RZUEVfQVJFTkEpO1xcbi1cXHRfX3VpbnQobWFwX2ZsYWdzLCBCUEZfRl9NTUFQQUJMRSk7XFxuLVxcdF9fdWludChtYXhfZW50cmllcywgMSk7XFxuLX0gYXJlbmEgU0VDKFxcXCIubWFwc1xcXCIpO1xcbitcXHQoX19jbGFuZ19tYWpvcl9fIFxcdTAwM2U9IDE4IHx8IGRlZmluZWQoX19CUEZfRkVBVFVSRV9MRFNYKSlcXG4gXFxuIFNFQyhcXFwic29ja2V0XFxcIilcXG4gX19kZXNjcmlwdGlvbihcXFwiTERTWCwgUzhcXFwiKVxcbkBAIC0yNjMsNiArMjU3LDE0IEBAIF9fbmFrZWQgdm9pZCBsZHN4X2N0eF84KHZvaWQpXFxuIFxcdDogX19jbG9iYmVyX2FsbCk7XFxuIH1cXG4gXFxuKyNpZmRlZiBfX0JQRl9GRUFUVVJFX0FERFJfU1BBQ0VfQ0FTVFxcbitcXG4rc3RydWN0IHtcXG4rXFx0X191aW50KHR5cGUsIEJQRl9NQVBfVFlQRV9BUkVOQSk7XFxuK1xcdF9fdWludChtYXBfZmxhZ3MsIEJQRl9GX01NQVBBQkxFKTtcXG4rXFx0X191aW50KG1heF9lbnRyaWVzLCAxKTtcXG4rfSBhcmVuYSBTRUMoXFxcIi5tYXBzXFxcIik7XFxuK1xcbiBTRUMoXFxcInN5c2NhbGxcXFwiKVxcbiBfX2Rlc2NyaXB0aW9uKFxcXCJBcmVuYSBMRFNYIERpc2FzbVxcXCIpXFxuIF9fc3VjY2Vzc1xcbkBAIC00MzIsMTAgKzQzNCwxMyBAQCB2b2lkIGtmdW5jX3Jvb3Qodm9pZClcXG4gXFx0YnBmX2FyZW5hX2FsbG9jX3BhZ2VzKDAsIDAsIDAsIDAsIDApO1xcbiB9XFxuIFxcbisjZW5kaWYgLyogX19CUEZfRkVBVFVSRV9BRERSX1NQQUNFX0NBU1QgKi9cXG4rXFxuICNlbHNlXFxuIFxcbiBTRUMoXFxcInNvY2tldFxcXCIpXFxuIF9fZGVzY3JpcHRpb24oXFxcImNwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0XFxcIilcXG4rX19za2lwKFxcXCJjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdFxcXCIpXFxuIF9fc3VjY2Vzc1xcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxcbiB7XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sb2FkX2FjcXVpcmUuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sb2FkX2FjcXVpcmUuY1xcbmluZGV4IGQxNzAyNmQ3NDgwZDguLmJjYzM0ZTc5OGM2MzQgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xvYWRfYWNxdWlyZS5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xvYWRfYWNxdWlyZS5jXFxuQEAgLTI2Nyw2ICsyNjcsNyBAQCBfX25ha2VkIHZvaWQgbG9hZF9hY3F1aXJlX3dpdGhfaW52YWxpZF9yZWcodm9pZClcXG4gXFxuIFNFQyhcXFwic29ja2V0XFxcIilcXG4gX19kZXNjcmlwdGlvbihcXFwiQ2xhbmcgdmVyc2lvbiBcXHUwMDNjIDE4LCBFTkFCTEVfQVRPTUlDU19URVNUUyBub3QgZGVmaW5lZCwgYW5kL29yIEpJVCBkb2Vzbid0IHN1cHBvcnQgbG9hZC1hY3F1aXJlLCB1c2UgYSBkdW1teSB0ZXN0XFxcIilcXG4rX19za2lwKFxcXCJDbGFuZyB2ZXJzaW9uIFxcdTAwM2MgMTgsIEVOQUJMRV9BVE9NSUNTX1RFU1RTIG5vdCBkZWZpbmVkLCBhbmQvb3IgSklUIGRvZXNuJ3Qgc3VwcG9ydCBsb2FkLWFjcXVpcmVcXFwiKVxcbiBfX3N1Y2Nlc3NcXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcXG4ge1xcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbW92c3guYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9tb3ZzeC5jXFxuaW5kZXggYTRkODgxNGViNWVkYy4uMTk1YjI3YTUxMjI0ZiAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbW92c3guY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9tb3ZzeC5jXFxuQEAgLTgsNyArOCw3IEBAXFxuIFxcdChkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfcmlzY3YpIFxcdTAwMjZcXHUwMDI2IF9fcmlzY3ZfeGxlbiA9PSA2NCkgfHwgXFxcXFxcbiBcXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfYXJtKSB8fCBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfczM5MCkgfHwgXFxcXFxcbiBcXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfbG9vbmdhcmNoKSkgXFx1MDAyNlxcdTAwMjYgXFxcXFxcbi1cXHRfX2NsYW5nX21ham9yX18gXFx1MDAzZT0gMThcXG4rXFx0KF9fY2xhbmdfbWFqb3JfXyBcXHUwMDNlPSAxOCB8fCBkZWZpbmVkKF9fQlBGX0ZFQVRVUkVfTU9WU1gpKVxcbiBcXG4gU0VDKFxcXCJzb2NrZXRcXFwiKVxcbiBfX2Rlc2NyaXB0aW9uKFxcXCJNT1YzMlNYLCBTOFxcXCIpXFxuQEAgLTM0Myw2ICszNDMsNyBAQCBsYWJlbF8lPTogXFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXFxcXG4gXFxuIFNFQyhcXFwic29ja2V0XFxcIilcXG4gX19kZXNjcmlwdGlvbihcXFwiY3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQsIHVzZSBhIGR1bW15IHRlc3RcXFwiKVxcbitfX3NraXAoXFxcImNwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0XFxcIilcXG4gX19zdWNjZXNzXFxuIGludCBkdW1teV90ZXN0KHZvaWQpXFxuIHtcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3BlcmNwdV9hZGRyLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcGVyY3B1X2FkZHIuY1xcbmluZGV4IDk2N2Y0ZTZlM2E0OTAuLmZkNDE4ZjI3OTk2ZjUgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3BlcmNwdV9hZGRyLmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcGVyY3B1X2FkZHIuY1xcbkBAIC02MSw2ICs2MSw3IEBAIF9fbmFrZWQgdm9pZCBwZXJjcHVfYWRkcih2b2lkKVxcbiBcXG4gU0VDKFxcXCJyYXdfdHBcXFwiKVxcbiBfX2Rlc2NyaXB0aW9uKFxcXCJwZXJjcHUgYWRkciBkdW1teVxcXCIpXFxuK19fc2tpcChcXFwicGVyY3B1IGFkZHIgdGVzdHMgbmVlZCB4ODZcXFwiKVxcbiBfX3N1Y2Nlc3NcXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcXG4ge1xcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcHJpdmF0ZV9zdGFjay5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3ByaXZhdGVfc3RhY2suY1xcbmluZGV4IGVhMGE3ZTczMzMxZGEuLjNkOTk5NGE1MjQ2NGUgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3ByaXZhdGVfc3RhY2suY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wcml2YXRlX3N0YWNrLmNcXG5AQCAtMzc3LDYgKzM3Nyw3IEBAIGludCBwcml2YXRlX3N0YWNrX21heF9kZXB0aCh2b2lkKVxcbiBcXG4gU0VDKFxcXCJrcHJvYmVcXFwiKVxcbiBfX2Rlc2NyaXB0aW9uKFxcXCJwcml2YXRlIHN0YWNrIGlzIG5vdCBzdXBwb3J0ZWQsIHVzZSBhIGR1bW15IHRlc3RcXFwiKVxcbitfX3NraXAoXFxcInByaXZhdGUgc3RhY2sgaXMgbm90IHN1cHBvcnRlZFxcXCIpXFxuIF9fc3VjY2Vzc1xcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxcbiB7XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zZGl2LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2Rpdi5jXFxuaW5kZXggOTVmMzIzOWNlMjI4Yi4uZDZjYmUxZTI3ZmQ2YiAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2Rpdi5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3NkaXYuY1xcbkBAIC05LDcgKzksNyBAQFxcbiBcXHQoZGVmaW5lZChfX1RBUkdFVF9BUkNIX3Jpc2N2KSBcXHUwMDI2XFx1MDAyNiBfX3Jpc2N2X3hsZW4gPT0gNjQpIHx8IFxcXFxcXG4gXFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2FybSkgfHwgZGVmaW5lZChfX1RBUkdFVF9BUkNIX3MzOTApIHx8IFxcXFxcXG4gXFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2xvb25nYXJjaCkpIFxcdTAwMjZcXHUwMDI2IFxcXFxcXG4tXFx0X19jbGFuZ19tYWpvcl9fIFxcdTAwM2U9IDE4XFxuK1xcdChfX2NsYW5nX21ham9yX18gXFx1MDAzZT0gMTggfHwgZGVmaW5lZChfX0JQRl9GRUFUVVJFX1NESVZfU01PRCkpXFxuIFxcbiBTRUMoXFxcInNvY2tldFxcXCIpXFxuIF9fZGVzY3JpcHRpb24oXFxcIlNESVYzMiwgbm9uLXplcm8gaW1tIGRpdmlzb3IsIGNoZWNrIDFcXFwiKVxcbkBAIC0xMjcxLDYgKzEyNzEsNyBAQCBfX25ha2VkIHZvaWQgc21vZDMyX2ludF9taW5fbW9kX25lZzJfaW1tKHZvaWQpXFxuIFxcbiBTRUMoXFxcInNvY2tldFxcXCIpXFxuIF9fZGVzY3JpcHRpb24oXFxcImNwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0XFxcIilcXG4rX19za2lwKFxcXCJjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdFxcXCIpXFxuIF9fc3VjY2Vzc1xcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxcbiB7XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmcuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmcuY1xcbmluZGV4IDdlMGNlNWRiMjhhMGQuLjUxZDIyZmFmNDU1OWYgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZy5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZy5jXFxuQEAgLTQzNiw2ICs0MzYsNyBAQCBfX25ha2VkIHZvaWQgc3RhY2tfYXJnX3NlcXVlbnRpYWxfY2FsbHModm9pZClcXG4gXFxuIFNFQyhcXFwic29ja2V0XFxcIilcXG4gX19kZXNjcmlwdGlvbihcXFwic3RhY2tfYXJnIGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0XFxcIilcXG4rX19za2lwKFxcXCJzdGFja19hcmcgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXRcXFwiKVxcbiBfX3N1Y2Nlc3NcXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcXG4ge1xcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnX29yZGVyLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnX29yZGVyLmNcXG5pbmRleCBjOWZlNDg1N2RhM2Y1Li44ZTQzMjUyNzNiM2Q4IDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmdfb3JkZXIuY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmdfb3JkZXIuY1xcbkBAIC0xNzQsNiArMTc0LDcgQEAgX19uYWtlZCB2b2lkIHN0YWNrX2FyZ19yZWFkX3dpdGhvdXRfd3JpdGVfMih2b2lkKVxcbiBcXG4gU0VDKFxcXCJzb2NrZXRcXFwiKVxcbiBfX2Rlc2NyaXB0aW9uKFxcXCJzdGFja19hcmcgb3JkZXIgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQsIHVzZSBhIGR1bW15IHRlc3RcXFwiKVxcbitfX3NraXAoXFxcInN0YWNrX2FyZyBvcmRlciBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdFxcXCIpXFxuIF9fc3VjY2Vzc1xcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxcbiB7XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdG9yZV9yZWxlYXNlLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RvcmVfcmVsZWFzZS5jXFxuaW5kZXggNzJmMWViMDA2MDc0OC4uMGFiYmVlNWNlMTA5MiAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RvcmVfcmVsZWFzZS5jXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0b3JlX3JlbGVhc2UuY1xcbkBAIC0yOTAsNiArMjkwLDcgQEAgX19uYWtlZCB2b2lkIHN0b3JlX3JlbGVhc2Vfd2l0aF9pbnZhbGlkX3JlZyh2b2lkKVxcbiBcXG4gU0VDKFxcXCJzb2NrZXRcXFwiKVxcbiBfX2Rlc2NyaXB0aW9uKFxcXCJDbGFuZyB2ZXJzaW9uIFxcdTAwM2MgMTgsIEVOQUJMRV9BVE9NSUNTX1RFU1RTIG5vdCBkZWZpbmVkLCBhbmQvb3IgSklUIGRvZXNuJ3Qgc3VwcG9ydCBzdG9yZS1yZWxlYXNlLCB1c2UgYSBkdW1teSB0ZXN0XFxcIilcXG4rX19za2lwKFxcXCJDbGFuZyB2ZXJzaW9uIFxcdTAwM2MgMTgsIEVOQUJMRV9BVE9NSUNTX1RFU1RTIG5vdCBkZWZpbmVkLCBhbmQvb3IgSklUIGRvZXNuJ3Qgc3VwcG9ydCBzdG9yZS1yZWxlYXNlXFxcIilcXG4gX19zdWNjZXNzXFxuIGludCBkdW1teV90ZXN0KHZvaWQpXFxuIHtcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfbG9hZGVyLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9sb2FkZXIuY1xcbmluZGV4IDA3ODA3NzU3YjUxOGQuLjc5NGE3ZGZiMDU3OTYgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfbG9hZGVyLmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9sb2FkZXIuY1xcbkBAIC03MCw2ICs3MCw3IEBAIHN0cnVjdCB0ZXN0X3NwZWMge1xcbiBcXHRpbnQgYXJjaF9tYXNrO1xcbiBcXHRpbnQgbG9hZF9tYXNrO1xcbiBcXHRpbnQgbGluZWFyX3N6O1xcbitcXHRjb25zdCBjaGFyICpza2lwX3JlYXNvbjtcXG4gXFx0Ym9vbCBhdXhpbGlhcnk7XFxuIFxcdGJvb2wgdmFsaWQ7XFxuIH07XFxuQEAgLTQ1Niw2ICs0NTcsOCBAQCBzdGF0aWMgaW50IHBhcnNlX3Rlc3Rfc3BlYyhzdHJ1Y3QgdGVzdF9sb2FkZXIgKnRlc3RlcixcXG4gXFx0XFx0XFx0Y29udGludWU7XFxuIFxcdFxcdGlmICgodmFsID0gc3RyX2hhc19wZngocywgXFxcInRlc3RfZGVzY3JpcHRpb249XFxcIikpKSB7XFxuIFxcdFxcdFxcdGRlc2NyaXB0aW9uID0gdmFsO1xcbitcXHRcXHR9IGVsc2UgaWYgKCh2YWwgPSBzdHJfaGFzX3BmeChzLCBcXFwidGVzdF9za2lwPVxcXCIpKSkge1xcbitcXHRcXHRcXHRzcGVjLVxcdTAwM2Vza2lwX3JlYXNvbiA9IHZhbDtcXG4gXFx0XFx0fSBlbHNlIGlmIChzdHJjbXAocywgXFxcInRlc3RfZXhwZWN0X2ZhaWx1cmVcXFwiKSA9PSAwKSB7XFxuIFxcdFxcdFxcdHNwZWMtXFx1MDAzZXByaXYuZXhwZWN0X2ZhaWx1cmUgPSB0cnVlO1xcbiBcXHRcXHRcXHRzcGVjLVxcdTAwM2Vtb2RlX21hc2sgfD0gUFJJVjtcXG5AQCAtMTMyNyw2ICsxMzMwLDEyIEBAIHZvaWQgcnVuX3N1YnRlc3Qoc3RydWN0IHRlc3RfbG9hZGVyICp0ZXN0ZXIsXFxuIFxcdGlmICghdGVzdF9fc3RhcnRfc3VidGVzdF93aXRoX2Rlc2Moc3Vic3BlYy1cXHUwMDNlbmFtZSwgc3Vic3BlYy1cXHUwMDNlZGVzY3JpcHRpb24pKVxcbiBcXHRcXHRyZXR1cm47XFxuIFxcbitcXHRpZiAoc3BlYy1cXHUwMDNlc2tpcF9yZWFzb24pIHtcXG4rXFx0XFx0cHJpbnRmKFxcXCIlczpTS0lQOiAlc1xcXFxuXFxcIiwgX19mdW5jX18sIHNwZWMtXFx1MDAzZXNraXBfcmVhc29uKTtcXG4rXFx0XFx0dGVzdF9fc2tpcCgpO1xcbitcXHRcXHRyZXR1cm47XFxuK1xcdH1cXG4rXFxuIFxcdGlmICgoZ2V0X2N1cnJlbnRfYXJjaCgpIFxcdTAwMjYgc3BlYy1cXHUwMDNlYXJjaF9tYXNrKSA9PSAwKSB7XFxuIFxcdFxcdHRlc3RfX3NraXAoKTtcXG4gXFx0XFx0cmV0dXJuO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQyMzozNzoxMC41NDUxOTgwMVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjk2NDQzMzUxNjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgQlBGIHNlbGZ0ZXN0cyBpbiB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvIHRvIGFkZCBhIF9fc2tpcCB0YWcgYW5kIGZpeCBzb21lIHRlc3QgY29tcGlsYXRpb24gaXNzdWVzLiBJdCBkb2VzIG5vdCBtYWtlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBjb2RlIGl0c2VsZi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDhkMzVmNGI1YWFhODAzNWFkMjg4YjcxODk3YjU2ZDdmYTgwNzJhMTlcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAyNCAyMzozNzowNiAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9hcmVuYV9rZnVuYy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2FyZW5hX2tmdW5jLmNcbmluZGV4IGJmMGQzMDRlMGU1OWMuLjUwNjA5ZjNiMDU2NGEgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYXJlbmFfa2Z1bmMuY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2FyZW5hX2tmdW5jLmNcbkBAIC0yMzMsOCArMjMzLDkgQEAgU0VDKFwic3lzY2FsbFwiKVxuIF9fYXJjaF94ODZfNjRcbiBfX2FyY2hfYXJtNjRcbiBfX2Rlc2NyaXB0aW9uKFwiYXJlbmFfYXJnX3N0YWNrOiBub3Qgc3VwcG9ydGVkLCBkdW1teSB0ZXN0XCIpXG4rX19za2lwKFwiYXJlbmFfYXJnX3N0YWNrOiBub3Qgc3VwcG9ydGVkXCIpXG4gX19zdWNjZXNzXG4taW50IGFyZW5hX2FyZ19zdGFjayh2b2lkICpjdHgpXG4raW50IGR1bW15X3Rlc3Qodm9pZCAqY3R4KVxuIHtcbiBcdHJldHVybiAwO1xuIH1cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvYnBmX21pc2MuaCBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfbWlzYy5oXG5pbmRleCA1ZWFjZjFiNDMyNTIxLi5lYjg4ZDljZTZjMzQ4IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2JwZl9taXNjLmhcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9icGZfbWlzYy5oXG5AQCAtMTA2LDYgKzEwNiwxMSBAQFxuICAqIF9fZGVzY3JpcHRpb24gICAgIFRleHQgdG8gYmUgdXNlZCBmb3IgZGlzcGxheSBhbmQgYXMgYW4gYWRkaXRpb25hbCBmaWx0ZXJcbiAgKiAgICAgICAgICAgICAgICAgICBhbGlhcywgd2hpbGUgdGhlIG9yaWdpbmFsIHByb2dyYW0gbmFtZSBzdGF5cyBtYXRjaGFibGUuXG4gICpcbisgKiBfX3NraXAgICAgICAgICAgICBSZXBvcnQgdGhlIHRlc3QgYXMgU0tJUCB3aXRoIHRoZSBnaXZlbiByZWFzb24gaW5zdGVhZCBvZlxuKyAqICAgICAgICAgICAgICAgICAgIHJ1bm5pbmcgaXQuIEZvciBwbGFjZWhvbGRlciBwcm9ncmFtcyB0aGF0IHN0YW5kIGluIGZvciBhXG4rICogICAgICAgICAgICAgICAgICAgZmVhdHVyZSB0aGUgdG9vbGNoYWluIG9yIEpJVCBjYW5ub3QgcHJvdmlkZSwgc28gYSBydW4gZG9lc1xuKyAqICAgICAgICAgICAgICAgICAgIG5vdCByZXBvcnQgT0sgZm9yIGNvdmVyYWdlIGl0IG5ldmVyIGV4ZWN1dGVkLlxuKyAqXG4gICogX19sb2dfbGV2ZWwgICAgICAgTG9nIGxldmVsIHRvIHVzZSBmb3IgdGhlIHByb2dyYW0sIG51bWVyaWMgdmFsdWUgZXhwZWN0ZWQuXG4gICpcbiAgKiBfX2ZsYWcgICAgICAgICAgICBBZGRzIG9uZSBmbGFnIHVzZSBmb3IgdGhlIHByb2dyYW0sIHRoZSBmb2xsb3dpbmcgdmFsdWVzIGFyZSB2YWxpZDpcbkBAIC0xMzksNiArMTQ0LDcgQEBcbiAjZGVmaW5lIF9fZmFpbHVyZVx0XHRfX3Rlc3RfdGFnKFwidGVzdF9leHBlY3RfZmFpbHVyZVwiKVxuICNkZWZpbmUgX19zdWNjZXNzXHRcdF9fdGVzdF90YWcoXCJ0ZXN0X2V4cGVjdF9zdWNjZXNzXCIpXG4gI2RlZmluZSBfX2Rlc2NyaXB0aW9uKGRlc2MpXHRfX3Rlc3RfdGFnKFwidGVzdF9kZXNjcmlwdGlvbj1cIiBkZXNjKVxuKyNkZWZpbmUgX19za2lwKHJlYXNvbilcdFx0X190ZXN0X3RhZyhcInRlc3Rfc2tpcD1cIiByZWFzb24pXG4gI2RlZmluZSBfX21zZ191bnByaXYobXNnKVx0X190ZXN0X3RhZyhcInRlc3RfZXhwZWN0X21zZ191bnByaXY9XCIgbXNnKVxuICNkZWZpbmUgX19ub3RfbXNnX3VucHJpdihtc2cpXHRfX3Rlc3RfdGFnKFwidGVzdF9leHBlY3Rfbm90X21zZ191bnByaXY9XCIgbXNnKVxuICNkZWZpbmUgX194bGF0ZWRfdW5wcml2KG1zZylcdF9fdGVzdF90YWcoXCJ0ZXN0X2V4cGVjdF94bGF0ZWRfdW5wcml2PVwiIG1zZylcbkBAIC0yNTUsMTEgKzI2MSwxMSBAQFxuICAgICAgKGRlZmluZWQoX19UQVJHRVRfQVJDSF9yaXNjdikgXHUwMDI2XHUwMDI2IF9fcmlzY3ZfeGxlbiA9PSA2NCkgfHxcdFx0XFxcbiAgICAgIGRlZmluZWQoX19UQVJHRVRfQVJDSF9hcm0pIHx8IGRlZmluZWQoX19UQVJHRVRfQVJDSF9zMzkwKSB8fFx0XFxcbiAgICAgIGRlZmluZWQoX19UQVJHRVRfQVJDSF9sb29uZ2FyY2gpKSBcdTAwMjZcdTAwMjZcdFx0XHRcdFxcXG4tXHRfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOFxuK1x0KF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4IHx8IGRlZmluZWQoX19CUEZfRkVBVFVSRV9HT1RPTCkpXG4gI2RlZmluZSBDQU5fVVNFX0dPVE9MXG4gI2VuZGlmXG4gXG4tI2lmIF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4XG4rI2lmIF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4IHx8IGRlZmluZWQoX19CUEZfRkVBVFVSRV9TVClcbiAjZGVmaW5lIENBTl9VU0VfQlBGX1NUXG4gI2VuZGlmXG4gXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL2NvbXB1dGVfbGl2ZV9yZWdpc3RlcnMuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9jb21wdXRlX2xpdmVfcmVnaXN0ZXJzLmNcbmluZGV4IDMzOGU2N2NkODg1NmEuLjk0MWI2NWZlN2MwNzEgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvY29tcHV0ZV9saXZlX3JlZ2lzdGVycy5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvY29tcHV0ZV9saXZlX3JlZ2lzdGVycy5jXG5AQCAtMjk5LDcgKzI5OSwxNSBAQCBfX25ha2VkIHZvaWQgZ290b2wodm9pZClcbiBcdFx0XCJyMyA9IDI0O1wiXG4gXHRcdFwiaWYgcjEgXHUwMDNlIDB4NyBnb3RvICsyO1wiXG4gXHRcdFwicjAgPSByMjtcIlxuKyNpZmRlZiBfX2NsYW5nX19cbiBcdFx0XCJnb3RvbCArMTtcIlxuKyNlbHNlXG4rXHRcdC8qXG4rXHRcdCAqIGdhcyBtaXMtcGFyc2VzICdnb3RvbCArMScgYXMgJ2dvdG8gbCsxJywgc2FtZSBlbmNvZGluZ1xuK1x0XHQgKiB3aXRob3V0IHRoZSBzaWduIChiaW51dGlscyBQUiBnYXMvMzQ1NTgpLlxuK1x0XHQgKi9cbitcdFx0XCJnb3RvbCAxO1wiXG4rI2VuZGlmXG4gXHRcdFwicjAgPSByMztcIlxuIFx0XHRcImV4aXQ7XCJcbiBcdFx0OlxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdGFja19hcmdfZmFpbC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmNcbmluZGV4IGFkOWQ0YmZlMTVkY2MuLmVlZDk3ZDU4MjUxNTcgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RhY2tfYXJnX2ZhaWwuY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19mYWlsLmNcbkBAIC0xMDMsOCArMTAzLDkgQEAgX19uYWtlZCB2b2lkIHIxMV9zdG9yZV96ZXJvX29mZih2b2lkKVxuIFxuIFNFQyhcInRjXCIpXG4gX19kZXNjcmlwdGlvbihcInN0YWNrX2FyZ19mYWlsOiBub3Qgc3VwcG9ydGVkLCBkdW1teSB0ZXN0XCIpXG4rX19za2lwKFwic3RhY2tfYXJnX2ZhaWw6IG5vdCBzdXBwb3J0ZWRcIilcbiBfX3N1Y2Nlc3Ncbi1pbnQgdGVzdF9zdGFja19hcmdfYmlnKHN0cnVjdCBfX3NrX2J1ZmYgKnNrYilcbitpbnQgZHVtbXlfdGVzdChzdHJ1Y3QgX19za19idWZmICpza2IpXG4ge1xuIFx0cmV0dXJuIDA7XG4gfVxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy9zdGFja19hcmdfcHJlY2lzaW9uLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mvc3RhY2tfYXJnX3ByZWNpc2lvbi5jXG5pbmRleCBiZWUyZWVlYzAyMWQ3Li5jZTAzMDFhNDFmYTk0IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19wcmVjaXNpb24uY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3N0YWNrX2FyZ19wcmVjaXNpb24uY1xuQEAgLTEyNCw2ICsxMjQsNyBAQCBfX25ha2VkIHZvaWQgc3RhY2tfYXJnX3ByZWNpc2lvbl9icGYyYnBmKHZvaWQpXG4gXG4gU0VDKFwic29ja2V0XCIpXG4gX19kZXNjcmlwdGlvbihcInN0YWNrX2FyZ19wcmVjaXNpb246IG5vdCBzdXBwb3J0ZWQsIGR1bW15IHRlc3RcIilcbitfX3NraXAoXCJzdGFja19hcmdfcHJlY2lzaW9uOiBub3Qgc3VwcG9ydGVkXCIpXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2FnZ3JlZ2F0ZV9yZXQuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9hZ2dyZWdhdGVfcmV0LmNcbmluZGV4IDc4NTFiYWRlMmI0MDYuLmY1YzExNjYwMjdhMWQgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYWdncmVnYXRlX3JldC5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYWdncmVnYXRlX3JldC5jXG5AQCAtMTY3LDYgKzE2Nyw3IEBAIGludCBhZ2dyZWdhdGVfcmV0X2tmdW5jX3N0cnVjdF9jX3Rlc3Qoc3RydWN0IF9fc2tfYnVmZiAqc2tiKVxuIFxuIFNFQyhcInNvY2tldFwiKVxuIF9fZGVzY3JpcHRpb24oXCJ2ZXJpZmllcl9hZ2dyZWdhdGVfcmV0OiBuZWVkcyBMTFZNIDIzLCBkdW1teSB0ZXN0XCIpXG4rX19za2lwKFwibmVlZHMgTExWTSAyM1wiKVxuIF9fc3VjY2Vzc1xuIGludCBkdW1teV90ZXN0KHZvaWQpXG4ge1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9ic3dhcC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jzd2FwLmNcbmluZGV4IGNmZmFmMzYxOTJiYzUuLjQ4ZmZiNWIyNDJkMjQgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYnN3YXAuY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jzd2FwLmNcbkBAIC04LDcgKzgsNyBAQFxuIFx0KGRlZmluZWQoX19UQVJHRVRfQVJDSF9yaXNjdikgXHUwMDI2XHUwMDI2IF9fcmlzY3ZfeGxlbiA9PSA2NCkgfHwgXFxcbiBcdGRlZmluZWQoX19UQVJHRVRfQVJDSF9hcm0pIHx8IGRlZmluZWQoX19UQVJHRVRfQVJDSF9zMzkwKSB8fCBcXFxuIFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2xvb25nYXJjaCkpIFx1MDAyNlx1MDAyNiBcXFxuLVx0X19jbGFuZ19tYWpvcl9fIFx1MDAzZT0gMThcbitcdChfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOCB8fCBkZWZpbmVkKF9fQlBGX0ZFQVRVUkVfQlNXQVApKVxuIFxuIFNFQyhcInNvY2tldFwiKVxuIF9fZGVzY3JpcHRpb24oXCJCU1dBUCwgMTZcIilcbkBAIC0xMTcsNiArMTE3LDcgQEAgbDBfJT06XHRcdFx0XHRcdFx0XHRcXFxuIFxuIFNFQyhcInNvY2tldFwiKVxuIF9fZGVzY3JpcHRpb24oXCJjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCwgdXNlIGEgZHVtbXkgdGVzdFwiKVxuK19fc2tpcChcImNwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0XCIpXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2dvdG9sLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfZ290b2wuY1xuaW5kZXggZDVkOGYyNGRmMzk0OS4uYzBmZDMwYTNhNGMxMyAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9nb3RvbC5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfZ290b2wuY1xuQEAgLTUyLDYgKzUyLDcgQEAgX19uYWtlZCB2b2lkIGdvdG9sX2xhcmdlX2ltbSh2b2lkKVxuIFxuIFNFQyhcInNvY2tldFwiKVxuIF9fZGVzY3JpcHRpb24oXCJjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCwgdXNlIGEgZHVtbXkgdGVzdFwiKVxuK19fc2tpcChcImNwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0XCIpXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xkc3guYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sZHN4LmNcbmluZGV4IDQxMzQwODc3ZGM5ZDkuLjc1NzYyZTExYjQ0M2YgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbGRzeC5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbGRzeC5jXG5AQCAtOSwxMyArOSw3IEBAXG4gXHQoZGVmaW5lZChfX1RBUkdFVF9BUkNIX3Jpc2N2KSBcdTAwMjZcdTAwMjYgX19yaXNjdl94bGVuID09IDY0KSB8fCBcXFxuIFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2FybSkgfHwgZGVmaW5lZChfX1RBUkdFVF9BUkNIX3MzOTApIHx8IFxcXG4gXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfbG9vbmdhcmNoKSkgXHUwMDI2XHUwMDI2IFxcXG4tXHRfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOFxuLVxuLXN0cnVjdCB7XG4tXHRfX3VpbnQodHlwZSwgQlBGX01BUF9UWVBFX0FSRU5BKTtcbi1cdF9fdWludChtYXBfZmxhZ3MsIEJQRl9GX01NQVBBQkxFKTtcbi1cdF9fdWludChtYXhfZW50cmllcywgMSk7XG4tfSBhcmVuYSBTRUMoXCIubWFwc1wiKTtcbitcdChfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOCB8fCBkZWZpbmVkKF9fQlBGX0ZFQVRVUkVfTERTWCkpXG4gXG4gU0VDKFwic29ja2V0XCIpXG4gX19kZXNjcmlwdGlvbihcIkxEU1gsIFM4XCIpXG5AQCAtMjYzLDYgKzI1NywxNCBAQCBfX25ha2VkIHZvaWQgbGRzeF9jdHhfOCh2b2lkKVxuIFx0OiBfX2Nsb2JiZXJfYWxsKTtcbiB9XG4gXG4rI2lmZGVmIF9fQlBGX0ZFQVRVUkVfQUREUl9TUEFDRV9DQVNUXG4rXG4rc3RydWN0IHtcbitcdF9fdWludCh0eXBlLCBCUEZfTUFQX1RZUEVfQVJFTkEpO1xuK1x0X191aW50KG1hcF9mbGFncywgQlBGX0ZfTU1BUEFCTEUpO1xuK1x0X191aW50KG1heF9lbnRyaWVzLCAxKTtcbit9IGFyZW5hIFNFQyhcIi5tYXBzXCIpO1xuK1xuIFNFQyhcInN5c2NhbGxcIilcbiBfX2Rlc2NyaXB0aW9uKFwiQXJlbmEgTERTWCBEaXNhc21cIilcbiBfX3N1Y2Nlc3NcbkBAIC00MzIsMTAgKzQzNCwxMyBAQCB2b2lkIGtmdW5jX3Jvb3Qodm9pZClcbiBcdGJwZl9hcmVuYV9hbGxvY19wYWdlcygwLCAwLCAwLCAwLCAwKTtcbiB9XG4gXG4rI2VuZGlmIC8qIF9fQlBGX0ZFQVRVUkVfQUREUl9TUEFDRV9DQVNUICovXG4rXG4gI2Vsc2VcbiBcbiBTRUMoXCJzb2NrZXRcIilcbiBfX2Rlc2NyaXB0aW9uKFwiY3B1djQgaXMgbm90IHN1cHBvcnRlZCBieSBjb21waWxlciBvciBqaXQsIHVzZSBhIGR1bW15IHRlc3RcIilcbitfX3NraXAoXCJjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdFwiKVxuIF9fc3VjY2Vzc1xuIGludCBkdW1teV90ZXN0KHZvaWQpXG4ge1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sb2FkX2FjcXVpcmUuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sb2FkX2FjcXVpcmUuY1xuaW5kZXggZDE3MDI2ZDc0ODBkOC4uYmNjMzRlNzk4YzYzNCAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9sb2FkX2FjcXVpcmUuY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2xvYWRfYWNxdWlyZS5jXG5AQCAtMjY3LDYgKzI2Nyw3IEBAIF9fbmFrZWQgdm9pZCBsb2FkX2FjcXVpcmVfd2l0aF9pbnZhbGlkX3JlZyh2b2lkKVxuIFxuIFNFQyhcInNvY2tldFwiKVxuIF9fZGVzY3JpcHRpb24oXCJDbGFuZyB2ZXJzaW9uIFx1MDAzYyAxOCwgRU5BQkxFX0FUT01JQ1NfVEVTVFMgbm90IGRlZmluZWQsIGFuZC9vciBKSVQgZG9lc24ndCBzdXBwb3J0IGxvYWQtYWNxdWlyZSwgdXNlIGEgZHVtbXkgdGVzdFwiKVxuK19fc2tpcChcIkNsYW5nIHZlcnNpb24gXHUwMDNjIDE4LCBFTkFCTEVfQVRPTUlDU19URVNUUyBub3QgZGVmaW5lZCwgYW5kL29yIEpJVCBkb2Vzbid0IHN1cHBvcnQgbG9hZC1hY3F1aXJlXCIpXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX21vdnN4LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbW92c3guY1xuaW5kZXggYTRkODgxNGViNWVkYy4uMTk1YjI3YTUxMjI0ZiAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9tb3ZzeC5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfbW92c3guY1xuQEAgLTgsNyArOCw3IEBAXG4gXHQoZGVmaW5lZChfX1RBUkdFVF9BUkNIX3Jpc2N2KSBcdTAwMjZcdTAwMjYgX19yaXNjdl94bGVuID09IDY0KSB8fCBcXFxuIFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2FybSkgfHwgZGVmaW5lZChfX1RBUkdFVF9BUkNIX3MzOTApIHx8IFxcXG4gXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfbG9vbmdhcmNoKSkgXHUwMDI2XHUwMDI2IFxcXG4tXHRfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOFxuK1x0KF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4IHx8IGRlZmluZWQoX19CUEZfRkVBVFVSRV9NT1ZTWCkpXG4gXG4gU0VDKFwic29ja2V0XCIpXG4gX19kZXNjcmlwdGlvbihcIk1PVjMyU1gsIFM4XCIpXG5AQCAtMzQzLDYgKzM0Myw3IEBAIGxhYmVsXyU9OiBcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxuIFxuIFNFQyhcInNvY2tldFwiKVxuIF9fZGVzY3JpcHRpb24oXCJjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCwgdXNlIGEgZHVtbXkgdGVzdFwiKVxuK19fc2tpcChcImNwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0XCIpXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3BlcmNwdV9hZGRyLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcGVyY3B1X2FkZHIuY1xuaW5kZXggOTY3ZjRlNmUzYTQ5MC4uZmQ0MThmMjc5OTZmNSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wZXJjcHVfYWRkci5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcGVyY3B1X2FkZHIuY1xuQEAgLTYxLDYgKzYxLDcgQEAgX19uYWtlZCB2b2lkIHBlcmNwdV9hZGRyKHZvaWQpXG4gXG4gU0VDKFwicmF3X3RwXCIpXG4gX19kZXNjcmlwdGlvbihcInBlcmNwdSBhZGRyIGR1bW15XCIpXG4rX19za2lwKFwicGVyY3B1IGFkZHIgdGVzdHMgbmVlZCB4ODZcIilcbiBfX3N1Y2Nlc3NcbiBpbnQgZHVtbXlfdGVzdCh2b2lkKVxuIHtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfcHJpdmF0ZV9zdGFjay5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3ByaXZhdGVfc3RhY2suY1xuaW5kZXggZWEwYTdlNzMzMzFkYS4uM2Q5OTk0YTUyNDY0ZSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wcml2YXRlX3N0YWNrLmNcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9wcml2YXRlX3N0YWNrLmNcbkBAIC0zNzcsNiArMzc3LDcgQEAgaW50IHByaXZhdGVfc3RhY2tfbWF4X2RlcHRoKHZvaWQpXG4gXG4gU0VDKFwia3Byb2JlXCIpXG4gX19kZXNjcmlwdGlvbihcInByaXZhdGUgc3RhY2sgaXMgbm90IHN1cHBvcnRlZCwgdXNlIGEgZHVtbXkgdGVzdFwiKVxuK19fc2tpcChcInByaXZhdGUgc3RhY2sgaXMgbm90IHN1cHBvcnRlZFwiKVxuIF9fc3VjY2Vzc1xuIGludCBkdW1teV90ZXN0KHZvaWQpXG4ge1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zZGl2LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2Rpdi5jXG5pbmRleCA5NWYzMjM5Y2UyMjhiLi5kNmNiZTFlMjdmZDZiIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3NkaXYuY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3NkaXYuY1xuQEAgLTksNyArOSw3IEBAXG4gXHQoZGVmaW5lZChfX1RBUkdFVF9BUkNIX3Jpc2N2KSBcdTAwMjZcdTAwMjYgX19yaXNjdl94bGVuID09IDY0KSB8fCBcXFxuIFx0ZGVmaW5lZChfX1RBUkdFVF9BUkNIX2FybSkgfHwgZGVmaW5lZChfX1RBUkdFVF9BUkNIX3MzOTApIHx8IFxcXG4gXHRkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfbG9vbmdhcmNoKSkgXHUwMDI2XHUwMDI2IFxcXG4tXHRfX2NsYW5nX21ham9yX18gXHUwMDNlPSAxOFxuK1x0KF9fY2xhbmdfbWFqb3JfXyBcdTAwM2U9IDE4IHx8IGRlZmluZWQoX19CUEZfRkVBVFVSRV9TRElWX1NNT0QpKVxuIFxuIFNFQyhcInNvY2tldFwiKVxuIF9fZGVzY3JpcHRpb24oXCJTRElWMzIsIG5vbi16ZXJvIGltbSBkaXZpc29yLCBjaGVjayAxXCIpXG5AQCAtMTI3MSw2ICsxMjcxLDcgQEAgX19uYWtlZCB2b2lkIHNtb2QzMl9pbnRfbWluX21vZF9uZWcyX2ltbSh2b2lkKVxuIFxuIFNFQyhcInNvY2tldFwiKVxuIF9fZGVzY3JpcHRpb24oXCJjcHV2NCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCwgdXNlIGEgZHVtbXkgdGVzdFwiKVxuK19fc2tpcChcImNwdXY0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0XCIpXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZy5jXG5pbmRleCA3ZTBjZTVkYjI4YTBkLi41MWQyMmZhZjQ1NTlmIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZy5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RhY2tfYXJnLmNcbkBAIC00MzYsNiArNDM2LDcgQEAgX19uYWtlZCB2b2lkIHN0YWNrX2FyZ19zZXF1ZW50aWFsX2NhbGxzKHZvaWQpXG4gXG4gU0VDKFwic29ja2V0XCIpXG4gX19kZXNjcmlwdGlvbihcInN0YWNrX2FyZyBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdCwgdXNlIGEgZHVtbXkgdGVzdFwiKVxuK19fc2tpcChcInN0YWNrX2FyZyBpcyBub3Qgc3VwcG9ydGVkIGJ5IGNvbXBpbGVyIG9yIGppdFwiKVxuIF9fc3VjY2Vzc1xuIGludCBkdW1teV90ZXN0KHZvaWQpXG4ge1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmdfb3JkZXIuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmdfb3JkZXIuY1xuaW5kZXggYzlmZTQ4NTdkYTNmNS4uOGU0MzI1MjczYjNkOCAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdGFja19hcmdfb3JkZXIuY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0YWNrX2FyZ19vcmRlci5jXG5AQCAtMTc0LDYgKzE3NCw3IEBAIF9fbmFrZWQgdm9pZCBzdGFja19hcmdfcmVhZF93aXRob3V0X3dyaXRlXzIodm9pZClcbiBcbiBTRUMoXCJzb2NrZXRcIilcbiBfX2Rlc2NyaXB0aW9uKFwic3RhY2tfYXJnIG9yZGVyIGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0LCB1c2UgYSBkdW1teSB0ZXN0XCIpXG4rX19za2lwKFwic3RhY2tfYXJnIG9yZGVyIGlzIG5vdCBzdXBwb3J0ZWQgYnkgY29tcGlsZXIgb3Igaml0XCIpXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3N0b3JlX3JlbGVhc2UuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zdG9yZV9yZWxlYXNlLmNcbmluZGV4IDcyZjFlYjAwNjA3NDguLjBhYmJlZTVjZTEwOTIgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RvcmVfcmVsZWFzZS5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc3RvcmVfcmVsZWFzZS5jXG5AQCAtMjkwLDYgKzI5MCw3IEBAIF9fbmFrZWQgdm9pZCBzdG9yZV9yZWxlYXNlX3dpdGhfaW52YWxpZF9yZWcodm9pZClcbiBcbiBTRUMoXCJzb2NrZXRcIilcbiBfX2Rlc2NyaXB0aW9uKFwiQ2xhbmcgdmVyc2lvbiBcdTAwM2MgMTgsIEVOQUJMRV9BVE9NSUNTX1RFU1RTIG5vdCBkZWZpbmVkLCBhbmQvb3IgSklUIGRvZXNuJ3Qgc3VwcG9ydCBzdG9yZS1yZWxlYXNlLCB1c2UgYSBkdW1teSB0ZXN0XCIpXG4rX19za2lwKFwiQ2xhbmcgdmVyc2lvbiBcdTAwM2MgMTgsIEVOQUJMRV9BVE9NSUNTX1RFU1RTIG5vdCBkZWZpbmVkLCBhbmQvb3IgSklUIGRvZXNuJ3Qgc3VwcG9ydCBzdG9yZS1yZWxlYXNlXCIpXG4gX19zdWNjZXNzXG4gaW50IGR1bW15X3Rlc3Qodm9pZClcbiB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfbG9hZGVyLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9sb2FkZXIuY1xuaW5kZXggMDc4MDc3NTdiNTE4ZC4uNzk0YTdkZmIwNTc5NiAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X2xvYWRlci5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9sb2FkZXIuY1xuQEAgLTcwLDYgKzcwLDcgQEAgc3RydWN0IHRlc3Rfc3BlYyB7XG4gXHRpbnQgYXJjaF9tYXNrO1xuIFx0aW50IGxvYWRfbWFzaztcbiBcdGludCBsaW5lYXJfc3o7XG4rXHRjb25zdCBjaGFyICpza2lwX3JlYXNvbjtcbiBcdGJvb2wgYXV4aWxpYXJ5O1xuIFx0Ym9vbCB2YWxpZDtcbiB9O1xuQEAgLTQ1Niw2ICs0NTcsOCBAQCBzdGF0aWMgaW50IHBhcnNlX3Rlc3Rfc3BlYyhzdHJ1Y3QgdGVzdF9sb2FkZXIgKnRlc3RlcixcbiBcdFx0XHRjb250aW51ZTtcbiBcdFx0aWYgKCh2YWwgPSBzdHJfaGFzX3BmeChzLCBcInRlc3RfZGVzY3JpcHRpb249XCIpKSkge1xuIFx0XHRcdGRlc2NyaXB0aW9uID0gdmFsO1xuK1x0XHR9IGVsc2UgaWYgKCh2YWwgPSBzdHJfaGFzX3BmeChzLCBcInRlc3Rfc2tpcD1cIikpKSB7XG4rXHRcdFx0c3BlYy1cdTAwM2Vza2lwX3JlYXNvbiA9IHZhbDtcbiBcdFx0fSBlbHNlIGlmIChzdHJjbXAocywgXCJ0ZXN0X2V4cGVjdF9mYWlsdXJlXCIpID09IDApIHtcbiBcdFx0XHRzcGVjLVx1MDAzZXByaXYuZXhwZWN0X2ZhaWx1cmUgPSB0cnVlO1xuIFx0XHRcdHNwZWMtXHUwMDNlbW9kZV9tYXNrIHw9IFBSSVY7XG5AQCAtMTMyNyw2ICsxMzMwLDEyIEBAIHZvaWQgcnVuX3N1YnRlc3Qoc3RydWN0IHRlc3RfbG9hZGVyICp0ZXN0ZXIsXG4gXHRpZiAoIXRlc3RfX3N0YXJ0X3N1YnRlc3Rfd2l0aF9kZXNjKHN1YnNwZWMtXHUwMDNlbmFtZSwgc3Vic3BlYy1cdTAwM2VkZXNjcmlwdGlvbikpXG4gXHRcdHJldHVybjtcbiBcbitcdGlmIChzcGVjLVx1MDAzZXNraXBfcmVhc29uKSB7XG4rXHRcdHByaW50ZihcIiVzOlNLSVA6ICVzXFxuXCIsIF9fZnVuY19fLCBzcGVjLVx1MDAzZXNraXBfcmVhc29uKTtcbitcdFx0dGVzdF9fc2tpcCgpO1xuK1x0XHRyZXR1cm47XG4rXHR9XG4rXG4gXHRpZiAoKGdldF9jdXJyZW50X2FyY2goKSBcdTAwMjYgc3BlYy1cdTAwM2VhcmNoX21hc2spID09IDApIHtcbiBcdFx0dGVzdF9fc2tpcCgpO1xuIFx0XHRyZXR1cm47XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQyMzozNzoxMC41NDUyMDA1WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTY0NDI5ODk1OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEJQRiBTZWxmdGVzdCBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIHRoZSBCUEYgc2VsZnRlc3RzLiBTZWVtcyBsaWtlIHRoZSBwcmltYXJ5IGZvY3VzIGhlcmUgaXMgc3RyZWFtbGluaW5nIHRoZSB0ZXN0IGV4ZWN1dGlvbiBwcm9jZXNzLiBUaGUgaW50cm9kdWN0aW9uIG9mIHRoZSBgX19za2lwYCB0YWcgaW4gYGJwZl9taXNjLmhgIGFuZCB0aGUgY29ycmVzcG9uZGluZyBwYXJzaW5nIG9mIGB0ZXN0X3NraXA9YCBpbiBgdGVzdF9sb2FkZXIuY2AgaXMgYSB3ZWxjb21lIGFkZGl0aW9uOyBpdCBhbGxvd3MgZm9yIG11Y2ggbW9yZSBncmFudWxhciBjb250cm9sIG92ZXIgdGVzdCBza2lwcGluZywgcmF0aGVyIHRoYW4gaGF2aW5nIHRvIHJ1biBkdW1teSB0ZXN0cy4gSSBhcHByZWNpYXRlIHRoZSBmb3J3YXJkIHRoaW5raW5nIGhlcmUsIHRvbywgYnkgYWNjb3VudGluZyBmb3IgdmFyaW91cyBmZWF0dXJlIGZsYWdzIGxpa2UgYF9fQlBGX0ZFQVRVUkVfR09UT0xgLCBgX19CUEZfRkVBVFVSRV9TVGAsIGFuZCB0aGUgcmVzdCwgYWxvbmcgd2l0aCB0aGUgY2xhbmcgdmVyc2lvbiBjaGVjay4gVGhlIGBjb21wdXRlX2xpdmVfcmVnaXN0ZXJzLmNgIGZpeCBmb3IgdGhlIGBnb3RvbCArMWAgcGFyc2luZyBpc3N1ZSBpcyBhIGdvb2QgY2F0Y2ggYXMgd2VsbC5cblxuTm93LCB0aGUgaW1wb3J0YW50IHF1ZXN0aW9uLi4uaXMgdGhpcyAqanVzdCogYSB0b29saW5nIGNoYW5nZSwgb3IgaXMgaXQgZ29pbmcgdG8gaGF2ZSBrbm9jay1vbiBlZmZlY3RzIGZvciB0aGUga2VybmVsIGl0c2VsZj8gTGV0J3MgdGFrZSBhIGNsb3NlciBsb29rIGF0IHRoZSBkaWZmLiBPa2F5LCBydW5uaW5nIHRocm91Z2ggdGhlIGNoYW5nZWQgZmlsZXMsIEkgY2FuIHNlZSB0aGlzIGlzIHN0cmljdGx5IGEgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9gIG1vZGlmaWNhdGlvbi4gVGhlIHBhdGNoIGFsdGVycyB0ZXN0IHByb2dyYW1zIGFuZCB0aGUgdGVzdCBsb2FkZXIgYnV0IGRvZXNuJ3QgdG91Y2ggdGhlIGtlcm5lbCBzb3VyY2UgY29kZSBvciBhcmNoaXRlY3R1cmUuIEdpdmVuIHRoZSBmYWN0IHRoYXQgb25seSB0ZXN0IGNvZGUgYW5kIHRlc3QgZnJhbWV3b3JrIGNvZGUgaGFzIGJlZW4gbW9kaWZpZWQsIEkgY2FuIGRlZmluaXRpdmVseSBzYXkgdGhhdCB0aGVzZSBjaGFuZ2VzIHdvbid0IGludHJvZHVjZSBuZXcgYXR0YWNrIHN1cmZhY2VzLiBUaGVyZSdzIG5vIGNoYW5nZSB0byB0aGUgYmVoYXZpb3Igb2YgdGhlIEJQRiB2ZXJpZmllciBvciB0aGUgQlBGIEpJVCwgc28gbm8ga2VybmVsIGZ1enppbmcgaXMgbmVjZXNzYXJ5LiBUaGVyZWZvcmUsIEkgd2lsbCByZXNwb25kIHdpdGggYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjczNjYsIk91dHB1dFRva2VucyI6NzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3NjMsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQyMzozNzoyMC4xODk1MDI2NzlaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI4NjEwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgQlBGIHNlbGZ0ZXN0cyBpbiB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvIHRvIGFkZCBhIF9fc2tpcCB0YWcgYW5kIGZpeCBzb21lIHRlc3QgY29tcGlsYXRpb24gaXNzdWVzLiBJdCBkb2VzIG5vdCBtYWtlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBjb2RlIGl0c2VsZi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgQlBGIHNlbGZ0ZXN0cyBpbiB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvIHRvIGFkZCBhIF9fc2tpcCB0YWcgYW5kIGZpeCBzb21lIHRlc3QgY29tcGlsYXRpb24gaXNzdWVzLiBJdCBkb2VzIG5vdCBtYWtlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCBjb2RlIGl0c2VsZi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDIzOjM3OjIwLjE4OTUzNTYxOVoiLCJTZXEiOjUsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyOTkwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowmf8d2[1] Phase: Running StartedAt: 2026-08-24 23:37:32 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmf8d2[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-24 23:37:32 +0000 UTC FinishedAt: 2026-08-24 23:37:47 +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,}