Name: series-workflowvfr8z Phase: Succeeded StartedAt: 2026-06-23 20:31:41 +0000 UTC FinishedAt: 2026-06-24 00:35:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfr8z[0] Phase: Succeeded StartedAt: 2026-06-23 20:31:41 +0000 UTC FinishedAt: 2026-06-23 20:42:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfr8z[0].run-triage Phase: Succeeded StartedAt: 2026-06-23 20:31:41 +0000 UTC FinishedAt: 2026-06-23 20:42:32 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "f31c00c377ccf07c85442712f7c940a855cb3371", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "FUSE_FS" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "f31c00c377ccf07c85442712f7c940a855cb3371", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "FUSE_FS" ], "series_id": "30afd0fa-6b37-4bf0-a1d7-a659032df11b" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "fuse_send_write_pages", "fuse_fill_write_pages", "fuse_notify_store", "iomap_folio_mark_uptodate", "iomap_folio_clear_uptodate" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDIwOjQxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0ZVU0VfRlMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtmdXNlX3NlbmRfd3JpdGVfcGFnZXMmIzM0OywKICAgICYjMzQ7ZnVzZV9maWxsX3dyaXRlX3BhZ2VzJiMzNDssCiAgICAmIzM0O2Z1c2Vfbm90aWZ5X3N0b3JlJiMzNDssCiAgICAmIzM0O2lvbWFwX2ZvbGlvX21hcmtfdXB0b2RhdGUmIzM0OywKICAgICYjMzQ7aW9tYXBfZm9saW9fY2xlYXJfdXB0b2RhdGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW50cm9kdWNlcyBuZXcgaW9tYXAgZm9saW8gdXB0b2RhdGUgbWFuYWdlbWVudCBmdW5jdGlvbnMgKGBpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlYCwgYGlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlYCkgYW5kIGludGVncmF0ZXMgdGhlbSBpbnRvIHRoZSBGVVNFIGZpbGVzeXN0ZW0mIzM5O3Mgd3JpdGUgYW5kIG5vdGlmeSBwYXRocy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgZmlsZXN5c3RlbSBhbmQgRlVTRSBsb2dpYyB0aGF0IGhhbmRsZXMgZm9saW8gc3RhdGUsIHdoaWNoIGNvdWxkIGxlYWQgdG8gZGF0YSBjb3JydXB0aW9uIG9yIGNyYXNoZXMgaWYgaW5jb3JyZWN0LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDIwOjQxPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgY2Y5OWI4MWQ2ZjRlZDZlYWU5YzBjOTY0MDhlMDg1YzQyY2M0ZTUyMFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVuIDIzIDIwOjQxOjUzIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2ZzL2Z1c2UvZmlsZS5jIGIvZnMvZnVzZS9maWxlLmNcbmluZGV4IGUwNTJhMGQ0NGRlZTA2Li4xMmEyYWE2MDVmNmIzMSAxMDA2NDRcbi0tLSBhL2ZzL2Z1c2UvZmlsZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9mcy9mdXNlL2ZpbGUuY1xuQEAgLTEyNTAsMTMgJiM0MzsxMjUwLDEzIEBAIHN0YXRpYyBzc2l6ZV90IGZ1c2Vfc2VuZF93cml0ZV9wYWdlcyhzdHJ1Y3QgZnVzZV9pb19hcmdzICppYSxcbiBcdFx0c3RydWN0IGZvbGlvICpmb2xpbyA9IGFwLVx1MDAzZWZvbGlvc1tpXTtcbiBcbiBcdFx0aWYgKGVycikge1xuLVx0XHRcdGZvbGlvX2NsZWFyX3VwdG9kYXRlKGZvbGlvKTtcbiYjNDM7XHRcdFx0aW9tYXBfZm9saW9fY2xlYXJfdXB0b2RhdGUoZm9saW8pO1xuIFx0XHR9IGVsc2Uge1xuIFx0XHRcdGlmIChjb3VudCBcdTAwM2U9IGZvbGlvX3NpemUoZm9saW8pIC0gb2Zmc2V0KVxuIFx0XHRcdFx0Y291bnQgLT0gZm9saW9fc2l6ZShmb2xpbykgLSBvZmZzZXQ7XG4gXHRcdFx0ZWxzZSB7XG4gXHRcdFx0XHRpZiAoc2hvcnRfd3JpdGUpXG4tXHRcdFx0XHRcdGZvbGlvX2NsZWFyX3VwdG9kYXRlKGZvbGlvKTtcbiYjNDM7XHRcdFx0XHRcdGlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlKGZvbGlvKTtcbiBcdFx0XHRcdGNvdW50ID0gMDtcbiBcdFx0XHR9XG4gXHRcdFx0b2Zmc2V0ID0gMDtcbkBAIC0xMzM1LDcgJiM0MzsxMzM1LDcgQEAgc3RhdGljIHNzaXplX3QgZnVzZV9maWxsX3dyaXRlX3BhZ2VzKHN0cnVjdCBmdXNlX2lvX2FyZ3MgKmlhLFxuIFxuIFx0XHQvKiBJZiB3ZSBjb3BpZWQgZnVsbCBmb2xpbywgbWFyayBpdCB1cHRvZGF0ZSAqL1xuIFx0XHRpZiAodG1wID09IGZvbGlvX3NpemUoZm9saW8pKVxuLVx0XHRcdGZvbGlvX21hcmtfdXB0b2RhdGUoZm9saW8pO1xuJiM0MztcdFx0XHRpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlKGZvbGlvKTtcbiBcbiBcdFx0aWYgKGZvbGlvX3Rlc3RfdXB0b2RhdGUoZm9saW8pKSB7XG4gXHRcdFx0Zm9saW9fdW5sb2NrKGZvbGlvKTtcbmRpZmYgLS1naXQgYS9mcy9mdXNlL25vdGlmeS5jIGIvZnMvZnVzZS9ub3RpZnkuY1xuaW5kZXggMjk1NzgxMDRhZTZjZDYuLjFiYTc2MzcwNWQ5MTE5IDEwMDY0NFxuLS0tIGEvZnMvZnVzZS9ub3RpZnkuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZnMvZnVzZS9ub3RpZnkuY1xuQEAgLTIsNiAmIzQzOzIsOCBAQFxuIFxuICNpbmNsdWRlIFwmIzM0O2Rldi5oXCYjMzQ7XG4gI2luY2x1ZGUgXCYjMzQ7ZnVzZV9pLmhcJiMzNDtcbiYjNDM7XG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L2lvbWFwLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9wYWdlbWFwLmhcdTAwM2VcbiBcbiBzdGF0aWMgaW50IGZ1c2Vfbm90aWZ5X3BvbGwoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHVuc2lnbmVkIGludCBzaXplLFxuQEAgLTE5Miw3ICYjNDM7MTk0LDcgQEAgc3RhdGljIGludCBmdXNlX25vdGlmeV9zdG9yZShzdHJ1Y3QgZnVzZV9jb25uICpmYywgdW5zaWduZWQgaW50IHNpemUsXG4gXHRcdGlmICghZm9saW9fdGVzdF91cHRvZGF0ZShmb2xpbykgXHUwMDI2XHUwMDI2ICFlcnIgXHUwMDI2XHUwMDI2IGZvbGlvX29mZnNldCA9PSAwIFx1MDAyNlx1MDAyNlxuIFx0XHQgICAgKG5yX2J5dGVzID09IGZvbGlvX3NpemUoZm9saW8pIHx8IGZpbGVfc2l6ZSA9PSBlbmQpKSB7XG4gXHRcdFx0Zm9saW9femVyb19zZWdtZW50KGZvbGlvLCBucl9ieXRlcywgZm9saW9fc2l6ZShmb2xpbykpO1xuLVx0XHRcdGZvbGlvX21hcmtfdXB0b2RhdGUoZm9saW8pO1xuJiM0MztcdFx0XHRpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlKGZvbGlvKTtcbiBcdFx0fVxuIFx0XHRmb2xpb191bmxvY2soZm9saW8pO1xuIFx0XHRmb2xpb19wdXQoZm9saW8pO1xuZGlmZiAtLWdpdCBhL2ZzL2lvbWFwL2J1ZmZlcmVkLWlvLmMgYi9mcy9pb21hcC9idWZmZXJlZC1pby5jXG5pbmRleCA4ZDQ4MDZkYzQ2ZDQ2OC4uMzE3ZmE3YWY5OGJkMjMgMTAwNjQ0XG4tLS0gYS9mcy9pb21hcC9idWZmZXJlZC1pby5jXG4mIzQzOyYjNDM7JiM0MzsgYi9mcy9pb21hcC9idWZmZXJlZC1pby5jXG5AQCAtMTA1LDYgJiM0MzsxMDUsMzMgQEAgc3RhdGljIHZvaWQgaW9tYXBfc2V0X3JhbmdlX3VwdG9kYXRlKHN0cnVjdCBmb2xpbyAqZm9saW8sIHNpemVfdCBvZmYsXG4gXHRcdGZvbGlvX21hcmtfdXB0b2RhdGUoZm9saW8pO1xuIH1cbiBcbiYjNDM7dm9pZCBpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlKHN0cnVjdCBmb2xpbyAqZm9saW8pXG4mIzQzO3tcbiYjNDM7XHRpb21hcF9zZXRfcmFuZ2VfdXB0b2RhdGUoZm9saW8sIDAsIGZvbGlvX3NpemUoZm9saW8pKTtcbiYjNDM7fVxuJiM0MztFWFBPUlRfU1lNQk9MX0dQTChpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlKTtcbiYjNDM7XG4mIzQzO3ZvaWQgaW9tYXBfZm9saW9fY2xlYXJfdXB0b2RhdGUoc3RydWN0IGZvbGlvICpmb2xpbylcbiYjNDM7e1xuJiM0MztcdHN0cnVjdCBpb21hcF9mb2xpb19zdGF0ZSAqaWZzID0gZm9saW8tXHUwMDNlcHJpdmF0ZTtcbiYjNDM7XHR1bnNpZ25lZCBsb25nIGZsYWdzO1xuJiM0MztcbiYjNDM7XHRpZiAoIWZvbGlvX3Rlc3RfdXB0b2RhdGUoZm9saW8pKVxuJiM0MztcdFx0cmV0dXJuO1xuJiM0MztcbiYjNDM7XHRpZiAoaWZzKSB7XG4mIzQzO1x0XHRzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZm9saW8tXHUwMDNlbWFwcGluZy1cdTAwM2Vob3N0O1xuJiM0MztcdFx0dW5zaWduZWQgaW50IG5yX2Jsa3MgPSBpX2Jsb2Nrc19wZXJfZm9saW8oaW5vZGUsIGZvbGlvKTtcbiYjNDM7XG4mIzQzO1x0XHRzcGluX2xvY2tfaXJxc2F2ZShcdTAwMjZpZnMtXHUwMDNlc3RhdGVfbG9jaywgZmxhZ3MpO1xuJiM0MztcdFx0Yml0bWFwX2NsZWFyKGlmcy1cdTAwM2VzdGF0ZSwgMCwgbnJfYmxrcyk7XG4mIzQzO1x0XHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFx1MDAyNmlmcy1cdTAwM2VzdGF0ZV9sb2NrLCBmbGFncyk7XG4mIzQzO1x0fVxuJiM0MztcbiYjNDM7XHRmb2xpb19jbGVhcl91cHRvZGF0ZShmb2xpbyk7XG4mIzQzO31cbiYjNDM7RVhQT1JUX1NZTUJPTF9HUEwoaW9tYXBfZm9saW9fY2xlYXJfdXB0b2RhdGUpO1xuJiM0MztcbiAvKlxuICAqIEZpbmQgdGhlIG5leHQgZGlydHkgYmxvY2sgaW4gdGhlIGZvbGlvLiBlbmRfYmxrIGlzIGluY2x1c2l2ZS5cbiAgKiBJZiBubyBkaXJ0eSBibG9jayBpcyBmb3VuZCwgdGhpcyB3aWxsIHJldHVybiBlbmRfYmxrICYjNDM7IDEuXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pb21hcC5oIGIvaW5jbHVkZS9saW51eC9pb21hcC5oXG5pbmRleCAzNTgyZWQxZmUyMzYxMS4uZjEzYWU0MjVmNTUyOWIgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL2xpbnV4L2lvbWFwLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbGludXgvaW9tYXAuaFxuQEAgLTM2NSw2ICYjNDM7MzY1LDggQEAgc3RydWN0IGZvbGlvICppb21hcF9nZXRfZm9saW8oc3RydWN0IGlvbWFwX2l0ZXIgKml0ZXIsIGxvZmZfdCBwb3MsIHNpemVfdCBsZW4pO1xuIGJvb2wgaW9tYXBfcmVsZWFzZV9mb2xpbyhzdHJ1Y3QgZm9saW8gKmZvbGlvLCBnZnBfdCBnZnBfZmxhZ3MpO1xuIHZvaWQgaW9tYXBfaW52YWxpZGF0ZV9mb2xpbyhzdHJ1Y3QgZm9saW8gKmZvbGlvLCBzaXplX3Qgb2Zmc2V0LCBzaXplX3QgbGVuKTtcbiBib29sIGlvbWFwX2RpcnR5X2ZvbGlvKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCBzdHJ1Y3QgZm9saW8gKmZvbGlvKTtcbiYjNDM7dm9pZCBpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlKHN0cnVjdCBmb2xpbyAqZm9saW8pO1xuJiM0Mzt2b2lkIGlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlKHN0cnVjdCBmb2xpbyAqZm9saW8pO1xuIGludCBpb21hcF9maWxlX3Vuc2hhcmUoc3RydWN0IGlub2RlICppbm9kZSwgbG9mZl90IHBvcywgbG9mZl90IGxlbixcbiBcdFx0Y29uc3Qgc3RydWN0IGlvbWFwX29wcyAqb3BzLFxuIFx0XHRjb25zdCBzdHJ1Y3QgaW9tYXBfd3JpdGVfb3BzICp3cml0ZV9vcHMpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDIwOjQxPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0ZVU0VfRlMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtmdXNlX3NlbmRfd3JpdGVfcGFnZXMmIzM0OywKICAgICYjMzQ7ZnVzZV9maWxsX3dyaXRlX3BhZ2VzJiMzNDssCiAgICAmIzM0O2Z1c2Vfbm90aWZ5X3N0b3JlJiMzNDssCiAgICAmIzM0O2lvbWFwX2ZvbGlvX21hcmtfdXB0b2RhdGUmIzM0OywKICAgICYjMzQ7aW9tYXBfZm9saW9fY2xlYXJfdXB0b2RhdGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW50cm9kdWNlcyBuZXcgaW9tYXAgZm9saW8gdXB0b2RhdGUgbWFuYWdlbWVudCBmdW5jdGlvbnMgKGBpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlYCwgYGlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlYCkgYW5kIGludGVncmF0ZXMgdGhlbSBpbnRvIHRoZSBGVVNFIGZpbGVzeXN0ZW0mIzM5O3Mgd3JpdGUgYW5kIG5vdGlmeSBwYXRocy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgZmlsZXN5c3RlbSBhbmQgRlVTRSBsb2dpYyB0aGF0IGhhbmRsZXMgZm9saW8gc3RhdGUsIHdoaWNoIGNvdWxkIGxlYWQgdG8gZGF0YSBjb3JydXB0aW9uIG9yIGNyYXNoZXMgaWYgaW5jb3JyZWN0LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBjZjk5YjgxZDZmNGVkNmVhZTljMGM5NjQwOGUwODVjNDJjYzRlNTIwCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBKdW4gMjMgMjA6NDE6NTMgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9mcy9mdXNlL2ZpbGUuYyBiL2ZzL2Z1c2UvZmlsZS5jCmluZGV4IGUwNTJhMGQ0NGRlZTA2Li4xMmEyYWE2MDVmNmIzMSAxMDA2NDQKLS0tIGEvZnMvZnVzZS9maWxlLmMKJiM0MzsmIzQzOyYjNDM7IGIvZnMvZnVzZS9maWxlLmMKQEAgLTEyNTAsMTMgJiM0MzsxMjUwLDEzIEBAIHN0YXRpYyBzc2l6ZV90IGZ1c2Vfc2VuZF93cml0ZV9wYWdlcyhzdHJ1Y3QgZnVzZV9pb19hcmdzICppYSwKIAkJc3RydWN0IGZvbGlvICpmb2xpbyA9IGFwLSZndDtmb2xpb3NbaV07CiAKIAkJaWYgKGVycikgewotCQkJZm9saW9fY2xlYXJfdXB0b2RhdGUoZm9saW8pOwomIzQzOwkJCWlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlKGZvbGlvKTsKIAkJfSBlbHNlIHsKIAkJCWlmIChjb3VudCAmZ3Q7PSBmb2xpb19zaXplKGZvbGlvKSAtIG9mZnNldCkKIAkJCQljb3VudCAtPSBmb2xpb19zaXplKGZvbGlvKSAtIG9mZnNldDsKIAkJCWVsc2UgewogCQkJCWlmIChzaG9ydF93cml0ZSkKLQkJCQkJZm9saW9fY2xlYXJfdXB0b2RhdGUoZm9saW8pOwomIzQzOwkJCQkJaW9tYXBfZm9saW9fY2xlYXJfdXB0b2RhdGUoZm9saW8pOwogCQkJCWNvdW50ID0gMDsKIAkJCX0KIAkJCW9mZnNldCA9IDA7CkBAIC0xMzM1LDcgJiM0MzsxMzM1LDcgQEAgc3RhdGljIHNzaXplX3QgZnVzZV9maWxsX3dyaXRlX3BhZ2VzKHN0cnVjdCBmdXNlX2lvX2FyZ3MgKmlhLAogCiAJCS8qIElmIHdlIGNvcGllZCBmdWxsIGZvbGlvLCBtYXJrIGl0IHVwdG9kYXRlICovCiAJCWlmICh0bXAgPT0gZm9saW9fc2l6ZShmb2xpbykpCi0JCQlmb2xpb19tYXJrX3VwdG9kYXRlKGZvbGlvKTsKJiM0MzsJCQlpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlKGZvbGlvKTsKIAogCQlpZiAoZm9saW9fdGVzdF91cHRvZGF0ZShmb2xpbykpIHsKIAkJCWZvbGlvX3VubG9jayhmb2xpbyk7CmRpZmYgLS1naXQgYS9mcy9mdXNlL25vdGlmeS5jIGIvZnMvZnVzZS9ub3RpZnkuYwppbmRleCAyOTU3ODEwNGFlNmNkNi4uMWJhNzYzNzA1ZDkxMTkgMTAwNjQ0Ci0tLSBhL2ZzL2Z1c2Uvbm90aWZ5LmMKJiM0MzsmIzQzOyYjNDM7IGIvZnMvZnVzZS9ub3RpZnkuYwpAQCAtMiw2ICYjNDM7Miw4IEBACiAKICNpbmNsdWRlICYjMzQ7ZGV2LmgmIzM0OwogI2luY2x1ZGUgJiMzNDtmdXNlX2kuaCYjMzQ7CiYjNDM7CiYjNDM7I2luY2x1ZGUgJmx0O2xpbnV4L2lvbWFwLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bGludXgvcGFnZW1hcC5oJmd0OwogCiBzdGF0aWMgaW50IGZ1c2Vfbm90aWZ5X3BvbGwoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHVuc2lnbmVkIGludCBzaXplLApAQCAtMTkyLDcgJiM0MzsxOTQsNyBAQCBzdGF0aWMgaW50IGZ1c2Vfbm90aWZ5X3N0b3JlKHN0cnVjdCBmdXNlX2Nvbm4gKmZjLCB1bnNpZ25lZCBpbnQgc2l6ZSwKIAkJaWYgKCFmb2xpb190ZXN0X3VwdG9kYXRlKGZvbGlvKSAmYW1wOyZhbXA7ICFlcnIgJmFtcDsmYW1wOyBmb2xpb19vZmZzZXQgPT0gMCAmYW1wOyZhbXA7CiAJCSAgICAobnJfYnl0ZXMgPT0gZm9saW9fc2l6ZShmb2xpbykgfHwgZmlsZV9zaXplID09IGVuZCkpIHsKIAkJCWZvbGlvX3plcm9fc2VnbWVudChmb2xpbywgbnJfYnl0ZXMsIGZvbGlvX3NpemUoZm9saW8pKTsKLQkJCWZvbGlvX21hcmtfdXB0b2RhdGUoZm9saW8pOwomIzQzOwkJCWlvbWFwX2ZvbGlvX21hcmtfdXB0b2RhdGUoZm9saW8pOwogCQl9CiAJCWZvbGlvX3VubG9jayhmb2xpbyk7CiAJCWZvbGlvX3B1dChmb2xpbyk7CmRpZmYgLS1naXQgYS9mcy9pb21hcC9idWZmZXJlZC1pby5jIGIvZnMvaW9tYXAvYnVmZmVyZWQtaW8uYwppbmRleCA4ZDQ4MDZkYzQ2ZDQ2OC4uMzE3ZmE3YWY5OGJkMjMgMTAwNjQ0Ci0tLSBhL2ZzL2lvbWFwL2J1ZmZlcmVkLWlvLmMKJiM0MzsmIzQzOyYjNDM7IGIvZnMvaW9tYXAvYnVmZmVyZWQtaW8uYwpAQCAtMTA1LDYgJiM0MzsxMDUsMzMgQEAgc3RhdGljIHZvaWQgaW9tYXBfc2V0X3JhbmdlX3VwdG9kYXRlKHN0cnVjdCBmb2xpbyAqZm9saW8sIHNpemVfdCBvZmYsCiAJCWZvbGlvX21hcmtfdXB0b2RhdGUoZm9saW8pOwogfQogCiYjNDM7dm9pZCBpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlKHN0cnVjdCBmb2xpbyAqZm9saW8pCiYjNDM7ewomIzQzOwlpb21hcF9zZXRfcmFuZ2VfdXB0b2RhdGUoZm9saW8sIDAsIGZvbGlvX3NpemUoZm9saW8pKTsKJiM0Mzt9CiYjNDM7RVhQT1JUX1NZTUJPTF9HUEwoaW9tYXBfZm9saW9fbWFya191cHRvZGF0ZSk7CiYjNDM7CiYjNDM7dm9pZCBpb21hcF9mb2xpb19jbGVhcl91cHRvZGF0ZShzdHJ1Y3QgZm9saW8gKmZvbGlvKQomIzQzO3sKJiM0MzsJc3RydWN0IGlvbWFwX2ZvbGlvX3N0YXRlICppZnMgPSBmb2xpby0mZ3Q7cHJpdmF0ZTsKJiM0MzsJdW5zaWduZWQgbG9uZyBmbGFnczsKJiM0MzsKJiM0MzsJaWYgKCFmb2xpb190ZXN0X3VwdG9kYXRlKGZvbGlvKSkKJiM0MzsJCXJldHVybjsKJiM0MzsKJiM0MzsJaWYgKGlmcykgewomIzQzOwkJc3RydWN0IGlub2RlICppbm9kZSA9IGZvbGlvLSZndDttYXBwaW5nLSZndDtob3N0OwomIzQzOwkJdW5zaWduZWQgaW50IG5yX2Jsa3MgPSBpX2Jsb2Nrc19wZXJfZm9saW8oaW5vZGUsIGZvbGlvKTsKJiM0MzsKJiM0MzsJCXNwaW5fbG9ja19pcnFzYXZlKCZhbXA7aWZzLSZndDtzdGF0ZV9sb2NrLCBmbGFncyk7CiYjNDM7CQliaXRtYXBfY2xlYXIoaWZzLSZndDtzdGF0ZSwgMCwgbnJfYmxrcyk7CiYjNDM7CQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZhbXA7aWZzLSZndDtzdGF0ZV9sb2NrLCBmbGFncyk7CiYjNDM7CX0KJiM0MzsKJiM0MzsJZm9saW9fY2xlYXJfdXB0b2RhdGUoZm9saW8pOwomIzQzO30KJiM0MztFWFBPUlRfU1lNQk9MX0dQTChpb21hcF9mb2xpb19jbGVhcl91cHRvZGF0ZSk7CiYjNDM7CiAvKgogICogRmluZCB0aGUgbmV4dCBkaXJ0eSBibG9jayBpbiB0aGUgZm9saW8uIGVuZF9ibGsgaXMgaW5jbHVzaXZlLgogICogSWYgbm8gZGlydHkgYmxvY2sgaXMgZm91bmQsIHRoaXMgd2lsbCByZXR1cm4gZW5kX2JsayAmIzQzOyAxLgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pb21hcC5oIGIvaW5jbHVkZS9saW51eC9pb21hcC5oCmluZGV4IDM1ODJlZDFmZTIzNjExLi5mMTNhZTQyNWY1NTI5YiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9pb21hcC5oCiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbGludXgvaW9tYXAuaApAQCAtMzY1LDYgJiM0MzszNjUsOCBAQCBzdHJ1Y3QgZm9saW8gKmlvbWFwX2dldF9mb2xpbyhzdHJ1Y3QgaW9tYXBfaXRlciAqaXRlciwgbG9mZl90IHBvcywgc2l6ZV90IGxlbik7CiBib29sIGlvbWFwX3JlbGVhc2VfZm9saW8oc3RydWN0IGZvbGlvICpmb2xpbywgZ2ZwX3QgZ2ZwX2ZsYWdzKTsKIHZvaWQgaW9tYXBfaW52YWxpZGF0ZV9mb2xpbyhzdHJ1Y3QgZm9saW8gKmZvbGlvLCBzaXplX3Qgb2Zmc2V0LCBzaXplX3QgbGVuKTsKIGJvb2wgaW9tYXBfZGlydHlfZm9saW8oc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIHN0cnVjdCBmb2xpbyAqZm9saW8pOwomIzQzO3ZvaWQgaW9tYXBfZm9saW9fbWFya191cHRvZGF0ZShzdHJ1Y3QgZm9saW8gKmZvbGlvKTsKJiM0Mzt2b2lkIGlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlKHN0cnVjdCBmb2xpbyAqZm9saW8pOwogaW50IGlvbWFwX2ZpbGVfdW5zaGFyZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBsb2ZmX3QgcG9zLCBsb2ZmX3QgbGVuLAogCQljb25zdCBzdHJ1Y3QgaW9tYXBfb3BzICpvcHMsCiAJCWNvbnN0IHN0cnVjdCBpb21hcF93cml0ZV9vcHMgKndyaXRlX29wcyk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDIwOjQxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMxMjIKCQkJCQkJCW91dHB1dDogMzEKCQkJCQkJCXRob3VnaHRzOiAyMjYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRlVTRS9JT01BUCBGb2xpbyBVcHRvZGF0ZSBTdGF0ZSBVcGRhdGUgRnV6emluZyBQbGFuKioKCk9rYXksIHNvIHdlIGhhdmUgYSBwYXRjaCB0aGF0JiMzOTtzIGludHJvZHVjaW5nIGNoYW5nZXMgcmVsYXRlZCB0byBob3cgRlVTRSBpbnRlcmFjdHMgd2l0aCB0aGUgZm9saW8gdXB0b2RhdGUgc3RhdGUsIHNwZWNpZmljYWxseSB1c2luZyBgaW9tYXBfZm9saW9fbWFya191cHRvZGF0ZWAgYW5kIGBpb21hcF9mb2xpb19jbGVhcl91cHRvZGF0ZWAuIFRoZXNlIG5ldyBmdW5jdGlvbnMgYXJlIGluIGBmcy9pb21hcC9idWZmZXJlZC1pby5jYCBhbmQgYmVpbmcgdXNlZCBieSBgZnMvZnVzZS9maWxlLmNgIGFuZCBgZnMvZnVzZS9ub3RpZnkuY2AsIHNvIHdlJiMzOTtyZSB0YWxraW5nIGFib3V0IGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCByZXF1aXJlcyBjYXJlZnVsIGZ1enppbmcuIFRoaXMgaXMgYSBnb29kIG9wcG9ydHVuaXR5IHRvIHVuY292ZXIgcG90ZW50aWFsIGlzc3VlcyBpbiBob3cgRlVTRSBhbmQgSU9NQVAgaW50ZXJhY3QsIGVzcGVjaWFsbHkgYXJvdW5kIHRoZXNlIG5ldyBzdGF0ZSBtYW5hZ2VtZW50IHJvdXRpbmVzLgoKTXkgaW5pdGlhbCBmb2N1cyB3aWxsIGJlIG9uIHRoZSBjcml0aWNhbCBmdW5jdGlvbnMgZGlyZWN0bHkgaW1wYWN0ZWQ6IGBmdXNlX3NlbmRfd3JpdGVfcGFnZXNgLCBgZnVzZV9maWxsX3dyaXRlX3BhZ2VzYCwgYW5kIGBmdXNlX25vdGlmeV9zdG9yZWAuIFRoZXNlIGFyZSB0aGUgRlVTRS1zcGVjaWZpYyBlbnRyeSBwb2ludHMuIEJ1dCBvZiBjb3Vyc2UsIHRoZSBuZXcgSU9NQVAgZnVuY3Rpb25zIHRoZW1zZWx2ZXMgYXJlIGNydWNpYWw6IGBpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlYCBhbmQgYGlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlYCB3aGljaCB0aGlzIHBhdGNoIGludHJvZHVjZXMuIEkgbmVlZCB0byBtYWtlIHN1cmUgbXkgZnV6emluZyB0YXJnZXRzIGFsbCBvZiB0aGVzZS4KCk5leHQsIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhlIGtlcm5lbCBpcyBjb25maWd1cmVkIGNvcnJlY3RseSBmb3IgdGhpcyB3b3JrLiBXZSBoYXZlIGBDT05GSUdfRlVTRV9GU2AgZW5hYmxpbmcgRlVTRSwgYW5kIGBDT05GSUdfRlNfSU9NQVBgIGVuYWJsaW5nIElPTUFQLiBJJiMzOTtsbCB2ZXJpZnkgdGhhdCB0aGVzZSBvcHRpb25zIGFyZSBpbmRlZWQgZW5hYmxlZCBkdXJpbmcgbXkgZnV6emluZyBydW5zLiBJdCBpcyBpbXBvcnRhbnQgdG8ga25vdyBpZiB0aGVzZSBhcmUgZW5hYmxlZCwgZXNwZWNpYWxseSBpZiB0aGUgZnV6emluZyBnZW5lcmF0ZXMgYnVpbGRzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDIwOjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBGVVNFX0ZTJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZnMvZnVzZS9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL2Z1c2UvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuZnMvZnVzZS9LY29uZmlnOjI6Y29uZmlnIEZVU0VfRlNcbmZzL2Z1c2UvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7RlVTRSAoRmlsZXN5c3RlbSBpbiBVc2Vyc3BhY2UpIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMyAyMDo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzODAyCgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCBkZWxpdmVyZWQgYXMgYSBmaXJzdC1wZXJzb24gcGVyc3BlY3RpdmU6CgoqKk15IERlZXAgRGl2ZSBpbnRvIEZTX0lPTUFQKioKCkFscmlnaHQsIGxldCYjMzk7cyB1bnBhY2sgdGhpcyBGU19JT01BUCBzdHVmZi4gTXkgaW5pdGlhbCBpbXByZXNzaW9uIGlzIHRoYXQgdGhpcyBpcyBhIGNyaXRpY2FsIHBpZWNlLCBhIGZvdW5kYXRpb25hbCBlbGVtZW50IGluIG1vZGVybiBmaWxlIHN5c3RlbSBkZXNpZ24sIHBhcnRpY3VsYXJseSB3aGVuIGRlYWxpbmcgd2l0aCB0aGUgY2hhbGxlbmdlcyBvZiBkaXJlY3QgSS9PIGFuZCBjb25jdXJyZW50IGFjY2Vzcy4gSSBpbW1lZGlhdGVseSBzZWUgdGhlIGltcG9ydGFuY2Ugb2YgdW5kZXJzdGFuZGluZyBob3cgdGhpcyBzdHJ1Y3R1cmUsIG9yIHRoZSBzZXQgb2Ygc3RydWN0dXJlcywgZmFjaWxpdGF0ZXMgdGhlIG1hcHBpbmcgYmV0d2VlbiBsb2dpY2FsIGZpbGUgb2Zmc2V0cyBhbmQgdGhlIHBoeXNpY2FsIGJsb2NrcyBvbiBkaXNrLiBJdOKAmXMgdGhlIGxpbmNocGluLCBpc24mIzM5O3QgaXQ/IFdpdGhvdXQgYSByb2J1c3QgSU9NQVAsIGVmZmljaWVudGx5IG5hdmlnYXRpbmcgYW5kIG1hbmFnaW5nIHRoZSBjb21wbGV4aXRpZXMgb2YgZGF0YSBwbGFjZW1lbnQgYW5kIHJldHJpZXZhbCB3b3VsZCBiZSBhIG5pZ2h0bWFyZSwgZXNwZWNpYWxseSBjb25zaWRlcmluZyB0aGUgbmVlZCBmb3Igb3BlcmF0aW9ucyBsaWtlIHNwYXJzZSBmaWxlcywgaG9sZSBwdW5jaGluZywgYW5kIGJsb2NrIGFsbG9jYXRpb24uCgpJJiMzOTttIHRoaW5raW5nIGFib3V0IHRoZSB2YXJpb3VzIGltcGxlbWVudGF0aW9ucyBJJiMzOTt2ZSBlbmNvdW50ZXJlZCBhbmQgdGhlIHRyYWRlLW9mZnMgdGhleSByZXByZXNlbnQuIFRoZSBjaG9pY2Ugb2YgdGhlIElPTUFQIHN0cnVjdHVyZSBoYXMgcHJvZm91bmQgaW1wbGljYXRpb25zIG9uIHBlcmZvcm1hbmNlLiBDb25zaWRlciB0aGUgaW1wYWN0IG9uIG1ldGFkYXRhIG9wZXJhdGlvbnMsIHRoZSBvdmVyaGVhZCBvZiBsb29rdXBzLCBhbmQgdGhlIHBvdGVudGlhbCBmb3IgY29udGVudGlvbi4gRGlmZmVyZW50IHN0cmF0ZWdpZXMgYXJlIGdvaW5nIHRvIHNoaW5lIHVuZGVyIGRpZmZlcmVudCB3b3JrbG9hZHMuIFdlJiMzOTtyZSB0YWxraW5nIGFib3V0IHNvcGhpc3RpY2F0ZWQgYWxnb3JpdGhtcyB0aGF0IG5lZWQgdG8gaGFuZGxlIGNvbXBsZXggc2NlbmFyaW9zIGxpa2UgZXh0ZW5kaW5nIGFuZCB0cnVuY2F0aW5nIGZpbGVzLCBoYW5kbGluZyBmcmFnbWVudGVkIGRhdGEsIGFuZCBkZWFsaW5nIHdpdGggY29uY3VycmVudCBhY2Nlc3MgZnJvbSBtdWx0aXBsZSBwcm9jZXNzZXMuIFVuZGVyc3RhbmRpbmcgdGhlIGludHJpY2FjaWVzIG9mIGNhY2hpbmcgbWVjaGFuaXNtcyBoZXJlIGlzIGFsc28gY3JpdGljYWw7IGl04oCZcyBhbiBvcHRpbWl6YXRpb24gZ2FtZS4KCkkgYWxzbyBzZWUgaXRzIHJlbGV2YW5jZSBpbiBtb2Rlcm4gZmlsZSBzeXN0ZW1zIHRoYXQgc3VwcG9ydCBhZHZhbmNlZCBmZWF0dXJlcyBsaWtlIGNvcHktb24td3JpdGUsIHNuYXBzaG90cywgb3IgZXZlbiBkYXRhIGRlZHVwbGljYXRpb24uIEhvdyBkb2VzIHRoZSBJT01BUCBpbnRlcmFjdCB3aXRoIHRoZXNlIGZ1bmN0aW9uYWxpdGllcz8gRG9lcyBpdCBuZWVkIHRvIGJlIG1vZGlmaWVkIG9yIGV4dGVuZGVkIHRvIHN1cHBvcnQgdGhlbSBlZmZlY3RpdmVseT8gVGhlIHdheSBpdCBoYW5kbGVzIHRoZXNlIHRoaW5ncyBhcmUgZ29pbmcgdG8gYmUga2V5IHRvIGVmZmljaWVuY3kuCgpJ4oCZbSBwYXJ0aWN1bGFybHkgaW50ZXJlc3RlZCBpbiB0aGUgSU9NQVAmIzM5O3MgaW50ZXJhY3Rpb24gd2l0aCB0aGUgYmxvY2sgYWxsb2NhdG9yLiBIb3cgZG9lcyBpdCBlbnN1cmUgdGhhdCBkYXRhIGlzIHBsYWNlZCBpbiB0aGUgbW9zdCBlZmZpY2llbnQgbWFubmVyLCBjb25zaWRlcmluZyBmYWN0b3JzIGxpa2UgZGlzayBsYXlvdXQsIFJBSUQgY29uZmlndXJhdGlvbnMsIGFuZCBTU0Qgd2VhciBsZXZlbGluZz8gQXJlIHRoZXJlIHRlY2huaXF1ZXMgdG8gbWluaW1pemUgZnJhZ21lbnRhdGlvbiBvciBvcHRpbWl6ZSBmb3Igc2VxdWVudGlhbCBhY2Nlc3MgcGF0dGVybnM/IEFuZCB3aGF0IGFib3V0IHRoZSBpbXBhY3Qgb24gZXJyb3IgaGFuZGxpbmcgYW5kIGRhdGEgaW50ZWdyaXR5PyBXaGVuIGEgYmxvY2sgZ29lcyBiYWQsIGhvdyBkb2VzIHRoZSBJT01BUCBoZWxwIHRvIHJlY292ZXIgYW5kIGVuc3VyZSB0aGUgZmlsZSBzeXN0ZW0gcmVtYWlucyBjb25zaXN0ZW50PyBJIGltYWdpbmUgcm9idXN0IGpvdXJuYWxpbmcgb3IgdHJhbnNhY3Rpb24gbG9nZ2luZyBpcyBhIG11c3QgdG8ga2VlcCB0aGUgc3lzdGVtIGluIGEgY29uc2lzdGVudCBzdGF0ZS4KClVsdGltYXRlbHksIEkgdmlldyB0aGlzIGFzIGEgc29waGlzdGljYXRlZCwgZmluZWx5LXR1bmVkIGluc3RydW1lbnQuIEl0cyBkZXNpZ24gZGlyZWN0bHkgaW1wYWN0cyBvdmVyYWxsIGZpbGUgc3lzdGVtIHBlcmZvcm1hbmNlLCBzY2FsYWJpbGl0eSwgYW5kIHJlbGlhYmlsaXR5LiBNYXN0ZXJpbmcgaXQgaXMga2V5IHRvIGRlc2lnbmluZyBoaWdoLXBlcmZvcm1hbmNlIGFuZCByb2J1c3Qgc3RvcmFnZSBzb2x1dGlvbnMuIEl04oCZcyBhbiBhcmVhIHdoZXJlIGRlZXAgdW5kZXJzdGFuZGluZyBpcyBhbHdheXMgd29ydGggdGhlIGVmZm9ydC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMyAyMDo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBGU19JT01BUCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2ZzL2lvbWFwL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDIwOjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQzODUKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiAxNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBGU19JT01BUCBDb25maWd1cmF0aW9uIE9wdGlvbioqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZGl2ZSBpbi4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gZ28gc3RyYWlnaHQgdG8gdGhlIHNvdXJjZSDigJMgdGhlIGBmcy9LY29uZmlnYCBmaWxlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY3VycmVudCBzdGF0ZSBvZiBgRlNfSU9NQVBgLiBJIHdhbnQgdG8ga25vdyB3aGVyZSBpdCYjMzk7cyBkZWZpbmVkLCB3aGF0IGRlcGVuZGVuY2llcyBpdCBtaWdodCBoYXZlLCB3aGF0IHRoZSBkZWZhdWx0IHNldHRpbmcgaXMsIGFuZCB3aGF0IHRoZSBhc3NvY2lhdGVkIGhlbHAgdGV4dCBzYXlzLiBVbmRlcnN0YW5kaW5nIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgaXMgcGFyYW1vdW50LiBJIG5lZWQgdG8gYmUgc3VyZSBhYm91dCBpdHMgaW1wbGljYXRpb25zIGFuZCB3aGF0IG90aGVyIGZlYXR1cmVzIGFyZSB0aWVkIHRvIHRoaXMgb25lLiBUaGlzIEtjb25maWcgZmlsZSB3aWxsIGJlIHRoZSBzdGFydGluZyBwb2ludCB0byB1bmRlcnN0YW5kIHRoZSB3aWRlciBzeXN0ZW0mIzM5O3MgY29uZmlndXJhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMyAyMDo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgRlNfSU9NQVAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL0tjb25maWc9MTI9Y29uZmlnIFZBTElEQVRFX0ZTX1BBUlNFUlxuLS1cbmZzL0tjb25maWctMTctXG5mcy9LY29uZmlnOjE4OmNvbmZpZyBGU19JT01BUFxuZnMvS2NvbmZpZy0xOS1cdGJvb2xcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMyAyMDo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NjQ0CgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogMzUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKkludmVzdGlnYXRpbmcgRlNfSU9NQVAgYW5kIEZVU0UgQ29tcGF0aWJpbGl0eSoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZGl2ZSBpbi4gSSBrbm93IGBGU19JT01BUGAgaXMgYSBib29sZWFuIGNvbmZpZywgYW5kIEkmIzM5O20gcHJldHR5IGZhbWlsaWFyIHdpdGggaG93IGl0JiMzOTtzIHR5cGljYWxseSB1c2VkIGFuZCBzZWxlY3RlZCBieSBvdGhlciBmaWxlc3lzdGVtcy4gQnV0IEkmIzM5O20gY3VyaW91cyBhYm91dCB0aGUgc3BlY2lmaWMgaW50ZXJhY3Rpb24gd2l0aCBGVVNFLiBTbywgSSBuZWVkIHRvIGNoZWNrIHNvbWV0aGluZyDigJMgaXMgYEZTX0lPTUFQYCBhY3R1YWxseSBlbmFibGVkIGJ5IGRlZmF1bHQgd2l0aGluIEZVU0UgaXRzZWxmPyBPciBpcyBpdCBzaW1wbHkgYXZhaWxhYmxlIGFzIGFuIG9wdGlvbiB0aGF0IEZVU0UgKmNvdWxkKiBsZXZlcmFnZSBpZiBjb25maWd1cmVkIGVsc2V3aGVyZT8gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hldGhlciBGVVNFIHByb2FjdGl2ZWx5IHV0aWxpemVzIGl0LCBvciBpZiBpdCYjMzk7cyBwYXNzaXZlLCBlc3NlbnRpYWxseSBqdXN0IHByb3ZpZGluZyB0aGUgaG9va3MgaWYgdGhlIHVuZGVybHlpbmcgc3RvcmFnZSBsYXllciBvciBhIGhpZ2hlci1sZXZlbCBtb2R1bGUgY2hvb3NlcyB0byB1c2UgaXQuIFRoYXQmIzM5O3MgdGhlIGtleSBxdWVzdGlvbiBJIG5lZWQgdG8gYW5zd2VyIHJpZ2h0IG5vdy4gS25vd2luZyB0aGUgcmVsYXRpb25zaGlwIGhlcmUgd2lsbCBoZWxwIG1lIHVuZGVyc3RhbmQgaG93IEZVU0UgaW50ZXJhY3RzIHdpdGggSS9PIGFuZCBwb3RlbnRpYWwgb3B0aW1pemF0aW9uIHN0cmF0ZWdpZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDIwOjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NlbGVjdCBGU19JT01BUCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2ZzL2Z1c2UvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtmcy9mdXNlL0tjb25maWc9Mj1jb25maWcgRlVTRV9GU1xuLS1cbmZzL2Z1c2UvS2NvbmZpZy00LVx0c2VsZWN0IEZTX1BPU0lYX0FDTFxuZnMvZnVzZS9LY29uZmlnOjU6XHRzZWxlY3QgRlNfSU9NQVBcbmZzL2Z1c2UvS2NvbmZpZy02LVx0aGVscFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMyAyMDo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0OTk3CgkJCQkJCQlvdXRwdXQ6IDE3NAoJCQkJCQkJdGhvdWdodHM6IDQ4MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEZVU0UgRmlsZXN5c3RlbSBDaGFuZ2UgZm9yIFBvdGVudGlhbCBJc3N1ZXMqKgoKT2theSwgc28gRlVTRV9GUyBpcyB0aGUga2V5IGNvbmZpZyBoZXJlLCBhcyBpdCBzZWxlY3RzIEZTX0lPTUFQLCBtZWFuaW5nIHdlIGFyZSBzcGVjaWZpY2FsbHkgZGVhbGluZyB3aXRoIEZVU0UmIzM5O3MgaW50ZXJhY3Rpb24gd2l0aCB0aGUgSS9PIG1hcHBpbmcgc3lzdGVtLiBNeSBmb2N1cyBuZWVkcyB0byBiZSBvbiB0aGVzZSBmdW5jdGlvbnM6IGBmdXNlX3NlbmRfd3JpdGVfcGFnZXNgLCBgZnVzZV9maWxsX3dyaXRlX3BhZ2VzYCwgYGZ1c2Vfbm90aWZ5X3N0b3JlYCwgYGlvbWFwX2ZvbGlvX21hcmtfdXB0b2RhdGVgLCBhbmQgYGlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlYC4KCkZpcnN0LCBsZXQmIzM5O3MgZXN0YWJsaXNoIGNvbnRleHQuIGBmdXNlX3NlbmRfd3JpdGVfcGFnZXNgIGlzIGRlZmluaXRlbHkgcGFydCBvZiB0aGUgRlVTRSB3cml0ZSBwYXRoLCBzbyBpdCYjMzk7cyBsaWtlbHkgYSBob3QgcGF0aCwgdGhvdWdoIHNwZWNpZmljIHRvIEZVU0Ugd3JpdGVzLiBgZnVzZV9ub3RpZnlfc3RvcmVgIGlzIGFsc28gRlVTRS1zcGVjaWZpYy4gVGhlIGBpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlYCBhbmQgYGlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlYCBmdW5jdGlvbnMgYXJlICpuZXcqLCBhbmQgdGhlcmVmb3JlIGluaGVyZW50bHkgaW50ZXJlc3RpbmcgZnJvbSBhIGZ1enppbmcgcGVyc3BlY3RpdmUsIGVzcGVjaWFsbHkgZ2l2ZW4gdGhlIHBvdGVudGlhbCBmb3Igb2ZmLWJ5LW9uZSBlcnJvcnMgb3IgaW5jb3JyZWN0IHN0YXRlIG1hbmFnZW1lbnQuCgpUaGUgcmVhc29uaW5nIGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQ6IHRoaXMgcGF0Y2ggaW50ZWdyYXRlcyBuZXcgZm9saW8gdXB0b2RhdGUgbWFuYWdlbWVudCBmdW5jdGlvbnMgKGBpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlYCwgYGlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlYCkgd2l0aGluIHRoZSBGVVNFIHdyaXRlIGFuZCBub3RpZnkgcGF0aHMsIHdoaWNoIGludm9sdmUgY29yZSBmaWxlc3lzdGVtIGxvZ2ljIGFuZCBGVVNFLiBJbmNvcnJlY3QgaGFuZGxpbmcgb2YgZm9saW8gc3RhdGUgaXMgYSBjbGFzc2ljIHNvdXJjZSBvZiBkYXRhIGNvcnJ1cHRpb24gb3IgY3Jhc2hlcywgc28gSSBuZWVkIHRvIHNlZSB0aGlzIGNsZWFybHkuCgpHaXZlbiB0aGF0IGBmdXNlX2ZpbGxfd3JpdGVfcGFnZXNgIGFuZCBgZnVzZV9zZW5kX3dyaXRlX3BhZ2VzYCBhcmUgcGFydCBvZiB0aGUgRlVTRSB3cml0ZSBwYXRoLCB0aGlzIHBhdGNoIGlzIGludHJvZHVjaW5nIGEgY2hhbmdlIGluIHByZWNpc2VseSB0aGUgbG9naWMgd2hlcmUgaXQmIzM5O3MgbW9zdCBpbXBvcnRhbnQgdG8gdGVzdC4gYGZ1c2Vfbm90aWZ5X3N0b3JlYCBpcyBhbHNvIHNwZWNpZmljIHRvIEZVU0UgYW5kIGEgZ29vZCB0YXJnZXQsIGJ1dCBzaW5jZSB0aGUgbmV3IGZ1bmN0aW9ucyBhcmUgbmV3LCB0aGV5IGFyZSBoaWdoIHByaW9yaXR5IGZvciBhIHF1aWNrIGZ1enogdG8gc2VlIGlmIHRoZXkmIzM5O3JlIGhhbmRsZWQgY29ycmVjdGx5LgoKSSYjMzk7bSB0aGlua2luZyBJJiMzOTtsbCB1c2UgYHNldC1yZXN1bHRzYCBoZXJlIHRvIGdldCB0aGlzIGRvbmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDIwOjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtGVVNFX0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZnVzZV9zZW5kX3dyaXRlX3BhZ2VzJiMzNDssCiAgICAmIzM0O2Z1c2VfZmlsbF93cml0ZV9wYWdlcyYjMzQ7LAogICAgJiMzNDtmdXNlX25vdGlmeV9zdG9yZSYjMzQ7LAogICAgJiMzNDtpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlJiMzNDssCiAgICAmIzM0O2lvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGludHJvZHVjZXMgbmV3IGlvbWFwIGZvbGlvIHVwdG9kYXRlIG1hbmFnZW1lbnQgZnVuY3Rpb25zIChgaW9tYXBfZm9saW9fbWFya191cHRvZGF0ZWAsIGBpb21hcF9mb2xpb19jbGVhcl91cHRvZGF0ZWApIGFuZCBpbnRlZ3JhdGVzIHRoZW0gaW50byB0aGUgRlVTRSBmaWxlc3lzdGVtJiMzOTtzIHdyaXRlIGFuZCBub3RpZnkgcGF0aHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIGZpbGVzeXN0ZW0gYW5kIEZVU0UgbG9naWMgdGhhdCBoYW5kbGVzIGZvbGlvIHN0YXRlLCB3aGljaCBjb3VsZCBsZWFkIHRvIGRhdGEgY29ycnVwdGlvbiBvciBjcmFzaGVzIGlmIGluY29ycmVjdC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7RlVTRV9GUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2Z1c2Vfc2VuZF93cml0ZV9wYWdlcyYjMzQ7LAogICAgJiMzNDtmdXNlX2ZpbGxfd3JpdGVfcGFnZXMmIzM0OywKICAgICYjMzQ7ZnVzZV9ub3RpZnlfc3RvcmUmIzM0OywKICAgICYjMzQ7aW9tYXBfZm9saW9fbWFya191cHRvZGF0ZSYjMzQ7LAogICAgJiMzNDtpb21hcF9mb2xpb19jbGVhcl91cHRvZGF0ZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBpb21hcCBmb2xpbyB1cHRvZGF0ZSBtYW5hZ2VtZW50IGZ1bmN0aW9ucyAoYGlvbWFwX2ZvbGlvX21hcmtfdXB0b2RhdGVgLCBgaW9tYXBfZm9saW9fY2xlYXJfdXB0b2RhdGVgKSBhbmQgaW50ZWdyYXRlcyB0aGVtIGludG8gdGhlIEZVU0UgZmlsZXN5c3RlbSYjMzk7cyB3cml0ZSBhbmQgbm90aWZ5IHBhdGhzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBmaWxlc3lzdGVtIGFuZCBGVVNFIGxvZ2ljIHRoYXQgaGFuZGxlcyBmb2xpbyBzdGF0ZSwgd2hpY2ggY291bGQgbGVhZCB0byBkYXRhIGNvcnJ1cHRpb24gb3IgY3Jhc2hlcyBpZiBpbmNvcnJlY3QuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNi0yM1QyMDo0MTo1NC41NjI3MzkxNjRaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNjg1ODAxOTA2NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJGVVNFX0ZTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZnVzZV9zZW5kX3dyaXRlX3BhZ2VzXCIsXG4gICAgXCJmdXNlX2ZpbGxfd3JpdGVfcGFnZXNcIixcbiAgICBcImZ1c2Vfbm90aWZ5X3N0b3JlXCIsXG4gICAgXCJpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlXCIsXG4gICAgXCJpb21hcF9mb2xpb19jbGVhcl91cHRvZGF0ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgbmV3IGlvbWFwIGZvbGlvIHVwdG9kYXRlIG1hbmFnZW1lbnQgZnVuY3Rpb25zIChgaW9tYXBfZm9saW9fbWFya191cHRvZGF0ZWAsIGBpb21hcF9mb2xpb19jbGVhcl91cHRvZGF0ZWApIGFuZCBpbnRlZ3JhdGVzIHRoZW0gaW50byB0aGUgRlVTRSBmaWxlc3lzdGVtJ3Mgd3JpdGUgYW5kIG5vdGlmeSBwYXRocy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgZmlsZXN5c3RlbSBhbmQgRlVTRSBsb2dpYyB0aGF0IGhhbmRsZXMgZm9saW8gc3RhdGUsIHdoaWNoIGNvdWxkIGxlYWQgdG8gZGF0YSBjb3JydXB0aW9uIG9yIGNyYXNoZXMgaWYgaW5jb3JyZWN0LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QyMDo0MTo1NC41NjI3NDM2ODRaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUzNDYwODI1OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGNmOTliODFkNmY0ZWQ2ZWFlOWMwYzk2NDA4ZTA4NWM0MmNjNGU1MjBcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBKdW4gMjMgMjA6NDE6NTMgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZnMvZnVzZS9maWxlLmMgYi9mcy9mdXNlL2ZpbGUuY1xcbmluZGV4IGUwNTJhMGQ0NGRlZTA2Li4xMmEyYWE2MDVmNmIzMSAxMDA2NDRcXG4tLS0gYS9mcy9mdXNlL2ZpbGUuY1xcbisrKyBiL2ZzL2Z1c2UvZmlsZS5jXFxuQEAgLTEyNTAsMTMgKzEyNTAsMTMgQEAgc3RhdGljIHNzaXplX3QgZnVzZV9zZW5kX3dyaXRlX3BhZ2VzKHN0cnVjdCBmdXNlX2lvX2FyZ3MgKmlhLFxcbiBcXHRcXHRzdHJ1Y3QgZm9saW8gKmZvbGlvID0gYXAtXFx1MDAzZWZvbGlvc1tpXTtcXG4gXFxuIFxcdFxcdGlmIChlcnIpIHtcXG4tXFx0XFx0XFx0Zm9saW9fY2xlYXJfdXB0b2RhdGUoZm9saW8pO1xcbitcXHRcXHRcXHRpb21hcF9mb2xpb19jbGVhcl91cHRvZGF0ZShmb2xpbyk7XFxuIFxcdFxcdH0gZWxzZSB7XFxuIFxcdFxcdFxcdGlmIChjb3VudCBcXHUwMDNlPSBmb2xpb19zaXplKGZvbGlvKSAtIG9mZnNldClcXG4gXFx0XFx0XFx0XFx0Y291bnQgLT0gZm9saW9fc2l6ZShmb2xpbykgLSBvZmZzZXQ7XFxuIFxcdFxcdFxcdGVsc2Uge1xcbiBcXHRcXHRcXHRcXHRpZiAoc2hvcnRfd3JpdGUpXFxuLVxcdFxcdFxcdFxcdFxcdGZvbGlvX2NsZWFyX3VwdG9kYXRlKGZvbGlvKTtcXG4rXFx0XFx0XFx0XFx0XFx0aW9tYXBfZm9saW9fY2xlYXJfdXB0b2RhdGUoZm9saW8pO1xcbiBcXHRcXHRcXHRcXHRjb3VudCA9IDA7XFxuIFxcdFxcdFxcdH1cXG4gXFx0XFx0XFx0b2Zmc2V0ID0gMDtcXG5AQCAtMTMzNSw3ICsxMzM1LDcgQEAgc3RhdGljIHNzaXplX3QgZnVzZV9maWxsX3dyaXRlX3BhZ2VzKHN0cnVjdCBmdXNlX2lvX2FyZ3MgKmlhLFxcbiBcXG4gXFx0XFx0LyogSWYgd2UgY29waWVkIGZ1bGwgZm9saW8sIG1hcmsgaXQgdXB0b2RhdGUgKi9cXG4gXFx0XFx0aWYgKHRtcCA9PSBmb2xpb19zaXplKGZvbGlvKSlcXG4tXFx0XFx0XFx0Zm9saW9fbWFya191cHRvZGF0ZShmb2xpbyk7XFxuK1xcdFxcdFxcdGlvbWFwX2ZvbGlvX21hcmtfdXB0b2RhdGUoZm9saW8pO1xcbiBcXG4gXFx0XFx0aWYgKGZvbGlvX3Rlc3RfdXB0b2RhdGUoZm9saW8pKSB7XFxuIFxcdFxcdFxcdGZvbGlvX3VubG9jayhmb2xpbyk7XFxuZGlmZiAtLWdpdCBhL2ZzL2Z1c2Uvbm90aWZ5LmMgYi9mcy9mdXNlL25vdGlmeS5jXFxuaW5kZXggMjk1NzgxMDRhZTZjZDYuLjFiYTc2MzcwNWQ5MTE5IDEwMDY0NFxcbi0tLSBhL2ZzL2Z1c2Uvbm90aWZ5LmNcXG4rKysgYi9mcy9mdXNlL25vdGlmeS5jXFxuQEAgLTIsNiArMiw4IEBAXFxuIFxcbiAjaW5jbHVkZSBcXFwiZGV2LmhcXFwiXFxuICNpbmNsdWRlIFxcXCJmdXNlX2kuaFxcXCJcXG4rXFxuKyNpbmNsdWRlIFxcdTAwM2NsaW51eC9pb21hcC5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvcGFnZW1hcC5oXFx1MDAzZVxcbiBcXG4gc3RhdGljIGludCBmdXNlX25vdGlmeV9wb2xsKHN0cnVjdCBmdXNlX2Nvbm4gKmZjLCB1bnNpZ25lZCBpbnQgc2l6ZSxcXG5AQCAtMTkyLDcgKzE5NCw3IEBAIHN0YXRpYyBpbnQgZnVzZV9ub3RpZnlfc3RvcmUoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHVuc2lnbmVkIGludCBzaXplLFxcbiBcXHRcXHRpZiAoIWZvbGlvX3Rlc3RfdXB0b2RhdGUoZm9saW8pIFxcdTAwMjZcXHUwMDI2ICFlcnIgXFx1MDAyNlxcdTAwMjYgZm9saW9fb2Zmc2V0ID09IDAgXFx1MDAyNlxcdTAwMjZcXG4gXFx0XFx0ICAgIChucl9ieXRlcyA9PSBmb2xpb19zaXplKGZvbGlvKSB8fCBmaWxlX3NpemUgPT0gZW5kKSkge1xcbiBcXHRcXHRcXHRmb2xpb196ZXJvX3NlZ21lbnQoZm9saW8sIG5yX2J5dGVzLCBmb2xpb19zaXplKGZvbGlvKSk7XFxuLVxcdFxcdFxcdGZvbGlvX21hcmtfdXB0b2RhdGUoZm9saW8pO1xcbitcXHRcXHRcXHRpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlKGZvbGlvKTtcXG4gXFx0XFx0fVxcbiBcXHRcXHRmb2xpb191bmxvY2soZm9saW8pO1xcbiBcXHRcXHRmb2xpb19wdXQoZm9saW8pO1xcbmRpZmYgLS1naXQgYS9mcy9pb21hcC9idWZmZXJlZC1pby5jIGIvZnMvaW9tYXAvYnVmZmVyZWQtaW8uY1xcbmluZGV4IDhkNDgwNmRjNDZkNDY4Li4zMTdmYTdhZjk4YmQyMyAxMDA2NDRcXG4tLS0gYS9mcy9pb21hcC9idWZmZXJlZC1pby5jXFxuKysrIGIvZnMvaW9tYXAvYnVmZmVyZWQtaW8uY1xcbkBAIC0xMDUsNiArMTA1LDMzIEBAIHN0YXRpYyB2b2lkIGlvbWFwX3NldF9yYW5nZV91cHRvZGF0ZShzdHJ1Y3QgZm9saW8gKmZvbGlvLCBzaXplX3Qgb2ZmLFxcbiBcXHRcXHRmb2xpb19tYXJrX3VwdG9kYXRlKGZvbGlvKTtcXG4gfVxcbiBcXG4rdm9pZCBpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlKHN0cnVjdCBmb2xpbyAqZm9saW8pXFxuK3tcXG4rXFx0aW9tYXBfc2V0X3JhbmdlX3VwdG9kYXRlKGZvbGlvLCAwLCBmb2xpb19zaXplKGZvbGlvKSk7XFxuK31cXG4rRVhQT1JUX1NZTUJPTF9HUEwoaW9tYXBfZm9saW9fbWFya191cHRvZGF0ZSk7XFxuK1xcbit2b2lkIGlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlKHN0cnVjdCBmb2xpbyAqZm9saW8pXFxuK3tcXG4rXFx0c3RydWN0IGlvbWFwX2ZvbGlvX3N0YXRlICppZnMgPSBmb2xpby1cXHUwMDNlcHJpdmF0ZTtcXG4rXFx0dW5zaWduZWQgbG9uZyBmbGFncztcXG4rXFxuK1xcdGlmICghZm9saW9fdGVzdF91cHRvZGF0ZShmb2xpbykpXFxuK1xcdFxcdHJldHVybjtcXG4rXFxuK1xcdGlmIChpZnMpIHtcXG4rXFx0XFx0c3RydWN0IGlub2RlICppbm9kZSA9IGZvbGlvLVxcdTAwM2VtYXBwaW5nLVxcdTAwM2Vob3N0O1xcbitcXHRcXHR1bnNpZ25lZCBpbnQgbnJfYmxrcyA9IGlfYmxvY2tzX3Blcl9mb2xpbyhpbm9kZSwgZm9saW8pO1xcbitcXG4rXFx0XFx0c3Bpbl9sb2NrX2lycXNhdmUoXFx1MDAyNmlmcy1cXHUwMDNlc3RhdGVfbG9jaywgZmxhZ3MpO1xcbitcXHRcXHRiaXRtYXBfY2xlYXIoaWZzLVxcdTAwM2VzdGF0ZSwgMCwgbnJfYmxrcyk7XFxuK1xcdFxcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXFx1MDAyNmlmcy1cXHUwMDNlc3RhdGVfbG9jaywgZmxhZ3MpO1xcbitcXHR9XFxuK1xcbitcXHRmb2xpb19jbGVhcl91cHRvZGF0ZShmb2xpbyk7XFxuK31cXG4rRVhQT1JUX1NZTUJPTF9HUEwoaW9tYXBfZm9saW9fY2xlYXJfdXB0b2RhdGUpO1xcbitcXG4gLypcXG4gICogRmluZCB0aGUgbmV4dCBkaXJ0eSBibG9jayBpbiB0aGUgZm9saW8uIGVuZF9ibGsgaXMgaW5jbHVzaXZlLlxcbiAgKiBJZiBubyBkaXJ0eSBibG9jayBpcyBmb3VuZCwgdGhpcyB3aWxsIHJldHVybiBlbmRfYmxrICsgMS5cXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pb21hcC5oIGIvaW5jbHVkZS9saW51eC9pb21hcC5oXFxuaW5kZXggMzU4MmVkMWZlMjM2MTEuLmYxM2FlNDI1ZjU1MjliIDEwMDY0NFxcbi0tLSBhL2luY2x1ZGUvbGludXgvaW9tYXAuaFxcbisrKyBiL2luY2x1ZGUvbGludXgvaW9tYXAuaFxcbkBAIC0zNjUsNiArMzY1LDggQEAgc3RydWN0IGZvbGlvICppb21hcF9nZXRfZm9saW8oc3RydWN0IGlvbWFwX2l0ZXIgKml0ZXIsIGxvZmZfdCBwb3MsIHNpemVfdCBsZW4pO1xcbiBib29sIGlvbWFwX3JlbGVhc2VfZm9saW8oc3RydWN0IGZvbGlvICpmb2xpbywgZ2ZwX3QgZ2ZwX2ZsYWdzKTtcXG4gdm9pZCBpb21hcF9pbnZhbGlkYXRlX2ZvbGlvKHN0cnVjdCBmb2xpbyAqZm9saW8sIHNpemVfdCBvZmZzZXQsIHNpemVfdCBsZW4pO1xcbiBib29sIGlvbWFwX2RpcnR5X2ZvbGlvKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCBzdHJ1Y3QgZm9saW8gKmZvbGlvKTtcXG4rdm9pZCBpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlKHN0cnVjdCBmb2xpbyAqZm9saW8pO1xcbit2b2lkIGlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlKHN0cnVjdCBmb2xpbyAqZm9saW8pO1xcbiBpbnQgaW9tYXBfZmlsZV91bnNoYXJlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGxvZmZfdCBwb3MsIGxvZmZfdCBsZW4sXFxuIFxcdFxcdGNvbnN0IHN0cnVjdCBpb21hcF9vcHMgKm9wcyxcXG4gXFx0XFx0Y29uc3Qgc3RydWN0IGlvbWFwX3dyaXRlX29wcyAqd3JpdGVfb3BzKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjNUMjA6NDE6NTUuMDk4MjA5MTUzWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNjMyMjUzOTY2OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJGVVNFX0ZTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZnVzZV9zZW5kX3dyaXRlX3BhZ2VzXCIsXG4gICAgXCJmdXNlX2ZpbGxfd3JpdGVfcGFnZXNcIixcbiAgICBcImZ1c2Vfbm90aWZ5X3N0b3JlXCIsXG4gICAgXCJpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlXCIsXG4gICAgXCJpb21hcF9mb2xpb19jbGVhcl91cHRvZGF0ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgbmV3IGlvbWFwIGZvbGlvIHVwdG9kYXRlIG1hbmFnZW1lbnQgZnVuY3Rpb25zIChgaW9tYXBfZm9saW9fbWFya191cHRvZGF0ZWAsIGBpb21hcF9mb2xpb19jbGVhcl91cHRvZGF0ZWApIGFuZCBpbnRlZ3JhdGVzIHRoZW0gaW50byB0aGUgRlVTRSBmaWxlc3lzdGVtJ3Mgd3JpdGUgYW5kIG5vdGlmeSBwYXRocy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgZmlsZXN5c3RlbSBhbmQgRlVTRSBsb2dpYyB0aGF0IGhhbmRsZXMgZm9saW8gc3RhdGUsIHdoaWNoIGNvdWxkIGxlYWQgdG8gZGF0YSBjb3JydXB0aW9uIG9yIGNyYXNoZXMgaWYgaW5jb3JyZWN0LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGNmOTliODFkNmY0ZWQ2ZWFlOWMwYzk2NDA4ZTA4NWM0MmNjNGU1MjBcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1biAyMyAyMDo0MTo1MyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2ZzL2Z1c2UvZmlsZS5jIGIvZnMvZnVzZS9maWxlLmNcbmluZGV4IGUwNTJhMGQ0NGRlZTA2Li4xMmEyYWE2MDVmNmIzMSAxMDA2NDRcbi0tLSBhL2ZzL2Z1c2UvZmlsZS5jXG4rKysgYi9mcy9mdXNlL2ZpbGUuY1xuQEAgLTEyNTAsMTMgKzEyNTAsMTMgQEAgc3RhdGljIHNzaXplX3QgZnVzZV9zZW5kX3dyaXRlX3BhZ2VzKHN0cnVjdCBmdXNlX2lvX2FyZ3MgKmlhLFxuIFx0XHRzdHJ1Y3QgZm9saW8gKmZvbGlvID0gYXAtXHUwMDNlZm9saW9zW2ldO1xuIFxuIFx0XHRpZiAoZXJyKSB7XG4tXHRcdFx0Zm9saW9fY2xlYXJfdXB0b2RhdGUoZm9saW8pO1xuK1x0XHRcdGlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlKGZvbGlvKTtcbiBcdFx0fSBlbHNlIHtcbiBcdFx0XHRpZiAoY291bnQgXHUwMDNlPSBmb2xpb19zaXplKGZvbGlvKSAtIG9mZnNldClcbiBcdFx0XHRcdGNvdW50IC09IGZvbGlvX3NpemUoZm9saW8pIC0gb2Zmc2V0O1xuIFx0XHRcdGVsc2Uge1xuIFx0XHRcdFx0aWYgKHNob3J0X3dyaXRlKVxuLVx0XHRcdFx0XHRmb2xpb19jbGVhcl91cHRvZGF0ZShmb2xpbyk7XG4rXHRcdFx0XHRcdGlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlKGZvbGlvKTtcbiBcdFx0XHRcdGNvdW50ID0gMDtcbiBcdFx0XHR9XG4gXHRcdFx0b2Zmc2V0ID0gMDtcbkBAIC0xMzM1LDcgKzEzMzUsNyBAQCBzdGF0aWMgc3NpemVfdCBmdXNlX2ZpbGxfd3JpdGVfcGFnZXMoc3RydWN0IGZ1c2VfaW9fYXJncyAqaWEsXG4gXG4gXHRcdC8qIElmIHdlIGNvcGllZCBmdWxsIGZvbGlvLCBtYXJrIGl0IHVwdG9kYXRlICovXG4gXHRcdGlmICh0bXAgPT0gZm9saW9fc2l6ZShmb2xpbykpXG4tXHRcdFx0Zm9saW9fbWFya191cHRvZGF0ZShmb2xpbyk7XG4rXHRcdFx0aW9tYXBfZm9saW9fbWFya191cHRvZGF0ZShmb2xpbyk7XG4gXG4gXHRcdGlmIChmb2xpb190ZXN0X3VwdG9kYXRlKGZvbGlvKSkge1xuIFx0XHRcdGZvbGlvX3VubG9jayhmb2xpbyk7XG5kaWZmIC0tZ2l0IGEvZnMvZnVzZS9ub3RpZnkuYyBiL2ZzL2Z1c2Uvbm90aWZ5LmNcbmluZGV4IDI5NTc4MTA0YWU2Y2Q2Li4xYmE3NjM3MDVkOTExOSAxMDA2NDRcbi0tLSBhL2ZzL2Z1c2Uvbm90aWZ5LmNcbisrKyBiL2ZzL2Z1c2Uvbm90aWZ5LmNcbkBAIC0yLDYgKzIsOCBAQFxuIFxuICNpbmNsdWRlIFwiZGV2LmhcIlxuICNpbmNsdWRlIFwiZnVzZV9pLmhcIlxuK1xuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L2lvbWFwLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9wYWdlbWFwLmhcdTAwM2VcbiBcbiBzdGF0aWMgaW50IGZ1c2Vfbm90aWZ5X3BvbGwoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHVuc2lnbmVkIGludCBzaXplLFxuQEAgLTE5Miw3ICsxOTQsNyBAQCBzdGF0aWMgaW50IGZ1c2Vfbm90aWZ5X3N0b3JlKHN0cnVjdCBmdXNlX2Nvbm4gKmZjLCB1bnNpZ25lZCBpbnQgc2l6ZSxcbiBcdFx0aWYgKCFmb2xpb190ZXN0X3VwdG9kYXRlKGZvbGlvKSBcdTAwMjZcdTAwMjYgIWVyciBcdTAwMjZcdTAwMjYgZm9saW9fb2Zmc2V0ID09IDAgXHUwMDI2XHUwMDI2XG4gXHRcdCAgICAobnJfYnl0ZXMgPT0gZm9saW9fc2l6ZShmb2xpbykgfHwgZmlsZV9zaXplID09IGVuZCkpIHtcbiBcdFx0XHRmb2xpb196ZXJvX3NlZ21lbnQoZm9saW8sIG5yX2J5dGVzLCBmb2xpb19zaXplKGZvbGlvKSk7XG4tXHRcdFx0Zm9saW9fbWFya191cHRvZGF0ZShmb2xpbyk7XG4rXHRcdFx0aW9tYXBfZm9saW9fbWFya191cHRvZGF0ZShmb2xpbyk7XG4gXHRcdH1cbiBcdFx0Zm9saW9fdW5sb2NrKGZvbGlvKTtcbiBcdFx0Zm9saW9fcHV0KGZvbGlvKTtcbmRpZmYgLS1naXQgYS9mcy9pb21hcC9idWZmZXJlZC1pby5jIGIvZnMvaW9tYXAvYnVmZmVyZWQtaW8uY1xuaW5kZXggOGQ0ODA2ZGM0NmQ0NjguLjMxN2ZhN2FmOThiZDIzIDEwMDY0NFxuLS0tIGEvZnMvaW9tYXAvYnVmZmVyZWQtaW8uY1xuKysrIGIvZnMvaW9tYXAvYnVmZmVyZWQtaW8uY1xuQEAgLTEwNSw2ICsxMDUsMzMgQEAgc3RhdGljIHZvaWQgaW9tYXBfc2V0X3JhbmdlX3VwdG9kYXRlKHN0cnVjdCBmb2xpbyAqZm9saW8sIHNpemVfdCBvZmYsXG4gXHRcdGZvbGlvX21hcmtfdXB0b2RhdGUoZm9saW8pO1xuIH1cbiBcbit2b2lkIGlvbWFwX2ZvbGlvX21hcmtfdXB0b2RhdGUoc3RydWN0IGZvbGlvICpmb2xpbylcbit7XG4rXHRpb21hcF9zZXRfcmFuZ2VfdXB0b2RhdGUoZm9saW8sIDAsIGZvbGlvX3NpemUoZm9saW8pKTtcbit9XG4rRVhQT1JUX1NZTUJPTF9HUEwoaW9tYXBfZm9saW9fbWFya191cHRvZGF0ZSk7XG4rXG4rdm9pZCBpb21hcF9mb2xpb19jbGVhcl91cHRvZGF0ZShzdHJ1Y3QgZm9saW8gKmZvbGlvKVxuK3tcbitcdHN0cnVjdCBpb21hcF9mb2xpb19zdGF0ZSAqaWZzID0gZm9saW8tXHUwMDNlcHJpdmF0ZTtcbitcdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XG4rXG4rXHRpZiAoIWZvbGlvX3Rlc3RfdXB0b2RhdGUoZm9saW8pKVxuK1x0XHRyZXR1cm47XG4rXG4rXHRpZiAoaWZzKSB7XG4rXHRcdHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmb2xpby1cdTAwM2VtYXBwaW5nLVx1MDAzZWhvc3Q7XG4rXHRcdHVuc2lnbmVkIGludCBucl9ibGtzID0gaV9ibG9ja3NfcGVyX2ZvbGlvKGlub2RlLCBmb2xpbyk7XG4rXG4rXHRcdHNwaW5fbG9ja19pcnFzYXZlKFx1MDAyNmlmcy1cdTAwM2VzdGF0ZV9sb2NrLCBmbGFncyk7XG4rXHRcdGJpdG1hcF9jbGVhcihpZnMtXHUwMDNlc3RhdGUsIDAsIG5yX2Jsa3MpO1xuK1x0XHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFx1MDAyNmlmcy1cdTAwM2VzdGF0ZV9sb2NrLCBmbGFncyk7XG4rXHR9XG4rXG4rXHRmb2xpb19jbGVhcl91cHRvZGF0ZShmb2xpbyk7XG4rfVxuK0VYUE9SVF9TWU1CT0xfR1BMKGlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlKTtcbitcbiAvKlxuICAqIEZpbmQgdGhlIG5leHQgZGlydHkgYmxvY2sgaW4gdGhlIGZvbGlvLiBlbmRfYmxrIGlzIGluY2x1c2l2ZS5cbiAgKiBJZiBubyBkaXJ0eSBibG9jayBpcyBmb3VuZCwgdGhpcyB3aWxsIHJldHVybiBlbmRfYmxrICsgMS5cbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2lvbWFwLmggYi9pbmNsdWRlL2xpbnV4L2lvbWFwLmhcbmluZGV4IDM1ODJlZDFmZTIzNjExLi5mMTNhZTQyNWY1NTI5YiAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbGludXgvaW9tYXAuaFxuKysrIGIvaW5jbHVkZS9saW51eC9pb21hcC5oXG5AQCAtMzY1LDYgKzM2NSw4IEBAIHN0cnVjdCBmb2xpbyAqaW9tYXBfZ2V0X2ZvbGlvKHN0cnVjdCBpb21hcF9pdGVyICppdGVyLCBsb2ZmX3QgcG9zLCBzaXplX3QgbGVuKTtcbiBib29sIGlvbWFwX3JlbGVhc2VfZm9saW8oc3RydWN0IGZvbGlvICpmb2xpbywgZ2ZwX3QgZ2ZwX2ZsYWdzKTtcbiB2b2lkIGlvbWFwX2ludmFsaWRhdGVfZm9saW8oc3RydWN0IGZvbGlvICpmb2xpbywgc2l6ZV90IG9mZnNldCwgc2l6ZV90IGxlbik7XG4gYm9vbCBpb21hcF9kaXJ0eV9mb2xpbyhzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywgc3RydWN0IGZvbGlvICpmb2xpbyk7XG4rdm9pZCBpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlKHN0cnVjdCBmb2xpbyAqZm9saW8pO1xuK3ZvaWQgaW9tYXBfZm9saW9fY2xlYXJfdXB0b2RhdGUoc3RydWN0IGZvbGlvICpmb2xpbyk7XG4gaW50IGlvbWFwX2ZpbGVfdW5zaGFyZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBsb2ZmX3QgcG9zLCBsb2ZmX3QgbGVuLFxuIFx0XHRjb25zdCBzdHJ1Y3QgaW9tYXBfb3BzICpvcHMsXG4gXHRcdGNvbnN0IHN0cnVjdCBpb21hcF93cml0ZV9vcHMgKndyaXRlX29wcyk7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QyMDo0MTo1NS4wOTgyMTA2MDNaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2OTYyMDQwMDMyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZVU0UvSU9NQVAgRm9saW8gVXB0b2RhdGUgU3RhdGUgVXBkYXRlIEZ1enppbmcgUGxhbioqXG5cbk9rYXksIHNvIHdlIGhhdmUgYSBwYXRjaCB0aGF0J3MgaW50cm9kdWNpbmcgY2hhbmdlcyByZWxhdGVkIHRvIGhvdyBGVVNFIGludGVyYWN0cyB3aXRoIHRoZSBmb2xpbyB1cHRvZGF0ZSBzdGF0ZSwgc3BlY2lmaWNhbGx5IHVzaW5nIGBpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlYCBhbmQgYGlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlYC4gVGhlc2UgbmV3IGZ1bmN0aW9ucyBhcmUgaW4gYGZzL2lvbWFwL2J1ZmZlcmVkLWlvLmNgIGFuZCBiZWluZyB1c2VkIGJ5IGBmcy9mdXNlL2ZpbGUuY2AgYW5kIGBmcy9mdXNlL25vdGlmeS5jYCwgc28gd2UncmUgdGFsa2luZyBhYm91dCBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgcmVxdWlyZXMgY2FyZWZ1bCBmdXp6aW5nLiBUaGlzIGlzIGEgZ29vZCBvcHBvcnR1bml0eSB0byB1bmNvdmVyIHBvdGVudGlhbCBpc3N1ZXMgaW4gaG93IEZVU0UgYW5kIElPTUFQIGludGVyYWN0LCBlc3BlY2lhbGx5IGFyb3VuZCB0aGVzZSBuZXcgc3RhdGUgbWFuYWdlbWVudCByb3V0aW5lcy5cblxuTXkgaW5pdGlhbCBmb2N1cyB3aWxsIGJlIG9uIHRoZSBjcml0aWNhbCBmdW5jdGlvbnMgZGlyZWN0bHkgaW1wYWN0ZWQ6IGBmdXNlX3NlbmRfd3JpdGVfcGFnZXNgLCBgZnVzZV9maWxsX3dyaXRlX3BhZ2VzYCwgYW5kIGBmdXNlX25vdGlmeV9zdG9yZWAuIFRoZXNlIGFyZSB0aGUgRlVTRS1zcGVjaWZpYyBlbnRyeSBwb2ludHMuIEJ1dCBvZiBjb3Vyc2UsIHRoZSBuZXcgSU9NQVAgZnVuY3Rpb25zIHRoZW1zZWx2ZXMgYXJlIGNydWNpYWw6IGBpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlYCBhbmQgYGlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlYCB3aGljaCB0aGlzIHBhdGNoIGludHJvZHVjZXMuIEkgbmVlZCB0byBtYWtlIHN1cmUgbXkgZnV6emluZyB0YXJnZXRzIGFsbCBvZiB0aGVzZS5cblxuTmV4dCwgSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUga2VybmVsIGlzIGNvbmZpZ3VyZWQgY29ycmVjdGx5IGZvciB0aGlzIHdvcmsuIFdlIGhhdmUgYENPTkZJR19GVVNFX0ZTYCBlbmFibGluZyBGVVNFLCBhbmQgYENPTkZJR19GU19JT01BUGAgZW5hYmxpbmcgSU9NQVAuIEknbGwgdmVyaWZ5IHRoYXQgdGhlc2Ugb3B0aW9ucyBhcmUgaW5kZWVkIGVuYWJsZWQgZHVyaW5nIG15IGZ1enppbmcgcnVucy4gSXQgaXMgaW1wb3J0YW50IHRvIGtub3cgaWYgdGhlc2UgYXJlIGVuYWJsZWQsIGVzcGVjaWFsbHkgaWYgdGhlIGZ1enppbmcgZ2VuZXJhdGVzIGJ1aWxkcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzEyMiwiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIyNiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDIwOjQyOjAyLjA2MDI1MzQ5NVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NjkyNTAwOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgRlVTRV9GU1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJmcy9mdXNlL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZnMvZnVzZS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZnMvZnVzZS9LY29uZmlnOjI6Y29uZmlnIEZVU0VfRlNcXG5mcy9mdXNlL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiRlVTRSAoRmlsZXN5c3RlbSBpbiBVc2Vyc3BhY2UpIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDIwOjQyOjAyLjEyNzE5MzIwM1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ4ODEyMDY1NjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCBkZWxpdmVyZWQgYXMgYSBmaXJzdC1wZXJzb24gcGVyc3BlY3RpdmU6XG5cbioqTXkgRGVlcCBEaXZlIGludG8gRlNfSU9NQVAqKlxuXG5BbHJpZ2h0LCBsZXQncyB1bnBhY2sgdGhpcyBGU19JT01BUCBzdHVmZi4gTXkgaW5pdGlhbCBpbXByZXNzaW9uIGlzIHRoYXQgdGhpcyBpcyBhIGNyaXRpY2FsIHBpZWNlLCBhIGZvdW5kYXRpb25hbCBlbGVtZW50IGluIG1vZGVybiBmaWxlIHN5c3RlbSBkZXNpZ24sIHBhcnRpY3VsYXJseSB3aGVuIGRlYWxpbmcgd2l0aCB0aGUgY2hhbGxlbmdlcyBvZiBkaXJlY3QgSS9PIGFuZCBjb25jdXJyZW50IGFjY2Vzcy4gSSBpbW1lZGlhdGVseSBzZWUgdGhlIGltcG9ydGFuY2Ugb2YgdW5kZXJzdGFuZGluZyBob3cgdGhpcyBzdHJ1Y3R1cmUsIG9yIHRoZSBzZXQgb2Ygc3RydWN0dXJlcywgZmFjaWxpdGF0ZXMgdGhlIG1hcHBpbmcgYmV0d2VlbiBsb2dpY2FsIGZpbGUgb2Zmc2V0cyBhbmQgdGhlIHBoeXNpY2FsIGJsb2NrcyBvbiBkaXNrLiBJdOKAmXMgdGhlIGxpbmNocGluLCBpc24ndCBpdD8gV2l0aG91dCBhIHJvYnVzdCBJT01BUCwgZWZmaWNpZW50bHkgbmF2aWdhdGluZyBhbmQgbWFuYWdpbmcgdGhlIGNvbXBsZXhpdGllcyBvZiBkYXRhIHBsYWNlbWVudCBhbmQgcmV0cmlldmFsIHdvdWxkIGJlIGEgbmlnaHRtYXJlLCBlc3BlY2lhbGx5IGNvbnNpZGVyaW5nIHRoZSBuZWVkIGZvciBvcGVyYXRpb25zIGxpa2Ugc3BhcnNlIGZpbGVzLCBob2xlIHB1bmNoaW5nLCBhbmQgYmxvY2sgYWxsb2NhdGlvbi5cblxuSSdtIHRoaW5raW5nIGFib3V0IHRoZSB2YXJpb3VzIGltcGxlbWVudGF0aW9ucyBJJ3ZlIGVuY291bnRlcmVkIGFuZCB0aGUgdHJhZGUtb2ZmcyB0aGV5IHJlcHJlc2VudC4gVGhlIGNob2ljZSBvZiB0aGUgSU9NQVAgc3RydWN0dXJlIGhhcyBwcm9mb3VuZCBpbXBsaWNhdGlvbnMgb24gcGVyZm9ybWFuY2UuIENvbnNpZGVyIHRoZSBpbXBhY3Qgb24gbWV0YWRhdGEgb3BlcmF0aW9ucywgdGhlIG92ZXJoZWFkIG9mIGxvb2t1cHMsIGFuZCB0aGUgcG90ZW50aWFsIGZvciBjb250ZW50aW9uLiBEaWZmZXJlbnQgc3RyYXRlZ2llcyBhcmUgZ29pbmcgdG8gc2hpbmUgdW5kZXIgZGlmZmVyZW50IHdvcmtsb2Fkcy4gV2UncmUgdGFsa2luZyBhYm91dCBzb3BoaXN0aWNhdGVkIGFsZ29yaXRobXMgdGhhdCBuZWVkIHRvIGhhbmRsZSBjb21wbGV4IHNjZW5hcmlvcyBsaWtlIGV4dGVuZGluZyBhbmQgdHJ1bmNhdGluZyBmaWxlcywgaGFuZGxpbmcgZnJhZ21lbnRlZCBkYXRhLCBhbmQgZGVhbGluZyB3aXRoIGNvbmN1cnJlbnQgYWNjZXNzIGZyb20gbXVsdGlwbGUgcHJvY2Vzc2VzLiBVbmRlcnN0YW5kaW5nIHRoZSBpbnRyaWNhY2llcyBvZiBjYWNoaW5nIG1lY2hhbmlzbXMgaGVyZSBpcyBhbHNvIGNyaXRpY2FsOyBpdOKAmXMgYW4gb3B0aW1pemF0aW9uIGdhbWUuXG5cbkkgYWxzbyBzZWUgaXRzIHJlbGV2YW5jZSBpbiBtb2Rlcm4gZmlsZSBzeXN0ZW1zIHRoYXQgc3VwcG9ydCBhZHZhbmNlZCBmZWF0dXJlcyBsaWtlIGNvcHktb24td3JpdGUsIHNuYXBzaG90cywgb3IgZXZlbiBkYXRhIGRlZHVwbGljYXRpb24uIEhvdyBkb2VzIHRoZSBJT01BUCBpbnRlcmFjdCB3aXRoIHRoZXNlIGZ1bmN0aW9uYWxpdGllcz8gRG9lcyBpdCBuZWVkIHRvIGJlIG1vZGlmaWVkIG9yIGV4dGVuZGVkIHRvIHN1cHBvcnQgdGhlbSBlZmZlY3RpdmVseT8gVGhlIHdheSBpdCBoYW5kbGVzIHRoZXNlIHRoaW5ncyBhcmUgZ29pbmcgdG8gYmUga2V5IHRvIGVmZmljaWVuY3kuXG5cbknigJltIHBhcnRpY3VsYXJseSBpbnRlcmVzdGVkIGluIHRoZSBJT01BUCdzIGludGVyYWN0aW9uIHdpdGggdGhlIGJsb2NrIGFsbG9jYXRvci4gSG93IGRvZXMgaXQgZW5zdXJlIHRoYXQgZGF0YSBpcyBwbGFjZWQgaW4gdGhlIG1vc3QgZWZmaWNpZW50IG1hbm5lciwgY29uc2lkZXJpbmcgZmFjdG9ycyBsaWtlIGRpc2sgbGF5b3V0LCBSQUlEIGNvbmZpZ3VyYXRpb25zLCBhbmQgU1NEIHdlYXIgbGV2ZWxpbmc/IEFyZSB0aGVyZSB0ZWNobmlxdWVzIHRvIG1pbmltaXplIGZyYWdtZW50YXRpb24gb3Igb3B0aW1pemUgZm9yIHNlcXVlbnRpYWwgYWNjZXNzIHBhdHRlcm5zPyBBbmQgd2hhdCBhYm91dCB0aGUgaW1wYWN0IG9uIGVycm9yIGhhbmRsaW5nIGFuZCBkYXRhIGludGVncml0eT8gV2hlbiBhIGJsb2NrIGdvZXMgYmFkLCBob3cgZG9lcyB0aGUgSU9NQVAgaGVscCB0byByZWNvdmVyIGFuZCBlbnN1cmUgdGhlIGZpbGUgc3lzdGVtIHJlbWFpbnMgY29uc2lzdGVudD8gSSBpbWFnaW5lIHJvYnVzdCBqb3VybmFsaW5nIG9yIHRyYW5zYWN0aW9uIGxvZ2dpbmcgaXMgYSBtdXN0IHRvIGtlZXAgdGhlIHN5c3RlbSBpbiBhIGNvbnNpc3RlbnQgc3RhdGUuXG5cblVsdGltYXRlbHksIEkgdmlldyB0aGlzIGFzIGEgc29waGlzdGljYXRlZCwgZmluZWx5LXR1bmVkIGluc3RydW1lbnQuIEl0cyBkZXNpZ24gZGlyZWN0bHkgaW1wYWN0cyBvdmVyYWxsIGZpbGUgc3lzdGVtIHBlcmZvcm1hbmNlLCBzY2FsYWJpbGl0eSwgYW5kIHJlbGlhYmlsaXR5LiBNYXN0ZXJpbmcgaXQgaXMga2V5IHRvIGRlc2lnbmluZyBoaWdoLXBlcmZvcm1hbmNlIGFuZCByb2J1c3Qgc3RvcmFnZSBzb2x1dGlvbnMuIEl04oCZcyBhbiBhcmVhIHdoZXJlIGRlZXAgdW5kZXJzdGFuZGluZyBpcyBhbHdheXMgd29ydGggdGhlIGVmZm9ydC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzgwMiwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjNUMjA6NDI6MDcuMDA4NDAxMzc5WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU5NTA0OTU4LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgRlNfSU9NQVBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZnMvaW9tYXAvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjNUMjA6NDI6MDcuMDY3OTE1MDc3WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjM4Nzk3NjM2OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgRlNfSU9NQVAgQ29uZmlndXJhdGlvbiBPcHRpb24qKlxuXG5BbHJpZ2h0LCBsZXQncyBkaXZlIGluLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0byBnbyBzdHJhaWdodCB0byB0aGUgc291cmNlIOKAkyB0aGUgYGZzL0tjb25maWdgIGZpbGUuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjdXJyZW50IHN0YXRlIG9mIGBGU19JT01BUGAuIEkgd2FudCB0byBrbm93IHdoZXJlIGl0J3MgZGVmaW5lZCwgd2hhdCBkZXBlbmRlbmNpZXMgaXQgbWlnaHQgaGF2ZSwgd2hhdCB0aGUgZGVmYXVsdCBzZXR0aW5nIGlzLCBhbmQgd2hhdCB0aGUgYXNzb2NpYXRlZCBoZWxwIHRleHQgc2F5cy4gVW5kZXJzdGFuZGluZyB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGlzIHBhcmFtb3VudC4gSSBuZWVkIHRvIGJlIHN1cmUgYWJvdXQgaXRzIGltcGxpY2F0aW9ucyBhbmQgd2hhdCBvdGhlciBmZWF0dXJlcyBhcmUgdGllZCB0byB0aGlzIG9uZS4gVGhpcyBLY29uZmlnIGZpbGUgd2lsbCBiZSB0aGUgc3RhcnRpbmcgcG9pbnQgdG8gdW5kZXJzdGFuZCB0aGUgd2lkZXIgc3lzdGVtJ3MgY29uZmlndXJhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6NDM4NSwiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDIwOjQyOjA5LjQ1NTg5NDAxNloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NzM4NTY4OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgRlNfSU9NQVBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZnMvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy9LY29uZmlnPTEyPWNvbmZpZyBWQUxJREFURV9GU19QQVJTRVJcXG4tLVxcbmZzL0tjb25maWctMTctXFxuZnMvS2NvbmZpZzoxODpjb25maWcgRlNfSU9NQVBcXG5mcy9LY29uZmlnLTE5LVxcdGJvb2xcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjNUMjA6NDI6MDkuNTEzMjg2MzY1WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzU0MDgzMzgyNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIHByZXNlbnRlZCBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKkludmVzdGlnYXRpbmcgRlNfSU9NQVAgYW5kIEZVU0UgQ29tcGF0aWJpbGl0eSoqXG5cbkFscmlnaHQsIGxldCdzIGRpdmUgaW4uIEkga25vdyBgRlNfSU9NQVBgIGlzIGEgYm9vbGVhbiBjb25maWcsIGFuZCBJJ20gcHJldHR5IGZhbWlsaWFyIHdpdGggaG93IGl0J3MgdHlwaWNhbGx5IHVzZWQgYW5kIHNlbGVjdGVkIGJ5IG90aGVyIGZpbGVzeXN0ZW1zLiBCdXQgSSdtIGN1cmlvdXMgYWJvdXQgdGhlIHNwZWNpZmljIGludGVyYWN0aW9uIHdpdGggRlVTRS4gU28sIEkgbmVlZCB0byBjaGVjayBzb21ldGhpbmcg4oCTIGlzIGBGU19JT01BUGAgYWN0dWFsbHkgZW5hYmxlZCBieSBkZWZhdWx0IHdpdGhpbiBGVVNFIGl0c2VsZj8gT3IgaXMgaXQgc2ltcGx5IGF2YWlsYWJsZSBhcyBhbiBvcHRpb24gdGhhdCBGVVNFICpjb3VsZCogbGV2ZXJhZ2UgaWYgY29uZmlndXJlZCBlbHNld2hlcmU/IEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoZXRoZXIgRlVTRSBwcm9hY3RpdmVseSB1dGlsaXplcyBpdCwgb3IgaWYgaXQncyBwYXNzaXZlLCBlc3NlbnRpYWxseSBqdXN0IHByb3ZpZGluZyB0aGUgaG9va3MgaWYgdGhlIHVuZGVybHlpbmcgc3RvcmFnZSBsYXllciBvciBhIGhpZ2hlci1sZXZlbCBtb2R1bGUgY2hvb3NlcyB0byB1c2UgaXQuIFRoYXQncyB0aGUga2V5IHF1ZXN0aW9uIEkgbmVlZCB0byBhbnN3ZXIgcmlnaHQgbm93LiBLbm93aW5nIHRoZSByZWxhdGlvbnNoaXAgaGVyZSB3aWxsIGhlbHAgbWUgdW5kZXJzdGFuZCBob3cgRlVTRSBpbnRlcmFjdHMgd2l0aCBJL08gYW5kIHBvdGVudGlhbCBvcHRpbWl6YXRpb24gc3RyYXRlZ2llcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDY0NCwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDIwOjQyOjEzLjA1NDEyMjgyOVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTc3NzkyMTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic2VsZWN0IEZTX0lPTUFQXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImZzL2Z1c2UvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy9mdXNlL0tjb25maWc9Mj1jb25maWcgRlVTRV9GU1xcbi0tXFxuZnMvZnVzZS9LY29uZmlnLTQtXFx0c2VsZWN0IEZTX1BPU0lYX0FDTFxcbmZzL2Z1c2UvS2NvbmZpZzo1OlxcdHNlbGVjdCBGU19JT01BUFxcbmZzL2Z1c2UvS2NvbmZpZy02LVxcdGhlbHBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjNUMjA6NDI6MTMuMTExOTA4NTI4WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjgyMDUxNzY4MDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBGVVNFIEZpbGVzeXN0ZW0gQ2hhbmdlIGZvciBQb3RlbnRpYWwgSXNzdWVzKipcblxuT2theSwgc28gRlVTRV9GUyBpcyB0aGUga2V5IGNvbmZpZyBoZXJlLCBhcyBpdCBzZWxlY3RzIEZTX0lPTUFQLCBtZWFuaW5nIHdlIGFyZSBzcGVjaWZpY2FsbHkgZGVhbGluZyB3aXRoIEZVU0UncyBpbnRlcmFjdGlvbiB3aXRoIHRoZSBJL08gbWFwcGluZyBzeXN0ZW0uIE15IGZvY3VzIG5lZWRzIHRvIGJlIG9uIHRoZXNlIGZ1bmN0aW9uczogYGZ1c2Vfc2VuZF93cml0ZV9wYWdlc2AsIGBmdXNlX2ZpbGxfd3JpdGVfcGFnZXNgLCBgZnVzZV9ub3RpZnlfc3RvcmVgLCBgaW9tYXBfZm9saW9fbWFya191cHRvZGF0ZWAsIGFuZCBgaW9tYXBfZm9saW9fY2xlYXJfdXB0b2RhdGVgLlxuXG5GaXJzdCwgbGV0J3MgZXN0YWJsaXNoIGNvbnRleHQuIGBmdXNlX3NlbmRfd3JpdGVfcGFnZXNgIGlzIGRlZmluaXRlbHkgcGFydCBvZiB0aGUgRlVTRSB3cml0ZSBwYXRoLCBzbyBpdCdzIGxpa2VseSBhIGhvdCBwYXRoLCB0aG91Z2ggc3BlY2lmaWMgdG8gRlVTRSB3cml0ZXMuIGBmdXNlX25vdGlmeV9zdG9yZWAgaXMgYWxzbyBGVVNFLXNwZWNpZmljLiBUaGUgYGlvbWFwX2ZvbGlvX21hcmtfdXB0b2RhdGVgIGFuZCBgaW9tYXBfZm9saW9fY2xlYXJfdXB0b2RhdGVgIGZ1bmN0aW9ucyBhcmUgKm5ldyosIGFuZCB0aGVyZWZvcmUgaW5oZXJlbnRseSBpbnRlcmVzdGluZyBmcm9tIGEgZnV6emluZyBwZXJzcGVjdGl2ZSwgZXNwZWNpYWxseSBnaXZlbiB0aGUgcG90ZW50aWFsIGZvciBvZmYtYnktb25lIGVycm9ycyBvciBpbmNvcnJlY3Qgc3RhdGUgbWFuYWdlbWVudC5cblxuVGhlIHJlYXNvbmluZyBpcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkOiB0aGlzIHBhdGNoIGludGVncmF0ZXMgbmV3IGZvbGlvIHVwdG9kYXRlIG1hbmFnZW1lbnQgZnVuY3Rpb25zIChgaW9tYXBfZm9saW9fbWFya191cHRvZGF0ZWAsIGBpb21hcF9mb2xpb19jbGVhcl91cHRvZGF0ZWApIHdpdGhpbiB0aGUgRlVTRSB3cml0ZSBhbmQgbm90aWZ5IHBhdGhzLCB3aGljaCBpbnZvbHZlIGNvcmUgZmlsZXN5c3RlbSBsb2dpYyBhbmQgRlVTRS4gSW5jb3JyZWN0IGhhbmRsaW5nIG9mIGZvbGlvIHN0YXRlIGlzIGEgY2xhc3NpYyBzb3VyY2Ugb2YgZGF0YSBjb3JydXB0aW9uIG9yIGNyYXNoZXMsIHNvIEkgbmVlZCB0byBzZWUgdGhpcyBjbGVhcmx5LlxuXG5HaXZlbiB0aGF0IGBmdXNlX2ZpbGxfd3JpdGVfcGFnZXNgIGFuZCBgZnVzZV9zZW5kX3dyaXRlX3BhZ2VzYCBhcmUgcGFydCBvZiB0aGUgRlVTRSB3cml0ZSBwYXRoLCB0aGlzIHBhdGNoIGlzIGludHJvZHVjaW5nIGEgY2hhbmdlIGluIHByZWNpc2VseSB0aGUgbG9naWMgd2hlcmUgaXQncyBtb3N0IGltcG9ydGFudCB0byB0ZXN0LiBgZnVzZV9ub3RpZnlfc3RvcmVgIGlzIGFsc28gc3BlY2lmaWMgdG8gRlVTRSBhbmQgYSBnb29kIHRhcmdldCwgYnV0IHNpbmNlIHRoZSBuZXcgZnVuY3Rpb25zIGFyZSBuZXcsIHRoZXkgYXJlIGhpZ2ggcHJpb3JpdHkgZm9yIGEgcXVpY2sgZnV6eiB0byBzZWUgaWYgdGhleSdyZSBoYW5kbGVkIGNvcnJlY3RseS5cblxuSSdtIHRoaW5raW5nIEknbGwgdXNlIGBzZXQtcmVzdWx0c2AgaGVyZSB0byBnZXQgdGhpcyBkb25lLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0OTk3LCJPdXRwdXRUb2tlbnMiOjE3NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ4MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QyMDo0MjoyMS4zMTcwODc1OTNaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDM2NTYwNDgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkZVU0VfRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJmdXNlX3NlbmRfd3JpdGVfcGFnZXNcIixcbiAgICBcImZ1c2VfZmlsbF93cml0ZV9wYWdlc1wiLFxuICAgIFwiZnVzZV9ub3RpZnlfc3RvcmVcIixcbiAgICBcImlvbWFwX2ZvbGlvX21hcmtfdXB0b2RhdGVcIixcbiAgICBcImlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaW50cm9kdWNlcyBuZXcgaW9tYXAgZm9saW8gdXB0b2RhdGUgbWFuYWdlbWVudCBmdW5jdGlvbnMgKGBpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlYCwgYGlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlYCkgYW5kIGludGVncmF0ZXMgdGhlbSBpbnRvIHRoZSBGVVNFIGZpbGVzeXN0ZW0ncyB3cml0ZSBhbmQgbm90aWZ5IHBhdGhzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBmaWxlc3lzdGVtIGFuZCBGVVNFIGxvZ2ljIHRoYXQgaGFuZGxlcyBmb2xpbyBzdGF0ZSwgd2hpY2ggY291bGQgbGVhZCB0byBkYXRhIGNvcnJ1cHRpb24gb3IgY3Jhc2hlcyBpZiBpbmNvcnJlY3QuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiRlVTRV9GU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImZ1c2Vfc2VuZF93cml0ZV9wYWdlc1wiLFxuICAgIFwiZnVzZV9maWxsX3dyaXRlX3BhZ2VzXCIsXG4gICAgXCJmdXNlX25vdGlmeV9zdG9yZVwiLFxuICAgIFwiaW9tYXBfZm9saW9fbWFya191cHRvZGF0ZVwiLFxuICAgIFwiaW9tYXBfZm9saW9fY2xlYXJfdXB0b2RhdGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBpb21hcCBmb2xpbyB1cHRvZGF0ZSBtYW5hZ2VtZW50IGZ1bmN0aW9ucyAoYGlvbWFwX2ZvbGlvX21hcmtfdXB0b2RhdGVgLCBgaW9tYXBfZm9saW9fY2xlYXJfdXB0b2RhdGVgKSBhbmQgaW50ZWdyYXRlcyB0aGVtIGludG8gdGhlIEZVU0UgZmlsZXN5c3RlbSdzIHdyaXRlIGFuZCBub3RpZnkgcGF0aHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIGZpbGVzeXN0ZW0gYW5kIEZVU0UgbG9naWMgdGhhdCBoYW5kbGVzIGZvbGlvIHN0YXRlLCB3aGljaCBjb3VsZCBsZWFkIHRvIGRhdGEgY29ycnVwdGlvbiBvciBjcmFzaGVzIGlmIGluY29ycmVjdC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowvfr8z[0].run-triage(0) Phase: Succeeded StartedAt: 2026-06-23 20:31:41 +0000 UTC FinishedAt: 2026-06-23 20:42:22 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "f31c00c377ccf07c85442712f7c940a855cb3371", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "FUSE_FS" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "f31c00c377ccf07c85442712f7c940a855cb3371", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "FUSE_FS" ], "series_id": "30afd0fa-6b37-4bf0-a1d7-a659032df11b" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "fuse_send_write_pages", "fuse_fill_write_pages", "fuse_notify_store", "iomap_folio_mark_uptodate", "iomap_folio_clear_uptodate" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDIwOjQxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0ZVU0VfRlMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtmdXNlX3NlbmRfd3JpdGVfcGFnZXMmIzM0OywKICAgICYjMzQ7ZnVzZV9maWxsX3dyaXRlX3BhZ2VzJiMzNDssCiAgICAmIzM0O2Z1c2Vfbm90aWZ5X3N0b3JlJiMzNDssCiAgICAmIzM0O2lvbWFwX2ZvbGlvX21hcmtfdXB0b2RhdGUmIzM0OywKICAgICYjMzQ7aW9tYXBfZm9saW9fY2xlYXJfdXB0b2RhdGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW50cm9kdWNlcyBuZXcgaW9tYXAgZm9saW8gdXB0b2RhdGUgbWFuYWdlbWVudCBmdW5jdGlvbnMgKGBpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlYCwgYGlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlYCkgYW5kIGludGVncmF0ZXMgdGhlbSBpbnRvIHRoZSBGVVNFIGZpbGVzeXN0ZW0mIzM5O3Mgd3JpdGUgYW5kIG5vdGlmeSBwYXRocy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgZmlsZXN5c3RlbSBhbmQgRlVTRSBsb2dpYyB0aGF0IGhhbmRsZXMgZm9saW8gc3RhdGUsIHdoaWNoIGNvdWxkIGxlYWQgdG8gZGF0YSBjb3JydXB0aW9uIG9yIGNyYXNoZXMgaWYgaW5jb3JyZWN0LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDIwOjQxPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgY2Y5OWI4MWQ2ZjRlZDZlYWU5YzBjOTY0MDhlMDg1YzQyY2M0ZTUyMFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVuIDIzIDIwOjQxOjUzIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2ZzL2Z1c2UvZmlsZS5jIGIvZnMvZnVzZS9maWxlLmNcbmluZGV4IGUwNTJhMGQ0NGRlZTA2Li4xMmEyYWE2MDVmNmIzMSAxMDA2NDRcbi0tLSBhL2ZzL2Z1c2UvZmlsZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9mcy9mdXNlL2ZpbGUuY1xuQEAgLTEyNTAsMTMgJiM0MzsxMjUwLDEzIEBAIHN0YXRpYyBzc2l6ZV90IGZ1c2Vfc2VuZF93cml0ZV9wYWdlcyhzdHJ1Y3QgZnVzZV9pb19hcmdzICppYSxcbiBcdFx0c3RydWN0IGZvbGlvICpmb2xpbyA9IGFwLVx1MDAzZWZvbGlvc1tpXTtcbiBcbiBcdFx0aWYgKGVycikge1xuLVx0XHRcdGZvbGlvX2NsZWFyX3VwdG9kYXRlKGZvbGlvKTtcbiYjNDM7XHRcdFx0aW9tYXBfZm9saW9fY2xlYXJfdXB0b2RhdGUoZm9saW8pO1xuIFx0XHR9IGVsc2Uge1xuIFx0XHRcdGlmIChjb3VudCBcdTAwM2U9IGZvbGlvX3NpemUoZm9saW8pIC0gb2Zmc2V0KVxuIFx0XHRcdFx0Y291bnQgLT0gZm9saW9fc2l6ZShmb2xpbykgLSBvZmZzZXQ7XG4gXHRcdFx0ZWxzZSB7XG4gXHRcdFx0XHRpZiAoc2hvcnRfd3JpdGUpXG4tXHRcdFx0XHRcdGZvbGlvX2NsZWFyX3VwdG9kYXRlKGZvbGlvKTtcbiYjNDM7XHRcdFx0XHRcdGlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlKGZvbGlvKTtcbiBcdFx0XHRcdGNvdW50ID0gMDtcbiBcdFx0XHR9XG4gXHRcdFx0b2Zmc2V0ID0gMDtcbkBAIC0xMzM1LDcgJiM0MzsxMzM1LDcgQEAgc3RhdGljIHNzaXplX3QgZnVzZV9maWxsX3dyaXRlX3BhZ2VzKHN0cnVjdCBmdXNlX2lvX2FyZ3MgKmlhLFxuIFxuIFx0XHQvKiBJZiB3ZSBjb3BpZWQgZnVsbCBmb2xpbywgbWFyayBpdCB1cHRvZGF0ZSAqL1xuIFx0XHRpZiAodG1wID09IGZvbGlvX3NpemUoZm9saW8pKVxuLVx0XHRcdGZvbGlvX21hcmtfdXB0b2RhdGUoZm9saW8pO1xuJiM0MztcdFx0XHRpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlKGZvbGlvKTtcbiBcbiBcdFx0aWYgKGZvbGlvX3Rlc3RfdXB0b2RhdGUoZm9saW8pKSB7XG4gXHRcdFx0Zm9saW9fdW5sb2NrKGZvbGlvKTtcbmRpZmYgLS1naXQgYS9mcy9mdXNlL25vdGlmeS5jIGIvZnMvZnVzZS9ub3RpZnkuY1xuaW5kZXggMjk1NzgxMDRhZTZjZDYuLjFiYTc2MzcwNWQ5MTE5IDEwMDY0NFxuLS0tIGEvZnMvZnVzZS9ub3RpZnkuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZnMvZnVzZS9ub3RpZnkuY1xuQEAgLTIsNiAmIzQzOzIsOCBAQFxuIFxuICNpbmNsdWRlIFwmIzM0O2Rldi5oXCYjMzQ7XG4gI2luY2x1ZGUgXCYjMzQ7ZnVzZV9pLmhcJiMzNDtcbiYjNDM7XG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L2lvbWFwLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9wYWdlbWFwLmhcdTAwM2VcbiBcbiBzdGF0aWMgaW50IGZ1c2Vfbm90aWZ5X3BvbGwoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHVuc2lnbmVkIGludCBzaXplLFxuQEAgLTE5Miw3ICYjNDM7MTk0LDcgQEAgc3RhdGljIGludCBmdXNlX25vdGlmeV9zdG9yZShzdHJ1Y3QgZnVzZV9jb25uICpmYywgdW5zaWduZWQgaW50IHNpemUsXG4gXHRcdGlmICghZm9saW9fdGVzdF91cHRvZGF0ZShmb2xpbykgXHUwMDI2XHUwMDI2ICFlcnIgXHUwMDI2XHUwMDI2IGZvbGlvX29mZnNldCA9PSAwIFx1MDAyNlx1MDAyNlxuIFx0XHQgICAgKG5yX2J5dGVzID09IGZvbGlvX3NpemUoZm9saW8pIHx8IGZpbGVfc2l6ZSA9PSBlbmQpKSB7XG4gXHRcdFx0Zm9saW9femVyb19zZWdtZW50KGZvbGlvLCBucl9ieXRlcywgZm9saW9fc2l6ZShmb2xpbykpO1xuLVx0XHRcdGZvbGlvX21hcmtfdXB0b2RhdGUoZm9saW8pO1xuJiM0MztcdFx0XHRpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlKGZvbGlvKTtcbiBcdFx0fVxuIFx0XHRmb2xpb191bmxvY2soZm9saW8pO1xuIFx0XHRmb2xpb19wdXQoZm9saW8pO1xuZGlmZiAtLWdpdCBhL2ZzL2lvbWFwL2J1ZmZlcmVkLWlvLmMgYi9mcy9pb21hcC9idWZmZXJlZC1pby5jXG5pbmRleCA4ZDQ4MDZkYzQ2ZDQ2OC4uMzE3ZmE3YWY5OGJkMjMgMTAwNjQ0XG4tLS0gYS9mcy9pb21hcC9idWZmZXJlZC1pby5jXG4mIzQzOyYjNDM7JiM0MzsgYi9mcy9pb21hcC9idWZmZXJlZC1pby5jXG5AQCAtMTA1LDYgJiM0MzsxMDUsMzMgQEAgc3RhdGljIHZvaWQgaW9tYXBfc2V0X3JhbmdlX3VwdG9kYXRlKHN0cnVjdCBmb2xpbyAqZm9saW8sIHNpemVfdCBvZmYsXG4gXHRcdGZvbGlvX21hcmtfdXB0b2RhdGUoZm9saW8pO1xuIH1cbiBcbiYjNDM7dm9pZCBpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlKHN0cnVjdCBmb2xpbyAqZm9saW8pXG4mIzQzO3tcbiYjNDM7XHRpb21hcF9zZXRfcmFuZ2VfdXB0b2RhdGUoZm9saW8sIDAsIGZvbGlvX3NpemUoZm9saW8pKTtcbiYjNDM7fVxuJiM0MztFWFBPUlRfU1lNQk9MX0dQTChpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlKTtcbiYjNDM7XG4mIzQzO3ZvaWQgaW9tYXBfZm9saW9fY2xlYXJfdXB0b2RhdGUoc3RydWN0IGZvbGlvICpmb2xpbylcbiYjNDM7e1xuJiM0MztcdHN0cnVjdCBpb21hcF9mb2xpb19zdGF0ZSAqaWZzID0gZm9saW8tXHUwMDNlcHJpdmF0ZTtcbiYjNDM7XHR1bnNpZ25lZCBsb25nIGZsYWdzO1xuJiM0MztcbiYjNDM7XHRpZiAoIWZvbGlvX3Rlc3RfdXB0b2RhdGUoZm9saW8pKVxuJiM0MztcdFx0cmV0dXJuO1xuJiM0MztcbiYjNDM7XHRpZiAoaWZzKSB7XG4mIzQzO1x0XHRzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZm9saW8tXHUwMDNlbWFwcGluZy1cdTAwM2Vob3N0O1xuJiM0MztcdFx0dW5zaWduZWQgaW50IG5yX2Jsa3MgPSBpX2Jsb2Nrc19wZXJfZm9saW8oaW5vZGUsIGZvbGlvKTtcbiYjNDM7XG4mIzQzO1x0XHRzcGluX2xvY2tfaXJxc2F2ZShcdTAwMjZpZnMtXHUwMDNlc3RhdGVfbG9jaywgZmxhZ3MpO1xuJiM0MztcdFx0Yml0bWFwX2NsZWFyKGlmcy1cdTAwM2VzdGF0ZSwgMCwgbnJfYmxrcyk7XG4mIzQzO1x0XHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFx1MDAyNmlmcy1cdTAwM2VzdGF0ZV9sb2NrLCBmbGFncyk7XG4mIzQzO1x0fVxuJiM0MztcbiYjNDM7XHRmb2xpb19jbGVhcl91cHRvZGF0ZShmb2xpbyk7XG4mIzQzO31cbiYjNDM7RVhQT1JUX1NZTUJPTF9HUEwoaW9tYXBfZm9saW9fY2xlYXJfdXB0b2RhdGUpO1xuJiM0MztcbiAvKlxuICAqIEZpbmQgdGhlIG5leHQgZGlydHkgYmxvY2sgaW4gdGhlIGZvbGlvLiBlbmRfYmxrIGlzIGluY2x1c2l2ZS5cbiAgKiBJZiBubyBkaXJ0eSBibG9jayBpcyBmb3VuZCwgdGhpcyB3aWxsIHJldHVybiBlbmRfYmxrICYjNDM7IDEuXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pb21hcC5oIGIvaW5jbHVkZS9saW51eC9pb21hcC5oXG5pbmRleCAzNTgyZWQxZmUyMzYxMS4uZjEzYWU0MjVmNTUyOWIgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL2xpbnV4L2lvbWFwLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbGludXgvaW9tYXAuaFxuQEAgLTM2NSw2ICYjNDM7MzY1LDggQEAgc3RydWN0IGZvbGlvICppb21hcF9nZXRfZm9saW8oc3RydWN0IGlvbWFwX2l0ZXIgKml0ZXIsIGxvZmZfdCBwb3MsIHNpemVfdCBsZW4pO1xuIGJvb2wgaW9tYXBfcmVsZWFzZV9mb2xpbyhzdHJ1Y3QgZm9saW8gKmZvbGlvLCBnZnBfdCBnZnBfZmxhZ3MpO1xuIHZvaWQgaW9tYXBfaW52YWxpZGF0ZV9mb2xpbyhzdHJ1Y3QgZm9saW8gKmZvbGlvLCBzaXplX3Qgb2Zmc2V0LCBzaXplX3QgbGVuKTtcbiBib29sIGlvbWFwX2RpcnR5X2ZvbGlvKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCBzdHJ1Y3QgZm9saW8gKmZvbGlvKTtcbiYjNDM7dm9pZCBpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlKHN0cnVjdCBmb2xpbyAqZm9saW8pO1xuJiM0Mzt2b2lkIGlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlKHN0cnVjdCBmb2xpbyAqZm9saW8pO1xuIGludCBpb21hcF9maWxlX3Vuc2hhcmUoc3RydWN0IGlub2RlICppbm9kZSwgbG9mZl90IHBvcywgbG9mZl90IGxlbixcbiBcdFx0Y29uc3Qgc3RydWN0IGlvbWFwX29wcyAqb3BzLFxuIFx0XHRjb25zdCBzdHJ1Y3QgaW9tYXBfd3JpdGVfb3BzICp3cml0ZV9vcHMpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDIwOjQxPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0ZVU0VfRlMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtmdXNlX3NlbmRfd3JpdGVfcGFnZXMmIzM0OywKICAgICYjMzQ7ZnVzZV9maWxsX3dyaXRlX3BhZ2VzJiMzNDssCiAgICAmIzM0O2Z1c2Vfbm90aWZ5X3N0b3JlJiMzNDssCiAgICAmIzM0O2lvbWFwX2ZvbGlvX21hcmtfdXB0b2RhdGUmIzM0OywKICAgICYjMzQ7aW9tYXBfZm9saW9fY2xlYXJfdXB0b2RhdGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW50cm9kdWNlcyBuZXcgaW9tYXAgZm9saW8gdXB0b2RhdGUgbWFuYWdlbWVudCBmdW5jdGlvbnMgKGBpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlYCwgYGlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlYCkgYW5kIGludGVncmF0ZXMgdGhlbSBpbnRvIHRoZSBGVVNFIGZpbGVzeXN0ZW0mIzM5O3Mgd3JpdGUgYW5kIG5vdGlmeSBwYXRocy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgZmlsZXN5c3RlbSBhbmQgRlVTRSBsb2dpYyB0aGF0IGhhbmRsZXMgZm9saW8gc3RhdGUsIHdoaWNoIGNvdWxkIGxlYWQgdG8gZGF0YSBjb3JydXB0aW9uIG9yIGNyYXNoZXMgaWYgaW5jb3JyZWN0LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBjZjk5YjgxZDZmNGVkNmVhZTljMGM5NjQwOGUwODVjNDJjYzRlNTIwCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBKdW4gMjMgMjA6NDE6NTMgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9mcy9mdXNlL2ZpbGUuYyBiL2ZzL2Z1c2UvZmlsZS5jCmluZGV4IGUwNTJhMGQ0NGRlZTA2Li4xMmEyYWE2MDVmNmIzMSAxMDA2NDQKLS0tIGEvZnMvZnVzZS9maWxlLmMKJiM0MzsmIzQzOyYjNDM7IGIvZnMvZnVzZS9maWxlLmMKQEAgLTEyNTAsMTMgJiM0MzsxMjUwLDEzIEBAIHN0YXRpYyBzc2l6ZV90IGZ1c2Vfc2VuZF93cml0ZV9wYWdlcyhzdHJ1Y3QgZnVzZV9pb19hcmdzICppYSwKIAkJc3RydWN0IGZvbGlvICpmb2xpbyA9IGFwLSZndDtmb2xpb3NbaV07CiAKIAkJaWYgKGVycikgewotCQkJZm9saW9fY2xlYXJfdXB0b2RhdGUoZm9saW8pOwomIzQzOwkJCWlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlKGZvbGlvKTsKIAkJfSBlbHNlIHsKIAkJCWlmIChjb3VudCAmZ3Q7PSBmb2xpb19zaXplKGZvbGlvKSAtIG9mZnNldCkKIAkJCQljb3VudCAtPSBmb2xpb19zaXplKGZvbGlvKSAtIG9mZnNldDsKIAkJCWVsc2UgewogCQkJCWlmIChzaG9ydF93cml0ZSkKLQkJCQkJZm9saW9fY2xlYXJfdXB0b2RhdGUoZm9saW8pOwomIzQzOwkJCQkJaW9tYXBfZm9saW9fY2xlYXJfdXB0b2RhdGUoZm9saW8pOwogCQkJCWNvdW50ID0gMDsKIAkJCX0KIAkJCW9mZnNldCA9IDA7CkBAIC0xMzM1LDcgJiM0MzsxMzM1LDcgQEAgc3RhdGljIHNzaXplX3QgZnVzZV9maWxsX3dyaXRlX3BhZ2VzKHN0cnVjdCBmdXNlX2lvX2FyZ3MgKmlhLAogCiAJCS8qIElmIHdlIGNvcGllZCBmdWxsIGZvbGlvLCBtYXJrIGl0IHVwdG9kYXRlICovCiAJCWlmICh0bXAgPT0gZm9saW9fc2l6ZShmb2xpbykpCi0JCQlmb2xpb19tYXJrX3VwdG9kYXRlKGZvbGlvKTsKJiM0MzsJCQlpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlKGZvbGlvKTsKIAogCQlpZiAoZm9saW9fdGVzdF91cHRvZGF0ZShmb2xpbykpIHsKIAkJCWZvbGlvX3VubG9jayhmb2xpbyk7CmRpZmYgLS1naXQgYS9mcy9mdXNlL25vdGlmeS5jIGIvZnMvZnVzZS9ub3RpZnkuYwppbmRleCAyOTU3ODEwNGFlNmNkNi4uMWJhNzYzNzA1ZDkxMTkgMTAwNjQ0Ci0tLSBhL2ZzL2Z1c2Uvbm90aWZ5LmMKJiM0MzsmIzQzOyYjNDM7IGIvZnMvZnVzZS9ub3RpZnkuYwpAQCAtMiw2ICYjNDM7Miw4IEBACiAKICNpbmNsdWRlICYjMzQ7ZGV2LmgmIzM0OwogI2luY2x1ZGUgJiMzNDtmdXNlX2kuaCYjMzQ7CiYjNDM7CiYjNDM7I2luY2x1ZGUgJmx0O2xpbnV4L2lvbWFwLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bGludXgvcGFnZW1hcC5oJmd0OwogCiBzdGF0aWMgaW50IGZ1c2Vfbm90aWZ5X3BvbGwoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHVuc2lnbmVkIGludCBzaXplLApAQCAtMTkyLDcgJiM0MzsxOTQsNyBAQCBzdGF0aWMgaW50IGZ1c2Vfbm90aWZ5X3N0b3JlKHN0cnVjdCBmdXNlX2Nvbm4gKmZjLCB1bnNpZ25lZCBpbnQgc2l6ZSwKIAkJaWYgKCFmb2xpb190ZXN0X3VwdG9kYXRlKGZvbGlvKSAmYW1wOyZhbXA7ICFlcnIgJmFtcDsmYW1wOyBmb2xpb19vZmZzZXQgPT0gMCAmYW1wOyZhbXA7CiAJCSAgICAobnJfYnl0ZXMgPT0gZm9saW9fc2l6ZShmb2xpbykgfHwgZmlsZV9zaXplID09IGVuZCkpIHsKIAkJCWZvbGlvX3plcm9fc2VnbWVudChmb2xpbywgbnJfYnl0ZXMsIGZvbGlvX3NpemUoZm9saW8pKTsKLQkJCWZvbGlvX21hcmtfdXB0b2RhdGUoZm9saW8pOwomIzQzOwkJCWlvbWFwX2ZvbGlvX21hcmtfdXB0b2RhdGUoZm9saW8pOwogCQl9CiAJCWZvbGlvX3VubG9jayhmb2xpbyk7CiAJCWZvbGlvX3B1dChmb2xpbyk7CmRpZmYgLS1naXQgYS9mcy9pb21hcC9idWZmZXJlZC1pby5jIGIvZnMvaW9tYXAvYnVmZmVyZWQtaW8uYwppbmRleCA4ZDQ4MDZkYzQ2ZDQ2OC4uMzE3ZmE3YWY5OGJkMjMgMTAwNjQ0Ci0tLSBhL2ZzL2lvbWFwL2J1ZmZlcmVkLWlvLmMKJiM0MzsmIzQzOyYjNDM7IGIvZnMvaW9tYXAvYnVmZmVyZWQtaW8uYwpAQCAtMTA1LDYgJiM0MzsxMDUsMzMgQEAgc3RhdGljIHZvaWQgaW9tYXBfc2V0X3JhbmdlX3VwdG9kYXRlKHN0cnVjdCBmb2xpbyAqZm9saW8sIHNpemVfdCBvZmYsCiAJCWZvbGlvX21hcmtfdXB0b2RhdGUoZm9saW8pOwogfQogCiYjNDM7dm9pZCBpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlKHN0cnVjdCBmb2xpbyAqZm9saW8pCiYjNDM7ewomIzQzOwlpb21hcF9zZXRfcmFuZ2VfdXB0b2RhdGUoZm9saW8sIDAsIGZvbGlvX3NpemUoZm9saW8pKTsKJiM0Mzt9CiYjNDM7RVhQT1JUX1NZTUJPTF9HUEwoaW9tYXBfZm9saW9fbWFya191cHRvZGF0ZSk7CiYjNDM7CiYjNDM7dm9pZCBpb21hcF9mb2xpb19jbGVhcl91cHRvZGF0ZShzdHJ1Y3QgZm9saW8gKmZvbGlvKQomIzQzO3sKJiM0MzsJc3RydWN0IGlvbWFwX2ZvbGlvX3N0YXRlICppZnMgPSBmb2xpby0mZ3Q7cHJpdmF0ZTsKJiM0MzsJdW5zaWduZWQgbG9uZyBmbGFnczsKJiM0MzsKJiM0MzsJaWYgKCFmb2xpb190ZXN0X3VwdG9kYXRlKGZvbGlvKSkKJiM0MzsJCXJldHVybjsKJiM0MzsKJiM0MzsJaWYgKGlmcykgewomIzQzOwkJc3RydWN0IGlub2RlICppbm9kZSA9IGZvbGlvLSZndDttYXBwaW5nLSZndDtob3N0OwomIzQzOwkJdW5zaWduZWQgaW50IG5yX2Jsa3MgPSBpX2Jsb2Nrc19wZXJfZm9saW8oaW5vZGUsIGZvbGlvKTsKJiM0MzsKJiM0MzsJCXNwaW5fbG9ja19pcnFzYXZlKCZhbXA7aWZzLSZndDtzdGF0ZV9sb2NrLCBmbGFncyk7CiYjNDM7CQliaXRtYXBfY2xlYXIoaWZzLSZndDtzdGF0ZSwgMCwgbnJfYmxrcyk7CiYjNDM7CQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZhbXA7aWZzLSZndDtzdGF0ZV9sb2NrLCBmbGFncyk7CiYjNDM7CX0KJiM0MzsKJiM0MzsJZm9saW9fY2xlYXJfdXB0b2RhdGUoZm9saW8pOwomIzQzO30KJiM0MztFWFBPUlRfU1lNQk9MX0dQTChpb21hcF9mb2xpb19jbGVhcl91cHRvZGF0ZSk7CiYjNDM7CiAvKgogICogRmluZCB0aGUgbmV4dCBkaXJ0eSBibG9jayBpbiB0aGUgZm9saW8uIGVuZF9ibGsgaXMgaW5jbHVzaXZlLgogICogSWYgbm8gZGlydHkgYmxvY2sgaXMgZm91bmQsIHRoaXMgd2lsbCByZXR1cm4gZW5kX2JsayAmIzQzOyAxLgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pb21hcC5oIGIvaW5jbHVkZS9saW51eC9pb21hcC5oCmluZGV4IDM1ODJlZDFmZTIzNjExLi5mMTNhZTQyNWY1NTI5YiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9pb21hcC5oCiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbGludXgvaW9tYXAuaApAQCAtMzY1LDYgJiM0MzszNjUsOCBAQCBzdHJ1Y3QgZm9saW8gKmlvbWFwX2dldF9mb2xpbyhzdHJ1Y3QgaW9tYXBfaXRlciAqaXRlciwgbG9mZl90IHBvcywgc2l6ZV90IGxlbik7CiBib29sIGlvbWFwX3JlbGVhc2VfZm9saW8oc3RydWN0IGZvbGlvICpmb2xpbywgZ2ZwX3QgZ2ZwX2ZsYWdzKTsKIHZvaWQgaW9tYXBfaW52YWxpZGF0ZV9mb2xpbyhzdHJ1Y3QgZm9saW8gKmZvbGlvLCBzaXplX3Qgb2Zmc2V0LCBzaXplX3QgbGVuKTsKIGJvb2wgaW9tYXBfZGlydHlfZm9saW8oc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIHN0cnVjdCBmb2xpbyAqZm9saW8pOwomIzQzO3ZvaWQgaW9tYXBfZm9saW9fbWFya191cHRvZGF0ZShzdHJ1Y3QgZm9saW8gKmZvbGlvKTsKJiM0Mzt2b2lkIGlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlKHN0cnVjdCBmb2xpbyAqZm9saW8pOwogaW50IGlvbWFwX2ZpbGVfdW5zaGFyZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBsb2ZmX3QgcG9zLCBsb2ZmX3QgbGVuLAogCQljb25zdCBzdHJ1Y3QgaW9tYXBfb3BzICpvcHMsCiAJCWNvbnN0IHN0cnVjdCBpb21hcF93cml0ZV9vcHMgKndyaXRlX29wcyk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDIwOjQxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMxMjIKCQkJCQkJCW91dHB1dDogMzEKCQkJCQkJCXRob3VnaHRzOiAyMjYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRlVTRS9JT01BUCBGb2xpbyBVcHRvZGF0ZSBTdGF0ZSBVcGRhdGUgRnV6emluZyBQbGFuKioKCk9rYXksIHNvIHdlIGhhdmUgYSBwYXRjaCB0aGF0JiMzOTtzIGludHJvZHVjaW5nIGNoYW5nZXMgcmVsYXRlZCB0byBob3cgRlVTRSBpbnRlcmFjdHMgd2l0aCB0aGUgZm9saW8gdXB0b2RhdGUgc3RhdGUsIHNwZWNpZmljYWxseSB1c2luZyBgaW9tYXBfZm9saW9fbWFya191cHRvZGF0ZWAgYW5kIGBpb21hcF9mb2xpb19jbGVhcl91cHRvZGF0ZWAuIFRoZXNlIG5ldyBmdW5jdGlvbnMgYXJlIGluIGBmcy9pb21hcC9idWZmZXJlZC1pby5jYCBhbmQgYmVpbmcgdXNlZCBieSBgZnMvZnVzZS9maWxlLmNgIGFuZCBgZnMvZnVzZS9ub3RpZnkuY2AsIHNvIHdlJiMzOTtyZSB0YWxraW5nIGFib3V0IGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCByZXF1aXJlcyBjYXJlZnVsIGZ1enppbmcuIFRoaXMgaXMgYSBnb29kIG9wcG9ydHVuaXR5IHRvIHVuY292ZXIgcG90ZW50aWFsIGlzc3VlcyBpbiBob3cgRlVTRSBhbmQgSU9NQVAgaW50ZXJhY3QsIGVzcGVjaWFsbHkgYXJvdW5kIHRoZXNlIG5ldyBzdGF0ZSBtYW5hZ2VtZW50IHJvdXRpbmVzLgoKTXkgaW5pdGlhbCBmb2N1cyB3aWxsIGJlIG9uIHRoZSBjcml0aWNhbCBmdW5jdGlvbnMgZGlyZWN0bHkgaW1wYWN0ZWQ6IGBmdXNlX3NlbmRfd3JpdGVfcGFnZXNgLCBgZnVzZV9maWxsX3dyaXRlX3BhZ2VzYCwgYW5kIGBmdXNlX25vdGlmeV9zdG9yZWAuIFRoZXNlIGFyZSB0aGUgRlVTRS1zcGVjaWZpYyBlbnRyeSBwb2ludHMuIEJ1dCBvZiBjb3Vyc2UsIHRoZSBuZXcgSU9NQVAgZnVuY3Rpb25zIHRoZW1zZWx2ZXMgYXJlIGNydWNpYWw6IGBpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlYCBhbmQgYGlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlYCB3aGljaCB0aGlzIHBhdGNoIGludHJvZHVjZXMuIEkgbmVlZCB0byBtYWtlIHN1cmUgbXkgZnV6emluZyB0YXJnZXRzIGFsbCBvZiB0aGVzZS4KCk5leHQsIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhlIGtlcm5lbCBpcyBjb25maWd1cmVkIGNvcnJlY3RseSBmb3IgdGhpcyB3b3JrLiBXZSBoYXZlIGBDT05GSUdfRlVTRV9GU2AgZW5hYmxpbmcgRlVTRSwgYW5kIGBDT05GSUdfRlNfSU9NQVBgIGVuYWJsaW5nIElPTUFQLiBJJiMzOTtsbCB2ZXJpZnkgdGhhdCB0aGVzZSBvcHRpb25zIGFyZSBpbmRlZWQgZW5hYmxlZCBkdXJpbmcgbXkgZnV6emluZyBydW5zLiBJdCBpcyBpbXBvcnRhbnQgdG8ga25vdyBpZiB0aGVzZSBhcmUgZW5hYmxlZCwgZXNwZWNpYWxseSBpZiB0aGUgZnV6emluZyBnZW5lcmF0ZXMgYnVpbGRzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDIwOjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBGVVNFX0ZTJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZnMvZnVzZS9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL2Z1c2UvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuZnMvZnVzZS9LY29uZmlnOjI6Y29uZmlnIEZVU0VfRlNcbmZzL2Z1c2UvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7RlVTRSAoRmlsZXN5c3RlbSBpbiBVc2Vyc3BhY2UpIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMyAyMDo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzODAyCgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCBkZWxpdmVyZWQgYXMgYSBmaXJzdC1wZXJzb24gcGVyc3BlY3RpdmU6CgoqKk15IERlZXAgRGl2ZSBpbnRvIEZTX0lPTUFQKioKCkFscmlnaHQsIGxldCYjMzk7cyB1bnBhY2sgdGhpcyBGU19JT01BUCBzdHVmZi4gTXkgaW5pdGlhbCBpbXByZXNzaW9uIGlzIHRoYXQgdGhpcyBpcyBhIGNyaXRpY2FsIHBpZWNlLCBhIGZvdW5kYXRpb25hbCBlbGVtZW50IGluIG1vZGVybiBmaWxlIHN5c3RlbSBkZXNpZ24sIHBhcnRpY3VsYXJseSB3aGVuIGRlYWxpbmcgd2l0aCB0aGUgY2hhbGxlbmdlcyBvZiBkaXJlY3QgSS9PIGFuZCBjb25jdXJyZW50IGFjY2Vzcy4gSSBpbW1lZGlhdGVseSBzZWUgdGhlIGltcG9ydGFuY2Ugb2YgdW5kZXJzdGFuZGluZyBob3cgdGhpcyBzdHJ1Y3R1cmUsIG9yIHRoZSBzZXQgb2Ygc3RydWN0dXJlcywgZmFjaWxpdGF0ZXMgdGhlIG1hcHBpbmcgYmV0d2VlbiBsb2dpY2FsIGZpbGUgb2Zmc2V0cyBhbmQgdGhlIHBoeXNpY2FsIGJsb2NrcyBvbiBkaXNrLiBJdOKAmXMgdGhlIGxpbmNocGluLCBpc24mIzM5O3QgaXQ/IFdpdGhvdXQgYSByb2J1c3QgSU9NQVAsIGVmZmljaWVudGx5IG5hdmlnYXRpbmcgYW5kIG1hbmFnaW5nIHRoZSBjb21wbGV4aXRpZXMgb2YgZGF0YSBwbGFjZW1lbnQgYW5kIHJldHJpZXZhbCB3b3VsZCBiZSBhIG5pZ2h0bWFyZSwgZXNwZWNpYWxseSBjb25zaWRlcmluZyB0aGUgbmVlZCBmb3Igb3BlcmF0aW9ucyBsaWtlIHNwYXJzZSBmaWxlcywgaG9sZSBwdW5jaGluZywgYW5kIGJsb2NrIGFsbG9jYXRpb24uCgpJJiMzOTttIHRoaW5raW5nIGFib3V0IHRoZSB2YXJpb3VzIGltcGxlbWVudGF0aW9ucyBJJiMzOTt2ZSBlbmNvdW50ZXJlZCBhbmQgdGhlIHRyYWRlLW9mZnMgdGhleSByZXByZXNlbnQuIFRoZSBjaG9pY2Ugb2YgdGhlIElPTUFQIHN0cnVjdHVyZSBoYXMgcHJvZm91bmQgaW1wbGljYXRpb25zIG9uIHBlcmZvcm1hbmNlLiBDb25zaWRlciB0aGUgaW1wYWN0IG9uIG1ldGFkYXRhIG9wZXJhdGlvbnMsIHRoZSBvdmVyaGVhZCBvZiBsb29rdXBzLCBhbmQgdGhlIHBvdGVudGlhbCBmb3IgY29udGVudGlvbi4gRGlmZmVyZW50IHN0cmF0ZWdpZXMgYXJlIGdvaW5nIHRvIHNoaW5lIHVuZGVyIGRpZmZlcmVudCB3b3JrbG9hZHMuIFdlJiMzOTtyZSB0YWxraW5nIGFib3V0IHNvcGhpc3RpY2F0ZWQgYWxnb3JpdGhtcyB0aGF0IG5lZWQgdG8gaGFuZGxlIGNvbXBsZXggc2NlbmFyaW9zIGxpa2UgZXh0ZW5kaW5nIGFuZCB0cnVuY2F0aW5nIGZpbGVzLCBoYW5kbGluZyBmcmFnbWVudGVkIGRhdGEsIGFuZCBkZWFsaW5nIHdpdGggY29uY3VycmVudCBhY2Nlc3MgZnJvbSBtdWx0aXBsZSBwcm9jZXNzZXMuIFVuZGVyc3RhbmRpbmcgdGhlIGludHJpY2FjaWVzIG9mIGNhY2hpbmcgbWVjaGFuaXNtcyBoZXJlIGlzIGFsc28gY3JpdGljYWw7IGl04oCZcyBhbiBvcHRpbWl6YXRpb24gZ2FtZS4KCkkgYWxzbyBzZWUgaXRzIHJlbGV2YW5jZSBpbiBtb2Rlcm4gZmlsZSBzeXN0ZW1zIHRoYXQgc3VwcG9ydCBhZHZhbmNlZCBmZWF0dXJlcyBsaWtlIGNvcHktb24td3JpdGUsIHNuYXBzaG90cywgb3IgZXZlbiBkYXRhIGRlZHVwbGljYXRpb24uIEhvdyBkb2VzIHRoZSBJT01BUCBpbnRlcmFjdCB3aXRoIHRoZXNlIGZ1bmN0aW9uYWxpdGllcz8gRG9lcyBpdCBuZWVkIHRvIGJlIG1vZGlmaWVkIG9yIGV4dGVuZGVkIHRvIHN1cHBvcnQgdGhlbSBlZmZlY3RpdmVseT8gVGhlIHdheSBpdCBoYW5kbGVzIHRoZXNlIHRoaW5ncyBhcmUgZ29pbmcgdG8gYmUga2V5IHRvIGVmZmljaWVuY3kuCgpJ4oCZbSBwYXJ0aWN1bGFybHkgaW50ZXJlc3RlZCBpbiB0aGUgSU9NQVAmIzM5O3MgaW50ZXJhY3Rpb24gd2l0aCB0aGUgYmxvY2sgYWxsb2NhdG9yLiBIb3cgZG9lcyBpdCBlbnN1cmUgdGhhdCBkYXRhIGlzIHBsYWNlZCBpbiB0aGUgbW9zdCBlZmZpY2llbnQgbWFubmVyLCBjb25zaWRlcmluZyBmYWN0b3JzIGxpa2UgZGlzayBsYXlvdXQsIFJBSUQgY29uZmlndXJhdGlvbnMsIGFuZCBTU0Qgd2VhciBsZXZlbGluZz8gQXJlIHRoZXJlIHRlY2huaXF1ZXMgdG8gbWluaW1pemUgZnJhZ21lbnRhdGlvbiBvciBvcHRpbWl6ZSBmb3Igc2VxdWVudGlhbCBhY2Nlc3MgcGF0dGVybnM/IEFuZCB3aGF0IGFib3V0IHRoZSBpbXBhY3Qgb24gZXJyb3IgaGFuZGxpbmcgYW5kIGRhdGEgaW50ZWdyaXR5PyBXaGVuIGEgYmxvY2sgZ29lcyBiYWQsIGhvdyBkb2VzIHRoZSBJT01BUCBoZWxwIHRvIHJlY292ZXIgYW5kIGVuc3VyZSB0aGUgZmlsZSBzeXN0ZW0gcmVtYWlucyBjb25zaXN0ZW50PyBJIGltYWdpbmUgcm9idXN0IGpvdXJuYWxpbmcgb3IgdHJhbnNhY3Rpb24gbG9nZ2luZyBpcyBhIG11c3QgdG8ga2VlcCB0aGUgc3lzdGVtIGluIGEgY29uc2lzdGVudCBzdGF0ZS4KClVsdGltYXRlbHksIEkgdmlldyB0aGlzIGFzIGEgc29waGlzdGljYXRlZCwgZmluZWx5LXR1bmVkIGluc3RydW1lbnQuIEl0cyBkZXNpZ24gZGlyZWN0bHkgaW1wYWN0cyBvdmVyYWxsIGZpbGUgc3lzdGVtIHBlcmZvcm1hbmNlLCBzY2FsYWJpbGl0eSwgYW5kIHJlbGlhYmlsaXR5LiBNYXN0ZXJpbmcgaXQgaXMga2V5IHRvIGRlc2lnbmluZyBoaWdoLXBlcmZvcm1hbmNlIGFuZCByb2J1c3Qgc3RvcmFnZSBzb2x1dGlvbnMuIEl04oCZcyBhbiBhcmVhIHdoZXJlIGRlZXAgdW5kZXJzdGFuZGluZyBpcyBhbHdheXMgd29ydGggdGhlIGVmZm9ydC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMyAyMDo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBGU19JT01BUCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2ZzL2lvbWFwL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDIwOjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQzODUKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiAxNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBGU19JT01BUCBDb25maWd1cmF0aW9uIE9wdGlvbioqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZGl2ZSBpbi4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gZ28gc3RyYWlnaHQgdG8gdGhlIHNvdXJjZSDigJMgdGhlIGBmcy9LY29uZmlnYCBmaWxlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY3VycmVudCBzdGF0ZSBvZiBgRlNfSU9NQVBgLiBJIHdhbnQgdG8ga25vdyB3aGVyZSBpdCYjMzk7cyBkZWZpbmVkLCB3aGF0IGRlcGVuZGVuY2llcyBpdCBtaWdodCBoYXZlLCB3aGF0IHRoZSBkZWZhdWx0IHNldHRpbmcgaXMsIGFuZCB3aGF0IHRoZSBhc3NvY2lhdGVkIGhlbHAgdGV4dCBzYXlzLiBVbmRlcnN0YW5kaW5nIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgaXMgcGFyYW1vdW50LiBJIG5lZWQgdG8gYmUgc3VyZSBhYm91dCBpdHMgaW1wbGljYXRpb25zIGFuZCB3aGF0IG90aGVyIGZlYXR1cmVzIGFyZSB0aWVkIHRvIHRoaXMgb25lLiBUaGlzIEtjb25maWcgZmlsZSB3aWxsIGJlIHRoZSBzdGFydGluZyBwb2ludCB0byB1bmRlcnN0YW5kIHRoZSB3aWRlciBzeXN0ZW0mIzM5O3MgY29uZmlndXJhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMyAyMDo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgRlNfSU9NQVAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL0tjb25maWc9MTI9Y29uZmlnIFZBTElEQVRFX0ZTX1BBUlNFUlxuLS1cbmZzL0tjb25maWctMTctXG5mcy9LY29uZmlnOjE4OmNvbmZpZyBGU19JT01BUFxuZnMvS2NvbmZpZy0xOS1cdGJvb2xcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMyAyMDo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NjQ0CgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogMzUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKkludmVzdGlnYXRpbmcgRlNfSU9NQVAgYW5kIEZVU0UgQ29tcGF0aWJpbGl0eSoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZGl2ZSBpbi4gSSBrbm93IGBGU19JT01BUGAgaXMgYSBib29sZWFuIGNvbmZpZywgYW5kIEkmIzM5O20gcHJldHR5IGZhbWlsaWFyIHdpdGggaG93IGl0JiMzOTtzIHR5cGljYWxseSB1c2VkIGFuZCBzZWxlY3RlZCBieSBvdGhlciBmaWxlc3lzdGVtcy4gQnV0IEkmIzM5O20gY3VyaW91cyBhYm91dCB0aGUgc3BlY2lmaWMgaW50ZXJhY3Rpb24gd2l0aCBGVVNFLiBTbywgSSBuZWVkIHRvIGNoZWNrIHNvbWV0aGluZyDigJMgaXMgYEZTX0lPTUFQYCBhY3R1YWxseSBlbmFibGVkIGJ5IGRlZmF1bHQgd2l0aGluIEZVU0UgaXRzZWxmPyBPciBpcyBpdCBzaW1wbHkgYXZhaWxhYmxlIGFzIGFuIG9wdGlvbiB0aGF0IEZVU0UgKmNvdWxkKiBsZXZlcmFnZSBpZiBjb25maWd1cmVkIGVsc2V3aGVyZT8gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hldGhlciBGVVNFIHByb2FjdGl2ZWx5IHV0aWxpemVzIGl0LCBvciBpZiBpdCYjMzk7cyBwYXNzaXZlLCBlc3NlbnRpYWxseSBqdXN0IHByb3ZpZGluZyB0aGUgaG9va3MgaWYgdGhlIHVuZGVybHlpbmcgc3RvcmFnZSBsYXllciBvciBhIGhpZ2hlci1sZXZlbCBtb2R1bGUgY2hvb3NlcyB0byB1c2UgaXQuIFRoYXQmIzM5O3MgdGhlIGtleSBxdWVzdGlvbiBJIG5lZWQgdG8gYW5zd2VyIHJpZ2h0IG5vdy4gS25vd2luZyB0aGUgcmVsYXRpb25zaGlwIGhlcmUgd2lsbCBoZWxwIG1lIHVuZGVyc3RhbmQgaG93IEZVU0UgaW50ZXJhY3RzIHdpdGggSS9PIGFuZCBwb3RlbnRpYWwgb3B0aW1pemF0aW9uIHN0cmF0ZWdpZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDIwOjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NlbGVjdCBGU19JT01BUCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2ZzL2Z1c2UvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtmcy9mdXNlL0tjb25maWc9Mj1jb25maWcgRlVTRV9GU1xuLS1cbmZzL2Z1c2UvS2NvbmZpZy00LVx0c2VsZWN0IEZTX1BPU0lYX0FDTFxuZnMvZnVzZS9LY29uZmlnOjU6XHRzZWxlY3QgRlNfSU9NQVBcbmZzL2Z1c2UvS2NvbmZpZy02LVx0aGVscFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMyAyMDo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0OTk3CgkJCQkJCQlvdXRwdXQ6IDE3NAoJCQkJCQkJdGhvdWdodHM6IDQ4MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEZVU0UgRmlsZXN5c3RlbSBDaGFuZ2UgZm9yIFBvdGVudGlhbCBJc3N1ZXMqKgoKT2theSwgc28gRlVTRV9GUyBpcyB0aGUga2V5IGNvbmZpZyBoZXJlLCBhcyBpdCBzZWxlY3RzIEZTX0lPTUFQLCBtZWFuaW5nIHdlIGFyZSBzcGVjaWZpY2FsbHkgZGVhbGluZyB3aXRoIEZVU0UmIzM5O3MgaW50ZXJhY3Rpb24gd2l0aCB0aGUgSS9PIG1hcHBpbmcgc3lzdGVtLiBNeSBmb2N1cyBuZWVkcyB0byBiZSBvbiB0aGVzZSBmdW5jdGlvbnM6IGBmdXNlX3NlbmRfd3JpdGVfcGFnZXNgLCBgZnVzZV9maWxsX3dyaXRlX3BhZ2VzYCwgYGZ1c2Vfbm90aWZ5X3N0b3JlYCwgYGlvbWFwX2ZvbGlvX21hcmtfdXB0b2RhdGVgLCBhbmQgYGlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlYC4KCkZpcnN0LCBsZXQmIzM5O3MgZXN0YWJsaXNoIGNvbnRleHQuIGBmdXNlX3NlbmRfd3JpdGVfcGFnZXNgIGlzIGRlZmluaXRlbHkgcGFydCBvZiB0aGUgRlVTRSB3cml0ZSBwYXRoLCBzbyBpdCYjMzk7cyBsaWtlbHkgYSBob3QgcGF0aCwgdGhvdWdoIHNwZWNpZmljIHRvIEZVU0Ugd3JpdGVzLiBgZnVzZV9ub3RpZnlfc3RvcmVgIGlzIGFsc28gRlVTRS1zcGVjaWZpYy4gVGhlIGBpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlYCBhbmQgYGlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlYCBmdW5jdGlvbnMgYXJlICpuZXcqLCBhbmQgdGhlcmVmb3JlIGluaGVyZW50bHkgaW50ZXJlc3RpbmcgZnJvbSBhIGZ1enppbmcgcGVyc3BlY3RpdmUsIGVzcGVjaWFsbHkgZ2l2ZW4gdGhlIHBvdGVudGlhbCBmb3Igb2ZmLWJ5LW9uZSBlcnJvcnMgb3IgaW5jb3JyZWN0IHN0YXRlIG1hbmFnZW1lbnQuCgpUaGUgcmVhc29uaW5nIGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQ6IHRoaXMgcGF0Y2ggaW50ZWdyYXRlcyBuZXcgZm9saW8gdXB0b2RhdGUgbWFuYWdlbWVudCBmdW5jdGlvbnMgKGBpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlYCwgYGlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlYCkgd2l0aGluIHRoZSBGVVNFIHdyaXRlIGFuZCBub3RpZnkgcGF0aHMsIHdoaWNoIGludm9sdmUgY29yZSBmaWxlc3lzdGVtIGxvZ2ljIGFuZCBGVVNFLiBJbmNvcnJlY3QgaGFuZGxpbmcgb2YgZm9saW8gc3RhdGUgaXMgYSBjbGFzc2ljIHNvdXJjZSBvZiBkYXRhIGNvcnJ1cHRpb24gb3IgY3Jhc2hlcywgc28gSSBuZWVkIHRvIHNlZSB0aGlzIGNsZWFybHkuCgpHaXZlbiB0aGF0IGBmdXNlX2ZpbGxfd3JpdGVfcGFnZXNgIGFuZCBgZnVzZV9zZW5kX3dyaXRlX3BhZ2VzYCBhcmUgcGFydCBvZiB0aGUgRlVTRSB3cml0ZSBwYXRoLCB0aGlzIHBhdGNoIGlzIGludHJvZHVjaW5nIGEgY2hhbmdlIGluIHByZWNpc2VseSB0aGUgbG9naWMgd2hlcmUgaXQmIzM5O3MgbW9zdCBpbXBvcnRhbnQgdG8gdGVzdC4gYGZ1c2Vfbm90aWZ5X3N0b3JlYCBpcyBhbHNvIHNwZWNpZmljIHRvIEZVU0UgYW5kIGEgZ29vZCB0YXJnZXQsIGJ1dCBzaW5jZSB0aGUgbmV3IGZ1bmN0aW9ucyBhcmUgbmV3LCB0aGV5IGFyZSBoaWdoIHByaW9yaXR5IGZvciBhIHF1aWNrIGZ1enogdG8gc2VlIGlmIHRoZXkmIzM5O3JlIGhhbmRsZWQgY29ycmVjdGx5LgoKSSYjMzk7bSB0aGlua2luZyBJJiMzOTtsbCB1c2UgYHNldC1yZXN1bHRzYCBoZXJlIHRvIGdldCB0aGlzIGRvbmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIzIDIwOjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtGVVNFX0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZnVzZV9zZW5kX3dyaXRlX3BhZ2VzJiMzNDssCiAgICAmIzM0O2Z1c2VfZmlsbF93cml0ZV9wYWdlcyYjMzQ7LAogICAgJiMzNDtmdXNlX25vdGlmeV9zdG9yZSYjMzQ7LAogICAgJiMzNDtpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlJiMzNDssCiAgICAmIzM0O2lvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGludHJvZHVjZXMgbmV3IGlvbWFwIGZvbGlvIHVwdG9kYXRlIG1hbmFnZW1lbnQgZnVuY3Rpb25zIChgaW9tYXBfZm9saW9fbWFya191cHRvZGF0ZWAsIGBpb21hcF9mb2xpb19jbGVhcl91cHRvZGF0ZWApIGFuZCBpbnRlZ3JhdGVzIHRoZW0gaW50byB0aGUgRlVTRSBmaWxlc3lzdGVtJiMzOTtzIHdyaXRlIGFuZCBub3RpZnkgcGF0aHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIGZpbGVzeXN0ZW0gYW5kIEZVU0UgbG9naWMgdGhhdCBoYW5kbGVzIGZvbGlvIHN0YXRlLCB3aGljaCBjb3VsZCBsZWFkIHRvIGRhdGEgY29ycnVwdGlvbiBvciBjcmFzaGVzIGlmIGluY29ycmVjdC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7RlVTRV9GUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2Z1c2Vfc2VuZF93cml0ZV9wYWdlcyYjMzQ7LAogICAgJiMzNDtmdXNlX2ZpbGxfd3JpdGVfcGFnZXMmIzM0OywKICAgICYjMzQ7ZnVzZV9ub3RpZnlfc3RvcmUmIzM0OywKICAgICYjMzQ7aW9tYXBfZm9saW9fbWFya191cHRvZGF0ZSYjMzQ7LAogICAgJiMzNDtpb21hcF9mb2xpb19jbGVhcl91cHRvZGF0ZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBpb21hcCBmb2xpbyB1cHRvZGF0ZSBtYW5hZ2VtZW50IGZ1bmN0aW9ucyAoYGlvbWFwX2ZvbGlvX21hcmtfdXB0b2RhdGVgLCBgaW9tYXBfZm9saW9fY2xlYXJfdXB0b2RhdGVgKSBhbmQgaW50ZWdyYXRlcyB0aGVtIGludG8gdGhlIEZVU0UgZmlsZXN5c3RlbSYjMzk7cyB3cml0ZSBhbmQgbm90aWZ5IHBhdGhzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBmaWxlc3lzdGVtIGFuZCBGVVNFIGxvZ2ljIHRoYXQgaGFuZGxlcyBmb2xpbyBzdGF0ZSwgd2hpY2ggY291bGQgbGVhZCB0byBkYXRhIGNvcnJ1cHRpb24gb3IgY3Jhc2hlcyBpZiBpbmNvcnJlY3QuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNi0yM1QyMDo0MTo1NC41NjI3MzkxNjRaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNjg1ODAxOTA2NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJGVVNFX0ZTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZnVzZV9zZW5kX3dyaXRlX3BhZ2VzXCIsXG4gICAgXCJmdXNlX2ZpbGxfd3JpdGVfcGFnZXNcIixcbiAgICBcImZ1c2Vfbm90aWZ5X3N0b3JlXCIsXG4gICAgXCJpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlXCIsXG4gICAgXCJpb21hcF9mb2xpb19jbGVhcl91cHRvZGF0ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgbmV3IGlvbWFwIGZvbGlvIHVwdG9kYXRlIG1hbmFnZW1lbnQgZnVuY3Rpb25zIChgaW9tYXBfZm9saW9fbWFya191cHRvZGF0ZWAsIGBpb21hcF9mb2xpb19jbGVhcl91cHRvZGF0ZWApIGFuZCBpbnRlZ3JhdGVzIHRoZW0gaW50byB0aGUgRlVTRSBmaWxlc3lzdGVtJ3Mgd3JpdGUgYW5kIG5vdGlmeSBwYXRocy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgZmlsZXN5c3RlbSBhbmQgRlVTRSBsb2dpYyB0aGF0IGhhbmRsZXMgZm9saW8gc3RhdGUsIHdoaWNoIGNvdWxkIGxlYWQgdG8gZGF0YSBjb3JydXB0aW9uIG9yIGNyYXNoZXMgaWYgaW5jb3JyZWN0LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QyMDo0MTo1NC41NjI3NDM2ODRaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUzNDYwODI1OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGNmOTliODFkNmY0ZWQ2ZWFlOWMwYzk2NDA4ZTA4NWM0MmNjNGU1MjBcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBKdW4gMjMgMjA6NDE6NTMgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZnMvZnVzZS9maWxlLmMgYi9mcy9mdXNlL2ZpbGUuY1xcbmluZGV4IGUwNTJhMGQ0NGRlZTA2Li4xMmEyYWE2MDVmNmIzMSAxMDA2NDRcXG4tLS0gYS9mcy9mdXNlL2ZpbGUuY1xcbisrKyBiL2ZzL2Z1c2UvZmlsZS5jXFxuQEAgLTEyNTAsMTMgKzEyNTAsMTMgQEAgc3RhdGljIHNzaXplX3QgZnVzZV9zZW5kX3dyaXRlX3BhZ2VzKHN0cnVjdCBmdXNlX2lvX2FyZ3MgKmlhLFxcbiBcXHRcXHRzdHJ1Y3QgZm9saW8gKmZvbGlvID0gYXAtXFx1MDAzZWZvbGlvc1tpXTtcXG4gXFxuIFxcdFxcdGlmIChlcnIpIHtcXG4tXFx0XFx0XFx0Zm9saW9fY2xlYXJfdXB0b2RhdGUoZm9saW8pO1xcbitcXHRcXHRcXHRpb21hcF9mb2xpb19jbGVhcl91cHRvZGF0ZShmb2xpbyk7XFxuIFxcdFxcdH0gZWxzZSB7XFxuIFxcdFxcdFxcdGlmIChjb3VudCBcXHUwMDNlPSBmb2xpb19zaXplKGZvbGlvKSAtIG9mZnNldClcXG4gXFx0XFx0XFx0XFx0Y291bnQgLT0gZm9saW9fc2l6ZShmb2xpbykgLSBvZmZzZXQ7XFxuIFxcdFxcdFxcdGVsc2Uge1xcbiBcXHRcXHRcXHRcXHRpZiAoc2hvcnRfd3JpdGUpXFxuLVxcdFxcdFxcdFxcdFxcdGZvbGlvX2NsZWFyX3VwdG9kYXRlKGZvbGlvKTtcXG4rXFx0XFx0XFx0XFx0XFx0aW9tYXBfZm9saW9fY2xlYXJfdXB0b2RhdGUoZm9saW8pO1xcbiBcXHRcXHRcXHRcXHRjb3VudCA9IDA7XFxuIFxcdFxcdFxcdH1cXG4gXFx0XFx0XFx0b2Zmc2V0ID0gMDtcXG5AQCAtMTMzNSw3ICsxMzM1LDcgQEAgc3RhdGljIHNzaXplX3QgZnVzZV9maWxsX3dyaXRlX3BhZ2VzKHN0cnVjdCBmdXNlX2lvX2FyZ3MgKmlhLFxcbiBcXG4gXFx0XFx0LyogSWYgd2UgY29waWVkIGZ1bGwgZm9saW8sIG1hcmsgaXQgdXB0b2RhdGUgKi9cXG4gXFx0XFx0aWYgKHRtcCA9PSBmb2xpb19zaXplKGZvbGlvKSlcXG4tXFx0XFx0XFx0Zm9saW9fbWFya191cHRvZGF0ZShmb2xpbyk7XFxuK1xcdFxcdFxcdGlvbWFwX2ZvbGlvX21hcmtfdXB0b2RhdGUoZm9saW8pO1xcbiBcXG4gXFx0XFx0aWYgKGZvbGlvX3Rlc3RfdXB0b2RhdGUoZm9saW8pKSB7XFxuIFxcdFxcdFxcdGZvbGlvX3VubG9jayhmb2xpbyk7XFxuZGlmZiAtLWdpdCBhL2ZzL2Z1c2Uvbm90aWZ5LmMgYi9mcy9mdXNlL25vdGlmeS5jXFxuaW5kZXggMjk1NzgxMDRhZTZjZDYuLjFiYTc2MzcwNWQ5MTE5IDEwMDY0NFxcbi0tLSBhL2ZzL2Z1c2Uvbm90aWZ5LmNcXG4rKysgYi9mcy9mdXNlL25vdGlmeS5jXFxuQEAgLTIsNiArMiw4IEBAXFxuIFxcbiAjaW5jbHVkZSBcXFwiZGV2LmhcXFwiXFxuICNpbmNsdWRlIFxcXCJmdXNlX2kuaFxcXCJcXG4rXFxuKyNpbmNsdWRlIFxcdTAwM2NsaW51eC9pb21hcC5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvcGFnZW1hcC5oXFx1MDAzZVxcbiBcXG4gc3RhdGljIGludCBmdXNlX25vdGlmeV9wb2xsKHN0cnVjdCBmdXNlX2Nvbm4gKmZjLCB1bnNpZ25lZCBpbnQgc2l6ZSxcXG5AQCAtMTkyLDcgKzE5NCw3IEBAIHN0YXRpYyBpbnQgZnVzZV9ub3RpZnlfc3RvcmUoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHVuc2lnbmVkIGludCBzaXplLFxcbiBcXHRcXHRpZiAoIWZvbGlvX3Rlc3RfdXB0b2RhdGUoZm9saW8pIFxcdTAwMjZcXHUwMDI2ICFlcnIgXFx1MDAyNlxcdTAwMjYgZm9saW9fb2Zmc2V0ID09IDAgXFx1MDAyNlxcdTAwMjZcXG4gXFx0XFx0ICAgIChucl9ieXRlcyA9PSBmb2xpb19zaXplKGZvbGlvKSB8fCBmaWxlX3NpemUgPT0gZW5kKSkge1xcbiBcXHRcXHRcXHRmb2xpb196ZXJvX3NlZ21lbnQoZm9saW8sIG5yX2J5dGVzLCBmb2xpb19zaXplKGZvbGlvKSk7XFxuLVxcdFxcdFxcdGZvbGlvX21hcmtfdXB0b2RhdGUoZm9saW8pO1xcbitcXHRcXHRcXHRpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlKGZvbGlvKTtcXG4gXFx0XFx0fVxcbiBcXHRcXHRmb2xpb191bmxvY2soZm9saW8pO1xcbiBcXHRcXHRmb2xpb19wdXQoZm9saW8pO1xcbmRpZmYgLS1naXQgYS9mcy9pb21hcC9idWZmZXJlZC1pby5jIGIvZnMvaW9tYXAvYnVmZmVyZWQtaW8uY1xcbmluZGV4IDhkNDgwNmRjNDZkNDY4Li4zMTdmYTdhZjk4YmQyMyAxMDA2NDRcXG4tLS0gYS9mcy9pb21hcC9idWZmZXJlZC1pby5jXFxuKysrIGIvZnMvaW9tYXAvYnVmZmVyZWQtaW8uY1xcbkBAIC0xMDUsNiArMTA1LDMzIEBAIHN0YXRpYyB2b2lkIGlvbWFwX3NldF9yYW5nZV91cHRvZGF0ZShzdHJ1Y3QgZm9saW8gKmZvbGlvLCBzaXplX3Qgb2ZmLFxcbiBcXHRcXHRmb2xpb19tYXJrX3VwdG9kYXRlKGZvbGlvKTtcXG4gfVxcbiBcXG4rdm9pZCBpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlKHN0cnVjdCBmb2xpbyAqZm9saW8pXFxuK3tcXG4rXFx0aW9tYXBfc2V0X3JhbmdlX3VwdG9kYXRlKGZvbGlvLCAwLCBmb2xpb19zaXplKGZvbGlvKSk7XFxuK31cXG4rRVhQT1JUX1NZTUJPTF9HUEwoaW9tYXBfZm9saW9fbWFya191cHRvZGF0ZSk7XFxuK1xcbit2b2lkIGlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlKHN0cnVjdCBmb2xpbyAqZm9saW8pXFxuK3tcXG4rXFx0c3RydWN0IGlvbWFwX2ZvbGlvX3N0YXRlICppZnMgPSBmb2xpby1cXHUwMDNlcHJpdmF0ZTtcXG4rXFx0dW5zaWduZWQgbG9uZyBmbGFncztcXG4rXFxuK1xcdGlmICghZm9saW9fdGVzdF91cHRvZGF0ZShmb2xpbykpXFxuK1xcdFxcdHJldHVybjtcXG4rXFxuK1xcdGlmIChpZnMpIHtcXG4rXFx0XFx0c3RydWN0IGlub2RlICppbm9kZSA9IGZvbGlvLVxcdTAwM2VtYXBwaW5nLVxcdTAwM2Vob3N0O1xcbitcXHRcXHR1bnNpZ25lZCBpbnQgbnJfYmxrcyA9IGlfYmxvY2tzX3Blcl9mb2xpbyhpbm9kZSwgZm9saW8pO1xcbitcXG4rXFx0XFx0c3Bpbl9sb2NrX2lycXNhdmUoXFx1MDAyNmlmcy1cXHUwMDNlc3RhdGVfbG9jaywgZmxhZ3MpO1xcbitcXHRcXHRiaXRtYXBfY2xlYXIoaWZzLVxcdTAwM2VzdGF0ZSwgMCwgbnJfYmxrcyk7XFxuK1xcdFxcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXFx1MDAyNmlmcy1cXHUwMDNlc3RhdGVfbG9jaywgZmxhZ3MpO1xcbitcXHR9XFxuK1xcbitcXHRmb2xpb19jbGVhcl91cHRvZGF0ZShmb2xpbyk7XFxuK31cXG4rRVhQT1JUX1NZTUJPTF9HUEwoaW9tYXBfZm9saW9fY2xlYXJfdXB0b2RhdGUpO1xcbitcXG4gLypcXG4gICogRmluZCB0aGUgbmV4dCBkaXJ0eSBibG9jayBpbiB0aGUgZm9saW8uIGVuZF9ibGsgaXMgaW5jbHVzaXZlLlxcbiAgKiBJZiBubyBkaXJ0eSBibG9jayBpcyBmb3VuZCwgdGhpcyB3aWxsIHJldHVybiBlbmRfYmxrICsgMS5cXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pb21hcC5oIGIvaW5jbHVkZS9saW51eC9pb21hcC5oXFxuaW5kZXggMzU4MmVkMWZlMjM2MTEuLmYxM2FlNDI1ZjU1MjliIDEwMDY0NFxcbi0tLSBhL2luY2x1ZGUvbGludXgvaW9tYXAuaFxcbisrKyBiL2luY2x1ZGUvbGludXgvaW9tYXAuaFxcbkBAIC0zNjUsNiArMzY1LDggQEAgc3RydWN0IGZvbGlvICppb21hcF9nZXRfZm9saW8oc3RydWN0IGlvbWFwX2l0ZXIgKml0ZXIsIGxvZmZfdCBwb3MsIHNpemVfdCBsZW4pO1xcbiBib29sIGlvbWFwX3JlbGVhc2VfZm9saW8oc3RydWN0IGZvbGlvICpmb2xpbywgZ2ZwX3QgZ2ZwX2ZsYWdzKTtcXG4gdm9pZCBpb21hcF9pbnZhbGlkYXRlX2ZvbGlvKHN0cnVjdCBmb2xpbyAqZm9saW8sIHNpemVfdCBvZmZzZXQsIHNpemVfdCBsZW4pO1xcbiBib29sIGlvbWFwX2RpcnR5X2ZvbGlvKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCBzdHJ1Y3QgZm9saW8gKmZvbGlvKTtcXG4rdm9pZCBpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlKHN0cnVjdCBmb2xpbyAqZm9saW8pO1xcbit2b2lkIGlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlKHN0cnVjdCBmb2xpbyAqZm9saW8pO1xcbiBpbnQgaW9tYXBfZmlsZV91bnNoYXJlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGxvZmZfdCBwb3MsIGxvZmZfdCBsZW4sXFxuIFxcdFxcdGNvbnN0IHN0cnVjdCBpb21hcF9vcHMgKm9wcyxcXG4gXFx0XFx0Y29uc3Qgc3RydWN0IGlvbWFwX3dyaXRlX29wcyAqd3JpdGVfb3BzKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjNUMjA6NDE6NTUuMDk4MjA5MTUzWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNjMyMjUzOTY2OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJGVVNFX0ZTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZnVzZV9zZW5kX3dyaXRlX3BhZ2VzXCIsXG4gICAgXCJmdXNlX2ZpbGxfd3JpdGVfcGFnZXNcIixcbiAgICBcImZ1c2Vfbm90aWZ5X3N0b3JlXCIsXG4gICAgXCJpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlXCIsXG4gICAgXCJpb21hcF9mb2xpb19jbGVhcl91cHRvZGF0ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgbmV3IGlvbWFwIGZvbGlvIHVwdG9kYXRlIG1hbmFnZW1lbnQgZnVuY3Rpb25zIChgaW9tYXBfZm9saW9fbWFya191cHRvZGF0ZWAsIGBpb21hcF9mb2xpb19jbGVhcl91cHRvZGF0ZWApIGFuZCBpbnRlZ3JhdGVzIHRoZW0gaW50byB0aGUgRlVTRSBmaWxlc3lzdGVtJ3Mgd3JpdGUgYW5kIG5vdGlmeSBwYXRocy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgZmlsZXN5c3RlbSBhbmQgRlVTRSBsb2dpYyB0aGF0IGhhbmRsZXMgZm9saW8gc3RhdGUsIHdoaWNoIGNvdWxkIGxlYWQgdG8gZGF0YSBjb3JydXB0aW9uIG9yIGNyYXNoZXMgaWYgaW5jb3JyZWN0LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGNmOTliODFkNmY0ZWQ2ZWFlOWMwYzk2NDA4ZTA4NWM0MmNjNGU1MjBcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1biAyMyAyMDo0MTo1MyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2ZzL2Z1c2UvZmlsZS5jIGIvZnMvZnVzZS9maWxlLmNcbmluZGV4IGUwNTJhMGQ0NGRlZTA2Li4xMmEyYWE2MDVmNmIzMSAxMDA2NDRcbi0tLSBhL2ZzL2Z1c2UvZmlsZS5jXG4rKysgYi9mcy9mdXNlL2ZpbGUuY1xuQEAgLTEyNTAsMTMgKzEyNTAsMTMgQEAgc3RhdGljIHNzaXplX3QgZnVzZV9zZW5kX3dyaXRlX3BhZ2VzKHN0cnVjdCBmdXNlX2lvX2FyZ3MgKmlhLFxuIFx0XHRzdHJ1Y3QgZm9saW8gKmZvbGlvID0gYXAtXHUwMDNlZm9saW9zW2ldO1xuIFxuIFx0XHRpZiAoZXJyKSB7XG4tXHRcdFx0Zm9saW9fY2xlYXJfdXB0b2RhdGUoZm9saW8pO1xuK1x0XHRcdGlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlKGZvbGlvKTtcbiBcdFx0fSBlbHNlIHtcbiBcdFx0XHRpZiAoY291bnQgXHUwMDNlPSBmb2xpb19zaXplKGZvbGlvKSAtIG9mZnNldClcbiBcdFx0XHRcdGNvdW50IC09IGZvbGlvX3NpemUoZm9saW8pIC0gb2Zmc2V0O1xuIFx0XHRcdGVsc2Uge1xuIFx0XHRcdFx0aWYgKHNob3J0X3dyaXRlKVxuLVx0XHRcdFx0XHRmb2xpb19jbGVhcl91cHRvZGF0ZShmb2xpbyk7XG4rXHRcdFx0XHRcdGlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlKGZvbGlvKTtcbiBcdFx0XHRcdGNvdW50ID0gMDtcbiBcdFx0XHR9XG4gXHRcdFx0b2Zmc2V0ID0gMDtcbkBAIC0xMzM1LDcgKzEzMzUsNyBAQCBzdGF0aWMgc3NpemVfdCBmdXNlX2ZpbGxfd3JpdGVfcGFnZXMoc3RydWN0IGZ1c2VfaW9fYXJncyAqaWEsXG4gXG4gXHRcdC8qIElmIHdlIGNvcGllZCBmdWxsIGZvbGlvLCBtYXJrIGl0IHVwdG9kYXRlICovXG4gXHRcdGlmICh0bXAgPT0gZm9saW9fc2l6ZShmb2xpbykpXG4tXHRcdFx0Zm9saW9fbWFya191cHRvZGF0ZShmb2xpbyk7XG4rXHRcdFx0aW9tYXBfZm9saW9fbWFya191cHRvZGF0ZShmb2xpbyk7XG4gXG4gXHRcdGlmIChmb2xpb190ZXN0X3VwdG9kYXRlKGZvbGlvKSkge1xuIFx0XHRcdGZvbGlvX3VubG9jayhmb2xpbyk7XG5kaWZmIC0tZ2l0IGEvZnMvZnVzZS9ub3RpZnkuYyBiL2ZzL2Z1c2Uvbm90aWZ5LmNcbmluZGV4IDI5NTc4MTA0YWU2Y2Q2Li4xYmE3NjM3MDVkOTExOSAxMDA2NDRcbi0tLSBhL2ZzL2Z1c2Uvbm90aWZ5LmNcbisrKyBiL2ZzL2Z1c2Uvbm90aWZ5LmNcbkBAIC0yLDYgKzIsOCBAQFxuIFxuICNpbmNsdWRlIFwiZGV2LmhcIlxuICNpbmNsdWRlIFwiZnVzZV9pLmhcIlxuK1xuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L2lvbWFwLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9wYWdlbWFwLmhcdTAwM2VcbiBcbiBzdGF0aWMgaW50IGZ1c2Vfbm90aWZ5X3BvbGwoc3RydWN0IGZ1c2VfY29ubiAqZmMsIHVuc2lnbmVkIGludCBzaXplLFxuQEAgLTE5Miw3ICsxOTQsNyBAQCBzdGF0aWMgaW50IGZ1c2Vfbm90aWZ5X3N0b3JlKHN0cnVjdCBmdXNlX2Nvbm4gKmZjLCB1bnNpZ25lZCBpbnQgc2l6ZSxcbiBcdFx0aWYgKCFmb2xpb190ZXN0X3VwdG9kYXRlKGZvbGlvKSBcdTAwMjZcdTAwMjYgIWVyciBcdTAwMjZcdTAwMjYgZm9saW9fb2Zmc2V0ID09IDAgXHUwMDI2XHUwMDI2XG4gXHRcdCAgICAobnJfYnl0ZXMgPT0gZm9saW9fc2l6ZShmb2xpbykgfHwgZmlsZV9zaXplID09IGVuZCkpIHtcbiBcdFx0XHRmb2xpb196ZXJvX3NlZ21lbnQoZm9saW8sIG5yX2J5dGVzLCBmb2xpb19zaXplKGZvbGlvKSk7XG4tXHRcdFx0Zm9saW9fbWFya191cHRvZGF0ZShmb2xpbyk7XG4rXHRcdFx0aW9tYXBfZm9saW9fbWFya191cHRvZGF0ZShmb2xpbyk7XG4gXHRcdH1cbiBcdFx0Zm9saW9fdW5sb2NrKGZvbGlvKTtcbiBcdFx0Zm9saW9fcHV0KGZvbGlvKTtcbmRpZmYgLS1naXQgYS9mcy9pb21hcC9idWZmZXJlZC1pby5jIGIvZnMvaW9tYXAvYnVmZmVyZWQtaW8uY1xuaW5kZXggOGQ0ODA2ZGM0NmQ0NjguLjMxN2ZhN2FmOThiZDIzIDEwMDY0NFxuLS0tIGEvZnMvaW9tYXAvYnVmZmVyZWQtaW8uY1xuKysrIGIvZnMvaW9tYXAvYnVmZmVyZWQtaW8uY1xuQEAgLTEwNSw2ICsxMDUsMzMgQEAgc3RhdGljIHZvaWQgaW9tYXBfc2V0X3JhbmdlX3VwdG9kYXRlKHN0cnVjdCBmb2xpbyAqZm9saW8sIHNpemVfdCBvZmYsXG4gXHRcdGZvbGlvX21hcmtfdXB0b2RhdGUoZm9saW8pO1xuIH1cbiBcbit2b2lkIGlvbWFwX2ZvbGlvX21hcmtfdXB0b2RhdGUoc3RydWN0IGZvbGlvICpmb2xpbylcbit7XG4rXHRpb21hcF9zZXRfcmFuZ2VfdXB0b2RhdGUoZm9saW8sIDAsIGZvbGlvX3NpemUoZm9saW8pKTtcbit9XG4rRVhQT1JUX1NZTUJPTF9HUEwoaW9tYXBfZm9saW9fbWFya191cHRvZGF0ZSk7XG4rXG4rdm9pZCBpb21hcF9mb2xpb19jbGVhcl91cHRvZGF0ZShzdHJ1Y3QgZm9saW8gKmZvbGlvKVxuK3tcbitcdHN0cnVjdCBpb21hcF9mb2xpb19zdGF0ZSAqaWZzID0gZm9saW8tXHUwMDNlcHJpdmF0ZTtcbitcdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XG4rXG4rXHRpZiAoIWZvbGlvX3Rlc3RfdXB0b2RhdGUoZm9saW8pKVxuK1x0XHRyZXR1cm47XG4rXG4rXHRpZiAoaWZzKSB7XG4rXHRcdHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmb2xpby1cdTAwM2VtYXBwaW5nLVx1MDAzZWhvc3Q7XG4rXHRcdHVuc2lnbmVkIGludCBucl9ibGtzID0gaV9ibG9ja3NfcGVyX2ZvbGlvKGlub2RlLCBmb2xpbyk7XG4rXG4rXHRcdHNwaW5fbG9ja19pcnFzYXZlKFx1MDAyNmlmcy1cdTAwM2VzdGF0ZV9sb2NrLCBmbGFncyk7XG4rXHRcdGJpdG1hcF9jbGVhcihpZnMtXHUwMDNlc3RhdGUsIDAsIG5yX2Jsa3MpO1xuK1x0XHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFx1MDAyNmlmcy1cdTAwM2VzdGF0ZV9sb2NrLCBmbGFncyk7XG4rXHR9XG4rXG4rXHRmb2xpb19jbGVhcl91cHRvZGF0ZShmb2xpbyk7XG4rfVxuK0VYUE9SVF9TWU1CT0xfR1BMKGlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlKTtcbitcbiAvKlxuICAqIEZpbmQgdGhlIG5leHQgZGlydHkgYmxvY2sgaW4gdGhlIGZvbGlvLiBlbmRfYmxrIGlzIGluY2x1c2l2ZS5cbiAgKiBJZiBubyBkaXJ0eSBibG9jayBpcyBmb3VuZCwgdGhpcyB3aWxsIHJldHVybiBlbmRfYmxrICsgMS5cbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2lvbWFwLmggYi9pbmNsdWRlL2xpbnV4L2lvbWFwLmhcbmluZGV4IDM1ODJlZDFmZTIzNjExLi5mMTNhZTQyNWY1NTI5YiAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbGludXgvaW9tYXAuaFxuKysrIGIvaW5jbHVkZS9saW51eC9pb21hcC5oXG5AQCAtMzY1LDYgKzM2NSw4IEBAIHN0cnVjdCBmb2xpbyAqaW9tYXBfZ2V0X2ZvbGlvKHN0cnVjdCBpb21hcF9pdGVyICppdGVyLCBsb2ZmX3QgcG9zLCBzaXplX3QgbGVuKTtcbiBib29sIGlvbWFwX3JlbGVhc2VfZm9saW8oc3RydWN0IGZvbGlvICpmb2xpbywgZ2ZwX3QgZ2ZwX2ZsYWdzKTtcbiB2b2lkIGlvbWFwX2ludmFsaWRhdGVfZm9saW8oc3RydWN0IGZvbGlvICpmb2xpbywgc2l6ZV90IG9mZnNldCwgc2l6ZV90IGxlbik7XG4gYm9vbCBpb21hcF9kaXJ0eV9mb2xpbyhzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywgc3RydWN0IGZvbGlvICpmb2xpbyk7XG4rdm9pZCBpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlKHN0cnVjdCBmb2xpbyAqZm9saW8pO1xuK3ZvaWQgaW9tYXBfZm9saW9fY2xlYXJfdXB0b2RhdGUoc3RydWN0IGZvbGlvICpmb2xpbyk7XG4gaW50IGlvbWFwX2ZpbGVfdW5zaGFyZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBsb2ZmX3QgcG9zLCBsb2ZmX3QgbGVuLFxuIFx0XHRjb25zdCBzdHJ1Y3QgaW9tYXBfb3BzICpvcHMsXG4gXHRcdGNvbnN0IHN0cnVjdCBpb21hcF93cml0ZV9vcHMgKndyaXRlX29wcyk7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QyMDo0MTo1NS4wOTgyMTA2MDNaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2OTYyMDQwMDMyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZVU0UvSU9NQVAgRm9saW8gVXB0b2RhdGUgU3RhdGUgVXBkYXRlIEZ1enppbmcgUGxhbioqXG5cbk9rYXksIHNvIHdlIGhhdmUgYSBwYXRjaCB0aGF0J3MgaW50cm9kdWNpbmcgY2hhbmdlcyByZWxhdGVkIHRvIGhvdyBGVVNFIGludGVyYWN0cyB3aXRoIHRoZSBmb2xpbyB1cHRvZGF0ZSBzdGF0ZSwgc3BlY2lmaWNhbGx5IHVzaW5nIGBpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlYCBhbmQgYGlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlYC4gVGhlc2UgbmV3IGZ1bmN0aW9ucyBhcmUgaW4gYGZzL2lvbWFwL2J1ZmZlcmVkLWlvLmNgIGFuZCBiZWluZyB1c2VkIGJ5IGBmcy9mdXNlL2ZpbGUuY2AgYW5kIGBmcy9mdXNlL25vdGlmeS5jYCwgc28gd2UncmUgdGFsa2luZyBhYm91dCBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgcmVxdWlyZXMgY2FyZWZ1bCBmdXp6aW5nLiBUaGlzIGlzIGEgZ29vZCBvcHBvcnR1bml0eSB0byB1bmNvdmVyIHBvdGVudGlhbCBpc3N1ZXMgaW4gaG93IEZVU0UgYW5kIElPTUFQIGludGVyYWN0LCBlc3BlY2lhbGx5IGFyb3VuZCB0aGVzZSBuZXcgc3RhdGUgbWFuYWdlbWVudCByb3V0aW5lcy5cblxuTXkgaW5pdGlhbCBmb2N1cyB3aWxsIGJlIG9uIHRoZSBjcml0aWNhbCBmdW5jdGlvbnMgZGlyZWN0bHkgaW1wYWN0ZWQ6IGBmdXNlX3NlbmRfd3JpdGVfcGFnZXNgLCBgZnVzZV9maWxsX3dyaXRlX3BhZ2VzYCwgYW5kIGBmdXNlX25vdGlmeV9zdG9yZWAuIFRoZXNlIGFyZSB0aGUgRlVTRS1zcGVjaWZpYyBlbnRyeSBwb2ludHMuIEJ1dCBvZiBjb3Vyc2UsIHRoZSBuZXcgSU9NQVAgZnVuY3Rpb25zIHRoZW1zZWx2ZXMgYXJlIGNydWNpYWw6IGBpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlYCBhbmQgYGlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlYCB3aGljaCB0aGlzIHBhdGNoIGludHJvZHVjZXMuIEkgbmVlZCB0byBtYWtlIHN1cmUgbXkgZnV6emluZyB0YXJnZXRzIGFsbCBvZiB0aGVzZS5cblxuTmV4dCwgSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUga2VybmVsIGlzIGNvbmZpZ3VyZWQgY29ycmVjdGx5IGZvciB0aGlzIHdvcmsuIFdlIGhhdmUgYENPTkZJR19GVVNFX0ZTYCBlbmFibGluZyBGVVNFLCBhbmQgYENPTkZJR19GU19JT01BUGAgZW5hYmxpbmcgSU9NQVAuIEknbGwgdmVyaWZ5IHRoYXQgdGhlc2Ugb3B0aW9ucyBhcmUgaW5kZWVkIGVuYWJsZWQgZHVyaW5nIG15IGZ1enppbmcgcnVucy4gSXQgaXMgaW1wb3J0YW50IHRvIGtub3cgaWYgdGhlc2UgYXJlIGVuYWJsZWQsIGVzcGVjaWFsbHkgaWYgdGhlIGZ1enppbmcgZ2VuZXJhdGVzIGJ1aWxkcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzEyMiwiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIyNiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDIwOjQyOjAyLjA2MDI1MzQ5NVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NjkyNTAwOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgRlVTRV9GU1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJmcy9mdXNlL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZnMvZnVzZS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZnMvZnVzZS9LY29uZmlnOjI6Y29uZmlnIEZVU0VfRlNcXG5mcy9mdXNlL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiRlVTRSAoRmlsZXN5c3RlbSBpbiBVc2Vyc3BhY2UpIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDIwOjQyOjAyLjEyNzE5MzIwM1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ4ODEyMDY1NjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCBkZWxpdmVyZWQgYXMgYSBmaXJzdC1wZXJzb24gcGVyc3BlY3RpdmU6XG5cbioqTXkgRGVlcCBEaXZlIGludG8gRlNfSU9NQVAqKlxuXG5BbHJpZ2h0LCBsZXQncyB1bnBhY2sgdGhpcyBGU19JT01BUCBzdHVmZi4gTXkgaW5pdGlhbCBpbXByZXNzaW9uIGlzIHRoYXQgdGhpcyBpcyBhIGNyaXRpY2FsIHBpZWNlLCBhIGZvdW5kYXRpb25hbCBlbGVtZW50IGluIG1vZGVybiBmaWxlIHN5c3RlbSBkZXNpZ24sIHBhcnRpY3VsYXJseSB3aGVuIGRlYWxpbmcgd2l0aCB0aGUgY2hhbGxlbmdlcyBvZiBkaXJlY3QgSS9PIGFuZCBjb25jdXJyZW50IGFjY2Vzcy4gSSBpbW1lZGlhdGVseSBzZWUgdGhlIGltcG9ydGFuY2Ugb2YgdW5kZXJzdGFuZGluZyBob3cgdGhpcyBzdHJ1Y3R1cmUsIG9yIHRoZSBzZXQgb2Ygc3RydWN0dXJlcywgZmFjaWxpdGF0ZXMgdGhlIG1hcHBpbmcgYmV0d2VlbiBsb2dpY2FsIGZpbGUgb2Zmc2V0cyBhbmQgdGhlIHBoeXNpY2FsIGJsb2NrcyBvbiBkaXNrLiBJdOKAmXMgdGhlIGxpbmNocGluLCBpc24ndCBpdD8gV2l0aG91dCBhIHJvYnVzdCBJT01BUCwgZWZmaWNpZW50bHkgbmF2aWdhdGluZyBhbmQgbWFuYWdpbmcgdGhlIGNvbXBsZXhpdGllcyBvZiBkYXRhIHBsYWNlbWVudCBhbmQgcmV0cmlldmFsIHdvdWxkIGJlIGEgbmlnaHRtYXJlLCBlc3BlY2lhbGx5IGNvbnNpZGVyaW5nIHRoZSBuZWVkIGZvciBvcGVyYXRpb25zIGxpa2Ugc3BhcnNlIGZpbGVzLCBob2xlIHB1bmNoaW5nLCBhbmQgYmxvY2sgYWxsb2NhdGlvbi5cblxuSSdtIHRoaW5raW5nIGFib3V0IHRoZSB2YXJpb3VzIGltcGxlbWVudGF0aW9ucyBJJ3ZlIGVuY291bnRlcmVkIGFuZCB0aGUgdHJhZGUtb2ZmcyB0aGV5IHJlcHJlc2VudC4gVGhlIGNob2ljZSBvZiB0aGUgSU9NQVAgc3RydWN0dXJlIGhhcyBwcm9mb3VuZCBpbXBsaWNhdGlvbnMgb24gcGVyZm9ybWFuY2UuIENvbnNpZGVyIHRoZSBpbXBhY3Qgb24gbWV0YWRhdGEgb3BlcmF0aW9ucywgdGhlIG92ZXJoZWFkIG9mIGxvb2t1cHMsIGFuZCB0aGUgcG90ZW50aWFsIGZvciBjb250ZW50aW9uLiBEaWZmZXJlbnQgc3RyYXRlZ2llcyBhcmUgZ29pbmcgdG8gc2hpbmUgdW5kZXIgZGlmZmVyZW50IHdvcmtsb2Fkcy4gV2UncmUgdGFsa2luZyBhYm91dCBzb3BoaXN0aWNhdGVkIGFsZ29yaXRobXMgdGhhdCBuZWVkIHRvIGhhbmRsZSBjb21wbGV4IHNjZW5hcmlvcyBsaWtlIGV4dGVuZGluZyBhbmQgdHJ1bmNhdGluZyBmaWxlcywgaGFuZGxpbmcgZnJhZ21lbnRlZCBkYXRhLCBhbmQgZGVhbGluZyB3aXRoIGNvbmN1cnJlbnQgYWNjZXNzIGZyb20gbXVsdGlwbGUgcHJvY2Vzc2VzLiBVbmRlcnN0YW5kaW5nIHRoZSBpbnRyaWNhY2llcyBvZiBjYWNoaW5nIG1lY2hhbmlzbXMgaGVyZSBpcyBhbHNvIGNyaXRpY2FsOyBpdOKAmXMgYW4gb3B0aW1pemF0aW9uIGdhbWUuXG5cbkkgYWxzbyBzZWUgaXRzIHJlbGV2YW5jZSBpbiBtb2Rlcm4gZmlsZSBzeXN0ZW1zIHRoYXQgc3VwcG9ydCBhZHZhbmNlZCBmZWF0dXJlcyBsaWtlIGNvcHktb24td3JpdGUsIHNuYXBzaG90cywgb3IgZXZlbiBkYXRhIGRlZHVwbGljYXRpb24uIEhvdyBkb2VzIHRoZSBJT01BUCBpbnRlcmFjdCB3aXRoIHRoZXNlIGZ1bmN0aW9uYWxpdGllcz8gRG9lcyBpdCBuZWVkIHRvIGJlIG1vZGlmaWVkIG9yIGV4dGVuZGVkIHRvIHN1cHBvcnQgdGhlbSBlZmZlY3RpdmVseT8gVGhlIHdheSBpdCBoYW5kbGVzIHRoZXNlIHRoaW5ncyBhcmUgZ29pbmcgdG8gYmUga2V5IHRvIGVmZmljaWVuY3kuXG5cbknigJltIHBhcnRpY3VsYXJseSBpbnRlcmVzdGVkIGluIHRoZSBJT01BUCdzIGludGVyYWN0aW9uIHdpdGggdGhlIGJsb2NrIGFsbG9jYXRvci4gSG93IGRvZXMgaXQgZW5zdXJlIHRoYXQgZGF0YSBpcyBwbGFjZWQgaW4gdGhlIG1vc3QgZWZmaWNpZW50IG1hbm5lciwgY29uc2lkZXJpbmcgZmFjdG9ycyBsaWtlIGRpc2sgbGF5b3V0LCBSQUlEIGNvbmZpZ3VyYXRpb25zLCBhbmQgU1NEIHdlYXIgbGV2ZWxpbmc/IEFyZSB0aGVyZSB0ZWNobmlxdWVzIHRvIG1pbmltaXplIGZyYWdtZW50YXRpb24gb3Igb3B0aW1pemUgZm9yIHNlcXVlbnRpYWwgYWNjZXNzIHBhdHRlcm5zPyBBbmQgd2hhdCBhYm91dCB0aGUgaW1wYWN0IG9uIGVycm9yIGhhbmRsaW5nIGFuZCBkYXRhIGludGVncml0eT8gV2hlbiBhIGJsb2NrIGdvZXMgYmFkLCBob3cgZG9lcyB0aGUgSU9NQVAgaGVscCB0byByZWNvdmVyIGFuZCBlbnN1cmUgdGhlIGZpbGUgc3lzdGVtIHJlbWFpbnMgY29uc2lzdGVudD8gSSBpbWFnaW5lIHJvYnVzdCBqb3VybmFsaW5nIG9yIHRyYW5zYWN0aW9uIGxvZ2dpbmcgaXMgYSBtdXN0IHRvIGtlZXAgdGhlIHN5c3RlbSBpbiBhIGNvbnNpc3RlbnQgc3RhdGUuXG5cblVsdGltYXRlbHksIEkgdmlldyB0aGlzIGFzIGEgc29waGlzdGljYXRlZCwgZmluZWx5LXR1bmVkIGluc3RydW1lbnQuIEl0cyBkZXNpZ24gZGlyZWN0bHkgaW1wYWN0cyBvdmVyYWxsIGZpbGUgc3lzdGVtIHBlcmZvcm1hbmNlLCBzY2FsYWJpbGl0eSwgYW5kIHJlbGlhYmlsaXR5LiBNYXN0ZXJpbmcgaXQgaXMga2V5IHRvIGRlc2lnbmluZyBoaWdoLXBlcmZvcm1hbmNlIGFuZCByb2J1c3Qgc3RvcmFnZSBzb2x1dGlvbnMuIEl04oCZcyBhbiBhcmVhIHdoZXJlIGRlZXAgdW5kZXJzdGFuZGluZyBpcyBhbHdheXMgd29ydGggdGhlIGVmZm9ydC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzgwMiwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjNUMjA6NDI6MDcuMDA4NDAxMzc5WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU5NTA0OTU4LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgRlNfSU9NQVBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZnMvaW9tYXAvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjNUMjA6NDI6MDcuMDY3OTE1MDc3WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjM4Nzk3NjM2OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgRlNfSU9NQVAgQ29uZmlndXJhdGlvbiBPcHRpb24qKlxuXG5BbHJpZ2h0LCBsZXQncyBkaXZlIGluLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0byBnbyBzdHJhaWdodCB0byB0aGUgc291cmNlIOKAkyB0aGUgYGZzL0tjb25maWdgIGZpbGUuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjdXJyZW50IHN0YXRlIG9mIGBGU19JT01BUGAuIEkgd2FudCB0byBrbm93IHdoZXJlIGl0J3MgZGVmaW5lZCwgd2hhdCBkZXBlbmRlbmNpZXMgaXQgbWlnaHQgaGF2ZSwgd2hhdCB0aGUgZGVmYXVsdCBzZXR0aW5nIGlzLCBhbmQgd2hhdCB0aGUgYXNzb2NpYXRlZCBoZWxwIHRleHQgc2F5cy4gVW5kZXJzdGFuZGluZyB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGlzIHBhcmFtb3VudC4gSSBuZWVkIHRvIGJlIHN1cmUgYWJvdXQgaXRzIGltcGxpY2F0aW9ucyBhbmQgd2hhdCBvdGhlciBmZWF0dXJlcyBhcmUgdGllZCB0byB0aGlzIG9uZS4gVGhpcyBLY29uZmlnIGZpbGUgd2lsbCBiZSB0aGUgc3RhcnRpbmcgcG9pbnQgdG8gdW5kZXJzdGFuZCB0aGUgd2lkZXIgc3lzdGVtJ3MgY29uZmlndXJhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6NDM4NSwiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDIwOjQyOjA5LjQ1NTg5NDAxNloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NzM4NTY4OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgRlNfSU9NQVBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZnMvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy9LY29uZmlnPTEyPWNvbmZpZyBWQUxJREFURV9GU19QQVJTRVJcXG4tLVxcbmZzL0tjb25maWctMTctXFxuZnMvS2NvbmZpZzoxODpjb25maWcgRlNfSU9NQVBcXG5mcy9LY29uZmlnLTE5LVxcdGJvb2xcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjNUMjA6NDI6MDkuNTEzMjg2MzY1WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzU0MDgzMzgyNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIHByZXNlbnRlZCBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKkludmVzdGlnYXRpbmcgRlNfSU9NQVAgYW5kIEZVU0UgQ29tcGF0aWJpbGl0eSoqXG5cbkFscmlnaHQsIGxldCdzIGRpdmUgaW4uIEkga25vdyBgRlNfSU9NQVBgIGlzIGEgYm9vbGVhbiBjb25maWcsIGFuZCBJJ20gcHJldHR5IGZhbWlsaWFyIHdpdGggaG93IGl0J3MgdHlwaWNhbGx5IHVzZWQgYW5kIHNlbGVjdGVkIGJ5IG90aGVyIGZpbGVzeXN0ZW1zLiBCdXQgSSdtIGN1cmlvdXMgYWJvdXQgdGhlIHNwZWNpZmljIGludGVyYWN0aW9uIHdpdGggRlVTRS4gU28sIEkgbmVlZCB0byBjaGVjayBzb21ldGhpbmcg4oCTIGlzIGBGU19JT01BUGAgYWN0dWFsbHkgZW5hYmxlZCBieSBkZWZhdWx0IHdpdGhpbiBGVVNFIGl0c2VsZj8gT3IgaXMgaXQgc2ltcGx5IGF2YWlsYWJsZSBhcyBhbiBvcHRpb24gdGhhdCBGVVNFICpjb3VsZCogbGV2ZXJhZ2UgaWYgY29uZmlndXJlZCBlbHNld2hlcmU/IEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoZXRoZXIgRlVTRSBwcm9hY3RpdmVseSB1dGlsaXplcyBpdCwgb3IgaWYgaXQncyBwYXNzaXZlLCBlc3NlbnRpYWxseSBqdXN0IHByb3ZpZGluZyB0aGUgaG9va3MgaWYgdGhlIHVuZGVybHlpbmcgc3RvcmFnZSBsYXllciBvciBhIGhpZ2hlci1sZXZlbCBtb2R1bGUgY2hvb3NlcyB0byB1c2UgaXQuIFRoYXQncyB0aGUga2V5IHF1ZXN0aW9uIEkgbmVlZCB0byBhbnN3ZXIgcmlnaHQgbm93LiBLbm93aW5nIHRoZSByZWxhdGlvbnNoaXAgaGVyZSB3aWxsIGhlbHAgbWUgdW5kZXJzdGFuZCBob3cgRlVTRSBpbnRlcmFjdHMgd2l0aCBJL08gYW5kIHBvdGVudGlhbCBvcHRpbWl6YXRpb24gc3RyYXRlZ2llcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDY0NCwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIzVDIwOjQyOjEzLjA1NDEyMjgyOVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTc3NzkyMTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic2VsZWN0IEZTX0lPTUFQXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImZzL2Z1c2UvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy9mdXNlL0tjb25maWc9Mj1jb25maWcgRlVTRV9GU1xcbi0tXFxuZnMvZnVzZS9LY29uZmlnLTQtXFx0c2VsZWN0IEZTX1BPU0lYX0FDTFxcbmZzL2Z1c2UvS2NvbmZpZzo1OlxcdHNlbGVjdCBGU19JT01BUFxcbmZzL2Z1c2UvS2NvbmZpZy02LVxcdGhlbHBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjNUMjA6NDI6MTMuMTExOTA4NTI4WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjgyMDUxNzY4MDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBGVVNFIEZpbGVzeXN0ZW0gQ2hhbmdlIGZvciBQb3RlbnRpYWwgSXNzdWVzKipcblxuT2theSwgc28gRlVTRV9GUyBpcyB0aGUga2V5IGNvbmZpZyBoZXJlLCBhcyBpdCBzZWxlY3RzIEZTX0lPTUFQLCBtZWFuaW5nIHdlIGFyZSBzcGVjaWZpY2FsbHkgZGVhbGluZyB3aXRoIEZVU0UncyBpbnRlcmFjdGlvbiB3aXRoIHRoZSBJL08gbWFwcGluZyBzeXN0ZW0uIE15IGZvY3VzIG5lZWRzIHRvIGJlIG9uIHRoZXNlIGZ1bmN0aW9uczogYGZ1c2Vfc2VuZF93cml0ZV9wYWdlc2AsIGBmdXNlX2ZpbGxfd3JpdGVfcGFnZXNgLCBgZnVzZV9ub3RpZnlfc3RvcmVgLCBgaW9tYXBfZm9saW9fbWFya191cHRvZGF0ZWAsIGFuZCBgaW9tYXBfZm9saW9fY2xlYXJfdXB0b2RhdGVgLlxuXG5GaXJzdCwgbGV0J3MgZXN0YWJsaXNoIGNvbnRleHQuIGBmdXNlX3NlbmRfd3JpdGVfcGFnZXNgIGlzIGRlZmluaXRlbHkgcGFydCBvZiB0aGUgRlVTRSB3cml0ZSBwYXRoLCBzbyBpdCdzIGxpa2VseSBhIGhvdCBwYXRoLCB0aG91Z2ggc3BlY2lmaWMgdG8gRlVTRSB3cml0ZXMuIGBmdXNlX25vdGlmeV9zdG9yZWAgaXMgYWxzbyBGVVNFLXNwZWNpZmljLiBUaGUgYGlvbWFwX2ZvbGlvX21hcmtfdXB0b2RhdGVgIGFuZCBgaW9tYXBfZm9saW9fY2xlYXJfdXB0b2RhdGVgIGZ1bmN0aW9ucyBhcmUgKm5ldyosIGFuZCB0aGVyZWZvcmUgaW5oZXJlbnRseSBpbnRlcmVzdGluZyBmcm9tIGEgZnV6emluZyBwZXJzcGVjdGl2ZSwgZXNwZWNpYWxseSBnaXZlbiB0aGUgcG90ZW50aWFsIGZvciBvZmYtYnktb25lIGVycm9ycyBvciBpbmNvcnJlY3Qgc3RhdGUgbWFuYWdlbWVudC5cblxuVGhlIHJlYXNvbmluZyBpcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkOiB0aGlzIHBhdGNoIGludGVncmF0ZXMgbmV3IGZvbGlvIHVwdG9kYXRlIG1hbmFnZW1lbnQgZnVuY3Rpb25zIChgaW9tYXBfZm9saW9fbWFya191cHRvZGF0ZWAsIGBpb21hcF9mb2xpb19jbGVhcl91cHRvZGF0ZWApIHdpdGhpbiB0aGUgRlVTRSB3cml0ZSBhbmQgbm90aWZ5IHBhdGhzLCB3aGljaCBpbnZvbHZlIGNvcmUgZmlsZXN5c3RlbSBsb2dpYyBhbmQgRlVTRS4gSW5jb3JyZWN0IGhhbmRsaW5nIG9mIGZvbGlvIHN0YXRlIGlzIGEgY2xhc3NpYyBzb3VyY2Ugb2YgZGF0YSBjb3JydXB0aW9uIG9yIGNyYXNoZXMsIHNvIEkgbmVlZCB0byBzZWUgdGhpcyBjbGVhcmx5LlxuXG5HaXZlbiB0aGF0IGBmdXNlX2ZpbGxfd3JpdGVfcGFnZXNgIGFuZCBgZnVzZV9zZW5kX3dyaXRlX3BhZ2VzYCBhcmUgcGFydCBvZiB0aGUgRlVTRSB3cml0ZSBwYXRoLCB0aGlzIHBhdGNoIGlzIGludHJvZHVjaW5nIGEgY2hhbmdlIGluIHByZWNpc2VseSB0aGUgbG9naWMgd2hlcmUgaXQncyBtb3N0IGltcG9ydGFudCB0byB0ZXN0LiBgZnVzZV9ub3RpZnlfc3RvcmVgIGlzIGFsc28gc3BlY2lmaWMgdG8gRlVTRSBhbmQgYSBnb29kIHRhcmdldCwgYnV0IHNpbmNlIHRoZSBuZXcgZnVuY3Rpb25zIGFyZSBuZXcsIHRoZXkgYXJlIGhpZ2ggcHJpb3JpdHkgZm9yIGEgcXVpY2sgZnV6eiB0byBzZWUgaWYgdGhleSdyZSBoYW5kbGVkIGNvcnJlY3RseS5cblxuSSdtIHRoaW5raW5nIEknbGwgdXNlIGBzZXQtcmVzdWx0c2AgaGVyZSB0byBnZXQgdGhpcyBkb25lLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0OTk3LCJPdXRwdXRUb2tlbnMiOjE3NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ4MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yM1QyMDo0MjoyMS4zMTcwODc1OTNaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDM2NTYwNDgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkZVU0VfRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJmdXNlX3NlbmRfd3JpdGVfcGFnZXNcIixcbiAgICBcImZ1c2VfZmlsbF93cml0ZV9wYWdlc1wiLFxuICAgIFwiZnVzZV9ub3RpZnlfc3RvcmVcIixcbiAgICBcImlvbWFwX2ZvbGlvX21hcmtfdXB0b2RhdGVcIixcbiAgICBcImlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaW50cm9kdWNlcyBuZXcgaW9tYXAgZm9saW8gdXB0b2RhdGUgbWFuYWdlbWVudCBmdW5jdGlvbnMgKGBpb21hcF9mb2xpb19tYXJrX3VwdG9kYXRlYCwgYGlvbWFwX2ZvbGlvX2NsZWFyX3VwdG9kYXRlYCkgYW5kIGludGVncmF0ZXMgdGhlbSBpbnRvIHRoZSBGVVNFIGZpbGVzeXN0ZW0ncyB3cml0ZSBhbmQgbm90aWZ5IHBhdGhzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBmaWxlc3lzdGVtIGFuZCBGVVNFIGxvZ2ljIHRoYXQgaGFuZGxlcyBmb2xpbyBzdGF0ZSwgd2hpY2ggY291bGQgbGVhZCB0byBkYXRhIGNvcnJ1cHRpb24gb3IgY3Jhc2hlcyBpZiBpbmNvcnJlY3QuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiRlVTRV9GU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImZ1c2Vfc2VuZF93cml0ZV9wYWdlc1wiLFxuICAgIFwiZnVzZV9maWxsX3dyaXRlX3BhZ2VzXCIsXG4gICAgXCJmdXNlX25vdGlmeV9zdG9yZVwiLFxuICAgIFwiaW9tYXBfZm9saW9fbWFya191cHRvZGF0ZVwiLFxuICAgIFwiaW9tYXBfZm9saW9fY2xlYXJfdXB0b2RhdGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBpb21hcCBmb2xpbyB1cHRvZGF0ZSBtYW5hZ2VtZW50IGZ1bmN0aW9ucyAoYGlvbWFwX2ZvbGlvX21hcmtfdXB0b2RhdGVgLCBgaW9tYXBfZm9saW9fY2xlYXJfdXB0b2RhdGVgKSBhbmQgaW50ZWdyYXRlcyB0aGVtIGludG8gdGhlIEZVU0UgZmlsZXN5c3RlbSdzIHdyaXRlIGFuZCBub3RpZnkgcGF0aHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIGZpbGVzeXN0ZW0gYW5kIEZVU0UgbG9naWMgdGhhdCBoYW5kbGVzIGZvbGlvIHN0YXRlLCB3aGljaCBjb3VsZCBsZWFkIHRvIGRhdGEgY29ycnVwdGlvbiBvciBjcmFzaGVzIGlmIGluY29ycmVjdC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowvfr8z[1] Phase: Succeeded StartedAt: 2026-06-23 20:42:32 +0000 UTC FinishedAt: 2026-06-23 20:42:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfr8z[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-06-23 20:42:32 +0000 UTC FinishedAt: 2026-06-23 20:42:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfr8z[2] Phase: Succeeded StartedAt: 2026-06-23 20:42:32 +0000 UTC FinishedAt: 2026-06-24 00:35:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfr8z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["fuse_send_write_pages","fuse_fill_write_pages","fuse_notify_store","iomap_folio_mark_uptodate","iomap_folio_clear_uptodate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"30afd0fa-6b37-4bf0-a1d7-a659032df11b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-06-23 20:42:32 +0000 UTC FinishedAt: 2026-06-24 00:35:57 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["fuse_send_write_pages","fuse_fill_write_pages","fuse_notify_store","iomap_folio_mark_uptodate","iomap_folio_clear_uptodate"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"30afd0fa-6b37-4bf0-a1d7-a659032df11b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowvfr8z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["fuse_send_write_pages","fuse_fill_write_pages","fuse_notify_store","iomap_folio_mark_uptodate","iomap_folio_clear_uptodate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"30afd0fa-6b37-4bf0-a1d7-a659032df11b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-06-23 20:42:32 +0000 UTC FinishedAt: 2026-06-23 20:42:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfr8z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["fuse_send_write_pages","fuse_fill_write_pages","fuse_notify_store","iomap_folio_mark_uptodate","iomap_folio_clear_uptodate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"30afd0fa-6b37-4bf0-a1d7-a659032df11b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-06-23 20:42:32 +0000 UTC FinishedAt: 2026-06-23 20:42:37 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvfr8z/series-workflowvfr8z-convert-artifact-175286374/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvfr8z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["fuse_send_write_pages","fuse_fill_write_pages","fuse_notify_store","iomap_folio_mark_uptodate","iomap_folio_clear_uptodate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"30afd0fa-6b37-4bf0-a1d7-a659032df11b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-06-23 20:42:42 +0000 UTC FinishedAt: 2026-06-23 21:04:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfr8z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["fuse_send_write_pages","fuse_fill_write_pages","fuse_notify_store","iomap_folio_mark_uptodate","iomap_folio_clear_uptodate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"30afd0fa-6b37-4bf0-a1d7-a659032df11b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-06-23 20:42:42 +0000 UTC FinishedAt: 2026-06-23 21:04:17 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*218d669a-e20d-42e1-bde2-0f20d41635c9,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvfr8z/series-workflowvfr8z-convert-artifact-175286374/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "c9b5c1a5-6fc7-47aa-865b-f550cd1c818b", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvfr8z/series-workflowvfr8z-build-action-3799205884/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvfr8z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["fuse_send_write_pages","fuse_fill_write_pages","fuse_notify_store","iomap_folio_mark_uptodate","iomap_folio_clear_uptodate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"30afd0fa-6b37-4bf0-a1d7-a659032df11b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-06-23 20:42:42 +0000 UTC FinishedAt: 2026-06-23 21:04:07 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*218d669a-e20d-42e1-bde2-0f20d41635c9,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvfr8z/series-workflowvfr8z-convert-artifact-175286374/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "c9b5c1a5-6fc7-47aa-865b-f550cd1c818b", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvfr8z/series-workflowvfr8z-build-action-3799205884/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvfr8z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["fuse_send_write_pages","fuse_fill_write_pages","fuse_notify_store","iomap_folio_mark_uptodate","iomap_folio_clear_uptodate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"30afd0fa-6b37-4bf0-a1d7-a659032df11b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-06-23 21:04:17 +0000 UTC FinishedAt: 2026-06-23 21:04:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfr8z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["fuse_send_write_pages","fuse_fill_write_pages","fuse_notify_store","iomap_folio_mark_uptodate","iomap_folio_clear_uptodate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"30afd0fa-6b37-4bf0-a1d7-a659032df11b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-06-23 21:04:17 +0000 UTC FinishedAt: 2026-06-23 21:04:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfr8z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["fuse_send_write_pages","fuse_fill_write_pages","fuse_notify_store","iomap_folio_mark_uptodate","iomap_folio_clear_uptodate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"30afd0fa-6b37-4bf0-a1d7-a659032df11b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-06-23 21:04:17 +0000 UTC FinishedAt: 2026-06-23 21:04:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfr8z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["fuse_send_write_pages","fuse_fill_write_pages","fuse_notify_store","iomap_folio_mark_uptodate","iomap_folio_clear_uptodate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"30afd0fa-6b37-4bf0-a1d7-a659032df11b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-06-23 21:04:17 +0000 UTC FinishedAt: 2026-06-23 21:04:22 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"30afd0fa-6b37-4bf0-a1d7-a659032df11b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvfr8z/series-workflowvfr8z-convert-artifact-636141753/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvfr8z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["fuse_send_write_pages","fuse_fill_write_pages","fuse_notify_store","iomap_folio_mark_uptodate","iomap_folio_clear_uptodate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"30afd0fa-6b37-4bf0-a1d7-a659032df11b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-06-23 21:04:28 +0000 UTC FinishedAt: 2026-06-23 21:06:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfr8z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["fuse_send_write_pages","fuse_fill_write_pages","fuse_notify_store","iomap_folio_mark_uptodate","iomap_folio_clear_uptodate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"30afd0fa-6b37-4bf0-a1d7-a659032df11b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-06-23 21:04:28 +0000 UTC FinishedAt: 2026-06-23 21:06:20 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*c9b5c1a5-6fc7-47aa-865b-f550cd1c818b,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Boot test: Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:report-findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvfr8z/series-workflowvfr8z-build-action-3799205884/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "success": true },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-workflowvfr8z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["fuse_send_write_pages","fuse_fill_write_pages","fuse_notify_store","iomap_folio_mark_uptodate","iomap_folio_clear_uptodate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"30afd0fa-6b37-4bf0-a1d7-a659032df11b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-06-23 21:06:30 +0000 UTC FinishedAt: 2026-06-23 21:06:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfr8z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["fuse_send_write_pages","fuse_fill_write_pages","fuse_notify_store","iomap_folio_mark_uptodate","iomap_folio_clear_uptodate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"30afd0fa-6b37-4bf0-a1d7-a659032df11b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-06-23 21:06:30 +0000 UTC FinishedAt: 2026-06-23 21:06:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfr8z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["fuse_send_write_pages","fuse_fill_write_pages","fuse_notify_store","iomap_folio_mark_uptodate","iomap_folio_clear_uptodate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"30afd0fa-6b37-4bf0-a1d7-a659032df11b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-06-23 21:06:30 +0000 UTC FinishedAt: 2026-06-23 21:27:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfr8z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["fuse_send_write_pages","fuse_fill_write_pages","fuse_notify_store","iomap_folio_mark_uptodate","iomap_folio_clear_uptodate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"30afd0fa-6b37-4bf0-a1d7-a659032df11b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-06-23 21:06:30 +0000 UTC FinishedAt: 2026-06-23 21:27:51 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*218d669a-e20d-42e1-bde2-0f20d41635c9,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvfr8z/series-workflowvfr8z-convert-artifact-636141753/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "2da5dec4-477d-46e6-a2d8-c8bc3ef0fba6", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvfr8z/series-workflowvfr8z-build-action-3936786837/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvfr8z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["fuse_send_write_pages","fuse_fill_write_pages","fuse_notify_store","iomap_folio_mark_uptodate","iomap_folio_clear_uptodate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"30afd0fa-6b37-4bf0-a1d7-a659032df11b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-06-23 21:06:30 +0000 UTC FinishedAt: 2026-06-23 21:27:41 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*218d669a-e20d-42e1-bde2-0f20d41635c9,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvfr8z/series-workflowvfr8z-convert-artifact-636141753/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "2da5dec4-477d-46e6-a2d8-c8bc3ef0fba6", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvfr8z/series-workflowvfr8z-build-action-3936786837/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvfr8z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["fuse_send_write_pages","fuse_fill_write_pages","fuse_notify_store","iomap_folio_mark_uptodate","iomap_folio_clear_uptodate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"30afd0fa-6b37-4bf0-a1d7-a659032df11b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-06-23 21:27:51 +0000 UTC FinishedAt: 2026-06-23 21:27:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfr8z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["fuse_send_write_pages","fuse_fill_write_pages","fuse_notify_store","iomap_folio_mark_uptodate","iomap_folio_clear_uptodate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"30afd0fa-6b37-4bf0-a1d7-a659032df11b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-06-23 21:27:51 +0000 UTC FinishedAt: 2026-06-23 21:27:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfr8z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["fuse_send_write_pages","fuse_fill_write_pages","fuse_notify_store","iomap_folio_mark_uptodate","iomap_folio_clear_uptodate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"30afd0fa-6b37-4bf0-a1d7-a659032df11b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-06-23 21:27:51 +0000 UTC FinishedAt: 2026-06-23 21:29:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfr8z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["fuse_send_write_pages","fuse_fill_write_pages","fuse_notify_store","iomap_folio_mark_uptodate","iomap_folio_clear_uptodate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"30afd0fa-6b37-4bf0-a1d7-a659032df11b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-06-23 21:27:51 +0000 UTC FinishedAt: 2026-06-23 21:29:46 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*2da5dec4-477d-46e6-a2d8-c8bc3ef0fba6,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Boot test: Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:report-findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvfr8z/series-workflowvfr8z-build-action-3936786837/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "success": true },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-workflowvfr8z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["fuse_send_write_pages","fuse_fill_write_pages","fuse_notify_store","iomap_folio_mark_uptodate","iomap_folio_clear_uptodate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"30afd0fa-6b37-4bf0-a1d7-a659032df11b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-06-23 21:29:56 +0000 UTC FinishedAt: 2026-06-24 00:35:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfr8z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["fuse_send_write_pages","fuse_fill_write_pages","fuse_notify_store","iomap_folio_mark_uptodate","iomap_folio_clear_uptodate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"30afd0fa-6b37-4bf0-a1d7-a659032df11b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-06-23 21:29:56 +0000 UTC FinishedAt: 2026-06-24 00:35:57 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["fuse_send_write_pages","fuse_fill_write_pages","fuse_notify_store","iomap_folio_mark_uptodate","iomap_folio_clear_uptodate"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:track,Default:nil,Value:*KASAN,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:base-build-id,Default:nil,Value:*c9b5c1a5-6fc7-47aa-865b-f550cd1c818b,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*2da5dec4-477d-46e6-a2d8-c8bc3ef0fba6,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:base-kernel,Path:,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvfr8z/series-workflowvfr8z-build-action-3799205884/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:patched-kernel,Path:,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvfr8z/series-workflowvfr8z-build-action-3936786837/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowvfr8z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["fuse_send_write_pages","fuse_fill_write_pages","fuse_notify_store","iomap_folio_mark_uptodate","iomap_folio_clear_uptodate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"30afd0fa-6b37-4bf0-a1d7-a659032df11b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-06-23 21:29:56 +0000 UTC FinishedAt: 2026-06-23 21:30:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfr8z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["fuse_send_write_pages","fuse_fill_write_pages","fuse_notify_store","iomap_folio_mark_uptodate","iomap_folio_clear_uptodate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"30afd0fa-6b37-4bf0-a1d7-a659032df11b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-06-23 21:29:56 +0000 UTC FinishedAt: 2026-06-23 21:30:01 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["fuse_send_write_pages","fuse_fill_write_pages","fuse_notify_store","iomap_folio_mark_uptodate","iomap_folio_clear_uptodate"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvfr8z/series-workflowvfr8z-convert-artifact-869844526/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvfr8z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["fuse_send_write_pages","fuse_fill_write_pages","fuse_notify_store","iomap_folio_mark_uptodate","iomap_folio_clear_uptodate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"30afd0fa-6b37-4bf0-a1d7-a659032df11b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-06-23 21:29:56 +0000 UTC FinishedAt: 2026-06-23 21:29:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfr8z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["fuse_send_write_pages","fuse_fill_write_pages","fuse_notify_store","iomap_folio_mark_uptodate","iomap_folio_clear_uptodate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"30afd0fa-6b37-4bf0-a1d7-a659032df11b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-06-23 21:29:56 +0000 UTC FinishedAt: 2026-06-23 21:29:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfr8z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["fuse_send_write_pages","fuse_fill_write_pages","fuse_notify_store","iomap_folio_mark_uptodate","iomap_folio_clear_uptodate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"30afd0fa-6b37-4bf0-a1d7-a659032df11b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-06-23 21:29:56 +0000 UTC FinishedAt: 2026-06-23 21:29:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfr8z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["fuse_send_write_pages","fuse_fill_write_pages","fuse_notify_store","iomap_folio_mark_uptodate","iomap_folio_clear_uptodate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"30afd0fa-6b37-4bf0-a1d7-a659032df11b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-06-23 21:30:06 +0000 UTC FinishedAt: 2026-06-24 00:35:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfr8z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["fuse_send_write_pages","fuse_fill_write_pages","fuse_notify_store","iomap_folio_mark_uptodate","iomap_folio_clear_uptodate"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f31c00c377ccf07c85442712f7c940a855cb3371","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"30afd0fa-6b37-4bf0-a1d7-a659032df11b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-06-23 21:30:06 +0000 UTC FinishedAt: 2026-06-24 00:35:47 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*c9b5c1a5-6fc7-47aa-865b-f550cd1c818b,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*2da5dec4-477d-46e6-a2d8-c8bc3ef0fba6,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Fuzz,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:base-kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvfr8z/series-workflowvfr8z-build-action-3799205884/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:patched-kernel,Path:/patched,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvfr8z/series-workflowvfr8z-build-action-3936786837/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:config,Path:/tmp/config.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowvfr8z/series-workflowvfr8z-convert-artifact-869844526/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,}