Name: series-workflows7n76 Phase: Succeeded StartedAt: 2026-07-17 03:17:20 +0000 UTC FinishedAt: 2026-07-17 08:00:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7n76[0] Phase: Succeeded StartedAt: 2026-07-17 03:17:20 +0000 UTC FinishedAt: 2026-07-17 03:48:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7n76[0].run-triage Phase: Succeeded StartedAt: 2026-07-17 03:17:20 +0000 UTC FinishedAt: 2026-07-17 03:48:44 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "fce2dfa773ced15f27dd27cd0b482a7473cdcf2a", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "VIRTIO_BALLOON", "PAGE_REPORTING" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "fce2dfa773ced15f27dd27cd0b482a7473cdcf2a", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "VIRTIO_BALLOON", "PAGE_REPORTING" ], "series_id": "59b4f320-6e82-40d0-88f3-3fcf48447a07" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "virtballoon_freeze", "virtballoon_restore", "virtio_balloon_shrinker_scan", "virtio_balloon_shrinker_count", "return_free_pages_to_mm", "__page_reporting_request", "page_reporting_process" ], "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+CgkJCTx0ZD4yMDI2LzA3LzE3IDAzOjQ4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1ZJUlRJT19CQUxMT09OJiMzNDssCiAgICAmIzM0O1BBR0VfUkVQT1JUSU5HJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dmlydGJhbGxvb25fZnJlZXplJiMzNDssCiAgICAmIzM0O3ZpcnRiYWxsb29uX3Jlc3RvcmUmIzM0OywKICAgICYjMzQ7dmlydGlvX2JhbGxvb25fc2hyaW5rZXJfc2NhbiYjMzQ7LAogICAgJiMzNDt2aXJ0aW9fYmFsbG9vbl9zaHJpbmtlcl9jb3VudCYjMzQ7LAogICAgJiMzNDtyZXR1cm5fZnJlZV9wYWdlc190b19tbSYjMzQ7LAogICAgJiMzNDtfX3BhZ2VfcmVwb3J0aW5nX3JlcXVlc3QmIzM0OywKICAgICYjMzQ7cGFnZV9yZXBvcnRpbmdfcHJvY2VzcyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgdmlydGlvIGJhbGxvb24gZHJpdmVyIGFuZCBwYWdlIHJlcG9ydGluZyB0byBoYW5kbGUgc3VzcGVuZC9yZXN1bWUgcHJvcGVybHkuIEl0IGFkZHMgYSBzdXNwZW5kZWQgZmxhZyBhbmQgY2hhbmdlcyB0aGUgd29ya3F1ZXVlIHVzZWQgZm9yIHBhZ2UgcmVwb3J0aW5nLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHJlYWNoYWJsZSBjb2RlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAzOjQ4PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZDk1ZGNjYmVjNDM3YzE0NDY3ZmEwMGYyZTkzNGY4NjQ4NDNjNWY5NVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDE3IDAzOjQ4OjA5IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlydGlvL3ZpcnRpb19iYWxsb29uLmMgYi9kcml2ZXJzL3ZpcnRpby92aXJ0aW9fYmFsbG9vbi5jXG5pbmRleCAwODhiM2EwZTZjZTZjYy4uMzhlMTE2NmE2NDc2Y2MgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3ZpcnRpby92aXJ0aW9fYmFsbG9vbi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3ZpcnRpby92aXJ0aW9fYmFsbG9vbi5jXG5AQCAtNjgsNiAmIzQzOzY4LDggQEAgc3RydWN0IHZpcnRpb19iYWxsb29uIHtcbiBcdC8qIFByZXZlbnQgdXBkYXRpbmcgYmFsbG9vbiB3aGVuIGl0IGlzIGJlaW5nIGNhbmNlbGVkLiAqL1xuIFx0c3BpbmxvY2tfdCBzdG9wX3VwZGF0ZV9sb2NrO1xuIFx0Ym9vbCBzdG9wX3VwZGF0ZTtcbiYjNDM7XHQvKiBQcmV2ZW50IHNocmlua2VyIGZyb20gcnVubmluZyB3aGlsZSBkZXZpY2UgaXMgc3VzcGVuZGVkLiAqL1xuJiM0MztcdGJvb2wgc3VzcGVuZGVkO1xuIFx0LyogQml0bWFwIHRvIGluZGljYXRlIGlmIHJlYWRpbmcgdGhlIHJlbGF0ZWQgY29uZmlnIGZpZWxkcyBhcmUgbmVlZGVkICovXG4gXHR1bnNpZ25lZCBsb25nIGNvbmZpZ19yZWFkX2JpdG1hcDtcbiBcbkBAIC00NzEsOSAmIzQzOzQ3Myw5IEBAIHN0YXRpYyBpbmxpbmUgczY0IHRvd2FyZHNfdGFyZ2V0KHN0cnVjdCB2aXJ0aW9fYmFsbG9vbiAqdmIpXG4gXHRyZXR1cm4gdGFyZ2V0IC0gdmItXHUwMDNlbnVtX3BhZ2VzO1xuIH1cbiBcbi0vKiBHaXZlcyBiYWNrIEBudW1fdG9fcmV0dXJuIGJsb2NrcyBvZiBmcmVlIHBhZ2VzIHRvIG1tLiAqL1xuLXN0YXRpYyB1bnNpZ25lZCBsb25nIHJldHVybl9mcmVlX3BhZ2VzX3RvX21tKHN0cnVjdCB2aXJ0aW9fYmFsbG9vbiAqdmIsXG4tXHRcdFx0XHRcdCAgICAgdW5zaWduZWQgbG9uZyBudW1fdG9fcmV0dXJuKVxuJiM0MzsvKiBIZWxwZXI6IG11c3QgYmUgY2FsbGVkIHdpdGggZnJlZV9wYWdlX2xpc3RfbG9jayBoZWxkICovXG4mIzQzO3N0YXRpYyB1bnNpZ25lZCBsb25nIF9fcmV0dXJuX2ZyZWVfcGFnZXNfdG9fbW0oc3RydWN0IHZpcnRpb19iYWxsb29uICp2YixcbiYjNDM7XHRcdFx0XHRcdCAgICAgICB1bnNpZ25lZCBsb25nIG51bV90b19yZXR1cm4pXG4ge1xuIFx0dW5zaWduZWQgbG9uZyBudW1fcmV0dXJuZWQgPSAwO1xuIFx0c3RydWN0IHBhZ2UgKnBhZ2UsICpuZXh0O1xuQEAgLTQ4MSw4ICYjNDM7NDgzLDYgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgcmV0dXJuX2ZyZWVfcGFnZXNfdG9fbW0oc3RydWN0IHZpcnRpb19iYWxsb29uICp2YixcbiBcdGlmICh1bmxpa2VseSghbnVtX3RvX3JldHVybikpXG4gXHRcdHJldHVybiAwO1xuIFxuLVx0c3Bpbl9sb2NrX2lycShcdTAwMjZ2Yi1cdTAwM2VmcmVlX3BhZ2VfbGlzdF9sb2NrKTtcbi1cbiBcdGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShwYWdlLCBuZXh0LCBcdTAwMjZ2Yi1cdTAwM2VmcmVlX3BhZ2VfbGlzdCwgbHJ1KSB7XG4gXHRcdGxpc3RfZGVsKFx1MDAyNnBhZ2UtXHUwMDNlbHJ1KTtcbiBcdFx0X19mcmVlX3BhZ2VzKHBhZ2UsIFZJUlRJT19CQUxMT09OX0hJTlRfQkxPQ0tfT1JERVIpO1xuQEAgLTQ5MCwxMSAmIzQzOzQ5MCwyNyBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyByZXR1cm5fZnJlZV9wYWdlc190b19tbShzdHJ1Y3QgdmlydGlvX2JhbGxvb24gKnZiLFxuIFx0XHRcdGJyZWFrO1xuIFx0fVxuIFx0dmItXHUwMDNlbnVtX2ZyZWVfcGFnZV9ibG9ja3MgLT0gbnVtX3JldHVybmVkO1xuLVx0c3Bpbl91bmxvY2tfaXJxKFx1MDAyNnZiLVx1MDAzZWZyZWVfcGFnZV9saXN0X2xvY2spO1xuIFxuIFx0cmV0dXJuIG51bV9yZXR1cm5lZDtcbiB9XG4gXG4mIzQzOy8qIEdpdmVzIGJhY2sgQG51bV90b19yZXR1cm4gYmxvY2tzIG9mIGZyZWUgcGFnZXMgdG8gbW0uICovXG4mIzQzO3N0YXRpYyB1bnNpZ25lZCBsb25nIHJldHVybl9mcmVlX3BhZ2VzX3RvX21tKHN0cnVjdCB2aXJ0aW9fYmFsbG9vbiAqdmIsXG4mIzQzO1x0XHRcdFx0XHQgICAgIHVuc2lnbmVkIGxvbmcgbnVtX3RvX3JldHVybilcbiYjNDM7e1xuJiM0MztcdHVuc2lnbmVkIGxvbmcgcmV0O1xuJiM0MztcbiYjNDM7XHRzcGluX2xvY2tfaXJxKFx1MDAyNnZiLVx1MDAzZWZyZWVfcGFnZV9saXN0X2xvY2spO1xuJiM0MztcdGlmICh2Yi1cdTAwM2VzdXNwZW5kZWQpIHtcbiYjNDM7XHRcdHNwaW5fdW5sb2NrX2lycShcdTAwMjZ2Yi1cdTAwM2VmcmVlX3BhZ2VfbGlzdF9sb2NrKTtcbiYjNDM7XHRcdHJldHVybiAwO1xuJiM0MztcdH1cbiYjNDM7XHRyZXQgPSBfX3JldHVybl9mcmVlX3BhZ2VzX3RvX21tKHZiLCBudW1fdG9fcmV0dXJuKTtcbiYjNDM7XHRzcGluX3VubG9ja19pcnEoXHUwMDI2dmItXHUwMDNlZnJlZV9wYWdlX2xpc3RfbG9jayk7XG4mIzQzO1xuJiM0MztcdHJldHVybiByZXQ7XG4mIzQzO31cbiYjNDM7XG4gc3RhdGljIHZvaWQgdmlydGlvX2JhbGxvb25fcXVldWVfZnJlZV9wYWdlX3dvcmsoc3RydWN0IHZpcnRpb19iYWxsb29uICp2YilcbiB7XG4gXHRpZiAoIXZpcnRpb19oYXNfZmVhdHVyZSh2Yi1cdTAwM2V2ZGV2LCBWSVJUSU9fQkFMTE9PTl9GX0ZSRUVfUEFHRV9ISU5UKSlcbkBAIC04NzEsNiAmIzQzOzg4Nyw5IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIHZpcnRpb19iYWxsb29uX3Nocmlua2VyX3NjYW4oc3RydWN0IHNocmlua2VyICpzaHJpbmtlcixcbiB7XG4gXHRzdHJ1Y3QgdmlydGlvX2JhbGxvb24gKnZiID0gc2hyaW5rZXItXHUwMDNlcHJpdmF0ZV9kYXRhO1xuIFxuJiM0MztcdGlmIChSRUFEX09OQ0UodmItXHUwMDNlc3VzcGVuZGVkKSlcbiYjNDM7XHRcdHJldHVybiAwO1xuJiM0MztcbiBcdHJldHVybiBzaHJpbmtfZnJlZV9wYWdlcyh2Yiwgc2MtXHUwMDNlbnJfdG9fc2Nhbik7XG4gfVxuIFxuQEAgLTg3OSw2ICYjNDM7ODk4LDkgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgdmlydGlvX2JhbGxvb25fc2hyaW5rZXJfY291bnQoc3RydWN0IHNocmlua2VyICpzaHJpbmtlcixcbiB7XG4gXHRzdHJ1Y3QgdmlydGlvX2JhbGxvb24gKnZiID0gc2hyaW5rZXItXHUwMDNlcHJpdmF0ZV9kYXRhO1xuIFxuJiM0MztcdGlmIChSRUFEX09OQ0UodmItXHUwMDNlc3VzcGVuZGVkKSlcbiYjNDM7XHRcdHJldHVybiAwO1xuJiM0MztcbiBcdHJldHVybiB2Yi1cdTAwM2VudW1fZnJlZV9wYWdlX2Jsb2NrcyAqIFZJUlRJT19CQUxMT09OX0hJTlRfQkxPQ0tfUEFHRVM7XG4gfVxuIFxuQEAgLTEwODksOCAmIzQzOzExMTEsMTEgQEAgc3RhdGljIHZvaWQgcmVtb3ZlX2NvbW1vbihzdHJ1Y3QgdmlydGlvX2JhbGxvb24gKnZiKVxuIFx0dXBkYXRlX2JhbGxvb25fc2l6ZSh2Yik7XG4gXG4gXHQvKiBUaGVyZSBtaWdodCBiZSBmcmVlIHBhZ2VzIHRoYXQgYXJlIGJlaW5nIHJlcG9ydGVkOiByZWxlYXNlIHRoZW0uICovXG4tXHRpZiAodmlydGlvX2hhc19mZWF0dXJlKHZiLVx1MDAzZXZkZXYsIFZJUlRJT19CQUxMT09OX0ZfRlJFRV9QQUdFX0hJTlQpKVxuLVx0XHRyZXR1cm5fZnJlZV9wYWdlc190b19tbSh2YiwgVUxPTkdfTUFYKTtcbiYjNDM7XHRpZiAodmlydGlvX2hhc19mZWF0dXJlKHZiLVx1MDAzZXZkZXYsIFZJUlRJT19CQUxMT09OX0ZfRlJFRV9QQUdFX0hJTlQpKSB7XG4mIzQzO1x0XHRzcGluX2xvY2tfaXJxKFx1MDAyNnZiLVx1MDAzZWZyZWVfcGFnZV9saXN0X2xvY2spO1xuJiM0MztcdFx0X19yZXR1cm5fZnJlZV9wYWdlc190b19tbSh2YiwgVUxPTkdfTUFYKTtcbiYjNDM7XHRcdHNwaW5fdW5sb2NrX2lycShcdTAwMjZ2Yi1cdTAwM2VmcmVlX3BhZ2VfbGlzdF9sb2NrKTtcbiYjNDM7XHR9XG4gXG4gXHQvKiBOb3cgd2UgcmVzZXQgdGhlIGRldmljZSBzbyB3ZSBjYW4gY2xlYW4gdXAgdGhlIHF1ZXVlcy4gKi9cbiBcdHZpcnRpb19yZXNldF9kZXZpY2UodmItXHUwMDNldmRldik7XG5AQCAtMTEzMyw2ICYjNDM7MTE1OCwxMCBAQCBzdGF0aWMgaW50IHZpcnRiYWxsb29uX2ZyZWV6ZShzdHJ1Y3QgdmlydGlvX2RldmljZSAqdmRldilcbiBcdCAqIFRoZSB3b3JrcXVldWUgaXMgYWxyZWFkeSBmcm96ZW4gYnkgdGhlIFBNIGNvcmUgYmVmb3JlIHRoaXNcbiBcdCAqIGZ1bmN0aW9uIGlzIGNhbGxlZC5cbiBcdCAqL1xuJiM0MztcdHNwaW5fbG9ja19pcnEoXHUwMDI2dmItXHUwMDNlZnJlZV9wYWdlX2xpc3RfbG9jayk7XG4mIzQzO1x0V1JJVEVfT05DRSh2Yi1cdTAwM2VzdXNwZW5kZWQsIHRydWUpO1xuJiM0MztcdHNwaW5fdW5sb2NrX2lycShcdTAwMjZ2Yi1cdTAwM2VmcmVlX3BhZ2VfbGlzdF9sb2NrKTtcbiYjNDM7XG4gXHRyZW1vdmVfY29tbW9uKHZiKTtcbiBcdHJldHVybiAwO1xuIH1cbkBAIC0xMTQ4LDYgJiM0MzsxMTc3LDEwIEBAIHN0YXRpYyBpbnQgdmlydGJhbGxvb25fcmVzdG9yZShzdHJ1Y3QgdmlydGlvX2RldmljZSAqdmRldilcbiBcbiBcdHZpcnRpb19kZXZpY2VfcmVhZHkodmRldik7XG4gXG4mIzQzO1x0c3Bpbl9sb2NrX2lycShcdTAwMjZ2Yi1cdTAwM2VmcmVlX3BhZ2VfbGlzdF9sb2NrKTtcbiYjNDM7XHRXUklURV9PTkNFKHZiLVx1MDAzZXN1c3BlbmRlZCwgZmFsc2UpO1xuJiM0MztcdHNwaW5fdW5sb2NrX2lycShcdTAwMjZ2Yi1cdTAwM2VmcmVlX3BhZ2VfbGlzdF9sb2NrKTtcbiYjNDM7XG4gXHRpZiAodG93YXJkc190YXJnZXQodmIpKVxuIFx0XHR2aXJ0YmFsbG9vbl9jaGFuZ2VkKHZkZXYpO1xuIFx0dXBkYXRlX2JhbGxvb25fc2l6ZSh2Yik7XG5kaWZmIC0tZ2l0IGEvbW0vcGFnZV9yZXBvcnRpbmcuYyBiL21tL3BhZ2VfcmVwb3J0aW5nLmNcbmluZGV4IDc0MThmMmU1MDBiYjQ4Li40ZGM2ZjRiODUyMjM5OCAxMDA2NDRcbi0tLSBhL21tL3BhZ2VfcmVwb3J0aW5nLmNcbiYjNDM7JiM0MzsmIzQzOyBiL21tL3BhZ2VfcmVwb3J0aW5nLmNcbkBAIC04MCw3ICYjNDM7ODAsOCBAQCBfX3BhZ2VfcmVwb3J0aW5nX3JlcXVlc3Qoc3RydWN0IHBhZ2VfcmVwb3J0aW5nX2Rldl9pbmZvICpwcmRldilcbiBcdCAqIG5vdyB3ZSBhcmUgbGltaXRpbmcgdGhpcyB0byBydW5uaW5nIG5vIG1vcmUgdGhhbiBvbmNlIGV2ZXJ5XG4gXHQgKiBjb3VwbGUgb2Ygc2Vjb25kcy5cbiBcdCAqL1xuLVx0c2NoZWR1bGVfZGVsYXllZF93b3JrKFx1MDAyNnByZGV2LVx1MDAzZXdvcmssIFBBR0VfUkVQT1JUSU5HX0RFTEFZKTtcbiYjNDM7XHRxdWV1ZV9kZWxheWVkX3dvcmsoc3lzdGVtX2ZyZWV6YWJsZV93cSwgXHUwMDI2cHJkZXYtXHUwMDNld29yayxcbiYjNDM7XHRcdFx0ICAgUEFHRV9SRVBPUlRJTkdfREVMQVkpO1xuIH1cbiBcbiAvKiBub3RpZnkgcHJkZXYgb2YgZnJlZSBwYWdlIHJlcG9ydGluZyByZXF1ZXN0ICovXG5AQCAtMzQzLDcgJiM0MzszNDQsOCBAQCBzdGF0aWMgdm9pZCBwYWdlX3JlcG9ydGluZ19wcm9jZXNzKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbiBcdCAqL1xuIFx0c3RhdGUgPSBhdG9taWNfY21weGNoZyhcdTAwMjZwcmRldi1cdTAwM2VzdGF0ZSwgc3RhdGUsIFBBR0VfUkVQT1JUSU5HX0lETEUpO1xuIFx0aWYgKHN0YXRlID09IFBBR0VfUkVQT1JUSU5HX1JFUVVFU1RFRClcbi1cdFx0c2NoZWR1bGVfZGVsYXllZF93b3JrKFx1MDAyNnByZGV2LVx1MDAzZXdvcmssIFBBR0VfUkVQT1JUSU5HX0RFTEFZKTtcbiYjNDM7XHRcdHF1ZXVlX2RlbGF5ZWRfd29yayhzeXN0ZW1fZnJlZXphYmxlX3dxLCBcdTAwMjZwcmRldi1cdTAwM2V3b3JrLFxuJiM0MztcdFx0XHRcdCAgIFBBR0VfUkVQT1JUSU5HX0RFTEFZKTtcbiB9XG4gXG4gc3RhdGljIERFRklORV9NVVRFWChwYWdlX3JlcG9ydGluZ19tdXRleCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMDM6NDg8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VklSVElPX0JBTExPT04mIzM0OywKICAgICYjMzQ7UEFHRV9SRVBPUlRJTkcmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt2aXJ0YmFsbG9vbl9mcmVlemUmIzM0OywKICAgICYjMzQ7dmlydGJhbGxvb25fcmVzdG9yZSYjMzQ7LAogICAgJiMzNDt2aXJ0aW9fYmFsbG9vbl9zaHJpbmtlcl9zY2FuJiMzNDssCiAgICAmIzM0O3ZpcnRpb19iYWxsb29uX3Nocmlua2VyX2NvdW50JiMzNDssCiAgICAmIzM0O3JldHVybl9mcmVlX3BhZ2VzX3RvX21tJiMzNDssCiAgICAmIzM0O19fcGFnZV9yZXBvcnRpbmdfcmVxdWVzdCYjMzQ7LAogICAgJiMzNDtwYWdlX3JlcG9ydGluZ19wcm9jZXNzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSB2aXJ0aW8gYmFsbG9vbiBkcml2ZXIgYW5kIHBhZ2UgcmVwb3J0aW5nIHRvIGhhbmRsZSBzdXNwZW5kL3Jlc3VtZSBwcm9wZXJseS4gSXQgYWRkcyBhIHN1c3BlbmRlZCBmbGFnIGFuZCBjaGFuZ2VzIHRoZSB3b3JrcXVldWUgdXNlZCBmb3IgcGFnZSByZXBvcnRpbmcuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcmVhY2hhYmxlIGNvZGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGQ5NWRjY2JlYzQzN2MxNDQ2N2ZhMDBmMmU5MzRmODY0ODQzYzVmOTUKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgRnJpIEp1bCAxNyAwMzo0ODowOSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlydGlvL3ZpcnRpb19iYWxsb29uLmMgYi9kcml2ZXJzL3ZpcnRpby92aXJ0aW9fYmFsbG9vbi5jCmluZGV4IDA4OGIzYTBlNmNlNmNjLi4zOGUxMTY2YTY0NzZjYyAxMDA2NDQKLS0tIGEvZHJpdmVycy92aXJ0aW8vdmlydGlvX2JhbGxvb24uYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3ZpcnRpby92aXJ0aW9fYmFsbG9vbi5jCkBAIC02OCw2ICYjNDM7NjgsOCBAQCBzdHJ1Y3QgdmlydGlvX2JhbGxvb24gewogCS8qIFByZXZlbnQgdXBkYXRpbmcgYmFsbG9vbiB3aGVuIGl0IGlzIGJlaW5nIGNhbmNlbGVkLiAqLwogCXNwaW5sb2NrX3Qgc3RvcF91cGRhdGVfbG9jazsKIAlib29sIHN0b3BfdXBkYXRlOwomIzQzOwkvKiBQcmV2ZW50IHNocmlua2VyIGZyb20gcnVubmluZyB3aGlsZSBkZXZpY2UgaXMgc3VzcGVuZGVkLiAqLwomIzQzOwlib29sIHN1c3BlbmRlZDsKIAkvKiBCaXRtYXAgdG8gaW5kaWNhdGUgaWYgcmVhZGluZyB0aGUgcmVsYXRlZCBjb25maWcgZmllbGRzIGFyZSBuZWVkZWQgKi8KIAl1bnNpZ25lZCBsb25nIGNvbmZpZ19yZWFkX2JpdG1hcDsKIApAQCAtNDcxLDkgJiM0Mzs0NzMsOSBAQCBzdGF0aWMgaW5saW5lIHM2NCB0b3dhcmRzX3RhcmdldChzdHJ1Y3QgdmlydGlvX2JhbGxvb24gKnZiKQogCXJldHVybiB0YXJnZXQgLSB2Yi0mZ3Q7bnVtX3BhZ2VzOwogfQogCi0vKiBHaXZlcyBiYWNrIEBudW1fdG9fcmV0dXJuIGJsb2NrcyBvZiBmcmVlIHBhZ2VzIHRvIG1tLiAqLwotc3RhdGljIHVuc2lnbmVkIGxvbmcgcmV0dXJuX2ZyZWVfcGFnZXNfdG9fbW0oc3RydWN0IHZpcnRpb19iYWxsb29uICp2YiwKLQkJCQkJICAgICB1bnNpZ25lZCBsb25nIG51bV90b19yZXR1cm4pCiYjNDM7LyogSGVscGVyOiBtdXN0IGJlIGNhbGxlZCB3aXRoIGZyZWVfcGFnZV9saXN0X2xvY2sgaGVsZCAqLwomIzQzO3N0YXRpYyB1bnNpZ25lZCBsb25nIF9fcmV0dXJuX2ZyZWVfcGFnZXNfdG9fbW0oc3RydWN0IHZpcnRpb19iYWxsb29uICp2YiwKJiM0MzsJCQkJCSAgICAgICB1bnNpZ25lZCBsb25nIG51bV90b19yZXR1cm4pCiB7CiAJdW5zaWduZWQgbG9uZyBudW1fcmV0dXJuZWQgPSAwOwogCXN0cnVjdCBwYWdlICpwYWdlLCAqbmV4dDsKQEAgLTQ4MSw4ICYjNDM7NDgzLDYgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgcmV0dXJuX2ZyZWVfcGFnZXNfdG9fbW0oc3RydWN0IHZpcnRpb19iYWxsb29uICp2YiwKIAlpZiAodW5saWtlbHkoIW51bV90b19yZXR1cm4pKQogCQlyZXR1cm4gMDsKIAotCXNwaW5fbG9ja19pcnEoJmFtcDt2Yi0mZ3Q7ZnJlZV9wYWdlX2xpc3RfbG9jayk7Ci0KIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocGFnZSwgbmV4dCwgJmFtcDt2Yi0mZ3Q7ZnJlZV9wYWdlX2xpc3QsIGxydSkgewogCQlsaXN0X2RlbCgmYW1wO3BhZ2UtJmd0O2xydSk7CiAJCV9fZnJlZV9wYWdlcyhwYWdlLCBWSVJUSU9fQkFMTE9PTl9ISU5UX0JMT0NLX09SREVSKTsKQEAgLTQ5MCwxMSAmIzQzOzQ5MCwyNyBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyByZXR1cm5fZnJlZV9wYWdlc190b19tbShzdHJ1Y3QgdmlydGlvX2JhbGxvb24gKnZiLAogCQkJYnJlYWs7CiAJfQogCXZiLSZndDtudW1fZnJlZV9wYWdlX2Jsb2NrcyAtPSBudW1fcmV0dXJuZWQ7Ci0Jc3Bpbl91bmxvY2tfaXJxKCZhbXA7dmItJmd0O2ZyZWVfcGFnZV9saXN0X2xvY2spOwogCiAJcmV0dXJuIG51bV9yZXR1cm5lZDsKIH0KIAomIzQzOy8qIEdpdmVzIGJhY2sgQG51bV90b19yZXR1cm4gYmxvY2tzIG9mIGZyZWUgcGFnZXMgdG8gbW0uICovCiYjNDM7c3RhdGljIHVuc2lnbmVkIGxvbmcgcmV0dXJuX2ZyZWVfcGFnZXNfdG9fbW0oc3RydWN0IHZpcnRpb19iYWxsb29uICp2YiwKJiM0MzsJCQkJCSAgICAgdW5zaWduZWQgbG9uZyBudW1fdG9fcmV0dXJuKQomIzQzO3sKJiM0MzsJdW5zaWduZWQgbG9uZyByZXQ7CiYjNDM7CiYjNDM7CXNwaW5fbG9ja19pcnEoJmFtcDt2Yi0mZ3Q7ZnJlZV9wYWdlX2xpc3RfbG9jayk7CiYjNDM7CWlmICh2Yi0mZ3Q7c3VzcGVuZGVkKSB7CiYjNDM7CQlzcGluX3VubG9ja19pcnEoJmFtcDt2Yi0mZ3Q7ZnJlZV9wYWdlX2xpc3RfbG9jayk7CiYjNDM7CQlyZXR1cm4gMDsKJiM0MzsJfQomIzQzOwlyZXQgPSBfX3JldHVybl9mcmVlX3BhZ2VzX3RvX21tKHZiLCBudW1fdG9fcmV0dXJuKTsKJiM0MzsJc3Bpbl91bmxvY2tfaXJxKCZhbXA7dmItJmd0O2ZyZWVfcGFnZV9saXN0X2xvY2spOwomIzQzOwomIzQzOwlyZXR1cm4gcmV0OwomIzQzO30KJiM0MzsKIHN0YXRpYyB2b2lkIHZpcnRpb19iYWxsb29uX3F1ZXVlX2ZyZWVfcGFnZV93b3JrKHN0cnVjdCB2aXJ0aW9fYmFsbG9vbiAqdmIpCiB7CiAJaWYgKCF2aXJ0aW9faGFzX2ZlYXR1cmUodmItJmd0O3ZkZXYsIFZJUlRJT19CQUxMT09OX0ZfRlJFRV9QQUdFX0hJTlQpKQpAQCAtODcxLDYgJiM0Mzs4ODcsOSBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyB2aXJ0aW9fYmFsbG9vbl9zaHJpbmtlcl9zY2FuKHN0cnVjdCBzaHJpbmtlciAqc2hyaW5rZXIsCiB7CiAJc3RydWN0IHZpcnRpb19iYWxsb29uICp2YiA9IHNocmlua2VyLSZndDtwcml2YXRlX2RhdGE7CiAKJiM0MzsJaWYgKFJFQURfT05DRSh2Yi0mZ3Q7c3VzcGVuZGVkKSkKJiM0MzsJCXJldHVybiAwOwomIzQzOwogCXJldHVybiBzaHJpbmtfZnJlZV9wYWdlcyh2Yiwgc2MtJmd0O25yX3RvX3NjYW4pOwogfQogCkBAIC04NzksNiAmIzQzOzg5OCw5IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIHZpcnRpb19iYWxsb29uX3Nocmlua2VyX2NvdW50KHN0cnVjdCBzaHJpbmtlciAqc2hyaW5rZXIsCiB7CiAJc3RydWN0IHZpcnRpb19iYWxsb29uICp2YiA9IHNocmlua2VyLSZndDtwcml2YXRlX2RhdGE7CiAKJiM0MzsJaWYgKFJFQURfT05DRSh2Yi0mZ3Q7c3VzcGVuZGVkKSkKJiM0MzsJCXJldHVybiAwOwomIzQzOwogCXJldHVybiB2Yi0mZ3Q7bnVtX2ZyZWVfcGFnZV9ibG9ja3MgKiBWSVJUSU9fQkFMTE9PTl9ISU5UX0JMT0NLX1BBR0VTOwogfQogCkBAIC0xMDg5LDggJiM0MzsxMTExLDExIEBAIHN0YXRpYyB2b2lkIHJlbW92ZV9jb21tb24oc3RydWN0IHZpcnRpb19iYWxsb29uICp2YikKIAl1cGRhdGVfYmFsbG9vbl9zaXplKHZiKTsKIAogCS8qIFRoZXJlIG1pZ2h0IGJlIGZyZWUgcGFnZXMgdGhhdCBhcmUgYmVpbmcgcmVwb3J0ZWQ6IHJlbGVhc2UgdGhlbS4gKi8KLQlpZiAodmlydGlvX2hhc19mZWF0dXJlKHZiLSZndDt2ZGV2LCBWSVJUSU9fQkFMTE9PTl9GX0ZSRUVfUEFHRV9ISU5UKSkKLQkJcmV0dXJuX2ZyZWVfcGFnZXNfdG9fbW0odmIsIFVMT05HX01BWCk7CiYjNDM7CWlmICh2aXJ0aW9faGFzX2ZlYXR1cmUodmItJmd0O3ZkZXYsIFZJUlRJT19CQUxMT09OX0ZfRlJFRV9QQUdFX0hJTlQpKSB7CiYjNDM7CQlzcGluX2xvY2tfaXJxKCZhbXA7dmItJmd0O2ZyZWVfcGFnZV9saXN0X2xvY2spOwomIzQzOwkJX19yZXR1cm5fZnJlZV9wYWdlc190b19tbSh2YiwgVUxPTkdfTUFYKTsKJiM0MzsJCXNwaW5fdW5sb2NrX2lycSgmYW1wO3ZiLSZndDtmcmVlX3BhZ2VfbGlzdF9sb2NrKTsKJiM0MzsJfQogCiAJLyogTm93IHdlIHJlc2V0IHRoZSBkZXZpY2Ugc28gd2UgY2FuIGNsZWFuIHVwIHRoZSBxdWV1ZXMuICovCiAJdmlydGlvX3Jlc2V0X2RldmljZSh2Yi0mZ3Q7dmRldik7CkBAIC0xMTMzLDYgJiM0MzsxMTU4LDEwIEBAIHN0YXRpYyBpbnQgdmlydGJhbGxvb25fZnJlZXplKHN0cnVjdCB2aXJ0aW9fZGV2aWNlICp2ZGV2KQogCSAqIFRoZSB3b3JrcXVldWUgaXMgYWxyZWFkeSBmcm96ZW4gYnkgdGhlIFBNIGNvcmUgYmVmb3JlIHRoaXMKIAkgKiBmdW5jdGlvbiBpcyBjYWxsZWQuCiAJICovCiYjNDM7CXNwaW5fbG9ja19pcnEoJmFtcDt2Yi0mZ3Q7ZnJlZV9wYWdlX2xpc3RfbG9jayk7CiYjNDM7CVdSSVRFX09OQ0UodmItJmd0O3N1c3BlbmRlZCwgdHJ1ZSk7CiYjNDM7CXNwaW5fdW5sb2NrX2lycSgmYW1wO3ZiLSZndDtmcmVlX3BhZ2VfbGlzdF9sb2NrKTsKJiM0MzsKIAlyZW1vdmVfY29tbW9uKHZiKTsKIAlyZXR1cm4gMDsKIH0KQEAgLTExNDgsNiAmIzQzOzExNzcsMTAgQEAgc3RhdGljIGludCB2aXJ0YmFsbG9vbl9yZXN0b3JlKHN0cnVjdCB2aXJ0aW9fZGV2aWNlICp2ZGV2KQogCiAJdmlydGlvX2RldmljZV9yZWFkeSh2ZGV2KTsKIAomIzQzOwlzcGluX2xvY2tfaXJxKCZhbXA7dmItJmd0O2ZyZWVfcGFnZV9saXN0X2xvY2spOwomIzQzOwlXUklURV9PTkNFKHZiLSZndDtzdXNwZW5kZWQsIGZhbHNlKTsKJiM0MzsJc3Bpbl91bmxvY2tfaXJxKCZhbXA7dmItJmd0O2ZyZWVfcGFnZV9saXN0X2xvY2spOwomIzQzOwogCWlmICh0b3dhcmRzX3RhcmdldCh2YikpCiAJCXZpcnRiYWxsb29uX2NoYW5nZWQodmRldik7CiAJdXBkYXRlX2JhbGxvb25fc2l6ZSh2Yik7CmRpZmYgLS1naXQgYS9tbS9wYWdlX3JlcG9ydGluZy5jIGIvbW0vcGFnZV9yZXBvcnRpbmcuYwppbmRleCA3NDE4ZjJlNTAwYmI0OC4uNGRjNmY0Yjg1MjIzOTggMTAwNjQ0Ci0tLSBhL21tL3BhZ2VfcmVwb3J0aW5nLmMKJiM0MzsmIzQzOyYjNDM7IGIvbW0vcGFnZV9yZXBvcnRpbmcuYwpAQCAtODAsNyAmIzQzOzgwLDggQEAgX19wYWdlX3JlcG9ydGluZ19yZXF1ZXN0KHN0cnVjdCBwYWdlX3JlcG9ydGluZ19kZXZfaW5mbyAqcHJkZXYpCiAJICogbm93IHdlIGFyZSBsaW1pdGluZyB0aGlzIHRvIHJ1bm5pbmcgbm8gbW9yZSB0aGFuIG9uY2UgZXZlcnkKIAkgKiBjb3VwbGUgb2Ygc2Vjb25kcy4KIAkgKi8KLQlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJmFtcDtwcmRldi0mZ3Q7d29yaywgUEFHRV9SRVBPUlRJTkdfREVMQVkpOwomIzQzOwlxdWV1ZV9kZWxheWVkX3dvcmsoc3lzdGVtX2ZyZWV6YWJsZV93cSwgJmFtcDtwcmRldi0mZ3Q7d29yaywKJiM0MzsJCQkgICBQQUdFX1JFUE9SVElOR19ERUxBWSk7CiB9CiAKIC8qIG5vdGlmeSBwcmRldiBvZiBmcmVlIHBhZ2UgcmVwb3J0aW5nIHJlcXVlc3QgKi8KQEAgLTM0Myw3ICYjNDM7MzQ0LDggQEAgc3RhdGljIHZvaWQgcGFnZV9yZXBvcnRpbmdfcHJvY2VzcyhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJICovCiAJc3RhdGUgPSBhdG9taWNfY21weGNoZygmYW1wO3ByZGV2LSZndDtzdGF0ZSwgc3RhdGUsIFBBR0VfUkVQT1JUSU5HX0lETEUpOwogCWlmIChzdGF0ZSA9PSBQQUdFX1JFUE9SVElOR19SRVFVRVNURUQpCi0JCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmYW1wO3ByZGV2LSZndDt3b3JrLCBQQUdFX1JFUE9SVElOR19ERUxBWSk7CiYjNDM7CQlxdWV1ZV9kZWxheWVkX3dvcmsoc3lzdGVtX2ZyZWV6YWJsZV93cSwgJmFtcDtwcmRldi0mZ3Q7d29yaywKJiM0MzsJCQkJICAgUEFHRV9SRVBPUlRJTkdfREVMQVkpOwogfQogCiBzdGF0aWMgREVGSU5FX01VVEVYKHBhZ2VfcmVwb3J0aW5nX211dGV4KTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMDM6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzU5NwoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDM1NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIFRhcmdldCBJZGVudGlmaWNhdGlvbjogVmlydGlvIEJhbGxvb24gYW5kIFBhZ2UgUmVwb3J0aW5nKioKCk9rYXksIHNvIEkmIzM5O3ZlIGdvdCBhIHBhdGNoIGhlcmUgdGhhdCYjMzk7cyBtYWtpbmcgc29tZSBtb2RpZmljYXRpb25zIHdpdGhpbiBgZHJpdmVycy92aXJ0aW8vdmlydGlvX2JhbGxvb24uY2AgYW5kIGBtbS9wYWdlX3JlcG9ydGluZy5jYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCAmIzM0O0lzIHRoaXMgZnV6ei13b3J0aHk/JiMzNDsgSXQgbG9va3MgbGlrZSB0aGV5JiMzOTt2ZSBhZGRlZCBhIGBzdXNwZW5kZWRgIGZsYWcgdG8gdGhlIGBzdHJ1Y3QgdmlydGlvX2JhbGxvb25gIHRvIGVzc2VudGlhbGx5IGJsb2NrIHRoZSBzaHJpbmtlciBmcm9tIHJ1bm5pbmcgd2hlbiB0aGUgZGV2aWNlIGlzIHN1c3BlbmRlZC4gVGhleSYjMzk7dmUgYWxzbyB1cGRhdGVkIGBwYWdlX3JlcG9ydGluZ19wcm9jZXNzYCBhbmQgYF9fcGFnZV9yZXBvcnRpbmdfcmVxdWVzdGAgaW4gYG1tL3BhZ2VfcmVwb3J0aW5nLmNgIHRvIHVzZSBgc3lzdGVtX2ZyZWV6YWJsZV93cWAgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCB3b3JrcXVldWUuCgpHaXZlbiB0aGVzZSBjaGFuZ2VzLCBpdCYjMzk7cyBwcmV0dHkgY2xlYXIgdGhhdCB0aGlzIHdhcnJhbnRzIGEgZnV6emluZyBlZmZvcnQuIFRoZSB2aXJ0aW8gYmFsbG9vbiBkcml2ZXIgaXMgYSBzb2xpZCB0YXJnZXQgYmVjYXVzZSBvZiBpdHMgcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIOKAkyB0aGluayBRRU1VIGFuZCB0aGUgbGlrZS4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyDigJMgYSBmbGFnIGFkZGl0aW9uIGFuZCB3b3JrcXVldWUgdXBkYXRlIOKAkyB3aGljaCBhcmUgb2Z0ZW4gZnJ1aXRmdWwgYXJlYXMgZm9yIGZ1enppbmcuCgpOb3csIGxldCYjMzk7cyBwaW5wb2ludCB0aGUgc3BlY2lmaWMgZnVuY3Rpb25zIHRoYXQgbmVlZCB0aGUgbW9zdCBmb2N1cy4gV2l0aGluIGBkcml2ZXJzL3ZpcnRpby92aXJ0aW9fYmFsbG9vbi5jYCwgSSYjMzk7bGwgYmUgbG9va2luZyBjbG9zZWx5IGF0IGByZXR1cm5fZnJlZV9wYWdlc190b19tbWAsIGB2aXJ0aW9fYmFsbG9vbl9zaHJpbmtlcl9zY2FuYCwgYHZpcnRpb19iYWxsb29uX3Nocmlua2VyX2NvdW50YCwgYHJlbW92ZV9jb21tb25gLCBgdmlydGJhbGxvb25fZnJlZXplYCwgYW5kIGB2aXJ0YmFsbG9vbl9yZXN0b3JlYC4gT3ZlciBpbiBgbW0vcGFnZV9yZXBvcnRpbmcuY2AsIG15IGF0dGVudGlvbiB3aWxsIGJlIG9uIGBfX3BhZ2VfcmVwb3J0aW5nX3JlcXVlc3RgIGFuZCBgcGFnZV9yZXBvcnRpbmdfcHJvY2Vzc2AuCgpGaW5hbGx5LCBqdXN0IGEgcXVpY2sgc2FuaXR5IGNoZWNrIG9uIHRoZSBjb25maWdzOiBgQ09ORklHX1ZJUlRJT19CQUxMT09OYCBmb3IgdGhlIHZpcnRpbyBiYWxsb29uIGNoYW5nZXMgYW5kIGBDT05GSUdfUEFHRV9SRVBPUlRJTkdgIGZvciB0aGUgcGFnZSByZXBvcnRpbmcgc3R1ZmYuIExvb2tzIGxpa2Ugd2UgYXJlIGdvb2QgdG8gZ28uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMDM6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7VklSVElPX0JBTExPT04mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3ZpcnRpby9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvdmlydGlvL0tjb25maWc9MTAxPWNvbmZpZyBWSVJUSU9fUE1FTVxuLS1cbmRyaXZlcnMvdmlydGlvL0tjb25maWctMTExLVxuZHJpdmVycy92aXJ0aW8vS2NvbmZpZzoxMTI6Y29uZmlnIFZJUlRJT19CQUxMT09OXG5kcml2ZXJzL3ZpcnRpby9LY29uZmlnLTExMy1cdHRyaXN0YXRlIFwmIzM0O1ZpcnRpbyBiYWxsb29uIGRyaXZlclwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAzOjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ0NjkKCQkJCQkJCW91dHB1dDogMjgKCQkJCQkJCXRob3VnaHRzOiAxMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHdyaXR0ZW4gaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqSW5pdGlhbCBDaGVja3BvaW50OiBQQUdFX1JFUE9SVElORyoqCgpSaWdodCwgbGV0JiMzOTtzIHRha2UgYSBsb29rIGF0IGBQQUdFX1JFUE9SVElOR2AuIEl0JiMzOTtzIG15IGdvLXRvIGZvciB1bmRlcnN0YW5kaW5nIHRoZSBjdXJyZW50IGRhdGEgbGFuZHNjYXBlLiBJIG5lZWQgdG8gZ2V0IGEgYmFzZWxpbmUgYmVmb3JlIEkgY2FuIHN0YXJ0IHRvIGFuYWx5c2UgdGhlIG1vcmUgY29tcGxleCBpc3N1ZXMuIFdoYXQgc3BlY2lmaWMgcXVlc3Rpb25zIG9yIHByb2JsZW0gaXMgaXQgcmVsYXRlZCB0bz8KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwMzo0ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtQQUdFX1JFUE9SVElORyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O21tL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bW0vS2NvbmZpZz02Njk9Y29uZmlnIENPTVBBQ1RfVU5FVklDVEFCTEVfREVGQVVMVFxuLS1cbm1tL0tjb25maWctNjc2LSMgc3VwcG9ydCBmb3IgZnJlZSBwYWdlIHJlcG9ydGluZ1xubW0vS2NvbmZpZzo2Nzc6Y29uZmlnIFBBR0VfUkVQT1JUSU5HXG5tbS9LY29uZmlnLTY3OC1cdGJvb2wgXCYjMzQ7RnJlZSBwYWdlIHJlcG9ydGluZ1wmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAzOjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ2ODIKCQkJCQkJCW91dHB1dDogMzEKCQkJCQkJCXRob3VnaHRzOiAyMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgaXNzdWUgbXlzZWxmOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBWSVJUSU9fQkFMTE9PTiBhbmQgUEFHRV9SRVBPUlRJTkcgRGVwZW5kZW5jeSoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gcXVpY2tseSBkZXRlcm1pbmUgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGBWSVJUSU9fQkFMTE9PTmAgYW5kIGBQQUdFX1JFUE9SVElOR2AuIE15IGluaXRpYWwgaHVuY2ggaXMgdGhhdCBgVklSVElPX0JBTExPT05gIG1pZ2h0ICppbXBseSogb3IgZXZlbiBkaXJlY3RseSBzZWxlY3QgYFBBR0VfUkVQT1JUSU5HYC4gSXQmIzM5O3MgYSBmYWlybHkgY29tbW9uIHBhdHRlcm4g4oCTIGEgZmVhdHVyZSBlbmFibGluZyBzb21ldGhpbmcgbGlrZSBiYWxsb29uaW5nIG9mdGVuIG5lZWRzIGEgd2F5IHRvIGFjdHVhbGx5IHJlcG9ydCBwYWdlIGluZm9ybWF0aW9uIHRvIHRoZSBob3N0LiBJIG5lZWQgdG8gY29uZmlybSB0aGlzIHF1aWNrbHkuIEkgbmVlZCB0byBjaGVjayB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBmaWxlcywgbWF5YmUgaW4gdGhlIGtlcm5lbCBzb3VyY2Ugb3IgcmVsZXZhbnQgYnVpbGQgY29uZmlndXJhdGlvbiB0byBzZWUgaWYgdGhlcmUgaXMgYW55IHNlbGVjdGlvbiBoYXBwZW5pbmcuIEtub3dpbmcgdGhlIGFyY2hpdGVjdHVyZSwgSSYjMzk7bGwgcHJvYmFibHkgbG9vayBpbnRvIGFueSBkZXBlbmRlbmNpZXMsIGFuZCB0aGVuIGNvbmZpcm0gaWYgdGhhdCBpcyB0aGUgZXhhY3QgYmVoYXZpb3Igb2YgdGhlIGNvbmZpZ3VyYXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMDM6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7UEFHRV9SRVBPUlRJTkcmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3ZpcnRpby9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvdmlydGlvL0tjb25maWc9MTEyPWNvbmZpZyBWSVJUSU9fQkFMTE9PTlxuLS1cbmRyaXZlcnMvdmlydGlvL0tjb25maWctMTE1LVx0c2VsZWN0IEJBTExPT05cbmRyaXZlcnMvdmlydGlvL0tjb25maWc6MTE2Olx0c2VsZWN0IFBBR0VfUkVQT1JUSU5HXG5kcml2ZXJzL3ZpcnRpby9LY29uZmlnLTExNy1cdGhlbHBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwMzo0ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MDAzCgkJCQkJCQlvdXRwdXQ6IDE1NAoJCQkJCQkJdGhvdWdodHM6IDQ0MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgVGFyZ2V0IENvZGUqKgoKT2theSwgc28gdGhlIGBWSVJUSU9fQkFMTE9PTmAgY29uZmlnICppcyogc3VmZmljaWVudCwgYnV0IGxpc3RpbmcgYm90aCBgVklSVElPX0JBTExPT05gIGFuZCBgUEFHRV9SRVBPUlRJTkdgIGlzIGEgZ29vZCBpZGVhIGZvciBjbGFyaXR5LiBBY3R1YWxseSwgd2FpdCwgYFBBR0VfUkVQT1JUSU5HYCBpcyBhIGJvb2xlYW4sIGFuZCBgVklSVElPX0JBTExPT05gIGlzIGEgdHJpc3RhdGUuIFRoYXQmIzM5O3MgYSBnb29kIGRpc3RpbmN0aW9uIHRvIG1ha2UsIHNvIGxldCYjMzk7cyBnbyB3aXRoIGxpc3RpbmcgdGhlbSBib3RoLgoKTm93LCB3aGljaCBmdW5jdGlvbnMgYXJlIHRoZSBrZXkgb25lcyB0byBmb2N1cyBvdXIgZnV6emluZyBlZmZvcnRzPyBMZXQmIzM5O3Mgc2VlLi4uIGB2aXJ0YmFsbG9vbl9mcmVlemVgLCBgdmlydGJhbGxvb25fcmVzdG9yZWAsIGB2aXJ0aW9fYmFsbG9vbl9zaHJpbmtlcl9zY2FuYCwgYHZpcnRpb19iYWxsb29uX3Nocmlua2VyX2NvdW50YCwgYHJldHVybl9mcmVlX3BhZ2VzX3RvX21tYCwgYF9fcGFnZV9yZXBvcnRpbmdfcmVxdWVzdGAsIGFuZCBgcGFnZV9yZXBvcnRpbmdfcHJvY2Vzc2AuCgpIb2xkIG9uIGEgc2Vjb25kLi4uIGB2aXJ0YmFsbG9vbl9mcmVlemVgIGFuZCBgdmlydGJhbGxvb25fcmVzdG9yZWAgYXJlIFBvd2VyIE1hbmFnZW1lbnQgKFBNKSBjYWxsYmFja3MuIENhbiBzeXprYWxsZXIgYWN0dWFsbHkgZnV6eiB0aG9zZT8gSSB0aGluayBpdCBjYW4sIHRocm91Z2ggc3lzZnMgb3Igc2ltaWxhciBtZXRob2RzLiBZZXMsIGl0IGNhbi4gQW5kIGB2aXJ0aW9fYmFsbG9vbl9zaHJpbmtlcl9zY2FuYCBhbmQgYHZpcnRpb19iYWxsb29uX3Nocmlua2VyX2NvdW50YCBhcmUgc2hyaW5rZXIgY2FsbGJhY2tzLCBsaWtlbHkgdHJpZ2dlcmVkIGJ5IG1lbW9yeSBwcmVzc3VyZS4gYHJldHVybl9mcmVlX3BhZ2VzX3RvX21tYCBpcyBsaWtlbHkgY2FsbGVkIGZyb20gZWl0aGVyIHRoZSBzaHJpbmtlciBvciBkdXJpbmcgcGFnZSByZW1vdmFsLiBUaGVuIHdlIGhhdmUgYF9fcGFnZV9yZXBvcnRpbmdfcmVxdWVzdGAgYW5kIGBwYWdlX3JlcG9ydGluZ19wcm9jZXNzYCwgdHJpZ2dlcmVkIGRpcmVjdGx5IGJ5IHBhZ2UgcmVwb3J0aW5nIGl0c2VsZi4KCkhtbSwgYW55IG90aGVyIGNvbmZpZ3VyYXRpb24gZGVwZW5kZW5jaWVzIHRvIGNvbnNpZGVyPyBMZXQmIzM5O3Mgc2VlLi4uIGBWSVJUSU9fQkFMTE9PTmAgZGVwZW5kcyBvbiBgVklSVElPYCBhcyBhIHdob2xlLCBidXQgYFBBR0VfUkVQT1JUSU5HYCBkb2VzbiYjMzk7dCBoYXZlIGFueSBzcGVjaWZpYyBkZXBlbmRlbmNpZXMuIE9rYXksIHRoYXQmIzM5O3Mgc3RyYWlnaHRmb3J3YXJkLgoKVGltZSB0byBjYWxsIHRoZSByZXN1bHRzLiBJdCYjMzk7cyBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmcgdGhpcywgYW5kIGhlcmUmIzM5O3Mgd2h5OiB0aGlzIHBhdGNoIGZ1bmRhbWVudGFsbHkgY2hhbmdlcyBob3cgdGhlIHZpcnRpbyBiYWxsb29uIGRyaXZlciBhbmQgcGFnZSByZXBvcnRpbmcgaW50ZXJhY3Qgd2l0aCBzdXNwZW5kL3Jlc3VtZS4gV2UmIzM5O3JlIHRhbGtpbmcgYWJvdXQgYSBuZXcgJiMzNDtzdXNwZW5kZWQmIzM0OyBmbGFnLCBhbmQgY2hhbmdlcyB0byB0aGUgd29ya3F1ZXVlIHVzZWQgZm9yIHBhZ2UgcmVwb3J0aW5nLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHJlYWNoYWJsZSBjb2RlLCBhbmQgdGhhdCYjMzk7cyBleGFjdGx5IHdoYXQgd2Ugd2FudCB0byB0ZXN0LiBTbyBoZXJlIGFyZSB0aGUgZGV0YWlsczoKCiogICAqKldvcnRoRnV6emluZyoqOiB0cnVlCiogICAqKkVuYWJsZUNvbmZpZ3MqKjogXFsmIzM0O1ZJUlRJT1xfQkFMTE9PTiYjMzQ7LCAmIzM0O1BBR0VcX1JFUE9SVElORyYjMzQ7XF0KKiAgICoqRm9jdXNTeW1ib2xzKio6IFxbJiMzNDt2aXJ0YmFsbG9vblxfZnJlZXplJiMzNDssICYjMzQ7dmlydGJhbGxvb25cX3Jlc3RvcmUmIzM0OywgJiMzNDt2aXJ0aW9cX2JhbGxvb25cX3Nocmlua2VyXF9zY2FuJiMzNDssICYjMzQ7dmlydGlvXF9iYWxsb29uXF9zaHJpbmtlclxfY291bnQmIzM0OywgJiMzNDtyZXR1cm5cX2ZyZWVcX3BhZ2VzXF90b1xfbW0mIzM0OywgJiMzNDtcX1xfcGFnZVxfcmVwb3J0aW5nXF9yZXF1ZXN0JiMzNDssICYjMzQ7cGFnZVxfcmVwb3J0aW5nXF9wcm9jZXNzJiMzNDtcXQoqICAgKipSZWFzb25pbmcqKjogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHZpcnRpbyBiYWxsb29uIGRyaXZlciBhbmQgcGFnZSByZXBvcnRpbmcgdG8gaGFuZGxlIHN1c3BlbmQvcmVzdW1lIHByb3Blcmx5LiBJdCBhZGRzIGEgc3VzcGVuZGVkIGZsYWcgYW5kIGNoYW5nZXMgdGhlIHdvcmtxdWV1ZSB1c2VkIGZvciBwYWdlIHJlcG9ydGluZy4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiByZWFjaGFibGUgY29kZS4mIzM0OwoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwMzo0ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VklSVElPX0JBTExPT04mIzM0OywKICAgICYjMzQ7UEFHRV9SRVBPUlRJTkcmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt2aXJ0YmFsbG9vbl9mcmVlemUmIzM0OywKICAgICYjMzQ7dmlydGJhbGxvb25fcmVzdG9yZSYjMzQ7LAogICAgJiMzNDt2aXJ0aW9fYmFsbG9vbl9zaHJpbmtlcl9zY2FuJiMzNDssCiAgICAmIzM0O3ZpcnRpb19iYWxsb29uX3Nocmlua2VyX2NvdW50JiMzNDssCiAgICAmIzM0O3JldHVybl9mcmVlX3BhZ2VzX3RvX21tJiMzNDssCiAgICAmIzM0O19fcGFnZV9yZXBvcnRpbmdfcmVxdWVzdCYjMzQ7LAogICAgJiMzNDtwYWdlX3JlcG9ydGluZ19wcm9jZXNzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSB2aXJ0aW8gYmFsbG9vbiBkcml2ZXIgYW5kIHBhZ2UgcmVwb3J0aW5nIHRvIGhhbmRsZSBzdXNwZW5kL3Jlc3VtZSBwcm9wZXJseS4gSXQgYWRkcyBhIHN1c3BlbmRlZCBmbGFnIGFuZCBjaGFuZ2VzIHRoZSB3b3JrcXVldWUgdXNlZCBmb3IgcGFnZSByZXBvcnRpbmcuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcmVhY2hhYmxlIGNvZGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1ZJUlRJT19CQUxMT09OJiMzNDssCiAgICAmIzM0O1BBR0VfUkVQT1JUSU5HJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dmlydGJhbGxvb25fZnJlZXplJiMzNDssCiAgICAmIzM0O3ZpcnRiYWxsb29uX3Jlc3RvcmUmIzM0OywKICAgICYjMzQ7dmlydGlvX2JhbGxvb25fc2hyaW5rZXJfc2NhbiYjMzQ7LAogICAgJiMzNDt2aXJ0aW9fYmFsbG9vbl9zaHJpbmtlcl9jb3VudCYjMzQ7LAogICAgJiMzNDtyZXR1cm5fZnJlZV9wYWdlc190b19tbSYjMzQ7LAogICAgJiMzNDtfX3BhZ2VfcmVwb3J0aW5nX3JlcXVlc3QmIzM0OywKICAgICYjMzQ7cGFnZV9yZXBvcnRpbmdfcHJvY2VzcyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgdmlydGlvIGJhbGxvb24gZHJpdmVyIGFuZCBwYWdlIHJlcG9ydGluZyB0byBoYW5kbGUgc3VzcGVuZC9yZXN1bWUgcHJvcGVybHkuIEl0IGFkZHMgYSBzdXNwZW5kZWQgZmxhZyBhbmQgY2hhbmdlcyB0aGUgd29ya3F1ZXVlIHVzZWQgZm9yIHBhZ2UgcmVwb3J0aW5nLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHJlYWNoYWJsZSBjb2RlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMTdUMDM6NDg6MTEuNDExMzI2NDc3WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjA1MzQ2MjMwMzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVklSVElPX0JBTExPT05cIixcbiAgICBcIlBBR0VfUkVQT1JUSU5HXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidmlydGJhbGxvb25fZnJlZXplXCIsXG4gICAgXCJ2aXJ0YmFsbG9vbl9yZXN0b3JlXCIsXG4gICAgXCJ2aXJ0aW9fYmFsbG9vbl9zaHJpbmtlcl9zY2FuXCIsXG4gICAgXCJ2aXJ0aW9fYmFsbG9vbl9zaHJpbmtlcl9jb3VudFwiLFxuICAgIFwicmV0dXJuX2ZyZWVfcGFnZXNfdG9fbW1cIixcbiAgICBcIl9fcGFnZV9yZXBvcnRpbmdfcmVxdWVzdFwiLFxuICAgIFwicGFnZV9yZXBvcnRpbmdfcHJvY2Vzc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSB2aXJ0aW8gYmFsbG9vbiBkcml2ZXIgYW5kIHBhZ2UgcmVwb3J0aW5nIHRvIGhhbmRsZSBzdXNwZW5kL3Jlc3VtZSBwcm9wZXJseS4gSXQgYWRkcyBhIHN1c3BlbmRlZCBmbGFnIGFuZCBjaGFuZ2VzIHRoZSB3b3JrcXVldWUgdXNlZCBmb3IgcGFnZSByZXBvcnRpbmcuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcmVhY2hhYmxlIGNvZGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDAzOjQ4OjExLjQxMTMzMzI3N1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjY2ODU3MTAwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZDk1ZGNjYmVjNDM3YzE0NDY3ZmEwMGYyZTkzNGY4NjQ4NDNjNWY5NVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIEp1bCAxNyAwMzo0ODowOSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpcnRpby92aXJ0aW9fYmFsbG9vbi5jIGIvZHJpdmVycy92aXJ0aW8vdmlydGlvX2JhbGxvb24uY1xcbmluZGV4IDA4OGIzYTBlNmNlNmNjLi4zOGUxMTY2YTY0NzZjYyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL3ZpcnRpby92aXJ0aW9fYmFsbG9vbi5jXFxuKysrIGIvZHJpdmVycy92aXJ0aW8vdmlydGlvX2JhbGxvb24uY1xcbkBAIC02OCw2ICs2OCw4IEBAIHN0cnVjdCB2aXJ0aW9fYmFsbG9vbiB7XFxuIFxcdC8qIFByZXZlbnQgdXBkYXRpbmcgYmFsbG9vbiB3aGVuIGl0IGlzIGJlaW5nIGNhbmNlbGVkLiAqL1xcbiBcXHRzcGlubG9ja190IHN0b3BfdXBkYXRlX2xvY2s7XFxuIFxcdGJvb2wgc3RvcF91cGRhdGU7XFxuK1xcdC8qIFByZXZlbnQgc2hyaW5rZXIgZnJvbSBydW5uaW5nIHdoaWxlIGRldmljZSBpcyBzdXNwZW5kZWQuICovXFxuK1xcdGJvb2wgc3VzcGVuZGVkO1xcbiBcXHQvKiBCaXRtYXAgdG8gaW5kaWNhdGUgaWYgcmVhZGluZyB0aGUgcmVsYXRlZCBjb25maWcgZmllbGRzIGFyZSBuZWVkZWQgKi9cXG4gXFx0dW5zaWduZWQgbG9uZyBjb25maWdfcmVhZF9iaXRtYXA7XFxuIFxcbkBAIC00NzEsOSArNDczLDkgQEAgc3RhdGljIGlubGluZSBzNjQgdG93YXJkc190YXJnZXQoc3RydWN0IHZpcnRpb19iYWxsb29uICp2YilcXG4gXFx0cmV0dXJuIHRhcmdldCAtIHZiLVxcdTAwM2VudW1fcGFnZXM7XFxuIH1cXG4gXFxuLS8qIEdpdmVzIGJhY2sgQG51bV90b19yZXR1cm4gYmxvY2tzIG9mIGZyZWUgcGFnZXMgdG8gbW0uICovXFxuLXN0YXRpYyB1bnNpZ25lZCBsb25nIHJldHVybl9mcmVlX3BhZ2VzX3RvX21tKHN0cnVjdCB2aXJ0aW9fYmFsbG9vbiAqdmIsXFxuLVxcdFxcdFxcdFxcdFxcdCAgICAgdW5zaWduZWQgbG9uZyBudW1fdG9fcmV0dXJuKVxcbisvKiBIZWxwZXI6IG11c3QgYmUgY2FsbGVkIHdpdGggZnJlZV9wYWdlX2xpc3RfbG9jayBoZWxkICovXFxuK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9fcmV0dXJuX2ZyZWVfcGFnZXNfdG9fbW0oc3RydWN0IHZpcnRpb19iYWxsb29uICp2YixcXG4rXFx0XFx0XFx0XFx0XFx0ICAgICAgIHVuc2lnbmVkIGxvbmcgbnVtX3RvX3JldHVybilcXG4ge1xcbiBcXHR1bnNpZ25lZCBsb25nIG51bV9yZXR1cm5lZCA9IDA7XFxuIFxcdHN0cnVjdCBwYWdlICpwYWdlLCAqbmV4dDtcXG5AQCAtNDgxLDggKzQ4Myw2IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIHJldHVybl9mcmVlX3BhZ2VzX3RvX21tKHN0cnVjdCB2aXJ0aW9fYmFsbG9vbiAqdmIsXFxuIFxcdGlmICh1bmxpa2VseSghbnVtX3RvX3JldHVybikpXFxuIFxcdFxcdHJldHVybiAwO1xcbiBcXG4tXFx0c3Bpbl9sb2NrX2lycShcXHUwMDI2dmItXFx1MDAzZWZyZWVfcGFnZV9saXN0X2xvY2spO1xcbi1cXG4gXFx0bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHBhZ2UsIG5leHQsIFxcdTAwMjZ2Yi1cXHUwMDNlZnJlZV9wYWdlX2xpc3QsIGxydSkge1xcbiBcXHRcXHRsaXN0X2RlbChcXHUwMDI2cGFnZS1cXHUwMDNlbHJ1KTtcXG4gXFx0XFx0X19mcmVlX3BhZ2VzKHBhZ2UsIFZJUlRJT19CQUxMT09OX0hJTlRfQkxPQ0tfT1JERVIpO1xcbkBAIC00OTAsMTEgKzQ5MCwyNyBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyByZXR1cm5fZnJlZV9wYWdlc190b19tbShzdHJ1Y3QgdmlydGlvX2JhbGxvb24gKnZiLFxcbiBcXHRcXHRcXHRicmVhaztcXG4gXFx0fVxcbiBcXHR2Yi1cXHUwMDNlbnVtX2ZyZWVfcGFnZV9ibG9ja3MgLT0gbnVtX3JldHVybmVkO1xcbi1cXHRzcGluX3VubG9ja19pcnEoXFx1MDAyNnZiLVxcdTAwM2VmcmVlX3BhZ2VfbGlzdF9sb2NrKTtcXG4gXFxuIFxcdHJldHVybiBudW1fcmV0dXJuZWQ7XFxuIH1cXG4gXFxuKy8qIEdpdmVzIGJhY2sgQG51bV90b19yZXR1cm4gYmxvY2tzIG9mIGZyZWUgcGFnZXMgdG8gbW0uICovXFxuK3N0YXRpYyB1bnNpZ25lZCBsb25nIHJldHVybl9mcmVlX3BhZ2VzX3RvX21tKHN0cnVjdCB2aXJ0aW9fYmFsbG9vbiAqdmIsXFxuK1xcdFxcdFxcdFxcdFxcdCAgICAgdW5zaWduZWQgbG9uZyBudW1fdG9fcmV0dXJuKVxcbit7XFxuK1xcdHVuc2lnbmVkIGxvbmcgcmV0O1xcbitcXG4rXFx0c3Bpbl9sb2NrX2lycShcXHUwMDI2dmItXFx1MDAzZWZyZWVfcGFnZV9saXN0X2xvY2spO1xcbitcXHRpZiAodmItXFx1MDAzZXN1c3BlbmRlZCkge1xcbitcXHRcXHRzcGluX3VubG9ja19pcnEoXFx1MDAyNnZiLVxcdTAwM2VmcmVlX3BhZ2VfbGlzdF9sb2NrKTtcXG4rXFx0XFx0cmV0dXJuIDA7XFxuK1xcdH1cXG4rXFx0cmV0ID0gX19yZXR1cm5fZnJlZV9wYWdlc190b19tbSh2YiwgbnVtX3RvX3JldHVybik7XFxuK1xcdHNwaW5fdW5sb2NrX2lycShcXHUwMDI2dmItXFx1MDAzZWZyZWVfcGFnZV9saXN0X2xvY2spO1xcbitcXG4rXFx0cmV0dXJuIHJldDtcXG4rfVxcbitcXG4gc3RhdGljIHZvaWQgdmlydGlvX2JhbGxvb25fcXVldWVfZnJlZV9wYWdlX3dvcmsoc3RydWN0IHZpcnRpb19iYWxsb29uICp2YilcXG4ge1xcbiBcXHRpZiAoIXZpcnRpb19oYXNfZmVhdHVyZSh2Yi1cXHUwMDNldmRldiwgVklSVElPX0JBTExPT05fRl9GUkVFX1BBR0VfSElOVCkpXFxuQEAgLTg3MSw2ICs4ODcsOSBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyB2aXJ0aW9fYmFsbG9vbl9zaHJpbmtlcl9zY2FuKHN0cnVjdCBzaHJpbmtlciAqc2hyaW5rZXIsXFxuIHtcXG4gXFx0c3RydWN0IHZpcnRpb19iYWxsb29uICp2YiA9IHNocmlua2VyLVxcdTAwM2Vwcml2YXRlX2RhdGE7XFxuIFxcbitcXHRpZiAoUkVBRF9PTkNFKHZiLVxcdTAwM2VzdXNwZW5kZWQpKVxcbitcXHRcXHRyZXR1cm4gMDtcXG4rXFxuIFxcdHJldHVybiBzaHJpbmtfZnJlZV9wYWdlcyh2Yiwgc2MtXFx1MDAzZW5yX3RvX3NjYW4pO1xcbiB9XFxuIFxcbkBAIC04NzksNiArODk4LDkgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgdmlydGlvX2JhbGxvb25fc2hyaW5rZXJfY291bnQoc3RydWN0IHNocmlua2VyICpzaHJpbmtlcixcXG4ge1xcbiBcXHRzdHJ1Y3QgdmlydGlvX2JhbGxvb24gKnZiID0gc2hyaW5rZXItXFx1MDAzZXByaXZhdGVfZGF0YTtcXG4gXFxuK1xcdGlmIChSRUFEX09OQ0UodmItXFx1MDAzZXN1c3BlbmRlZCkpXFxuK1xcdFxcdHJldHVybiAwO1xcbitcXG4gXFx0cmV0dXJuIHZiLVxcdTAwM2VudW1fZnJlZV9wYWdlX2Jsb2NrcyAqIFZJUlRJT19CQUxMT09OX0hJTlRfQkxPQ0tfUEFHRVM7XFxuIH1cXG4gXFxuQEAgLTEwODksOCArMTExMSwxMSBAQCBzdGF0aWMgdm9pZCByZW1vdmVfY29tbW9uKHN0cnVjdCB2aXJ0aW9fYmFsbG9vbiAqdmIpXFxuIFxcdHVwZGF0ZV9iYWxsb29uX3NpemUodmIpO1xcbiBcXG4gXFx0LyogVGhlcmUgbWlnaHQgYmUgZnJlZSBwYWdlcyB0aGF0IGFyZSBiZWluZyByZXBvcnRlZDogcmVsZWFzZSB0aGVtLiAqL1xcbi1cXHRpZiAodmlydGlvX2hhc19mZWF0dXJlKHZiLVxcdTAwM2V2ZGV2LCBWSVJUSU9fQkFMTE9PTl9GX0ZSRUVfUEFHRV9ISU5UKSlcXG4tXFx0XFx0cmV0dXJuX2ZyZWVfcGFnZXNfdG9fbW0odmIsIFVMT05HX01BWCk7XFxuK1xcdGlmICh2aXJ0aW9faGFzX2ZlYXR1cmUodmItXFx1MDAzZXZkZXYsIFZJUlRJT19CQUxMT09OX0ZfRlJFRV9QQUdFX0hJTlQpKSB7XFxuK1xcdFxcdHNwaW5fbG9ja19pcnEoXFx1MDAyNnZiLVxcdTAwM2VmcmVlX3BhZ2VfbGlzdF9sb2NrKTtcXG4rXFx0XFx0X19yZXR1cm5fZnJlZV9wYWdlc190b19tbSh2YiwgVUxPTkdfTUFYKTtcXG4rXFx0XFx0c3Bpbl91bmxvY2tfaXJxKFxcdTAwMjZ2Yi1cXHUwMDNlZnJlZV9wYWdlX2xpc3RfbG9jayk7XFxuK1xcdH1cXG4gXFxuIFxcdC8qIE5vdyB3ZSByZXNldCB0aGUgZGV2aWNlIHNvIHdlIGNhbiBjbGVhbiB1cCB0aGUgcXVldWVzLiAqL1xcbiBcXHR2aXJ0aW9fcmVzZXRfZGV2aWNlKHZiLVxcdTAwM2V2ZGV2KTtcXG5AQCAtMTEzMyw2ICsxMTU4LDEwIEBAIHN0YXRpYyBpbnQgdmlydGJhbGxvb25fZnJlZXplKHN0cnVjdCB2aXJ0aW9fZGV2aWNlICp2ZGV2KVxcbiBcXHQgKiBUaGUgd29ya3F1ZXVlIGlzIGFscmVhZHkgZnJvemVuIGJ5IHRoZSBQTSBjb3JlIGJlZm9yZSB0aGlzXFxuIFxcdCAqIGZ1bmN0aW9uIGlzIGNhbGxlZC5cXG4gXFx0ICovXFxuK1xcdHNwaW5fbG9ja19pcnEoXFx1MDAyNnZiLVxcdTAwM2VmcmVlX3BhZ2VfbGlzdF9sb2NrKTtcXG4rXFx0V1JJVEVfT05DRSh2Yi1cXHUwMDNlc3VzcGVuZGVkLCB0cnVlKTtcXG4rXFx0c3Bpbl91bmxvY2tfaXJxKFxcdTAwMjZ2Yi1cXHUwMDNlZnJlZV9wYWdlX2xpc3RfbG9jayk7XFxuK1xcbiBcXHRyZW1vdmVfY29tbW9uKHZiKTtcXG4gXFx0cmV0dXJuIDA7XFxuIH1cXG5AQCAtMTE0OCw2ICsxMTc3LDEwIEBAIHN0YXRpYyBpbnQgdmlydGJhbGxvb25fcmVzdG9yZShzdHJ1Y3QgdmlydGlvX2RldmljZSAqdmRldilcXG4gXFxuIFxcdHZpcnRpb19kZXZpY2VfcmVhZHkodmRldik7XFxuIFxcbitcXHRzcGluX2xvY2tfaXJxKFxcdTAwMjZ2Yi1cXHUwMDNlZnJlZV9wYWdlX2xpc3RfbG9jayk7XFxuK1xcdFdSSVRFX09OQ0UodmItXFx1MDAzZXN1c3BlbmRlZCwgZmFsc2UpO1xcbitcXHRzcGluX3VubG9ja19pcnEoXFx1MDAyNnZiLVxcdTAwM2VmcmVlX3BhZ2VfbGlzdF9sb2NrKTtcXG4rXFxuIFxcdGlmICh0b3dhcmRzX3RhcmdldCh2YikpXFxuIFxcdFxcdHZpcnRiYWxsb29uX2NoYW5nZWQodmRldik7XFxuIFxcdHVwZGF0ZV9iYWxsb29uX3NpemUodmIpO1xcbmRpZmYgLS1naXQgYS9tbS9wYWdlX3JlcG9ydGluZy5jIGIvbW0vcGFnZV9yZXBvcnRpbmcuY1xcbmluZGV4IDc0MThmMmU1MDBiYjQ4Li40ZGM2ZjRiODUyMjM5OCAxMDA2NDRcXG4tLS0gYS9tbS9wYWdlX3JlcG9ydGluZy5jXFxuKysrIGIvbW0vcGFnZV9yZXBvcnRpbmcuY1xcbkBAIC04MCw3ICs4MCw4IEBAIF9fcGFnZV9yZXBvcnRpbmdfcmVxdWVzdChzdHJ1Y3QgcGFnZV9yZXBvcnRpbmdfZGV2X2luZm8gKnByZGV2KVxcbiBcXHQgKiBub3cgd2UgYXJlIGxpbWl0aW5nIHRoaXMgdG8gcnVubmluZyBubyBtb3JlIHRoYW4gb25jZSBldmVyeVxcbiBcXHQgKiBjb3VwbGUgb2Ygc2Vjb25kcy5cXG4gXFx0ICovXFxuLVxcdHNjaGVkdWxlX2RlbGF5ZWRfd29yayhcXHUwMDI2cHJkZXYtXFx1MDAzZXdvcmssIFBBR0VfUkVQT1JUSU5HX0RFTEFZKTtcXG4rXFx0cXVldWVfZGVsYXllZF93b3JrKHN5c3RlbV9mcmVlemFibGVfd3EsIFxcdTAwMjZwcmRldi1cXHUwMDNld29yayxcXG4rXFx0XFx0XFx0ICAgUEFHRV9SRVBPUlRJTkdfREVMQVkpO1xcbiB9XFxuIFxcbiAvKiBub3RpZnkgcHJkZXYgb2YgZnJlZSBwYWdlIHJlcG9ydGluZyByZXF1ZXN0ICovXFxuQEAgLTM0Myw3ICszNDQsOCBAQCBzdGF0aWMgdm9pZCBwYWdlX3JlcG9ydGluZ19wcm9jZXNzKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4gXFx0ICovXFxuIFxcdHN0YXRlID0gYXRvbWljX2NtcHhjaGcoXFx1MDAyNnByZGV2LVxcdTAwM2VzdGF0ZSwgc3RhdGUsIFBBR0VfUkVQT1JUSU5HX0lETEUpO1xcbiBcXHRpZiAoc3RhdGUgPT0gUEFHRV9SRVBPUlRJTkdfUkVRVUVTVEVEKVxcbi1cXHRcXHRzY2hlZHVsZV9kZWxheWVkX3dvcmsoXFx1MDAyNnByZGV2LVxcdTAwM2V3b3JrLCBQQUdFX1JFUE9SVElOR19ERUxBWSk7XFxuK1xcdFxcdHF1ZXVlX2RlbGF5ZWRfd29yayhzeXN0ZW1fZnJlZXphYmxlX3dxLCBcXHUwMDI2cHJkZXYtXFx1MDAzZXdvcmssXFxuK1xcdFxcdFxcdFxcdCAgIFBBR0VfUkVQT1JUSU5HX0RFTEFZKTtcXG4gfVxcbiBcXG4gc3RhdGljIERFRklORV9NVVRFWChwYWdlX3JlcG9ydGluZ19tdXRleCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDAzOjQ4OjEyLjA3OTE3MDk0NloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTk4NjY3NjQ1MzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVklSVElPX0JBTExPT05cIixcbiAgICBcIlBBR0VfUkVQT1JUSU5HXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidmlydGJhbGxvb25fZnJlZXplXCIsXG4gICAgXCJ2aXJ0YmFsbG9vbl9yZXN0b3JlXCIsXG4gICAgXCJ2aXJ0aW9fYmFsbG9vbl9zaHJpbmtlcl9zY2FuXCIsXG4gICAgXCJ2aXJ0aW9fYmFsbG9vbl9zaHJpbmtlcl9jb3VudFwiLFxuICAgIFwicmV0dXJuX2ZyZWVfcGFnZXNfdG9fbW1cIixcbiAgICBcIl9fcGFnZV9yZXBvcnRpbmdfcmVxdWVzdFwiLFxuICAgIFwicGFnZV9yZXBvcnRpbmdfcHJvY2Vzc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSB2aXJ0aW8gYmFsbG9vbiBkcml2ZXIgYW5kIHBhZ2UgcmVwb3J0aW5nIHRvIGhhbmRsZSBzdXNwZW5kL3Jlc3VtZSBwcm9wZXJseS4gSXQgYWRkcyBhIHN1c3BlbmRlZCBmbGFnIGFuZCBjaGFuZ2VzIHRoZSB3b3JrcXVldWUgdXNlZCBmb3IgcGFnZSByZXBvcnRpbmcuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcmVhY2hhYmxlIGNvZGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZDk1ZGNjYmVjNDM3YzE0NDY3ZmEwMGYyZTkzNGY4NjQ4NDNjNWY5NVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDE3IDAzOjQ4OjA5IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy92aXJ0aW8vdmlydGlvX2JhbGxvb24uYyBiL2RyaXZlcnMvdmlydGlvL3ZpcnRpb19iYWxsb29uLmNcbmluZGV4IDA4OGIzYTBlNmNlNmNjLi4zOGUxMTY2YTY0NzZjYyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvdmlydGlvL3ZpcnRpb19iYWxsb29uLmNcbisrKyBiL2RyaXZlcnMvdmlydGlvL3ZpcnRpb19iYWxsb29uLmNcbkBAIC02OCw2ICs2OCw4IEBAIHN0cnVjdCB2aXJ0aW9fYmFsbG9vbiB7XG4gXHQvKiBQcmV2ZW50IHVwZGF0aW5nIGJhbGxvb24gd2hlbiBpdCBpcyBiZWluZyBjYW5jZWxlZC4gKi9cbiBcdHNwaW5sb2NrX3Qgc3RvcF91cGRhdGVfbG9jaztcbiBcdGJvb2wgc3RvcF91cGRhdGU7XG4rXHQvKiBQcmV2ZW50IHNocmlua2VyIGZyb20gcnVubmluZyB3aGlsZSBkZXZpY2UgaXMgc3VzcGVuZGVkLiAqL1xuK1x0Ym9vbCBzdXNwZW5kZWQ7XG4gXHQvKiBCaXRtYXAgdG8gaW5kaWNhdGUgaWYgcmVhZGluZyB0aGUgcmVsYXRlZCBjb25maWcgZmllbGRzIGFyZSBuZWVkZWQgKi9cbiBcdHVuc2lnbmVkIGxvbmcgY29uZmlnX3JlYWRfYml0bWFwO1xuIFxuQEAgLTQ3MSw5ICs0NzMsOSBAQCBzdGF0aWMgaW5saW5lIHM2NCB0b3dhcmRzX3RhcmdldChzdHJ1Y3QgdmlydGlvX2JhbGxvb24gKnZiKVxuIFx0cmV0dXJuIHRhcmdldCAtIHZiLVx1MDAzZW51bV9wYWdlcztcbiB9XG4gXG4tLyogR2l2ZXMgYmFjayBAbnVtX3RvX3JldHVybiBibG9ja3Mgb2YgZnJlZSBwYWdlcyB0byBtbS4gKi9cbi1zdGF0aWMgdW5zaWduZWQgbG9uZyByZXR1cm5fZnJlZV9wYWdlc190b19tbShzdHJ1Y3QgdmlydGlvX2JhbGxvb24gKnZiLFxuLVx0XHRcdFx0XHQgICAgIHVuc2lnbmVkIGxvbmcgbnVtX3RvX3JldHVybilcbisvKiBIZWxwZXI6IG11c3QgYmUgY2FsbGVkIHdpdGggZnJlZV9wYWdlX2xpc3RfbG9jayBoZWxkICovXG4rc3RhdGljIHVuc2lnbmVkIGxvbmcgX19yZXR1cm5fZnJlZV9wYWdlc190b19tbShzdHJ1Y3QgdmlydGlvX2JhbGxvb24gKnZiLFxuK1x0XHRcdFx0XHQgICAgICAgdW5zaWduZWQgbG9uZyBudW1fdG9fcmV0dXJuKVxuIHtcbiBcdHVuc2lnbmVkIGxvbmcgbnVtX3JldHVybmVkID0gMDtcbiBcdHN0cnVjdCBwYWdlICpwYWdlLCAqbmV4dDtcbkBAIC00ODEsOCArNDgzLDYgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgcmV0dXJuX2ZyZWVfcGFnZXNfdG9fbW0oc3RydWN0IHZpcnRpb19iYWxsb29uICp2YixcbiBcdGlmICh1bmxpa2VseSghbnVtX3RvX3JldHVybikpXG4gXHRcdHJldHVybiAwO1xuIFxuLVx0c3Bpbl9sb2NrX2lycShcdTAwMjZ2Yi1cdTAwM2VmcmVlX3BhZ2VfbGlzdF9sb2NrKTtcbi1cbiBcdGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShwYWdlLCBuZXh0LCBcdTAwMjZ2Yi1cdTAwM2VmcmVlX3BhZ2VfbGlzdCwgbHJ1KSB7XG4gXHRcdGxpc3RfZGVsKFx1MDAyNnBhZ2UtXHUwMDNlbHJ1KTtcbiBcdFx0X19mcmVlX3BhZ2VzKHBhZ2UsIFZJUlRJT19CQUxMT09OX0hJTlRfQkxPQ0tfT1JERVIpO1xuQEAgLTQ5MCwxMSArNDkwLDI3IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIHJldHVybl9mcmVlX3BhZ2VzX3RvX21tKHN0cnVjdCB2aXJ0aW9fYmFsbG9vbiAqdmIsXG4gXHRcdFx0YnJlYWs7XG4gXHR9XG4gXHR2Yi1cdTAwM2VudW1fZnJlZV9wYWdlX2Jsb2NrcyAtPSBudW1fcmV0dXJuZWQ7XG4tXHRzcGluX3VubG9ja19pcnEoXHUwMDI2dmItXHUwMDNlZnJlZV9wYWdlX2xpc3RfbG9jayk7XG4gXG4gXHRyZXR1cm4gbnVtX3JldHVybmVkO1xuIH1cbiBcbisvKiBHaXZlcyBiYWNrIEBudW1fdG9fcmV0dXJuIGJsb2NrcyBvZiBmcmVlIHBhZ2VzIHRvIG1tLiAqL1xuK3N0YXRpYyB1bnNpZ25lZCBsb25nIHJldHVybl9mcmVlX3BhZ2VzX3RvX21tKHN0cnVjdCB2aXJ0aW9fYmFsbG9vbiAqdmIsXG4rXHRcdFx0XHRcdCAgICAgdW5zaWduZWQgbG9uZyBudW1fdG9fcmV0dXJuKVxuK3tcbitcdHVuc2lnbmVkIGxvbmcgcmV0O1xuK1xuK1x0c3Bpbl9sb2NrX2lycShcdTAwMjZ2Yi1cdTAwM2VmcmVlX3BhZ2VfbGlzdF9sb2NrKTtcbitcdGlmICh2Yi1cdTAwM2VzdXNwZW5kZWQpIHtcbitcdFx0c3Bpbl91bmxvY2tfaXJxKFx1MDAyNnZiLVx1MDAzZWZyZWVfcGFnZV9saXN0X2xvY2spO1xuK1x0XHRyZXR1cm4gMDtcbitcdH1cbitcdHJldCA9IF9fcmV0dXJuX2ZyZWVfcGFnZXNfdG9fbW0odmIsIG51bV90b19yZXR1cm4pO1xuK1x0c3Bpbl91bmxvY2tfaXJxKFx1MDAyNnZiLVx1MDAzZWZyZWVfcGFnZV9saXN0X2xvY2spO1xuK1xuK1x0cmV0dXJuIHJldDtcbit9XG4rXG4gc3RhdGljIHZvaWQgdmlydGlvX2JhbGxvb25fcXVldWVfZnJlZV9wYWdlX3dvcmsoc3RydWN0IHZpcnRpb19iYWxsb29uICp2YilcbiB7XG4gXHRpZiAoIXZpcnRpb19oYXNfZmVhdHVyZSh2Yi1cdTAwM2V2ZGV2LCBWSVJUSU9fQkFMTE9PTl9GX0ZSRUVfUEFHRV9ISU5UKSlcbkBAIC04NzEsNiArODg3LDkgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgdmlydGlvX2JhbGxvb25fc2hyaW5rZXJfc2NhbihzdHJ1Y3Qgc2hyaW5rZXIgKnNocmlua2VyLFxuIHtcbiBcdHN0cnVjdCB2aXJ0aW9fYmFsbG9vbiAqdmIgPSBzaHJpbmtlci1cdTAwM2Vwcml2YXRlX2RhdGE7XG4gXG4rXHRpZiAoUkVBRF9PTkNFKHZiLVx1MDAzZXN1c3BlbmRlZCkpXG4rXHRcdHJldHVybiAwO1xuK1xuIFx0cmV0dXJuIHNocmlua19mcmVlX3BhZ2VzKHZiLCBzYy1cdTAwM2Vucl90b19zY2FuKTtcbiB9XG4gXG5AQCAtODc5LDYgKzg5OCw5IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIHZpcnRpb19iYWxsb29uX3Nocmlua2VyX2NvdW50KHN0cnVjdCBzaHJpbmtlciAqc2hyaW5rZXIsXG4ge1xuIFx0c3RydWN0IHZpcnRpb19iYWxsb29uICp2YiA9IHNocmlua2VyLVx1MDAzZXByaXZhdGVfZGF0YTtcbiBcbitcdGlmIChSRUFEX09OQ0UodmItXHUwMDNlc3VzcGVuZGVkKSlcbitcdFx0cmV0dXJuIDA7XG4rXG4gXHRyZXR1cm4gdmItXHUwMDNlbnVtX2ZyZWVfcGFnZV9ibG9ja3MgKiBWSVJUSU9fQkFMTE9PTl9ISU5UX0JMT0NLX1BBR0VTO1xuIH1cbiBcbkBAIC0xMDg5LDggKzExMTEsMTEgQEAgc3RhdGljIHZvaWQgcmVtb3ZlX2NvbW1vbihzdHJ1Y3QgdmlydGlvX2JhbGxvb24gKnZiKVxuIFx0dXBkYXRlX2JhbGxvb25fc2l6ZSh2Yik7XG4gXG4gXHQvKiBUaGVyZSBtaWdodCBiZSBmcmVlIHBhZ2VzIHRoYXQgYXJlIGJlaW5nIHJlcG9ydGVkOiByZWxlYXNlIHRoZW0uICovXG4tXHRpZiAodmlydGlvX2hhc19mZWF0dXJlKHZiLVx1MDAzZXZkZXYsIFZJUlRJT19CQUxMT09OX0ZfRlJFRV9QQUdFX0hJTlQpKVxuLVx0XHRyZXR1cm5fZnJlZV9wYWdlc190b19tbSh2YiwgVUxPTkdfTUFYKTtcbitcdGlmICh2aXJ0aW9faGFzX2ZlYXR1cmUodmItXHUwMDNldmRldiwgVklSVElPX0JBTExPT05fRl9GUkVFX1BBR0VfSElOVCkpIHtcbitcdFx0c3Bpbl9sb2NrX2lycShcdTAwMjZ2Yi1cdTAwM2VmcmVlX3BhZ2VfbGlzdF9sb2NrKTtcbitcdFx0X19yZXR1cm5fZnJlZV9wYWdlc190b19tbSh2YiwgVUxPTkdfTUFYKTtcbitcdFx0c3Bpbl91bmxvY2tfaXJxKFx1MDAyNnZiLVx1MDAzZWZyZWVfcGFnZV9saXN0X2xvY2spO1xuK1x0fVxuIFxuIFx0LyogTm93IHdlIHJlc2V0IHRoZSBkZXZpY2Ugc28gd2UgY2FuIGNsZWFuIHVwIHRoZSBxdWV1ZXMuICovXG4gXHR2aXJ0aW9fcmVzZXRfZGV2aWNlKHZiLVx1MDAzZXZkZXYpO1xuQEAgLTExMzMsNiArMTE1OCwxMCBAQCBzdGF0aWMgaW50IHZpcnRiYWxsb29uX2ZyZWV6ZShzdHJ1Y3QgdmlydGlvX2RldmljZSAqdmRldilcbiBcdCAqIFRoZSB3b3JrcXVldWUgaXMgYWxyZWFkeSBmcm96ZW4gYnkgdGhlIFBNIGNvcmUgYmVmb3JlIHRoaXNcbiBcdCAqIGZ1bmN0aW9uIGlzIGNhbGxlZC5cbiBcdCAqL1xuK1x0c3Bpbl9sb2NrX2lycShcdTAwMjZ2Yi1cdTAwM2VmcmVlX3BhZ2VfbGlzdF9sb2NrKTtcbitcdFdSSVRFX09OQ0UodmItXHUwMDNlc3VzcGVuZGVkLCB0cnVlKTtcbitcdHNwaW5fdW5sb2NrX2lycShcdTAwMjZ2Yi1cdTAwM2VmcmVlX3BhZ2VfbGlzdF9sb2NrKTtcbitcbiBcdHJlbW92ZV9jb21tb24odmIpO1xuIFx0cmV0dXJuIDA7XG4gfVxuQEAgLTExNDgsNiArMTE3NywxMCBAQCBzdGF0aWMgaW50IHZpcnRiYWxsb29uX3Jlc3RvcmUoc3RydWN0IHZpcnRpb19kZXZpY2UgKnZkZXYpXG4gXG4gXHR2aXJ0aW9fZGV2aWNlX3JlYWR5KHZkZXYpO1xuIFxuK1x0c3Bpbl9sb2NrX2lycShcdTAwMjZ2Yi1cdTAwM2VmcmVlX3BhZ2VfbGlzdF9sb2NrKTtcbitcdFdSSVRFX09OQ0UodmItXHUwMDNlc3VzcGVuZGVkLCBmYWxzZSk7XG4rXHRzcGluX3VubG9ja19pcnEoXHUwMDI2dmItXHUwMDNlZnJlZV9wYWdlX2xpc3RfbG9jayk7XG4rXG4gXHRpZiAodG93YXJkc190YXJnZXQodmIpKVxuIFx0XHR2aXJ0YmFsbG9vbl9jaGFuZ2VkKHZkZXYpO1xuIFx0dXBkYXRlX2JhbGxvb25fc2l6ZSh2Yik7XG5kaWZmIC0tZ2l0IGEvbW0vcGFnZV9yZXBvcnRpbmcuYyBiL21tL3BhZ2VfcmVwb3J0aW5nLmNcbmluZGV4IDc0MThmMmU1MDBiYjQ4Li40ZGM2ZjRiODUyMjM5OCAxMDA2NDRcbi0tLSBhL21tL3BhZ2VfcmVwb3J0aW5nLmNcbisrKyBiL21tL3BhZ2VfcmVwb3J0aW5nLmNcbkBAIC04MCw3ICs4MCw4IEBAIF9fcGFnZV9yZXBvcnRpbmdfcmVxdWVzdChzdHJ1Y3QgcGFnZV9yZXBvcnRpbmdfZGV2X2luZm8gKnByZGV2KVxuIFx0ICogbm93IHdlIGFyZSBsaW1pdGluZyB0aGlzIHRvIHJ1bm5pbmcgbm8gbW9yZSB0aGFuIG9uY2UgZXZlcnlcbiBcdCAqIGNvdXBsZSBvZiBzZWNvbmRzLlxuIFx0ICovXG4tXHRzY2hlZHVsZV9kZWxheWVkX3dvcmsoXHUwMDI2cHJkZXYtXHUwMDNld29yaywgUEFHRV9SRVBPUlRJTkdfREVMQVkpO1xuK1x0cXVldWVfZGVsYXllZF93b3JrKHN5c3RlbV9mcmVlemFibGVfd3EsIFx1MDAyNnByZGV2LVx1MDAzZXdvcmssXG4rXHRcdFx0ICAgUEFHRV9SRVBPUlRJTkdfREVMQVkpO1xuIH1cbiBcbiAvKiBub3RpZnkgcHJkZXYgb2YgZnJlZSBwYWdlIHJlcG9ydGluZyByZXF1ZXN0ICovXG5AQCAtMzQzLDcgKzM0NCw4IEBAIHN0YXRpYyB2b2lkIHBhZ2VfcmVwb3J0aW5nX3Byb2Nlc3Moc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuIFx0ICovXG4gXHRzdGF0ZSA9IGF0b21pY19jbXB4Y2hnKFx1MDAyNnByZGV2LVx1MDAzZXN0YXRlLCBzdGF0ZSwgUEFHRV9SRVBPUlRJTkdfSURMRSk7XG4gXHRpZiAoc3RhdGUgPT0gUEFHRV9SRVBPUlRJTkdfUkVRVUVTVEVEKVxuLVx0XHRzY2hlZHVsZV9kZWxheWVkX3dvcmsoXHUwMDI2cHJkZXYtXHUwMDNld29yaywgUEFHRV9SRVBPUlRJTkdfREVMQVkpO1xuK1x0XHRxdWV1ZV9kZWxheWVkX3dvcmsoc3lzdGVtX2ZyZWV6YWJsZV93cSwgXHUwMDI2cHJkZXYtXHUwMDNld29yayxcbitcdFx0XHRcdCAgIFBBR0VfUkVQT1JUSU5HX0RFTEFZKTtcbiB9XG4gXG4gc3RhdGljIERFRklORV9NVVRFWChwYWdlX3JlcG9ydGluZ19tdXRleCk7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwMzo0ODoxMi4wNzkxNzMzMjZaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1OTcyNDQ5ODE2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgVGFyZ2V0IElkZW50aWZpY2F0aW9uOiBWaXJ0aW8gQmFsbG9vbiBhbmQgUGFnZSBSZXBvcnRpbmcqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCBhIHBhdGNoIGhlcmUgdGhhdCdzIG1ha2luZyBzb21lIG1vZGlmaWNhdGlvbnMgd2l0aGluIGBkcml2ZXJzL3ZpcnRpby92aXJ0aW9fYmFsbG9vbi5jYCBhbmQgYG1tL3BhZ2VfcmVwb3J0aW5nLmNgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIFwiSXMgdGhpcyBmdXp6LXdvcnRoeT9cIiBJdCBsb29rcyBsaWtlIHRoZXkndmUgYWRkZWQgYSBgc3VzcGVuZGVkYCBmbGFnIHRvIHRoZSBgc3RydWN0IHZpcnRpb19iYWxsb29uYCB0byBlc3NlbnRpYWxseSBibG9jayB0aGUgc2hyaW5rZXIgZnJvbSBydW5uaW5nIHdoZW4gdGhlIGRldmljZSBpcyBzdXNwZW5kZWQuIFRoZXkndmUgYWxzbyB1cGRhdGVkIGBwYWdlX3JlcG9ydGluZ19wcm9jZXNzYCBhbmQgYF9fcGFnZV9yZXBvcnRpbmdfcmVxdWVzdGAgaW4gYG1tL3BhZ2VfcmVwb3J0aW5nLmNgIHRvIHVzZSBgc3lzdGVtX2ZyZWV6YWJsZV93cWAgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCB3b3JrcXVldWUuXG5cbkdpdmVuIHRoZXNlIGNoYW5nZXMsIGl0J3MgcHJldHR5IGNsZWFyIHRoYXQgdGhpcyB3YXJyYW50cyBhIGZ1enppbmcgZWZmb3J0LiBUaGUgdmlydGlvIGJhbGxvb24gZHJpdmVyIGlzIGEgc29saWQgdGFyZ2V0IGJlY2F1c2Ugb2YgaXRzIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyDigJMgdGhpbmsgUUVNVSBhbmQgdGhlIGxpa2UuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMg4oCTIGEgZmxhZyBhZGRpdGlvbiBhbmQgd29ya3F1ZXVlIHVwZGF0ZSDigJMgd2hpY2ggYXJlIG9mdGVuIGZydWl0ZnVsIGFyZWFzIGZvciBmdXp6aW5nLlxuXG5Ob3csIGxldCdzIHBpbnBvaW50IHRoZSBzcGVjaWZpYyBmdW5jdGlvbnMgdGhhdCBuZWVkIHRoZSBtb3N0IGZvY3VzLiBXaXRoaW4gYGRyaXZlcnMvdmlydGlvL3ZpcnRpb19iYWxsb29uLmNgLCBJJ2xsIGJlIGxvb2tpbmcgY2xvc2VseSBhdCBgcmV0dXJuX2ZyZWVfcGFnZXNfdG9fbW1gLCBgdmlydGlvX2JhbGxvb25fc2hyaW5rZXJfc2NhbmAsIGB2aXJ0aW9fYmFsbG9vbl9zaHJpbmtlcl9jb3VudGAsIGByZW1vdmVfY29tbW9uYCwgYHZpcnRiYWxsb29uX2ZyZWV6ZWAsIGFuZCBgdmlydGJhbGxvb25fcmVzdG9yZWAuIE92ZXIgaW4gYG1tL3BhZ2VfcmVwb3J0aW5nLmNgLCBteSBhdHRlbnRpb24gd2lsbCBiZSBvbiBgX19wYWdlX3JlcG9ydGluZ19yZXF1ZXN0YCBhbmQgYHBhZ2VfcmVwb3J0aW5nX3Byb2Nlc3NgLlxuXG5GaW5hbGx5LCBqdXN0IGEgcXVpY2sgc2FuaXR5IGNoZWNrIG9uIHRoZSBjb25maWdzOiBgQ09ORklHX1ZJUlRJT19CQUxMT09OYCBmb3IgdGhlIHZpcnRpbyBiYWxsb29uIGNoYW5nZXMgYW5kIGBDT05GSUdfUEFHRV9SRVBPUlRJTkdgIGZvciB0aGUgcGFnZSByZXBvcnRpbmcgc3R1ZmYuIExvb2tzIGxpa2Ugd2UgYXJlIGdvb2QgdG8gZ28uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM1OTcsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNTcsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwMzo0ODoxOC4wNTE2MjYwNDJaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQ5MzI5NTk4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIlZJUlRJT19CQUxMT09OXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvdmlydGlvL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy92aXJ0aW8vS2NvbmZpZz0xMDE9Y29uZmlnIFZJUlRJT19QTUVNXFxuLS1cXG5kcml2ZXJzL3ZpcnRpby9LY29uZmlnLTExMS1cXG5kcml2ZXJzL3ZpcnRpby9LY29uZmlnOjExMjpjb25maWcgVklSVElPX0JBTExPT05cXG5kcml2ZXJzL3ZpcnRpby9LY29uZmlnLTExMy1cXHR0cmlzdGF0ZSBcXFwiVmlydGlvIGJhbGxvb24gZHJpdmVyXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwMzo0ODoxOC4yMDA5NjI3MloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI0MzA5NDI0NTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHdyaXR0ZW4gaW4gdGhlIGZpcnN0IHBlcnNvbjpcblxuKipJbml0aWFsIENoZWNrcG9pbnQ6IFBBR0VfUkVQT1JUSU5HKipcblxuUmlnaHQsIGxldCdzIHRha2UgYSBsb29rIGF0IGBQQUdFX1JFUE9SVElOR2AuIEl0J3MgbXkgZ28tdG8gZm9yIHVuZGVyc3RhbmRpbmcgdGhlIGN1cnJlbnQgZGF0YSBsYW5kc2NhcGUuIEkgbmVlZCB0byBnZXQgYSBiYXNlbGluZSBiZWZvcmUgSSBjYW4gc3RhcnQgdG8gYW5hbHlzZSB0aGUgbW9yZSBjb21wbGV4IGlzc3Vlcy4gV2hhdCBzcGVjaWZpYyBxdWVzdGlvbnMgb3IgcHJvYmxlbSBpcyBpdCByZWxhdGVkIHRvP1xuXG5cbiIsIklucHV0VG9rZW5zIjo0NDY5LCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDM6NDg6MjAuNjMxOTA4MDgyWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyNTE2ODY4OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJQQUdFX1JFUE9SVElOR1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJtbS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm1tL0tjb25maWc9NjY5PWNvbmZpZyBDT01QQUNUX1VORVZJQ1RBQkxFX0RFRkFVTFRcXG4tLVxcbm1tL0tjb25maWctNjc2LSMgc3VwcG9ydCBmb3IgZnJlZSBwYWdlIHJlcG9ydGluZ1xcbm1tL0tjb25maWc6Njc3OmNvbmZpZyBQQUdFX1JFUE9SVElOR1xcbm1tL0tjb25maWctNjc4LVxcdGJvb2wgXFxcIkZyZWUgcGFnZSByZXBvcnRpbmdcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDAzOjQ4OjIwLjc1NzA4NDIxWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzAzNjAyMDMzMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgdGhpcyBpc3N1ZSBteXNlbGY6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgVklSVElPX0JBTExPT04gYW5kIFBBR0VfUkVQT1JUSU5HIERlcGVuZGVuY3kqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gcXVpY2tseSBkZXRlcm1pbmUgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGBWSVJUSU9fQkFMTE9PTmAgYW5kIGBQQUdFX1JFUE9SVElOR2AuIE15IGluaXRpYWwgaHVuY2ggaXMgdGhhdCBgVklSVElPX0JBTExPT05gIG1pZ2h0ICppbXBseSogb3IgZXZlbiBkaXJlY3RseSBzZWxlY3QgYFBBR0VfUkVQT1JUSU5HYC4gSXQncyBhIGZhaXJseSBjb21tb24gcGF0dGVybiDigJMgYSBmZWF0dXJlIGVuYWJsaW5nIHNvbWV0aGluZyBsaWtlIGJhbGxvb25pbmcgb2Z0ZW4gbmVlZHMgYSB3YXkgdG8gYWN0dWFsbHkgcmVwb3J0IHBhZ2UgaW5mb3JtYXRpb24gdG8gdGhlIGhvc3QuIEkgbmVlZCB0byBjb25maXJtIHRoaXMgcXVpY2tseS4gSSBuZWVkIHRvIGNoZWNrIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIGZpbGVzLCBtYXliZSBpbiB0aGUga2VybmVsIHNvdXJjZSBvciByZWxldmFudCBidWlsZCBjb25maWd1cmF0aW9uIHRvIHNlZSBpZiB0aGVyZSBpcyBhbnkgc2VsZWN0aW9uIGhhcHBlbmluZy4gS25vd2luZyB0aGUgYXJjaGl0ZWN0dXJlLCBJJ2xsIHByb2JhYmx5IGxvb2sgaW50byBhbnkgZGVwZW5kZW5jaWVzLCBhbmQgdGhlbiBjb25maXJtIGlmIHRoYXQgaXMgdGhlIGV4YWN0IGJlaGF2aW9yIG9mIHRoZSBjb25maWd1cmF0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NjgyLCJPdXRwdXRUb2tlbnMiOjMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDM6NDg6MjMuNzkzMTA3MzUyWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxODc5MTE3NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJQQUdFX1JFUE9SVElOR1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3ZpcnRpby9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvdmlydGlvL0tjb25maWc9MTEyPWNvbmZpZyBWSVJUSU9fQkFMTE9PTlxcbi0tXFxuZHJpdmVycy92aXJ0aW8vS2NvbmZpZy0xMTUtXFx0c2VsZWN0IEJBTExPT05cXG5kcml2ZXJzL3ZpcnRpby9LY29uZmlnOjExNjpcXHRzZWxlY3QgUEFHRV9SRVBPUlRJTkdcXG5kcml2ZXJzL3ZpcnRpby9LY29uZmlnLTExNy1cXHRoZWxwXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDAzOjQ4OjI0LjAxMTkwNDg1OVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc3MjY2MDM1MjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIFRhcmdldCBDb2RlKipcblxuT2theSwgc28gdGhlIGBWSVJUSU9fQkFMTE9PTmAgY29uZmlnICppcyogc3VmZmljaWVudCwgYnV0IGxpc3RpbmcgYm90aCBgVklSVElPX0JBTExPT05gIGFuZCBgUEFHRV9SRVBPUlRJTkdgIGlzIGEgZ29vZCBpZGVhIGZvciBjbGFyaXR5LiBBY3R1YWxseSwgd2FpdCwgYFBBR0VfUkVQT1JUSU5HYCBpcyBhIGJvb2xlYW4sIGFuZCBgVklSVElPX0JBTExPT05gIGlzIGEgdHJpc3RhdGUuIFRoYXQncyBhIGdvb2QgZGlzdGluY3Rpb24gdG8gbWFrZSwgc28gbGV0J3MgZ28gd2l0aCBsaXN0aW5nIHRoZW0gYm90aC5cblxuTm93LCB3aGljaCBmdW5jdGlvbnMgYXJlIHRoZSBrZXkgb25lcyB0byBmb2N1cyBvdXIgZnV6emluZyBlZmZvcnRzPyBMZXQncyBzZWUuLi4gYHZpcnRiYWxsb29uX2ZyZWV6ZWAsIGB2aXJ0YmFsbG9vbl9yZXN0b3JlYCwgYHZpcnRpb19iYWxsb29uX3Nocmlua2VyX3NjYW5gLCBgdmlydGlvX2JhbGxvb25fc2hyaW5rZXJfY291bnRgLCBgcmV0dXJuX2ZyZWVfcGFnZXNfdG9fbW1gLCBgX19wYWdlX3JlcG9ydGluZ19yZXF1ZXN0YCwgYW5kIGBwYWdlX3JlcG9ydGluZ19wcm9jZXNzYC5cblxuSG9sZCBvbiBhIHNlY29uZC4uLiBgdmlydGJhbGxvb25fZnJlZXplYCBhbmQgYHZpcnRiYWxsb29uX3Jlc3RvcmVgIGFyZSBQb3dlciBNYW5hZ2VtZW50IChQTSkgY2FsbGJhY2tzLiBDYW4gc3l6a2FsbGVyIGFjdHVhbGx5IGZ1enogdGhvc2U/IEkgdGhpbmsgaXQgY2FuLCB0aHJvdWdoIHN5c2ZzIG9yIHNpbWlsYXIgbWV0aG9kcy4gWWVzLCBpdCBjYW4uIEFuZCBgdmlydGlvX2JhbGxvb25fc2hyaW5rZXJfc2NhbmAgYW5kIGB2aXJ0aW9fYmFsbG9vbl9zaHJpbmtlcl9jb3VudGAgYXJlIHNocmlua2VyIGNhbGxiYWNrcywgbGlrZWx5IHRyaWdnZXJlZCBieSBtZW1vcnkgcHJlc3N1cmUuIGByZXR1cm5fZnJlZV9wYWdlc190b19tbWAgaXMgbGlrZWx5IGNhbGxlZCBmcm9tIGVpdGhlciB0aGUgc2hyaW5rZXIgb3IgZHVyaW5nIHBhZ2UgcmVtb3ZhbC4gVGhlbiB3ZSBoYXZlIGBfX3BhZ2VfcmVwb3J0aW5nX3JlcXVlc3RgIGFuZCBgcGFnZV9yZXBvcnRpbmdfcHJvY2Vzc2AsIHRyaWdnZXJlZCBkaXJlY3RseSBieSBwYWdlIHJlcG9ydGluZyBpdHNlbGYuXG5cbkhtbSwgYW55IG90aGVyIGNvbmZpZ3VyYXRpb24gZGVwZW5kZW5jaWVzIHRvIGNvbnNpZGVyPyBMZXQncyBzZWUuLi4gYFZJUlRJT19CQUxMT09OYCBkZXBlbmRzIG9uIGBWSVJUSU9gIGFzIGEgd2hvbGUsIGJ1dCBgUEFHRV9SRVBPUlRJTkdgIGRvZXNuJ3QgaGF2ZSBhbnkgc3BlY2lmaWMgZGVwZW5kZW5jaWVzLiBPa2F5LCB0aGF0J3Mgc3RyYWlnaHRmb3J3YXJkLlxuXG5UaW1lIHRvIGNhbGwgdGhlIHJlc3VsdHMuIEl0J3MgZGVmaW5pdGVseSB3b3J0aCBmdXp6aW5nIHRoaXMsIGFuZCBoZXJlJ3Mgd2h5OiB0aGlzIHBhdGNoIGZ1bmRhbWVudGFsbHkgY2hhbmdlcyBob3cgdGhlIHZpcnRpbyBiYWxsb29uIGRyaXZlciBhbmQgcGFnZSByZXBvcnRpbmcgaW50ZXJhY3Qgd2l0aCBzdXNwZW5kL3Jlc3VtZS4gV2UncmUgdGFsa2luZyBhYm91dCBhIG5ldyBcInN1c3BlbmRlZFwiIGZsYWcsIGFuZCBjaGFuZ2VzIHRvIHRoZSB3b3JrcXVldWUgdXNlZCBmb3IgcGFnZSByZXBvcnRpbmcuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gcmVhY2hhYmxlIGNvZGUsIGFuZCB0aGF0J3MgZXhhY3RseSB3aGF0IHdlIHdhbnQgdG8gdGVzdC4gU28gaGVyZSBhcmUgdGhlIGRldGFpbHM6XG5cbiogICAqKldvcnRoRnV6emluZyoqOiB0cnVlXG4qICAgKipFbmFibGVDb25maWdzKio6IFxcW1wiVklSVElPXFxfQkFMTE9PTlwiLCBcIlBBR0VcXF9SRVBPUlRJTkdcIlxcXVxuKiAgICoqRm9jdXNTeW1ib2xzKio6IFxcW1widmlydGJhbGxvb25cXF9mcmVlemVcIiwgXCJ2aXJ0YmFsbG9vblxcX3Jlc3RvcmVcIiwgXCJ2aXJ0aW9cXF9iYWxsb29uXFxfc2hyaW5rZXJcXF9zY2FuXCIsIFwidmlydGlvXFxfYmFsbG9vblxcX3Nocmlua2VyXFxfY291bnRcIiwgXCJyZXR1cm5cXF9mcmVlXFxfcGFnZXNcXF90b1xcX21tXCIsIFwiXFxfXFxfcGFnZVxcX3JlcG9ydGluZ1xcX3JlcXVlc3RcIiwgXCJwYWdlXFxfcmVwb3J0aW5nXFxfcHJvY2Vzc1wiXFxdXG4qICAgKipSZWFzb25pbmcqKjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHZpcnRpbyBiYWxsb29uIGRyaXZlciBhbmQgcGFnZSByZXBvcnRpbmcgdG8gaGFuZGxlIHN1c3BlbmQvcmVzdW1lIHByb3Blcmx5LiBJdCBhZGRzIGEgc3VzcGVuZGVkIGZsYWcgYW5kIGNoYW5nZXMgdGhlIHdvcmtxdWV1ZSB1c2VkIGZvciBwYWdlIHJlcG9ydGluZy4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiByZWFjaGFibGUgY29kZS5cIlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MDAzLCJPdXRwdXRUb2tlbnMiOjE1NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ0MywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwMzo0ODozMS43Mzg1MTA5NTdaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDc0MTY0MzcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlZJUlRJT19CQUxMT09OXCIsXG4gICAgXCJQQUdFX1JFUE9SVElOR1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInZpcnRiYWxsb29uX2ZyZWV6ZVwiLFxuICAgIFwidmlydGJhbGxvb25fcmVzdG9yZVwiLFxuICAgIFwidmlydGlvX2JhbGxvb25fc2hyaW5rZXJfc2NhblwiLFxuICAgIFwidmlydGlvX2JhbGxvb25fc2hyaW5rZXJfY291bnRcIixcbiAgICBcInJldHVybl9mcmVlX3BhZ2VzX3RvX21tXCIsXG4gICAgXCJfX3BhZ2VfcmVwb3J0aW5nX3JlcXVlc3RcIixcbiAgICBcInBhZ2VfcmVwb3J0aW5nX3Byb2Nlc3NcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgdmlydGlvIGJhbGxvb24gZHJpdmVyIGFuZCBwYWdlIHJlcG9ydGluZyB0byBoYW5kbGUgc3VzcGVuZC9yZXN1bWUgcHJvcGVybHkuIEl0IGFkZHMgYSBzdXNwZW5kZWQgZmxhZyBhbmQgY2hhbmdlcyB0aGUgd29ya3F1ZXVlIHVzZWQgZm9yIHBhZ2UgcmVwb3J0aW5nLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHJlYWNoYWJsZSBjb2RlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlZJUlRJT19CQUxMT09OXCIsXG4gICAgXCJQQUdFX1JFUE9SVElOR1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInZpcnRiYWxsb29uX2ZyZWV6ZVwiLFxuICAgIFwidmlydGJhbGxvb25fcmVzdG9yZVwiLFxuICAgIFwidmlydGlvX2JhbGxvb25fc2hyaW5rZXJfc2NhblwiLFxuICAgIFwidmlydGlvX2JhbGxvb25fc2hyaW5rZXJfY291bnRcIixcbiAgICBcInJldHVybl9mcmVlX3BhZ2VzX3RvX21tXCIsXG4gICAgXCJfX3BhZ2VfcmVwb3J0aW5nX3JlcXVlc3RcIixcbiAgICBcInBhZ2VfcmVwb3J0aW5nX3Byb2Nlc3NcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgdmlydGlvIGJhbGxvb24gZHJpdmVyIGFuZCBwYWdlIHJlcG9ydGluZyB0byBoYW5kbGUgc3VzcGVuZC9yZXN1bWUgcHJvcGVybHkuIEl0IGFkZHMgYSBzdXNwZW5kZWQgZmxhZyBhbmQgY2hhbmdlcyB0aGUgd29ya3F1ZXVlIHVzZWQgZm9yIHBhZ2UgcmVwb3J0aW5nLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHJlYWNoYWJsZSBjb2RlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },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-workflows7n76[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-17 03:17:20 +0000 UTC FinishedAt: 2026-07-17 03:48:33 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "fce2dfa773ced15f27dd27cd0b482a7473cdcf2a", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "VIRTIO_BALLOON", "PAGE_REPORTING" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "fce2dfa773ced15f27dd27cd0b482a7473cdcf2a", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "VIRTIO_BALLOON", "PAGE_REPORTING" ], "series_id": "59b4f320-6e82-40d0-88f3-3fcf48447a07" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "virtballoon_freeze", "virtballoon_restore", "virtio_balloon_shrinker_scan", "virtio_balloon_shrinker_count", "return_free_pages_to_mm", "__page_reporting_request", "page_reporting_process" ], "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+CgkJCTx0ZD4yMDI2LzA3LzE3IDAzOjQ4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1ZJUlRJT19CQUxMT09OJiMzNDssCiAgICAmIzM0O1BBR0VfUkVQT1JUSU5HJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dmlydGJhbGxvb25fZnJlZXplJiMzNDssCiAgICAmIzM0O3ZpcnRiYWxsb29uX3Jlc3RvcmUmIzM0OywKICAgICYjMzQ7dmlydGlvX2JhbGxvb25fc2hyaW5rZXJfc2NhbiYjMzQ7LAogICAgJiMzNDt2aXJ0aW9fYmFsbG9vbl9zaHJpbmtlcl9jb3VudCYjMzQ7LAogICAgJiMzNDtyZXR1cm5fZnJlZV9wYWdlc190b19tbSYjMzQ7LAogICAgJiMzNDtfX3BhZ2VfcmVwb3J0aW5nX3JlcXVlc3QmIzM0OywKICAgICYjMzQ7cGFnZV9yZXBvcnRpbmdfcHJvY2VzcyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgdmlydGlvIGJhbGxvb24gZHJpdmVyIGFuZCBwYWdlIHJlcG9ydGluZyB0byBoYW5kbGUgc3VzcGVuZC9yZXN1bWUgcHJvcGVybHkuIEl0IGFkZHMgYSBzdXNwZW5kZWQgZmxhZyBhbmQgY2hhbmdlcyB0aGUgd29ya3F1ZXVlIHVzZWQgZm9yIHBhZ2UgcmVwb3J0aW5nLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHJlYWNoYWJsZSBjb2RlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAzOjQ4PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZDk1ZGNjYmVjNDM3YzE0NDY3ZmEwMGYyZTkzNGY4NjQ4NDNjNWY5NVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDE3IDAzOjQ4OjA5IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlydGlvL3ZpcnRpb19iYWxsb29uLmMgYi9kcml2ZXJzL3ZpcnRpby92aXJ0aW9fYmFsbG9vbi5jXG5pbmRleCAwODhiM2EwZTZjZTZjYy4uMzhlMTE2NmE2NDc2Y2MgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3ZpcnRpby92aXJ0aW9fYmFsbG9vbi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3ZpcnRpby92aXJ0aW9fYmFsbG9vbi5jXG5AQCAtNjgsNiAmIzQzOzY4LDggQEAgc3RydWN0IHZpcnRpb19iYWxsb29uIHtcbiBcdC8qIFByZXZlbnQgdXBkYXRpbmcgYmFsbG9vbiB3aGVuIGl0IGlzIGJlaW5nIGNhbmNlbGVkLiAqL1xuIFx0c3BpbmxvY2tfdCBzdG9wX3VwZGF0ZV9sb2NrO1xuIFx0Ym9vbCBzdG9wX3VwZGF0ZTtcbiYjNDM7XHQvKiBQcmV2ZW50IHNocmlua2VyIGZyb20gcnVubmluZyB3aGlsZSBkZXZpY2UgaXMgc3VzcGVuZGVkLiAqL1xuJiM0MztcdGJvb2wgc3VzcGVuZGVkO1xuIFx0LyogQml0bWFwIHRvIGluZGljYXRlIGlmIHJlYWRpbmcgdGhlIHJlbGF0ZWQgY29uZmlnIGZpZWxkcyBhcmUgbmVlZGVkICovXG4gXHR1bnNpZ25lZCBsb25nIGNvbmZpZ19yZWFkX2JpdG1hcDtcbiBcbkBAIC00NzEsOSAmIzQzOzQ3Myw5IEBAIHN0YXRpYyBpbmxpbmUgczY0IHRvd2FyZHNfdGFyZ2V0KHN0cnVjdCB2aXJ0aW9fYmFsbG9vbiAqdmIpXG4gXHRyZXR1cm4gdGFyZ2V0IC0gdmItXHUwMDNlbnVtX3BhZ2VzO1xuIH1cbiBcbi0vKiBHaXZlcyBiYWNrIEBudW1fdG9fcmV0dXJuIGJsb2NrcyBvZiBmcmVlIHBhZ2VzIHRvIG1tLiAqL1xuLXN0YXRpYyB1bnNpZ25lZCBsb25nIHJldHVybl9mcmVlX3BhZ2VzX3RvX21tKHN0cnVjdCB2aXJ0aW9fYmFsbG9vbiAqdmIsXG4tXHRcdFx0XHRcdCAgICAgdW5zaWduZWQgbG9uZyBudW1fdG9fcmV0dXJuKVxuJiM0MzsvKiBIZWxwZXI6IG11c3QgYmUgY2FsbGVkIHdpdGggZnJlZV9wYWdlX2xpc3RfbG9jayBoZWxkICovXG4mIzQzO3N0YXRpYyB1bnNpZ25lZCBsb25nIF9fcmV0dXJuX2ZyZWVfcGFnZXNfdG9fbW0oc3RydWN0IHZpcnRpb19iYWxsb29uICp2YixcbiYjNDM7XHRcdFx0XHRcdCAgICAgICB1bnNpZ25lZCBsb25nIG51bV90b19yZXR1cm4pXG4ge1xuIFx0dW5zaWduZWQgbG9uZyBudW1fcmV0dXJuZWQgPSAwO1xuIFx0c3RydWN0IHBhZ2UgKnBhZ2UsICpuZXh0O1xuQEAgLTQ4MSw4ICYjNDM7NDgzLDYgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgcmV0dXJuX2ZyZWVfcGFnZXNfdG9fbW0oc3RydWN0IHZpcnRpb19iYWxsb29uICp2YixcbiBcdGlmICh1bmxpa2VseSghbnVtX3RvX3JldHVybikpXG4gXHRcdHJldHVybiAwO1xuIFxuLVx0c3Bpbl9sb2NrX2lycShcdTAwMjZ2Yi1cdTAwM2VmcmVlX3BhZ2VfbGlzdF9sb2NrKTtcbi1cbiBcdGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShwYWdlLCBuZXh0LCBcdTAwMjZ2Yi1cdTAwM2VmcmVlX3BhZ2VfbGlzdCwgbHJ1KSB7XG4gXHRcdGxpc3RfZGVsKFx1MDAyNnBhZ2UtXHUwMDNlbHJ1KTtcbiBcdFx0X19mcmVlX3BhZ2VzKHBhZ2UsIFZJUlRJT19CQUxMT09OX0hJTlRfQkxPQ0tfT1JERVIpO1xuQEAgLTQ5MCwxMSAmIzQzOzQ5MCwyNyBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyByZXR1cm5fZnJlZV9wYWdlc190b19tbShzdHJ1Y3QgdmlydGlvX2JhbGxvb24gKnZiLFxuIFx0XHRcdGJyZWFrO1xuIFx0fVxuIFx0dmItXHUwMDNlbnVtX2ZyZWVfcGFnZV9ibG9ja3MgLT0gbnVtX3JldHVybmVkO1xuLVx0c3Bpbl91bmxvY2tfaXJxKFx1MDAyNnZiLVx1MDAzZWZyZWVfcGFnZV9saXN0X2xvY2spO1xuIFxuIFx0cmV0dXJuIG51bV9yZXR1cm5lZDtcbiB9XG4gXG4mIzQzOy8qIEdpdmVzIGJhY2sgQG51bV90b19yZXR1cm4gYmxvY2tzIG9mIGZyZWUgcGFnZXMgdG8gbW0uICovXG4mIzQzO3N0YXRpYyB1bnNpZ25lZCBsb25nIHJldHVybl9mcmVlX3BhZ2VzX3RvX21tKHN0cnVjdCB2aXJ0aW9fYmFsbG9vbiAqdmIsXG4mIzQzO1x0XHRcdFx0XHQgICAgIHVuc2lnbmVkIGxvbmcgbnVtX3RvX3JldHVybilcbiYjNDM7e1xuJiM0MztcdHVuc2lnbmVkIGxvbmcgcmV0O1xuJiM0MztcbiYjNDM7XHRzcGluX2xvY2tfaXJxKFx1MDAyNnZiLVx1MDAzZWZyZWVfcGFnZV9saXN0X2xvY2spO1xuJiM0MztcdGlmICh2Yi1cdTAwM2VzdXNwZW5kZWQpIHtcbiYjNDM7XHRcdHNwaW5fdW5sb2NrX2lycShcdTAwMjZ2Yi1cdTAwM2VmcmVlX3BhZ2VfbGlzdF9sb2NrKTtcbiYjNDM7XHRcdHJldHVybiAwO1xuJiM0MztcdH1cbiYjNDM7XHRyZXQgPSBfX3JldHVybl9mcmVlX3BhZ2VzX3RvX21tKHZiLCBudW1fdG9fcmV0dXJuKTtcbiYjNDM7XHRzcGluX3VubG9ja19pcnEoXHUwMDI2dmItXHUwMDNlZnJlZV9wYWdlX2xpc3RfbG9jayk7XG4mIzQzO1xuJiM0MztcdHJldHVybiByZXQ7XG4mIzQzO31cbiYjNDM7XG4gc3RhdGljIHZvaWQgdmlydGlvX2JhbGxvb25fcXVldWVfZnJlZV9wYWdlX3dvcmsoc3RydWN0IHZpcnRpb19iYWxsb29uICp2YilcbiB7XG4gXHRpZiAoIXZpcnRpb19oYXNfZmVhdHVyZSh2Yi1cdTAwM2V2ZGV2LCBWSVJUSU9fQkFMTE9PTl9GX0ZSRUVfUEFHRV9ISU5UKSlcbkBAIC04NzEsNiAmIzQzOzg4Nyw5IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIHZpcnRpb19iYWxsb29uX3Nocmlua2VyX3NjYW4oc3RydWN0IHNocmlua2VyICpzaHJpbmtlcixcbiB7XG4gXHRzdHJ1Y3QgdmlydGlvX2JhbGxvb24gKnZiID0gc2hyaW5rZXItXHUwMDNlcHJpdmF0ZV9kYXRhO1xuIFxuJiM0MztcdGlmIChSRUFEX09OQ0UodmItXHUwMDNlc3VzcGVuZGVkKSlcbiYjNDM7XHRcdHJldHVybiAwO1xuJiM0MztcbiBcdHJldHVybiBzaHJpbmtfZnJlZV9wYWdlcyh2Yiwgc2MtXHUwMDNlbnJfdG9fc2Nhbik7XG4gfVxuIFxuQEAgLTg3OSw2ICYjNDM7ODk4LDkgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgdmlydGlvX2JhbGxvb25fc2hyaW5rZXJfY291bnQoc3RydWN0IHNocmlua2VyICpzaHJpbmtlcixcbiB7XG4gXHRzdHJ1Y3QgdmlydGlvX2JhbGxvb24gKnZiID0gc2hyaW5rZXItXHUwMDNlcHJpdmF0ZV9kYXRhO1xuIFxuJiM0MztcdGlmIChSRUFEX09OQ0UodmItXHUwMDNlc3VzcGVuZGVkKSlcbiYjNDM7XHRcdHJldHVybiAwO1xuJiM0MztcbiBcdHJldHVybiB2Yi1cdTAwM2VudW1fZnJlZV9wYWdlX2Jsb2NrcyAqIFZJUlRJT19CQUxMT09OX0hJTlRfQkxPQ0tfUEFHRVM7XG4gfVxuIFxuQEAgLTEwODksOCAmIzQzOzExMTEsMTEgQEAgc3RhdGljIHZvaWQgcmVtb3ZlX2NvbW1vbihzdHJ1Y3QgdmlydGlvX2JhbGxvb24gKnZiKVxuIFx0dXBkYXRlX2JhbGxvb25fc2l6ZSh2Yik7XG4gXG4gXHQvKiBUaGVyZSBtaWdodCBiZSBmcmVlIHBhZ2VzIHRoYXQgYXJlIGJlaW5nIHJlcG9ydGVkOiByZWxlYXNlIHRoZW0uICovXG4tXHRpZiAodmlydGlvX2hhc19mZWF0dXJlKHZiLVx1MDAzZXZkZXYsIFZJUlRJT19CQUxMT09OX0ZfRlJFRV9QQUdFX0hJTlQpKVxuLVx0XHRyZXR1cm5fZnJlZV9wYWdlc190b19tbSh2YiwgVUxPTkdfTUFYKTtcbiYjNDM7XHRpZiAodmlydGlvX2hhc19mZWF0dXJlKHZiLVx1MDAzZXZkZXYsIFZJUlRJT19CQUxMT09OX0ZfRlJFRV9QQUdFX0hJTlQpKSB7XG4mIzQzO1x0XHRzcGluX2xvY2tfaXJxKFx1MDAyNnZiLVx1MDAzZWZyZWVfcGFnZV9saXN0X2xvY2spO1xuJiM0MztcdFx0X19yZXR1cm5fZnJlZV9wYWdlc190b19tbSh2YiwgVUxPTkdfTUFYKTtcbiYjNDM7XHRcdHNwaW5fdW5sb2NrX2lycShcdTAwMjZ2Yi1cdTAwM2VmcmVlX3BhZ2VfbGlzdF9sb2NrKTtcbiYjNDM7XHR9XG4gXG4gXHQvKiBOb3cgd2UgcmVzZXQgdGhlIGRldmljZSBzbyB3ZSBjYW4gY2xlYW4gdXAgdGhlIHF1ZXVlcy4gKi9cbiBcdHZpcnRpb19yZXNldF9kZXZpY2UodmItXHUwMDNldmRldik7XG5AQCAtMTEzMyw2ICYjNDM7MTE1OCwxMCBAQCBzdGF0aWMgaW50IHZpcnRiYWxsb29uX2ZyZWV6ZShzdHJ1Y3QgdmlydGlvX2RldmljZSAqdmRldilcbiBcdCAqIFRoZSB3b3JrcXVldWUgaXMgYWxyZWFkeSBmcm96ZW4gYnkgdGhlIFBNIGNvcmUgYmVmb3JlIHRoaXNcbiBcdCAqIGZ1bmN0aW9uIGlzIGNhbGxlZC5cbiBcdCAqL1xuJiM0MztcdHNwaW5fbG9ja19pcnEoXHUwMDI2dmItXHUwMDNlZnJlZV9wYWdlX2xpc3RfbG9jayk7XG4mIzQzO1x0V1JJVEVfT05DRSh2Yi1cdTAwM2VzdXNwZW5kZWQsIHRydWUpO1xuJiM0MztcdHNwaW5fdW5sb2NrX2lycShcdTAwMjZ2Yi1cdTAwM2VmcmVlX3BhZ2VfbGlzdF9sb2NrKTtcbiYjNDM7XG4gXHRyZW1vdmVfY29tbW9uKHZiKTtcbiBcdHJldHVybiAwO1xuIH1cbkBAIC0xMTQ4LDYgJiM0MzsxMTc3LDEwIEBAIHN0YXRpYyBpbnQgdmlydGJhbGxvb25fcmVzdG9yZShzdHJ1Y3QgdmlydGlvX2RldmljZSAqdmRldilcbiBcbiBcdHZpcnRpb19kZXZpY2VfcmVhZHkodmRldik7XG4gXG4mIzQzO1x0c3Bpbl9sb2NrX2lycShcdTAwMjZ2Yi1cdTAwM2VmcmVlX3BhZ2VfbGlzdF9sb2NrKTtcbiYjNDM7XHRXUklURV9PTkNFKHZiLVx1MDAzZXN1c3BlbmRlZCwgZmFsc2UpO1xuJiM0MztcdHNwaW5fdW5sb2NrX2lycShcdTAwMjZ2Yi1cdTAwM2VmcmVlX3BhZ2VfbGlzdF9sb2NrKTtcbiYjNDM7XG4gXHRpZiAodG93YXJkc190YXJnZXQodmIpKVxuIFx0XHR2aXJ0YmFsbG9vbl9jaGFuZ2VkKHZkZXYpO1xuIFx0dXBkYXRlX2JhbGxvb25fc2l6ZSh2Yik7XG5kaWZmIC0tZ2l0IGEvbW0vcGFnZV9yZXBvcnRpbmcuYyBiL21tL3BhZ2VfcmVwb3J0aW5nLmNcbmluZGV4IDc0MThmMmU1MDBiYjQ4Li40ZGM2ZjRiODUyMjM5OCAxMDA2NDRcbi0tLSBhL21tL3BhZ2VfcmVwb3J0aW5nLmNcbiYjNDM7JiM0MzsmIzQzOyBiL21tL3BhZ2VfcmVwb3J0aW5nLmNcbkBAIC04MCw3ICYjNDM7ODAsOCBAQCBfX3BhZ2VfcmVwb3J0aW5nX3JlcXVlc3Qoc3RydWN0IHBhZ2VfcmVwb3J0aW5nX2Rldl9pbmZvICpwcmRldilcbiBcdCAqIG5vdyB3ZSBhcmUgbGltaXRpbmcgdGhpcyB0byBydW5uaW5nIG5vIG1vcmUgdGhhbiBvbmNlIGV2ZXJ5XG4gXHQgKiBjb3VwbGUgb2Ygc2Vjb25kcy5cbiBcdCAqL1xuLVx0c2NoZWR1bGVfZGVsYXllZF93b3JrKFx1MDAyNnByZGV2LVx1MDAzZXdvcmssIFBBR0VfUkVQT1JUSU5HX0RFTEFZKTtcbiYjNDM7XHRxdWV1ZV9kZWxheWVkX3dvcmsoc3lzdGVtX2ZyZWV6YWJsZV93cSwgXHUwMDI2cHJkZXYtXHUwMDNld29yayxcbiYjNDM7XHRcdFx0ICAgUEFHRV9SRVBPUlRJTkdfREVMQVkpO1xuIH1cbiBcbiAvKiBub3RpZnkgcHJkZXYgb2YgZnJlZSBwYWdlIHJlcG9ydGluZyByZXF1ZXN0ICovXG5AQCAtMzQzLDcgJiM0MzszNDQsOCBAQCBzdGF0aWMgdm9pZCBwYWdlX3JlcG9ydGluZ19wcm9jZXNzKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbiBcdCAqL1xuIFx0c3RhdGUgPSBhdG9taWNfY21weGNoZyhcdTAwMjZwcmRldi1cdTAwM2VzdGF0ZSwgc3RhdGUsIFBBR0VfUkVQT1JUSU5HX0lETEUpO1xuIFx0aWYgKHN0YXRlID09IFBBR0VfUkVQT1JUSU5HX1JFUVVFU1RFRClcbi1cdFx0c2NoZWR1bGVfZGVsYXllZF93b3JrKFx1MDAyNnByZGV2LVx1MDAzZXdvcmssIFBBR0VfUkVQT1JUSU5HX0RFTEFZKTtcbiYjNDM7XHRcdHF1ZXVlX2RlbGF5ZWRfd29yayhzeXN0ZW1fZnJlZXphYmxlX3dxLCBcdTAwMjZwcmRldi1cdTAwM2V3b3JrLFxuJiM0MztcdFx0XHRcdCAgIFBBR0VfUkVQT1JUSU5HX0RFTEFZKTtcbiB9XG4gXG4gc3RhdGljIERFRklORV9NVVRFWChwYWdlX3JlcG9ydGluZ19tdXRleCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMDM6NDg8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VklSVElPX0JBTExPT04mIzM0OywKICAgICYjMzQ7UEFHRV9SRVBPUlRJTkcmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt2aXJ0YmFsbG9vbl9mcmVlemUmIzM0OywKICAgICYjMzQ7dmlydGJhbGxvb25fcmVzdG9yZSYjMzQ7LAogICAgJiMzNDt2aXJ0aW9fYmFsbG9vbl9zaHJpbmtlcl9zY2FuJiMzNDssCiAgICAmIzM0O3ZpcnRpb19iYWxsb29uX3Nocmlua2VyX2NvdW50JiMzNDssCiAgICAmIzM0O3JldHVybl9mcmVlX3BhZ2VzX3RvX21tJiMzNDssCiAgICAmIzM0O19fcGFnZV9yZXBvcnRpbmdfcmVxdWVzdCYjMzQ7LAogICAgJiMzNDtwYWdlX3JlcG9ydGluZ19wcm9jZXNzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSB2aXJ0aW8gYmFsbG9vbiBkcml2ZXIgYW5kIHBhZ2UgcmVwb3J0aW5nIHRvIGhhbmRsZSBzdXNwZW5kL3Jlc3VtZSBwcm9wZXJseS4gSXQgYWRkcyBhIHN1c3BlbmRlZCBmbGFnIGFuZCBjaGFuZ2VzIHRoZSB3b3JrcXVldWUgdXNlZCBmb3IgcGFnZSByZXBvcnRpbmcuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcmVhY2hhYmxlIGNvZGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGQ5NWRjY2JlYzQzN2MxNDQ2N2ZhMDBmMmU5MzRmODY0ODQzYzVmOTUKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgRnJpIEp1bCAxNyAwMzo0ODowOSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlydGlvL3ZpcnRpb19iYWxsb29uLmMgYi9kcml2ZXJzL3ZpcnRpby92aXJ0aW9fYmFsbG9vbi5jCmluZGV4IDA4OGIzYTBlNmNlNmNjLi4zOGUxMTY2YTY0NzZjYyAxMDA2NDQKLS0tIGEvZHJpdmVycy92aXJ0aW8vdmlydGlvX2JhbGxvb24uYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3ZpcnRpby92aXJ0aW9fYmFsbG9vbi5jCkBAIC02OCw2ICYjNDM7NjgsOCBAQCBzdHJ1Y3QgdmlydGlvX2JhbGxvb24gewogCS8qIFByZXZlbnQgdXBkYXRpbmcgYmFsbG9vbiB3aGVuIGl0IGlzIGJlaW5nIGNhbmNlbGVkLiAqLwogCXNwaW5sb2NrX3Qgc3RvcF91cGRhdGVfbG9jazsKIAlib29sIHN0b3BfdXBkYXRlOwomIzQzOwkvKiBQcmV2ZW50IHNocmlua2VyIGZyb20gcnVubmluZyB3aGlsZSBkZXZpY2UgaXMgc3VzcGVuZGVkLiAqLwomIzQzOwlib29sIHN1c3BlbmRlZDsKIAkvKiBCaXRtYXAgdG8gaW5kaWNhdGUgaWYgcmVhZGluZyB0aGUgcmVsYXRlZCBjb25maWcgZmllbGRzIGFyZSBuZWVkZWQgKi8KIAl1bnNpZ25lZCBsb25nIGNvbmZpZ19yZWFkX2JpdG1hcDsKIApAQCAtNDcxLDkgJiM0Mzs0NzMsOSBAQCBzdGF0aWMgaW5saW5lIHM2NCB0b3dhcmRzX3RhcmdldChzdHJ1Y3QgdmlydGlvX2JhbGxvb24gKnZiKQogCXJldHVybiB0YXJnZXQgLSB2Yi0mZ3Q7bnVtX3BhZ2VzOwogfQogCi0vKiBHaXZlcyBiYWNrIEBudW1fdG9fcmV0dXJuIGJsb2NrcyBvZiBmcmVlIHBhZ2VzIHRvIG1tLiAqLwotc3RhdGljIHVuc2lnbmVkIGxvbmcgcmV0dXJuX2ZyZWVfcGFnZXNfdG9fbW0oc3RydWN0IHZpcnRpb19iYWxsb29uICp2YiwKLQkJCQkJICAgICB1bnNpZ25lZCBsb25nIG51bV90b19yZXR1cm4pCiYjNDM7LyogSGVscGVyOiBtdXN0IGJlIGNhbGxlZCB3aXRoIGZyZWVfcGFnZV9saXN0X2xvY2sgaGVsZCAqLwomIzQzO3N0YXRpYyB1bnNpZ25lZCBsb25nIF9fcmV0dXJuX2ZyZWVfcGFnZXNfdG9fbW0oc3RydWN0IHZpcnRpb19iYWxsb29uICp2YiwKJiM0MzsJCQkJCSAgICAgICB1bnNpZ25lZCBsb25nIG51bV90b19yZXR1cm4pCiB7CiAJdW5zaWduZWQgbG9uZyBudW1fcmV0dXJuZWQgPSAwOwogCXN0cnVjdCBwYWdlICpwYWdlLCAqbmV4dDsKQEAgLTQ4MSw4ICYjNDM7NDgzLDYgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgcmV0dXJuX2ZyZWVfcGFnZXNfdG9fbW0oc3RydWN0IHZpcnRpb19iYWxsb29uICp2YiwKIAlpZiAodW5saWtlbHkoIW51bV90b19yZXR1cm4pKQogCQlyZXR1cm4gMDsKIAotCXNwaW5fbG9ja19pcnEoJmFtcDt2Yi0mZ3Q7ZnJlZV9wYWdlX2xpc3RfbG9jayk7Ci0KIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocGFnZSwgbmV4dCwgJmFtcDt2Yi0mZ3Q7ZnJlZV9wYWdlX2xpc3QsIGxydSkgewogCQlsaXN0X2RlbCgmYW1wO3BhZ2UtJmd0O2xydSk7CiAJCV9fZnJlZV9wYWdlcyhwYWdlLCBWSVJUSU9fQkFMTE9PTl9ISU5UX0JMT0NLX09SREVSKTsKQEAgLTQ5MCwxMSAmIzQzOzQ5MCwyNyBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyByZXR1cm5fZnJlZV9wYWdlc190b19tbShzdHJ1Y3QgdmlydGlvX2JhbGxvb24gKnZiLAogCQkJYnJlYWs7CiAJfQogCXZiLSZndDtudW1fZnJlZV9wYWdlX2Jsb2NrcyAtPSBudW1fcmV0dXJuZWQ7Ci0Jc3Bpbl91bmxvY2tfaXJxKCZhbXA7dmItJmd0O2ZyZWVfcGFnZV9saXN0X2xvY2spOwogCiAJcmV0dXJuIG51bV9yZXR1cm5lZDsKIH0KIAomIzQzOy8qIEdpdmVzIGJhY2sgQG51bV90b19yZXR1cm4gYmxvY2tzIG9mIGZyZWUgcGFnZXMgdG8gbW0uICovCiYjNDM7c3RhdGljIHVuc2lnbmVkIGxvbmcgcmV0dXJuX2ZyZWVfcGFnZXNfdG9fbW0oc3RydWN0IHZpcnRpb19iYWxsb29uICp2YiwKJiM0MzsJCQkJCSAgICAgdW5zaWduZWQgbG9uZyBudW1fdG9fcmV0dXJuKQomIzQzO3sKJiM0MzsJdW5zaWduZWQgbG9uZyByZXQ7CiYjNDM7CiYjNDM7CXNwaW5fbG9ja19pcnEoJmFtcDt2Yi0mZ3Q7ZnJlZV9wYWdlX2xpc3RfbG9jayk7CiYjNDM7CWlmICh2Yi0mZ3Q7c3VzcGVuZGVkKSB7CiYjNDM7CQlzcGluX3VubG9ja19pcnEoJmFtcDt2Yi0mZ3Q7ZnJlZV9wYWdlX2xpc3RfbG9jayk7CiYjNDM7CQlyZXR1cm4gMDsKJiM0MzsJfQomIzQzOwlyZXQgPSBfX3JldHVybl9mcmVlX3BhZ2VzX3RvX21tKHZiLCBudW1fdG9fcmV0dXJuKTsKJiM0MzsJc3Bpbl91bmxvY2tfaXJxKCZhbXA7dmItJmd0O2ZyZWVfcGFnZV9saXN0X2xvY2spOwomIzQzOwomIzQzOwlyZXR1cm4gcmV0OwomIzQzO30KJiM0MzsKIHN0YXRpYyB2b2lkIHZpcnRpb19iYWxsb29uX3F1ZXVlX2ZyZWVfcGFnZV93b3JrKHN0cnVjdCB2aXJ0aW9fYmFsbG9vbiAqdmIpCiB7CiAJaWYgKCF2aXJ0aW9faGFzX2ZlYXR1cmUodmItJmd0O3ZkZXYsIFZJUlRJT19CQUxMT09OX0ZfRlJFRV9QQUdFX0hJTlQpKQpAQCAtODcxLDYgJiM0Mzs4ODcsOSBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyB2aXJ0aW9fYmFsbG9vbl9zaHJpbmtlcl9zY2FuKHN0cnVjdCBzaHJpbmtlciAqc2hyaW5rZXIsCiB7CiAJc3RydWN0IHZpcnRpb19iYWxsb29uICp2YiA9IHNocmlua2VyLSZndDtwcml2YXRlX2RhdGE7CiAKJiM0MzsJaWYgKFJFQURfT05DRSh2Yi0mZ3Q7c3VzcGVuZGVkKSkKJiM0MzsJCXJldHVybiAwOwomIzQzOwogCXJldHVybiBzaHJpbmtfZnJlZV9wYWdlcyh2Yiwgc2MtJmd0O25yX3RvX3NjYW4pOwogfQogCkBAIC04NzksNiAmIzQzOzg5OCw5IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIHZpcnRpb19iYWxsb29uX3Nocmlua2VyX2NvdW50KHN0cnVjdCBzaHJpbmtlciAqc2hyaW5rZXIsCiB7CiAJc3RydWN0IHZpcnRpb19iYWxsb29uICp2YiA9IHNocmlua2VyLSZndDtwcml2YXRlX2RhdGE7CiAKJiM0MzsJaWYgKFJFQURfT05DRSh2Yi0mZ3Q7c3VzcGVuZGVkKSkKJiM0MzsJCXJldHVybiAwOwomIzQzOwogCXJldHVybiB2Yi0mZ3Q7bnVtX2ZyZWVfcGFnZV9ibG9ja3MgKiBWSVJUSU9fQkFMTE9PTl9ISU5UX0JMT0NLX1BBR0VTOwogfQogCkBAIC0xMDg5LDggJiM0MzsxMTExLDExIEBAIHN0YXRpYyB2b2lkIHJlbW92ZV9jb21tb24oc3RydWN0IHZpcnRpb19iYWxsb29uICp2YikKIAl1cGRhdGVfYmFsbG9vbl9zaXplKHZiKTsKIAogCS8qIFRoZXJlIG1pZ2h0IGJlIGZyZWUgcGFnZXMgdGhhdCBhcmUgYmVpbmcgcmVwb3J0ZWQ6IHJlbGVhc2UgdGhlbS4gKi8KLQlpZiAodmlydGlvX2hhc19mZWF0dXJlKHZiLSZndDt2ZGV2LCBWSVJUSU9fQkFMTE9PTl9GX0ZSRUVfUEFHRV9ISU5UKSkKLQkJcmV0dXJuX2ZyZWVfcGFnZXNfdG9fbW0odmIsIFVMT05HX01BWCk7CiYjNDM7CWlmICh2aXJ0aW9faGFzX2ZlYXR1cmUodmItJmd0O3ZkZXYsIFZJUlRJT19CQUxMT09OX0ZfRlJFRV9QQUdFX0hJTlQpKSB7CiYjNDM7CQlzcGluX2xvY2tfaXJxKCZhbXA7dmItJmd0O2ZyZWVfcGFnZV9saXN0X2xvY2spOwomIzQzOwkJX19yZXR1cm5fZnJlZV9wYWdlc190b19tbSh2YiwgVUxPTkdfTUFYKTsKJiM0MzsJCXNwaW5fdW5sb2NrX2lycSgmYW1wO3ZiLSZndDtmcmVlX3BhZ2VfbGlzdF9sb2NrKTsKJiM0MzsJfQogCiAJLyogTm93IHdlIHJlc2V0IHRoZSBkZXZpY2Ugc28gd2UgY2FuIGNsZWFuIHVwIHRoZSBxdWV1ZXMuICovCiAJdmlydGlvX3Jlc2V0X2RldmljZSh2Yi0mZ3Q7dmRldik7CkBAIC0xMTMzLDYgJiM0MzsxMTU4LDEwIEBAIHN0YXRpYyBpbnQgdmlydGJhbGxvb25fZnJlZXplKHN0cnVjdCB2aXJ0aW9fZGV2aWNlICp2ZGV2KQogCSAqIFRoZSB3b3JrcXVldWUgaXMgYWxyZWFkeSBmcm96ZW4gYnkgdGhlIFBNIGNvcmUgYmVmb3JlIHRoaXMKIAkgKiBmdW5jdGlvbiBpcyBjYWxsZWQuCiAJICovCiYjNDM7CXNwaW5fbG9ja19pcnEoJmFtcDt2Yi0mZ3Q7ZnJlZV9wYWdlX2xpc3RfbG9jayk7CiYjNDM7CVdSSVRFX09OQ0UodmItJmd0O3N1c3BlbmRlZCwgdHJ1ZSk7CiYjNDM7CXNwaW5fdW5sb2NrX2lycSgmYW1wO3ZiLSZndDtmcmVlX3BhZ2VfbGlzdF9sb2NrKTsKJiM0MzsKIAlyZW1vdmVfY29tbW9uKHZiKTsKIAlyZXR1cm4gMDsKIH0KQEAgLTExNDgsNiAmIzQzOzExNzcsMTAgQEAgc3RhdGljIGludCB2aXJ0YmFsbG9vbl9yZXN0b3JlKHN0cnVjdCB2aXJ0aW9fZGV2aWNlICp2ZGV2KQogCiAJdmlydGlvX2RldmljZV9yZWFkeSh2ZGV2KTsKIAomIzQzOwlzcGluX2xvY2tfaXJxKCZhbXA7dmItJmd0O2ZyZWVfcGFnZV9saXN0X2xvY2spOwomIzQzOwlXUklURV9PTkNFKHZiLSZndDtzdXNwZW5kZWQsIGZhbHNlKTsKJiM0MzsJc3Bpbl91bmxvY2tfaXJxKCZhbXA7dmItJmd0O2ZyZWVfcGFnZV9saXN0X2xvY2spOwomIzQzOwogCWlmICh0b3dhcmRzX3RhcmdldCh2YikpCiAJCXZpcnRiYWxsb29uX2NoYW5nZWQodmRldik7CiAJdXBkYXRlX2JhbGxvb25fc2l6ZSh2Yik7CmRpZmYgLS1naXQgYS9tbS9wYWdlX3JlcG9ydGluZy5jIGIvbW0vcGFnZV9yZXBvcnRpbmcuYwppbmRleCA3NDE4ZjJlNTAwYmI0OC4uNGRjNmY0Yjg1MjIzOTggMTAwNjQ0Ci0tLSBhL21tL3BhZ2VfcmVwb3J0aW5nLmMKJiM0MzsmIzQzOyYjNDM7IGIvbW0vcGFnZV9yZXBvcnRpbmcuYwpAQCAtODAsNyAmIzQzOzgwLDggQEAgX19wYWdlX3JlcG9ydGluZ19yZXF1ZXN0KHN0cnVjdCBwYWdlX3JlcG9ydGluZ19kZXZfaW5mbyAqcHJkZXYpCiAJICogbm93IHdlIGFyZSBsaW1pdGluZyB0aGlzIHRvIHJ1bm5pbmcgbm8gbW9yZSB0aGFuIG9uY2UgZXZlcnkKIAkgKiBjb3VwbGUgb2Ygc2Vjb25kcy4KIAkgKi8KLQlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJmFtcDtwcmRldi0mZ3Q7d29yaywgUEFHRV9SRVBPUlRJTkdfREVMQVkpOwomIzQzOwlxdWV1ZV9kZWxheWVkX3dvcmsoc3lzdGVtX2ZyZWV6YWJsZV93cSwgJmFtcDtwcmRldi0mZ3Q7d29yaywKJiM0MzsJCQkgICBQQUdFX1JFUE9SVElOR19ERUxBWSk7CiB9CiAKIC8qIG5vdGlmeSBwcmRldiBvZiBmcmVlIHBhZ2UgcmVwb3J0aW5nIHJlcXVlc3QgKi8KQEAgLTM0Myw3ICYjNDM7MzQ0LDggQEAgc3RhdGljIHZvaWQgcGFnZV9yZXBvcnRpbmdfcHJvY2VzcyhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJICovCiAJc3RhdGUgPSBhdG9taWNfY21weGNoZygmYW1wO3ByZGV2LSZndDtzdGF0ZSwgc3RhdGUsIFBBR0VfUkVQT1JUSU5HX0lETEUpOwogCWlmIChzdGF0ZSA9PSBQQUdFX1JFUE9SVElOR19SRVFVRVNURUQpCi0JCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmYW1wO3ByZGV2LSZndDt3b3JrLCBQQUdFX1JFUE9SVElOR19ERUxBWSk7CiYjNDM7CQlxdWV1ZV9kZWxheWVkX3dvcmsoc3lzdGVtX2ZyZWV6YWJsZV93cSwgJmFtcDtwcmRldi0mZ3Q7d29yaywKJiM0MzsJCQkJICAgUEFHRV9SRVBPUlRJTkdfREVMQVkpOwogfQogCiBzdGF0aWMgREVGSU5FX01VVEVYKHBhZ2VfcmVwb3J0aW5nX211dGV4KTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMDM6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzU5NwoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDM1NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIFRhcmdldCBJZGVudGlmaWNhdGlvbjogVmlydGlvIEJhbGxvb24gYW5kIFBhZ2UgUmVwb3J0aW5nKioKCk9rYXksIHNvIEkmIzM5O3ZlIGdvdCBhIHBhdGNoIGhlcmUgdGhhdCYjMzk7cyBtYWtpbmcgc29tZSBtb2RpZmljYXRpb25zIHdpdGhpbiBgZHJpdmVycy92aXJ0aW8vdmlydGlvX2JhbGxvb24uY2AgYW5kIGBtbS9wYWdlX3JlcG9ydGluZy5jYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCAmIzM0O0lzIHRoaXMgZnV6ei13b3J0aHk/JiMzNDsgSXQgbG9va3MgbGlrZSB0aGV5JiMzOTt2ZSBhZGRlZCBhIGBzdXNwZW5kZWRgIGZsYWcgdG8gdGhlIGBzdHJ1Y3QgdmlydGlvX2JhbGxvb25gIHRvIGVzc2VudGlhbGx5IGJsb2NrIHRoZSBzaHJpbmtlciBmcm9tIHJ1bm5pbmcgd2hlbiB0aGUgZGV2aWNlIGlzIHN1c3BlbmRlZC4gVGhleSYjMzk7dmUgYWxzbyB1cGRhdGVkIGBwYWdlX3JlcG9ydGluZ19wcm9jZXNzYCBhbmQgYF9fcGFnZV9yZXBvcnRpbmdfcmVxdWVzdGAgaW4gYG1tL3BhZ2VfcmVwb3J0aW5nLmNgIHRvIHVzZSBgc3lzdGVtX2ZyZWV6YWJsZV93cWAgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCB3b3JrcXVldWUuCgpHaXZlbiB0aGVzZSBjaGFuZ2VzLCBpdCYjMzk7cyBwcmV0dHkgY2xlYXIgdGhhdCB0aGlzIHdhcnJhbnRzIGEgZnV6emluZyBlZmZvcnQuIFRoZSB2aXJ0aW8gYmFsbG9vbiBkcml2ZXIgaXMgYSBzb2xpZCB0YXJnZXQgYmVjYXVzZSBvZiBpdHMgcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIOKAkyB0aGluayBRRU1VIGFuZCB0aGUgbGlrZS4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyDigJMgYSBmbGFnIGFkZGl0aW9uIGFuZCB3b3JrcXVldWUgdXBkYXRlIOKAkyB3aGljaCBhcmUgb2Z0ZW4gZnJ1aXRmdWwgYXJlYXMgZm9yIGZ1enppbmcuCgpOb3csIGxldCYjMzk7cyBwaW5wb2ludCB0aGUgc3BlY2lmaWMgZnVuY3Rpb25zIHRoYXQgbmVlZCB0aGUgbW9zdCBmb2N1cy4gV2l0aGluIGBkcml2ZXJzL3ZpcnRpby92aXJ0aW9fYmFsbG9vbi5jYCwgSSYjMzk7bGwgYmUgbG9va2luZyBjbG9zZWx5IGF0IGByZXR1cm5fZnJlZV9wYWdlc190b19tbWAsIGB2aXJ0aW9fYmFsbG9vbl9zaHJpbmtlcl9zY2FuYCwgYHZpcnRpb19iYWxsb29uX3Nocmlua2VyX2NvdW50YCwgYHJlbW92ZV9jb21tb25gLCBgdmlydGJhbGxvb25fZnJlZXplYCwgYW5kIGB2aXJ0YmFsbG9vbl9yZXN0b3JlYC4gT3ZlciBpbiBgbW0vcGFnZV9yZXBvcnRpbmcuY2AsIG15IGF0dGVudGlvbiB3aWxsIGJlIG9uIGBfX3BhZ2VfcmVwb3J0aW5nX3JlcXVlc3RgIGFuZCBgcGFnZV9yZXBvcnRpbmdfcHJvY2Vzc2AuCgpGaW5hbGx5LCBqdXN0IGEgcXVpY2sgc2FuaXR5IGNoZWNrIG9uIHRoZSBjb25maWdzOiBgQ09ORklHX1ZJUlRJT19CQUxMT09OYCBmb3IgdGhlIHZpcnRpbyBiYWxsb29uIGNoYW5nZXMgYW5kIGBDT05GSUdfUEFHRV9SRVBPUlRJTkdgIGZvciB0aGUgcGFnZSByZXBvcnRpbmcgc3R1ZmYuIExvb2tzIGxpa2Ugd2UgYXJlIGdvb2QgdG8gZ28uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMDM6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7VklSVElPX0JBTExPT04mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3ZpcnRpby9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvdmlydGlvL0tjb25maWc9MTAxPWNvbmZpZyBWSVJUSU9fUE1FTVxuLS1cbmRyaXZlcnMvdmlydGlvL0tjb25maWctMTExLVxuZHJpdmVycy92aXJ0aW8vS2NvbmZpZzoxMTI6Y29uZmlnIFZJUlRJT19CQUxMT09OXG5kcml2ZXJzL3ZpcnRpby9LY29uZmlnLTExMy1cdHRyaXN0YXRlIFwmIzM0O1ZpcnRpbyBiYWxsb29uIGRyaXZlclwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAzOjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ0NjkKCQkJCQkJCW91dHB1dDogMjgKCQkJCQkJCXRob3VnaHRzOiAxMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHdyaXR0ZW4gaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqSW5pdGlhbCBDaGVja3BvaW50OiBQQUdFX1JFUE9SVElORyoqCgpSaWdodCwgbGV0JiMzOTtzIHRha2UgYSBsb29rIGF0IGBQQUdFX1JFUE9SVElOR2AuIEl0JiMzOTtzIG15IGdvLXRvIGZvciB1bmRlcnN0YW5kaW5nIHRoZSBjdXJyZW50IGRhdGEgbGFuZHNjYXBlLiBJIG5lZWQgdG8gZ2V0IGEgYmFzZWxpbmUgYmVmb3JlIEkgY2FuIHN0YXJ0IHRvIGFuYWx5c2UgdGhlIG1vcmUgY29tcGxleCBpc3N1ZXMuIFdoYXQgc3BlY2lmaWMgcXVlc3Rpb25zIG9yIHByb2JsZW0gaXMgaXQgcmVsYXRlZCB0bz8KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwMzo0ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtQQUdFX1JFUE9SVElORyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O21tL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bW0vS2NvbmZpZz02Njk9Y29uZmlnIENPTVBBQ1RfVU5FVklDVEFCTEVfREVGQVVMVFxuLS1cbm1tL0tjb25maWctNjc2LSMgc3VwcG9ydCBmb3IgZnJlZSBwYWdlIHJlcG9ydGluZ1xubW0vS2NvbmZpZzo2Nzc6Y29uZmlnIFBBR0VfUkVQT1JUSU5HXG5tbS9LY29uZmlnLTY3OC1cdGJvb2wgXCYjMzQ7RnJlZSBwYWdlIHJlcG9ydGluZ1wmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAzOjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ2ODIKCQkJCQkJCW91dHB1dDogMzEKCQkJCQkJCXRob3VnaHRzOiAyMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgaXNzdWUgbXlzZWxmOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBWSVJUSU9fQkFMTE9PTiBhbmQgUEFHRV9SRVBPUlRJTkcgRGVwZW5kZW5jeSoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gcXVpY2tseSBkZXRlcm1pbmUgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGBWSVJUSU9fQkFMTE9PTmAgYW5kIGBQQUdFX1JFUE9SVElOR2AuIE15IGluaXRpYWwgaHVuY2ggaXMgdGhhdCBgVklSVElPX0JBTExPT05gIG1pZ2h0ICppbXBseSogb3IgZXZlbiBkaXJlY3RseSBzZWxlY3QgYFBBR0VfUkVQT1JUSU5HYC4gSXQmIzM5O3MgYSBmYWlybHkgY29tbW9uIHBhdHRlcm4g4oCTIGEgZmVhdHVyZSBlbmFibGluZyBzb21ldGhpbmcgbGlrZSBiYWxsb29uaW5nIG9mdGVuIG5lZWRzIGEgd2F5IHRvIGFjdHVhbGx5IHJlcG9ydCBwYWdlIGluZm9ybWF0aW9uIHRvIHRoZSBob3N0LiBJIG5lZWQgdG8gY29uZmlybSB0aGlzIHF1aWNrbHkuIEkgbmVlZCB0byBjaGVjayB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBmaWxlcywgbWF5YmUgaW4gdGhlIGtlcm5lbCBzb3VyY2Ugb3IgcmVsZXZhbnQgYnVpbGQgY29uZmlndXJhdGlvbiB0byBzZWUgaWYgdGhlcmUgaXMgYW55IHNlbGVjdGlvbiBoYXBwZW5pbmcuIEtub3dpbmcgdGhlIGFyY2hpdGVjdHVyZSwgSSYjMzk7bGwgcHJvYmFibHkgbG9vayBpbnRvIGFueSBkZXBlbmRlbmNpZXMsIGFuZCB0aGVuIGNvbmZpcm0gaWYgdGhhdCBpcyB0aGUgZXhhY3QgYmVoYXZpb3Igb2YgdGhlIGNvbmZpZ3VyYXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMDM6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7UEFHRV9SRVBPUlRJTkcmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3ZpcnRpby9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvdmlydGlvL0tjb25maWc9MTEyPWNvbmZpZyBWSVJUSU9fQkFMTE9PTlxuLS1cbmRyaXZlcnMvdmlydGlvL0tjb25maWctMTE1LVx0c2VsZWN0IEJBTExPT05cbmRyaXZlcnMvdmlydGlvL0tjb25maWc6MTE2Olx0c2VsZWN0IFBBR0VfUkVQT1JUSU5HXG5kcml2ZXJzL3ZpcnRpby9LY29uZmlnLTExNy1cdGhlbHBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwMzo0ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MDAzCgkJCQkJCQlvdXRwdXQ6IDE1NAoJCQkJCQkJdGhvdWdodHM6IDQ0MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgVGFyZ2V0IENvZGUqKgoKT2theSwgc28gdGhlIGBWSVJUSU9fQkFMTE9PTmAgY29uZmlnICppcyogc3VmZmljaWVudCwgYnV0IGxpc3RpbmcgYm90aCBgVklSVElPX0JBTExPT05gIGFuZCBgUEFHRV9SRVBPUlRJTkdgIGlzIGEgZ29vZCBpZGVhIGZvciBjbGFyaXR5LiBBY3R1YWxseSwgd2FpdCwgYFBBR0VfUkVQT1JUSU5HYCBpcyBhIGJvb2xlYW4sIGFuZCBgVklSVElPX0JBTExPT05gIGlzIGEgdHJpc3RhdGUuIFRoYXQmIzM5O3MgYSBnb29kIGRpc3RpbmN0aW9uIHRvIG1ha2UsIHNvIGxldCYjMzk7cyBnbyB3aXRoIGxpc3RpbmcgdGhlbSBib3RoLgoKTm93LCB3aGljaCBmdW5jdGlvbnMgYXJlIHRoZSBrZXkgb25lcyB0byBmb2N1cyBvdXIgZnV6emluZyBlZmZvcnRzPyBMZXQmIzM5O3Mgc2VlLi4uIGB2aXJ0YmFsbG9vbl9mcmVlemVgLCBgdmlydGJhbGxvb25fcmVzdG9yZWAsIGB2aXJ0aW9fYmFsbG9vbl9zaHJpbmtlcl9zY2FuYCwgYHZpcnRpb19iYWxsb29uX3Nocmlua2VyX2NvdW50YCwgYHJldHVybl9mcmVlX3BhZ2VzX3RvX21tYCwgYF9fcGFnZV9yZXBvcnRpbmdfcmVxdWVzdGAsIGFuZCBgcGFnZV9yZXBvcnRpbmdfcHJvY2Vzc2AuCgpIb2xkIG9uIGEgc2Vjb25kLi4uIGB2aXJ0YmFsbG9vbl9mcmVlemVgIGFuZCBgdmlydGJhbGxvb25fcmVzdG9yZWAgYXJlIFBvd2VyIE1hbmFnZW1lbnQgKFBNKSBjYWxsYmFja3MuIENhbiBzeXprYWxsZXIgYWN0dWFsbHkgZnV6eiB0aG9zZT8gSSB0aGluayBpdCBjYW4sIHRocm91Z2ggc3lzZnMgb3Igc2ltaWxhciBtZXRob2RzLiBZZXMsIGl0IGNhbi4gQW5kIGB2aXJ0aW9fYmFsbG9vbl9zaHJpbmtlcl9zY2FuYCBhbmQgYHZpcnRpb19iYWxsb29uX3Nocmlua2VyX2NvdW50YCBhcmUgc2hyaW5rZXIgY2FsbGJhY2tzLCBsaWtlbHkgdHJpZ2dlcmVkIGJ5IG1lbW9yeSBwcmVzc3VyZS4gYHJldHVybl9mcmVlX3BhZ2VzX3RvX21tYCBpcyBsaWtlbHkgY2FsbGVkIGZyb20gZWl0aGVyIHRoZSBzaHJpbmtlciBvciBkdXJpbmcgcGFnZSByZW1vdmFsLiBUaGVuIHdlIGhhdmUgYF9fcGFnZV9yZXBvcnRpbmdfcmVxdWVzdGAgYW5kIGBwYWdlX3JlcG9ydGluZ19wcm9jZXNzYCwgdHJpZ2dlcmVkIGRpcmVjdGx5IGJ5IHBhZ2UgcmVwb3J0aW5nIGl0c2VsZi4KCkhtbSwgYW55IG90aGVyIGNvbmZpZ3VyYXRpb24gZGVwZW5kZW5jaWVzIHRvIGNvbnNpZGVyPyBMZXQmIzM5O3Mgc2VlLi4uIGBWSVJUSU9fQkFMTE9PTmAgZGVwZW5kcyBvbiBgVklSVElPYCBhcyBhIHdob2xlLCBidXQgYFBBR0VfUkVQT1JUSU5HYCBkb2VzbiYjMzk7dCBoYXZlIGFueSBzcGVjaWZpYyBkZXBlbmRlbmNpZXMuIE9rYXksIHRoYXQmIzM5O3Mgc3RyYWlnaHRmb3J3YXJkLgoKVGltZSB0byBjYWxsIHRoZSByZXN1bHRzLiBJdCYjMzk7cyBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmcgdGhpcywgYW5kIGhlcmUmIzM5O3Mgd2h5OiB0aGlzIHBhdGNoIGZ1bmRhbWVudGFsbHkgY2hhbmdlcyBob3cgdGhlIHZpcnRpbyBiYWxsb29uIGRyaXZlciBhbmQgcGFnZSByZXBvcnRpbmcgaW50ZXJhY3Qgd2l0aCBzdXNwZW5kL3Jlc3VtZS4gV2UmIzM5O3JlIHRhbGtpbmcgYWJvdXQgYSBuZXcgJiMzNDtzdXNwZW5kZWQmIzM0OyBmbGFnLCBhbmQgY2hhbmdlcyB0byB0aGUgd29ya3F1ZXVlIHVzZWQgZm9yIHBhZ2UgcmVwb3J0aW5nLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHJlYWNoYWJsZSBjb2RlLCBhbmQgdGhhdCYjMzk7cyBleGFjdGx5IHdoYXQgd2Ugd2FudCB0byB0ZXN0LiBTbyBoZXJlIGFyZSB0aGUgZGV0YWlsczoKCiogICAqKldvcnRoRnV6emluZyoqOiB0cnVlCiogICAqKkVuYWJsZUNvbmZpZ3MqKjogXFsmIzM0O1ZJUlRJT1xfQkFMTE9PTiYjMzQ7LCAmIzM0O1BBR0VcX1JFUE9SVElORyYjMzQ7XF0KKiAgICoqRm9jdXNTeW1ib2xzKio6IFxbJiMzNDt2aXJ0YmFsbG9vblxfZnJlZXplJiMzNDssICYjMzQ7dmlydGJhbGxvb25cX3Jlc3RvcmUmIzM0OywgJiMzNDt2aXJ0aW9cX2JhbGxvb25cX3Nocmlua2VyXF9zY2FuJiMzNDssICYjMzQ7dmlydGlvXF9iYWxsb29uXF9zaHJpbmtlclxfY291bnQmIzM0OywgJiMzNDtyZXR1cm5cX2ZyZWVcX3BhZ2VzXF90b1xfbW0mIzM0OywgJiMzNDtcX1xfcGFnZVxfcmVwb3J0aW5nXF9yZXF1ZXN0JiMzNDssICYjMzQ7cGFnZVxfcmVwb3J0aW5nXF9wcm9jZXNzJiMzNDtcXQoqICAgKipSZWFzb25pbmcqKjogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHZpcnRpbyBiYWxsb29uIGRyaXZlciBhbmQgcGFnZSByZXBvcnRpbmcgdG8gaGFuZGxlIHN1c3BlbmQvcmVzdW1lIHByb3Blcmx5LiBJdCBhZGRzIGEgc3VzcGVuZGVkIGZsYWcgYW5kIGNoYW5nZXMgdGhlIHdvcmtxdWV1ZSB1c2VkIGZvciBwYWdlIHJlcG9ydGluZy4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiByZWFjaGFibGUgY29kZS4mIzM0OwoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwMzo0ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VklSVElPX0JBTExPT04mIzM0OywKICAgICYjMzQ7UEFHRV9SRVBPUlRJTkcmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt2aXJ0YmFsbG9vbl9mcmVlemUmIzM0OywKICAgICYjMzQ7dmlydGJhbGxvb25fcmVzdG9yZSYjMzQ7LAogICAgJiMzNDt2aXJ0aW9fYmFsbG9vbl9zaHJpbmtlcl9zY2FuJiMzNDssCiAgICAmIzM0O3ZpcnRpb19iYWxsb29uX3Nocmlua2VyX2NvdW50JiMzNDssCiAgICAmIzM0O3JldHVybl9mcmVlX3BhZ2VzX3RvX21tJiMzNDssCiAgICAmIzM0O19fcGFnZV9yZXBvcnRpbmdfcmVxdWVzdCYjMzQ7LAogICAgJiMzNDtwYWdlX3JlcG9ydGluZ19wcm9jZXNzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSB2aXJ0aW8gYmFsbG9vbiBkcml2ZXIgYW5kIHBhZ2UgcmVwb3J0aW5nIHRvIGhhbmRsZSBzdXNwZW5kL3Jlc3VtZSBwcm9wZXJseS4gSXQgYWRkcyBhIHN1c3BlbmRlZCBmbGFnIGFuZCBjaGFuZ2VzIHRoZSB3b3JrcXVldWUgdXNlZCBmb3IgcGFnZSByZXBvcnRpbmcuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcmVhY2hhYmxlIGNvZGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1ZJUlRJT19CQUxMT09OJiMzNDssCiAgICAmIzM0O1BBR0VfUkVQT1JUSU5HJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dmlydGJhbGxvb25fZnJlZXplJiMzNDssCiAgICAmIzM0O3ZpcnRiYWxsb29uX3Jlc3RvcmUmIzM0OywKICAgICYjMzQ7dmlydGlvX2JhbGxvb25fc2hyaW5rZXJfc2NhbiYjMzQ7LAogICAgJiMzNDt2aXJ0aW9fYmFsbG9vbl9zaHJpbmtlcl9jb3VudCYjMzQ7LAogICAgJiMzNDtyZXR1cm5fZnJlZV9wYWdlc190b19tbSYjMzQ7LAogICAgJiMzNDtfX3BhZ2VfcmVwb3J0aW5nX3JlcXVlc3QmIzM0OywKICAgICYjMzQ7cGFnZV9yZXBvcnRpbmdfcHJvY2VzcyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgdmlydGlvIGJhbGxvb24gZHJpdmVyIGFuZCBwYWdlIHJlcG9ydGluZyB0byBoYW5kbGUgc3VzcGVuZC9yZXN1bWUgcHJvcGVybHkuIEl0IGFkZHMgYSBzdXNwZW5kZWQgZmxhZyBhbmQgY2hhbmdlcyB0aGUgd29ya3F1ZXVlIHVzZWQgZm9yIHBhZ2UgcmVwb3J0aW5nLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHJlYWNoYWJsZSBjb2RlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMTdUMDM6NDg6MTEuNDExMzI2NDc3WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjA1MzQ2MjMwMzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVklSVElPX0JBTExPT05cIixcbiAgICBcIlBBR0VfUkVQT1JUSU5HXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidmlydGJhbGxvb25fZnJlZXplXCIsXG4gICAgXCJ2aXJ0YmFsbG9vbl9yZXN0b3JlXCIsXG4gICAgXCJ2aXJ0aW9fYmFsbG9vbl9zaHJpbmtlcl9zY2FuXCIsXG4gICAgXCJ2aXJ0aW9fYmFsbG9vbl9zaHJpbmtlcl9jb3VudFwiLFxuICAgIFwicmV0dXJuX2ZyZWVfcGFnZXNfdG9fbW1cIixcbiAgICBcIl9fcGFnZV9yZXBvcnRpbmdfcmVxdWVzdFwiLFxuICAgIFwicGFnZV9yZXBvcnRpbmdfcHJvY2Vzc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSB2aXJ0aW8gYmFsbG9vbiBkcml2ZXIgYW5kIHBhZ2UgcmVwb3J0aW5nIHRvIGhhbmRsZSBzdXNwZW5kL3Jlc3VtZSBwcm9wZXJseS4gSXQgYWRkcyBhIHN1c3BlbmRlZCBmbGFnIGFuZCBjaGFuZ2VzIHRoZSB3b3JrcXVldWUgdXNlZCBmb3IgcGFnZSByZXBvcnRpbmcuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcmVhY2hhYmxlIGNvZGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDAzOjQ4OjExLjQxMTMzMzI3N1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjY2ODU3MTAwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZDk1ZGNjYmVjNDM3YzE0NDY3ZmEwMGYyZTkzNGY4NjQ4NDNjNWY5NVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIEp1bCAxNyAwMzo0ODowOSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpcnRpby92aXJ0aW9fYmFsbG9vbi5jIGIvZHJpdmVycy92aXJ0aW8vdmlydGlvX2JhbGxvb24uY1xcbmluZGV4IDA4OGIzYTBlNmNlNmNjLi4zOGUxMTY2YTY0NzZjYyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL3ZpcnRpby92aXJ0aW9fYmFsbG9vbi5jXFxuKysrIGIvZHJpdmVycy92aXJ0aW8vdmlydGlvX2JhbGxvb24uY1xcbkBAIC02OCw2ICs2OCw4IEBAIHN0cnVjdCB2aXJ0aW9fYmFsbG9vbiB7XFxuIFxcdC8qIFByZXZlbnQgdXBkYXRpbmcgYmFsbG9vbiB3aGVuIGl0IGlzIGJlaW5nIGNhbmNlbGVkLiAqL1xcbiBcXHRzcGlubG9ja190IHN0b3BfdXBkYXRlX2xvY2s7XFxuIFxcdGJvb2wgc3RvcF91cGRhdGU7XFxuK1xcdC8qIFByZXZlbnQgc2hyaW5rZXIgZnJvbSBydW5uaW5nIHdoaWxlIGRldmljZSBpcyBzdXNwZW5kZWQuICovXFxuK1xcdGJvb2wgc3VzcGVuZGVkO1xcbiBcXHQvKiBCaXRtYXAgdG8gaW5kaWNhdGUgaWYgcmVhZGluZyB0aGUgcmVsYXRlZCBjb25maWcgZmllbGRzIGFyZSBuZWVkZWQgKi9cXG4gXFx0dW5zaWduZWQgbG9uZyBjb25maWdfcmVhZF9iaXRtYXA7XFxuIFxcbkBAIC00NzEsOSArNDczLDkgQEAgc3RhdGljIGlubGluZSBzNjQgdG93YXJkc190YXJnZXQoc3RydWN0IHZpcnRpb19iYWxsb29uICp2YilcXG4gXFx0cmV0dXJuIHRhcmdldCAtIHZiLVxcdTAwM2VudW1fcGFnZXM7XFxuIH1cXG4gXFxuLS8qIEdpdmVzIGJhY2sgQG51bV90b19yZXR1cm4gYmxvY2tzIG9mIGZyZWUgcGFnZXMgdG8gbW0uICovXFxuLXN0YXRpYyB1bnNpZ25lZCBsb25nIHJldHVybl9mcmVlX3BhZ2VzX3RvX21tKHN0cnVjdCB2aXJ0aW9fYmFsbG9vbiAqdmIsXFxuLVxcdFxcdFxcdFxcdFxcdCAgICAgdW5zaWduZWQgbG9uZyBudW1fdG9fcmV0dXJuKVxcbisvKiBIZWxwZXI6IG11c3QgYmUgY2FsbGVkIHdpdGggZnJlZV9wYWdlX2xpc3RfbG9jayBoZWxkICovXFxuK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9fcmV0dXJuX2ZyZWVfcGFnZXNfdG9fbW0oc3RydWN0IHZpcnRpb19iYWxsb29uICp2YixcXG4rXFx0XFx0XFx0XFx0XFx0ICAgICAgIHVuc2lnbmVkIGxvbmcgbnVtX3RvX3JldHVybilcXG4ge1xcbiBcXHR1bnNpZ25lZCBsb25nIG51bV9yZXR1cm5lZCA9IDA7XFxuIFxcdHN0cnVjdCBwYWdlICpwYWdlLCAqbmV4dDtcXG5AQCAtNDgxLDggKzQ4Myw2IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIHJldHVybl9mcmVlX3BhZ2VzX3RvX21tKHN0cnVjdCB2aXJ0aW9fYmFsbG9vbiAqdmIsXFxuIFxcdGlmICh1bmxpa2VseSghbnVtX3RvX3JldHVybikpXFxuIFxcdFxcdHJldHVybiAwO1xcbiBcXG4tXFx0c3Bpbl9sb2NrX2lycShcXHUwMDI2dmItXFx1MDAzZWZyZWVfcGFnZV9saXN0X2xvY2spO1xcbi1cXG4gXFx0bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHBhZ2UsIG5leHQsIFxcdTAwMjZ2Yi1cXHUwMDNlZnJlZV9wYWdlX2xpc3QsIGxydSkge1xcbiBcXHRcXHRsaXN0X2RlbChcXHUwMDI2cGFnZS1cXHUwMDNlbHJ1KTtcXG4gXFx0XFx0X19mcmVlX3BhZ2VzKHBhZ2UsIFZJUlRJT19CQUxMT09OX0hJTlRfQkxPQ0tfT1JERVIpO1xcbkBAIC00OTAsMTEgKzQ5MCwyNyBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyByZXR1cm5fZnJlZV9wYWdlc190b19tbShzdHJ1Y3QgdmlydGlvX2JhbGxvb24gKnZiLFxcbiBcXHRcXHRcXHRicmVhaztcXG4gXFx0fVxcbiBcXHR2Yi1cXHUwMDNlbnVtX2ZyZWVfcGFnZV9ibG9ja3MgLT0gbnVtX3JldHVybmVkO1xcbi1cXHRzcGluX3VubG9ja19pcnEoXFx1MDAyNnZiLVxcdTAwM2VmcmVlX3BhZ2VfbGlzdF9sb2NrKTtcXG4gXFxuIFxcdHJldHVybiBudW1fcmV0dXJuZWQ7XFxuIH1cXG4gXFxuKy8qIEdpdmVzIGJhY2sgQG51bV90b19yZXR1cm4gYmxvY2tzIG9mIGZyZWUgcGFnZXMgdG8gbW0uICovXFxuK3N0YXRpYyB1bnNpZ25lZCBsb25nIHJldHVybl9mcmVlX3BhZ2VzX3RvX21tKHN0cnVjdCB2aXJ0aW9fYmFsbG9vbiAqdmIsXFxuK1xcdFxcdFxcdFxcdFxcdCAgICAgdW5zaWduZWQgbG9uZyBudW1fdG9fcmV0dXJuKVxcbit7XFxuK1xcdHVuc2lnbmVkIGxvbmcgcmV0O1xcbitcXG4rXFx0c3Bpbl9sb2NrX2lycShcXHUwMDI2dmItXFx1MDAzZWZyZWVfcGFnZV9saXN0X2xvY2spO1xcbitcXHRpZiAodmItXFx1MDAzZXN1c3BlbmRlZCkge1xcbitcXHRcXHRzcGluX3VubG9ja19pcnEoXFx1MDAyNnZiLVxcdTAwM2VmcmVlX3BhZ2VfbGlzdF9sb2NrKTtcXG4rXFx0XFx0cmV0dXJuIDA7XFxuK1xcdH1cXG4rXFx0cmV0ID0gX19yZXR1cm5fZnJlZV9wYWdlc190b19tbSh2YiwgbnVtX3RvX3JldHVybik7XFxuK1xcdHNwaW5fdW5sb2NrX2lycShcXHUwMDI2dmItXFx1MDAzZWZyZWVfcGFnZV9saXN0X2xvY2spO1xcbitcXG4rXFx0cmV0dXJuIHJldDtcXG4rfVxcbitcXG4gc3RhdGljIHZvaWQgdmlydGlvX2JhbGxvb25fcXVldWVfZnJlZV9wYWdlX3dvcmsoc3RydWN0IHZpcnRpb19iYWxsb29uICp2YilcXG4ge1xcbiBcXHRpZiAoIXZpcnRpb19oYXNfZmVhdHVyZSh2Yi1cXHUwMDNldmRldiwgVklSVElPX0JBTExPT05fRl9GUkVFX1BBR0VfSElOVCkpXFxuQEAgLTg3MSw2ICs4ODcsOSBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyB2aXJ0aW9fYmFsbG9vbl9zaHJpbmtlcl9zY2FuKHN0cnVjdCBzaHJpbmtlciAqc2hyaW5rZXIsXFxuIHtcXG4gXFx0c3RydWN0IHZpcnRpb19iYWxsb29uICp2YiA9IHNocmlua2VyLVxcdTAwM2Vwcml2YXRlX2RhdGE7XFxuIFxcbitcXHRpZiAoUkVBRF9PTkNFKHZiLVxcdTAwM2VzdXNwZW5kZWQpKVxcbitcXHRcXHRyZXR1cm4gMDtcXG4rXFxuIFxcdHJldHVybiBzaHJpbmtfZnJlZV9wYWdlcyh2Yiwgc2MtXFx1MDAzZW5yX3RvX3NjYW4pO1xcbiB9XFxuIFxcbkBAIC04NzksNiArODk4LDkgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgdmlydGlvX2JhbGxvb25fc2hyaW5rZXJfY291bnQoc3RydWN0IHNocmlua2VyICpzaHJpbmtlcixcXG4ge1xcbiBcXHRzdHJ1Y3QgdmlydGlvX2JhbGxvb24gKnZiID0gc2hyaW5rZXItXFx1MDAzZXByaXZhdGVfZGF0YTtcXG4gXFxuK1xcdGlmIChSRUFEX09OQ0UodmItXFx1MDAzZXN1c3BlbmRlZCkpXFxuK1xcdFxcdHJldHVybiAwO1xcbitcXG4gXFx0cmV0dXJuIHZiLVxcdTAwM2VudW1fZnJlZV9wYWdlX2Jsb2NrcyAqIFZJUlRJT19CQUxMT09OX0hJTlRfQkxPQ0tfUEFHRVM7XFxuIH1cXG4gXFxuQEAgLTEwODksOCArMTExMSwxMSBAQCBzdGF0aWMgdm9pZCByZW1vdmVfY29tbW9uKHN0cnVjdCB2aXJ0aW9fYmFsbG9vbiAqdmIpXFxuIFxcdHVwZGF0ZV9iYWxsb29uX3NpemUodmIpO1xcbiBcXG4gXFx0LyogVGhlcmUgbWlnaHQgYmUgZnJlZSBwYWdlcyB0aGF0IGFyZSBiZWluZyByZXBvcnRlZDogcmVsZWFzZSB0aGVtLiAqL1xcbi1cXHRpZiAodmlydGlvX2hhc19mZWF0dXJlKHZiLVxcdTAwM2V2ZGV2LCBWSVJUSU9fQkFMTE9PTl9GX0ZSRUVfUEFHRV9ISU5UKSlcXG4tXFx0XFx0cmV0dXJuX2ZyZWVfcGFnZXNfdG9fbW0odmIsIFVMT05HX01BWCk7XFxuK1xcdGlmICh2aXJ0aW9faGFzX2ZlYXR1cmUodmItXFx1MDAzZXZkZXYsIFZJUlRJT19CQUxMT09OX0ZfRlJFRV9QQUdFX0hJTlQpKSB7XFxuK1xcdFxcdHNwaW5fbG9ja19pcnEoXFx1MDAyNnZiLVxcdTAwM2VmcmVlX3BhZ2VfbGlzdF9sb2NrKTtcXG4rXFx0XFx0X19yZXR1cm5fZnJlZV9wYWdlc190b19tbSh2YiwgVUxPTkdfTUFYKTtcXG4rXFx0XFx0c3Bpbl91bmxvY2tfaXJxKFxcdTAwMjZ2Yi1cXHUwMDNlZnJlZV9wYWdlX2xpc3RfbG9jayk7XFxuK1xcdH1cXG4gXFxuIFxcdC8qIE5vdyB3ZSByZXNldCB0aGUgZGV2aWNlIHNvIHdlIGNhbiBjbGVhbiB1cCB0aGUgcXVldWVzLiAqL1xcbiBcXHR2aXJ0aW9fcmVzZXRfZGV2aWNlKHZiLVxcdTAwM2V2ZGV2KTtcXG5AQCAtMTEzMyw2ICsxMTU4LDEwIEBAIHN0YXRpYyBpbnQgdmlydGJhbGxvb25fZnJlZXplKHN0cnVjdCB2aXJ0aW9fZGV2aWNlICp2ZGV2KVxcbiBcXHQgKiBUaGUgd29ya3F1ZXVlIGlzIGFscmVhZHkgZnJvemVuIGJ5IHRoZSBQTSBjb3JlIGJlZm9yZSB0aGlzXFxuIFxcdCAqIGZ1bmN0aW9uIGlzIGNhbGxlZC5cXG4gXFx0ICovXFxuK1xcdHNwaW5fbG9ja19pcnEoXFx1MDAyNnZiLVxcdTAwM2VmcmVlX3BhZ2VfbGlzdF9sb2NrKTtcXG4rXFx0V1JJVEVfT05DRSh2Yi1cXHUwMDNlc3VzcGVuZGVkLCB0cnVlKTtcXG4rXFx0c3Bpbl91bmxvY2tfaXJxKFxcdTAwMjZ2Yi1cXHUwMDNlZnJlZV9wYWdlX2xpc3RfbG9jayk7XFxuK1xcbiBcXHRyZW1vdmVfY29tbW9uKHZiKTtcXG4gXFx0cmV0dXJuIDA7XFxuIH1cXG5AQCAtMTE0OCw2ICsxMTc3LDEwIEBAIHN0YXRpYyBpbnQgdmlydGJhbGxvb25fcmVzdG9yZShzdHJ1Y3QgdmlydGlvX2RldmljZSAqdmRldilcXG4gXFxuIFxcdHZpcnRpb19kZXZpY2VfcmVhZHkodmRldik7XFxuIFxcbitcXHRzcGluX2xvY2tfaXJxKFxcdTAwMjZ2Yi1cXHUwMDNlZnJlZV9wYWdlX2xpc3RfbG9jayk7XFxuK1xcdFdSSVRFX09OQ0UodmItXFx1MDAzZXN1c3BlbmRlZCwgZmFsc2UpO1xcbitcXHRzcGluX3VubG9ja19pcnEoXFx1MDAyNnZiLVxcdTAwM2VmcmVlX3BhZ2VfbGlzdF9sb2NrKTtcXG4rXFxuIFxcdGlmICh0b3dhcmRzX3RhcmdldCh2YikpXFxuIFxcdFxcdHZpcnRiYWxsb29uX2NoYW5nZWQodmRldik7XFxuIFxcdHVwZGF0ZV9iYWxsb29uX3NpemUodmIpO1xcbmRpZmYgLS1naXQgYS9tbS9wYWdlX3JlcG9ydGluZy5jIGIvbW0vcGFnZV9yZXBvcnRpbmcuY1xcbmluZGV4IDc0MThmMmU1MDBiYjQ4Li40ZGM2ZjRiODUyMjM5OCAxMDA2NDRcXG4tLS0gYS9tbS9wYWdlX3JlcG9ydGluZy5jXFxuKysrIGIvbW0vcGFnZV9yZXBvcnRpbmcuY1xcbkBAIC04MCw3ICs4MCw4IEBAIF9fcGFnZV9yZXBvcnRpbmdfcmVxdWVzdChzdHJ1Y3QgcGFnZV9yZXBvcnRpbmdfZGV2X2luZm8gKnByZGV2KVxcbiBcXHQgKiBub3cgd2UgYXJlIGxpbWl0aW5nIHRoaXMgdG8gcnVubmluZyBubyBtb3JlIHRoYW4gb25jZSBldmVyeVxcbiBcXHQgKiBjb3VwbGUgb2Ygc2Vjb25kcy5cXG4gXFx0ICovXFxuLVxcdHNjaGVkdWxlX2RlbGF5ZWRfd29yayhcXHUwMDI2cHJkZXYtXFx1MDAzZXdvcmssIFBBR0VfUkVQT1JUSU5HX0RFTEFZKTtcXG4rXFx0cXVldWVfZGVsYXllZF93b3JrKHN5c3RlbV9mcmVlemFibGVfd3EsIFxcdTAwMjZwcmRldi1cXHUwMDNld29yayxcXG4rXFx0XFx0XFx0ICAgUEFHRV9SRVBPUlRJTkdfREVMQVkpO1xcbiB9XFxuIFxcbiAvKiBub3RpZnkgcHJkZXYgb2YgZnJlZSBwYWdlIHJlcG9ydGluZyByZXF1ZXN0ICovXFxuQEAgLTM0Myw3ICszNDQsOCBAQCBzdGF0aWMgdm9pZCBwYWdlX3JlcG9ydGluZ19wcm9jZXNzKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4gXFx0ICovXFxuIFxcdHN0YXRlID0gYXRvbWljX2NtcHhjaGcoXFx1MDAyNnByZGV2LVxcdTAwM2VzdGF0ZSwgc3RhdGUsIFBBR0VfUkVQT1JUSU5HX0lETEUpO1xcbiBcXHRpZiAoc3RhdGUgPT0gUEFHRV9SRVBPUlRJTkdfUkVRVUVTVEVEKVxcbi1cXHRcXHRzY2hlZHVsZV9kZWxheWVkX3dvcmsoXFx1MDAyNnByZGV2LVxcdTAwM2V3b3JrLCBQQUdFX1JFUE9SVElOR19ERUxBWSk7XFxuK1xcdFxcdHF1ZXVlX2RlbGF5ZWRfd29yayhzeXN0ZW1fZnJlZXphYmxlX3dxLCBcXHUwMDI2cHJkZXYtXFx1MDAzZXdvcmssXFxuK1xcdFxcdFxcdFxcdCAgIFBBR0VfUkVQT1JUSU5HX0RFTEFZKTtcXG4gfVxcbiBcXG4gc3RhdGljIERFRklORV9NVVRFWChwYWdlX3JlcG9ydGluZ19tdXRleCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDAzOjQ4OjEyLjA3OTE3MDk0NloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTk4NjY3NjQ1MzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVklSVElPX0JBTExPT05cIixcbiAgICBcIlBBR0VfUkVQT1JUSU5HXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidmlydGJhbGxvb25fZnJlZXplXCIsXG4gICAgXCJ2aXJ0YmFsbG9vbl9yZXN0b3JlXCIsXG4gICAgXCJ2aXJ0aW9fYmFsbG9vbl9zaHJpbmtlcl9zY2FuXCIsXG4gICAgXCJ2aXJ0aW9fYmFsbG9vbl9zaHJpbmtlcl9jb3VudFwiLFxuICAgIFwicmV0dXJuX2ZyZWVfcGFnZXNfdG9fbW1cIixcbiAgICBcIl9fcGFnZV9yZXBvcnRpbmdfcmVxdWVzdFwiLFxuICAgIFwicGFnZV9yZXBvcnRpbmdfcHJvY2Vzc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSB2aXJ0aW8gYmFsbG9vbiBkcml2ZXIgYW5kIHBhZ2UgcmVwb3J0aW5nIHRvIGhhbmRsZSBzdXNwZW5kL3Jlc3VtZSBwcm9wZXJseS4gSXQgYWRkcyBhIHN1c3BlbmRlZCBmbGFnIGFuZCBjaGFuZ2VzIHRoZSB3b3JrcXVldWUgdXNlZCBmb3IgcGFnZSByZXBvcnRpbmcuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcmVhY2hhYmxlIGNvZGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZDk1ZGNjYmVjNDM3YzE0NDY3ZmEwMGYyZTkzNGY4NjQ4NDNjNWY5NVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDE3IDAzOjQ4OjA5IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy92aXJ0aW8vdmlydGlvX2JhbGxvb24uYyBiL2RyaXZlcnMvdmlydGlvL3ZpcnRpb19iYWxsb29uLmNcbmluZGV4IDA4OGIzYTBlNmNlNmNjLi4zOGUxMTY2YTY0NzZjYyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvdmlydGlvL3ZpcnRpb19iYWxsb29uLmNcbisrKyBiL2RyaXZlcnMvdmlydGlvL3ZpcnRpb19iYWxsb29uLmNcbkBAIC02OCw2ICs2OCw4IEBAIHN0cnVjdCB2aXJ0aW9fYmFsbG9vbiB7XG4gXHQvKiBQcmV2ZW50IHVwZGF0aW5nIGJhbGxvb24gd2hlbiBpdCBpcyBiZWluZyBjYW5jZWxlZC4gKi9cbiBcdHNwaW5sb2NrX3Qgc3RvcF91cGRhdGVfbG9jaztcbiBcdGJvb2wgc3RvcF91cGRhdGU7XG4rXHQvKiBQcmV2ZW50IHNocmlua2VyIGZyb20gcnVubmluZyB3aGlsZSBkZXZpY2UgaXMgc3VzcGVuZGVkLiAqL1xuK1x0Ym9vbCBzdXNwZW5kZWQ7XG4gXHQvKiBCaXRtYXAgdG8gaW5kaWNhdGUgaWYgcmVhZGluZyB0aGUgcmVsYXRlZCBjb25maWcgZmllbGRzIGFyZSBuZWVkZWQgKi9cbiBcdHVuc2lnbmVkIGxvbmcgY29uZmlnX3JlYWRfYml0bWFwO1xuIFxuQEAgLTQ3MSw5ICs0NzMsOSBAQCBzdGF0aWMgaW5saW5lIHM2NCB0b3dhcmRzX3RhcmdldChzdHJ1Y3QgdmlydGlvX2JhbGxvb24gKnZiKVxuIFx0cmV0dXJuIHRhcmdldCAtIHZiLVx1MDAzZW51bV9wYWdlcztcbiB9XG4gXG4tLyogR2l2ZXMgYmFjayBAbnVtX3RvX3JldHVybiBibG9ja3Mgb2YgZnJlZSBwYWdlcyB0byBtbS4gKi9cbi1zdGF0aWMgdW5zaWduZWQgbG9uZyByZXR1cm5fZnJlZV9wYWdlc190b19tbShzdHJ1Y3QgdmlydGlvX2JhbGxvb24gKnZiLFxuLVx0XHRcdFx0XHQgICAgIHVuc2lnbmVkIGxvbmcgbnVtX3RvX3JldHVybilcbisvKiBIZWxwZXI6IG11c3QgYmUgY2FsbGVkIHdpdGggZnJlZV9wYWdlX2xpc3RfbG9jayBoZWxkICovXG4rc3RhdGljIHVuc2lnbmVkIGxvbmcgX19yZXR1cm5fZnJlZV9wYWdlc190b19tbShzdHJ1Y3QgdmlydGlvX2JhbGxvb24gKnZiLFxuK1x0XHRcdFx0XHQgICAgICAgdW5zaWduZWQgbG9uZyBudW1fdG9fcmV0dXJuKVxuIHtcbiBcdHVuc2lnbmVkIGxvbmcgbnVtX3JldHVybmVkID0gMDtcbiBcdHN0cnVjdCBwYWdlICpwYWdlLCAqbmV4dDtcbkBAIC00ODEsOCArNDgzLDYgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgcmV0dXJuX2ZyZWVfcGFnZXNfdG9fbW0oc3RydWN0IHZpcnRpb19iYWxsb29uICp2YixcbiBcdGlmICh1bmxpa2VseSghbnVtX3RvX3JldHVybikpXG4gXHRcdHJldHVybiAwO1xuIFxuLVx0c3Bpbl9sb2NrX2lycShcdTAwMjZ2Yi1cdTAwM2VmcmVlX3BhZ2VfbGlzdF9sb2NrKTtcbi1cbiBcdGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShwYWdlLCBuZXh0LCBcdTAwMjZ2Yi1cdTAwM2VmcmVlX3BhZ2VfbGlzdCwgbHJ1KSB7XG4gXHRcdGxpc3RfZGVsKFx1MDAyNnBhZ2UtXHUwMDNlbHJ1KTtcbiBcdFx0X19mcmVlX3BhZ2VzKHBhZ2UsIFZJUlRJT19CQUxMT09OX0hJTlRfQkxPQ0tfT1JERVIpO1xuQEAgLTQ5MCwxMSArNDkwLDI3IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIHJldHVybl9mcmVlX3BhZ2VzX3RvX21tKHN0cnVjdCB2aXJ0aW9fYmFsbG9vbiAqdmIsXG4gXHRcdFx0YnJlYWs7XG4gXHR9XG4gXHR2Yi1cdTAwM2VudW1fZnJlZV9wYWdlX2Jsb2NrcyAtPSBudW1fcmV0dXJuZWQ7XG4tXHRzcGluX3VubG9ja19pcnEoXHUwMDI2dmItXHUwMDNlZnJlZV9wYWdlX2xpc3RfbG9jayk7XG4gXG4gXHRyZXR1cm4gbnVtX3JldHVybmVkO1xuIH1cbiBcbisvKiBHaXZlcyBiYWNrIEBudW1fdG9fcmV0dXJuIGJsb2NrcyBvZiBmcmVlIHBhZ2VzIHRvIG1tLiAqL1xuK3N0YXRpYyB1bnNpZ25lZCBsb25nIHJldHVybl9mcmVlX3BhZ2VzX3RvX21tKHN0cnVjdCB2aXJ0aW9fYmFsbG9vbiAqdmIsXG4rXHRcdFx0XHRcdCAgICAgdW5zaWduZWQgbG9uZyBudW1fdG9fcmV0dXJuKVxuK3tcbitcdHVuc2lnbmVkIGxvbmcgcmV0O1xuK1xuK1x0c3Bpbl9sb2NrX2lycShcdTAwMjZ2Yi1cdTAwM2VmcmVlX3BhZ2VfbGlzdF9sb2NrKTtcbitcdGlmICh2Yi1cdTAwM2VzdXNwZW5kZWQpIHtcbitcdFx0c3Bpbl91bmxvY2tfaXJxKFx1MDAyNnZiLVx1MDAzZWZyZWVfcGFnZV9saXN0X2xvY2spO1xuK1x0XHRyZXR1cm4gMDtcbitcdH1cbitcdHJldCA9IF9fcmV0dXJuX2ZyZWVfcGFnZXNfdG9fbW0odmIsIG51bV90b19yZXR1cm4pO1xuK1x0c3Bpbl91bmxvY2tfaXJxKFx1MDAyNnZiLVx1MDAzZWZyZWVfcGFnZV9saXN0X2xvY2spO1xuK1xuK1x0cmV0dXJuIHJldDtcbit9XG4rXG4gc3RhdGljIHZvaWQgdmlydGlvX2JhbGxvb25fcXVldWVfZnJlZV9wYWdlX3dvcmsoc3RydWN0IHZpcnRpb19iYWxsb29uICp2YilcbiB7XG4gXHRpZiAoIXZpcnRpb19oYXNfZmVhdHVyZSh2Yi1cdTAwM2V2ZGV2LCBWSVJUSU9fQkFMTE9PTl9GX0ZSRUVfUEFHRV9ISU5UKSlcbkBAIC04NzEsNiArODg3LDkgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgdmlydGlvX2JhbGxvb25fc2hyaW5rZXJfc2NhbihzdHJ1Y3Qgc2hyaW5rZXIgKnNocmlua2VyLFxuIHtcbiBcdHN0cnVjdCB2aXJ0aW9fYmFsbG9vbiAqdmIgPSBzaHJpbmtlci1cdTAwM2Vwcml2YXRlX2RhdGE7XG4gXG4rXHRpZiAoUkVBRF9PTkNFKHZiLVx1MDAzZXN1c3BlbmRlZCkpXG4rXHRcdHJldHVybiAwO1xuK1xuIFx0cmV0dXJuIHNocmlua19mcmVlX3BhZ2VzKHZiLCBzYy1cdTAwM2Vucl90b19zY2FuKTtcbiB9XG4gXG5AQCAtODc5LDYgKzg5OCw5IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIHZpcnRpb19iYWxsb29uX3Nocmlua2VyX2NvdW50KHN0cnVjdCBzaHJpbmtlciAqc2hyaW5rZXIsXG4ge1xuIFx0c3RydWN0IHZpcnRpb19iYWxsb29uICp2YiA9IHNocmlua2VyLVx1MDAzZXByaXZhdGVfZGF0YTtcbiBcbitcdGlmIChSRUFEX09OQ0UodmItXHUwMDNlc3VzcGVuZGVkKSlcbitcdFx0cmV0dXJuIDA7XG4rXG4gXHRyZXR1cm4gdmItXHUwMDNlbnVtX2ZyZWVfcGFnZV9ibG9ja3MgKiBWSVJUSU9fQkFMTE9PTl9ISU5UX0JMT0NLX1BBR0VTO1xuIH1cbiBcbkBAIC0xMDg5LDggKzExMTEsMTEgQEAgc3RhdGljIHZvaWQgcmVtb3ZlX2NvbW1vbihzdHJ1Y3QgdmlydGlvX2JhbGxvb24gKnZiKVxuIFx0dXBkYXRlX2JhbGxvb25fc2l6ZSh2Yik7XG4gXG4gXHQvKiBUaGVyZSBtaWdodCBiZSBmcmVlIHBhZ2VzIHRoYXQgYXJlIGJlaW5nIHJlcG9ydGVkOiByZWxlYXNlIHRoZW0uICovXG4tXHRpZiAodmlydGlvX2hhc19mZWF0dXJlKHZiLVx1MDAzZXZkZXYsIFZJUlRJT19CQUxMT09OX0ZfRlJFRV9QQUdFX0hJTlQpKVxuLVx0XHRyZXR1cm5fZnJlZV9wYWdlc190b19tbSh2YiwgVUxPTkdfTUFYKTtcbitcdGlmICh2aXJ0aW9faGFzX2ZlYXR1cmUodmItXHUwMDNldmRldiwgVklSVElPX0JBTExPT05fRl9GUkVFX1BBR0VfSElOVCkpIHtcbitcdFx0c3Bpbl9sb2NrX2lycShcdTAwMjZ2Yi1cdTAwM2VmcmVlX3BhZ2VfbGlzdF9sb2NrKTtcbitcdFx0X19yZXR1cm5fZnJlZV9wYWdlc190b19tbSh2YiwgVUxPTkdfTUFYKTtcbitcdFx0c3Bpbl91bmxvY2tfaXJxKFx1MDAyNnZiLVx1MDAzZWZyZWVfcGFnZV9saXN0X2xvY2spO1xuK1x0fVxuIFxuIFx0LyogTm93IHdlIHJlc2V0IHRoZSBkZXZpY2Ugc28gd2UgY2FuIGNsZWFuIHVwIHRoZSBxdWV1ZXMuICovXG4gXHR2aXJ0aW9fcmVzZXRfZGV2aWNlKHZiLVx1MDAzZXZkZXYpO1xuQEAgLTExMzMsNiArMTE1OCwxMCBAQCBzdGF0aWMgaW50IHZpcnRiYWxsb29uX2ZyZWV6ZShzdHJ1Y3QgdmlydGlvX2RldmljZSAqdmRldilcbiBcdCAqIFRoZSB3b3JrcXVldWUgaXMgYWxyZWFkeSBmcm96ZW4gYnkgdGhlIFBNIGNvcmUgYmVmb3JlIHRoaXNcbiBcdCAqIGZ1bmN0aW9uIGlzIGNhbGxlZC5cbiBcdCAqL1xuK1x0c3Bpbl9sb2NrX2lycShcdTAwMjZ2Yi1cdTAwM2VmcmVlX3BhZ2VfbGlzdF9sb2NrKTtcbitcdFdSSVRFX09OQ0UodmItXHUwMDNlc3VzcGVuZGVkLCB0cnVlKTtcbitcdHNwaW5fdW5sb2NrX2lycShcdTAwMjZ2Yi1cdTAwM2VmcmVlX3BhZ2VfbGlzdF9sb2NrKTtcbitcbiBcdHJlbW92ZV9jb21tb24odmIpO1xuIFx0cmV0dXJuIDA7XG4gfVxuQEAgLTExNDgsNiArMTE3NywxMCBAQCBzdGF0aWMgaW50IHZpcnRiYWxsb29uX3Jlc3RvcmUoc3RydWN0IHZpcnRpb19kZXZpY2UgKnZkZXYpXG4gXG4gXHR2aXJ0aW9fZGV2aWNlX3JlYWR5KHZkZXYpO1xuIFxuK1x0c3Bpbl9sb2NrX2lycShcdTAwMjZ2Yi1cdTAwM2VmcmVlX3BhZ2VfbGlzdF9sb2NrKTtcbitcdFdSSVRFX09OQ0UodmItXHUwMDNlc3VzcGVuZGVkLCBmYWxzZSk7XG4rXHRzcGluX3VubG9ja19pcnEoXHUwMDI2dmItXHUwMDNlZnJlZV9wYWdlX2xpc3RfbG9jayk7XG4rXG4gXHRpZiAodG93YXJkc190YXJnZXQodmIpKVxuIFx0XHR2aXJ0YmFsbG9vbl9jaGFuZ2VkKHZkZXYpO1xuIFx0dXBkYXRlX2JhbGxvb25fc2l6ZSh2Yik7XG5kaWZmIC0tZ2l0IGEvbW0vcGFnZV9yZXBvcnRpbmcuYyBiL21tL3BhZ2VfcmVwb3J0aW5nLmNcbmluZGV4IDc0MThmMmU1MDBiYjQ4Li40ZGM2ZjRiODUyMjM5OCAxMDA2NDRcbi0tLSBhL21tL3BhZ2VfcmVwb3J0aW5nLmNcbisrKyBiL21tL3BhZ2VfcmVwb3J0aW5nLmNcbkBAIC04MCw3ICs4MCw4IEBAIF9fcGFnZV9yZXBvcnRpbmdfcmVxdWVzdChzdHJ1Y3QgcGFnZV9yZXBvcnRpbmdfZGV2X2luZm8gKnByZGV2KVxuIFx0ICogbm93IHdlIGFyZSBsaW1pdGluZyB0aGlzIHRvIHJ1bm5pbmcgbm8gbW9yZSB0aGFuIG9uY2UgZXZlcnlcbiBcdCAqIGNvdXBsZSBvZiBzZWNvbmRzLlxuIFx0ICovXG4tXHRzY2hlZHVsZV9kZWxheWVkX3dvcmsoXHUwMDI2cHJkZXYtXHUwMDNld29yaywgUEFHRV9SRVBPUlRJTkdfREVMQVkpO1xuK1x0cXVldWVfZGVsYXllZF93b3JrKHN5c3RlbV9mcmVlemFibGVfd3EsIFx1MDAyNnByZGV2LVx1MDAzZXdvcmssXG4rXHRcdFx0ICAgUEFHRV9SRVBPUlRJTkdfREVMQVkpO1xuIH1cbiBcbiAvKiBub3RpZnkgcHJkZXYgb2YgZnJlZSBwYWdlIHJlcG9ydGluZyByZXF1ZXN0ICovXG5AQCAtMzQzLDcgKzM0NCw4IEBAIHN0YXRpYyB2b2lkIHBhZ2VfcmVwb3J0aW5nX3Byb2Nlc3Moc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuIFx0ICovXG4gXHRzdGF0ZSA9IGF0b21pY19jbXB4Y2hnKFx1MDAyNnByZGV2LVx1MDAzZXN0YXRlLCBzdGF0ZSwgUEFHRV9SRVBPUlRJTkdfSURMRSk7XG4gXHRpZiAoc3RhdGUgPT0gUEFHRV9SRVBPUlRJTkdfUkVRVUVTVEVEKVxuLVx0XHRzY2hlZHVsZV9kZWxheWVkX3dvcmsoXHUwMDI2cHJkZXYtXHUwMDNld29yaywgUEFHRV9SRVBPUlRJTkdfREVMQVkpO1xuK1x0XHRxdWV1ZV9kZWxheWVkX3dvcmsoc3lzdGVtX2ZyZWV6YWJsZV93cSwgXHUwMDI2cHJkZXYtXHUwMDNld29yayxcbitcdFx0XHRcdCAgIFBBR0VfUkVQT1JUSU5HX0RFTEFZKTtcbiB9XG4gXG4gc3RhdGljIERFRklORV9NVVRFWChwYWdlX3JlcG9ydGluZ19tdXRleCk7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwMzo0ODoxMi4wNzkxNzMzMjZaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1OTcyNDQ5ODE2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgVGFyZ2V0IElkZW50aWZpY2F0aW9uOiBWaXJ0aW8gQmFsbG9vbiBhbmQgUGFnZSBSZXBvcnRpbmcqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCBhIHBhdGNoIGhlcmUgdGhhdCdzIG1ha2luZyBzb21lIG1vZGlmaWNhdGlvbnMgd2l0aGluIGBkcml2ZXJzL3ZpcnRpby92aXJ0aW9fYmFsbG9vbi5jYCBhbmQgYG1tL3BhZ2VfcmVwb3J0aW5nLmNgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIFwiSXMgdGhpcyBmdXp6LXdvcnRoeT9cIiBJdCBsb29rcyBsaWtlIHRoZXkndmUgYWRkZWQgYSBgc3VzcGVuZGVkYCBmbGFnIHRvIHRoZSBgc3RydWN0IHZpcnRpb19iYWxsb29uYCB0byBlc3NlbnRpYWxseSBibG9jayB0aGUgc2hyaW5rZXIgZnJvbSBydW5uaW5nIHdoZW4gdGhlIGRldmljZSBpcyBzdXNwZW5kZWQuIFRoZXkndmUgYWxzbyB1cGRhdGVkIGBwYWdlX3JlcG9ydGluZ19wcm9jZXNzYCBhbmQgYF9fcGFnZV9yZXBvcnRpbmdfcmVxdWVzdGAgaW4gYG1tL3BhZ2VfcmVwb3J0aW5nLmNgIHRvIHVzZSBgc3lzdGVtX2ZyZWV6YWJsZV93cWAgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCB3b3JrcXVldWUuXG5cbkdpdmVuIHRoZXNlIGNoYW5nZXMsIGl0J3MgcHJldHR5IGNsZWFyIHRoYXQgdGhpcyB3YXJyYW50cyBhIGZ1enppbmcgZWZmb3J0LiBUaGUgdmlydGlvIGJhbGxvb24gZHJpdmVyIGlzIGEgc29saWQgdGFyZ2V0IGJlY2F1c2Ugb2YgaXRzIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyDigJMgdGhpbmsgUUVNVSBhbmQgdGhlIGxpa2UuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMg4oCTIGEgZmxhZyBhZGRpdGlvbiBhbmQgd29ya3F1ZXVlIHVwZGF0ZSDigJMgd2hpY2ggYXJlIG9mdGVuIGZydWl0ZnVsIGFyZWFzIGZvciBmdXp6aW5nLlxuXG5Ob3csIGxldCdzIHBpbnBvaW50IHRoZSBzcGVjaWZpYyBmdW5jdGlvbnMgdGhhdCBuZWVkIHRoZSBtb3N0IGZvY3VzLiBXaXRoaW4gYGRyaXZlcnMvdmlydGlvL3ZpcnRpb19iYWxsb29uLmNgLCBJJ2xsIGJlIGxvb2tpbmcgY2xvc2VseSBhdCBgcmV0dXJuX2ZyZWVfcGFnZXNfdG9fbW1gLCBgdmlydGlvX2JhbGxvb25fc2hyaW5rZXJfc2NhbmAsIGB2aXJ0aW9fYmFsbG9vbl9zaHJpbmtlcl9jb3VudGAsIGByZW1vdmVfY29tbW9uYCwgYHZpcnRiYWxsb29uX2ZyZWV6ZWAsIGFuZCBgdmlydGJhbGxvb25fcmVzdG9yZWAuIE92ZXIgaW4gYG1tL3BhZ2VfcmVwb3J0aW5nLmNgLCBteSBhdHRlbnRpb24gd2lsbCBiZSBvbiBgX19wYWdlX3JlcG9ydGluZ19yZXF1ZXN0YCBhbmQgYHBhZ2VfcmVwb3J0aW5nX3Byb2Nlc3NgLlxuXG5GaW5hbGx5LCBqdXN0IGEgcXVpY2sgc2FuaXR5IGNoZWNrIG9uIHRoZSBjb25maWdzOiBgQ09ORklHX1ZJUlRJT19CQUxMT09OYCBmb3IgdGhlIHZpcnRpbyBiYWxsb29uIGNoYW5nZXMgYW5kIGBDT05GSUdfUEFHRV9SRVBPUlRJTkdgIGZvciB0aGUgcGFnZSByZXBvcnRpbmcgc3R1ZmYuIExvb2tzIGxpa2Ugd2UgYXJlIGdvb2QgdG8gZ28uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM1OTcsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNTcsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwMzo0ODoxOC4wNTE2MjYwNDJaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQ5MzI5NTk4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIlZJUlRJT19CQUxMT09OXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvdmlydGlvL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy92aXJ0aW8vS2NvbmZpZz0xMDE9Y29uZmlnIFZJUlRJT19QTUVNXFxuLS1cXG5kcml2ZXJzL3ZpcnRpby9LY29uZmlnLTExMS1cXG5kcml2ZXJzL3ZpcnRpby9LY29uZmlnOjExMjpjb25maWcgVklSVElPX0JBTExPT05cXG5kcml2ZXJzL3ZpcnRpby9LY29uZmlnLTExMy1cXHR0cmlzdGF0ZSBcXFwiVmlydGlvIGJhbGxvb24gZHJpdmVyXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwMzo0ODoxOC4yMDA5NjI3MloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI0MzA5NDI0NTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHdyaXR0ZW4gaW4gdGhlIGZpcnN0IHBlcnNvbjpcblxuKipJbml0aWFsIENoZWNrcG9pbnQ6IFBBR0VfUkVQT1JUSU5HKipcblxuUmlnaHQsIGxldCdzIHRha2UgYSBsb29rIGF0IGBQQUdFX1JFUE9SVElOR2AuIEl0J3MgbXkgZ28tdG8gZm9yIHVuZGVyc3RhbmRpbmcgdGhlIGN1cnJlbnQgZGF0YSBsYW5kc2NhcGUuIEkgbmVlZCB0byBnZXQgYSBiYXNlbGluZSBiZWZvcmUgSSBjYW4gc3RhcnQgdG8gYW5hbHlzZSB0aGUgbW9yZSBjb21wbGV4IGlzc3Vlcy4gV2hhdCBzcGVjaWZpYyBxdWVzdGlvbnMgb3IgcHJvYmxlbSBpcyBpdCByZWxhdGVkIHRvP1xuXG5cbiIsIklucHV0VG9rZW5zIjo0NDY5LCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDM6NDg6MjAuNjMxOTA4MDgyWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyNTE2ODY4OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJQQUdFX1JFUE9SVElOR1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJtbS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm1tL0tjb25maWc9NjY5PWNvbmZpZyBDT01QQUNUX1VORVZJQ1RBQkxFX0RFRkFVTFRcXG4tLVxcbm1tL0tjb25maWctNjc2LSMgc3VwcG9ydCBmb3IgZnJlZSBwYWdlIHJlcG9ydGluZ1xcbm1tL0tjb25maWc6Njc3OmNvbmZpZyBQQUdFX1JFUE9SVElOR1xcbm1tL0tjb25maWctNjc4LVxcdGJvb2wgXFxcIkZyZWUgcGFnZSByZXBvcnRpbmdcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDAzOjQ4OjIwLjc1NzA4NDIxWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzAzNjAyMDMzMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgdGhpcyBpc3N1ZSBteXNlbGY6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgVklSVElPX0JBTExPT04gYW5kIFBBR0VfUkVQT1JUSU5HIERlcGVuZGVuY3kqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gcXVpY2tseSBkZXRlcm1pbmUgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGBWSVJUSU9fQkFMTE9PTmAgYW5kIGBQQUdFX1JFUE9SVElOR2AuIE15IGluaXRpYWwgaHVuY2ggaXMgdGhhdCBgVklSVElPX0JBTExPT05gIG1pZ2h0ICppbXBseSogb3IgZXZlbiBkaXJlY3RseSBzZWxlY3QgYFBBR0VfUkVQT1JUSU5HYC4gSXQncyBhIGZhaXJseSBjb21tb24gcGF0dGVybiDigJMgYSBmZWF0dXJlIGVuYWJsaW5nIHNvbWV0aGluZyBsaWtlIGJhbGxvb25pbmcgb2Z0ZW4gbmVlZHMgYSB3YXkgdG8gYWN0dWFsbHkgcmVwb3J0IHBhZ2UgaW5mb3JtYXRpb24gdG8gdGhlIGhvc3QuIEkgbmVlZCB0byBjb25maXJtIHRoaXMgcXVpY2tseS4gSSBuZWVkIHRvIGNoZWNrIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIGZpbGVzLCBtYXliZSBpbiB0aGUga2VybmVsIHNvdXJjZSBvciByZWxldmFudCBidWlsZCBjb25maWd1cmF0aW9uIHRvIHNlZSBpZiB0aGVyZSBpcyBhbnkgc2VsZWN0aW9uIGhhcHBlbmluZy4gS25vd2luZyB0aGUgYXJjaGl0ZWN0dXJlLCBJJ2xsIHByb2JhYmx5IGxvb2sgaW50byBhbnkgZGVwZW5kZW5jaWVzLCBhbmQgdGhlbiBjb25maXJtIGlmIHRoYXQgaXMgdGhlIGV4YWN0IGJlaGF2aW9yIG9mIHRoZSBjb25maWd1cmF0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NjgyLCJPdXRwdXRUb2tlbnMiOjMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDM6NDg6MjMuNzkzMTA3MzUyWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxODc5MTE3NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJQQUdFX1JFUE9SVElOR1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3ZpcnRpby9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvdmlydGlvL0tjb25maWc9MTEyPWNvbmZpZyBWSVJUSU9fQkFMTE9PTlxcbi0tXFxuZHJpdmVycy92aXJ0aW8vS2NvbmZpZy0xMTUtXFx0c2VsZWN0IEJBTExPT05cXG5kcml2ZXJzL3ZpcnRpby9LY29uZmlnOjExNjpcXHRzZWxlY3QgUEFHRV9SRVBPUlRJTkdcXG5kcml2ZXJzL3ZpcnRpby9LY29uZmlnLTExNy1cXHRoZWxwXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDAzOjQ4OjI0LjAxMTkwNDg1OVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc3MjY2MDM1MjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIFRhcmdldCBDb2RlKipcblxuT2theSwgc28gdGhlIGBWSVJUSU9fQkFMTE9PTmAgY29uZmlnICppcyogc3VmZmljaWVudCwgYnV0IGxpc3RpbmcgYm90aCBgVklSVElPX0JBTExPT05gIGFuZCBgUEFHRV9SRVBPUlRJTkdgIGlzIGEgZ29vZCBpZGVhIGZvciBjbGFyaXR5LiBBY3R1YWxseSwgd2FpdCwgYFBBR0VfUkVQT1JUSU5HYCBpcyBhIGJvb2xlYW4sIGFuZCBgVklSVElPX0JBTExPT05gIGlzIGEgdHJpc3RhdGUuIFRoYXQncyBhIGdvb2QgZGlzdGluY3Rpb24gdG8gbWFrZSwgc28gbGV0J3MgZ28gd2l0aCBsaXN0aW5nIHRoZW0gYm90aC5cblxuTm93LCB3aGljaCBmdW5jdGlvbnMgYXJlIHRoZSBrZXkgb25lcyB0byBmb2N1cyBvdXIgZnV6emluZyBlZmZvcnRzPyBMZXQncyBzZWUuLi4gYHZpcnRiYWxsb29uX2ZyZWV6ZWAsIGB2aXJ0YmFsbG9vbl9yZXN0b3JlYCwgYHZpcnRpb19iYWxsb29uX3Nocmlua2VyX3NjYW5gLCBgdmlydGlvX2JhbGxvb25fc2hyaW5rZXJfY291bnRgLCBgcmV0dXJuX2ZyZWVfcGFnZXNfdG9fbW1gLCBgX19wYWdlX3JlcG9ydGluZ19yZXF1ZXN0YCwgYW5kIGBwYWdlX3JlcG9ydGluZ19wcm9jZXNzYC5cblxuSG9sZCBvbiBhIHNlY29uZC4uLiBgdmlydGJhbGxvb25fZnJlZXplYCBhbmQgYHZpcnRiYWxsb29uX3Jlc3RvcmVgIGFyZSBQb3dlciBNYW5hZ2VtZW50IChQTSkgY2FsbGJhY2tzLiBDYW4gc3l6a2FsbGVyIGFjdHVhbGx5IGZ1enogdGhvc2U/IEkgdGhpbmsgaXQgY2FuLCB0aHJvdWdoIHN5c2ZzIG9yIHNpbWlsYXIgbWV0aG9kcy4gWWVzLCBpdCBjYW4uIEFuZCBgdmlydGlvX2JhbGxvb25fc2hyaW5rZXJfc2NhbmAgYW5kIGB2aXJ0aW9fYmFsbG9vbl9zaHJpbmtlcl9jb3VudGAgYXJlIHNocmlua2VyIGNhbGxiYWNrcywgbGlrZWx5IHRyaWdnZXJlZCBieSBtZW1vcnkgcHJlc3N1cmUuIGByZXR1cm5fZnJlZV9wYWdlc190b19tbWAgaXMgbGlrZWx5IGNhbGxlZCBmcm9tIGVpdGhlciB0aGUgc2hyaW5rZXIgb3IgZHVyaW5nIHBhZ2UgcmVtb3ZhbC4gVGhlbiB3ZSBoYXZlIGBfX3BhZ2VfcmVwb3J0aW5nX3JlcXVlc3RgIGFuZCBgcGFnZV9yZXBvcnRpbmdfcHJvY2Vzc2AsIHRyaWdnZXJlZCBkaXJlY3RseSBieSBwYWdlIHJlcG9ydGluZyBpdHNlbGYuXG5cbkhtbSwgYW55IG90aGVyIGNvbmZpZ3VyYXRpb24gZGVwZW5kZW5jaWVzIHRvIGNvbnNpZGVyPyBMZXQncyBzZWUuLi4gYFZJUlRJT19CQUxMT09OYCBkZXBlbmRzIG9uIGBWSVJUSU9gIGFzIGEgd2hvbGUsIGJ1dCBgUEFHRV9SRVBPUlRJTkdgIGRvZXNuJ3QgaGF2ZSBhbnkgc3BlY2lmaWMgZGVwZW5kZW5jaWVzLiBPa2F5LCB0aGF0J3Mgc3RyYWlnaHRmb3J3YXJkLlxuXG5UaW1lIHRvIGNhbGwgdGhlIHJlc3VsdHMuIEl0J3MgZGVmaW5pdGVseSB3b3J0aCBmdXp6aW5nIHRoaXMsIGFuZCBoZXJlJ3Mgd2h5OiB0aGlzIHBhdGNoIGZ1bmRhbWVudGFsbHkgY2hhbmdlcyBob3cgdGhlIHZpcnRpbyBiYWxsb29uIGRyaXZlciBhbmQgcGFnZSByZXBvcnRpbmcgaW50ZXJhY3Qgd2l0aCBzdXNwZW5kL3Jlc3VtZS4gV2UncmUgdGFsa2luZyBhYm91dCBhIG5ldyBcInN1c3BlbmRlZFwiIGZsYWcsIGFuZCBjaGFuZ2VzIHRvIHRoZSB3b3JrcXVldWUgdXNlZCBmb3IgcGFnZSByZXBvcnRpbmcuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gcmVhY2hhYmxlIGNvZGUsIGFuZCB0aGF0J3MgZXhhY3RseSB3aGF0IHdlIHdhbnQgdG8gdGVzdC4gU28gaGVyZSBhcmUgdGhlIGRldGFpbHM6XG5cbiogICAqKldvcnRoRnV6emluZyoqOiB0cnVlXG4qICAgKipFbmFibGVDb25maWdzKio6IFxcW1wiVklSVElPXFxfQkFMTE9PTlwiLCBcIlBBR0VcXF9SRVBPUlRJTkdcIlxcXVxuKiAgICoqRm9jdXNTeW1ib2xzKio6IFxcW1widmlydGJhbGxvb25cXF9mcmVlemVcIiwgXCJ2aXJ0YmFsbG9vblxcX3Jlc3RvcmVcIiwgXCJ2aXJ0aW9cXF9iYWxsb29uXFxfc2hyaW5rZXJcXF9zY2FuXCIsIFwidmlydGlvXFxfYmFsbG9vblxcX3Nocmlua2VyXFxfY291bnRcIiwgXCJyZXR1cm5cXF9mcmVlXFxfcGFnZXNcXF90b1xcX21tXCIsIFwiXFxfXFxfcGFnZVxcX3JlcG9ydGluZ1xcX3JlcXVlc3RcIiwgXCJwYWdlXFxfcmVwb3J0aW5nXFxfcHJvY2Vzc1wiXFxdXG4qICAgKipSZWFzb25pbmcqKjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHZpcnRpbyBiYWxsb29uIGRyaXZlciBhbmQgcGFnZSByZXBvcnRpbmcgdG8gaGFuZGxlIHN1c3BlbmQvcmVzdW1lIHByb3Blcmx5LiBJdCBhZGRzIGEgc3VzcGVuZGVkIGZsYWcgYW5kIGNoYW5nZXMgdGhlIHdvcmtxdWV1ZSB1c2VkIGZvciBwYWdlIHJlcG9ydGluZy4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiByZWFjaGFibGUgY29kZS5cIlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MDAzLCJPdXRwdXRUb2tlbnMiOjE1NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ0MywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwMzo0ODozMS43Mzg1MTA5NTdaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDc0MTY0MzcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlZJUlRJT19CQUxMT09OXCIsXG4gICAgXCJQQUdFX1JFUE9SVElOR1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInZpcnRiYWxsb29uX2ZyZWV6ZVwiLFxuICAgIFwidmlydGJhbGxvb25fcmVzdG9yZVwiLFxuICAgIFwidmlydGlvX2JhbGxvb25fc2hyaW5rZXJfc2NhblwiLFxuICAgIFwidmlydGlvX2JhbGxvb25fc2hyaW5rZXJfY291bnRcIixcbiAgICBcInJldHVybl9mcmVlX3BhZ2VzX3RvX21tXCIsXG4gICAgXCJfX3BhZ2VfcmVwb3J0aW5nX3JlcXVlc3RcIixcbiAgICBcInBhZ2VfcmVwb3J0aW5nX3Byb2Nlc3NcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgdmlydGlvIGJhbGxvb24gZHJpdmVyIGFuZCBwYWdlIHJlcG9ydGluZyB0byBoYW5kbGUgc3VzcGVuZC9yZXN1bWUgcHJvcGVybHkuIEl0IGFkZHMgYSBzdXNwZW5kZWQgZmxhZyBhbmQgY2hhbmdlcyB0aGUgd29ya3F1ZXVlIHVzZWQgZm9yIHBhZ2UgcmVwb3J0aW5nLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHJlYWNoYWJsZSBjb2RlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlZJUlRJT19CQUxMT09OXCIsXG4gICAgXCJQQUdFX1JFUE9SVElOR1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInZpcnRiYWxsb29uX2ZyZWV6ZVwiLFxuICAgIFwidmlydGJhbGxvb25fcmVzdG9yZVwiLFxuICAgIFwidmlydGlvX2JhbGxvb25fc2hyaW5rZXJfc2NhblwiLFxuICAgIFwidmlydGlvX2JhbGxvb25fc2hyaW5rZXJfY291bnRcIixcbiAgICBcInJldHVybl9mcmVlX3BhZ2VzX3RvX21tXCIsXG4gICAgXCJfX3BhZ2VfcmVwb3J0aW5nX3JlcXVlc3RcIixcbiAgICBcInBhZ2VfcmVwb3J0aW5nX3Byb2Nlc3NcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgdmlydGlvIGJhbGxvb24gZHJpdmVyIGFuZCBwYWdlIHJlcG9ydGluZyB0byBoYW5kbGUgc3VzcGVuZC9yZXN1bWUgcHJvcGVybHkuIEl0IGFkZHMgYSBzdXNwZW5kZWQgZmxhZyBhbmQgY2hhbmdlcyB0aGUgd29ya3F1ZXVlIHVzZWQgZm9yIHBhZ2UgcmVwb3J0aW5nLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHJlYWNoYWJsZSBjb2RlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },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-workflows7n76[1] Phase: Succeeded StartedAt: 2026-07-17 03:48:44 +0000 UTC FinishedAt: 2026-07-17 03:48:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7n76[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-17 03:48:44 +0000 UTC FinishedAt: 2026-07-17 03:48:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7n76[2] Phase: Succeeded StartedAt: 2026-07-17 03:48:44 +0000 UTC FinishedAt: 2026-07-17 08:00:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7n76[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["virtballoon_freeze","virtballoon_restore","virtio_balloon_shrinker_scan","virtio_balloon_shrinker_count","return_free_pages_to_mm","__page_reporting_request","page_reporting_process"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"59b4f320-6e82-40d0-88f3-3fcf48447a07","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-17 03:48:44 +0000 UTC FinishedAt: 2026-07-17 08:00:17 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["virtballoon_freeze","virtballoon_restore","virtio_balloon_shrinker_scan","virtio_balloon_shrinker_count","return_free_pages_to_mm","__page_reporting_request","page_reporting_process"],"skip_cover_check":true},"patched":{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"59b4f320-6e82-40d0-88f3-3fcf48447a07","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflows7n76[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["virtballoon_freeze","virtballoon_restore","virtio_balloon_shrinker_scan","virtio_balloon_shrinker_count","return_free_pages_to_mm","__page_reporting_request","page_reporting_process"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"59b4f320-6e82-40d0-88f3-3fcf48447a07","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-17 03:48:44 +0000 UTC FinishedAt: 2026-07-17 03:49:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7n76[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["virtballoon_freeze","virtballoon_restore","virtio_balloon_shrinker_scan","virtio_balloon_shrinker_count","return_free_pages_to_mm","__page_reporting_request","page_reporting_process"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"59b4f320-6e82-40d0-88f3-3fcf48447a07","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-17 03:48:44 +0000 UTC FinishedAt: 2026-07-17 03:49:07 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflows7n76/series-workflows7n76-convert-artifact-1898529158/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflows7n76[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["virtballoon_freeze","virtballoon_restore","virtio_balloon_shrinker_scan","virtio_balloon_shrinker_count","return_free_pages_to_mm","__page_reporting_request","page_reporting_process"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"59b4f320-6e82-40d0-88f3-3fcf48447a07","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-17 03:49:19 +0000 UTC FinishedAt: 2026-07-17 04:19:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7n76[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["virtballoon_freeze","virtballoon_restore","virtio_balloon_shrinker_scan","virtio_balloon_shrinker_count","return_free_pages_to_mm","__page_reporting_request","page_reporting_process"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"59b4f320-6e82-40d0-88f3-3fcf48447a07","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-17 03:49:19 +0000 UTC FinishedAt: 2026-07-17 04:19:54 +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:*a0e1c763-926f-42f7-abf9-27fb80a87d08,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-workflows7n76/series-workflows7n76-convert-artifact-1898529158/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": "0f2181dd-a4ae-4d03-a292-c114a45651b0", "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-workflows7n76/series-workflows7n76-build-action-2976548124/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflows7n76[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["virtballoon_freeze","virtballoon_restore","virtio_balloon_shrinker_scan","virtio_balloon_shrinker_count","return_free_pages_to_mm","__page_reporting_request","page_reporting_process"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"59b4f320-6e82-40d0-88f3-3fcf48447a07","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-17 03:49:19 +0000 UTC FinishedAt: 2026-07-17 04:19:44 +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:*a0e1c763-926f-42f7-abf9-27fb80a87d08,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-workflows7n76/series-workflows7n76-convert-artifact-1898529158/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": "0f2181dd-a4ae-4d03-a292-c114a45651b0", "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-workflows7n76/series-workflows7n76-build-action-2976548124/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflows7n76[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["virtballoon_freeze","virtballoon_restore","virtio_balloon_shrinker_scan","virtio_balloon_shrinker_count","return_free_pages_to_mm","__page_reporting_request","page_reporting_process"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"59b4f320-6e82-40d0-88f3-3fcf48447a07","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-17 04:19:54 +0000 UTC FinishedAt: 2026-07-17 04:19:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7n76[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["virtballoon_freeze","virtballoon_restore","virtio_balloon_shrinker_scan","virtio_balloon_shrinker_count","return_free_pages_to_mm","__page_reporting_request","page_reporting_process"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"59b4f320-6e82-40d0-88f3-3fcf48447a07","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-17 04:19:54 +0000 UTC FinishedAt: 2026-07-17 04:19:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7n76[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["virtballoon_freeze","virtballoon_restore","virtio_balloon_shrinker_scan","virtio_balloon_shrinker_count","return_free_pages_to_mm","__page_reporting_request","page_reporting_process"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"59b4f320-6e82-40d0-88f3-3fcf48447a07","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-17 04:19:54 +0000 UTC FinishedAt: 2026-07-17 04:20:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7n76[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["virtballoon_freeze","virtballoon_restore","virtio_balloon_shrinker_scan","virtio_balloon_shrinker_count","return_free_pages_to_mm","__page_reporting_request","page_reporting_process"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"59b4f320-6e82-40d0-88f3-3fcf48447a07","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-17 04:19:54 +0000 UTC FinishedAt: 2026-07-17 04:20:01 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"59b4f320-6e82-40d0-88f3-3fcf48447a07","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflows7n76/series-workflows7n76-convert-artifact-3522871001/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflows7n76[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["virtballoon_freeze","virtballoon_restore","virtio_balloon_shrinker_scan","virtio_balloon_shrinker_count","return_free_pages_to_mm","__page_reporting_request","page_reporting_process"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"59b4f320-6e82-40d0-88f3-3fcf48447a07","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-17 04:20:04 +0000 UTC FinishedAt: 2026-07-17 04:22:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7n76[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["virtballoon_freeze","virtballoon_restore","virtio_balloon_shrinker_scan","virtio_balloon_shrinker_count","return_free_pages_to_mm","__page_reporting_request","page_reporting_process"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"59b4f320-6e82-40d0-88f3-3fcf48447a07","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-17 04:20:04 +0000 UTC FinishedAt: 2026-07-17 04:21:59 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*0f2181dd-a4ae-4d03-a292-c114a45651b0,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-workflows7n76/series-workflows7n76-build-action-2976548124/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-workflows7n76[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["virtballoon_freeze","virtballoon_restore","virtio_balloon_shrinker_scan","virtio_balloon_shrinker_count","return_free_pages_to_mm","__page_reporting_request","page_reporting_process"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"59b4f320-6e82-40d0-88f3-3fcf48447a07","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-17 04:22:09 +0000 UTC FinishedAt: 2026-07-17 04:22:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7n76[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["virtballoon_freeze","virtballoon_restore","virtio_balloon_shrinker_scan","virtio_balloon_shrinker_count","return_free_pages_to_mm","__page_reporting_request","page_reporting_process"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"59b4f320-6e82-40d0-88f3-3fcf48447a07","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-17 04:22:09 +0000 UTC FinishedAt: 2026-07-17 04:22:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7n76[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["virtballoon_freeze","virtballoon_restore","virtio_balloon_shrinker_scan","virtio_balloon_shrinker_count","return_free_pages_to_mm","__page_reporting_request","page_reporting_process"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"59b4f320-6e82-40d0-88f3-3fcf48447a07","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-17 04:22:09 +0000 UTC FinishedAt: 2026-07-17 04:55:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7n76[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["virtballoon_freeze","virtballoon_restore","virtio_balloon_shrinker_scan","virtio_balloon_shrinker_count","return_free_pages_to_mm","__page_reporting_request","page_reporting_process"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"59b4f320-6e82-40d0-88f3-3fcf48447a07","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-17 04:22:09 +0000 UTC FinishedAt: 2026-07-17 04:55:18 +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:*a0e1c763-926f-42f7-abf9-27fb80a87d08,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-workflows7n76/series-workflows7n76-convert-artifact-3522871001/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": "7226eac4-b240-4551-8d8f-aaaa4547f409", "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-workflows7n76/series-workflows7n76-build-action-1590813493/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflows7n76[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["virtballoon_freeze","virtballoon_restore","virtio_balloon_shrinker_scan","virtio_balloon_shrinker_count","return_free_pages_to_mm","__page_reporting_request","page_reporting_process"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"59b4f320-6e82-40d0-88f3-3fcf48447a07","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-17 04:22:09 +0000 UTC FinishedAt: 2026-07-17 04:54:29 +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:*a0e1c763-926f-42f7-abf9-27fb80a87d08,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-workflows7n76/series-workflows7n76-convert-artifact-3522871001/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": "7226eac4-b240-4551-8d8f-aaaa4547f409", "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-workflows7n76/series-workflows7n76-build-action-1590813493/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflows7n76[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["virtballoon_freeze","virtballoon_restore","virtio_balloon_shrinker_scan","virtio_balloon_shrinker_count","return_free_pages_to_mm","__page_reporting_request","page_reporting_process"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"59b4f320-6e82-40d0-88f3-3fcf48447a07","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-17 04:55:18 +0000 UTC FinishedAt: 2026-07-17 04:55:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7n76[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["virtballoon_freeze","virtballoon_restore","virtio_balloon_shrinker_scan","virtio_balloon_shrinker_count","return_free_pages_to_mm","__page_reporting_request","page_reporting_process"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"59b4f320-6e82-40d0-88f3-3fcf48447a07","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-17 04:55:18 +0000 UTC FinishedAt: 2026-07-17 04:55:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7n76[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["virtballoon_freeze","virtballoon_restore","virtio_balloon_shrinker_scan","virtio_balloon_shrinker_count","return_free_pages_to_mm","__page_reporting_request","page_reporting_process"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"59b4f320-6e82-40d0-88f3-3fcf48447a07","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-17 04:55:18 +0000 UTC FinishedAt: 2026-07-17 04:57:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7n76[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["virtballoon_freeze","virtballoon_restore","virtio_balloon_shrinker_scan","virtio_balloon_shrinker_count","return_free_pages_to_mm","__page_reporting_request","page_reporting_process"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"59b4f320-6e82-40d0-88f3-3fcf48447a07","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-17 04:55:18 +0000 UTC FinishedAt: 2026-07-17 04:57:00 +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:*7226eac4-b240-4551-8d8f-aaaa4547f409,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-workflows7n76/series-workflows7n76-build-action-1590813493/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-workflows7n76[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["virtballoon_freeze","virtballoon_restore","virtio_balloon_shrinker_scan","virtio_balloon_shrinker_count","return_free_pages_to_mm","__page_reporting_request","page_reporting_process"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"59b4f320-6e82-40d0-88f3-3fcf48447a07","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-17 04:57:10 +0000 UTC FinishedAt: 2026-07-17 08:00:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7n76[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["virtballoon_freeze","virtballoon_restore","virtio_balloon_shrinker_scan","virtio_balloon_shrinker_count","return_free_pages_to_mm","__page_reporting_request","page_reporting_process"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"59b4f320-6e82-40d0-88f3-3fcf48447a07","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-17 04:57:10 +0000 UTC FinishedAt: 2026-07-17 08:00:17 +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":["virtballoon_freeze","virtballoon_restore","virtio_balloon_shrinker_scan","virtio_balloon_shrinker_count","return_free_pages_to_mm","__page_reporting_request","page_reporting_process"],"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:*0f2181dd-a4ae-4d03-a292-c114a45651b0,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*7226eac4-b240-4551-8d8f-aaaa4547f409,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-workflows7n76/series-workflows7n76-build-action-2976548124/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-workflows7n76/series-workflows7n76-build-action-1590813493/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflows7n76[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["virtballoon_freeze","virtballoon_restore","virtio_balloon_shrinker_scan","virtio_balloon_shrinker_count","return_free_pages_to_mm","__page_reporting_request","page_reporting_process"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"59b4f320-6e82-40d0-88f3-3fcf48447a07","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-17 04:57:10 +0000 UTC FinishedAt: 2026-07-17 04:57:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7n76[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["virtballoon_freeze","virtballoon_restore","virtio_balloon_shrinker_scan","virtio_balloon_shrinker_count","return_free_pages_to_mm","__page_reporting_request","page_reporting_process"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"59b4f320-6e82-40d0-88f3-3fcf48447a07","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-17 04:57:10 +0000 UTC FinishedAt: 2026-07-17 04:57:27 +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":["virtballoon_freeze","virtballoon_restore","virtio_balloon_shrinker_scan","virtio_balloon_shrinker_count","return_free_pages_to_mm","__page_reporting_request","page_reporting_process"],"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-workflows7n76/series-workflows7n76-convert-artifact-606424526/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflows7n76[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["virtballoon_freeze","virtballoon_restore","virtio_balloon_shrinker_scan","virtio_balloon_shrinker_count","return_free_pages_to_mm","__page_reporting_request","page_reporting_process"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"59b4f320-6e82-40d0-88f3-3fcf48447a07","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-17 04:57:10 +0000 UTC FinishedAt: 2026-07-17 04:57:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7n76[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["virtballoon_freeze","virtballoon_restore","virtio_balloon_shrinker_scan","virtio_balloon_shrinker_count","return_free_pages_to_mm","__page_reporting_request","page_reporting_process"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"59b4f320-6e82-40d0-88f3-3fcf48447a07","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-17 04:57:10 +0000 UTC FinishedAt: 2026-07-17 04:57:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7n76[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["virtballoon_freeze","virtballoon_restore","virtio_balloon_shrinker_scan","virtio_balloon_shrinker_count","return_free_pages_to_mm","__page_reporting_request","page_reporting_process"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"59b4f320-6e82-40d0-88f3-3fcf48447a07","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-17 04:57:10 +0000 UTC FinishedAt: 2026-07-17 04:57:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7n76[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["virtballoon_freeze","virtballoon_restore","virtio_balloon_shrinker_scan","virtio_balloon_shrinker_count","return_free_pages_to_mm","__page_reporting_request","page_reporting_process"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"59b4f320-6e82-40d0-88f3-3fcf48447a07","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-17 04:57:34 +0000 UTC FinishedAt: 2026-07-17 08:00:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflows7n76[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["virtballoon_freeze","virtballoon_restore","virtio_balloon_shrinker_scan","virtio_balloon_shrinker_count","return_free_pages_to_mm","__page_reporting_request","page_reporting_process"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"fce2dfa773ced15f27dd27cd0b482a7473cdcf2a","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTIO_BALLOON","PAGE_REPORTING"],"series_id":"59b4f320-6e82-40d0-88f3-3fcf48447a07","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-17 04:57:34 +0000 UTC FinishedAt: 2026-07-17 08:00:07 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*0f2181dd-a4ae-4d03-a292-c114a45651b0,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*7226eac4-b240-4551-8d8f-aaaa4547f409,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-workflows7n76/series-workflows7n76-build-action-2976548124/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-workflows7n76/series-workflows7n76-build-action-1590813493/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-workflows7n76/series-workflows7n76-convert-artifact-606424526/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,}