Name: series-workflowq5bwx Phase: Succeeded StartedAt: 2026-07-12 09:36:51 +0000 UTC FinishedAt: 2026-07-12 14:52:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq5bwx[0] Phase: Succeeded StartedAt: 2026-07-12 09:36:51 +0000 UTC FinishedAt: 2026-07-12 10:18:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq5bwx[0].run-triage Phase: Succeeded StartedAt: 2026-07-12 09:36:51 +0000 UTC FinishedAt: 2026-07-12 10:18:08 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "61cccb8363fcc282d4ae0555b8739dd227f5ad0b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "DAMON", "DAMON_VADDR", "DAMON_PADDR", "DAMON_SYSFS" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "61cccb8363fcc282d4ae0555b8739dd227f5ad0b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "DAMON", "DAMON_VADDR", "DAMON_PADDR", "DAMON_SYSFS" ], "series_id": "ffb1a388-8096-47d8-bc95-317328560b59" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "kdamond_merge_regions", "damon_merge_regions_of" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": true, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDEwOjE3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0RBTU9OJiMzNDssCiAgICAmIzM0O0RBTU9OX1ZBRERSJiMzNDssCiAgICAmIzM0O0RBTU9OX1BBRERSJiMzNDssCiAgICAmIzM0O0RBTU9OX1NZU0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7a2RhbW9uZF9tZXJnZV9yZWdpb25zJiMzNDssCiAgICAmIzM0O2RhbW9uX21lcmdlX3JlZ2lvbnNfb2YmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgbG9naWMgb2YgREFNT04gKERhdGEgQWNjZXNzIE1PTml0b3IpIGZvciBtZXJnaW5nIHJlZ2lvbnMgYW5kIHVwZGF0aW5nIHRoZWlyIGFnZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBrZXJuZWwmIzM5O3MgbWVtb3J5IG1hbmFnZW1lbnQgc3Vic3lzdGVtIHRoYXQgYWZmZWN0cyBob3cgbWVtb3J5IGFjY2VzcyBwYXR0ZXJucyBhcmUgbW9uaXRvcmVkIGFuZCBhZ2dyZWdhdGVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDEwOjE3PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgODg3NzFkZDg4NGE4YjVmOWM5ZjFlNTJkMjE2YzBhMjE2ZDdkNDhkMlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gSnVsIDEyIDEwOjE3OjM3IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL21tL2RhbW9uL2NvcmUuYyBiL21tL2RhbW9uL2NvcmUuY1xuaW5kZXggODA2YTY3ZDAyYTZlOTAuLjZjNDIxNWNjODA5ZWMyIDEwMDY0NFxuLS0tIGEvbW0vZGFtb24vY29yZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9tbS9kYW1vbi9jb3JlLmNcbkBAIC0zMzA4LDcgJiM0MzszMzA4LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBkYW1vbl9tZXJnZV9zY29yZShzdHJ1Y3QgZGFtb25fcmVnaW9uICpyLCBib29sIGxhc3QsXG4gICogc3pfbGltaXRcdHNpemUgdXBwZXIgbGltaXQgb2YgZWFjaCByZWdpb25cbiAgKi9cbiBzdGF0aWMgdm9pZCBkYW1vbl9tZXJnZV9yZWdpb25zX29mKHN0cnVjdCBkYW1vbl90YXJnZXQgKnQsIHVuc2lnbmVkIGludCB0aHJlcyxcbi1cdFx0dW5zaWduZWQgbG9uZyBzel9saW1pdCwgc3RydWN0IGRhbW9uX2N0eCAqY3R4KVxuJiM0MztcdFx0dW5zaWduZWQgbG9uZyBzel9saW1pdCwgc3RydWN0IGRhbW9uX2N0eCAqY3R4LCBib29sIGNvdW50X2FnZSlcbiB7XG4gXHRzdHJ1Y3QgZGFtb25fcmVnaW9uICpyLCAqcHJldiA9IE5VTEwsICpuZXh0O1xuIFx0Ym9vbCB1c2VfcHJvYmVfaGl0cyA9IGRhbW9uX2hhc19wcm9iZV93ZWlnaHRzKGN0eCk7XG5AQCAtMzMxOSwxMiAmIzQzOzMzMTksMTQgQEAgc3RhdGljIHZvaWQgZGFtb25fbWVyZ2VfcmVnaW9uc19vZihzdHJ1Y3QgZGFtb25fdGFyZ2V0ICp0LCB1bnNpZ25lZCBpbnQgdGhyZXMsXG4gXHRcdHNjb3JlID0gZGFtb25fbWVyZ2Vfc2NvcmUociwgZmFsc2UsIGN0eCwgdXNlX3Byb2JlX2hpdHMpO1xuIFx0XHRsYXN0X3Njb3JlID0gZGFtb25fbWVyZ2Vfc2NvcmUociwgdHJ1ZSwgY3R4LCB1c2VfcHJvYmVfaGl0cyk7XG4gXG4tXHRcdGlmIChhYnNfZGlmZihzY29yZSwgbGFzdF9zY29yZSkgXHUwMDNlIHRocmVzKVxuLVx0XHRcdHItXHUwMDNlYWdlID0gMDtcbi1cdFx0ZWxzZSBpZiAoKHNjb3JlID09IDApICE9IChsYXN0X3Njb3JlID09IDApKVxuLVx0XHRcdHItXHUwMDNlYWdlID0gMDtcbi1cdFx0ZWxzZVxuLVx0XHRcdHItXHUwMDNlYWdlJiM0MzsmIzQzOztcbiYjNDM7XHRcdGlmIChjb3VudF9hZ2UpIHtcbiYjNDM7XHRcdFx0aWYgKGFic19kaWZmKHNjb3JlLCBsYXN0X3Njb3JlKSBcdTAwM2UgdGhyZXMpXG4mIzQzO1x0XHRcdFx0ci1cdTAwM2VhZ2UgPSAwO1xuJiM0MztcdFx0XHRlbHNlIGlmICgoc2NvcmUgPT0gMCkgIT0gKGxhc3Rfc2NvcmUgPT0gMCkpXG4mIzQzO1x0XHRcdFx0ci1cdTAwM2VhZ2UgPSAwO1xuJiM0MztcdFx0XHRlbHNlXG4mIzQzO1x0XHRcdFx0ci1cdTAwM2VhZ2UmIzQzOyYjNDM7O1xuJiM0MztcdFx0fVxuIFxuIFx0XHRpZiAoIXByZXYpXG4gXHRcdFx0Z290byBzZXRfcHJldl9jb250aW51ZTtcbkBAIC0zMzY2LDE1ICYjNDM7MzM2OCwxOCBAQCBzdGF0aWMgdm9pZCBrZGFtb25kX21lcmdlX3JlZ2lvbnMoc3RydWN0IGRhbW9uX2N0eCAqYywgdW5zaWduZWQgaW50IHRocmVzaG9sZCxcbiBcdHN0cnVjdCBkYW1vbl90YXJnZXQgKnQ7XG4gXHR1bnNpZ25lZCBpbnQgbnJfcmVnaW9ucztcbiBcdHVuc2lnbmVkIGludCBtYXhfdGhyZXM7XG4mIzQzO1x0Ym9vbCBjb3VudF9hZ2UgPSB0cnVlO1xuIFxuIFx0bWF4X3RocmVzID0gYy1cdTAwM2VhdHRycy5hZ2dyX2ludGVydmFsIC9cbiBcdFx0KGMtXHUwMDNlYXR0cnMuc2FtcGxlX2ludGVydmFsID8gIGMtXHUwMDNlYXR0cnMuc2FtcGxlX2ludGVydmFsIDogMSk7XG4gXHRkbyB7XG4gXHRcdG5yX3JlZ2lvbnMgPSAwO1xuIFx0XHRkYW1vbl9mb3JfZWFjaF90YXJnZXQodCwgYykge1xuLVx0XHRcdGRhbW9uX21lcmdlX3JlZ2lvbnNfb2YodCwgdGhyZXNob2xkLCBzel9saW1pdCwgYyk7XG4mIzQzO1x0XHRcdGRhbW9uX21lcmdlX3JlZ2lvbnNfb2YodCwgdGhyZXNob2xkLCBzel9saW1pdCwgYyxcbiYjNDM7XHRcdFx0XHRcdGNvdW50X2FnZSk7XG4gXHRcdFx0bnJfcmVnaW9ucyAmIzQzOz0gZGFtb25fbnJfcmVnaW9ucyh0KTtcbiBcdFx0fVxuJiM0MztcdFx0Y291bnRfYWdlID0gZmFsc2U7XG4gXHRcdHRocmVzaG9sZCA9IG1heCgxLCB0aHJlc2hvbGQgKiAyKTtcbiBcdH0gd2hpbGUgKG5yX3JlZ2lvbnMgXHUwMDNlIGMtXHUwMDNlYXR0cnMubWF4X25yX3JlZ2lvbnMgXHUwMDI2XHUwMDI2XG4gXHRcdFx0dGhyZXNob2xkIC8gMiBcdTAwM2MgbWF4X3RocmVzKTtcbmRpZmYgLS1naXQgYS9tbS9kYW1vbi90ZXN0cy9jb3JlLWt1bml0LmggYi9tbS9kYW1vbi90ZXN0cy9jb3JlLWt1bml0LmhcbmluZGV4IDZhZDczNTU5ZGQ4ZWFiLi42OGQzMDY0OGM2MTJlYiAxMDA2NDRcbi0tLSBhL21tL2RhbW9uL3Rlc3RzL2NvcmUta3VuaXQuaFxuJiM0MzsmIzQzOyYjNDM7IGIvbW0vZGFtb24vdGVzdHMvY29yZS1rdW5pdC5oXG5AQCAtMjU3LDcgJiM0MzsyNTcsNyBAQCBzdGF0aWMgdm9pZCBkYW1vbl90ZXN0X21lcmdlX3JlZ2lvbnNfb2Yoc3RydWN0IGt1bml0ICp0ZXN0KVxuIFx0XHRkYW1vbl9hZGRfcmVnaW9uKHIsIHQpO1xuIFx0fVxuIFxuLVx0ZGFtb25fbWVyZ2VfcmVnaW9uc19vZih0LCA5LCA5OTk5LCBjdHgpO1xuJiM0MztcdGRhbW9uX21lcmdlX3JlZ2lvbnNfb2YodCwgOSwgOTk5OSwgY3R4LCB0cnVlKTtcbiBcdC8qIDAtMTEyLCAxMTQtMTMwLCAxMzAtMTU2LCAxNTYtMTcwLCAxNzAtMjMwLCAyMzAtMTAxNzAgKi9cbiBcdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCBkYW1vbl9ucl9yZWdpb25zKHQpLCA2dSk7XG4gXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyA2OyBpJiM0MzsmIzQzOykge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDEwOjE3PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0RBTU9OJiMzNDssCiAgICAmIzM0O0RBTU9OX1ZBRERSJiMzNDssCiAgICAmIzM0O0RBTU9OX1BBRERSJiMzNDssCiAgICAmIzM0O0RBTU9OX1NZU0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7a2RhbW9uZF9tZXJnZV9yZWdpb25zJiMzNDssCiAgICAmIzM0O2RhbW9uX21lcmdlX3JlZ2lvbnNfb2YmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgbG9naWMgb2YgREFNT04gKERhdGEgQWNjZXNzIE1PTml0b3IpIGZvciBtZXJnaW5nIHJlZ2lvbnMgYW5kIHVwZGF0aW5nIHRoZWlyIGFnZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBrZXJuZWwmIzM5O3MgbWVtb3J5IG1hbmFnZW1lbnQgc3Vic3lzdGVtIHRoYXQgYWZmZWN0cyBob3cgbWVtb3J5IGFjY2VzcyBwYXR0ZXJucyBhcmUgbW9uaXRvcmVkIGFuZCBhZ2dyZWdhdGVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA4ODc3MWRkODg0YThiNWY5YzlmMWU1MmQyMTZjMGEyMTZkN2Q0OGQyCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFN1biBKdWwgMTIgMTA6MTc6MzcgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9tbS9kYW1vbi9jb3JlLmMgYi9tbS9kYW1vbi9jb3JlLmMKaW5kZXggODA2YTY3ZDAyYTZlOTAuLjZjNDIxNWNjODA5ZWMyIDEwMDY0NAotLS0gYS9tbS9kYW1vbi9jb3JlLmMKJiM0MzsmIzQzOyYjNDM7IGIvbW0vZGFtb24vY29yZS5jCkBAIC0zMzA4LDcgJiM0MzszMzA4LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBkYW1vbl9tZXJnZV9zY29yZShzdHJ1Y3QgZGFtb25fcmVnaW9uICpyLCBib29sIGxhc3QsCiAgKiBzel9saW1pdAlzaXplIHVwcGVyIGxpbWl0IG9mIGVhY2ggcmVnaW9uCiAgKi8KIHN0YXRpYyB2b2lkIGRhbW9uX21lcmdlX3JlZ2lvbnNfb2Yoc3RydWN0IGRhbW9uX3RhcmdldCAqdCwgdW5zaWduZWQgaW50IHRocmVzLAotCQl1bnNpZ25lZCBsb25nIHN6X2xpbWl0LCBzdHJ1Y3QgZGFtb25fY3R4ICpjdHgpCiYjNDM7CQl1bnNpZ25lZCBsb25nIHN6X2xpbWl0LCBzdHJ1Y3QgZGFtb25fY3R4ICpjdHgsIGJvb2wgY291bnRfYWdlKQogewogCXN0cnVjdCBkYW1vbl9yZWdpb24gKnIsICpwcmV2ID0gTlVMTCwgKm5leHQ7CiAJYm9vbCB1c2VfcHJvYmVfaGl0cyA9IGRhbW9uX2hhc19wcm9iZV93ZWlnaHRzKGN0eCk7CkBAIC0zMzE5LDEyICYjNDM7MzMxOSwxNCBAQCBzdGF0aWMgdm9pZCBkYW1vbl9tZXJnZV9yZWdpb25zX29mKHN0cnVjdCBkYW1vbl90YXJnZXQgKnQsIHVuc2lnbmVkIGludCB0aHJlcywKIAkJc2NvcmUgPSBkYW1vbl9tZXJnZV9zY29yZShyLCBmYWxzZSwgY3R4LCB1c2VfcHJvYmVfaGl0cyk7CiAJCWxhc3Rfc2NvcmUgPSBkYW1vbl9tZXJnZV9zY29yZShyLCB0cnVlLCBjdHgsIHVzZV9wcm9iZV9oaXRzKTsKIAotCQlpZiAoYWJzX2RpZmYoc2NvcmUsIGxhc3Rfc2NvcmUpICZndDsgdGhyZXMpCi0JCQlyLSZndDthZ2UgPSAwOwotCQllbHNlIGlmICgoc2NvcmUgPT0gMCkgIT0gKGxhc3Rfc2NvcmUgPT0gMCkpCi0JCQlyLSZndDthZ2UgPSAwOwotCQllbHNlCi0JCQlyLSZndDthZ2UmIzQzOyYjNDM7OwomIzQzOwkJaWYgKGNvdW50X2FnZSkgewomIzQzOwkJCWlmIChhYnNfZGlmZihzY29yZSwgbGFzdF9zY29yZSkgJmd0OyB0aHJlcykKJiM0MzsJCQkJci0mZ3Q7YWdlID0gMDsKJiM0MzsJCQllbHNlIGlmICgoc2NvcmUgPT0gMCkgIT0gKGxhc3Rfc2NvcmUgPT0gMCkpCiYjNDM7CQkJCXItJmd0O2FnZSA9IDA7CiYjNDM7CQkJZWxzZQomIzQzOwkJCQlyLSZndDthZ2UmIzQzOyYjNDM7OwomIzQzOwkJfQogCiAJCWlmICghcHJldikKIAkJCWdvdG8gc2V0X3ByZXZfY29udGludWU7CkBAIC0zMzY2LDE1ICYjNDM7MzM2OCwxOCBAQCBzdGF0aWMgdm9pZCBrZGFtb25kX21lcmdlX3JlZ2lvbnMoc3RydWN0IGRhbW9uX2N0eCAqYywgdW5zaWduZWQgaW50IHRocmVzaG9sZCwKIAlzdHJ1Y3QgZGFtb25fdGFyZ2V0ICp0OwogCXVuc2lnbmVkIGludCBucl9yZWdpb25zOwogCXVuc2lnbmVkIGludCBtYXhfdGhyZXM7CiYjNDM7CWJvb2wgY291bnRfYWdlID0gdHJ1ZTsKIAogCW1heF90aHJlcyA9IGMtJmd0O2F0dHJzLmFnZ3JfaW50ZXJ2YWwgLwogCQkoYy0mZ3Q7YXR0cnMuc2FtcGxlX2ludGVydmFsID8gIGMtJmd0O2F0dHJzLnNhbXBsZV9pbnRlcnZhbCA6IDEpOwogCWRvIHsKIAkJbnJfcmVnaW9ucyA9IDA7CiAJCWRhbW9uX2Zvcl9lYWNoX3RhcmdldCh0LCBjKSB7Ci0JCQlkYW1vbl9tZXJnZV9yZWdpb25zX29mKHQsIHRocmVzaG9sZCwgc3pfbGltaXQsIGMpOwomIzQzOwkJCWRhbW9uX21lcmdlX3JlZ2lvbnNfb2YodCwgdGhyZXNob2xkLCBzel9saW1pdCwgYywKJiM0MzsJCQkJCWNvdW50X2FnZSk7CiAJCQlucl9yZWdpb25zICYjNDM7PSBkYW1vbl9ucl9yZWdpb25zKHQpOwogCQl9CiYjNDM7CQljb3VudF9hZ2UgPSBmYWxzZTsKIAkJdGhyZXNob2xkID0gbWF4KDEsIHRocmVzaG9sZCAqIDIpOwogCX0gd2hpbGUgKG5yX3JlZ2lvbnMgJmd0OyBjLSZndDthdHRycy5tYXhfbnJfcmVnaW9ucyAmYW1wOyZhbXA7CiAJCQl0aHJlc2hvbGQgLyAyICZsdDsgbWF4X3RocmVzKTsKZGlmZiAtLWdpdCBhL21tL2RhbW9uL3Rlc3RzL2NvcmUta3VuaXQuaCBiL21tL2RhbW9uL3Rlc3RzL2NvcmUta3VuaXQuaAppbmRleCA2YWQ3MzU1OWRkOGVhYi4uNjhkMzA2NDhjNjEyZWIgMTAwNjQ0Ci0tLSBhL21tL2RhbW9uL3Rlc3RzL2NvcmUta3VuaXQuaAomIzQzOyYjNDM7JiM0MzsgYi9tbS9kYW1vbi90ZXN0cy9jb3JlLWt1bml0LmgKQEAgLTI1Nyw3ICYjNDM7MjU3LDcgQEAgc3RhdGljIHZvaWQgZGFtb25fdGVzdF9tZXJnZV9yZWdpb25zX29mKHN0cnVjdCBrdW5pdCAqdGVzdCkKIAkJZGFtb25fYWRkX3JlZ2lvbihyLCB0KTsKIAl9CiAKLQlkYW1vbl9tZXJnZV9yZWdpb25zX29mKHQsIDksIDk5OTksIGN0eCk7CiYjNDM7CWRhbW9uX21lcmdlX3JlZ2lvbnNfb2YodCwgOSwgOTk5OSwgY3R4LCB0cnVlKTsKIAkvKiAwLTExMiwgMTE0LTEzMCwgMTMwLTE1NiwgMTU2LTE3MCwgMTcwLTIzMCwgMjMwLTEwMTcwICovCiAJS1VOSVRfRVhQRUNUX0VRKHRlc3QsIGRhbW9uX25yX3JlZ2lvbnModCksIDZ1KTsKIAlmb3IgKGkgPSAwOyBpICZsdDsgNjsgaSYjNDM7JiM0MzspIHsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTIgMTA6MTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjczMAoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDEyMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipEQU1PTiBQYXRjaCBBbmFseXNpcyoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgYSBwYXRjaCBoZXJlIHRoYXQmIzM5O3MgdHdlYWtpbmcgdGhlIERBTU9OIHN1YnN5c3RlbSwgc3BlY2lmaWNhbGx5IGluIGBtbS9kYW1vbi9jb3JlLmNgIGFuZCBgbW0vZGFtb24vdGVzdHMvY29yZS1rdW5pdC5oYC4gVGhpcyBpcyBpbnRlcmVzdGluZzsgSSBrbm93IHRoZXNlIGFyZWFzIHdlbGwuIEl0IGxvb2tzIGxpa2UgdGhlIGNoYW5nZSByZXZvbHZlcyBhcm91bmQgdGhlIGBkYW1vbl9tZXJnZV9yZWdpb25zX29mYCBmdW5jdGlvbi4gU3BlY2lmaWNhbGx5LCBpdCBpbnRyb2R1Y2VzIGEgYGJvb2wgY291bnRfYWdlYCBwYXJhbWV0ZXIuIAoKVGhlIGNvcmUgb2YgdGhlIGxvZ2ljIHNlZW1zIHRvIGJlIHdpdGhpbiBga2RhbW9uZF9tZXJnZV9yZWdpb25zYCwgd2hpY2ggaXMgbm93IHBhc3NpbmcgYSBgdHJ1ZWAgdmFsdWUgZm9yIGBjb3VudF9hZ2VgIGluIHRoZSBmaXJzdCBpdGVyYXRpb24gYW5kIGBmYWxzZWAgZm9yIGFueSBzdWJzZXF1ZW50IGl0ZXJhdGlvbnMuIFRoYXQmIzM5O3MgYSBjbGV2ZXIgd2F5IHRvIGhhbmRsZSBpdC4gRXNzZW50aWFsbHksIHRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byB0aGUgY29yZSBvZiBEQU1PTi4KCkJlZm9yZSBJIGRpZyBpbnRvIHRoZSBzcGVjaWZpY3Mgb2YgKndoeSogdGhpcyBpcyBoYXBwZW5pbmcsIGxldCYjMzk7cyB0YWtlIGEgcXVpY2sgbG9vayBhdCB0aGUga2VybmVsIGNvbmZpZ3VyYXRpb24gdG8gbWFrZSBzdXJlIERBTU9OIGlzIGV2ZW4gZW5hYmxlZCBpbiB0aGUgYnVpbGQgZW52aXJvbm1lbnQuIEkgd2FudCB0byBzZWUgaWYgdGhpcyBjaGFuZ2UgZXZlbiBtYXR0ZXJzIGluIG15IGN1cnJlbnQgY29udGV4dC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAxMDoxNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgREFNT04mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDttbS9kYW1vbi9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O21tL2RhbW9uL0tjb25maWc9Mz1tZW51IFwmIzM0O0RhdGEgQWNjZXNzIE1vbml0b3JpbmdcJiMzNDtcbm1tL2RhbW9uL0tjb25maWctNC1cbm1tL2RhbW9uL0tjb25maWc6NTpjb25maWcgREFNT05cbm1tL2RhbW9uL0tjb25maWctNi1cdGJvb2wgXCYjMzQ7REFNT046IERhdGEgQWNjZXNzIE1vbml0b3JpbmcgRnJhbWV3b3JrXCYjMzQ7XG4tLVxubW0vZGFtb24vS2NvbmZpZy0xNC1cbm1tL2RhbW9uL0tjb25maWc6MTU6Y29uZmlnIERBTU9OX0RFQlVHX1NBTklUWVxubW0vZGFtb24vS2NvbmZpZy0xNi1cdGJvb2wgXCYjMzQ7Q2hlY2sgc2FuaXR5IG9mIERBTU9OIGNvZGVcJiMzNDtcbi0tXG5tbS9kYW1vbi9LY29uZmlnLTI1LVxubW0vZGFtb24vS2NvbmZpZzoyNjpjb25maWcgREFNT05fS1VOSVRfVEVTVFxubW0vZGFtb24vS2NvbmZpZy0yNy1cdGJvb2wgXCYjMzQ7VGVzdCBmb3IgZGFtb25cJiMzNDsgaWYgIUtVTklUX0FMTF9URVNUU1xuLS1cbm1tL2RhbW9uL0tjb25maWctMzctXG5tbS9kYW1vbi9LY29uZmlnOjM4OmNvbmZpZyBEQU1PTl9WQUREUlxubW0vZGFtb24vS2NvbmZpZy0zOS1cdGJvb2wgXCYjMzQ7RGF0YSBhY2Nlc3MgbW9uaXRvcmluZyBvcGVyYXRpb25zIGZvciB2aXJ0dWFsIGFkZHJlc3Mgc3BhY2VzXCYjMzQ7XG4tLVxubW0vZGFtb24vS2NvbmZpZy00Ni1cbm1tL2RhbW9uL0tjb25maWc6NDc6Y29uZmlnIERBTU9OX1BBRERSXG5tbS9kYW1vbi9LY29uZmlnLTQ4LVx0Ym9vbCBcJiMzNDtEYXRhIGFjY2VzcyBtb25pdG9yaW5nIG9wZXJhdGlvbnMgZm9yIHRoZSBwaHlzaWNhbCBhZGRyZXNzIHNwYWNlXCYjMzQ7XG4tLVxubW0vZGFtb24vS2NvbmZpZy01NS1cbm1tL2RhbW9uL0tjb25maWc6NTY6Y29uZmlnIERBTU9OX1ZBRERSX0tVTklUX1RFU1Rcbm1tL2RhbW9uL0tjb25maWctNTctXHRib29sIFwmIzM0O1Rlc3QgZm9yIERBTU9OIG9wZXJhdGlvbnNcJiMzNDsgaWYgIUtVTklUX0FMTF9URVNUU1xuLS1cbm1tL2RhbW9uL0tjb25maWctNjctXG5tbS9kYW1vbi9LY29uZmlnOjY4OmNvbmZpZyBEQU1PTl9TWVNGU1xubW0vZGFtb24vS2NvbmZpZy02OS1cdGJvb2wgXCYjMzQ7REFNT04gc3lzZnMgaW50ZXJmYWNlXCYjMzQ7XG4tLVxubW0vZGFtb24vS2NvbmZpZy03NS1cbm1tL2RhbW9uL0tjb25maWc6NzY6Y29uZmlnIERBTU9OX1NZU0ZTX0tVTklUX1RFU1Rcbm1tL2RhbW9uL0tjb25maWctNzctXHRib29sIFwmIzM0O1Rlc3QgZm9yIGRhbW9uIHN5c2ZzIGludGVyZmFjZVwmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4tLVxubW0vZGFtb24vS2NvbmZpZy04Ny1cbm1tL2RhbW9uL0tjb25maWc6ODg6Y29uZmlnIERBTU9OX1JFQ0xBSU1cbm1tL2RhbW9uL0tjb25maWctODktXHRib29sIFwmIzM0O0J1aWxkIERBTU9OLWJhc2VkIHJlY2xhaW0gKERBTU9OX1JFQ0xBSU0pXCYjMzQ7XG4tLVxubW0vZGFtb24vS2NvbmZpZy05OS1cbm1tL2RhbW9uL0tjb25maWc6MTAwOmNvbmZpZyBEQU1PTl9MUlVfU09SVFxubW0vZGFtb24vS2NvbmZpZy0xMDEtXHRib29sIFwmIzM0O0J1aWxkIERBTU9OLWJhc2VkIExSVS1saXN0cyBzb3J0aW5nIChEQU1PTl9MUlVfU09SVClcJiMzNDtcbi0tXG5tbS9kYW1vbi9LY29uZmlnLTEwNy1cbm1tL2RhbW9uL0tjb25maWc6MTA4OmNvbmZpZyBEQU1PTl9TVEFUXG5tbS9kYW1vbi9LY29uZmlnLTEwOS1cdGJvb2wgXCYjMzQ7QnVpbGQgZGF0YSBhY2Nlc3MgbW9uaXRvcmluZyBzdGF0IChEQU1PTl9TVEFUKVwmIzM0O1xuLS1cbm1tL2RhbW9uL0tjb25maWctMTE1LVxubW0vZGFtb24vS2NvbmZpZzoxMTY6Y29uZmlnIERBTU9OX1NUQVRfRU5BQkxFRF9ERUZBVUxUXG5tbS9kYW1vbi9LY29uZmlnLTExNy1cdGJvb2wgXCYjMzQ7RW5hYmxlIERBTU9OX1NUQVQgYnkgZGVmYXVsdFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDEwOjE3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4NTMKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAxMDIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBEQU1PTiBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24gaXMgY2xlYXJseSBgREFNT05gLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gcXVpY2tseSB2ZXJpZnkgaWYgdGhlcmUgYXJlIG90aGVyIHJlbGF0ZWQgY29uZmlndXJhdGlvbnMgdGhhdCBtaWdodCBiZSByZWxldmFudC4gTXkgbWVtb3J5IHN1Z2dlc3RzIGBEQU1PTl9TWVNGU2AgaXMgY29tbW9ubHkgdXNlZCBmb3IgdXNlcnNwYWNlIGludGVyYWN0aW9uIHdpdGggdGhlIERBTU9OIHN1YnN5c3RlbSwgc28gSSYjMzk7bGwga2VlcCB0aGF0IGluIG1pbmQgYXMgYSBwb3RlbnRpYWwgYXJlYSB0byBpbnZlc3RpZ2F0ZSBmdXJ0aGVyLgoKTm93LCBJJiMzOTttIGdvaW5nIHRvIHNoaWZ0IGdlYXJzIGFuZCBkaWcgaW50byB0aGUgY29kZSBpdHNlbGYuIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGZ1bmN0aW9uIG1vZGlmaWNhdGlvbnMsIHNvIEkmIzM5O2xsIGJlIGhlYWRpbmcgb3ZlciB0byBgbW0vZGFtb24vY29yZS5jYC4gTGV0JiMzOTtzIHNlZSB3aGF0JiMzOTtzIGNoYW5nZWQgdGhlcmUuCgpIbW0sIGl0IGxvb2tzIGxpa2UgYGRhbW9uX21lcmdlX3JlZ2lvbnNfb2ZgIGlzIGEgc3RhdGljIGZ1bmN0aW9uLiBBbHNvLCBga2RhbW9uZF9tZXJnZV9yZWdpb25zYCBpcyBzdGF0aWMuIFRoYXQgbWVhbnMgdGhleSBhcmUgb25seSB1c2FibGUgd2l0aGluIHRoZSBmaWxlLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGVyZSBga2RhbW9uZF9tZXJnZV9yZWdpb25zYCBpcyBhY3R1YWxseSBiZWluZyBjYWxsZWQuIFRoYXQgd2lsbCBnaXZlIG1lIGluc2lnaHQgaW50byBob3cgdGhlIG1lbW9yeSByZWdpb24gbWVyZ2luZyBpcyBhY3R1YWxseSBoYW5kbGVkIGluIHRoaXMgY29udGV4dC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAxMDoxNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtrZGFtb25kX21lcmdlX3JlZ2lvbnMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDttbS9kYW1vbi9jb3JlLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bW0vZGFtb24vY29yZS5jPTMzMTA9c3RhdGljIHZvaWQgZGFtb25fbWVyZ2VfcmVnaW9uc19vZihzdHJ1Y3QgZGFtb25fdGFyZ2V0ICp0LCB1bnNpZ25lZCBpbnQgdGhyZXMsXG4tLVxubW0vZGFtb24vY29yZS5jLTMzNjQtICovXG5tbS9kYW1vbi9jb3JlLmM6MzM2NTpzdGF0aWMgdm9pZCBrZGFtb25kX21lcmdlX3JlZ2lvbnMoc3RydWN0IGRhbW9uX2N0eCAqYywgdW5zaWduZWQgaW50IHRocmVzaG9sZCxcbm1tL2RhbW9uL2NvcmUuYy0zMzY2LVx0XHRcdFx0ICB1bnNpZ25lZCBsb25nIHN6X2xpbWl0KVxuLS1cbm1tL2RhbW9uL2NvcmUuYz0zNDYzPXN0YXRpYyB2b2lkIGRhbW9uX3NwbGl0X3NvbWVfcmVnaW9ucyhzdHJ1Y3QgZGFtb25fY3R4ICpjdHgsXG4tLVxubW0vZGFtb24vY29yZS5jLTM0OTktICogbW9uaXRvcmluZyBhY2N1cmFjeSB1bmRlciB0aGUgZHluYW1pY2FsbHkgY2hhbmdlYWJsZSBhY2Nlc3MgcGF0dGVybnMuICBJZiBhXG5tbS9kYW1vbi9jb3JlLmM6MzUwMDogKiBzcGxpdCB3YXMgdW5uZWNlc3NhcmlseSBtYWRlLCBsYXRlciAmIzM5O2tkYW1vbmRfbWVyZ2VfcmVnaW9ucygpJiMzOTsgd2lsbCByZXZlcnRcbm1tL2RhbW9uL2NvcmUuYy0zNTAxLSAqIGl0LlxuLS1cbm1tL2RhbW9uL2NvcmUuYz0zNzQxPXN0YXRpYyBpbnQga2RhbW9uZF9mbih2b2lkICpkYXRhKVxuLS1cbm1tL2RhbW9uL2NvcmUuYy0zODA1LVx0XHRcdFx0XHRuZXh0X2FnZ3JlZ2F0aW9uX3NpcykpIHtcbm1tL2RhbW9uL2NvcmUuYzozODA2Olx0XHRcdGtkYW1vbmRfbWVyZ2VfcmVnaW9ucyhjdHgsXG5tbS9kYW1vbi9jb3JlLmMtMzgwNy1cdFx0XHRcdFx0bWF4X21lcmdlX3Njb3JlIC8gMTAsXG4tLVxubW0vZGFtb24vY29yZS5jLTM4MTQtXHRcdCAqIGRvIGtkYW1vbmRfY2FsbCgpIGFuZCBrZGFtb25kX2FwcGx5X3NjaGVtZXMoKSBhZnRlclxubW0vZGFtb24vY29yZS5jOjM4MTU6XHRcdCAqIGtkYW1vbmRfbWVyZ2VfcmVnaW9ucygpIGlmIHBvc3NpYmxlLCB0byByZWR1Y2Ugb3ZlcmhlYWRcbm1tL2RhbW9uL2NvcmUuYy0zODE2LVx0XHQgKi9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAxMDoxNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NjQzCgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogMzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIG15IG93bjoKCioqQW5hbHl6aW5nIHRoZSBEQU1PTiBLZXJuZWwgRGFlbW9uJiMzOTtzIEVudHJ5IFBvaW50KioKCkFscmlnaHQsIGxldCYjMzk7cyBkaXZlIGluLiBNeSBmb2N1cyBpcyBvbiB0aGUgYGtkYW1vbmRfZm5gIGZ1bmN0aW9uLCB3aGljaCBJIHVuZGVyc3RhbmQgaXMgdGhlIGhlYXJ0IG9mIERBTU9OJiMzOTtzIGNvcmUgdGhyZWFkLiBNeSBwcmltYXJ5IGludGVyZXN0IGlzIHVuZGVyc3RhbmRpbmcgaG93IHRoaXMgY3J1Y2lhbCBmdW5jdGlvbiBnZXRzIGluaXRpYXRlZC4gSSB3YW50IHRvIHNlZSBob3cgdGhlIHN5c3RlbSBicmluZ3MgdGhpcyBrZXkgcGFydCBvZiB0aGUgZGFlbW9uIGludG8gYWN0aW9uLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGlzIHN0YXJ0dXAgcHJvY2Vzcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAxMDoxNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtrZGFtb25kX2ZuJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bW0vZGFtb24vY29yZS5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O21tL2RhbW9uL2NvcmUuYz0xMDEyPXN0YXRpYyBib29sIGRhbW9uX3ZhbGlkX2ludGVydmFsc19nb2FsKHN0cnVjdCBkYW1vbl9hdHRycyAqYXR0cnMpXG4tLVxubW0vZGFtb24vY29yZS5jLTEwMzQtICogYmUgY2FsbGVkIGZyb20gYSBzYWZlIGNvbnRleHRzLiAgU3VjaCBjb250ZXh0cyBpbmNsdWRlIGRhbW9uX2N0eCBzZXR1cCB0aW1lXG5tbS9kYW1vbi9jb3JlLmM6MTAzNTogKiB3aGlsZSB0aGUga2RhbW9uZCBpcyBub3QgeWV0IHN0YXJ0ZWQsIGFuZCBpbnNpZGUgb2Yga2RhbW9uZF9mbigpLlxubW0vZGFtb24vY29yZS5jLTEwMzYtICpcbi0tXG5tbS9kYW1vbi9jb3JlLmMtMTAzOS0gKiBhbHNvIGluZGlyZWN0bHkgY2FsbCB0aGlzIGZ1bmN0aW9uIHZpYSBkYW1vbl9jYWxsKCkgLVx1MDAzZSBkYW1vbl9jb21taXQoKSBmb3Jcbm1tL2RhbW9uL2NvcmUuYzoxMDQwOiAqIG9ubGluZSBwYXJhbWV0ZXJzIHVwZGF0ZXMuICBGaW5hbGx5LCBrZGFtb25kX2ZuKCkgaXRzZWxmIHVzZSB0aGlzIGZvclxubW0vZGFtb24vY29yZS5jLTEwNDEtICogYXBwbHlpbmcgYXV0by10dW5lZCBtb25pdG9yaW5nIGludGVydmFscy5cbi0tXG5tbS9kYW1vbi9jb3JlLmM9MTA0Nz1pbnQgZGFtb25fc2V0X2F0dHJzKHN0cnVjdCBkYW1vbl9jdHggKmN0eCwgc3RydWN0IGRhbW9uX2F0dHJzICphdHRycylcbi0tXG5tbS9kYW1vbi9jb3JlLmMtMTA3My1cdC8qXG5tbS9kYW1vbi9jb3JlLmM6MTA3NDpcdCAqIG5leHRfaW50ZXJ2YWxzX3R1bmVfc2lzIHdpbGwgYmUgdXBkYXRlZCBpbnNpZGUga2RhbW9uZF9mbigpLlxubW0vZGFtb24vY29yZS5jLTEwNzUtXHQgKi9cbi0tXG5tbS9kYW1vbi9jb3JlLmM9MTkwND1zdGF0aWMgdW5zaWduZWQgbG9uZyBkYW1vbl9hcHBseV9taW5fbnJfcmVnaW9ucyhzdHJ1Y3QgZGFtb25fY3R4ICpjdHgpXG4tLVxubW0vZGFtb24vY29yZS5jLTE5MjEtXG5tbS9kYW1vbi9jb3JlLmM6MTkyMjpzdGF0aWMgaW50IGtkYW1vbmRfZm4odm9pZCAqZGF0YSk7XG5tbS9kYW1vbi9jb3JlLmMtMTkyMy1cbi0tXG5tbS9kYW1vbi9jb3JlLmM9MTkzMj1zdGF0aWMgaW50IF9fZGFtb25fc3RhcnQoc3RydWN0IGRhbW9uX2N0eCAqY3R4KVxuLS1cbm1tL2RhbW9uL2NvcmUuYy0xOTM5LVx0XHRyZWluaXRfY29tcGxldGlvbihcdTAwMjZjdHgtXHUwMDNla2RhbW9uZF9zdGFydGVkKTtcbm1tL2RhbW9uL2NvcmUuYzoxOTQwOlx0XHRjdHgtXHUwMDNla2RhbW9uZCA9IGt0aHJlYWRfcnVuKGtkYW1vbmRfZm4sIGN0eCwgXCYjMzQ7a2RhbW9uZC4lZFwmIzM0Oyxcbm1tL2RhbW9uL2NvcmUuYy0xOTQxLVx0XHRcdFx0bnJfcnVubmluZ19jdHhzKTtcbi0tXG5tbS9kYW1vbi9jb3JlLmM9MjAzNj12b2lkIGRhbW9uX3N0b3Aoc3RydWN0IGRhbW9uX2N0eCAqKmN0eHMsIGludCBucl9jdHhzKVxuLS1cbm1tL2RhbW9uL2NvcmUuYy0yMDQwLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgbnJfY3R4czsgaSYjNDM7JiM0MzspXG5tbS9kYW1vbi9jb3JlLmM6MjA0MTpcdFx0LyogbnJfcnVubmluZ19jdHhzIGlzIGRlY3JlbWVudGVkIGluIGtkYW1vbmRfZm4gKi9cbm1tL2RhbW9uL2NvcmUuYy0yMDQyLVx0XHRfX2RhbW9uX3N0b3AoY3R4c1tpXSk7XG4tLVxubW0vZGFtb24vY29yZS5jPTM3MTk9c3RhdGljIHZvaWQga2RhbW9uZF9pbml0X2N0eChzdHJ1Y3QgZGFtb25fY3R4ICpjdHgpXG4tLVxubW0vZGFtb24vY29yZS5jLTM3NDAtICovXG5tbS9kYW1vbi9jb3JlLmM6Mzc0MTpzdGF0aWMgaW50IGtkYW1vbmRfZm4odm9pZCAqZGF0YSlcbm1tL2RhbW9uL2NvcmUuYy0zNzQyLXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAxMDoxNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NjAxCgkJCQkJCQlvdXRwdXQ6IDEyNgoJCQkJCQkJdGhvdWdodHM6IDM0NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBEQU1PTiBSZWZpbmVtZW50OiBGb2N1cyBhbmQgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGhpdHRpbmcgdGhlIGNvcmUgb2YgREFNT04sIHNwZWNpZmljYWxseSB0aGUgcmVnaW9uIG1lcmdpbmcgbG9naWMsIHdoaWNoIGlzIGhhbmRsZWQgaW4gYGtkYW1vbmRfbWVyZ2VfcmVnaW9uc2AgYW5kLCBpbXBvcnRhbnRseSwgYGRhbW9uX21lcmdlX3JlZ2lvbnNfb2ZgLiBUaGUgY2hhbmdlIGl0c2VsZiBpcyBmdW5jdGlvbmFsOyBpdCYjMzk7cyBtb2RpZnlpbmcgaG93IHJlZ2lvbnMgbWVyZ2UgYW5kIGhvdyB0aGVpciAmIzM0O2FnZSYjMzQ7IGlzIHVwZGF0ZWQsIHdoaWNoIGlzIGNydWNpYWwgZm9yIGVmZmljaWVudCBtZW1vcnkgbWFuYWdlbWVudC4gUGFzc2luZyBgY291bnRfYWdlYCBpbnRvIGBkYW1vbl9tZXJnZV9yZWdpb25zX29mYCBpcyBhIGtleSBpbmRpY2F0b3Igb2YgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBEQU1PTi4gVGhpcyBtYWtlcyBmdXp6aW5nIGEgdmVyeSBnb29kIGlkZWEuCgpMZXQmIzM5O3MgaWRlbnRpZnkgdGhlIGZvY2FsIHN5bWJvbHMuIGBrZGFtb25kX21lcmdlX3JlZ2lvbnNgIGFuZCBgZGFtb25fbWVyZ2VfcmVnaW9uc19vZmAgYXJlIGJvdGggc3RhdGljLCByaWdodD8gWWVzLiBXZSBjYW4gZGVmaW5pdGVseSBmb2N1cyBvbiBib3RoLiBga2RhbW9uZF9mbmAgaXMgdGhlIG1haW4gdGhyZWFkIGZ1bmN0aW9uLCBidXQgdGhlIG1lcmdlIGxvZ2ljIGlzIHdoZXJlIHRoZSByZWFsIGFjdGlvbiBpcyBpbiB0aGlzIHBhdGNoLiBMZXQmIzM5O3Mgc3RpY2sgd2l0aCBmdXp6aW5nIGBrZGFtb25kX21lcmdlX3JlZ2lvbnNgIGFuZCBgZGFtb25fbWVyZ2VfcmVnaW9uc19vZmAuCgpOb3csIHRoZSBjb25maWd1cmF0aW9uIGFzcGVjdC4gV2UgbmVlZCB0byBlbnN1cmUgd2UgY2FuIGFjdHVhbGx5ICpydW4qIHRoZSBEQU1PTiBjb2RlIHdpdGggdGhlIGFwcHJvcHJpYXRlIGNvbmZpZ3VyYXRpb24gdG8gZXZlbiB0ZXN0IHRoaXMgcGF0Y2guIEkga25vdyBgREFNT05gIGlzIHRoZSBwcmltYXJ5IGNvbmZpZy4gRm9yIHJ1bm5pbmcgREFNT04sIGBEQU1PTl9WQUREUmAgYW5kL29yIGBEQU1PTl9QQUREUmAgYXJlIGxpa2VseSBuZWVkZWQuIEdvaW5nIGJhY2sgdG8gYG1tL2RhbW9uL0tjb25maWdgIGZvciB2ZXJpZmljYXRpb24uLi5BaCB5ZXMsIGFuZCB3ZSYjMzk7bGwgcHJvYmFibHkgbmVlZCBgREFNT05fU1lTRlNgIGZvciB1c2Vyc3BhY2UgaW50ZXJhY3Rpb24uIFNvLCBmb3IgbWF4aW11bSBjb3ZlcmFnZSwgSSYjMzk7bGwgaW5jbHVkZSBgREFNT05gLCBgREFNT05fVkFERFJgLCBgREFNT05fUEFERFJgLCBhbmQgYERBTU9OX1NZU0ZTYCBpbiBvdXIgdGVzdGluZyBjb25maWd1cmF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAxMDoxNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7REFNT04mIzM0OywKICAgICYjMzQ7REFNT05fVkFERFImIzM0OywKICAgICYjMzQ7REFNT05fUEFERFImIzM0OywKICAgICYjMzQ7REFNT05fU1lTRlMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtrZGFtb25kX21lcmdlX3JlZ2lvbnMmIzM0OywKICAgICYjMzQ7ZGFtb25fbWVyZ2VfcmVnaW9uc19vZiYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBsb2dpYyBvZiBEQU1PTiAoRGF0YSBBY2Nlc3MgTU9OaXRvcikgZm9yIG1lcmdpbmcgcmVnaW9ucyBhbmQgdXBkYXRpbmcgdGhlaXIgYWdlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGtlcm5lbCYjMzk7cyBtZW1vcnkgbWFuYWdlbWVudCBzdWJzeXN0ZW0gdGhhdCBhZmZlY3RzIGhvdyBtZW1vcnkgYWNjZXNzIHBhdHRlcm5zIGFyZSBtb25pdG9yZWQgYW5kIGFnZ3JlZ2F0ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0RBTU9OJiMzNDssCiAgICAmIzM0O0RBTU9OX1ZBRERSJiMzNDssCiAgICAmIzM0O0RBTU9OX1BBRERSJiMzNDssCiAgICAmIzM0O0RBTU9OX1NZU0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7a2RhbW9uZF9tZXJnZV9yZWdpb25zJiMzNDssCiAgICAmIzM0O2RhbW9uX21lcmdlX3JlZ2lvbnNfb2YmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgbG9naWMgb2YgREFNT04gKERhdGEgQWNjZXNzIE1PTml0b3IpIGZvciBtZXJnaW5nIHJlZ2lvbnMgYW5kIHVwZGF0aW5nIHRoZWlyIGFnZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBrZXJuZWwmIzM5O3MgbWVtb3J5IG1hbmFnZW1lbnQgc3Vic3lzdGVtIHRoYXQgYWZmZWN0cyBob3cgbWVtb3J5IGFjY2VzcyBwYXR0ZXJucyBhcmUgbW9uaXRvcmVkIGFuZCBhZ2dyZWdhdGVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMTJUMTA6MTc6MzkuMTM0ODYyMTJaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzc2MjY3ODA1NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJEQU1PTlwiLFxuICAgIFwiREFNT05fVkFERFJcIixcbiAgICBcIkRBTU9OX1BBRERSXCIsXG4gICAgXCJEQU1PTl9TWVNGU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImtkYW1vbmRfbWVyZ2VfcmVnaW9uc1wiLFxuICAgIFwiZGFtb25fbWVyZ2VfcmVnaW9uc19vZlwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb3JlIGxvZ2ljIG9mIERBTU9OIChEYXRhIEFjY2VzcyBNT05pdG9yKSBmb3IgbWVyZ2luZyByZWdpb25zIGFuZCB1cGRhdGluZyB0aGVpciBhZ2UuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUga2VybmVsJ3MgbWVtb3J5IG1hbmFnZW1lbnQgc3Vic3lzdGVtIHRoYXQgYWZmZWN0cyBob3cgbWVtb3J5IGFjY2VzcyBwYXR0ZXJucyBhcmUgbW9uaXRvcmVkIGFuZCBhZ2dyZWdhdGVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMlQxMDoxNzozOS4xMzQ4Njg2WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTUzMjgxMjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA4ODc3MWRkODg0YThiNWY5YzlmMWU1MmQyMTZjMGEyMTZkN2Q0OGQyXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTdW4gSnVsIDEyIDEwOjE3OjM3IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL21tL2RhbW9uL2NvcmUuYyBiL21tL2RhbW9uL2NvcmUuY1xcbmluZGV4IDgwNmE2N2QwMmE2ZTkwLi42YzQyMTVjYzgwOWVjMiAxMDA2NDRcXG4tLS0gYS9tbS9kYW1vbi9jb3JlLmNcXG4rKysgYi9tbS9kYW1vbi9jb3JlLmNcXG5AQCAtMzMwOCw3ICszMzA4LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBkYW1vbl9tZXJnZV9zY29yZShzdHJ1Y3QgZGFtb25fcmVnaW9uICpyLCBib29sIGxhc3QsXFxuICAqIHN6X2xpbWl0XFx0c2l6ZSB1cHBlciBsaW1pdCBvZiBlYWNoIHJlZ2lvblxcbiAgKi9cXG4gc3RhdGljIHZvaWQgZGFtb25fbWVyZ2VfcmVnaW9uc19vZihzdHJ1Y3QgZGFtb25fdGFyZ2V0ICp0LCB1bnNpZ25lZCBpbnQgdGhyZXMsXFxuLVxcdFxcdHVuc2lnbmVkIGxvbmcgc3pfbGltaXQsIHN0cnVjdCBkYW1vbl9jdHggKmN0eClcXG4rXFx0XFx0dW5zaWduZWQgbG9uZyBzel9saW1pdCwgc3RydWN0IGRhbW9uX2N0eCAqY3R4LCBib29sIGNvdW50X2FnZSlcXG4ge1xcbiBcXHRzdHJ1Y3QgZGFtb25fcmVnaW9uICpyLCAqcHJldiA9IE5VTEwsICpuZXh0O1xcbiBcXHRib29sIHVzZV9wcm9iZV9oaXRzID0gZGFtb25faGFzX3Byb2JlX3dlaWdodHMoY3R4KTtcXG5AQCAtMzMxOSwxMiArMzMxOSwxNCBAQCBzdGF0aWMgdm9pZCBkYW1vbl9tZXJnZV9yZWdpb25zX29mKHN0cnVjdCBkYW1vbl90YXJnZXQgKnQsIHVuc2lnbmVkIGludCB0aHJlcyxcXG4gXFx0XFx0c2NvcmUgPSBkYW1vbl9tZXJnZV9zY29yZShyLCBmYWxzZSwgY3R4LCB1c2VfcHJvYmVfaGl0cyk7XFxuIFxcdFxcdGxhc3Rfc2NvcmUgPSBkYW1vbl9tZXJnZV9zY29yZShyLCB0cnVlLCBjdHgsIHVzZV9wcm9iZV9oaXRzKTtcXG4gXFxuLVxcdFxcdGlmIChhYnNfZGlmZihzY29yZSwgbGFzdF9zY29yZSkgXFx1MDAzZSB0aHJlcylcXG4tXFx0XFx0XFx0ci1cXHUwMDNlYWdlID0gMDtcXG4tXFx0XFx0ZWxzZSBpZiAoKHNjb3JlID09IDApICE9IChsYXN0X3Njb3JlID09IDApKVxcbi1cXHRcXHRcXHRyLVxcdTAwM2VhZ2UgPSAwO1xcbi1cXHRcXHRlbHNlXFxuLVxcdFxcdFxcdHItXFx1MDAzZWFnZSsrO1xcbitcXHRcXHRpZiAoY291bnRfYWdlKSB7XFxuK1xcdFxcdFxcdGlmIChhYnNfZGlmZihzY29yZSwgbGFzdF9zY29yZSkgXFx1MDAzZSB0aHJlcylcXG4rXFx0XFx0XFx0XFx0ci1cXHUwMDNlYWdlID0gMDtcXG4rXFx0XFx0XFx0ZWxzZSBpZiAoKHNjb3JlID09IDApICE9IChsYXN0X3Njb3JlID09IDApKVxcbitcXHRcXHRcXHRcXHRyLVxcdTAwM2VhZ2UgPSAwO1xcbitcXHRcXHRcXHRlbHNlXFxuK1xcdFxcdFxcdFxcdHItXFx1MDAzZWFnZSsrO1xcbitcXHRcXHR9XFxuIFxcbiBcXHRcXHRpZiAoIXByZXYpXFxuIFxcdFxcdFxcdGdvdG8gc2V0X3ByZXZfY29udGludWU7XFxuQEAgLTMzNjYsMTUgKzMzNjgsMTggQEAgc3RhdGljIHZvaWQga2RhbW9uZF9tZXJnZV9yZWdpb25zKHN0cnVjdCBkYW1vbl9jdHggKmMsIHVuc2lnbmVkIGludCB0aHJlc2hvbGQsXFxuIFxcdHN0cnVjdCBkYW1vbl90YXJnZXQgKnQ7XFxuIFxcdHVuc2lnbmVkIGludCBucl9yZWdpb25zO1xcbiBcXHR1bnNpZ25lZCBpbnQgbWF4X3RocmVzO1xcbitcXHRib29sIGNvdW50X2FnZSA9IHRydWU7XFxuIFxcbiBcXHRtYXhfdGhyZXMgPSBjLVxcdTAwM2VhdHRycy5hZ2dyX2ludGVydmFsIC9cXG4gXFx0XFx0KGMtXFx1MDAzZWF0dHJzLnNhbXBsZV9pbnRlcnZhbCA/ICBjLVxcdTAwM2VhdHRycy5zYW1wbGVfaW50ZXJ2YWwgOiAxKTtcXG4gXFx0ZG8ge1xcbiBcXHRcXHRucl9yZWdpb25zID0gMDtcXG4gXFx0XFx0ZGFtb25fZm9yX2VhY2hfdGFyZ2V0KHQsIGMpIHtcXG4tXFx0XFx0XFx0ZGFtb25fbWVyZ2VfcmVnaW9uc19vZih0LCB0aHJlc2hvbGQsIHN6X2xpbWl0LCBjKTtcXG4rXFx0XFx0XFx0ZGFtb25fbWVyZ2VfcmVnaW9uc19vZih0LCB0aHJlc2hvbGQsIHN6X2xpbWl0LCBjLFxcbitcXHRcXHRcXHRcXHRcXHRjb3VudF9hZ2UpO1xcbiBcXHRcXHRcXHRucl9yZWdpb25zICs9IGRhbW9uX25yX3JlZ2lvbnModCk7XFxuIFxcdFxcdH1cXG4rXFx0XFx0Y291bnRfYWdlID0gZmFsc2U7XFxuIFxcdFxcdHRocmVzaG9sZCA9IG1heCgxLCB0aHJlc2hvbGQgKiAyKTtcXG4gXFx0fSB3aGlsZSAobnJfcmVnaW9ucyBcXHUwMDNlIGMtXFx1MDAzZWF0dHJzLm1heF9ucl9yZWdpb25zIFxcdTAwMjZcXHUwMDI2XFxuIFxcdFxcdFxcdHRocmVzaG9sZCAvIDIgXFx1MDAzYyBtYXhfdGhyZXMpO1xcbmRpZmYgLS1naXQgYS9tbS9kYW1vbi90ZXN0cy9jb3JlLWt1bml0LmggYi9tbS9kYW1vbi90ZXN0cy9jb3JlLWt1bml0LmhcXG5pbmRleCA2YWQ3MzU1OWRkOGVhYi4uNjhkMzA2NDhjNjEyZWIgMTAwNjQ0XFxuLS0tIGEvbW0vZGFtb24vdGVzdHMvY29yZS1rdW5pdC5oXFxuKysrIGIvbW0vZGFtb24vdGVzdHMvY29yZS1rdW5pdC5oXFxuQEAgLTI1Nyw3ICsyNTcsNyBAQCBzdGF0aWMgdm9pZCBkYW1vbl90ZXN0X21lcmdlX3JlZ2lvbnNfb2Yoc3RydWN0IGt1bml0ICp0ZXN0KVxcbiBcXHRcXHRkYW1vbl9hZGRfcmVnaW9uKHIsIHQpO1xcbiBcXHR9XFxuIFxcbi1cXHRkYW1vbl9tZXJnZV9yZWdpb25zX29mKHQsIDksIDk5OTksIGN0eCk7XFxuK1xcdGRhbW9uX21lcmdlX3JlZ2lvbnNfb2YodCwgOSwgOTk5OSwgY3R4LCB0cnVlKTtcXG4gXFx0LyogMC0xMTIsIDExNC0xMzAsIDEzMC0xNTYsIDE1Ni0xNzAsIDE3MC0yMzAsIDIzMC0xMDE3MCAqL1xcbiBcXHRLVU5JVF9FWFBFQ1RfRVEodGVzdCwgZGFtb25fbnJfcmVnaW9ucyh0KSwgNnUpO1xcbiBcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgNjsgaSsrKSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEyVDEwOjE3OjM5LjU5MDk3MjM4OVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTczMDY1NTkzNjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiREFNT05cIixcbiAgICBcIkRBTU9OX1ZBRERSXCIsXG4gICAgXCJEQU1PTl9QQUREUlwiLFxuICAgIFwiREFNT05fU1lTRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrZGFtb25kX21lcmdlX3JlZ2lvbnNcIixcbiAgICBcImRhbW9uX21lcmdlX3JlZ2lvbnNfb2ZcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBsb2dpYyBvZiBEQU1PTiAoRGF0YSBBY2Nlc3MgTU9OaXRvcikgZm9yIG1lcmdpbmcgcmVnaW9ucyBhbmQgdXBkYXRpbmcgdGhlaXIgYWdlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGtlcm5lbCdzIG1lbW9yeSBtYW5hZ2VtZW50IHN1YnN5c3RlbSB0aGF0IGFmZmVjdHMgaG93IG1lbW9yeSBhY2Nlc3MgcGF0dGVybnMgYXJlIG1vbml0b3JlZCBhbmQgYWdncmVnYXRlZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA4ODc3MWRkODg0YThiNWY5YzlmMWU1MmQyMTZjMGEyMTZkN2Q0OGQyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBKdWwgMTIgMTA6MTc6MzcgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9tbS9kYW1vbi9jb3JlLmMgYi9tbS9kYW1vbi9jb3JlLmNcbmluZGV4IDgwNmE2N2QwMmE2ZTkwLi42YzQyMTVjYzgwOWVjMiAxMDA2NDRcbi0tLSBhL21tL2RhbW9uL2NvcmUuY1xuKysrIGIvbW0vZGFtb24vY29yZS5jXG5AQCAtMzMwOCw3ICszMzA4LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBkYW1vbl9tZXJnZV9zY29yZShzdHJ1Y3QgZGFtb25fcmVnaW9uICpyLCBib29sIGxhc3QsXG4gICogc3pfbGltaXRcdHNpemUgdXBwZXIgbGltaXQgb2YgZWFjaCByZWdpb25cbiAgKi9cbiBzdGF0aWMgdm9pZCBkYW1vbl9tZXJnZV9yZWdpb25zX29mKHN0cnVjdCBkYW1vbl90YXJnZXQgKnQsIHVuc2lnbmVkIGludCB0aHJlcyxcbi1cdFx0dW5zaWduZWQgbG9uZyBzel9saW1pdCwgc3RydWN0IGRhbW9uX2N0eCAqY3R4KVxuK1x0XHR1bnNpZ25lZCBsb25nIHN6X2xpbWl0LCBzdHJ1Y3QgZGFtb25fY3R4ICpjdHgsIGJvb2wgY291bnRfYWdlKVxuIHtcbiBcdHN0cnVjdCBkYW1vbl9yZWdpb24gKnIsICpwcmV2ID0gTlVMTCwgKm5leHQ7XG4gXHRib29sIHVzZV9wcm9iZV9oaXRzID0gZGFtb25faGFzX3Byb2JlX3dlaWdodHMoY3R4KTtcbkBAIC0zMzE5LDEyICszMzE5LDE0IEBAIHN0YXRpYyB2b2lkIGRhbW9uX21lcmdlX3JlZ2lvbnNfb2Yoc3RydWN0IGRhbW9uX3RhcmdldCAqdCwgdW5zaWduZWQgaW50IHRocmVzLFxuIFx0XHRzY29yZSA9IGRhbW9uX21lcmdlX3Njb3JlKHIsIGZhbHNlLCBjdHgsIHVzZV9wcm9iZV9oaXRzKTtcbiBcdFx0bGFzdF9zY29yZSA9IGRhbW9uX21lcmdlX3Njb3JlKHIsIHRydWUsIGN0eCwgdXNlX3Byb2JlX2hpdHMpO1xuIFxuLVx0XHRpZiAoYWJzX2RpZmYoc2NvcmUsIGxhc3Rfc2NvcmUpIFx1MDAzZSB0aHJlcylcbi1cdFx0XHRyLVx1MDAzZWFnZSA9IDA7XG4tXHRcdGVsc2UgaWYgKChzY29yZSA9PSAwKSAhPSAobGFzdF9zY29yZSA9PSAwKSlcbi1cdFx0XHRyLVx1MDAzZWFnZSA9IDA7XG4tXHRcdGVsc2Vcbi1cdFx0XHRyLVx1MDAzZWFnZSsrO1xuK1x0XHRpZiAoY291bnRfYWdlKSB7XG4rXHRcdFx0aWYgKGFic19kaWZmKHNjb3JlLCBsYXN0X3Njb3JlKSBcdTAwM2UgdGhyZXMpXG4rXHRcdFx0XHRyLVx1MDAzZWFnZSA9IDA7XG4rXHRcdFx0ZWxzZSBpZiAoKHNjb3JlID09IDApICE9IChsYXN0X3Njb3JlID09IDApKVxuK1x0XHRcdFx0ci1cdTAwM2VhZ2UgPSAwO1xuK1x0XHRcdGVsc2VcbitcdFx0XHRcdHItXHUwMDNlYWdlKys7XG4rXHRcdH1cbiBcbiBcdFx0aWYgKCFwcmV2KVxuIFx0XHRcdGdvdG8gc2V0X3ByZXZfY29udGludWU7XG5AQCAtMzM2NiwxNSArMzM2OCwxOCBAQCBzdGF0aWMgdm9pZCBrZGFtb25kX21lcmdlX3JlZ2lvbnMoc3RydWN0IGRhbW9uX2N0eCAqYywgdW5zaWduZWQgaW50IHRocmVzaG9sZCxcbiBcdHN0cnVjdCBkYW1vbl90YXJnZXQgKnQ7XG4gXHR1bnNpZ25lZCBpbnQgbnJfcmVnaW9ucztcbiBcdHVuc2lnbmVkIGludCBtYXhfdGhyZXM7XG4rXHRib29sIGNvdW50X2FnZSA9IHRydWU7XG4gXG4gXHRtYXhfdGhyZXMgPSBjLVx1MDAzZWF0dHJzLmFnZ3JfaW50ZXJ2YWwgL1xuIFx0XHQoYy1cdTAwM2VhdHRycy5zYW1wbGVfaW50ZXJ2YWwgPyAgYy1cdTAwM2VhdHRycy5zYW1wbGVfaW50ZXJ2YWwgOiAxKTtcbiBcdGRvIHtcbiBcdFx0bnJfcmVnaW9ucyA9IDA7XG4gXHRcdGRhbW9uX2Zvcl9lYWNoX3RhcmdldCh0LCBjKSB7XG4tXHRcdFx0ZGFtb25fbWVyZ2VfcmVnaW9uc19vZih0LCB0aHJlc2hvbGQsIHN6X2xpbWl0LCBjKTtcbitcdFx0XHRkYW1vbl9tZXJnZV9yZWdpb25zX29mKHQsIHRocmVzaG9sZCwgc3pfbGltaXQsIGMsXG4rXHRcdFx0XHRcdGNvdW50X2FnZSk7XG4gXHRcdFx0bnJfcmVnaW9ucyArPSBkYW1vbl9ucl9yZWdpb25zKHQpO1xuIFx0XHR9XG4rXHRcdGNvdW50X2FnZSA9IGZhbHNlO1xuIFx0XHR0aHJlc2hvbGQgPSBtYXgoMSwgdGhyZXNob2xkICogMik7XG4gXHR9IHdoaWxlIChucl9yZWdpb25zIFx1MDAzZSBjLVx1MDAzZWF0dHJzLm1heF9ucl9yZWdpb25zIFx1MDAyNlx1MDAyNlxuIFx0XHRcdHRocmVzaG9sZCAvIDIgXHUwMDNjIG1heF90aHJlcyk7XG5kaWZmIC0tZ2l0IGEvbW0vZGFtb24vdGVzdHMvY29yZS1rdW5pdC5oIGIvbW0vZGFtb24vdGVzdHMvY29yZS1rdW5pdC5oXG5pbmRleCA2YWQ3MzU1OWRkOGVhYi4uNjhkMzA2NDhjNjEyZWIgMTAwNjQ0XG4tLS0gYS9tbS9kYW1vbi90ZXN0cy9jb3JlLWt1bml0LmhcbisrKyBiL21tL2RhbW9uL3Rlc3RzL2NvcmUta3VuaXQuaFxuQEAgLTI1Nyw3ICsyNTcsNyBAQCBzdGF0aWMgdm9pZCBkYW1vbl90ZXN0X21lcmdlX3JlZ2lvbnNfb2Yoc3RydWN0IGt1bml0ICp0ZXN0KVxuIFx0XHRkYW1vbl9hZGRfcmVnaW9uKHIsIHQpO1xuIFx0fVxuIFxuLVx0ZGFtb25fbWVyZ2VfcmVnaW9uc19vZih0LCA5LCA5OTk5LCBjdHgpO1xuK1x0ZGFtb25fbWVyZ2VfcmVnaW9uc19vZih0LCA5LCA5OTk5LCBjdHgsIHRydWUpO1xuIFx0LyogMC0xMTIsIDExNC0xMzAsIDEzMC0xNTYsIDE1Ni0xNzAsIDE3MC0yMzAsIDIzMC0xMDE3MCAqL1xuIFx0S1VOSVRfRVhQRUNUX0VRKHRlc3QsIGRhbW9uX25yX3JlZ2lvbnModCksIDZ1KTtcbiBcdGZvciAoaSA9IDA7IGkgXHUwMDNjIDY7IGkrKykge1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTJUMTA6MTc6MzkuNTkwOTczODk5WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzY2MzI2MDE2MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipEQU1PTiBQYXRjaCBBbmFseXNpcyoqXG5cbk9rYXksIHNvIEkndmUgZ290IGEgcGF0Y2ggaGVyZSB0aGF0J3MgdHdlYWtpbmcgdGhlIERBTU9OIHN1YnN5c3RlbSwgc3BlY2lmaWNhbGx5IGluIGBtbS9kYW1vbi9jb3JlLmNgIGFuZCBgbW0vZGFtb24vdGVzdHMvY29yZS1rdW5pdC5oYC4gVGhpcyBpcyBpbnRlcmVzdGluZzsgSSBrbm93IHRoZXNlIGFyZWFzIHdlbGwuIEl0IGxvb2tzIGxpa2UgdGhlIGNoYW5nZSByZXZvbHZlcyBhcm91bmQgdGhlIGBkYW1vbl9tZXJnZV9yZWdpb25zX29mYCBmdW5jdGlvbi4gU3BlY2lmaWNhbGx5LCBpdCBpbnRyb2R1Y2VzIGEgYGJvb2wgY291bnRfYWdlYCBwYXJhbWV0ZXIuIFxuXG5UaGUgY29yZSBvZiB0aGUgbG9naWMgc2VlbXMgdG8gYmUgd2l0aGluIGBrZGFtb25kX21lcmdlX3JlZ2lvbnNgLCB3aGljaCBpcyBub3cgcGFzc2luZyBhIGB0cnVlYCB2YWx1ZSBmb3IgYGNvdW50X2FnZWAgaW4gdGhlIGZpcnN0IGl0ZXJhdGlvbiBhbmQgYGZhbHNlYCBmb3IgYW55IHN1YnNlcXVlbnQgaXRlcmF0aW9ucy4gVGhhdCdzIGEgY2xldmVyIHdheSB0byBoYW5kbGUgaXQuIEVzc2VudGlhbGx5LCB0aGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gdGhlIGNvcmUgb2YgREFNT04uXG5cbkJlZm9yZSBJIGRpZyBpbnRvIHRoZSBzcGVjaWZpY3Mgb2YgKndoeSogdGhpcyBpcyBoYXBwZW5pbmcsIGxldCdzIHRha2UgYSBxdWljayBsb29rIGF0IHRoZSBrZXJuZWwgY29uZmlndXJhdGlvbiB0byBtYWtlIHN1cmUgREFNT04gaXMgZXZlbiBlbmFibGVkIGluIHRoZSBidWlsZCBlbnZpcm9ubWVudC4gSSB3YW50IHRvIHNlZSBpZiB0aGlzIGNoYW5nZSBldmVuIG1hdHRlcnMgaW4gbXkgY3VycmVudCBjb250ZXh0LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNzMwLCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTIyLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTJUMTA6MTc6NDMuMjU0MjM2MTMyWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIwNzk4ODMwMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgREFNT05cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibW0vZGFtb24vS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJtbS9kYW1vbi9LY29uZmlnPTM9bWVudSBcXFwiRGF0YSBBY2Nlc3MgTW9uaXRvcmluZ1xcXCJcXG5tbS9kYW1vbi9LY29uZmlnLTQtXFxubW0vZGFtb24vS2NvbmZpZzo1OmNvbmZpZyBEQU1PTlxcbm1tL2RhbW9uL0tjb25maWctNi1cXHRib29sIFxcXCJEQU1PTjogRGF0YSBBY2Nlc3MgTW9uaXRvcmluZyBGcmFtZXdvcmtcXFwiXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTE0LVxcbm1tL2RhbW9uL0tjb25maWc6MTU6Y29uZmlnIERBTU9OX0RFQlVHX1NBTklUWVxcbm1tL2RhbW9uL0tjb25maWctMTYtXFx0Ym9vbCBcXFwiQ2hlY2sgc2FuaXR5IG9mIERBTU9OIGNvZGVcXFwiXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTI1LVxcbm1tL2RhbW9uL0tjb25maWc6MjY6Y29uZmlnIERBTU9OX0tVTklUX1RFU1RcXG5tbS9kYW1vbi9LY29uZmlnLTI3LVxcdGJvb2wgXFxcIlRlc3QgZm9yIGRhbW9uXFxcIiBpZiAhS1VOSVRfQUxMX1RFU1RTXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTM3LVxcbm1tL2RhbW9uL0tjb25maWc6Mzg6Y29uZmlnIERBTU9OX1ZBRERSXFxubW0vZGFtb24vS2NvbmZpZy0zOS1cXHRib29sIFxcXCJEYXRhIGFjY2VzcyBtb25pdG9yaW5nIG9wZXJhdGlvbnMgZm9yIHZpcnR1YWwgYWRkcmVzcyBzcGFjZXNcXFwiXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTQ2LVxcbm1tL2RhbW9uL0tjb25maWc6NDc6Y29uZmlnIERBTU9OX1BBRERSXFxubW0vZGFtb24vS2NvbmZpZy00OC1cXHRib29sIFxcXCJEYXRhIGFjY2VzcyBtb25pdG9yaW5nIG9wZXJhdGlvbnMgZm9yIHRoZSBwaHlzaWNhbCBhZGRyZXNzIHNwYWNlXFxcIlxcbi0tXFxubW0vZGFtb24vS2NvbmZpZy01NS1cXG5tbS9kYW1vbi9LY29uZmlnOjU2OmNvbmZpZyBEQU1PTl9WQUREUl9LVU5JVF9URVNUXFxubW0vZGFtb24vS2NvbmZpZy01Ny1cXHRib29sIFxcXCJUZXN0IGZvciBEQU1PTiBvcGVyYXRpb25zXFxcIiBpZiAhS1VOSVRfQUxMX1RFU1RTXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTY3LVxcbm1tL2RhbW9uL0tjb25maWc6Njg6Y29uZmlnIERBTU9OX1NZU0ZTXFxubW0vZGFtb24vS2NvbmZpZy02OS1cXHRib29sIFxcXCJEQU1PTiBzeXNmcyBpbnRlcmZhY2VcXFwiXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTc1LVxcbm1tL2RhbW9uL0tjb25maWc6NzY6Y29uZmlnIERBTU9OX1NZU0ZTX0tVTklUX1RFU1RcXG5tbS9kYW1vbi9LY29uZmlnLTc3LVxcdGJvb2wgXFxcIlRlc3QgZm9yIGRhbW9uIHN5c2ZzIGludGVyZmFjZVxcXCIgaWYgIUtVTklUX0FMTF9URVNUU1xcbi0tXFxubW0vZGFtb24vS2NvbmZpZy04Ny1cXG5tbS9kYW1vbi9LY29uZmlnOjg4OmNvbmZpZyBEQU1PTl9SRUNMQUlNXFxubW0vZGFtb24vS2NvbmZpZy04OS1cXHRib29sIFxcXCJCdWlsZCBEQU1PTi1iYXNlZCByZWNsYWltIChEQU1PTl9SRUNMQUlNKVxcXCJcXG4tLVxcbm1tL2RhbW9uL0tjb25maWctOTktXFxubW0vZGFtb24vS2NvbmZpZzoxMDA6Y29uZmlnIERBTU9OX0xSVV9TT1JUXFxubW0vZGFtb24vS2NvbmZpZy0xMDEtXFx0Ym9vbCBcXFwiQnVpbGQgREFNT04tYmFzZWQgTFJVLWxpc3RzIHNvcnRpbmcgKERBTU9OX0xSVV9TT1JUKVxcXCJcXG4tLVxcbm1tL2RhbW9uL0tjb25maWctMTA3LVxcbm1tL2RhbW9uL0tjb25maWc6MTA4OmNvbmZpZyBEQU1PTl9TVEFUXFxubW0vZGFtb24vS2NvbmZpZy0xMDktXFx0Ym9vbCBcXFwiQnVpbGQgZGF0YSBhY2Nlc3MgbW9uaXRvcmluZyBzdGF0IChEQU1PTl9TVEFUKVxcXCJcXG4tLVxcbm1tL2RhbW9uL0tjb25maWctMTE1LVxcbm1tL2RhbW9uL0tjb25maWc6MTE2OmNvbmZpZyBEQU1PTl9TVEFUX0VOQUJMRURfREVGQVVMVFxcbm1tL2RhbW9uL0tjb25maWctMTE3LVxcdGJvb2wgXFxcIkVuYWJsZSBEQU1PTl9TVEFUIGJ5IGRlZmF1bHRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEyVDEwOjE3OjQzLjQ2MjIyOTc3M1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3Njg0MDc2MjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBEQU1PTiBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBpcyBjbGVhcmx5IGBEQU1PTmAuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBxdWlja2x5IHZlcmlmeSBpZiB0aGVyZSBhcmUgb3RoZXIgcmVsYXRlZCBjb25maWd1cmF0aW9ucyB0aGF0IG1pZ2h0IGJlIHJlbGV2YW50LiBNeSBtZW1vcnkgc3VnZ2VzdHMgYERBTU9OX1NZU0ZTYCBpcyBjb21tb25seSB1c2VkIGZvciB1c2Vyc3BhY2UgaW50ZXJhY3Rpb24gd2l0aCB0aGUgREFNT04gc3Vic3lzdGVtLCBzbyBJJ2xsIGtlZXAgdGhhdCBpbiBtaW5kIGFzIGEgcG90ZW50aWFsIGFyZWEgdG8gaW52ZXN0aWdhdGUgZnVydGhlci5cblxuTm93LCBJJ20gZ29pbmcgdG8gc2hpZnQgZ2VhcnMgYW5kIGRpZyBpbnRvIHRoZSBjb2RlIGl0c2VsZi4gU3BlY2lmaWNhbGx5LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgZnVuY3Rpb24gbW9kaWZpY2F0aW9ucywgc28gSSdsbCBiZSBoZWFkaW5nIG92ZXIgdG8gYG1tL2RhbW9uL2NvcmUuY2AuIExldCdzIHNlZSB3aGF0J3MgY2hhbmdlZCB0aGVyZS5cblxuSG1tLCBpdCBsb29rcyBsaWtlIGBkYW1vbl9tZXJnZV9yZWdpb25zX29mYCBpcyBhIHN0YXRpYyBmdW5jdGlvbi4gQWxzbywgYGtkYW1vbmRfbWVyZ2VfcmVnaW9uc2AgaXMgc3RhdGljLiBUaGF0IG1lYW5zIHRoZXkgYXJlIG9ubHkgdXNhYmxlIHdpdGhpbiB0aGUgZmlsZS4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hlcmUgYGtkYW1vbmRfbWVyZ2VfcmVnaW9uc2AgaXMgYWN0dWFsbHkgYmVpbmcgY2FsbGVkLiBUaGF0IHdpbGwgZ2l2ZSBtZSBpbnNpZ2h0IGludG8gaG93IHRoZSBtZW1vcnkgcmVnaW9uIG1lcmdpbmcgaXMgYWN0dWFsbHkgaGFuZGxlZCBpbiB0aGlzIGNvbnRleHQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM4NTMsIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTJUMTA6MTc6NDcuMjMwNjQwNTc3WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNjEwOTk4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJrZGFtb25kX21lcmdlX3JlZ2lvbnNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibW0vZGFtb24vY29yZS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm1tL2RhbW9uL2NvcmUuYz0zMzEwPXN0YXRpYyB2b2lkIGRhbW9uX21lcmdlX3JlZ2lvbnNfb2Yoc3RydWN0IGRhbW9uX3RhcmdldCAqdCwgdW5zaWduZWQgaW50IHRocmVzLFxcbi0tXFxubW0vZGFtb24vY29yZS5jLTMzNjQtICovXFxubW0vZGFtb24vY29yZS5jOjMzNjU6c3RhdGljIHZvaWQga2RhbW9uZF9tZXJnZV9yZWdpb25zKHN0cnVjdCBkYW1vbl9jdHggKmMsIHVuc2lnbmVkIGludCB0aHJlc2hvbGQsXFxubW0vZGFtb24vY29yZS5jLTMzNjYtXFx0XFx0XFx0XFx0ICB1bnNpZ25lZCBsb25nIHN6X2xpbWl0KVxcbi0tXFxubW0vZGFtb24vY29yZS5jPTM0NjM9c3RhdGljIHZvaWQgZGFtb25fc3BsaXRfc29tZV9yZWdpb25zKHN0cnVjdCBkYW1vbl9jdHggKmN0eCxcXG4tLVxcbm1tL2RhbW9uL2NvcmUuYy0zNDk5LSAqIG1vbml0b3JpbmcgYWNjdXJhY3kgdW5kZXIgdGhlIGR5bmFtaWNhbGx5IGNoYW5nZWFibGUgYWNjZXNzIHBhdHRlcm5zLiAgSWYgYVxcbm1tL2RhbW9uL2NvcmUuYzozNTAwOiAqIHNwbGl0IHdhcyB1bm5lY2Vzc2FyaWx5IG1hZGUsIGxhdGVyICdrZGFtb25kX21lcmdlX3JlZ2lvbnMoKScgd2lsbCByZXZlcnRcXG5tbS9kYW1vbi9jb3JlLmMtMzUwMS0gKiBpdC5cXG4tLVxcbm1tL2RhbW9uL2NvcmUuYz0zNzQxPXN0YXRpYyBpbnQga2RhbW9uZF9mbih2b2lkICpkYXRhKVxcbi0tXFxubW0vZGFtb24vY29yZS5jLTM4MDUtXFx0XFx0XFx0XFx0XFx0bmV4dF9hZ2dyZWdhdGlvbl9zaXMpKSB7XFxubW0vZGFtb24vY29yZS5jOjM4MDY6XFx0XFx0XFx0a2RhbW9uZF9tZXJnZV9yZWdpb25zKGN0eCxcXG5tbS9kYW1vbi9jb3JlLmMtMzgwNy1cXHRcXHRcXHRcXHRcXHRtYXhfbWVyZ2Vfc2NvcmUgLyAxMCxcXG4tLVxcbm1tL2RhbW9uL2NvcmUuYy0zODE0LVxcdFxcdCAqIGRvIGtkYW1vbmRfY2FsbCgpIGFuZCBrZGFtb25kX2FwcGx5X3NjaGVtZXMoKSBhZnRlclxcbm1tL2RhbW9uL2NvcmUuYzozODE1OlxcdFxcdCAqIGtkYW1vbmRfbWVyZ2VfcmVnaW9ucygpIGlmIHBvc3NpYmxlLCB0byByZWR1Y2Ugb3ZlcmhlYWRcXG5tbS9kYW1vbi9jb3JlLmMtMzgxNi1cXHRcXHQgKi9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTJUMTA6MTc6NDcuMzM2NzU2MTY3WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjU2ODQ4MjcwMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd246XG5cbioqQW5hbHl6aW5nIHRoZSBEQU1PTiBLZXJuZWwgRGFlbW9uJ3MgRW50cnkgUG9pbnQqKlxuXG5BbHJpZ2h0LCBsZXQncyBkaXZlIGluLiBNeSBmb2N1cyBpcyBvbiB0aGUgYGtkYW1vbmRfZm5gIGZ1bmN0aW9uLCB3aGljaCBJIHVuZGVyc3RhbmQgaXMgdGhlIGhlYXJ0IG9mIERBTU9OJ3MgY29yZSB0aHJlYWQuIE15IHByaW1hcnkgaW50ZXJlc3QgaXMgdW5kZXJzdGFuZGluZyBob3cgdGhpcyBjcnVjaWFsIGZ1bmN0aW9uIGdldHMgaW5pdGlhdGVkLiBJIHdhbnQgdG8gc2VlIGhvdyB0aGUgc3lzdGVtIGJyaW5ncyB0aGlzIGtleSBwYXJ0IG9mIHRoZSBkYWVtb24gaW50byBhY3Rpb24uIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoaXMgc3RhcnR1cCBwcm9jZXNzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NjQzLCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTJUMTA6MTc6NDkuOTA1MjQwMzU4WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI2NzI4NTIwNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJrZGFtb25kX2ZuXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm1tL2RhbW9uL2NvcmUuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJtbS9kYW1vbi9jb3JlLmM9MTAxMj1zdGF0aWMgYm9vbCBkYW1vbl92YWxpZF9pbnRlcnZhbHNfZ29hbChzdHJ1Y3QgZGFtb25fYXR0cnMgKmF0dHJzKVxcbi0tXFxubW0vZGFtb24vY29yZS5jLTEwMzQtICogYmUgY2FsbGVkIGZyb20gYSBzYWZlIGNvbnRleHRzLiAgU3VjaCBjb250ZXh0cyBpbmNsdWRlIGRhbW9uX2N0eCBzZXR1cCB0aW1lXFxubW0vZGFtb24vY29yZS5jOjEwMzU6ICogd2hpbGUgdGhlIGtkYW1vbmQgaXMgbm90IHlldCBzdGFydGVkLCBhbmQgaW5zaWRlIG9mIGtkYW1vbmRfZm4oKS5cXG5tbS9kYW1vbi9jb3JlLmMtMTAzNi0gKlxcbi0tXFxubW0vZGFtb24vY29yZS5jLTEwMzktICogYWxzbyBpbmRpcmVjdGx5IGNhbGwgdGhpcyBmdW5jdGlvbiB2aWEgZGFtb25fY2FsbCgpIC1cXHUwMDNlIGRhbW9uX2NvbW1pdCgpIGZvclxcbm1tL2RhbW9uL2NvcmUuYzoxMDQwOiAqIG9ubGluZSBwYXJhbWV0ZXJzIHVwZGF0ZXMuICBGaW5hbGx5LCBrZGFtb25kX2ZuKCkgaXRzZWxmIHVzZSB0aGlzIGZvclxcbm1tL2RhbW9uL2NvcmUuYy0xMDQxLSAqIGFwcGx5aW5nIGF1dG8tdHVuZWQgbW9uaXRvcmluZyBpbnRlcnZhbHMuXFxuLS1cXG5tbS9kYW1vbi9jb3JlLmM9MTA0Nz1pbnQgZGFtb25fc2V0X2F0dHJzKHN0cnVjdCBkYW1vbl9jdHggKmN0eCwgc3RydWN0IGRhbW9uX2F0dHJzICphdHRycylcXG4tLVxcbm1tL2RhbW9uL2NvcmUuYy0xMDczLVxcdC8qXFxubW0vZGFtb24vY29yZS5jOjEwNzQ6XFx0ICogbmV4dF9pbnRlcnZhbHNfdHVuZV9zaXMgd2lsbCBiZSB1cGRhdGVkIGluc2lkZSBrZGFtb25kX2ZuKCkuXFxubW0vZGFtb24vY29yZS5jLTEwNzUtXFx0ICovXFxuLS1cXG5tbS9kYW1vbi9jb3JlLmM9MTkwND1zdGF0aWMgdW5zaWduZWQgbG9uZyBkYW1vbl9hcHBseV9taW5fbnJfcmVnaW9ucyhzdHJ1Y3QgZGFtb25fY3R4ICpjdHgpXFxuLS1cXG5tbS9kYW1vbi9jb3JlLmMtMTkyMS1cXG5tbS9kYW1vbi9jb3JlLmM6MTkyMjpzdGF0aWMgaW50IGtkYW1vbmRfZm4odm9pZCAqZGF0YSk7XFxubW0vZGFtb24vY29yZS5jLTE5MjMtXFxuLS1cXG5tbS9kYW1vbi9jb3JlLmM9MTkzMj1zdGF0aWMgaW50IF9fZGFtb25fc3RhcnQoc3RydWN0IGRhbW9uX2N0eCAqY3R4KVxcbi0tXFxubW0vZGFtb24vY29yZS5jLTE5MzktXFx0XFx0cmVpbml0X2NvbXBsZXRpb24oXFx1MDAyNmN0eC1cXHUwMDNla2RhbW9uZF9zdGFydGVkKTtcXG5tbS9kYW1vbi9jb3JlLmM6MTk0MDpcXHRcXHRjdHgtXFx1MDAzZWtkYW1vbmQgPSBrdGhyZWFkX3J1bihrZGFtb25kX2ZuLCBjdHgsIFxcXCJrZGFtb25kLiVkXFxcIixcXG5tbS9kYW1vbi9jb3JlLmMtMTk0MS1cXHRcXHRcXHRcXHRucl9ydW5uaW5nX2N0eHMpO1xcbi0tXFxubW0vZGFtb24vY29yZS5jPTIwMzY9dm9pZCBkYW1vbl9zdG9wKHN0cnVjdCBkYW1vbl9jdHggKipjdHhzLCBpbnQgbnJfY3R4cylcXG4tLVxcbm1tL2RhbW9uL2NvcmUuYy0yMDQwLVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBucl9jdHhzOyBpKyspXFxubW0vZGFtb24vY29yZS5jOjIwNDE6XFx0XFx0LyogbnJfcnVubmluZ19jdHhzIGlzIGRlY3JlbWVudGVkIGluIGtkYW1vbmRfZm4gKi9cXG5tbS9kYW1vbi9jb3JlLmMtMjA0Mi1cXHRcXHRfX2RhbW9uX3N0b3AoY3R4c1tpXSk7XFxuLS1cXG5tbS9kYW1vbi9jb3JlLmM9MzcxOT1zdGF0aWMgdm9pZCBrZGFtb25kX2luaXRfY3R4KHN0cnVjdCBkYW1vbl9jdHggKmN0eClcXG4tLVxcbm1tL2RhbW9uL2NvcmUuYy0zNzQwLSAqL1xcbm1tL2RhbW9uL2NvcmUuYzozNzQxOnN0YXRpYyBpbnQga2RhbW9uZF9mbih2b2lkICpkYXRhKVxcbm1tL2RhbW9uL2NvcmUuYy0zNzQyLXtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTJUMTA6MTc6NTAuMTcyNTMwMjA0WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjY0NTIwNTkwNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBEQU1PTiBSZWZpbmVtZW50OiBGb2N1cyBhbmQgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgaGl0dGluZyB0aGUgY29yZSBvZiBEQU1PTiwgc3BlY2lmaWNhbGx5IHRoZSByZWdpb24gbWVyZ2luZyBsb2dpYywgd2hpY2ggaXMgaGFuZGxlZCBpbiBga2RhbW9uZF9tZXJnZV9yZWdpb25zYCBhbmQsIGltcG9ydGFudGx5LCBgZGFtb25fbWVyZ2VfcmVnaW9uc19vZmAuIFRoZSBjaGFuZ2UgaXRzZWxmIGlzIGZ1bmN0aW9uYWw7IGl0J3MgbW9kaWZ5aW5nIGhvdyByZWdpb25zIG1lcmdlIGFuZCBob3cgdGhlaXIgXCJhZ2VcIiBpcyB1cGRhdGVkLCB3aGljaCBpcyBjcnVjaWFsIGZvciBlZmZpY2llbnQgbWVtb3J5IG1hbmFnZW1lbnQuIFBhc3NpbmcgYGNvdW50X2FnZWAgaW50byBgZGFtb25fbWVyZ2VfcmVnaW9uc19vZmAgaXMgYSBrZXkgaW5kaWNhdG9yIG9mIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgREFNT04uIFRoaXMgbWFrZXMgZnV6emluZyBhIHZlcnkgZ29vZCBpZGVhLlxuXG5MZXQncyBpZGVudGlmeSB0aGUgZm9jYWwgc3ltYm9scy4gYGtkYW1vbmRfbWVyZ2VfcmVnaW9uc2AgYW5kIGBkYW1vbl9tZXJnZV9yZWdpb25zX29mYCBhcmUgYm90aCBzdGF0aWMsIHJpZ2h0PyBZZXMuIFdlIGNhbiBkZWZpbml0ZWx5IGZvY3VzIG9uIGJvdGguIGBrZGFtb25kX2ZuYCBpcyB0aGUgbWFpbiB0aHJlYWQgZnVuY3Rpb24sIGJ1dCB0aGUgbWVyZ2UgbG9naWMgaXMgd2hlcmUgdGhlIHJlYWwgYWN0aW9uIGlzIGluIHRoaXMgcGF0Y2guIExldCdzIHN0aWNrIHdpdGggZnV6emluZyBga2RhbW9uZF9tZXJnZV9yZWdpb25zYCBhbmQgYGRhbW9uX21lcmdlX3JlZ2lvbnNfb2ZgLlxuXG5Ob3csIHRoZSBjb25maWd1cmF0aW9uIGFzcGVjdC4gV2UgbmVlZCB0byBlbnN1cmUgd2UgY2FuIGFjdHVhbGx5ICpydW4qIHRoZSBEQU1PTiBjb2RlIHdpdGggdGhlIGFwcHJvcHJpYXRlIGNvbmZpZ3VyYXRpb24gdG8gZXZlbiB0ZXN0IHRoaXMgcGF0Y2guIEkga25vdyBgREFNT05gIGlzIHRoZSBwcmltYXJ5IGNvbmZpZy4gRm9yIHJ1bm5pbmcgREFNT04sIGBEQU1PTl9WQUREUmAgYW5kL29yIGBEQU1PTl9QQUREUmAgYXJlIGxpa2VseSBuZWVkZWQuIEdvaW5nIGJhY2sgdG8gYG1tL2RhbW9uL0tjb25maWdgIGZvciB2ZXJpZmljYXRpb24uLi5BaCB5ZXMsIGFuZCB3ZSdsbCBwcm9iYWJseSBuZWVkIGBEQU1PTl9TWVNGU2AgZm9yIHVzZXJzcGFjZSBpbnRlcmFjdGlvbi4gU28sIGZvciBtYXhpbXVtIGNvdmVyYWdlLCBJJ2xsIGluY2x1ZGUgYERBTU9OYCwgYERBTU9OX1ZBRERSYCwgYERBTU9OX1BBRERSYCwgYW5kIGBEQU1PTl9TWVNGU2AgaW4gb3VyIHRlc3RpbmcgY29uZmlndXJhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6NTYwMSwiT3V0cHV0VG9rZW5zIjoxMjYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNDcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTJUMTA6MTc6NTYuODE3NzM4MDAxWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Nzk3OTA5NTMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkRBTU9OXCIsXG4gICAgXCJEQU1PTl9WQUREUlwiLFxuICAgIFwiREFNT05fUEFERFJcIixcbiAgICBcIkRBTU9OX1NZU0ZTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia2RhbW9uZF9tZXJnZV9yZWdpb25zXCIsXG4gICAgXCJkYW1vbl9tZXJnZV9yZWdpb25zX29mXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgbG9naWMgb2YgREFNT04gKERhdGEgQWNjZXNzIE1PTml0b3IpIGZvciBtZXJnaW5nIHJlZ2lvbnMgYW5kIHVwZGF0aW5nIHRoZWlyIGFnZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBrZXJuZWwncyBtZW1vcnkgbWFuYWdlbWVudCBzdWJzeXN0ZW0gdGhhdCBhZmZlY3RzIGhvdyBtZW1vcnkgYWNjZXNzIHBhdHRlcm5zIGFyZSBtb25pdG9yZWQgYW5kIGFnZ3JlZ2F0ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiREFNT05cIixcbiAgICBcIkRBTU9OX1ZBRERSXCIsXG4gICAgXCJEQU1PTl9QQUREUlwiLFxuICAgIFwiREFNT05fU1lTRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrZGFtb25kX21lcmdlX3JlZ2lvbnNcIixcbiAgICBcImRhbW9uX21lcmdlX3JlZ2lvbnNfb2ZcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBsb2dpYyBvZiBEQU1PTiAoRGF0YSBBY2Nlc3MgTU9OaXRvcikgZm9yIG1lcmdpbmcgcmVnaW9ucyBhbmQgdXBkYXRpbmcgdGhlaXIgYWdlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGtlcm5lbCdzIG1lbW9yeSBtYW5hZ2VtZW50IHN1YnN5c3RlbSB0aGF0IGFmZmVjdHMgaG93IG1lbW9yeSBhY2Nlc3MgcGF0dGVybnMgYXJlIG1vbml0b3JlZCBhbmQgYWdncmVnYXRlZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflowq5bwx[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-12 09:36:51 +0000 UTC FinishedAt: 2026-07-12 10:17:58 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "61cccb8363fcc282d4ae0555b8739dd227f5ad0b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "DAMON", "DAMON_VADDR", "DAMON_PADDR", "DAMON_SYSFS" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "61cccb8363fcc282d4ae0555b8739dd227f5ad0b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "DAMON", "DAMON_VADDR", "DAMON_PADDR", "DAMON_SYSFS" ], "series_id": "ffb1a388-8096-47d8-bc95-317328560b59" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "kdamond_merge_regions", "damon_merge_regions_of" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": true, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDEwOjE3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0RBTU9OJiMzNDssCiAgICAmIzM0O0RBTU9OX1ZBRERSJiMzNDssCiAgICAmIzM0O0RBTU9OX1BBRERSJiMzNDssCiAgICAmIzM0O0RBTU9OX1NZU0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7a2RhbW9uZF9tZXJnZV9yZWdpb25zJiMzNDssCiAgICAmIzM0O2RhbW9uX21lcmdlX3JlZ2lvbnNfb2YmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgbG9naWMgb2YgREFNT04gKERhdGEgQWNjZXNzIE1PTml0b3IpIGZvciBtZXJnaW5nIHJlZ2lvbnMgYW5kIHVwZGF0aW5nIHRoZWlyIGFnZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBrZXJuZWwmIzM5O3MgbWVtb3J5IG1hbmFnZW1lbnQgc3Vic3lzdGVtIHRoYXQgYWZmZWN0cyBob3cgbWVtb3J5IGFjY2VzcyBwYXR0ZXJucyBhcmUgbW9uaXRvcmVkIGFuZCBhZ2dyZWdhdGVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDEwOjE3PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgODg3NzFkZDg4NGE4YjVmOWM5ZjFlNTJkMjE2YzBhMjE2ZDdkNDhkMlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gSnVsIDEyIDEwOjE3OjM3IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL21tL2RhbW9uL2NvcmUuYyBiL21tL2RhbW9uL2NvcmUuY1xuaW5kZXggODA2YTY3ZDAyYTZlOTAuLjZjNDIxNWNjODA5ZWMyIDEwMDY0NFxuLS0tIGEvbW0vZGFtb24vY29yZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9tbS9kYW1vbi9jb3JlLmNcbkBAIC0zMzA4LDcgJiM0MzszMzA4LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBkYW1vbl9tZXJnZV9zY29yZShzdHJ1Y3QgZGFtb25fcmVnaW9uICpyLCBib29sIGxhc3QsXG4gICogc3pfbGltaXRcdHNpemUgdXBwZXIgbGltaXQgb2YgZWFjaCByZWdpb25cbiAgKi9cbiBzdGF0aWMgdm9pZCBkYW1vbl9tZXJnZV9yZWdpb25zX29mKHN0cnVjdCBkYW1vbl90YXJnZXQgKnQsIHVuc2lnbmVkIGludCB0aHJlcyxcbi1cdFx0dW5zaWduZWQgbG9uZyBzel9saW1pdCwgc3RydWN0IGRhbW9uX2N0eCAqY3R4KVxuJiM0MztcdFx0dW5zaWduZWQgbG9uZyBzel9saW1pdCwgc3RydWN0IGRhbW9uX2N0eCAqY3R4LCBib29sIGNvdW50X2FnZSlcbiB7XG4gXHRzdHJ1Y3QgZGFtb25fcmVnaW9uICpyLCAqcHJldiA9IE5VTEwsICpuZXh0O1xuIFx0Ym9vbCB1c2VfcHJvYmVfaGl0cyA9IGRhbW9uX2hhc19wcm9iZV93ZWlnaHRzKGN0eCk7XG5AQCAtMzMxOSwxMiAmIzQzOzMzMTksMTQgQEAgc3RhdGljIHZvaWQgZGFtb25fbWVyZ2VfcmVnaW9uc19vZihzdHJ1Y3QgZGFtb25fdGFyZ2V0ICp0LCB1bnNpZ25lZCBpbnQgdGhyZXMsXG4gXHRcdHNjb3JlID0gZGFtb25fbWVyZ2Vfc2NvcmUociwgZmFsc2UsIGN0eCwgdXNlX3Byb2JlX2hpdHMpO1xuIFx0XHRsYXN0X3Njb3JlID0gZGFtb25fbWVyZ2Vfc2NvcmUociwgdHJ1ZSwgY3R4LCB1c2VfcHJvYmVfaGl0cyk7XG4gXG4tXHRcdGlmIChhYnNfZGlmZihzY29yZSwgbGFzdF9zY29yZSkgXHUwMDNlIHRocmVzKVxuLVx0XHRcdHItXHUwMDNlYWdlID0gMDtcbi1cdFx0ZWxzZSBpZiAoKHNjb3JlID09IDApICE9IChsYXN0X3Njb3JlID09IDApKVxuLVx0XHRcdHItXHUwMDNlYWdlID0gMDtcbi1cdFx0ZWxzZVxuLVx0XHRcdHItXHUwMDNlYWdlJiM0MzsmIzQzOztcbiYjNDM7XHRcdGlmIChjb3VudF9hZ2UpIHtcbiYjNDM7XHRcdFx0aWYgKGFic19kaWZmKHNjb3JlLCBsYXN0X3Njb3JlKSBcdTAwM2UgdGhyZXMpXG4mIzQzO1x0XHRcdFx0ci1cdTAwM2VhZ2UgPSAwO1xuJiM0MztcdFx0XHRlbHNlIGlmICgoc2NvcmUgPT0gMCkgIT0gKGxhc3Rfc2NvcmUgPT0gMCkpXG4mIzQzO1x0XHRcdFx0ci1cdTAwM2VhZ2UgPSAwO1xuJiM0MztcdFx0XHRlbHNlXG4mIzQzO1x0XHRcdFx0ci1cdTAwM2VhZ2UmIzQzOyYjNDM7O1xuJiM0MztcdFx0fVxuIFxuIFx0XHRpZiAoIXByZXYpXG4gXHRcdFx0Z290byBzZXRfcHJldl9jb250aW51ZTtcbkBAIC0zMzY2LDE1ICYjNDM7MzM2OCwxOCBAQCBzdGF0aWMgdm9pZCBrZGFtb25kX21lcmdlX3JlZ2lvbnMoc3RydWN0IGRhbW9uX2N0eCAqYywgdW5zaWduZWQgaW50IHRocmVzaG9sZCxcbiBcdHN0cnVjdCBkYW1vbl90YXJnZXQgKnQ7XG4gXHR1bnNpZ25lZCBpbnQgbnJfcmVnaW9ucztcbiBcdHVuc2lnbmVkIGludCBtYXhfdGhyZXM7XG4mIzQzO1x0Ym9vbCBjb3VudF9hZ2UgPSB0cnVlO1xuIFxuIFx0bWF4X3RocmVzID0gYy1cdTAwM2VhdHRycy5hZ2dyX2ludGVydmFsIC9cbiBcdFx0KGMtXHUwMDNlYXR0cnMuc2FtcGxlX2ludGVydmFsID8gIGMtXHUwMDNlYXR0cnMuc2FtcGxlX2ludGVydmFsIDogMSk7XG4gXHRkbyB7XG4gXHRcdG5yX3JlZ2lvbnMgPSAwO1xuIFx0XHRkYW1vbl9mb3JfZWFjaF90YXJnZXQodCwgYykge1xuLVx0XHRcdGRhbW9uX21lcmdlX3JlZ2lvbnNfb2YodCwgdGhyZXNob2xkLCBzel9saW1pdCwgYyk7XG4mIzQzO1x0XHRcdGRhbW9uX21lcmdlX3JlZ2lvbnNfb2YodCwgdGhyZXNob2xkLCBzel9saW1pdCwgYyxcbiYjNDM7XHRcdFx0XHRcdGNvdW50X2FnZSk7XG4gXHRcdFx0bnJfcmVnaW9ucyAmIzQzOz0gZGFtb25fbnJfcmVnaW9ucyh0KTtcbiBcdFx0fVxuJiM0MztcdFx0Y291bnRfYWdlID0gZmFsc2U7XG4gXHRcdHRocmVzaG9sZCA9IG1heCgxLCB0aHJlc2hvbGQgKiAyKTtcbiBcdH0gd2hpbGUgKG5yX3JlZ2lvbnMgXHUwMDNlIGMtXHUwMDNlYXR0cnMubWF4X25yX3JlZ2lvbnMgXHUwMDI2XHUwMDI2XG4gXHRcdFx0dGhyZXNob2xkIC8gMiBcdTAwM2MgbWF4X3RocmVzKTtcbmRpZmYgLS1naXQgYS9tbS9kYW1vbi90ZXN0cy9jb3JlLWt1bml0LmggYi9tbS9kYW1vbi90ZXN0cy9jb3JlLWt1bml0LmhcbmluZGV4IDZhZDczNTU5ZGQ4ZWFiLi42OGQzMDY0OGM2MTJlYiAxMDA2NDRcbi0tLSBhL21tL2RhbW9uL3Rlc3RzL2NvcmUta3VuaXQuaFxuJiM0MzsmIzQzOyYjNDM7IGIvbW0vZGFtb24vdGVzdHMvY29yZS1rdW5pdC5oXG5AQCAtMjU3LDcgJiM0MzsyNTcsNyBAQCBzdGF0aWMgdm9pZCBkYW1vbl90ZXN0X21lcmdlX3JlZ2lvbnNfb2Yoc3RydWN0IGt1bml0ICp0ZXN0KVxuIFx0XHRkYW1vbl9hZGRfcmVnaW9uKHIsIHQpO1xuIFx0fVxuIFxuLVx0ZGFtb25fbWVyZ2VfcmVnaW9uc19vZih0LCA5LCA5OTk5LCBjdHgpO1xuJiM0MztcdGRhbW9uX21lcmdlX3JlZ2lvbnNfb2YodCwgOSwgOTk5OSwgY3R4LCB0cnVlKTtcbiBcdC8qIDAtMTEyLCAxMTQtMTMwLCAxMzAtMTU2LCAxNTYtMTcwLCAxNzAtMjMwLCAyMzAtMTAxNzAgKi9cbiBcdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCBkYW1vbl9ucl9yZWdpb25zKHQpLCA2dSk7XG4gXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyA2OyBpJiM0MzsmIzQzOykge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDEwOjE3PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0RBTU9OJiMzNDssCiAgICAmIzM0O0RBTU9OX1ZBRERSJiMzNDssCiAgICAmIzM0O0RBTU9OX1BBRERSJiMzNDssCiAgICAmIzM0O0RBTU9OX1NZU0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7a2RhbW9uZF9tZXJnZV9yZWdpb25zJiMzNDssCiAgICAmIzM0O2RhbW9uX21lcmdlX3JlZ2lvbnNfb2YmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgbG9naWMgb2YgREFNT04gKERhdGEgQWNjZXNzIE1PTml0b3IpIGZvciBtZXJnaW5nIHJlZ2lvbnMgYW5kIHVwZGF0aW5nIHRoZWlyIGFnZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBrZXJuZWwmIzM5O3MgbWVtb3J5IG1hbmFnZW1lbnQgc3Vic3lzdGVtIHRoYXQgYWZmZWN0cyBob3cgbWVtb3J5IGFjY2VzcyBwYXR0ZXJucyBhcmUgbW9uaXRvcmVkIGFuZCBhZ2dyZWdhdGVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA4ODc3MWRkODg0YThiNWY5YzlmMWU1MmQyMTZjMGEyMTZkN2Q0OGQyCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFN1biBKdWwgMTIgMTA6MTc6MzcgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9tbS9kYW1vbi9jb3JlLmMgYi9tbS9kYW1vbi9jb3JlLmMKaW5kZXggODA2YTY3ZDAyYTZlOTAuLjZjNDIxNWNjODA5ZWMyIDEwMDY0NAotLS0gYS9tbS9kYW1vbi9jb3JlLmMKJiM0MzsmIzQzOyYjNDM7IGIvbW0vZGFtb24vY29yZS5jCkBAIC0zMzA4LDcgJiM0MzszMzA4LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBkYW1vbl9tZXJnZV9zY29yZShzdHJ1Y3QgZGFtb25fcmVnaW9uICpyLCBib29sIGxhc3QsCiAgKiBzel9saW1pdAlzaXplIHVwcGVyIGxpbWl0IG9mIGVhY2ggcmVnaW9uCiAgKi8KIHN0YXRpYyB2b2lkIGRhbW9uX21lcmdlX3JlZ2lvbnNfb2Yoc3RydWN0IGRhbW9uX3RhcmdldCAqdCwgdW5zaWduZWQgaW50IHRocmVzLAotCQl1bnNpZ25lZCBsb25nIHN6X2xpbWl0LCBzdHJ1Y3QgZGFtb25fY3R4ICpjdHgpCiYjNDM7CQl1bnNpZ25lZCBsb25nIHN6X2xpbWl0LCBzdHJ1Y3QgZGFtb25fY3R4ICpjdHgsIGJvb2wgY291bnRfYWdlKQogewogCXN0cnVjdCBkYW1vbl9yZWdpb24gKnIsICpwcmV2ID0gTlVMTCwgKm5leHQ7CiAJYm9vbCB1c2VfcHJvYmVfaGl0cyA9IGRhbW9uX2hhc19wcm9iZV93ZWlnaHRzKGN0eCk7CkBAIC0zMzE5LDEyICYjNDM7MzMxOSwxNCBAQCBzdGF0aWMgdm9pZCBkYW1vbl9tZXJnZV9yZWdpb25zX29mKHN0cnVjdCBkYW1vbl90YXJnZXQgKnQsIHVuc2lnbmVkIGludCB0aHJlcywKIAkJc2NvcmUgPSBkYW1vbl9tZXJnZV9zY29yZShyLCBmYWxzZSwgY3R4LCB1c2VfcHJvYmVfaGl0cyk7CiAJCWxhc3Rfc2NvcmUgPSBkYW1vbl9tZXJnZV9zY29yZShyLCB0cnVlLCBjdHgsIHVzZV9wcm9iZV9oaXRzKTsKIAotCQlpZiAoYWJzX2RpZmYoc2NvcmUsIGxhc3Rfc2NvcmUpICZndDsgdGhyZXMpCi0JCQlyLSZndDthZ2UgPSAwOwotCQllbHNlIGlmICgoc2NvcmUgPT0gMCkgIT0gKGxhc3Rfc2NvcmUgPT0gMCkpCi0JCQlyLSZndDthZ2UgPSAwOwotCQllbHNlCi0JCQlyLSZndDthZ2UmIzQzOyYjNDM7OwomIzQzOwkJaWYgKGNvdW50X2FnZSkgewomIzQzOwkJCWlmIChhYnNfZGlmZihzY29yZSwgbGFzdF9zY29yZSkgJmd0OyB0aHJlcykKJiM0MzsJCQkJci0mZ3Q7YWdlID0gMDsKJiM0MzsJCQllbHNlIGlmICgoc2NvcmUgPT0gMCkgIT0gKGxhc3Rfc2NvcmUgPT0gMCkpCiYjNDM7CQkJCXItJmd0O2FnZSA9IDA7CiYjNDM7CQkJZWxzZQomIzQzOwkJCQlyLSZndDthZ2UmIzQzOyYjNDM7OwomIzQzOwkJfQogCiAJCWlmICghcHJldikKIAkJCWdvdG8gc2V0X3ByZXZfY29udGludWU7CkBAIC0zMzY2LDE1ICYjNDM7MzM2OCwxOCBAQCBzdGF0aWMgdm9pZCBrZGFtb25kX21lcmdlX3JlZ2lvbnMoc3RydWN0IGRhbW9uX2N0eCAqYywgdW5zaWduZWQgaW50IHRocmVzaG9sZCwKIAlzdHJ1Y3QgZGFtb25fdGFyZ2V0ICp0OwogCXVuc2lnbmVkIGludCBucl9yZWdpb25zOwogCXVuc2lnbmVkIGludCBtYXhfdGhyZXM7CiYjNDM7CWJvb2wgY291bnRfYWdlID0gdHJ1ZTsKIAogCW1heF90aHJlcyA9IGMtJmd0O2F0dHJzLmFnZ3JfaW50ZXJ2YWwgLwogCQkoYy0mZ3Q7YXR0cnMuc2FtcGxlX2ludGVydmFsID8gIGMtJmd0O2F0dHJzLnNhbXBsZV9pbnRlcnZhbCA6IDEpOwogCWRvIHsKIAkJbnJfcmVnaW9ucyA9IDA7CiAJCWRhbW9uX2Zvcl9lYWNoX3RhcmdldCh0LCBjKSB7Ci0JCQlkYW1vbl9tZXJnZV9yZWdpb25zX29mKHQsIHRocmVzaG9sZCwgc3pfbGltaXQsIGMpOwomIzQzOwkJCWRhbW9uX21lcmdlX3JlZ2lvbnNfb2YodCwgdGhyZXNob2xkLCBzel9saW1pdCwgYywKJiM0MzsJCQkJCWNvdW50X2FnZSk7CiAJCQlucl9yZWdpb25zICYjNDM7PSBkYW1vbl9ucl9yZWdpb25zKHQpOwogCQl9CiYjNDM7CQljb3VudF9hZ2UgPSBmYWxzZTsKIAkJdGhyZXNob2xkID0gbWF4KDEsIHRocmVzaG9sZCAqIDIpOwogCX0gd2hpbGUgKG5yX3JlZ2lvbnMgJmd0OyBjLSZndDthdHRycy5tYXhfbnJfcmVnaW9ucyAmYW1wOyZhbXA7CiAJCQl0aHJlc2hvbGQgLyAyICZsdDsgbWF4X3RocmVzKTsKZGlmZiAtLWdpdCBhL21tL2RhbW9uL3Rlc3RzL2NvcmUta3VuaXQuaCBiL21tL2RhbW9uL3Rlc3RzL2NvcmUta3VuaXQuaAppbmRleCA2YWQ3MzU1OWRkOGVhYi4uNjhkMzA2NDhjNjEyZWIgMTAwNjQ0Ci0tLSBhL21tL2RhbW9uL3Rlc3RzL2NvcmUta3VuaXQuaAomIzQzOyYjNDM7JiM0MzsgYi9tbS9kYW1vbi90ZXN0cy9jb3JlLWt1bml0LmgKQEAgLTI1Nyw3ICYjNDM7MjU3LDcgQEAgc3RhdGljIHZvaWQgZGFtb25fdGVzdF9tZXJnZV9yZWdpb25zX29mKHN0cnVjdCBrdW5pdCAqdGVzdCkKIAkJZGFtb25fYWRkX3JlZ2lvbihyLCB0KTsKIAl9CiAKLQlkYW1vbl9tZXJnZV9yZWdpb25zX29mKHQsIDksIDk5OTksIGN0eCk7CiYjNDM7CWRhbW9uX21lcmdlX3JlZ2lvbnNfb2YodCwgOSwgOTk5OSwgY3R4LCB0cnVlKTsKIAkvKiAwLTExMiwgMTE0LTEzMCwgMTMwLTE1NiwgMTU2LTE3MCwgMTcwLTIzMCwgMjMwLTEwMTcwICovCiAJS1VOSVRfRVhQRUNUX0VRKHRlc3QsIGRhbW9uX25yX3JlZ2lvbnModCksIDZ1KTsKIAlmb3IgKGkgPSAwOyBpICZsdDsgNjsgaSYjNDM7JiM0MzspIHsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTIgMTA6MTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjczMAoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDEyMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipEQU1PTiBQYXRjaCBBbmFseXNpcyoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgYSBwYXRjaCBoZXJlIHRoYXQmIzM5O3MgdHdlYWtpbmcgdGhlIERBTU9OIHN1YnN5c3RlbSwgc3BlY2lmaWNhbGx5IGluIGBtbS9kYW1vbi9jb3JlLmNgIGFuZCBgbW0vZGFtb24vdGVzdHMvY29yZS1rdW5pdC5oYC4gVGhpcyBpcyBpbnRlcmVzdGluZzsgSSBrbm93IHRoZXNlIGFyZWFzIHdlbGwuIEl0IGxvb2tzIGxpa2UgdGhlIGNoYW5nZSByZXZvbHZlcyBhcm91bmQgdGhlIGBkYW1vbl9tZXJnZV9yZWdpb25zX29mYCBmdW5jdGlvbi4gU3BlY2lmaWNhbGx5LCBpdCBpbnRyb2R1Y2VzIGEgYGJvb2wgY291bnRfYWdlYCBwYXJhbWV0ZXIuIAoKVGhlIGNvcmUgb2YgdGhlIGxvZ2ljIHNlZW1zIHRvIGJlIHdpdGhpbiBga2RhbW9uZF9tZXJnZV9yZWdpb25zYCwgd2hpY2ggaXMgbm93IHBhc3NpbmcgYSBgdHJ1ZWAgdmFsdWUgZm9yIGBjb3VudF9hZ2VgIGluIHRoZSBmaXJzdCBpdGVyYXRpb24gYW5kIGBmYWxzZWAgZm9yIGFueSBzdWJzZXF1ZW50IGl0ZXJhdGlvbnMuIFRoYXQmIzM5O3MgYSBjbGV2ZXIgd2F5IHRvIGhhbmRsZSBpdC4gRXNzZW50aWFsbHksIHRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byB0aGUgY29yZSBvZiBEQU1PTi4KCkJlZm9yZSBJIGRpZyBpbnRvIHRoZSBzcGVjaWZpY3Mgb2YgKndoeSogdGhpcyBpcyBoYXBwZW5pbmcsIGxldCYjMzk7cyB0YWtlIGEgcXVpY2sgbG9vayBhdCB0aGUga2VybmVsIGNvbmZpZ3VyYXRpb24gdG8gbWFrZSBzdXJlIERBTU9OIGlzIGV2ZW4gZW5hYmxlZCBpbiB0aGUgYnVpbGQgZW52aXJvbm1lbnQuIEkgd2FudCB0byBzZWUgaWYgdGhpcyBjaGFuZ2UgZXZlbiBtYXR0ZXJzIGluIG15IGN1cnJlbnQgY29udGV4dC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAxMDoxNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgREFNT04mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDttbS9kYW1vbi9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O21tL2RhbW9uL0tjb25maWc9Mz1tZW51IFwmIzM0O0RhdGEgQWNjZXNzIE1vbml0b3JpbmdcJiMzNDtcbm1tL2RhbW9uL0tjb25maWctNC1cbm1tL2RhbW9uL0tjb25maWc6NTpjb25maWcgREFNT05cbm1tL2RhbW9uL0tjb25maWctNi1cdGJvb2wgXCYjMzQ7REFNT046IERhdGEgQWNjZXNzIE1vbml0b3JpbmcgRnJhbWV3b3JrXCYjMzQ7XG4tLVxubW0vZGFtb24vS2NvbmZpZy0xNC1cbm1tL2RhbW9uL0tjb25maWc6MTU6Y29uZmlnIERBTU9OX0RFQlVHX1NBTklUWVxubW0vZGFtb24vS2NvbmZpZy0xNi1cdGJvb2wgXCYjMzQ7Q2hlY2sgc2FuaXR5IG9mIERBTU9OIGNvZGVcJiMzNDtcbi0tXG5tbS9kYW1vbi9LY29uZmlnLTI1LVxubW0vZGFtb24vS2NvbmZpZzoyNjpjb25maWcgREFNT05fS1VOSVRfVEVTVFxubW0vZGFtb24vS2NvbmZpZy0yNy1cdGJvb2wgXCYjMzQ7VGVzdCBmb3IgZGFtb25cJiMzNDsgaWYgIUtVTklUX0FMTF9URVNUU1xuLS1cbm1tL2RhbW9uL0tjb25maWctMzctXG5tbS9kYW1vbi9LY29uZmlnOjM4OmNvbmZpZyBEQU1PTl9WQUREUlxubW0vZGFtb24vS2NvbmZpZy0zOS1cdGJvb2wgXCYjMzQ7RGF0YSBhY2Nlc3MgbW9uaXRvcmluZyBvcGVyYXRpb25zIGZvciB2aXJ0dWFsIGFkZHJlc3Mgc3BhY2VzXCYjMzQ7XG4tLVxubW0vZGFtb24vS2NvbmZpZy00Ni1cbm1tL2RhbW9uL0tjb25maWc6NDc6Y29uZmlnIERBTU9OX1BBRERSXG5tbS9kYW1vbi9LY29uZmlnLTQ4LVx0Ym9vbCBcJiMzNDtEYXRhIGFjY2VzcyBtb25pdG9yaW5nIG9wZXJhdGlvbnMgZm9yIHRoZSBwaHlzaWNhbCBhZGRyZXNzIHNwYWNlXCYjMzQ7XG4tLVxubW0vZGFtb24vS2NvbmZpZy01NS1cbm1tL2RhbW9uL0tjb25maWc6NTY6Y29uZmlnIERBTU9OX1ZBRERSX0tVTklUX1RFU1Rcbm1tL2RhbW9uL0tjb25maWctNTctXHRib29sIFwmIzM0O1Rlc3QgZm9yIERBTU9OIG9wZXJhdGlvbnNcJiMzNDsgaWYgIUtVTklUX0FMTF9URVNUU1xuLS1cbm1tL2RhbW9uL0tjb25maWctNjctXG5tbS9kYW1vbi9LY29uZmlnOjY4OmNvbmZpZyBEQU1PTl9TWVNGU1xubW0vZGFtb24vS2NvbmZpZy02OS1cdGJvb2wgXCYjMzQ7REFNT04gc3lzZnMgaW50ZXJmYWNlXCYjMzQ7XG4tLVxubW0vZGFtb24vS2NvbmZpZy03NS1cbm1tL2RhbW9uL0tjb25maWc6NzY6Y29uZmlnIERBTU9OX1NZU0ZTX0tVTklUX1RFU1Rcbm1tL2RhbW9uL0tjb25maWctNzctXHRib29sIFwmIzM0O1Rlc3QgZm9yIGRhbW9uIHN5c2ZzIGludGVyZmFjZVwmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4tLVxubW0vZGFtb24vS2NvbmZpZy04Ny1cbm1tL2RhbW9uL0tjb25maWc6ODg6Y29uZmlnIERBTU9OX1JFQ0xBSU1cbm1tL2RhbW9uL0tjb25maWctODktXHRib29sIFwmIzM0O0J1aWxkIERBTU9OLWJhc2VkIHJlY2xhaW0gKERBTU9OX1JFQ0xBSU0pXCYjMzQ7XG4tLVxubW0vZGFtb24vS2NvbmZpZy05OS1cbm1tL2RhbW9uL0tjb25maWc6MTAwOmNvbmZpZyBEQU1PTl9MUlVfU09SVFxubW0vZGFtb24vS2NvbmZpZy0xMDEtXHRib29sIFwmIzM0O0J1aWxkIERBTU9OLWJhc2VkIExSVS1saXN0cyBzb3J0aW5nIChEQU1PTl9MUlVfU09SVClcJiMzNDtcbi0tXG5tbS9kYW1vbi9LY29uZmlnLTEwNy1cbm1tL2RhbW9uL0tjb25maWc6MTA4OmNvbmZpZyBEQU1PTl9TVEFUXG5tbS9kYW1vbi9LY29uZmlnLTEwOS1cdGJvb2wgXCYjMzQ7QnVpbGQgZGF0YSBhY2Nlc3MgbW9uaXRvcmluZyBzdGF0IChEQU1PTl9TVEFUKVwmIzM0O1xuLS1cbm1tL2RhbW9uL0tjb25maWctMTE1LVxubW0vZGFtb24vS2NvbmZpZzoxMTY6Y29uZmlnIERBTU9OX1NUQVRfRU5BQkxFRF9ERUZBVUxUXG5tbS9kYW1vbi9LY29uZmlnLTExNy1cdGJvb2wgXCYjMzQ7RW5hYmxlIERBTU9OX1NUQVQgYnkgZGVmYXVsdFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDEwOjE3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4NTMKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAxMDIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBEQU1PTiBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24gaXMgY2xlYXJseSBgREFNT05gLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gcXVpY2tseSB2ZXJpZnkgaWYgdGhlcmUgYXJlIG90aGVyIHJlbGF0ZWQgY29uZmlndXJhdGlvbnMgdGhhdCBtaWdodCBiZSByZWxldmFudC4gTXkgbWVtb3J5IHN1Z2dlc3RzIGBEQU1PTl9TWVNGU2AgaXMgY29tbW9ubHkgdXNlZCBmb3IgdXNlcnNwYWNlIGludGVyYWN0aW9uIHdpdGggdGhlIERBTU9OIHN1YnN5c3RlbSwgc28gSSYjMzk7bGwga2VlcCB0aGF0IGluIG1pbmQgYXMgYSBwb3RlbnRpYWwgYXJlYSB0byBpbnZlc3RpZ2F0ZSBmdXJ0aGVyLgoKTm93LCBJJiMzOTttIGdvaW5nIHRvIHNoaWZ0IGdlYXJzIGFuZCBkaWcgaW50byB0aGUgY29kZSBpdHNlbGYuIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGZ1bmN0aW9uIG1vZGlmaWNhdGlvbnMsIHNvIEkmIzM5O2xsIGJlIGhlYWRpbmcgb3ZlciB0byBgbW0vZGFtb24vY29yZS5jYC4gTGV0JiMzOTtzIHNlZSB3aGF0JiMzOTtzIGNoYW5nZWQgdGhlcmUuCgpIbW0sIGl0IGxvb2tzIGxpa2UgYGRhbW9uX21lcmdlX3JlZ2lvbnNfb2ZgIGlzIGEgc3RhdGljIGZ1bmN0aW9uLiBBbHNvLCBga2RhbW9uZF9tZXJnZV9yZWdpb25zYCBpcyBzdGF0aWMuIFRoYXQgbWVhbnMgdGhleSBhcmUgb25seSB1c2FibGUgd2l0aGluIHRoZSBmaWxlLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGVyZSBga2RhbW9uZF9tZXJnZV9yZWdpb25zYCBpcyBhY3R1YWxseSBiZWluZyBjYWxsZWQuIFRoYXQgd2lsbCBnaXZlIG1lIGluc2lnaHQgaW50byBob3cgdGhlIG1lbW9yeSByZWdpb24gbWVyZ2luZyBpcyBhY3R1YWxseSBoYW5kbGVkIGluIHRoaXMgY29udGV4dC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAxMDoxNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtrZGFtb25kX21lcmdlX3JlZ2lvbnMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDttbS9kYW1vbi9jb3JlLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bW0vZGFtb24vY29yZS5jPTMzMTA9c3RhdGljIHZvaWQgZGFtb25fbWVyZ2VfcmVnaW9uc19vZihzdHJ1Y3QgZGFtb25fdGFyZ2V0ICp0LCB1bnNpZ25lZCBpbnQgdGhyZXMsXG4tLVxubW0vZGFtb24vY29yZS5jLTMzNjQtICovXG5tbS9kYW1vbi9jb3JlLmM6MzM2NTpzdGF0aWMgdm9pZCBrZGFtb25kX21lcmdlX3JlZ2lvbnMoc3RydWN0IGRhbW9uX2N0eCAqYywgdW5zaWduZWQgaW50IHRocmVzaG9sZCxcbm1tL2RhbW9uL2NvcmUuYy0zMzY2LVx0XHRcdFx0ICB1bnNpZ25lZCBsb25nIHN6X2xpbWl0KVxuLS1cbm1tL2RhbW9uL2NvcmUuYz0zNDYzPXN0YXRpYyB2b2lkIGRhbW9uX3NwbGl0X3NvbWVfcmVnaW9ucyhzdHJ1Y3QgZGFtb25fY3R4ICpjdHgsXG4tLVxubW0vZGFtb24vY29yZS5jLTM0OTktICogbW9uaXRvcmluZyBhY2N1cmFjeSB1bmRlciB0aGUgZHluYW1pY2FsbHkgY2hhbmdlYWJsZSBhY2Nlc3MgcGF0dGVybnMuICBJZiBhXG5tbS9kYW1vbi9jb3JlLmM6MzUwMDogKiBzcGxpdCB3YXMgdW5uZWNlc3NhcmlseSBtYWRlLCBsYXRlciAmIzM5O2tkYW1vbmRfbWVyZ2VfcmVnaW9ucygpJiMzOTsgd2lsbCByZXZlcnRcbm1tL2RhbW9uL2NvcmUuYy0zNTAxLSAqIGl0LlxuLS1cbm1tL2RhbW9uL2NvcmUuYz0zNzQxPXN0YXRpYyBpbnQga2RhbW9uZF9mbih2b2lkICpkYXRhKVxuLS1cbm1tL2RhbW9uL2NvcmUuYy0zODA1LVx0XHRcdFx0XHRuZXh0X2FnZ3JlZ2F0aW9uX3NpcykpIHtcbm1tL2RhbW9uL2NvcmUuYzozODA2Olx0XHRcdGtkYW1vbmRfbWVyZ2VfcmVnaW9ucyhjdHgsXG5tbS9kYW1vbi9jb3JlLmMtMzgwNy1cdFx0XHRcdFx0bWF4X21lcmdlX3Njb3JlIC8gMTAsXG4tLVxubW0vZGFtb24vY29yZS5jLTM4MTQtXHRcdCAqIGRvIGtkYW1vbmRfY2FsbCgpIGFuZCBrZGFtb25kX2FwcGx5X3NjaGVtZXMoKSBhZnRlclxubW0vZGFtb24vY29yZS5jOjM4MTU6XHRcdCAqIGtkYW1vbmRfbWVyZ2VfcmVnaW9ucygpIGlmIHBvc3NpYmxlLCB0byByZWR1Y2Ugb3ZlcmhlYWRcbm1tL2RhbW9uL2NvcmUuYy0zODE2LVx0XHQgKi9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAxMDoxNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NjQzCgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogMzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIG15IG93bjoKCioqQW5hbHl6aW5nIHRoZSBEQU1PTiBLZXJuZWwgRGFlbW9uJiMzOTtzIEVudHJ5IFBvaW50KioKCkFscmlnaHQsIGxldCYjMzk7cyBkaXZlIGluLiBNeSBmb2N1cyBpcyBvbiB0aGUgYGtkYW1vbmRfZm5gIGZ1bmN0aW9uLCB3aGljaCBJIHVuZGVyc3RhbmQgaXMgdGhlIGhlYXJ0IG9mIERBTU9OJiMzOTtzIGNvcmUgdGhyZWFkLiBNeSBwcmltYXJ5IGludGVyZXN0IGlzIHVuZGVyc3RhbmRpbmcgaG93IHRoaXMgY3J1Y2lhbCBmdW5jdGlvbiBnZXRzIGluaXRpYXRlZC4gSSB3YW50IHRvIHNlZSBob3cgdGhlIHN5c3RlbSBicmluZ3MgdGhpcyBrZXkgcGFydCBvZiB0aGUgZGFlbW9uIGludG8gYWN0aW9uLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGlzIHN0YXJ0dXAgcHJvY2Vzcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAxMDoxNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtrZGFtb25kX2ZuJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bW0vZGFtb24vY29yZS5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O21tL2RhbW9uL2NvcmUuYz0xMDEyPXN0YXRpYyBib29sIGRhbW9uX3ZhbGlkX2ludGVydmFsc19nb2FsKHN0cnVjdCBkYW1vbl9hdHRycyAqYXR0cnMpXG4tLVxubW0vZGFtb24vY29yZS5jLTEwMzQtICogYmUgY2FsbGVkIGZyb20gYSBzYWZlIGNvbnRleHRzLiAgU3VjaCBjb250ZXh0cyBpbmNsdWRlIGRhbW9uX2N0eCBzZXR1cCB0aW1lXG5tbS9kYW1vbi9jb3JlLmM6MTAzNTogKiB3aGlsZSB0aGUga2RhbW9uZCBpcyBub3QgeWV0IHN0YXJ0ZWQsIGFuZCBpbnNpZGUgb2Yga2RhbW9uZF9mbigpLlxubW0vZGFtb24vY29yZS5jLTEwMzYtICpcbi0tXG5tbS9kYW1vbi9jb3JlLmMtMTAzOS0gKiBhbHNvIGluZGlyZWN0bHkgY2FsbCB0aGlzIGZ1bmN0aW9uIHZpYSBkYW1vbl9jYWxsKCkgLVx1MDAzZSBkYW1vbl9jb21taXQoKSBmb3Jcbm1tL2RhbW9uL2NvcmUuYzoxMDQwOiAqIG9ubGluZSBwYXJhbWV0ZXJzIHVwZGF0ZXMuICBGaW5hbGx5LCBrZGFtb25kX2ZuKCkgaXRzZWxmIHVzZSB0aGlzIGZvclxubW0vZGFtb24vY29yZS5jLTEwNDEtICogYXBwbHlpbmcgYXV0by10dW5lZCBtb25pdG9yaW5nIGludGVydmFscy5cbi0tXG5tbS9kYW1vbi9jb3JlLmM9MTA0Nz1pbnQgZGFtb25fc2V0X2F0dHJzKHN0cnVjdCBkYW1vbl9jdHggKmN0eCwgc3RydWN0IGRhbW9uX2F0dHJzICphdHRycylcbi0tXG5tbS9kYW1vbi9jb3JlLmMtMTA3My1cdC8qXG5tbS9kYW1vbi9jb3JlLmM6MTA3NDpcdCAqIG5leHRfaW50ZXJ2YWxzX3R1bmVfc2lzIHdpbGwgYmUgdXBkYXRlZCBpbnNpZGUga2RhbW9uZF9mbigpLlxubW0vZGFtb24vY29yZS5jLTEwNzUtXHQgKi9cbi0tXG5tbS9kYW1vbi9jb3JlLmM9MTkwND1zdGF0aWMgdW5zaWduZWQgbG9uZyBkYW1vbl9hcHBseV9taW5fbnJfcmVnaW9ucyhzdHJ1Y3QgZGFtb25fY3R4ICpjdHgpXG4tLVxubW0vZGFtb24vY29yZS5jLTE5MjEtXG5tbS9kYW1vbi9jb3JlLmM6MTkyMjpzdGF0aWMgaW50IGtkYW1vbmRfZm4odm9pZCAqZGF0YSk7XG5tbS9kYW1vbi9jb3JlLmMtMTkyMy1cbi0tXG5tbS9kYW1vbi9jb3JlLmM9MTkzMj1zdGF0aWMgaW50IF9fZGFtb25fc3RhcnQoc3RydWN0IGRhbW9uX2N0eCAqY3R4KVxuLS1cbm1tL2RhbW9uL2NvcmUuYy0xOTM5LVx0XHRyZWluaXRfY29tcGxldGlvbihcdTAwMjZjdHgtXHUwMDNla2RhbW9uZF9zdGFydGVkKTtcbm1tL2RhbW9uL2NvcmUuYzoxOTQwOlx0XHRjdHgtXHUwMDNla2RhbW9uZCA9IGt0aHJlYWRfcnVuKGtkYW1vbmRfZm4sIGN0eCwgXCYjMzQ7a2RhbW9uZC4lZFwmIzM0Oyxcbm1tL2RhbW9uL2NvcmUuYy0xOTQxLVx0XHRcdFx0bnJfcnVubmluZ19jdHhzKTtcbi0tXG5tbS9kYW1vbi9jb3JlLmM9MjAzNj12b2lkIGRhbW9uX3N0b3Aoc3RydWN0IGRhbW9uX2N0eCAqKmN0eHMsIGludCBucl9jdHhzKVxuLS1cbm1tL2RhbW9uL2NvcmUuYy0yMDQwLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgbnJfY3R4czsgaSYjNDM7JiM0MzspXG5tbS9kYW1vbi9jb3JlLmM6MjA0MTpcdFx0LyogbnJfcnVubmluZ19jdHhzIGlzIGRlY3JlbWVudGVkIGluIGtkYW1vbmRfZm4gKi9cbm1tL2RhbW9uL2NvcmUuYy0yMDQyLVx0XHRfX2RhbW9uX3N0b3AoY3R4c1tpXSk7XG4tLVxubW0vZGFtb24vY29yZS5jPTM3MTk9c3RhdGljIHZvaWQga2RhbW9uZF9pbml0X2N0eChzdHJ1Y3QgZGFtb25fY3R4ICpjdHgpXG4tLVxubW0vZGFtb24vY29yZS5jLTM3NDAtICovXG5tbS9kYW1vbi9jb3JlLmM6Mzc0MTpzdGF0aWMgaW50IGtkYW1vbmRfZm4odm9pZCAqZGF0YSlcbm1tL2RhbW9uL2NvcmUuYy0zNzQyLXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAxMDoxNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NjAxCgkJCQkJCQlvdXRwdXQ6IDEyNgoJCQkJCQkJdGhvdWdodHM6IDM0NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBEQU1PTiBSZWZpbmVtZW50OiBGb2N1cyBhbmQgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGhpdHRpbmcgdGhlIGNvcmUgb2YgREFNT04sIHNwZWNpZmljYWxseSB0aGUgcmVnaW9uIG1lcmdpbmcgbG9naWMsIHdoaWNoIGlzIGhhbmRsZWQgaW4gYGtkYW1vbmRfbWVyZ2VfcmVnaW9uc2AgYW5kLCBpbXBvcnRhbnRseSwgYGRhbW9uX21lcmdlX3JlZ2lvbnNfb2ZgLiBUaGUgY2hhbmdlIGl0c2VsZiBpcyBmdW5jdGlvbmFsOyBpdCYjMzk7cyBtb2RpZnlpbmcgaG93IHJlZ2lvbnMgbWVyZ2UgYW5kIGhvdyB0aGVpciAmIzM0O2FnZSYjMzQ7IGlzIHVwZGF0ZWQsIHdoaWNoIGlzIGNydWNpYWwgZm9yIGVmZmljaWVudCBtZW1vcnkgbWFuYWdlbWVudC4gUGFzc2luZyBgY291bnRfYWdlYCBpbnRvIGBkYW1vbl9tZXJnZV9yZWdpb25zX29mYCBpcyBhIGtleSBpbmRpY2F0b3Igb2YgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBEQU1PTi4gVGhpcyBtYWtlcyBmdXp6aW5nIGEgdmVyeSBnb29kIGlkZWEuCgpMZXQmIzM5O3MgaWRlbnRpZnkgdGhlIGZvY2FsIHN5bWJvbHMuIGBrZGFtb25kX21lcmdlX3JlZ2lvbnNgIGFuZCBgZGFtb25fbWVyZ2VfcmVnaW9uc19vZmAgYXJlIGJvdGggc3RhdGljLCByaWdodD8gWWVzLiBXZSBjYW4gZGVmaW5pdGVseSBmb2N1cyBvbiBib3RoLiBga2RhbW9uZF9mbmAgaXMgdGhlIG1haW4gdGhyZWFkIGZ1bmN0aW9uLCBidXQgdGhlIG1lcmdlIGxvZ2ljIGlzIHdoZXJlIHRoZSByZWFsIGFjdGlvbiBpcyBpbiB0aGlzIHBhdGNoLiBMZXQmIzM5O3Mgc3RpY2sgd2l0aCBmdXp6aW5nIGBrZGFtb25kX21lcmdlX3JlZ2lvbnNgIGFuZCBgZGFtb25fbWVyZ2VfcmVnaW9uc19vZmAuCgpOb3csIHRoZSBjb25maWd1cmF0aW9uIGFzcGVjdC4gV2UgbmVlZCB0byBlbnN1cmUgd2UgY2FuIGFjdHVhbGx5ICpydW4qIHRoZSBEQU1PTiBjb2RlIHdpdGggdGhlIGFwcHJvcHJpYXRlIGNvbmZpZ3VyYXRpb24gdG8gZXZlbiB0ZXN0IHRoaXMgcGF0Y2guIEkga25vdyBgREFNT05gIGlzIHRoZSBwcmltYXJ5IGNvbmZpZy4gRm9yIHJ1bm5pbmcgREFNT04sIGBEQU1PTl9WQUREUmAgYW5kL29yIGBEQU1PTl9QQUREUmAgYXJlIGxpa2VseSBuZWVkZWQuIEdvaW5nIGJhY2sgdG8gYG1tL2RhbW9uL0tjb25maWdgIGZvciB2ZXJpZmljYXRpb24uLi5BaCB5ZXMsIGFuZCB3ZSYjMzk7bGwgcHJvYmFibHkgbmVlZCBgREFNT05fU1lTRlNgIGZvciB1c2Vyc3BhY2UgaW50ZXJhY3Rpb24uIFNvLCBmb3IgbWF4aW11bSBjb3ZlcmFnZSwgSSYjMzk7bGwgaW5jbHVkZSBgREFNT05gLCBgREFNT05fVkFERFJgLCBgREFNT05fUEFERFJgLCBhbmQgYERBTU9OX1NZU0ZTYCBpbiBvdXIgdGVzdGluZyBjb25maWd1cmF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAxMDoxNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7REFNT04mIzM0OywKICAgICYjMzQ7REFNT05fVkFERFImIzM0OywKICAgICYjMzQ7REFNT05fUEFERFImIzM0OywKICAgICYjMzQ7REFNT05fU1lTRlMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtrZGFtb25kX21lcmdlX3JlZ2lvbnMmIzM0OywKICAgICYjMzQ7ZGFtb25fbWVyZ2VfcmVnaW9uc19vZiYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBsb2dpYyBvZiBEQU1PTiAoRGF0YSBBY2Nlc3MgTU9OaXRvcikgZm9yIG1lcmdpbmcgcmVnaW9ucyBhbmQgdXBkYXRpbmcgdGhlaXIgYWdlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGtlcm5lbCYjMzk7cyBtZW1vcnkgbWFuYWdlbWVudCBzdWJzeXN0ZW0gdGhhdCBhZmZlY3RzIGhvdyBtZW1vcnkgYWNjZXNzIHBhdHRlcm5zIGFyZSBtb25pdG9yZWQgYW5kIGFnZ3JlZ2F0ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0RBTU9OJiMzNDssCiAgICAmIzM0O0RBTU9OX1ZBRERSJiMzNDssCiAgICAmIzM0O0RBTU9OX1BBRERSJiMzNDssCiAgICAmIzM0O0RBTU9OX1NZU0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7a2RhbW9uZF9tZXJnZV9yZWdpb25zJiMzNDssCiAgICAmIzM0O2RhbW9uX21lcmdlX3JlZ2lvbnNfb2YmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgbG9naWMgb2YgREFNT04gKERhdGEgQWNjZXNzIE1PTml0b3IpIGZvciBtZXJnaW5nIHJlZ2lvbnMgYW5kIHVwZGF0aW5nIHRoZWlyIGFnZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBrZXJuZWwmIzM5O3MgbWVtb3J5IG1hbmFnZW1lbnQgc3Vic3lzdGVtIHRoYXQgYWZmZWN0cyBob3cgbWVtb3J5IGFjY2VzcyBwYXR0ZXJucyBhcmUgbW9uaXRvcmVkIGFuZCBhZ2dyZWdhdGVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMTJUMTA6MTc6MzkuMTM0ODYyMTJaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzc2MjY3ODA1NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJEQU1PTlwiLFxuICAgIFwiREFNT05fVkFERFJcIixcbiAgICBcIkRBTU9OX1BBRERSXCIsXG4gICAgXCJEQU1PTl9TWVNGU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImtkYW1vbmRfbWVyZ2VfcmVnaW9uc1wiLFxuICAgIFwiZGFtb25fbWVyZ2VfcmVnaW9uc19vZlwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb3JlIGxvZ2ljIG9mIERBTU9OIChEYXRhIEFjY2VzcyBNT05pdG9yKSBmb3IgbWVyZ2luZyByZWdpb25zIGFuZCB1cGRhdGluZyB0aGVpciBhZ2UuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUga2VybmVsJ3MgbWVtb3J5IG1hbmFnZW1lbnQgc3Vic3lzdGVtIHRoYXQgYWZmZWN0cyBob3cgbWVtb3J5IGFjY2VzcyBwYXR0ZXJucyBhcmUgbW9uaXRvcmVkIGFuZCBhZ2dyZWdhdGVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMlQxMDoxNzozOS4xMzQ4Njg2WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTUzMjgxMjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA4ODc3MWRkODg0YThiNWY5YzlmMWU1MmQyMTZjMGEyMTZkN2Q0OGQyXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTdW4gSnVsIDEyIDEwOjE3OjM3IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL21tL2RhbW9uL2NvcmUuYyBiL21tL2RhbW9uL2NvcmUuY1xcbmluZGV4IDgwNmE2N2QwMmE2ZTkwLi42YzQyMTVjYzgwOWVjMiAxMDA2NDRcXG4tLS0gYS9tbS9kYW1vbi9jb3JlLmNcXG4rKysgYi9tbS9kYW1vbi9jb3JlLmNcXG5AQCAtMzMwOCw3ICszMzA4LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBkYW1vbl9tZXJnZV9zY29yZShzdHJ1Y3QgZGFtb25fcmVnaW9uICpyLCBib29sIGxhc3QsXFxuICAqIHN6X2xpbWl0XFx0c2l6ZSB1cHBlciBsaW1pdCBvZiBlYWNoIHJlZ2lvblxcbiAgKi9cXG4gc3RhdGljIHZvaWQgZGFtb25fbWVyZ2VfcmVnaW9uc19vZihzdHJ1Y3QgZGFtb25fdGFyZ2V0ICp0LCB1bnNpZ25lZCBpbnQgdGhyZXMsXFxuLVxcdFxcdHVuc2lnbmVkIGxvbmcgc3pfbGltaXQsIHN0cnVjdCBkYW1vbl9jdHggKmN0eClcXG4rXFx0XFx0dW5zaWduZWQgbG9uZyBzel9saW1pdCwgc3RydWN0IGRhbW9uX2N0eCAqY3R4LCBib29sIGNvdW50X2FnZSlcXG4ge1xcbiBcXHRzdHJ1Y3QgZGFtb25fcmVnaW9uICpyLCAqcHJldiA9IE5VTEwsICpuZXh0O1xcbiBcXHRib29sIHVzZV9wcm9iZV9oaXRzID0gZGFtb25faGFzX3Byb2JlX3dlaWdodHMoY3R4KTtcXG5AQCAtMzMxOSwxMiArMzMxOSwxNCBAQCBzdGF0aWMgdm9pZCBkYW1vbl9tZXJnZV9yZWdpb25zX29mKHN0cnVjdCBkYW1vbl90YXJnZXQgKnQsIHVuc2lnbmVkIGludCB0aHJlcyxcXG4gXFx0XFx0c2NvcmUgPSBkYW1vbl9tZXJnZV9zY29yZShyLCBmYWxzZSwgY3R4LCB1c2VfcHJvYmVfaGl0cyk7XFxuIFxcdFxcdGxhc3Rfc2NvcmUgPSBkYW1vbl9tZXJnZV9zY29yZShyLCB0cnVlLCBjdHgsIHVzZV9wcm9iZV9oaXRzKTtcXG4gXFxuLVxcdFxcdGlmIChhYnNfZGlmZihzY29yZSwgbGFzdF9zY29yZSkgXFx1MDAzZSB0aHJlcylcXG4tXFx0XFx0XFx0ci1cXHUwMDNlYWdlID0gMDtcXG4tXFx0XFx0ZWxzZSBpZiAoKHNjb3JlID09IDApICE9IChsYXN0X3Njb3JlID09IDApKVxcbi1cXHRcXHRcXHRyLVxcdTAwM2VhZ2UgPSAwO1xcbi1cXHRcXHRlbHNlXFxuLVxcdFxcdFxcdHItXFx1MDAzZWFnZSsrO1xcbitcXHRcXHRpZiAoY291bnRfYWdlKSB7XFxuK1xcdFxcdFxcdGlmIChhYnNfZGlmZihzY29yZSwgbGFzdF9zY29yZSkgXFx1MDAzZSB0aHJlcylcXG4rXFx0XFx0XFx0XFx0ci1cXHUwMDNlYWdlID0gMDtcXG4rXFx0XFx0XFx0ZWxzZSBpZiAoKHNjb3JlID09IDApICE9IChsYXN0X3Njb3JlID09IDApKVxcbitcXHRcXHRcXHRcXHRyLVxcdTAwM2VhZ2UgPSAwO1xcbitcXHRcXHRcXHRlbHNlXFxuK1xcdFxcdFxcdFxcdHItXFx1MDAzZWFnZSsrO1xcbitcXHRcXHR9XFxuIFxcbiBcXHRcXHRpZiAoIXByZXYpXFxuIFxcdFxcdFxcdGdvdG8gc2V0X3ByZXZfY29udGludWU7XFxuQEAgLTMzNjYsMTUgKzMzNjgsMTggQEAgc3RhdGljIHZvaWQga2RhbW9uZF9tZXJnZV9yZWdpb25zKHN0cnVjdCBkYW1vbl9jdHggKmMsIHVuc2lnbmVkIGludCB0aHJlc2hvbGQsXFxuIFxcdHN0cnVjdCBkYW1vbl90YXJnZXQgKnQ7XFxuIFxcdHVuc2lnbmVkIGludCBucl9yZWdpb25zO1xcbiBcXHR1bnNpZ25lZCBpbnQgbWF4X3RocmVzO1xcbitcXHRib29sIGNvdW50X2FnZSA9IHRydWU7XFxuIFxcbiBcXHRtYXhfdGhyZXMgPSBjLVxcdTAwM2VhdHRycy5hZ2dyX2ludGVydmFsIC9cXG4gXFx0XFx0KGMtXFx1MDAzZWF0dHJzLnNhbXBsZV9pbnRlcnZhbCA/ICBjLVxcdTAwM2VhdHRycy5zYW1wbGVfaW50ZXJ2YWwgOiAxKTtcXG4gXFx0ZG8ge1xcbiBcXHRcXHRucl9yZWdpb25zID0gMDtcXG4gXFx0XFx0ZGFtb25fZm9yX2VhY2hfdGFyZ2V0KHQsIGMpIHtcXG4tXFx0XFx0XFx0ZGFtb25fbWVyZ2VfcmVnaW9uc19vZih0LCB0aHJlc2hvbGQsIHN6X2xpbWl0LCBjKTtcXG4rXFx0XFx0XFx0ZGFtb25fbWVyZ2VfcmVnaW9uc19vZih0LCB0aHJlc2hvbGQsIHN6X2xpbWl0LCBjLFxcbitcXHRcXHRcXHRcXHRcXHRjb3VudF9hZ2UpO1xcbiBcXHRcXHRcXHRucl9yZWdpb25zICs9IGRhbW9uX25yX3JlZ2lvbnModCk7XFxuIFxcdFxcdH1cXG4rXFx0XFx0Y291bnRfYWdlID0gZmFsc2U7XFxuIFxcdFxcdHRocmVzaG9sZCA9IG1heCgxLCB0aHJlc2hvbGQgKiAyKTtcXG4gXFx0fSB3aGlsZSAobnJfcmVnaW9ucyBcXHUwMDNlIGMtXFx1MDAzZWF0dHJzLm1heF9ucl9yZWdpb25zIFxcdTAwMjZcXHUwMDI2XFxuIFxcdFxcdFxcdHRocmVzaG9sZCAvIDIgXFx1MDAzYyBtYXhfdGhyZXMpO1xcbmRpZmYgLS1naXQgYS9tbS9kYW1vbi90ZXN0cy9jb3JlLWt1bml0LmggYi9tbS9kYW1vbi90ZXN0cy9jb3JlLWt1bml0LmhcXG5pbmRleCA2YWQ3MzU1OWRkOGVhYi4uNjhkMzA2NDhjNjEyZWIgMTAwNjQ0XFxuLS0tIGEvbW0vZGFtb24vdGVzdHMvY29yZS1rdW5pdC5oXFxuKysrIGIvbW0vZGFtb24vdGVzdHMvY29yZS1rdW5pdC5oXFxuQEAgLTI1Nyw3ICsyNTcsNyBAQCBzdGF0aWMgdm9pZCBkYW1vbl90ZXN0X21lcmdlX3JlZ2lvbnNfb2Yoc3RydWN0IGt1bml0ICp0ZXN0KVxcbiBcXHRcXHRkYW1vbl9hZGRfcmVnaW9uKHIsIHQpO1xcbiBcXHR9XFxuIFxcbi1cXHRkYW1vbl9tZXJnZV9yZWdpb25zX29mKHQsIDksIDk5OTksIGN0eCk7XFxuK1xcdGRhbW9uX21lcmdlX3JlZ2lvbnNfb2YodCwgOSwgOTk5OSwgY3R4LCB0cnVlKTtcXG4gXFx0LyogMC0xMTIsIDExNC0xMzAsIDEzMC0xNTYsIDE1Ni0xNzAsIDE3MC0yMzAsIDIzMC0xMDE3MCAqL1xcbiBcXHRLVU5JVF9FWFBFQ1RfRVEodGVzdCwgZGFtb25fbnJfcmVnaW9ucyh0KSwgNnUpO1xcbiBcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgNjsgaSsrKSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEyVDEwOjE3OjM5LjU5MDk3MjM4OVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTczMDY1NTkzNjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiREFNT05cIixcbiAgICBcIkRBTU9OX1ZBRERSXCIsXG4gICAgXCJEQU1PTl9QQUREUlwiLFxuICAgIFwiREFNT05fU1lTRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrZGFtb25kX21lcmdlX3JlZ2lvbnNcIixcbiAgICBcImRhbW9uX21lcmdlX3JlZ2lvbnNfb2ZcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBsb2dpYyBvZiBEQU1PTiAoRGF0YSBBY2Nlc3MgTU9OaXRvcikgZm9yIG1lcmdpbmcgcmVnaW9ucyBhbmQgdXBkYXRpbmcgdGhlaXIgYWdlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGtlcm5lbCdzIG1lbW9yeSBtYW5hZ2VtZW50IHN1YnN5c3RlbSB0aGF0IGFmZmVjdHMgaG93IG1lbW9yeSBhY2Nlc3MgcGF0dGVybnMgYXJlIG1vbml0b3JlZCBhbmQgYWdncmVnYXRlZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA4ODc3MWRkODg0YThiNWY5YzlmMWU1MmQyMTZjMGEyMTZkN2Q0OGQyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBKdWwgMTIgMTA6MTc6MzcgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9tbS9kYW1vbi9jb3JlLmMgYi9tbS9kYW1vbi9jb3JlLmNcbmluZGV4IDgwNmE2N2QwMmE2ZTkwLi42YzQyMTVjYzgwOWVjMiAxMDA2NDRcbi0tLSBhL21tL2RhbW9uL2NvcmUuY1xuKysrIGIvbW0vZGFtb24vY29yZS5jXG5AQCAtMzMwOCw3ICszMzA4LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBkYW1vbl9tZXJnZV9zY29yZShzdHJ1Y3QgZGFtb25fcmVnaW9uICpyLCBib29sIGxhc3QsXG4gICogc3pfbGltaXRcdHNpemUgdXBwZXIgbGltaXQgb2YgZWFjaCByZWdpb25cbiAgKi9cbiBzdGF0aWMgdm9pZCBkYW1vbl9tZXJnZV9yZWdpb25zX29mKHN0cnVjdCBkYW1vbl90YXJnZXQgKnQsIHVuc2lnbmVkIGludCB0aHJlcyxcbi1cdFx0dW5zaWduZWQgbG9uZyBzel9saW1pdCwgc3RydWN0IGRhbW9uX2N0eCAqY3R4KVxuK1x0XHR1bnNpZ25lZCBsb25nIHN6X2xpbWl0LCBzdHJ1Y3QgZGFtb25fY3R4ICpjdHgsIGJvb2wgY291bnRfYWdlKVxuIHtcbiBcdHN0cnVjdCBkYW1vbl9yZWdpb24gKnIsICpwcmV2ID0gTlVMTCwgKm5leHQ7XG4gXHRib29sIHVzZV9wcm9iZV9oaXRzID0gZGFtb25faGFzX3Byb2JlX3dlaWdodHMoY3R4KTtcbkBAIC0zMzE5LDEyICszMzE5LDE0IEBAIHN0YXRpYyB2b2lkIGRhbW9uX21lcmdlX3JlZ2lvbnNfb2Yoc3RydWN0IGRhbW9uX3RhcmdldCAqdCwgdW5zaWduZWQgaW50IHRocmVzLFxuIFx0XHRzY29yZSA9IGRhbW9uX21lcmdlX3Njb3JlKHIsIGZhbHNlLCBjdHgsIHVzZV9wcm9iZV9oaXRzKTtcbiBcdFx0bGFzdF9zY29yZSA9IGRhbW9uX21lcmdlX3Njb3JlKHIsIHRydWUsIGN0eCwgdXNlX3Byb2JlX2hpdHMpO1xuIFxuLVx0XHRpZiAoYWJzX2RpZmYoc2NvcmUsIGxhc3Rfc2NvcmUpIFx1MDAzZSB0aHJlcylcbi1cdFx0XHRyLVx1MDAzZWFnZSA9IDA7XG4tXHRcdGVsc2UgaWYgKChzY29yZSA9PSAwKSAhPSAobGFzdF9zY29yZSA9PSAwKSlcbi1cdFx0XHRyLVx1MDAzZWFnZSA9IDA7XG4tXHRcdGVsc2Vcbi1cdFx0XHRyLVx1MDAzZWFnZSsrO1xuK1x0XHRpZiAoY291bnRfYWdlKSB7XG4rXHRcdFx0aWYgKGFic19kaWZmKHNjb3JlLCBsYXN0X3Njb3JlKSBcdTAwM2UgdGhyZXMpXG4rXHRcdFx0XHRyLVx1MDAzZWFnZSA9IDA7XG4rXHRcdFx0ZWxzZSBpZiAoKHNjb3JlID09IDApICE9IChsYXN0X3Njb3JlID09IDApKVxuK1x0XHRcdFx0ci1cdTAwM2VhZ2UgPSAwO1xuK1x0XHRcdGVsc2VcbitcdFx0XHRcdHItXHUwMDNlYWdlKys7XG4rXHRcdH1cbiBcbiBcdFx0aWYgKCFwcmV2KVxuIFx0XHRcdGdvdG8gc2V0X3ByZXZfY29udGludWU7XG5AQCAtMzM2NiwxNSArMzM2OCwxOCBAQCBzdGF0aWMgdm9pZCBrZGFtb25kX21lcmdlX3JlZ2lvbnMoc3RydWN0IGRhbW9uX2N0eCAqYywgdW5zaWduZWQgaW50IHRocmVzaG9sZCxcbiBcdHN0cnVjdCBkYW1vbl90YXJnZXQgKnQ7XG4gXHR1bnNpZ25lZCBpbnQgbnJfcmVnaW9ucztcbiBcdHVuc2lnbmVkIGludCBtYXhfdGhyZXM7XG4rXHRib29sIGNvdW50X2FnZSA9IHRydWU7XG4gXG4gXHRtYXhfdGhyZXMgPSBjLVx1MDAzZWF0dHJzLmFnZ3JfaW50ZXJ2YWwgL1xuIFx0XHQoYy1cdTAwM2VhdHRycy5zYW1wbGVfaW50ZXJ2YWwgPyAgYy1cdTAwM2VhdHRycy5zYW1wbGVfaW50ZXJ2YWwgOiAxKTtcbiBcdGRvIHtcbiBcdFx0bnJfcmVnaW9ucyA9IDA7XG4gXHRcdGRhbW9uX2Zvcl9lYWNoX3RhcmdldCh0LCBjKSB7XG4tXHRcdFx0ZGFtb25fbWVyZ2VfcmVnaW9uc19vZih0LCB0aHJlc2hvbGQsIHN6X2xpbWl0LCBjKTtcbitcdFx0XHRkYW1vbl9tZXJnZV9yZWdpb25zX29mKHQsIHRocmVzaG9sZCwgc3pfbGltaXQsIGMsXG4rXHRcdFx0XHRcdGNvdW50X2FnZSk7XG4gXHRcdFx0bnJfcmVnaW9ucyArPSBkYW1vbl9ucl9yZWdpb25zKHQpO1xuIFx0XHR9XG4rXHRcdGNvdW50X2FnZSA9IGZhbHNlO1xuIFx0XHR0aHJlc2hvbGQgPSBtYXgoMSwgdGhyZXNob2xkICogMik7XG4gXHR9IHdoaWxlIChucl9yZWdpb25zIFx1MDAzZSBjLVx1MDAzZWF0dHJzLm1heF9ucl9yZWdpb25zIFx1MDAyNlx1MDAyNlxuIFx0XHRcdHRocmVzaG9sZCAvIDIgXHUwMDNjIG1heF90aHJlcyk7XG5kaWZmIC0tZ2l0IGEvbW0vZGFtb24vdGVzdHMvY29yZS1rdW5pdC5oIGIvbW0vZGFtb24vdGVzdHMvY29yZS1rdW5pdC5oXG5pbmRleCA2YWQ3MzU1OWRkOGVhYi4uNjhkMzA2NDhjNjEyZWIgMTAwNjQ0XG4tLS0gYS9tbS9kYW1vbi90ZXN0cy9jb3JlLWt1bml0LmhcbisrKyBiL21tL2RhbW9uL3Rlc3RzL2NvcmUta3VuaXQuaFxuQEAgLTI1Nyw3ICsyNTcsNyBAQCBzdGF0aWMgdm9pZCBkYW1vbl90ZXN0X21lcmdlX3JlZ2lvbnNfb2Yoc3RydWN0IGt1bml0ICp0ZXN0KVxuIFx0XHRkYW1vbl9hZGRfcmVnaW9uKHIsIHQpO1xuIFx0fVxuIFxuLVx0ZGFtb25fbWVyZ2VfcmVnaW9uc19vZih0LCA5LCA5OTk5LCBjdHgpO1xuK1x0ZGFtb25fbWVyZ2VfcmVnaW9uc19vZih0LCA5LCA5OTk5LCBjdHgsIHRydWUpO1xuIFx0LyogMC0xMTIsIDExNC0xMzAsIDEzMC0xNTYsIDE1Ni0xNzAsIDE3MC0yMzAsIDIzMC0xMDE3MCAqL1xuIFx0S1VOSVRfRVhQRUNUX0VRKHRlc3QsIGRhbW9uX25yX3JlZ2lvbnModCksIDZ1KTtcbiBcdGZvciAoaSA9IDA7IGkgXHUwMDNjIDY7IGkrKykge1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTJUMTA6MTc6MzkuNTkwOTczODk5WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzY2MzI2MDE2MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipEQU1PTiBQYXRjaCBBbmFseXNpcyoqXG5cbk9rYXksIHNvIEkndmUgZ290IGEgcGF0Y2ggaGVyZSB0aGF0J3MgdHdlYWtpbmcgdGhlIERBTU9OIHN1YnN5c3RlbSwgc3BlY2lmaWNhbGx5IGluIGBtbS9kYW1vbi9jb3JlLmNgIGFuZCBgbW0vZGFtb24vdGVzdHMvY29yZS1rdW5pdC5oYC4gVGhpcyBpcyBpbnRlcmVzdGluZzsgSSBrbm93IHRoZXNlIGFyZWFzIHdlbGwuIEl0IGxvb2tzIGxpa2UgdGhlIGNoYW5nZSByZXZvbHZlcyBhcm91bmQgdGhlIGBkYW1vbl9tZXJnZV9yZWdpb25zX29mYCBmdW5jdGlvbi4gU3BlY2lmaWNhbGx5LCBpdCBpbnRyb2R1Y2VzIGEgYGJvb2wgY291bnRfYWdlYCBwYXJhbWV0ZXIuIFxuXG5UaGUgY29yZSBvZiB0aGUgbG9naWMgc2VlbXMgdG8gYmUgd2l0aGluIGBrZGFtb25kX21lcmdlX3JlZ2lvbnNgLCB3aGljaCBpcyBub3cgcGFzc2luZyBhIGB0cnVlYCB2YWx1ZSBmb3IgYGNvdW50X2FnZWAgaW4gdGhlIGZpcnN0IGl0ZXJhdGlvbiBhbmQgYGZhbHNlYCBmb3IgYW55IHN1YnNlcXVlbnQgaXRlcmF0aW9ucy4gVGhhdCdzIGEgY2xldmVyIHdheSB0byBoYW5kbGUgaXQuIEVzc2VudGlhbGx5LCB0aGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gdGhlIGNvcmUgb2YgREFNT04uXG5cbkJlZm9yZSBJIGRpZyBpbnRvIHRoZSBzcGVjaWZpY3Mgb2YgKndoeSogdGhpcyBpcyBoYXBwZW5pbmcsIGxldCdzIHRha2UgYSBxdWljayBsb29rIGF0IHRoZSBrZXJuZWwgY29uZmlndXJhdGlvbiB0byBtYWtlIHN1cmUgREFNT04gaXMgZXZlbiBlbmFibGVkIGluIHRoZSBidWlsZCBlbnZpcm9ubWVudC4gSSB3YW50IHRvIHNlZSBpZiB0aGlzIGNoYW5nZSBldmVuIG1hdHRlcnMgaW4gbXkgY3VycmVudCBjb250ZXh0LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNzMwLCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTIyLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTJUMTA6MTc6NDMuMjU0MjM2MTMyWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIwNzk4ODMwMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgREFNT05cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibW0vZGFtb24vS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJtbS9kYW1vbi9LY29uZmlnPTM9bWVudSBcXFwiRGF0YSBBY2Nlc3MgTW9uaXRvcmluZ1xcXCJcXG5tbS9kYW1vbi9LY29uZmlnLTQtXFxubW0vZGFtb24vS2NvbmZpZzo1OmNvbmZpZyBEQU1PTlxcbm1tL2RhbW9uL0tjb25maWctNi1cXHRib29sIFxcXCJEQU1PTjogRGF0YSBBY2Nlc3MgTW9uaXRvcmluZyBGcmFtZXdvcmtcXFwiXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTE0LVxcbm1tL2RhbW9uL0tjb25maWc6MTU6Y29uZmlnIERBTU9OX0RFQlVHX1NBTklUWVxcbm1tL2RhbW9uL0tjb25maWctMTYtXFx0Ym9vbCBcXFwiQ2hlY2sgc2FuaXR5IG9mIERBTU9OIGNvZGVcXFwiXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTI1LVxcbm1tL2RhbW9uL0tjb25maWc6MjY6Y29uZmlnIERBTU9OX0tVTklUX1RFU1RcXG5tbS9kYW1vbi9LY29uZmlnLTI3LVxcdGJvb2wgXFxcIlRlc3QgZm9yIGRhbW9uXFxcIiBpZiAhS1VOSVRfQUxMX1RFU1RTXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTM3LVxcbm1tL2RhbW9uL0tjb25maWc6Mzg6Y29uZmlnIERBTU9OX1ZBRERSXFxubW0vZGFtb24vS2NvbmZpZy0zOS1cXHRib29sIFxcXCJEYXRhIGFjY2VzcyBtb25pdG9yaW5nIG9wZXJhdGlvbnMgZm9yIHZpcnR1YWwgYWRkcmVzcyBzcGFjZXNcXFwiXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTQ2LVxcbm1tL2RhbW9uL0tjb25maWc6NDc6Y29uZmlnIERBTU9OX1BBRERSXFxubW0vZGFtb24vS2NvbmZpZy00OC1cXHRib29sIFxcXCJEYXRhIGFjY2VzcyBtb25pdG9yaW5nIG9wZXJhdGlvbnMgZm9yIHRoZSBwaHlzaWNhbCBhZGRyZXNzIHNwYWNlXFxcIlxcbi0tXFxubW0vZGFtb24vS2NvbmZpZy01NS1cXG5tbS9kYW1vbi9LY29uZmlnOjU2OmNvbmZpZyBEQU1PTl9WQUREUl9LVU5JVF9URVNUXFxubW0vZGFtb24vS2NvbmZpZy01Ny1cXHRib29sIFxcXCJUZXN0IGZvciBEQU1PTiBvcGVyYXRpb25zXFxcIiBpZiAhS1VOSVRfQUxMX1RFU1RTXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTY3LVxcbm1tL2RhbW9uL0tjb25maWc6Njg6Y29uZmlnIERBTU9OX1NZU0ZTXFxubW0vZGFtb24vS2NvbmZpZy02OS1cXHRib29sIFxcXCJEQU1PTiBzeXNmcyBpbnRlcmZhY2VcXFwiXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTc1LVxcbm1tL2RhbW9uL0tjb25maWc6NzY6Y29uZmlnIERBTU9OX1NZU0ZTX0tVTklUX1RFU1RcXG5tbS9kYW1vbi9LY29uZmlnLTc3LVxcdGJvb2wgXFxcIlRlc3QgZm9yIGRhbW9uIHN5c2ZzIGludGVyZmFjZVxcXCIgaWYgIUtVTklUX0FMTF9URVNUU1xcbi0tXFxubW0vZGFtb24vS2NvbmZpZy04Ny1cXG5tbS9kYW1vbi9LY29uZmlnOjg4OmNvbmZpZyBEQU1PTl9SRUNMQUlNXFxubW0vZGFtb24vS2NvbmZpZy04OS1cXHRib29sIFxcXCJCdWlsZCBEQU1PTi1iYXNlZCByZWNsYWltIChEQU1PTl9SRUNMQUlNKVxcXCJcXG4tLVxcbm1tL2RhbW9uL0tjb25maWctOTktXFxubW0vZGFtb24vS2NvbmZpZzoxMDA6Y29uZmlnIERBTU9OX0xSVV9TT1JUXFxubW0vZGFtb24vS2NvbmZpZy0xMDEtXFx0Ym9vbCBcXFwiQnVpbGQgREFNT04tYmFzZWQgTFJVLWxpc3RzIHNvcnRpbmcgKERBTU9OX0xSVV9TT1JUKVxcXCJcXG4tLVxcbm1tL2RhbW9uL0tjb25maWctMTA3LVxcbm1tL2RhbW9uL0tjb25maWc6MTA4OmNvbmZpZyBEQU1PTl9TVEFUXFxubW0vZGFtb24vS2NvbmZpZy0xMDktXFx0Ym9vbCBcXFwiQnVpbGQgZGF0YSBhY2Nlc3MgbW9uaXRvcmluZyBzdGF0IChEQU1PTl9TVEFUKVxcXCJcXG4tLVxcbm1tL2RhbW9uL0tjb25maWctMTE1LVxcbm1tL2RhbW9uL0tjb25maWc6MTE2OmNvbmZpZyBEQU1PTl9TVEFUX0VOQUJMRURfREVGQVVMVFxcbm1tL2RhbW9uL0tjb25maWctMTE3LVxcdGJvb2wgXFxcIkVuYWJsZSBEQU1PTl9TVEFUIGJ5IGRlZmF1bHRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEyVDEwOjE3OjQzLjQ2MjIyOTc3M1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3Njg0MDc2MjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBEQU1PTiBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBpcyBjbGVhcmx5IGBEQU1PTmAuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBxdWlja2x5IHZlcmlmeSBpZiB0aGVyZSBhcmUgb3RoZXIgcmVsYXRlZCBjb25maWd1cmF0aW9ucyB0aGF0IG1pZ2h0IGJlIHJlbGV2YW50LiBNeSBtZW1vcnkgc3VnZ2VzdHMgYERBTU9OX1NZU0ZTYCBpcyBjb21tb25seSB1c2VkIGZvciB1c2Vyc3BhY2UgaW50ZXJhY3Rpb24gd2l0aCB0aGUgREFNT04gc3Vic3lzdGVtLCBzbyBJJ2xsIGtlZXAgdGhhdCBpbiBtaW5kIGFzIGEgcG90ZW50aWFsIGFyZWEgdG8gaW52ZXN0aWdhdGUgZnVydGhlci5cblxuTm93LCBJJ20gZ29pbmcgdG8gc2hpZnQgZ2VhcnMgYW5kIGRpZyBpbnRvIHRoZSBjb2RlIGl0c2VsZi4gU3BlY2lmaWNhbGx5LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgZnVuY3Rpb24gbW9kaWZpY2F0aW9ucywgc28gSSdsbCBiZSBoZWFkaW5nIG92ZXIgdG8gYG1tL2RhbW9uL2NvcmUuY2AuIExldCdzIHNlZSB3aGF0J3MgY2hhbmdlZCB0aGVyZS5cblxuSG1tLCBpdCBsb29rcyBsaWtlIGBkYW1vbl9tZXJnZV9yZWdpb25zX29mYCBpcyBhIHN0YXRpYyBmdW5jdGlvbi4gQWxzbywgYGtkYW1vbmRfbWVyZ2VfcmVnaW9uc2AgaXMgc3RhdGljLiBUaGF0IG1lYW5zIHRoZXkgYXJlIG9ubHkgdXNhYmxlIHdpdGhpbiB0aGUgZmlsZS4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hlcmUgYGtkYW1vbmRfbWVyZ2VfcmVnaW9uc2AgaXMgYWN0dWFsbHkgYmVpbmcgY2FsbGVkLiBUaGF0IHdpbGwgZ2l2ZSBtZSBpbnNpZ2h0IGludG8gaG93IHRoZSBtZW1vcnkgcmVnaW9uIG1lcmdpbmcgaXMgYWN0dWFsbHkgaGFuZGxlZCBpbiB0aGlzIGNvbnRleHQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM4NTMsIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTJUMTA6MTc6NDcuMjMwNjQwNTc3WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNjEwOTk4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJrZGFtb25kX21lcmdlX3JlZ2lvbnNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibW0vZGFtb24vY29yZS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm1tL2RhbW9uL2NvcmUuYz0zMzEwPXN0YXRpYyB2b2lkIGRhbW9uX21lcmdlX3JlZ2lvbnNfb2Yoc3RydWN0IGRhbW9uX3RhcmdldCAqdCwgdW5zaWduZWQgaW50IHRocmVzLFxcbi0tXFxubW0vZGFtb24vY29yZS5jLTMzNjQtICovXFxubW0vZGFtb24vY29yZS5jOjMzNjU6c3RhdGljIHZvaWQga2RhbW9uZF9tZXJnZV9yZWdpb25zKHN0cnVjdCBkYW1vbl9jdHggKmMsIHVuc2lnbmVkIGludCB0aHJlc2hvbGQsXFxubW0vZGFtb24vY29yZS5jLTMzNjYtXFx0XFx0XFx0XFx0ICB1bnNpZ25lZCBsb25nIHN6X2xpbWl0KVxcbi0tXFxubW0vZGFtb24vY29yZS5jPTM0NjM9c3RhdGljIHZvaWQgZGFtb25fc3BsaXRfc29tZV9yZWdpb25zKHN0cnVjdCBkYW1vbl9jdHggKmN0eCxcXG4tLVxcbm1tL2RhbW9uL2NvcmUuYy0zNDk5LSAqIG1vbml0b3JpbmcgYWNjdXJhY3kgdW5kZXIgdGhlIGR5bmFtaWNhbGx5IGNoYW5nZWFibGUgYWNjZXNzIHBhdHRlcm5zLiAgSWYgYVxcbm1tL2RhbW9uL2NvcmUuYzozNTAwOiAqIHNwbGl0IHdhcyB1bm5lY2Vzc2FyaWx5IG1hZGUsIGxhdGVyICdrZGFtb25kX21lcmdlX3JlZ2lvbnMoKScgd2lsbCByZXZlcnRcXG5tbS9kYW1vbi9jb3JlLmMtMzUwMS0gKiBpdC5cXG4tLVxcbm1tL2RhbW9uL2NvcmUuYz0zNzQxPXN0YXRpYyBpbnQga2RhbW9uZF9mbih2b2lkICpkYXRhKVxcbi0tXFxubW0vZGFtb24vY29yZS5jLTM4MDUtXFx0XFx0XFx0XFx0XFx0bmV4dF9hZ2dyZWdhdGlvbl9zaXMpKSB7XFxubW0vZGFtb24vY29yZS5jOjM4MDY6XFx0XFx0XFx0a2RhbW9uZF9tZXJnZV9yZWdpb25zKGN0eCxcXG5tbS9kYW1vbi9jb3JlLmMtMzgwNy1cXHRcXHRcXHRcXHRcXHRtYXhfbWVyZ2Vfc2NvcmUgLyAxMCxcXG4tLVxcbm1tL2RhbW9uL2NvcmUuYy0zODE0LVxcdFxcdCAqIGRvIGtkYW1vbmRfY2FsbCgpIGFuZCBrZGFtb25kX2FwcGx5X3NjaGVtZXMoKSBhZnRlclxcbm1tL2RhbW9uL2NvcmUuYzozODE1OlxcdFxcdCAqIGtkYW1vbmRfbWVyZ2VfcmVnaW9ucygpIGlmIHBvc3NpYmxlLCB0byByZWR1Y2Ugb3ZlcmhlYWRcXG5tbS9kYW1vbi9jb3JlLmMtMzgxNi1cXHRcXHQgKi9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTJUMTA6MTc6NDcuMzM2NzU2MTY3WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjU2ODQ4MjcwMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd246XG5cbioqQW5hbHl6aW5nIHRoZSBEQU1PTiBLZXJuZWwgRGFlbW9uJ3MgRW50cnkgUG9pbnQqKlxuXG5BbHJpZ2h0LCBsZXQncyBkaXZlIGluLiBNeSBmb2N1cyBpcyBvbiB0aGUgYGtkYW1vbmRfZm5gIGZ1bmN0aW9uLCB3aGljaCBJIHVuZGVyc3RhbmQgaXMgdGhlIGhlYXJ0IG9mIERBTU9OJ3MgY29yZSB0aHJlYWQuIE15IHByaW1hcnkgaW50ZXJlc3QgaXMgdW5kZXJzdGFuZGluZyBob3cgdGhpcyBjcnVjaWFsIGZ1bmN0aW9uIGdldHMgaW5pdGlhdGVkLiBJIHdhbnQgdG8gc2VlIGhvdyB0aGUgc3lzdGVtIGJyaW5ncyB0aGlzIGtleSBwYXJ0IG9mIHRoZSBkYWVtb24gaW50byBhY3Rpb24uIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoaXMgc3RhcnR1cCBwcm9jZXNzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NjQzLCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTJUMTA6MTc6NDkuOTA1MjQwMzU4WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI2NzI4NTIwNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJrZGFtb25kX2ZuXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm1tL2RhbW9uL2NvcmUuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJtbS9kYW1vbi9jb3JlLmM9MTAxMj1zdGF0aWMgYm9vbCBkYW1vbl92YWxpZF9pbnRlcnZhbHNfZ29hbChzdHJ1Y3QgZGFtb25fYXR0cnMgKmF0dHJzKVxcbi0tXFxubW0vZGFtb24vY29yZS5jLTEwMzQtICogYmUgY2FsbGVkIGZyb20gYSBzYWZlIGNvbnRleHRzLiAgU3VjaCBjb250ZXh0cyBpbmNsdWRlIGRhbW9uX2N0eCBzZXR1cCB0aW1lXFxubW0vZGFtb24vY29yZS5jOjEwMzU6ICogd2hpbGUgdGhlIGtkYW1vbmQgaXMgbm90IHlldCBzdGFydGVkLCBhbmQgaW5zaWRlIG9mIGtkYW1vbmRfZm4oKS5cXG5tbS9kYW1vbi9jb3JlLmMtMTAzNi0gKlxcbi0tXFxubW0vZGFtb24vY29yZS5jLTEwMzktICogYWxzbyBpbmRpcmVjdGx5IGNhbGwgdGhpcyBmdW5jdGlvbiB2aWEgZGFtb25fY2FsbCgpIC1cXHUwMDNlIGRhbW9uX2NvbW1pdCgpIGZvclxcbm1tL2RhbW9uL2NvcmUuYzoxMDQwOiAqIG9ubGluZSBwYXJhbWV0ZXJzIHVwZGF0ZXMuICBGaW5hbGx5LCBrZGFtb25kX2ZuKCkgaXRzZWxmIHVzZSB0aGlzIGZvclxcbm1tL2RhbW9uL2NvcmUuYy0xMDQxLSAqIGFwcGx5aW5nIGF1dG8tdHVuZWQgbW9uaXRvcmluZyBpbnRlcnZhbHMuXFxuLS1cXG5tbS9kYW1vbi9jb3JlLmM9MTA0Nz1pbnQgZGFtb25fc2V0X2F0dHJzKHN0cnVjdCBkYW1vbl9jdHggKmN0eCwgc3RydWN0IGRhbW9uX2F0dHJzICphdHRycylcXG4tLVxcbm1tL2RhbW9uL2NvcmUuYy0xMDczLVxcdC8qXFxubW0vZGFtb24vY29yZS5jOjEwNzQ6XFx0ICogbmV4dF9pbnRlcnZhbHNfdHVuZV9zaXMgd2lsbCBiZSB1cGRhdGVkIGluc2lkZSBrZGFtb25kX2ZuKCkuXFxubW0vZGFtb24vY29yZS5jLTEwNzUtXFx0ICovXFxuLS1cXG5tbS9kYW1vbi9jb3JlLmM9MTkwND1zdGF0aWMgdW5zaWduZWQgbG9uZyBkYW1vbl9hcHBseV9taW5fbnJfcmVnaW9ucyhzdHJ1Y3QgZGFtb25fY3R4ICpjdHgpXFxuLS1cXG5tbS9kYW1vbi9jb3JlLmMtMTkyMS1cXG5tbS9kYW1vbi9jb3JlLmM6MTkyMjpzdGF0aWMgaW50IGtkYW1vbmRfZm4odm9pZCAqZGF0YSk7XFxubW0vZGFtb24vY29yZS5jLTE5MjMtXFxuLS1cXG5tbS9kYW1vbi9jb3JlLmM9MTkzMj1zdGF0aWMgaW50IF9fZGFtb25fc3RhcnQoc3RydWN0IGRhbW9uX2N0eCAqY3R4KVxcbi0tXFxubW0vZGFtb24vY29yZS5jLTE5MzktXFx0XFx0cmVpbml0X2NvbXBsZXRpb24oXFx1MDAyNmN0eC1cXHUwMDNla2RhbW9uZF9zdGFydGVkKTtcXG5tbS9kYW1vbi9jb3JlLmM6MTk0MDpcXHRcXHRjdHgtXFx1MDAzZWtkYW1vbmQgPSBrdGhyZWFkX3J1bihrZGFtb25kX2ZuLCBjdHgsIFxcXCJrZGFtb25kLiVkXFxcIixcXG5tbS9kYW1vbi9jb3JlLmMtMTk0MS1cXHRcXHRcXHRcXHRucl9ydW5uaW5nX2N0eHMpO1xcbi0tXFxubW0vZGFtb24vY29yZS5jPTIwMzY9dm9pZCBkYW1vbl9zdG9wKHN0cnVjdCBkYW1vbl9jdHggKipjdHhzLCBpbnQgbnJfY3R4cylcXG4tLVxcbm1tL2RhbW9uL2NvcmUuYy0yMDQwLVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBucl9jdHhzOyBpKyspXFxubW0vZGFtb24vY29yZS5jOjIwNDE6XFx0XFx0LyogbnJfcnVubmluZ19jdHhzIGlzIGRlY3JlbWVudGVkIGluIGtkYW1vbmRfZm4gKi9cXG5tbS9kYW1vbi9jb3JlLmMtMjA0Mi1cXHRcXHRfX2RhbW9uX3N0b3AoY3R4c1tpXSk7XFxuLS1cXG5tbS9kYW1vbi9jb3JlLmM9MzcxOT1zdGF0aWMgdm9pZCBrZGFtb25kX2luaXRfY3R4KHN0cnVjdCBkYW1vbl9jdHggKmN0eClcXG4tLVxcbm1tL2RhbW9uL2NvcmUuYy0zNzQwLSAqL1xcbm1tL2RhbW9uL2NvcmUuYzozNzQxOnN0YXRpYyBpbnQga2RhbW9uZF9mbih2b2lkICpkYXRhKVxcbm1tL2RhbW9uL2NvcmUuYy0zNzQyLXtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTJUMTA6MTc6NTAuMTcyNTMwMjA0WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjY0NTIwNTkwNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBEQU1PTiBSZWZpbmVtZW50OiBGb2N1cyBhbmQgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgaGl0dGluZyB0aGUgY29yZSBvZiBEQU1PTiwgc3BlY2lmaWNhbGx5IHRoZSByZWdpb24gbWVyZ2luZyBsb2dpYywgd2hpY2ggaXMgaGFuZGxlZCBpbiBga2RhbW9uZF9tZXJnZV9yZWdpb25zYCBhbmQsIGltcG9ydGFudGx5LCBgZGFtb25fbWVyZ2VfcmVnaW9uc19vZmAuIFRoZSBjaGFuZ2UgaXRzZWxmIGlzIGZ1bmN0aW9uYWw7IGl0J3MgbW9kaWZ5aW5nIGhvdyByZWdpb25zIG1lcmdlIGFuZCBob3cgdGhlaXIgXCJhZ2VcIiBpcyB1cGRhdGVkLCB3aGljaCBpcyBjcnVjaWFsIGZvciBlZmZpY2llbnQgbWVtb3J5IG1hbmFnZW1lbnQuIFBhc3NpbmcgYGNvdW50X2FnZWAgaW50byBgZGFtb25fbWVyZ2VfcmVnaW9uc19vZmAgaXMgYSBrZXkgaW5kaWNhdG9yIG9mIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgREFNT04uIFRoaXMgbWFrZXMgZnV6emluZyBhIHZlcnkgZ29vZCBpZGVhLlxuXG5MZXQncyBpZGVudGlmeSB0aGUgZm9jYWwgc3ltYm9scy4gYGtkYW1vbmRfbWVyZ2VfcmVnaW9uc2AgYW5kIGBkYW1vbl9tZXJnZV9yZWdpb25zX29mYCBhcmUgYm90aCBzdGF0aWMsIHJpZ2h0PyBZZXMuIFdlIGNhbiBkZWZpbml0ZWx5IGZvY3VzIG9uIGJvdGguIGBrZGFtb25kX2ZuYCBpcyB0aGUgbWFpbiB0aHJlYWQgZnVuY3Rpb24sIGJ1dCB0aGUgbWVyZ2UgbG9naWMgaXMgd2hlcmUgdGhlIHJlYWwgYWN0aW9uIGlzIGluIHRoaXMgcGF0Y2guIExldCdzIHN0aWNrIHdpdGggZnV6emluZyBga2RhbW9uZF9tZXJnZV9yZWdpb25zYCBhbmQgYGRhbW9uX21lcmdlX3JlZ2lvbnNfb2ZgLlxuXG5Ob3csIHRoZSBjb25maWd1cmF0aW9uIGFzcGVjdC4gV2UgbmVlZCB0byBlbnN1cmUgd2UgY2FuIGFjdHVhbGx5ICpydW4qIHRoZSBEQU1PTiBjb2RlIHdpdGggdGhlIGFwcHJvcHJpYXRlIGNvbmZpZ3VyYXRpb24gdG8gZXZlbiB0ZXN0IHRoaXMgcGF0Y2guIEkga25vdyBgREFNT05gIGlzIHRoZSBwcmltYXJ5IGNvbmZpZy4gRm9yIHJ1bm5pbmcgREFNT04sIGBEQU1PTl9WQUREUmAgYW5kL29yIGBEQU1PTl9QQUREUmAgYXJlIGxpa2VseSBuZWVkZWQuIEdvaW5nIGJhY2sgdG8gYG1tL2RhbW9uL0tjb25maWdgIGZvciB2ZXJpZmljYXRpb24uLi5BaCB5ZXMsIGFuZCB3ZSdsbCBwcm9iYWJseSBuZWVkIGBEQU1PTl9TWVNGU2AgZm9yIHVzZXJzcGFjZSBpbnRlcmFjdGlvbi4gU28sIGZvciBtYXhpbXVtIGNvdmVyYWdlLCBJJ2xsIGluY2x1ZGUgYERBTU9OYCwgYERBTU9OX1ZBRERSYCwgYERBTU9OX1BBRERSYCwgYW5kIGBEQU1PTl9TWVNGU2AgaW4gb3VyIHRlc3RpbmcgY29uZmlndXJhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6NTYwMSwiT3V0cHV0VG9rZW5zIjoxMjYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNDcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTJUMTA6MTc6NTYuODE3NzM4MDAxWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Nzk3OTA5NTMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkRBTU9OXCIsXG4gICAgXCJEQU1PTl9WQUREUlwiLFxuICAgIFwiREFNT05fUEFERFJcIixcbiAgICBcIkRBTU9OX1NZU0ZTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia2RhbW9uZF9tZXJnZV9yZWdpb25zXCIsXG4gICAgXCJkYW1vbl9tZXJnZV9yZWdpb25zX29mXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgbG9naWMgb2YgREFNT04gKERhdGEgQWNjZXNzIE1PTml0b3IpIGZvciBtZXJnaW5nIHJlZ2lvbnMgYW5kIHVwZGF0aW5nIHRoZWlyIGFnZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBrZXJuZWwncyBtZW1vcnkgbWFuYWdlbWVudCBzdWJzeXN0ZW0gdGhhdCBhZmZlY3RzIGhvdyBtZW1vcnkgYWNjZXNzIHBhdHRlcm5zIGFyZSBtb25pdG9yZWQgYW5kIGFnZ3JlZ2F0ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiREFNT05cIixcbiAgICBcIkRBTU9OX1ZBRERSXCIsXG4gICAgXCJEQU1PTl9QQUREUlwiLFxuICAgIFwiREFNT05fU1lTRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrZGFtb25kX21lcmdlX3JlZ2lvbnNcIixcbiAgICBcImRhbW9uX21lcmdlX3JlZ2lvbnNfb2ZcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBsb2dpYyBvZiBEQU1PTiAoRGF0YSBBY2Nlc3MgTU9OaXRvcikgZm9yIG1lcmdpbmcgcmVnaW9ucyBhbmQgdXBkYXRpbmcgdGhlaXIgYWdlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGtlcm5lbCdzIG1lbW9yeSBtYW5hZ2VtZW50IHN1YnN5c3RlbSB0aGF0IGFmZmVjdHMgaG93IG1lbW9yeSBhY2Nlc3MgcGF0dGVybnMgYXJlIG1vbml0b3JlZCBhbmQgYWdncmVnYXRlZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflowq5bwx[1] Phase: Succeeded StartedAt: 2026-07-12 10:18:08 +0000 UTC FinishedAt: 2026-07-12 10:18:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq5bwx[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-12 10:18:08 +0000 UTC FinishedAt: 2026-07-12 10:18:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq5bwx[2] Phase: Succeeded StartedAt: 2026-07-12 10:18:08 +0000 UTC FinishedAt: 2026-07-12 14:52:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq5bwx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["kdamond_merge_regions","damon_merge_regions_of"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"ffb1a388-8096-47d8-bc95-317328560b59","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-12 10:18:08 +0000 UTC FinishedAt: 2026-07-12 14:52:44 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["kdamond_merge_regions","damon_merge_regions_of"],"skip_cover_check":true},"patched":{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"ffb1a388-8096-47d8-bc95-317328560b59","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowq5bwx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["kdamond_merge_regions","damon_merge_regions_of"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"ffb1a388-8096-47d8-bc95-317328560b59","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-12 10:18:08 +0000 UTC FinishedAt: 2026-07-12 10:18:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq5bwx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["kdamond_merge_regions","damon_merge_regions_of"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"ffb1a388-8096-47d8-bc95-317328560b59","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-12 10:18:08 +0000 UTC FinishedAt: 2026-07-12 10:18:15 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},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-workflowq5bwx/series-workflowq5bwx-convert-artifact-3151727434/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowq5bwx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["kdamond_merge_regions","damon_merge_regions_of"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"ffb1a388-8096-47d8-bc95-317328560b59","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-12 10:18:18 +0000 UTC FinishedAt: 2026-07-12 10:52:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq5bwx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["kdamond_merge_regions","damon_merge_regions_of"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"ffb1a388-8096-47d8-bc95-317328560b59","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-12 10:18:18 +0000 UTC FinishedAt: 2026-07-12 10:52:12 +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:*ad2a772f-6156-4e86-b36b-a32adccb2746,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-workflowq5bwx/series-workflowq5bwx-convert-artifact-3151727434/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": "fe91e0a0-f273-449e-a854-8d2c2655260e", "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-workflowq5bwx/series-workflowq5bwx-build-action-4012909368/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowq5bwx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["kdamond_merge_regions","damon_merge_regions_of"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"ffb1a388-8096-47d8-bc95-317328560b59","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-12 10:18:18 +0000 UTC FinishedAt: 2026-07-12 10:52:02 +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:*ad2a772f-6156-4e86-b36b-a32adccb2746,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-workflowq5bwx/series-workflowq5bwx-convert-artifact-3151727434/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": "fe91e0a0-f273-449e-a854-8d2c2655260e", "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-workflowq5bwx/series-workflowq5bwx-build-action-4012909368/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowq5bwx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["kdamond_merge_regions","damon_merge_regions_of"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"ffb1a388-8096-47d8-bc95-317328560b59","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-12 10:52:12 +0000 UTC FinishedAt: 2026-07-12 10:52:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq5bwx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["kdamond_merge_regions","damon_merge_regions_of"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"ffb1a388-8096-47d8-bc95-317328560b59","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-12 10:52:12 +0000 UTC FinishedAt: 2026-07-12 10:52:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq5bwx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["kdamond_merge_regions","damon_merge_regions_of"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"ffb1a388-8096-47d8-bc95-317328560b59","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-12 10:52:12 +0000 UTC FinishedAt: 2026-07-12 10:52:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq5bwx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["kdamond_merge_regions","damon_merge_regions_of"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"ffb1a388-8096-47d8-bc95-317328560b59","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-12 10:52:12 +0000 UTC FinishedAt: 2026-07-12 10:52:21 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"ffb1a388-8096-47d8-bc95-317328560b59","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},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-workflowq5bwx/series-workflowq5bwx-convert-artifact-3131957989/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowq5bwx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["kdamond_merge_regions","damon_merge_regions_of"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"ffb1a388-8096-47d8-bc95-317328560b59","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-12 10:52:33 +0000 UTC FinishedAt: 2026-07-12 10:55:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq5bwx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["kdamond_merge_regions","damon_merge_regions_of"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"ffb1a388-8096-47d8-bc95-317328560b59","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-12 10:52:33 +0000 UTC FinishedAt: 2026-07-12 10:54:56 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*fe91e0a0-f273-449e-a854-8d2c2655260e,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-workflowq5bwx/series-workflowq5bwx-build-action-4012909368/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-workflowq5bwx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["kdamond_merge_regions","damon_merge_regions_of"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"ffb1a388-8096-47d8-bc95-317328560b59","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-12 10:55:06 +0000 UTC FinishedAt: 2026-07-12 10:55:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq5bwx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["kdamond_merge_regions","damon_merge_regions_of"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"ffb1a388-8096-47d8-bc95-317328560b59","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-12 10:55:06 +0000 UTC FinishedAt: 2026-07-12 10:55:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq5bwx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["kdamond_merge_regions","damon_merge_regions_of"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"ffb1a388-8096-47d8-bc95-317328560b59","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-12 10:55:06 +0000 UTC FinishedAt: 2026-07-12 11:46:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq5bwx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["kdamond_merge_regions","damon_merge_regions_of"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"ffb1a388-8096-47d8-bc95-317328560b59","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-12 10:55:06 +0000 UTC FinishedAt: 2026-07-12 11:46:46 +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:*ad2a772f-6156-4e86-b36b-a32adccb2746,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-workflowq5bwx/series-workflowq5bwx-convert-artifact-3131957989/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": "37cc7e99-4b1a-4f60-9366-f1c120106032", "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-workflowq5bwx/series-workflowq5bwx-build-action-1458616113/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowq5bwx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["kdamond_merge_regions","damon_merge_regions_of"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"ffb1a388-8096-47d8-bc95-317328560b59","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-12 10:55:06 +0000 UTC FinishedAt: 2026-07-12 11:46:36 +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:*ad2a772f-6156-4e86-b36b-a32adccb2746,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-workflowq5bwx/series-workflowq5bwx-convert-artifact-3131957989/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": "37cc7e99-4b1a-4f60-9366-f1c120106032", "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-workflowq5bwx/series-workflowq5bwx-build-action-1458616113/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowq5bwx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["kdamond_merge_regions","damon_merge_regions_of"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"ffb1a388-8096-47d8-bc95-317328560b59","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-12 11:46:46 +0000 UTC FinishedAt: 2026-07-12 11:46:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq5bwx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["kdamond_merge_regions","damon_merge_regions_of"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"ffb1a388-8096-47d8-bc95-317328560b59","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-12 11:46:46 +0000 UTC FinishedAt: 2026-07-12 11:46:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq5bwx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["kdamond_merge_regions","damon_merge_regions_of"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"ffb1a388-8096-47d8-bc95-317328560b59","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-12 11:46:46 +0000 UTC FinishedAt: 2026-07-12 11:49:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq5bwx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["kdamond_merge_regions","damon_merge_regions_of"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"ffb1a388-8096-47d8-bc95-317328560b59","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-12 11:46:46 +0000 UTC FinishedAt: 2026-07-12 11:49:07 +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:*37cc7e99-4b1a-4f60-9366-f1c120106032,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-workflowq5bwx/series-workflowq5bwx-build-action-1458616113/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-workflowq5bwx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["kdamond_merge_regions","damon_merge_regions_of"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"ffb1a388-8096-47d8-bc95-317328560b59","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-12 11:49:17 +0000 UTC FinishedAt: 2026-07-12 14:52:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq5bwx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["kdamond_merge_regions","damon_merge_regions_of"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"ffb1a388-8096-47d8-bc95-317328560b59","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-12 11:49:17 +0000 UTC FinishedAt: 2026-07-12 14:52:44 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["kdamond_merge_regions","damon_merge_regions_of"],"skip_cover_check":true},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:*fe91e0a0-f273-449e-a854-8d2c2655260e,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*37cc7e99-4b1a-4f60-9366-f1c120106032,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-workflowq5bwx/series-workflowq5bwx-build-action-4012909368/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-workflowq5bwx/series-workflowq5bwx-build-action-1458616113/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowq5bwx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["kdamond_merge_regions","damon_merge_regions_of"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"ffb1a388-8096-47d8-bc95-317328560b59","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-12 11:49:17 +0000 UTC FinishedAt: 2026-07-12 11:49:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq5bwx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["kdamond_merge_regions","damon_merge_regions_of"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"ffb1a388-8096-47d8-bc95-317328560b59","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-12 11:49:17 +0000 UTC FinishedAt: 2026-07-12 11:49:23 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["kdamond_merge_regions","damon_merge_regions_of"],"skip_cover_check":true},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-workflowq5bwx/series-workflowq5bwx-convert-artifact-2401118058/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowq5bwx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["kdamond_merge_regions","damon_merge_regions_of"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"ffb1a388-8096-47d8-bc95-317328560b59","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-12 11:49:17 +0000 UTC FinishedAt: 2026-07-12 11:49:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq5bwx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["kdamond_merge_regions","damon_merge_regions_of"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"ffb1a388-8096-47d8-bc95-317328560b59","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-12 11:49:17 +0000 UTC FinishedAt: 2026-07-12 11:49:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq5bwx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["kdamond_merge_regions","damon_merge_regions_of"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"ffb1a388-8096-47d8-bc95-317328560b59","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-12 11:49:18 +0000 UTC FinishedAt: 2026-07-12 11:49:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq5bwx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["kdamond_merge_regions","damon_merge_regions_of"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"ffb1a388-8096-47d8-bc95-317328560b59","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-12 11:49:28 +0000 UTC FinishedAt: 2026-07-12 14:52:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowq5bwx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["kdamond_merge_regions","damon_merge_regions_of"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"61cccb8363fcc282d4ae0555b8739dd227f5ad0b","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS"],"series_id":"ffb1a388-8096-47d8-bc95-317328560b59","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-12 11:49:28 +0000 UTC FinishedAt: 2026-07-12 14:52:34 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*fe91e0a0-f273-449e-a854-8d2c2655260e,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*37cc7e99-4b1a-4f60-9366-f1c120106032,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-workflowq5bwx/series-workflowq5bwx-build-action-4012909368/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-workflowq5bwx/series-workflowq5bwx-build-action-1458616113/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-workflowq5bwx/series-workflowq5bwx-convert-artifact-2401118058/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,}