Name: series-workflowjpzzv Phase: Succeeded StartedAt: 2026-07-01 06:35:28 +0000 UTC FinishedAt: 2026-07-01 11:01:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjpzzv[0] Phase: Succeeded StartedAt: 2026-07-01 06:35:28 +0000 UTC FinishedAt: 2026-07-01 06:49:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjpzzv[0].run-triage Phase: Succeeded StartedAt: 2026-07-01 06:35:28 +0000 UTC FinishedAt: 2026-07-01 06:49:01 +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": "dc59e4fea9d83f03bad6bddf3fa2e52491777482", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "EXFAT_FS" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "dc59e4fea9d83f03bad6bddf3fa2e52491777482", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "EXFAT_FS" ], "series_id": "1f82f086-aa52-4d53-b741-577ef518430c" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "__exfat_cache_inval_inode", "exfat_file_write_iter", "__exfat_iomap_begin", "exfat_iomap_valid", "exfat_writeback_range" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAxIDA2OjQ4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0VYRkFUX0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7X19leGZhdF9jYWNoZV9pbnZhbF9pbm9kZSYjMzQ7LAogICAgJiMzNDtleGZhdF9maWxlX3dyaXRlX2l0ZXImIzM0OywKICAgICYjMzQ7X19leGZhdF9pb21hcF9iZWdpbiYjMzQ7LAogICAgJiMzNDtleGZhdF9pb21hcF92YWxpZCYjMzQ7LAogICAgJiMzNDtleGZhdF93cml0ZWJhY2tfcmFuZ2UmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGV4ZmF0IGZpbGVzeXN0ZW0mIzM5O3MgaW9tYXAgYW5kIGNhY2hpbmcgbG9naWMsIHNwZWNpZmljYWxseSBpbnRyb2R1Y2luZyBhIHZhbGlkaXR5IGNvb2tpZSBmb3IgaW9tYXBzIGFuZCBjaGFuZ2luZyBob3cgdGhlIGNhY2hlIHZhbGlkaXR5IElEIGlzIGluY3JlbWVudGVkLiBUaGVzZSBjaGFuZ2VzIGFyZSBmdW5jdGlvbmFsIGFuZCByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIGZpbGUgd3JpdGUgYW5kIHdyaXRlYmFjayBvcGVyYXRpb25zLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAxIDA2OjQ4PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgMjc1MjJiMzU4NmRlODA3ZmU5NWJjODZlODgzYTk1Y2RlOGQwMjMyOFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDEgMDY6NDg6MjggMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZnMvZXhmYXQvY2FjaGUuYyBiL2ZzL2V4ZmF0L2NhY2hlLmNcbmluZGV4IDdjOGI0MTgyZjVkZTdiLi43MTYzMWJhYjE4MmNkMSAxMDA2NDRcbi0tLSBhL2ZzL2V4ZmF0L2NhY2hlLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2V4ZmF0L2NhY2hlLmNcbkBAIC0yMjgsOSAmIzQzOzIyOCwxMCBAQCBzdGF0aWMgdm9pZCBfX2V4ZmF0X2NhY2hlX2ludmFsX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpXG4gXHRcdGV4ZmF0X2NhY2hlX2ZyZWUoY2FjaGUpO1xuIFx0fVxuIFx0LyogVXBkYXRlLiBUaGUgY29weSBvZiBjYWNoZXMgYmVmb3JlIHRoaXMgaWQgaXMgZGlzY2FyZGVkLiAqL1xuLVx0ZWktXHUwMDNlY2FjaGVfdmFsaWRfaWQmIzQzOyYjNDM7O1xuLVx0aWYgKGVpLVx1MDAzZWNhY2hlX3ZhbGlkX2lkID09IEVYRkFUX0NBQ0hFX1ZBTElEKVxuLVx0XHRlaS1cdTAwM2VjYWNoZV92YWxpZF9pZCYjNDM7JiM0Mzs7XG4mIzQzO1x0aWYgKGVpLVx1MDAzZWNhY2hlX3ZhbGlkX2lkICYjNDM7IDEgPT0gRVhGQVRfQ0FDSEVfVkFMSUQpXG4mIzQzO1x0XHRlaS1cdTAwM2VjYWNoZV92YWxpZF9pZCA9IEVYRkFUX0NBQ0hFX1ZBTElEICYjNDM7IDE7XG4mIzQzO1x0ZWxzZVxuJiM0MztcdFx0ZWktXHUwMDNlY2FjaGVfdmFsaWRfaWQgPSBlaS1cdTAwM2VjYWNoZV92YWxpZF9pZCAmIzQzOyAxO1xuIH1cbiBcbiB2b2lkIGV4ZmF0X2NhY2hlX2ludmFsX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpXG5kaWZmIC0tZ2l0IGEvZnMvZXhmYXQvZmlsZS5jIGIvZnMvZXhmYXQvZmlsZS5jXG5pbmRleCA1ZmMxMzM3OGQzNWY3Mi4uNDI1ODM5OGNhNjQxZjAgMTAwNjQ0XG4tLS0gYS9mcy9leGZhdC9maWxlLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2V4ZmF0L2ZpbGUuY1xuQEAgLTc3Miw4ICYjNDM7NzcyLDggQEAgc3RhdGljIHNzaXplX3QgZXhmYXRfZmlsZV93cml0ZV9pdGVyKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICppdGVyKVxuIFx0aWYgKGlvY2ItXHUwMDNla2lfZmxhZ3MgXHUwMDI2IElPQ0JfRElSRUNUKVxuIFx0XHRyZXQgPSBleGZhdF9kaW9fd3JpdGVfaXRlcihpb2NiLCBpdGVyKTtcbiBcdGVsc2Vcbi1cdFx0cmV0ID0gaW9tYXBfZmlsZV9idWZmZXJlZF93cml0ZShpb2NiLCBpdGVyLFxuLVx0XHRcdFx0XHUwMDI2ZXhmYXRfd3JpdGVfaW9tYXBfb3BzLCBOVUxMLCBOVUxMKTtcbiYjNDM7XHRcdHJldCA9IGlvbWFwX2ZpbGVfYnVmZmVyZWRfd3JpdGUoaW9jYiwgaXRlciwgXHUwMDI2ZXhmYXRfd3JpdGVfaW9tYXBfb3BzLFxuJiM0MztcdFx0XHRcdFx0XHRcdTAwMjZleGZhdF9pb21hcF93cml0ZV9vcHMsIE5VTEwpO1xuIFx0aWYgKHJldCBcdTAwM2MgMClcbiBcdFx0Z290byB1bmxvY2s7XG4gXG5kaWZmIC0tZ2l0IGEvZnMvZXhmYXQvaW9tYXAuYyBiL2ZzL2V4ZmF0L2lvbWFwLmNcbmluZGV4IDFhYWMzOGU2M2ZlNmYwLi5lZmNlZDMyMGE1ZWZiYSAxMDA2NDRcbi0tLSBhL2ZzL2V4ZmF0L2lvbWFwLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2V4ZmF0L2lvbWFwLmNcbkBAIC01Niw2ICYjNDM7NTYsNyBAQCBzdGF0aWMgaW50IF9fZXhmYXRfaW9tYXBfYmVnaW4oc3RydWN0IGlub2RlICppbm9kZSwgbG9mZl90IG9mZnNldCwgbG9mZl90IGxlbmd0aFxuIFx0XHRcdGlvbWFwLVx1MDAzZWFkZHIgPSBJT01BUF9OVUxMX0FERFI7XG4gXHRcdFx0aW9tYXAtXHUwMDNlb2Zmc2V0ID0gb2Zmc2V0O1xuIFx0XHRcdGlvbWFwLVx1MDAzZWxlbmd0aCA9IGxlbmd0aDtcbiYjNDM7XHRcdFx0aW9tYXAtXHUwMDNldmFsaWRpdHlfY29va2llID0gZWktXHUwMDNlY2FjaGVfdmFsaWRfaWQ7XG4gXHRcdFx0cmV0dXJuIDA7XG4gXHRcdH1cbiBcbkBAIC0xMzMsNyAmIzQzOzEzNCw3IEBAIHN0YXRpYyBpbnQgX19leGZhdF9pb21hcF9iZWdpbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBsb2ZmX3Qgb2Zmc2V0LCBsb2ZmX3QgbGVuZ3RoXG4gXHRcdH1cbiBcdH1cbiBcbi1cdGlvbWFwLVx1MDAzZWZsYWdzIHw9IElPTUFQX0ZfTUVSR0VEO1xuJiM0MztcdGlvbWFwLVx1MDAzZXZhbGlkaXR5X2Nvb2tpZSA9IGVpLVx1MDAzZWNhY2hlX3ZhbGlkX2lkO1xuIG91dDpcbiBcdG11dGV4X3VubG9jayhcdTAwMjZzYmktXHUwMDNlc19sb2NrKTtcbiBcdHJldHVybiBlcnI7XG5AQCAtMTU1LDYgJiM0MzsxNTYsMTUgQEAgY29uc3Qgc3RydWN0IGlvbWFwX29wcyBleGZhdF9pb21hcF9vcHMgPSB7XG4gXHQuaW9tYXBfYmVnaW4gPSBleGZhdF9pb21hcF9iZWdpbixcbiB9O1xuIFxuJiM0MztzdGF0aWMgYm9vbCBleGZhdF9pb21hcF92YWxpZChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBjb25zdCBzdHJ1Y3QgaW9tYXAgKmlvbWFwKVxuJiM0Mzt7XG4mIzQzO1x0cmV0dXJuIEVYRkFUX0koaW5vZGUpLVx1MDAzZWNhY2hlX3ZhbGlkX2lkID09IGlvbWFwLVx1MDAzZXZhbGlkaXR5X2Nvb2tpZTtcbiYjNDM7fVxuJiM0MztcbiYjNDM7Y29uc3Qgc3RydWN0IGlvbWFwX3dyaXRlX29wcyBleGZhdF9pb21hcF93cml0ZV9vcHMgPSB7XG4mIzQzO1x0LmlvbWFwX3ZhbGlkID0gZXhmYXRfaW9tYXBfdmFsaWQsXG4mIzQzO307XG4mIzQzO1xuIC8qXG4gICogZXhmYXRfd3JpdGVfaW9tYXBfZW5kIC0gVXBkYXRlIHRoZSBzdGF0ZSBhZnRlciB3cml0ZVxuICAqXG5AQCAtMjAxLDcgJiM0MzsyMTEsOCBAQCBzdGF0aWMgc3NpemVfdCBleGZhdF93cml0ZWJhY2tfcmFuZ2Uoc3RydWN0IGlvbWFwX3dyaXRlcGFnZV9jdHggKndwYyxcbiBcdFx0c3RydWN0IGZvbGlvICpmb2xpbywgdTY0IG9mZnNldCwgdW5zaWduZWQgaW50IGxlbiwgdTY0IGVuZF9wb3MpXG4ge1xuIFx0aWYgKG9mZnNldCBcdTAwM2Mgd3BjLVx1MDAzZWlvbWFwLm9mZnNldCB8fFxuLVx0ICAgIG9mZnNldCBcdTAwM2U9IHdwYy1cdTAwM2Vpb21hcC5vZmZzZXQgJiM0Mzsgd3BjLVx1MDAzZWlvbWFwLmxlbmd0aCkge1xuJiM0MztcdCAgICBvZmZzZXQgXHUwMDNlPSB3cGMtXHUwMDNlaW9tYXAub2Zmc2V0ICYjNDM7IHdwYy1cdTAwM2Vpb21hcC5sZW5ndGggfHxcbiYjNDM7XHQgICAgIWV4ZmF0X2lvbWFwX3ZhbGlkKHdwYy1cdTAwM2Vpbm9kZSwgXHUwMDI2d3BjLVx1MDAzZWlvbWFwKSkge1xuIFx0XHRpbnQgZXJyb3I7XG4gXG4gXHRcdGVycm9yID0gX19leGZhdF9pb21hcF9iZWdpbih3cGMtXHUwMDNlaW5vZGUsIG9mZnNldCwgbGVuLFxuZGlmZiAtLWdpdCBhL2ZzL2V4ZmF0L2lvbWFwLmggYi9mcy9leGZhdC9pb21hcC5oXG5pbmRleCBmZDhhOTEzZjc3OTQ2MC4uMzljOTNmOGNkNzkwNGQgMTAwNjQ0XG4tLS0gYS9mcy9leGZhdC9pb21hcC5oXG4mIzQzOyYjNDM7JiM0MzsgYi9mcy9leGZhdC9pb21hcC5oXG5AQCAtOSw2ICYjNDM7OSw3IEBAXG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBpb21hcF9kaW9fb3BzIGV4ZmF0X3dyaXRlX2Rpb19vcHM7XG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBpb21hcF9vcHMgZXhmYXRfaW9tYXBfb3BzO1xuIGV4dGVybiBjb25zdCBzdHJ1Y3QgaW9tYXBfb3BzIGV4ZmF0X3dyaXRlX2lvbWFwX29wcztcbiYjNDM7ZXh0ZXJuIGNvbnN0IHN0cnVjdCBpb21hcF93cml0ZV9vcHMgZXhmYXRfaW9tYXBfd3JpdGVfb3BzO1xuIGV4dGVybiBjb25zdCBzdHJ1Y3QgaW9tYXBfd3JpdGViYWNrX29wcyBleGZhdF93cml0ZWJhY2tfb3BzO1xuIGV4dGVybiBjb25zdCBzdHJ1Y3QgaW9tYXBfcmVhZF9vcHMgZXhmYXRfaW9tYXBfYmlvX3JlYWRfb3BzO1xuIFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAxIDA2OjQ4PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0VYRkFUX0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7X19leGZhdF9jYWNoZV9pbnZhbF9pbm9kZSYjMzQ7LAogICAgJiMzNDtleGZhdF9maWxlX3dyaXRlX2l0ZXImIzM0OywKICAgICYjMzQ7X19leGZhdF9pb21hcF9iZWdpbiYjMzQ7LAogICAgJiMzNDtleGZhdF9pb21hcF92YWxpZCYjMzQ7LAogICAgJiMzNDtleGZhdF93cml0ZWJhY2tfcmFuZ2UmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGV4ZmF0IGZpbGVzeXN0ZW0mIzM5O3MgaW9tYXAgYW5kIGNhY2hpbmcgbG9naWMsIHNwZWNpZmljYWxseSBpbnRyb2R1Y2luZyBhIHZhbGlkaXR5IGNvb2tpZSBmb3IgaW9tYXBzIGFuZCBjaGFuZ2luZyBob3cgdGhlIGNhY2hlIHZhbGlkaXR5IElEIGlzIGluY3JlbWVudGVkLiBUaGVzZSBjaGFuZ2VzIGFyZSBmdW5jdGlvbmFsIGFuZCByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIGZpbGUgd3JpdGUgYW5kIHdyaXRlYmFjayBvcGVyYXRpb25zLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAyNzUyMmIzNTg2ZGU4MDdmZTk1YmM4NmU4ODNhOTVjZGU4ZDAyMzI4CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFdlZCBKdWwgMSAwNjo0ODoyOCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2ZzL2V4ZmF0L2NhY2hlLmMgYi9mcy9leGZhdC9jYWNoZS5jCmluZGV4IDdjOGI0MTgyZjVkZTdiLi43MTYzMWJhYjE4MmNkMSAxMDA2NDQKLS0tIGEvZnMvZXhmYXQvY2FjaGUuYwomIzQzOyYjNDM7JiM0MzsgYi9mcy9leGZhdC9jYWNoZS5jCkBAIC0yMjgsOSAmIzQzOzIyOCwxMCBAQCBzdGF0aWMgdm9pZCBfX2V4ZmF0X2NhY2hlX2ludmFsX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpCiAJCWV4ZmF0X2NhY2hlX2ZyZWUoY2FjaGUpOwogCX0KIAkvKiBVcGRhdGUuIFRoZSBjb3B5IG9mIGNhY2hlcyBiZWZvcmUgdGhpcyBpZCBpcyBkaXNjYXJkZWQuICovCi0JZWktJmd0O2NhY2hlX3ZhbGlkX2lkJiM0MzsmIzQzOzsKLQlpZiAoZWktJmd0O2NhY2hlX3ZhbGlkX2lkID09IEVYRkFUX0NBQ0hFX1ZBTElEKQotCQllaS0mZ3Q7Y2FjaGVfdmFsaWRfaWQmIzQzOyYjNDM7OwomIzQzOwlpZiAoZWktJmd0O2NhY2hlX3ZhbGlkX2lkICYjNDM7IDEgPT0gRVhGQVRfQ0FDSEVfVkFMSUQpCiYjNDM7CQllaS0mZ3Q7Y2FjaGVfdmFsaWRfaWQgPSBFWEZBVF9DQUNIRV9WQUxJRCAmIzQzOyAxOwomIzQzOwllbHNlCiYjNDM7CQllaS0mZ3Q7Y2FjaGVfdmFsaWRfaWQgPSBlaS0mZ3Q7Y2FjaGVfdmFsaWRfaWQgJiM0MzsgMTsKIH0KIAogdm9pZCBleGZhdF9jYWNoZV9pbnZhbF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKQpkaWZmIC0tZ2l0IGEvZnMvZXhmYXQvZmlsZS5jIGIvZnMvZXhmYXQvZmlsZS5jCmluZGV4IDVmYzEzMzc4ZDM1ZjcyLi40MjU4Mzk4Y2E2NDFmMCAxMDA2NDQKLS0tIGEvZnMvZXhmYXQvZmlsZS5jCiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2V4ZmF0L2ZpbGUuYwpAQCAtNzcyLDggJiM0Mzs3NzIsOCBAQCBzdGF0aWMgc3NpemVfdCBleGZhdF9maWxlX3dyaXRlX2l0ZXIoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKml0ZXIpCiAJaWYgKGlvY2ItJmd0O2tpX2ZsYWdzICZhbXA7IElPQ0JfRElSRUNUKQogCQlyZXQgPSBleGZhdF9kaW9fd3JpdGVfaXRlcihpb2NiLCBpdGVyKTsKIAllbHNlCi0JCXJldCA9IGlvbWFwX2ZpbGVfYnVmZmVyZWRfd3JpdGUoaW9jYiwgaXRlciwKLQkJCQkmYW1wO2V4ZmF0X3dyaXRlX2lvbWFwX29wcywgTlVMTCwgTlVMTCk7CiYjNDM7CQlyZXQgPSBpb21hcF9maWxlX2J1ZmZlcmVkX3dyaXRlKGlvY2IsIGl0ZXIsICZhbXA7ZXhmYXRfd3JpdGVfaW9tYXBfb3BzLAomIzQzOwkJCQkJCSZhbXA7ZXhmYXRfaW9tYXBfd3JpdGVfb3BzLCBOVUxMKTsKIAlpZiAocmV0ICZsdDsgMCkKIAkJZ290byB1bmxvY2s7CiAKZGlmZiAtLWdpdCBhL2ZzL2V4ZmF0L2lvbWFwLmMgYi9mcy9leGZhdC9pb21hcC5jCmluZGV4IDFhYWMzOGU2M2ZlNmYwLi5lZmNlZDMyMGE1ZWZiYSAxMDA2NDQKLS0tIGEvZnMvZXhmYXQvaW9tYXAuYwomIzQzOyYjNDM7JiM0MzsgYi9mcy9leGZhdC9pb21hcC5jCkBAIC01Niw2ICYjNDM7NTYsNyBAQCBzdGF0aWMgaW50IF9fZXhmYXRfaW9tYXBfYmVnaW4oc3RydWN0IGlub2RlICppbm9kZSwgbG9mZl90IG9mZnNldCwgbG9mZl90IGxlbmd0aAogCQkJaW9tYXAtJmd0O2FkZHIgPSBJT01BUF9OVUxMX0FERFI7CiAJCQlpb21hcC0mZ3Q7b2Zmc2V0ID0gb2Zmc2V0OwogCQkJaW9tYXAtJmd0O2xlbmd0aCA9IGxlbmd0aDsKJiM0MzsJCQlpb21hcC0mZ3Q7dmFsaWRpdHlfY29va2llID0gZWktJmd0O2NhY2hlX3ZhbGlkX2lkOwogCQkJcmV0dXJuIDA7CiAJCX0KIApAQCAtMTMzLDcgJiM0MzsxMzQsNyBAQCBzdGF0aWMgaW50IF9fZXhmYXRfaW9tYXBfYmVnaW4oc3RydWN0IGlub2RlICppbm9kZSwgbG9mZl90IG9mZnNldCwgbG9mZl90IGxlbmd0aAogCQl9CiAJfQogCi0JaW9tYXAtJmd0O2ZsYWdzIHw9IElPTUFQX0ZfTUVSR0VEOwomIzQzOwlpb21hcC0mZ3Q7dmFsaWRpdHlfY29va2llID0gZWktJmd0O2NhY2hlX3ZhbGlkX2lkOwogb3V0OgogCW11dGV4X3VubG9jaygmYW1wO3NiaS0mZ3Q7c19sb2NrKTsKIAlyZXR1cm4gZXJyOwpAQCAtMTU1LDYgJiM0MzsxNTYsMTUgQEAgY29uc3Qgc3RydWN0IGlvbWFwX29wcyBleGZhdF9pb21hcF9vcHMgPSB7CiAJLmlvbWFwX2JlZ2luID0gZXhmYXRfaW9tYXBfYmVnaW4sCiB9OwogCiYjNDM7c3RhdGljIGJvb2wgZXhmYXRfaW9tYXBfdmFsaWQoc3RydWN0IGlub2RlICppbm9kZSwgY29uc3Qgc3RydWN0IGlvbWFwICppb21hcCkKJiM0Mzt7CiYjNDM7CXJldHVybiBFWEZBVF9JKGlub2RlKS0mZ3Q7Y2FjaGVfdmFsaWRfaWQgPT0gaW9tYXAtJmd0O3ZhbGlkaXR5X2Nvb2tpZTsKJiM0Mzt9CiYjNDM7CiYjNDM7Y29uc3Qgc3RydWN0IGlvbWFwX3dyaXRlX29wcyBleGZhdF9pb21hcF93cml0ZV9vcHMgPSB7CiYjNDM7CS5pb21hcF92YWxpZCA9IGV4ZmF0X2lvbWFwX3ZhbGlkLAomIzQzO307CiYjNDM7CiAvKgogICogZXhmYXRfd3JpdGVfaW9tYXBfZW5kIC0gVXBkYXRlIHRoZSBzdGF0ZSBhZnRlciB3cml0ZQogICoKQEAgLTIwMSw3ICYjNDM7MjExLDggQEAgc3RhdGljIHNzaXplX3QgZXhmYXRfd3JpdGViYWNrX3JhbmdlKHN0cnVjdCBpb21hcF93cml0ZXBhZ2VfY3R4ICp3cGMsCiAJCXN0cnVjdCBmb2xpbyAqZm9saW8sIHU2NCBvZmZzZXQsIHVuc2lnbmVkIGludCBsZW4sIHU2NCBlbmRfcG9zKQogewogCWlmIChvZmZzZXQgJmx0OyB3cGMtJmd0O2lvbWFwLm9mZnNldCB8fAotCSAgICBvZmZzZXQgJmd0Oz0gd3BjLSZndDtpb21hcC5vZmZzZXQgJiM0Mzsgd3BjLSZndDtpb21hcC5sZW5ndGgpIHsKJiM0MzsJICAgIG9mZnNldCAmZ3Q7PSB3cGMtJmd0O2lvbWFwLm9mZnNldCAmIzQzOyB3cGMtJmd0O2lvbWFwLmxlbmd0aCB8fAomIzQzOwkgICAgIWV4ZmF0X2lvbWFwX3ZhbGlkKHdwYy0mZ3Q7aW5vZGUsICZhbXA7d3BjLSZndDtpb21hcCkpIHsKIAkJaW50IGVycm9yOwogCiAJCWVycm9yID0gX19leGZhdF9pb21hcF9iZWdpbih3cGMtJmd0O2lub2RlLCBvZmZzZXQsIGxlbiwKZGlmZiAtLWdpdCBhL2ZzL2V4ZmF0L2lvbWFwLmggYi9mcy9leGZhdC9pb21hcC5oCmluZGV4IGZkOGE5MTNmNzc5NDYwLi4zOWM5M2Y4Y2Q3OTA0ZCAxMDA2NDQKLS0tIGEvZnMvZXhmYXQvaW9tYXAuaAomIzQzOyYjNDM7JiM0MzsgYi9mcy9leGZhdC9pb21hcC5oCkBAIC05LDYgJiM0Mzs5LDcgQEAKIGV4dGVybiBjb25zdCBzdHJ1Y3QgaW9tYXBfZGlvX29wcyBleGZhdF93cml0ZV9kaW9fb3BzOwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBpb21hcF9vcHMgZXhmYXRfaW9tYXBfb3BzOwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBpb21hcF9vcHMgZXhmYXRfd3JpdGVfaW9tYXBfb3BzOwomIzQzO2V4dGVybiBjb25zdCBzdHJ1Y3QgaW9tYXBfd3JpdGVfb3BzIGV4ZmF0X2lvbWFwX3dyaXRlX29wczsKIGV4dGVybiBjb25zdCBzdHJ1Y3QgaW9tYXBfd3JpdGViYWNrX29wcyBleGZhdF93cml0ZWJhY2tfb3BzOwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBpb21hcF9yZWFkX29wcyBleGZhdF9pb21hcF9iaW9fcmVhZF9vcHM7CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDEgMDY6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzEwMwoJCQkJCQkJb3V0cHV0OiAzMgoJCQkJCQkJdGhvdWdodHM6IDI4NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBQcm9wb3NlZCBFeEZBVCBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgdGhlIGV4RkFUIGZpbGVzeXN0ZW0sIGFuZCBpdCYjMzk7cyB0b3VjaGluZyBhIGZldyBrZXkgYXJlYXM6IGBjYWNoZS5jYCwgYGZpbGUuY2AsIGBpb21hcC5jYCwgYW5kIGBpb21hcC5oYC4gVGhhdCBpbW1lZGlhdGVseSB0ZWxscyBtZSB0aGlzIGlzIHNvbWV0aGluZyBzdWJzdGFudGlhbCwgbGlrZWx5IGEgZnVuY3Rpb25hbCBjaGFuZ2UsIG5vdCBqdXN0IGEgYnVnIGZpeC4KClRoZSBjb3JlIG9mIHRoZSBjaGFuZ2Ugc2VlbXMgdG8gcmV2b2x2ZSBhcm91bmQgaG93IGBjYWNoZV92YWxpZF9pZGAgaXMgaGFuZGxlZCwgc3BlY2lmaWNhbGx5IHdpdGhpbiBgX19leGZhdF9jYWNoZV9pbnZhbF9pbm9kZWAuICBUaGV5JiMzOTtyZSBpbmNyZW1lbnRpbmcgaXQgdGhlcmUsIGFuZCB0aGVuIHNldHRpbmcgYGlvbWFwLSZndDt2YWxpZGl0eV9jb29raWVgIHRvIHRoYXQgbmV3IHZhbHVlIGluIGBfX2V4ZmF0X2lvbWFwX2JlZ2luYC4gIEEgbmV3IGZ1bmN0aW9uLCBgZXhmYXRfaW9tYXBfdmFsaWRgLCBpcyBpbnRyb2R1Y2VkLCB3aGljaCBJIGFzc3VtZSBjaGVja3MgZm9yIHRoZSB2YWxpZGl0eSBvZiB0aGUgY2FjaGVkIGRhdGEgYmFzZWQgb24gY29tcGFyaW5nIGBFWEZBVF9JKGlub2RlKS0mZ3Q7Y2FjaGVfdmFsaWRfaWRgIHdpdGggdGhhdCBjb29raWUuIFRoaXMgaW1wbGllcyBzb21lIGZvcm0gb2YgY2FjaGUgaW52YWxpZGF0aW9uIG9yIHRyYWNraW5nLgoKSSBzZWUgdGhhdCBgJmFtcDtleGZhdF9pb21hcF93cml0ZV9vcHNgIGlzIG5vdyBwYXNzZWQgdG8gYGlvbWFwX2ZpbGVfYnVmZmVyZWRfd3JpdGVgLiBUaGF0JiMzOTtzIGFuIGludGVyZXN0aW5nIGhvb2s7IGl0IG11c3QgYmUgcmVsYXRlZCB0byBob3cgdGhlIHdyaXRlIG9wZXJhdGlvbiBpcyBwZXJmb3JtZWQsIHBvc3NpYmx5IGRlYWxpbmcgd2l0aCBidWZmZXJlZCB3cml0ZXMgb3IgSS9PIG1hcHBpbmcuIEFuZCB0aGVuIHRoZXJlJiMzOTtzIGEgY2hlY2sgZm9yIGAhZXhmYXRfaW9tYXBfdmFsaWRgIGluc2lkZSBgZXhmYXRfd3JpdGViYWNrX3JhbmdlYC4gVGhpcyBpcyBkZWZpbml0ZWx5IGEgY3J1Y2lhbCBhcmVhIHRvIHVuZGVyc3RhbmQgaW4gY29udGV4dCBvZiB0aGlzIG1vZGlmaWNhdGlvbi4KCkdpdmVuIHRoZXNlIGNoYW5nZXMsIGVzcGVjaWFsbHkgdGhlIG1hbmlwdWxhdGlvbiBvZiB0aGUgYGNhY2hlX3ZhbGlkX2lkYCBhbmQgdGhlIGludHJvZHVjdGlvbiBvZiBhIG5ldyB2YWxpZGl0eSBjaGVjaywgdGhpcyBzY3JlYW1zICYjMzQ7ZnV6emluZyB0YXJnZXQmIzM0OyB0byBtZS4gVGhlcmUgYXJlIHNldmVyYWwgaW50ZXJlc3Rpbmcgc3RhdGVzIHRoYXQgY291bGQgYmUgdW5jb3ZlcmVkIGhlcmUuIEFueSBjaGFuZ2UgdGhhdCBkZWFscyB3aXRoIGNhY2hpbmcgYW5kIEkvTyBtYXBwaW5nIGlzIHZlcnkgbGlrZWx5IHRvIGhhdmUgc29tZSBpbnRlcmVzdGluZyBlZGdlIGNhc2VzLCByYWNlIGNvbmRpdGlvbnMsIG9yIG90aGVyIHBvdGVudGlhbCBidWdzIHRoYXQgY2FuIGJlIHJldmVhbGVkIHZpYSBmdXp6aW5nLgoKTXkgbmV4dCBzdGVwIGlzIHRvIGZpbmQgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9uIGZvciBleEZBVC4gSSYjMzk7bGwgdXNlIGBncmVwcGVyYCBhbmQgbG9vayBmb3IgYEVYRkFUX0ZTYCBpbiBgZnMvZXhmYXQvS2NvbmZpZ2AgdG8gZGV0ZXJtaW5lIGhvdyB0byBlbmFibGUvZGlzYWJsZSBpdCBhbmQgZW5zdXJlIGl0JiMzOTtzIHByb3Blcmx5IGNvbmZpZ3VyZWQgZm9yIHRlc3RpbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDEgMDY6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEVYRkFUX0ZTJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZnMvZXhmYXQvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtmcy9leGZhdC9LY29uZmlnLTItXG5mcy9leGZhdC9LY29uZmlnOjM6Y29uZmlnIEVYRkFUX0ZTXG5mcy9leGZhdC9LY29uZmlnLTQtXHR0cmlzdGF0ZSBcJiMzNDtleEZBVCBmaWxlc3lzdGVtIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMSAwNjo0ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzOTQ2CgkJCQkJCQlvdXRwdXQ6IDIwNwoJCQkJCQkJdGhvdWdodHM6IDI2MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFJlY2VudCBFWEZBVCBDaGFuZ2VzKioKCk9rYXksIHNvIHRoZSBjb25maWd1cmF0aW9uIGlzIGRlZmluaXRlbHkgdGFyZ2V0aW5nIGBFWEZBVF9GU2AuIE15IGZvY3VzIG5vdyBpcyBvbiB0aGUgcmVjZW50IG1vZGlmaWNhdGlvbnMsIHNwZWNpZmljYWxseSB0aGVzZSBmdW5jdGlvbnM6IGBfX2V4ZmF0X2NhY2hlX2ludmFsX2lub2RlYCwgYGV4ZmF0X2ZpbGVfd3JpdGVfaXRlcmAsIGBfX2V4ZmF0X2lvbWFwX2JlZ2luYCwgYGV4ZmF0X2lvbWFwX3ZhbGlkYCwgYW5kIGBleGZhdF93cml0ZWJhY2tfcmFuZ2VgLiBJJiMzOTttIGFscmVhZHkgc2VlaW5nIHNvbWUgcGF0dGVybnMuIGBfX2V4ZmF0X2NhY2hlX2ludmFsX2lub2RlYCBpcyBzdGF0aWMsIGNhbGxlZCBieSBgZXhmYXRfY2FjaGVfaW52YWxfaW5vZGVgLCBJJiMzOTtsbCBrZWVwIHRoYXQgaW4gbWluZC4gYGV4ZmF0X2ZpbGVfd3JpdGVfaXRlcmAgaXMgdGhlIGZpbGUgd3JpdGUgaXRlcmF0b3IsIHRoYXQgbWFrZXMgc2Vuc2UuIGBfX2V4ZmF0X2lvbWFwX2JlZ2luYCBpcyB0aGUgaW9tYXAgYmVnaW4sIHdoaWNoLCBJIHN1cHBvc2UgY291bGQgYmUgaW50ZXJlc3RpbmcuIEFuZCB0aGUgYGV4ZmF0X2lvbWFwX3ZhbGlkYCBhbmQgYGV4ZmF0X3dyaXRlYmFja19yYW5nZWAgZnVuY3Rpb25zIGFyZSB0aGVyZSB0b28uCgpKdXN0IGRvdWJsZS1jaGVja2luZywgSSB3YW50IHRvIG1ha2Ugc3VyZSB0aGUgaW1wbGVtZW50YXRpb24gb2YgYGV4ZmF0X2lvbWFwX3ZhbGlkYCBpcyBzdGF0aWM7IHllcywgaXQmIzM5O3MgZGVmaW5lZCBhcyBzdWNoIGluIGBmcy9leGZhdC9pb21hcC5jYC4gQW5kIG5vdywgbGV0JiMzOTtzIGFsc28gaW52ZXN0aWdhdGUgYGV4ZmF0X3dyaXRlYmFja19yYW5nZWAgd2l0aGluIHRoZSBzYW1lIGZpbGUuIEkgdGhpbmsgSSYjMzk7bGwgdXNlIGBncmVwcGVyYCB0byBsb2NhdGUgdGhlIHNvdXJjZSBkZWZpbml0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMSAwNjo0ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtec3RhdGljIHZvaWQgX19leGZhdF9jYWNoZV9pbnZhbF9pbm9kZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2ZzL2V4ZmF0L2NhY2hlLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZnMvZXhmYXQvY2FjaGUuYz0xNjI9c3RhdGljIHZvaWQgZXhmYXRfY2FjaGVfYWRkKHN0cnVjdCBpbm9kZSAqaW5vZGUsXG4tLVxuZnMvZXhmYXQvY2FjaGUuYy0yMTctICovXG5mcy9leGZhdC9jYWNoZS5jOjIxODpzdGF0aWMgdm9pZCBfX2V4ZmF0X2NhY2hlX2ludmFsX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpXG5mcy9leGZhdC9jYWNoZS5jLTIxOS17XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDEgMDY6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7XnN0YXRpYyBzc2l6ZV90IGV4ZmF0X2ZpbGVfd3JpdGVfaXRlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2ZzL2V4ZmF0L2ZpbGUuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtmcy9leGZhdC9maWxlLmM9NzA4PXN0YXRpYyBzc2l6ZV90IGV4ZmF0X2Rpb193cml0ZV9pdGVyKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICpmcm9tKVxuLS1cbmZzL2V4ZmF0L2ZpbGUuYy03MzAtXG5mcy9leGZhdC9maWxlLmM6NzMxOnN0YXRpYyBzc2l6ZV90IGV4ZmF0X2ZpbGVfd3JpdGVfaXRlcihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqaXRlcilcbmZzL2V4ZmF0L2ZpbGUuYy03MzIte1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAxIDA2OjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O15zdGF0aWMgaW50IF9fZXhmYXRfaW9tYXBfYmVnaW4mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy9leGZhdC9pb21hcC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL2V4ZmF0L2lvbWFwLmM9Mzc9Y29uc3Qgc3RydWN0IGlvbWFwX2Rpb19vcHMgZXhmYXRfd3JpdGVfZGlvX29wcyA9IHtcbi0tXG5mcy9leGZhdC9pb21hcC5jLTQwLVxuZnMvZXhmYXQvaW9tYXAuYzo0MTpzdGF0aWMgaW50IF9fZXhmYXRfaW9tYXBfYmVnaW4oc3RydWN0IGlub2RlICppbm9kZSwgbG9mZl90IG9mZnNldCwgbG9mZl90IGxlbmd0aCxcbmZzL2V4ZmF0L2lvbWFwLmMtNDItXHRcdHVuc2lnbmVkIGludCBmbGFncywgc3RydWN0IGlvbWFwICppb21hcCwgYm9vbCBtYXlfYWxsb2MpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDEgMDY6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7XnN0YXRpYyBib29sIGV4ZmF0X2lvbWFwX3ZhbGlkJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZnMvZXhmYXQvaW9tYXAuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtmcy9leGZhdC9pb21hcC5jPTE1NT1jb25zdCBzdHJ1Y3QgaW9tYXBfb3BzIGV4ZmF0X2lvbWFwX29wcyA9IHtcbi0tXG5mcy9leGZhdC9pb21hcC5jLTE1OC1cbmZzL2V4ZmF0L2lvbWFwLmM6MTU5OnN0YXRpYyBib29sIGV4ZmF0X2lvbWFwX3ZhbGlkKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGNvbnN0IHN0cnVjdCBpb21hcCAqaW9tYXApXG5mcy9leGZhdC9pb21hcC5jLTE2MC17XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAxIDA2OjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O15zdGF0aWMgc3NpemVfdCBleGZhdF93cml0ZWJhY2tfcmFuZ2UmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy9leGZhdC9pb21hcC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL2V4ZmF0L2lvbWFwLmM9MTk5PWNvbnN0IHN0cnVjdCBpb21hcF9vcHMgZXhmYXRfd3JpdGVfaW9tYXBfb3BzID0ge1xuLS1cbmZzL2V4ZmF0L2lvbWFwLmMtMjA5LSAqL1xuZnMvZXhmYXQvaW9tYXAuYzoyMTA6c3RhdGljIHNzaXplX3QgZXhmYXRfd3JpdGViYWNrX3JhbmdlKHN0cnVjdCBpb21hcF93cml0ZXBhZ2VfY3R4ICp3cGMsXG5mcy9leGZhdC9pb21hcC5jLTIxMS1cdFx0c3RydWN0IGZvbGlvICpmb2xpbywgdTY0IG9mZnNldCwgdW5zaWduZWQgaW50IGxlbiwgdTY0IGVuZF9wb3MpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAxIDA2OjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUzMzcKCQkJCQkJCW91dHB1dDogMTQ2CgkJCQkJCQl0aG91Z2h0czogMjE5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFkZGluZyBFeEZBVCBJL08gYW5kIENhY2hpbmcgRnVuY3Rpb25zIHRvIEZvY3VzU3ltYm9scyoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgdGhlc2UgZnVuY3Rpb25zOiBgX19leGZhdF9jYWNoZV9pbnZhbF9pbm9kZWAsIGBleGZhdF9maWxlX3dyaXRlX2l0ZXJgLCBgX19leGZhdF9pb21hcF9iZWdpbmAsIGBleGZhdF9pb21hcF92YWxpZGAsIGFuZCBgZXhmYXRfd3JpdGViYWNrX3JhbmdlYC4gQmFzZWQgb24gdGhlIHBhdGNoIGRlc2NyaXB0aW9uLCB0aGVzZSBmdW5jdGlvbnMgYXJlIGFsbCBpbnZvbHZlZCBpbiB0aGUgRXhGQVQgZmlsZXN5c3RlbSYjMzk7cyBpb21hcCBhbmQgY2FjaGluZyBtZWNoYW5pc21zLiBUaGlzIGlzIHByZXR0eSBzaWduaWZpY2FudCwgYW5kIHRoZXkmIzM5O3JlIGRlZmluaXRlbHkgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlLCB3aGljaCBtYWtlcyB0aGVtIHByaW1lIGNhbmRpZGF0ZXMgZm9yIGluY2x1c2lvbiBpbiBgRm9jdXNTeW1ib2xzYC4gRXNzZW50aWFsbHksIGl0IHNlZW1zIHRoaXMgcGF0Y2ggaXMgY2hhbmdpbmcgaG93IHdyaXRlcyBhbmQgd3JpdGViYWNrcyBvcGVyYXRlLgoKTGV0JiMzOTtzIHF1aWNrbHkgdmVyaWZ5IHRoZSBuYW1pbmcuIFllYWgsIGFsbCB0aGUgZnVuY3Rpb24gbmFtZXMgYXJlIGNvcnJlY3QuIEV4Y2VsbGVudC4gSSYjMzk7bSBzYXRpc2ZpZWQuIE5vdywgaXQmIzM5O3MgdGltZSB0byBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAxIDA2OjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtFWEZBVF9GUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O19fZXhmYXRfY2FjaGVfaW52YWxfaW5vZGUmIzM0OywKICAgICYjMzQ7ZXhmYXRfZmlsZV93cml0ZV9pdGVyJiMzNDssCiAgICAmIzM0O19fZXhmYXRfaW9tYXBfYmVnaW4mIzM0OywKICAgICYjMzQ7ZXhmYXRfaW9tYXBfdmFsaWQmIzM0OywKICAgICYjMzQ7ZXhmYXRfd3JpdGViYWNrX3JhbmdlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBleGZhdCBmaWxlc3lzdGVtJiMzOTtzIGlvbWFwIGFuZCBjYWNoaW5nIGxvZ2ljLCBzcGVjaWZpY2FsbHkgaW50cm9kdWNpbmcgYSB2YWxpZGl0eSBjb29raWUgZm9yIGlvbWFwcyBhbmQgY2hhbmdpbmcgaG93IHRoZSBjYWNoZSB2YWxpZGl0eSBJRCBpcyBpbmNyZW1lbnRlZC4gVGhlc2UgY2hhbmdlcyBhcmUgZnVuY3Rpb25hbCBhbmQgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBmaWxlIHdyaXRlIGFuZCB3cml0ZWJhY2sgb3BlcmF0aW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7RVhGQVRfRlMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtfX2V4ZmF0X2NhY2hlX2ludmFsX2lub2RlJiMzNDssCiAgICAmIzM0O2V4ZmF0X2ZpbGVfd3JpdGVfaXRlciYjMzQ7LAogICAgJiMzNDtfX2V4ZmF0X2lvbWFwX2JlZ2luJiMzNDssCiAgICAmIzM0O2V4ZmF0X2lvbWFwX3ZhbGlkJiMzNDssCiAgICAmIzM0O2V4ZmF0X3dyaXRlYmFja19yYW5nZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgZXhmYXQgZmlsZXN5c3RlbSYjMzk7cyBpb21hcCBhbmQgY2FjaGluZyBsb2dpYywgc3BlY2lmaWNhbGx5IGludHJvZHVjaW5nIGEgdmFsaWRpdHkgY29va2llIGZvciBpb21hcHMgYW5kIGNoYW5naW5nIGhvdyB0aGUgY2FjaGUgdmFsaWRpdHkgSUQgaXMgaW5jcmVtZW50ZWQuIFRoZXNlIGNoYW5nZXMgYXJlIGZ1bmN0aW9uYWwgYW5kIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgZmlsZSB3cml0ZSBhbmQgd3JpdGViYWNrIG9wZXJhdGlvbnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0wMVQwNjo0ODozMC4xMDUyNDQwMDVaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxOTg2OTQ4ODUxMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJFWEZBVF9GU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIl9fZXhmYXRfY2FjaGVfaW52YWxfaW5vZGVcIixcbiAgICBcImV4ZmF0X2ZpbGVfd3JpdGVfaXRlclwiLFxuICAgIFwiX19leGZhdF9pb21hcF9iZWdpblwiLFxuICAgIFwiZXhmYXRfaW9tYXBfdmFsaWRcIixcbiAgICBcImV4ZmF0X3dyaXRlYmFja19yYW5nZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBleGZhdCBmaWxlc3lzdGVtJ3MgaW9tYXAgYW5kIGNhY2hpbmcgbG9naWMsIHNwZWNpZmljYWxseSBpbnRyb2R1Y2luZyBhIHZhbGlkaXR5IGNvb2tpZSBmb3IgaW9tYXBzIGFuZCBjaGFuZ2luZyBob3cgdGhlIGNhY2hlIHZhbGlkaXR5IElEIGlzIGluY3JlbWVudGVkLiBUaGVzZSBjaGFuZ2VzIGFyZSBmdW5jdGlvbmFsIGFuZCByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIGZpbGUgd3JpdGUgYW5kIHdyaXRlYmFjayBvcGVyYXRpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMVQwNjo0ODozMC4xMDUyNTk3MTVaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU3NTc1MzExNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDI3NTIyYjM1ODZkZTgwN2ZlOTViYzg2ZTg4M2E5NWNkZThkMDIzMjhcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFdlZCBKdWwgMSAwNjo0ODoyOCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9mcy9leGZhdC9jYWNoZS5jIGIvZnMvZXhmYXQvY2FjaGUuY1xcbmluZGV4IDdjOGI0MTgyZjVkZTdiLi43MTYzMWJhYjE4MmNkMSAxMDA2NDRcXG4tLS0gYS9mcy9leGZhdC9jYWNoZS5jXFxuKysrIGIvZnMvZXhmYXQvY2FjaGUuY1xcbkBAIC0yMjgsOSArMjI4LDEwIEBAIHN0YXRpYyB2b2lkIF9fZXhmYXRfY2FjaGVfaW52YWxfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSlcXG4gXFx0XFx0ZXhmYXRfY2FjaGVfZnJlZShjYWNoZSk7XFxuIFxcdH1cXG4gXFx0LyogVXBkYXRlLiBUaGUgY29weSBvZiBjYWNoZXMgYmVmb3JlIHRoaXMgaWQgaXMgZGlzY2FyZGVkLiAqL1xcbi1cXHRlaS1cXHUwMDNlY2FjaGVfdmFsaWRfaWQrKztcXG4tXFx0aWYgKGVpLVxcdTAwM2VjYWNoZV92YWxpZF9pZCA9PSBFWEZBVF9DQUNIRV9WQUxJRClcXG4tXFx0XFx0ZWktXFx1MDAzZWNhY2hlX3ZhbGlkX2lkKys7XFxuK1xcdGlmIChlaS1cXHUwMDNlY2FjaGVfdmFsaWRfaWQgKyAxID09IEVYRkFUX0NBQ0hFX1ZBTElEKVxcbitcXHRcXHRlaS1cXHUwMDNlY2FjaGVfdmFsaWRfaWQgPSBFWEZBVF9DQUNIRV9WQUxJRCArIDE7XFxuK1xcdGVsc2VcXG4rXFx0XFx0ZWktXFx1MDAzZWNhY2hlX3ZhbGlkX2lkID0gZWktXFx1MDAzZWNhY2hlX3ZhbGlkX2lkICsgMTtcXG4gfVxcbiBcXG4gdm9pZCBleGZhdF9jYWNoZV9pbnZhbF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKVxcbmRpZmYgLS1naXQgYS9mcy9leGZhdC9maWxlLmMgYi9mcy9leGZhdC9maWxlLmNcXG5pbmRleCA1ZmMxMzM3OGQzNWY3Mi4uNDI1ODM5OGNhNjQxZjAgMTAwNjQ0XFxuLS0tIGEvZnMvZXhmYXQvZmlsZS5jXFxuKysrIGIvZnMvZXhmYXQvZmlsZS5jXFxuQEAgLTc3Miw4ICs3NzIsOCBAQCBzdGF0aWMgc3NpemVfdCBleGZhdF9maWxlX3dyaXRlX2l0ZXIoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKml0ZXIpXFxuIFxcdGlmIChpb2NiLVxcdTAwM2VraV9mbGFncyBcXHUwMDI2IElPQ0JfRElSRUNUKVxcbiBcXHRcXHRyZXQgPSBleGZhdF9kaW9fd3JpdGVfaXRlcihpb2NiLCBpdGVyKTtcXG4gXFx0ZWxzZVxcbi1cXHRcXHRyZXQgPSBpb21hcF9maWxlX2J1ZmZlcmVkX3dyaXRlKGlvY2IsIGl0ZXIsXFxuLVxcdFxcdFxcdFxcdFxcdTAwMjZleGZhdF93cml0ZV9pb21hcF9vcHMsIE5VTEwsIE5VTEwpO1xcbitcXHRcXHRyZXQgPSBpb21hcF9maWxlX2J1ZmZlcmVkX3dyaXRlKGlvY2IsIGl0ZXIsIFxcdTAwMjZleGZhdF93cml0ZV9pb21hcF9vcHMsXFxuK1xcdFxcdFxcdFxcdFxcdFxcdFxcdTAwMjZleGZhdF9pb21hcF93cml0ZV9vcHMsIE5VTEwpO1xcbiBcXHRpZiAocmV0IFxcdTAwM2MgMClcXG4gXFx0XFx0Z290byB1bmxvY2s7XFxuIFxcbmRpZmYgLS1naXQgYS9mcy9leGZhdC9pb21hcC5jIGIvZnMvZXhmYXQvaW9tYXAuY1xcbmluZGV4IDFhYWMzOGU2M2ZlNmYwLi5lZmNlZDMyMGE1ZWZiYSAxMDA2NDRcXG4tLS0gYS9mcy9leGZhdC9pb21hcC5jXFxuKysrIGIvZnMvZXhmYXQvaW9tYXAuY1xcbkBAIC01Niw2ICs1Niw3IEBAIHN0YXRpYyBpbnQgX19leGZhdF9pb21hcF9iZWdpbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBsb2ZmX3Qgb2Zmc2V0LCBsb2ZmX3QgbGVuZ3RoXFxuIFxcdFxcdFxcdGlvbWFwLVxcdTAwM2VhZGRyID0gSU9NQVBfTlVMTF9BRERSO1xcbiBcXHRcXHRcXHRpb21hcC1cXHUwMDNlb2Zmc2V0ID0gb2Zmc2V0O1xcbiBcXHRcXHRcXHRpb21hcC1cXHUwMDNlbGVuZ3RoID0gbGVuZ3RoO1xcbitcXHRcXHRcXHRpb21hcC1cXHUwMDNldmFsaWRpdHlfY29va2llID0gZWktXFx1MDAzZWNhY2hlX3ZhbGlkX2lkO1xcbiBcXHRcXHRcXHRyZXR1cm4gMDtcXG4gXFx0XFx0fVxcbiBcXG5AQCAtMTMzLDcgKzEzNCw3IEBAIHN0YXRpYyBpbnQgX19leGZhdF9pb21hcF9iZWdpbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBsb2ZmX3Qgb2Zmc2V0LCBsb2ZmX3QgbGVuZ3RoXFxuIFxcdFxcdH1cXG4gXFx0fVxcbiBcXG4tXFx0aW9tYXAtXFx1MDAzZWZsYWdzIHw9IElPTUFQX0ZfTUVSR0VEO1xcbitcXHRpb21hcC1cXHUwMDNldmFsaWRpdHlfY29va2llID0gZWktXFx1MDAzZWNhY2hlX3ZhbGlkX2lkO1xcbiBvdXQ6XFxuIFxcdG11dGV4X3VubG9jayhcXHUwMDI2c2JpLVxcdTAwM2VzX2xvY2spO1xcbiBcXHRyZXR1cm4gZXJyO1xcbkBAIC0xNTUsNiArMTU2LDE1IEBAIGNvbnN0IHN0cnVjdCBpb21hcF9vcHMgZXhmYXRfaW9tYXBfb3BzID0ge1xcbiBcXHQuaW9tYXBfYmVnaW4gPSBleGZhdF9pb21hcF9iZWdpbixcXG4gfTtcXG4gXFxuK3N0YXRpYyBib29sIGV4ZmF0X2lvbWFwX3ZhbGlkKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGNvbnN0IHN0cnVjdCBpb21hcCAqaW9tYXApXFxuK3tcXG4rXFx0cmV0dXJuIEVYRkFUX0koaW5vZGUpLVxcdTAwM2VjYWNoZV92YWxpZF9pZCA9PSBpb21hcC1cXHUwMDNldmFsaWRpdHlfY29va2llO1xcbit9XFxuK1xcbitjb25zdCBzdHJ1Y3QgaW9tYXBfd3JpdGVfb3BzIGV4ZmF0X2lvbWFwX3dyaXRlX29wcyA9IHtcXG4rXFx0LmlvbWFwX3ZhbGlkID0gZXhmYXRfaW9tYXBfdmFsaWQsXFxuK307XFxuK1xcbiAvKlxcbiAgKiBleGZhdF93cml0ZV9pb21hcF9lbmQgLSBVcGRhdGUgdGhlIHN0YXRlIGFmdGVyIHdyaXRlXFxuICAqXFxuQEAgLTIwMSw3ICsyMTEsOCBAQCBzdGF0aWMgc3NpemVfdCBleGZhdF93cml0ZWJhY2tfcmFuZ2Uoc3RydWN0IGlvbWFwX3dyaXRlcGFnZV9jdHggKndwYyxcXG4gXFx0XFx0c3RydWN0IGZvbGlvICpmb2xpbywgdTY0IG9mZnNldCwgdW5zaWduZWQgaW50IGxlbiwgdTY0IGVuZF9wb3MpXFxuIHtcXG4gXFx0aWYgKG9mZnNldCBcXHUwMDNjIHdwYy1cXHUwMDNlaW9tYXAub2Zmc2V0IHx8XFxuLVxcdCAgICBvZmZzZXQgXFx1MDAzZT0gd3BjLVxcdTAwM2Vpb21hcC5vZmZzZXQgKyB3cGMtXFx1MDAzZWlvbWFwLmxlbmd0aCkge1xcbitcXHQgICAgb2Zmc2V0IFxcdTAwM2U9IHdwYy1cXHUwMDNlaW9tYXAub2Zmc2V0ICsgd3BjLVxcdTAwM2Vpb21hcC5sZW5ndGggfHxcXG4rXFx0ICAgICFleGZhdF9pb21hcF92YWxpZCh3cGMtXFx1MDAzZWlub2RlLCBcXHUwMDI2d3BjLVxcdTAwM2Vpb21hcCkpIHtcXG4gXFx0XFx0aW50IGVycm9yO1xcbiBcXG4gXFx0XFx0ZXJyb3IgPSBfX2V4ZmF0X2lvbWFwX2JlZ2luKHdwYy1cXHUwMDNlaW5vZGUsIG9mZnNldCwgbGVuLFxcbmRpZmYgLS1naXQgYS9mcy9leGZhdC9pb21hcC5oIGIvZnMvZXhmYXQvaW9tYXAuaFxcbmluZGV4IGZkOGE5MTNmNzc5NDYwLi4zOWM5M2Y4Y2Q3OTA0ZCAxMDA2NDRcXG4tLS0gYS9mcy9leGZhdC9pb21hcC5oXFxuKysrIGIvZnMvZXhmYXQvaW9tYXAuaFxcbkBAIC05LDYgKzksNyBAQFxcbiBleHRlcm4gY29uc3Qgc3RydWN0IGlvbWFwX2Rpb19vcHMgZXhmYXRfd3JpdGVfZGlvX29wcztcXG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBpb21hcF9vcHMgZXhmYXRfaW9tYXBfb3BzO1xcbiBleHRlcm4gY29uc3Qgc3RydWN0IGlvbWFwX29wcyBleGZhdF93cml0ZV9pb21hcF9vcHM7XFxuK2V4dGVybiBjb25zdCBzdHJ1Y3QgaW9tYXBfd3JpdGVfb3BzIGV4ZmF0X2lvbWFwX3dyaXRlX29wcztcXG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBpb21hcF93cml0ZWJhY2tfb3BzIGV4ZmF0X3dyaXRlYmFja19vcHM7XFxuIGV4dGVybiBjb25zdCBzdHJ1Y3QgaW9tYXBfcmVhZF9vcHMgZXhmYXRfaW9tYXBfYmlvX3JlYWRfb3BzO1xcbiBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDFUMDY6NDg6MzAuNjgyMDU1ODg5WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxOTI5MjY2MDYwOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJFWEZBVF9GU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIl9fZXhmYXRfY2FjaGVfaW52YWxfaW5vZGVcIixcbiAgICBcImV4ZmF0X2ZpbGVfd3JpdGVfaXRlclwiLFxuICAgIFwiX19leGZhdF9pb21hcF9iZWdpblwiLFxuICAgIFwiZXhmYXRfaW9tYXBfdmFsaWRcIixcbiAgICBcImV4ZmF0X3dyaXRlYmFja19yYW5nZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBleGZhdCBmaWxlc3lzdGVtJ3MgaW9tYXAgYW5kIGNhY2hpbmcgbG9naWMsIHNwZWNpZmljYWxseSBpbnRyb2R1Y2luZyBhIHZhbGlkaXR5IGNvb2tpZSBmb3IgaW9tYXBzIGFuZCBjaGFuZ2luZyBob3cgdGhlIGNhY2hlIHZhbGlkaXR5IElEIGlzIGluY3JlbWVudGVkLiBUaGVzZSBjaGFuZ2VzIGFyZSBmdW5jdGlvbmFsIGFuZCByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIGZpbGUgd3JpdGUgYW5kIHdyaXRlYmFjayBvcGVyYXRpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDI3NTIyYjM1ODZkZTgwN2ZlOTViYzg2ZTg4M2E5NWNkZThkMDIzMjhcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCAxIDA2OjQ4OjI4IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZnMvZXhmYXQvY2FjaGUuYyBiL2ZzL2V4ZmF0L2NhY2hlLmNcbmluZGV4IDdjOGI0MTgyZjVkZTdiLi43MTYzMWJhYjE4MmNkMSAxMDA2NDRcbi0tLSBhL2ZzL2V4ZmF0L2NhY2hlLmNcbisrKyBiL2ZzL2V4ZmF0L2NhY2hlLmNcbkBAIC0yMjgsOSArMjI4LDEwIEBAIHN0YXRpYyB2b2lkIF9fZXhmYXRfY2FjaGVfaW52YWxfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSlcbiBcdFx0ZXhmYXRfY2FjaGVfZnJlZShjYWNoZSk7XG4gXHR9XG4gXHQvKiBVcGRhdGUuIFRoZSBjb3B5IG9mIGNhY2hlcyBiZWZvcmUgdGhpcyBpZCBpcyBkaXNjYXJkZWQuICovXG4tXHRlaS1cdTAwM2VjYWNoZV92YWxpZF9pZCsrO1xuLVx0aWYgKGVpLVx1MDAzZWNhY2hlX3ZhbGlkX2lkID09IEVYRkFUX0NBQ0hFX1ZBTElEKVxuLVx0XHRlaS1cdTAwM2VjYWNoZV92YWxpZF9pZCsrO1xuK1x0aWYgKGVpLVx1MDAzZWNhY2hlX3ZhbGlkX2lkICsgMSA9PSBFWEZBVF9DQUNIRV9WQUxJRClcbitcdFx0ZWktXHUwMDNlY2FjaGVfdmFsaWRfaWQgPSBFWEZBVF9DQUNIRV9WQUxJRCArIDE7XG4rXHRlbHNlXG4rXHRcdGVpLVx1MDAzZWNhY2hlX3ZhbGlkX2lkID0gZWktXHUwMDNlY2FjaGVfdmFsaWRfaWQgKyAxO1xuIH1cbiBcbiB2b2lkIGV4ZmF0X2NhY2hlX2ludmFsX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpXG5kaWZmIC0tZ2l0IGEvZnMvZXhmYXQvZmlsZS5jIGIvZnMvZXhmYXQvZmlsZS5jXG5pbmRleCA1ZmMxMzM3OGQzNWY3Mi4uNDI1ODM5OGNhNjQxZjAgMTAwNjQ0XG4tLS0gYS9mcy9leGZhdC9maWxlLmNcbisrKyBiL2ZzL2V4ZmF0L2ZpbGUuY1xuQEAgLTc3Miw4ICs3NzIsOCBAQCBzdGF0aWMgc3NpemVfdCBleGZhdF9maWxlX3dyaXRlX2l0ZXIoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKml0ZXIpXG4gXHRpZiAoaW9jYi1cdTAwM2VraV9mbGFncyBcdTAwMjYgSU9DQl9ESVJFQ1QpXG4gXHRcdHJldCA9IGV4ZmF0X2Rpb193cml0ZV9pdGVyKGlvY2IsIGl0ZXIpO1xuIFx0ZWxzZVxuLVx0XHRyZXQgPSBpb21hcF9maWxlX2J1ZmZlcmVkX3dyaXRlKGlvY2IsIGl0ZXIsXG4tXHRcdFx0XHRcdTAwMjZleGZhdF93cml0ZV9pb21hcF9vcHMsIE5VTEwsIE5VTEwpO1xuK1x0XHRyZXQgPSBpb21hcF9maWxlX2J1ZmZlcmVkX3dyaXRlKGlvY2IsIGl0ZXIsIFx1MDAyNmV4ZmF0X3dyaXRlX2lvbWFwX29wcyxcbitcdFx0XHRcdFx0XHRcdTAwMjZleGZhdF9pb21hcF93cml0ZV9vcHMsIE5VTEwpO1xuIFx0aWYgKHJldCBcdTAwM2MgMClcbiBcdFx0Z290byB1bmxvY2s7XG4gXG5kaWZmIC0tZ2l0IGEvZnMvZXhmYXQvaW9tYXAuYyBiL2ZzL2V4ZmF0L2lvbWFwLmNcbmluZGV4IDFhYWMzOGU2M2ZlNmYwLi5lZmNlZDMyMGE1ZWZiYSAxMDA2NDRcbi0tLSBhL2ZzL2V4ZmF0L2lvbWFwLmNcbisrKyBiL2ZzL2V4ZmF0L2lvbWFwLmNcbkBAIC01Niw2ICs1Niw3IEBAIHN0YXRpYyBpbnQgX19leGZhdF9pb21hcF9iZWdpbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBsb2ZmX3Qgb2Zmc2V0LCBsb2ZmX3QgbGVuZ3RoXG4gXHRcdFx0aW9tYXAtXHUwMDNlYWRkciA9IElPTUFQX05VTExfQUREUjtcbiBcdFx0XHRpb21hcC1cdTAwM2VvZmZzZXQgPSBvZmZzZXQ7XG4gXHRcdFx0aW9tYXAtXHUwMDNlbGVuZ3RoID0gbGVuZ3RoO1xuK1x0XHRcdGlvbWFwLVx1MDAzZXZhbGlkaXR5X2Nvb2tpZSA9IGVpLVx1MDAzZWNhY2hlX3ZhbGlkX2lkO1xuIFx0XHRcdHJldHVybiAwO1xuIFx0XHR9XG4gXG5AQCAtMTMzLDcgKzEzNCw3IEBAIHN0YXRpYyBpbnQgX19leGZhdF9pb21hcF9iZWdpbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBsb2ZmX3Qgb2Zmc2V0LCBsb2ZmX3QgbGVuZ3RoXG4gXHRcdH1cbiBcdH1cbiBcbi1cdGlvbWFwLVx1MDAzZWZsYWdzIHw9IElPTUFQX0ZfTUVSR0VEO1xuK1x0aW9tYXAtXHUwMDNldmFsaWRpdHlfY29va2llID0gZWktXHUwMDNlY2FjaGVfdmFsaWRfaWQ7XG4gb3V0OlxuIFx0bXV0ZXhfdW5sb2NrKFx1MDAyNnNiaS1cdTAwM2VzX2xvY2spO1xuIFx0cmV0dXJuIGVycjtcbkBAIC0xNTUsNiArMTU2LDE1IEBAIGNvbnN0IHN0cnVjdCBpb21hcF9vcHMgZXhmYXRfaW9tYXBfb3BzID0ge1xuIFx0LmlvbWFwX2JlZ2luID0gZXhmYXRfaW9tYXBfYmVnaW4sXG4gfTtcbiBcbitzdGF0aWMgYm9vbCBleGZhdF9pb21hcF92YWxpZChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBjb25zdCBzdHJ1Y3QgaW9tYXAgKmlvbWFwKVxuK3tcbitcdHJldHVybiBFWEZBVF9JKGlub2RlKS1cdTAwM2VjYWNoZV92YWxpZF9pZCA9PSBpb21hcC1cdTAwM2V2YWxpZGl0eV9jb29raWU7XG4rfVxuK1xuK2NvbnN0IHN0cnVjdCBpb21hcF93cml0ZV9vcHMgZXhmYXRfaW9tYXBfd3JpdGVfb3BzID0ge1xuK1x0LmlvbWFwX3ZhbGlkID0gZXhmYXRfaW9tYXBfdmFsaWQsXG4rfTtcbitcbiAvKlxuICAqIGV4ZmF0X3dyaXRlX2lvbWFwX2VuZCAtIFVwZGF0ZSB0aGUgc3RhdGUgYWZ0ZXIgd3JpdGVcbiAgKlxuQEAgLTIwMSw3ICsyMTEsOCBAQCBzdGF0aWMgc3NpemVfdCBleGZhdF93cml0ZWJhY2tfcmFuZ2Uoc3RydWN0IGlvbWFwX3dyaXRlcGFnZV9jdHggKndwYyxcbiBcdFx0c3RydWN0IGZvbGlvICpmb2xpbywgdTY0IG9mZnNldCwgdW5zaWduZWQgaW50IGxlbiwgdTY0IGVuZF9wb3MpXG4ge1xuIFx0aWYgKG9mZnNldCBcdTAwM2Mgd3BjLVx1MDAzZWlvbWFwLm9mZnNldCB8fFxuLVx0ICAgIG9mZnNldCBcdTAwM2U9IHdwYy1cdTAwM2Vpb21hcC5vZmZzZXQgKyB3cGMtXHUwMDNlaW9tYXAubGVuZ3RoKSB7XG4rXHQgICAgb2Zmc2V0IFx1MDAzZT0gd3BjLVx1MDAzZWlvbWFwLm9mZnNldCArIHdwYy1cdTAwM2Vpb21hcC5sZW5ndGggfHxcbitcdCAgICAhZXhmYXRfaW9tYXBfdmFsaWQod3BjLVx1MDAzZWlub2RlLCBcdTAwMjZ3cGMtXHUwMDNlaW9tYXApKSB7XG4gXHRcdGludCBlcnJvcjtcbiBcbiBcdFx0ZXJyb3IgPSBfX2V4ZmF0X2lvbWFwX2JlZ2luKHdwYy1cdTAwM2Vpbm9kZSwgb2Zmc2V0LCBsZW4sXG5kaWZmIC0tZ2l0IGEvZnMvZXhmYXQvaW9tYXAuaCBiL2ZzL2V4ZmF0L2lvbWFwLmhcbmluZGV4IGZkOGE5MTNmNzc5NDYwLi4zOWM5M2Y4Y2Q3OTA0ZCAxMDA2NDRcbi0tLSBhL2ZzL2V4ZmF0L2lvbWFwLmhcbisrKyBiL2ZzL2V4ZmF0L2lvbWFwLmhcbkBAIC05LDYgKzksNyBAQFxuIGV4dGVybiBjb25zdCBzdHJ1Y3QgaW9tYXBfZGlvX29wcyBleGZhdF93cml0ZV9kaW9fb3BzO1xuIGV4dGVybiBjb25zdCBzdHJ1Y3QgaW9tYXBfb3BzIGV4ZmF0X2lvbWFwX29wcztcbiBleHRlcm4gY29uc3Qgc3RydWN0IGlvbWFwX29wcyBleGZhdF93cml0ZV9pb21hcF9vcHM7XG4rZXh0ZXJuIGNvbnN0IHN0cnVjdCBpb21hcF93cml0ZV9vcHMgZXhmYXRfaW9tYXBfd3JpdGVfb3BzO1xuIGV4dGVybiBjb25zdCBzdHJ1Y3QgaW9tYXBfd3JpdGViYWNrX29wcyBleGZhdF93cml0ZWJhY2tfb3BzO1xuIGV4dGVybiBjb25zdCBzdHJ1Y3QgaW9tYXBfcmVhZF9vcHMgZXhmYXRfaW9tYXBfYmlvX3JlYWRfb3BzO1xuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDFUMDY6NDg6MzAuNjgyMDYwMTM4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjEyOTM1OTQ1MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBQcm9wb3NlZCBFeEZBVCBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIHRoZSBleEZBVCBmaWxlc3lzdGVtLCBhbmQgaXQncyB0b3VjaGluZyBhIGZldyBrZXkgYXJlYXM6IGBjYWNoZS5jYCwgYGZpbGUuY2AsIGBpb21hcC5jYCwgYW5kIGBpb21hcC5oYC4gVGhhdCBpbW1lZGlhdGVseSB0ZWxscyBtZSB0aGlzIGlzIHNvbWV0aGluZyBzdWJzdGFudGlhbCwgbGlrZWx5IGEgZnVuY3Rpb25hbCBjaGFuZ2UsIG5vdCBqdXN0IGEgYnVnIGZpeC5cblxuVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBzZWVtcyB0byByZXZvbHZlIGFyb3VuZCBob3cgYGNhY2hlX3ZhbGlkX2lkYCBpcyBoYW5kbGVkLCBzcGVjaWZpY2FsbHkgd2l0aGluIGBfX2V4ZmF0X2NhY2hlX2ludmFsX2lub2RlYC4gIFRoZXkncmUgaW5jcmVtZW50aW5nIGl0IHRoZXJlLCBhbmQgdGhlbiBzZXR0aW5nIGBpb21hcC1cdTAwM2V2YWxpZGl0eV9jb29raWVgIHRvIHRoYXQgbmV3IHZhbHVlIGluIGBfX2V4ZmF0X2lvbWFwX2JlZ2luYC4gIEEgbmV3IGZ1bmN0aW9uLCBgZXhmYXRfaW9tYXBfdmFsaWRgLCBpcyBpbnRyb2R1Y2VkLCB3aGljaCBJIGFzc3VtZSBjaGVja3MgZm9yIHRoZSB2YWxpZGl0eSBvZiB0aGUgY2FjaGVkIGRhdGEgYmFzZWQgb24gY29tcGFyaW5nIGBFWEZBVF9JKGlub2RlKS1cdTAwM2VjYWNoZV92YWxpZF9pZGAgd2l0aCB0aGF0IGNvb2tpZS4gVGhpcyBpbXBsaWVzIHNvbWUgZm9ybSBvZiBjYWNoZSBpbnZhbGlkYXRpb24gb3IgdHJhY2tpbmcuXG5cbkkgc2VlIHRoYXQgYFx1MDAyNmV4ZmF0X2lvbWFwX3dyaXRlX29wc2AgaXMgbm93IHBhc3NlZCB0byBgaW9tYXBfZmlsZV9idWZmZXJlZF93cml0ZWAuIFRoYXQncyBhbiBpbnRlcmVzdGluZyBob29rOyBpdCBtdXN0IGJlIHJlbGF0ZWQgdG8gaG93IHRoZSB3cml0ZSBvcGVyYXRpb24gaXMgcGVyZm9ybWVkLCBwb3NzaWJseSBkZWFsaW5nIHdpdGggYnVmZmVyZWQgd3JpdGVzIG9yIEkvTyBtYXBwaW5nLiBBbmQgdGhlbiB0aGVyZSdzIGEgY2hlY2sgZm9yIGAhZXhmYXRfaW9tYXBfdmFsaWRgIGluc2lkZSBgZXhmYXRfd3JpdGViYWNrX3JhbmdlYC4gVGhpcyBpcyBkZWZpbml0ZWx5IGEgY3J1Y2lhbCBhcmVhIHRvIHVuZGVyc3RhbmQgaW4gY29udGV4dCBvZiB0aGlzIG1vZGlmaWNhdGlvbi5cblxuR2l2ZW4gdGhlc2UgY2hhbmdlcywgZXNwZWNpYWxseSB0aGUgbWFuaXB1bGF0aW9uIG9mIHRoZSBgY2FjaGVfdmFsaWRfaWRgIGFuZCB0aGUgaW50cm9kdWN0aW9uIG9mIGEgbmV3IHZhbGlkaXR5IGNoZWNrLCB0aGlzIHNjcmVhbXMgXCJmdXp6aW5nIHRhcmdldFwiIHRvIG1lLiBUaGVyZSBhcmUgc2V2ZXJhbCBpbnRlcmVzdGluZyBzdGF0ZXMgdGhhdCBjb3VsZCBiZSB1bmNvdmVyZWQgaGVyZS4gQW55IGNoYW5nZSB0aGF0IGRlYWxzIHdpdGggY2FjaGluZyBhbmQgSS9PIG1hcHBpbmcgaXMgdmVyeSBsaWtlbHkgdG8gaGF2ZSBzb21lIGludGVyZXN0aW5nIGVkZ2UgY2FzZXMsIHJhY2UgY29uZGl0aW9ucywgb3Igb3RoZXIgcG90ZW50aWFsIGJ1Z3MgdGhhdCBjYW4gYmUgcmV2ZWFsZWQgdmlhIGZ1enppbmcuXG5cbk15IG5leHQgc3RlcCBpcyB0byBmaW5kIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbiBmb3IgZXhGQVQuIEknbGwgdXNlIGBncmVwcGVyYCBhbmQgbG9vayBmb3IgYEVYRkFUX0ZTYCBpbiBgZnMvZXhmYXQvS2NvbmZpZ2AgdG8gZGV0ZXJtaW5lIGhvdyB0byBlbmFibGUvZGlzYWJsZSBpdCBhbmQgZW5zdXJlIGl0J3MgcHJvcGVybHkgY29uZmlndXJlZCBmb3IgdGVzdGluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzEwMywiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI4NywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAxVDA2OjQ4OjM2LjgxMTQyMzM3MVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDk1NzI1ODYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEVYRkFUX0ZTXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImZzL2V4ZmF0L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZnMvZXhmYXQvS2NvbmZpZy0yLVxcbmZzL2V4ZmF0L0tjb25maWc6Mzpjb25maWcgRVhGQVRfRlNcXG5mcy9leGZhdC9LY29uZmlnLTQtXFx0dHJpc3RhdGUgXFxcImV4RkFUIGZpbGVzeXN0ZW0gc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDFUMDY6NDg6MzYuOTYxMDE0NDk3WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjYyNDYxMTM0NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFJlY2VudCBFWEZBVCBDaGFuZ2VzKipcblxuT2theSwgc28gdGhlIGNvbmZpZ3VyYXRpb24gaXMgZGVmaW5pdGVseSB0YXJnZXRpbmcgYEVYRkFUX0ZTYC4gTXkgZm9jdXMgbm93IGlzIG9uIHRoZSByZWNlbnQgbW9kaWZpY2F0aW9ucywgc3BlY2lmaWNhbGx5IHRoZXNlIGZ1bmN0aW9uczogYF9fZXhmYXRfY2FjaGVfaW52YWxfaW5vZGVgLCBgZXhmYXRfZmlsZV93cml0ZV9pdGVyYCwgYF9fZXhmYXRfaW9tYXBfYmVnaW5gLCBgZXhmYXRfaW9tYXBfdmFsaWRgLCBhbmQgYGV4ZmF0X3dyaXRlYmFja19yYW5nZWAuIEknbSBhbHJlYWR5IHNlZWluZyBzb21lIHBhdHRlcm5zLiBgX19leGZhdF9jYWNoZV9pbnZhbF9pbm9kZWAgaXMgc3RhdGljLCBjYWxsZWQgYnkgYGV4ZmF0X2NhY2hlX2ludmFsX2lub2RlYCwgSSdsbCBrZWVwIHRoYXQgaW4gbWluZC4gYGV4ZmF0X2ZpbGVfd3JpdGVfaXRlcmAgaXMgdGhlIGZpbGUgd3JpdGUgaXRlcmF0b3IsIHRoYXQgbWFrZXMgc2Vuc2UuIGBfX2V4ZmF0X2lvbWFwX2JlZ2luYCBpcyB0aGUgaW9tYXAgYmVnaW4sIHdoaWNoLCBJIHN1cHBvc2UgY291bGQgYmUgaW50ZXJlc3RpbmcuIEFuZCB0aGUgYGV4ZmF0X2lvbWFwX3ZhbGlkYCBhbmQgYGV4ZmF0X3dyaXRlYmFja19yYW5nZWAgZnVuY3Rpb25zIGFyZSB0aGVyZSB0b28uXG5cbkp1c3QgZG91YmxlLWNoZWNraW5nLCBJIHdhbnQgdG8gbWFrZSBzdXJlIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBgZXhmYXRfaW9tYXBfdmFsaWRgIGlzIHN0YXRpYzsgeWVzLCBpdCdzIGRlZmluZWQgYXMgc3VjaCBpbiBgZnMvZXhmYXQvaW9tYXAuY2AuIEFuZCBub3csIGxldCdzIGFsc28gaW52ZXN0aWdhdGUgYGV4ZmF0X3dyaXRlYmFja19yYW5nZWAgd2l0aGluIHRoZSBzYW1lIGZpbGUuIEkgdGhpbmsgSSdsbCB1c2UgYGdyZXBwZXJgIHRvIGxvY2F0ZSB0aGUgc291cmNlIGRlZmluaXRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjozOTQ2LCJPdXRwdXRUb2tlbnMiOjIwNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI2MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wMVQwNjo0ODo0My41ODU2MzI5MjFaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTA5NTE1MjQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIl5zdGF0aWMgdm9pZCBfX2V4ZmF0X2NhY2hlX2ludmFsX2lub2RlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImZzL2V4ZmF0L2NhY2hlLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZnMvZXhmYXQvY2FjaGUuYz0xNjI9c3RhdGljIHZvaWQgZXhmYXRfY2FjaGVfYWRkKHN0cnVjdCBpbm9kZSAqaW5vZGUsXFxuLS1cXG5mcy9leGZhdC9jYWNoZS5jLTIxNy0gKi9cXG5mcy9leGZhdC9jYWNoZS5jOjIxODpzdGF0aWMgdm9pZCBfX2V4ZmF0X2NhY2hlX2ludmFsX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpXFxuZnMvZXhmYXQvY2FjaGUuYy0yMTkte1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMVQwNjo0ODo0My42OTUxNTY0OVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzA2NTM1MTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiXnN0YXRpYyBzc2l6ZV90IGV4ZmF0X2ZpbGVfd3JpdGVfaXRlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJmcy9leGZhdC9maWxlLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZnMvZXhmYXQvZmlsZS5jPTcwOD1zdGF0aWMgc3NpemVfdCBleGZhdF9kaW9fd3JpdGVfaXRlcihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqZnJvbSlcXG4tLVxcbmZzL2V4ZmF0L2ZpbGUuYy03MzAtXFxuZnMvZXhmYXQvZmlsZS5jOjczMTpzdGF0aWMgc3NpemVfdCBleGZhdF9maWxlX3dyaXRlX2l0ZXIoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKml0ZXIpXFxuZnMvZXhmYXQvZmlsZS5jLTczMi17XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAxVDA2OjQ4OjQzLjgyNTgxODIwOFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDIzMzk1NDYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiXnN0YXRpYyBpbnQgX19leGZhdF9pb21hcF9iZWdpblwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJmcy9leGZhdC9pb21hcC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImZzL2V4ZmF0L2lvbWFwLmM9Mzc9Y29uc3Qgc3RydWN0IGlvbWFwX2Rpb19vcHMgZXhmYXRfd3JpdGVfZGlvX29wcyA9IHtcXG4tLVxcbmZzL2V4ZmF0L2lvbWFwLmMtNDAtXFxuZnMvZXhmYXQvaW9tYXAuYzo0MTpzdGF0aWMgaW50IF9fZXhmYXRfaW9tYXBfYmVnaW4oc3RydWN0IGlub2RlICppbm9kZSwgbG9mZl90IG9mZnNldCwgbG9mZl90IGxlbmd0aCxcXG5mcy9leGZhdC9pb21hcC5jLTQyLVxcdFxcdHVuc2lnbmVkIGludCBmbGFncywgc3RydWN0IGlvbWFwICppb21hcCwgYm9vbCBtYXlfYWxsb2MpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAxVDA2OjQ4OjQzLjk2ODE2NTAwNFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDMzNjYyNjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiXnN0YXRpYyBib29sIGV4ZmF0X2lvbWFwX3ZhbGlkXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImZzL2V4ZmF0L2lvbWFwLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZnMvZXhmYXQvaW9tYXAuYz0xNTU9Y29uc3Qgc3RydWN0IGlvbWFwX29wcyBleGZhdF9pb21hcF9vcHMgPSB7XFxuLS1cXG5mcy9leGZhdC9pb21hcC5jLTE1OC1cXG5mcy9leGZhdC9pb21hcC5jOjE1OTpzdGF0aWMgYm9vbCBleGZhdF9pb21hcF92YWxpZChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBjb25zdCBzdHJ1Y3QgaW9tYXAgKmlvbWFwKVxcbmZzL2V4ZmF0L2lvbWFwLmMtMTYwLXtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDFUMDY6NDg6NDQuMDcxNTM4Njk0WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5Nzc3MDgyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJec3RhdGljIHNzaXplX3QgZXhmYXRfd3JpdGViYWNrX3JhbmdlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImZzL2V4ZmF0L2lvbWFwLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZnMvZXhmYXQvaW9tYXAuYz0xOTk9Y29uc3Qgc3RydWN0IGlvbWFwX29wcyBleGZhdF93cml0ZV9pb21hcF9vcHMgPSB7XFxuLS1cXG5mcy9leGZhdC9pb21hcC5jLTIwOS0gKi9cXG5mcy9leGZhdC9pb21hcC5jOjIxMDpzdGF0aWMgc3NpemVfdCBleGZhdF93cml0ZWJhY2tfcmFuZ2Uoc3RydWN0IGlvbWFwX3dyaXRlcGFnZV9jdHggKndwYyxcXG5mcy9leGZhdC9pb21hcC5jLTIxMS1cXHRcXHRzdHJ1Y3QgZm9saW8gKmZvbGlvLCB1NjQgb2Zmc2V0LCB1bnNpZ25lZCBpbnQgbGVuLCB1NjQgZW5kX3BvcylcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDFUMDY6NDg6NDQuMTY5MzIwNDU0WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU2MTg0NTg3ODMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQWRkaW5nIEV4RkFUIEkvTyBhbmQgQ2FjaGluZyBGdW5jdGlvbnMgdG8gRm9jdXNTeW1ib2xzKipcblxuT2theSwgc28gSSd2ZSBnb3QgdGhlc2UgZnVuY3Rpb25zOiBgX19leGZhdF9jYWNoZV9pbnZhbF9pbm9kZWAsIGBleGZhdF9maWxlX3dyaXRlX2l0ZXJgLCBgX19leGZhdF9pb21hcF9iZWdpbmAsIGBleGZhdF9pb21hcF92YWxpZGAsIGFuZCBgZXhmYXRfd3JpdGViYWNrX3JhbmdlYC4gQmFzZWQgb24gdGhlIHBhdGNoIGRlc2NyaXB0aW9uLCB0aGVzZSBmdW5jdGlvbnMgYXJlIGFsbCBpbnZvbHZlZCBpbiB0aGUgRXhGQVQgZmlsZXN5c3RlbSdzIGlvbWFwIGFuZCBjYWNoaW5nIG1lY2hhbmlzbXMuIFRoaXMgaXMgcHJldHR5IHNpZ25pZmljYW50LCBhbmQgdGhleSdyZSBkZWZpbml0ZWx5IHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSwgd2hpY2ggbWFrZXMgdGhlbSBwcmltZSBjYW5kaWRhdGVzIGZvciBpbmNsdXNpb24gaW4gYEZvY3VzU3ltYm9sc2AuIEVzc2VudGlhbGx5LCBpdCBzZWVtcyB0aGlzIHBhdGNoIGlzIGNoYW5naW5nIGhvdyB3cml0ZXMgYW5kIHdyaXRlYmFja3Mgb3BlcmF0ZS5cblxuTGV0J3MgcXVpY2tseSB2ZXJpZnkgdGhlIG5hbWluZy4gWWVhaCwgYWxsIHRoZSBmdW5jdGlvbiBuYW1lcyBhcmUgY29ycmVjdC4gRXhjZWxsZW50LiBJJ20gc2F0aXNmaWVkLiBOb3csIGl0J3MgdGltZSB0byBjYWxsIGBzZXQtcmVzdWx0c2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUzMzcsIk91dHB1dFRva2VucyI6MTQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjE5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciIsImdyZXBwZXIiLCJncmVwcGVyIiwiZ3JlcHBlciIsImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wMVQwNjo0ODo0OS43ODc3ODIxMTdaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxODY5MjUyNjIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkVYRkFUX0ZTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiX19leGZhdF9jYWNoZV9pbnZhbF9pbm9kZVwiLFxuICAgIFwiZXhmYXRfZmlsZV93cml0ZV9pdGVyXCIsXG4gICAgXCJfX2V4ZmF0X2lvbWFwX2JlZ2luXCIsXG4gICAgXCJleGZhdF9pb21hcF92YWxpZFwiLFxuICAgIFwiZXhmYXRfd3JpdGViYWNrX3JhbmdlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGV4ZmF0IGZpbGVzeXN0ZW0ncyBpb21hcCBhbmQgY2FjaGluZyBsb2dpYywgc3BlY2lmaWNhbGx5IGludHJvZHVjaW5nIGEgdmFsaWRpdHkgY29va2llIGZvciBpb21hcHMgYW5kIGNoYW5naW5nIGhvdyB0aGUgY2FjaGUgdmFsaWRpdHkgSUQgaXMgaW5jcmVtZW50ZWQuIFRoZXNlIGNoYW5nZXMgYXJlIGZ1bmN0aW9uYWwgYW5kIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgZmlsZSB3cml0ZSBhbmQgd3JpdGViYWNrIG9wZXJhdGlvbnMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiRVhGQVRfRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJfX2V4ZmF0X2NhY2hlX2ludmFsX2lub2RlXCIsXG4gICAgXCJleGZhdF9maWxlX3dyaXRlX2l0ZXJcIixcbiAgICBcIl9fZXhmYXRfaW9tYXBfYmVnaW5cIixcbiAgICBcImV4ZmF0X2lvbWFwX3ZhbGlkXCIsXG4gICAgXCJleGZhdF93cml0ZWJhY2tfcmFuZ2VcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgZXhmYXQgZmlsZXN5c3RlbSdzIGlvbWFwIGFuZCBjYWNoaW5nIGxvZ2ljLCBzcGVjaWZpY2FsbHkgaW50cm9kdWNpbmcgYSB2YWxpZGl0eSBjb29raWUgZm9yIGlvbWFwcyBhbmQgY2hhbmdpbmcgaG93IHRoZSBjYWNoZSB2YWxpZGl0eSBJRCBpcyBpbmNyZW1lbnRlZC4gVGhlc2UgY2hhbmdlcyBhcmUgZnVuY3Rpb25hbCBhbmQgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBmaWxlIHdyaXRlIGFuZCB3cml0ZWJhY2sgb3BlcmF0aW9ucy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowjpzzv[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-01 06:35:28 +0000 UTC FinishedAt: 2026-07-01 06:48:51 +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": "dc59e4fea9d83f03bad6bddf3fa2e52491777482", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "EXFAT_FS" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "dc59e4fea9d83f03bad6bddf3fa2e52491777482", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "EXFAT_FS" ], "series_id": "1f82f086-aa52-4d53-b741-577ef518430c" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "__exfat_cache_inval_inode", "exfat_file_write_iter", "__exfat_iomap_begin", "exfat_iomap_valid", "exfat_writeback_range" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAxIDA2OjQ4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0VYRkFUX0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7X19leGZhdF9jYWNoZV9pbnZhbF9pbm9kZSYjMzQ7LAogICAgJiMzNDtleGZhdF9maWxlX3dyaXRlX2l0ZXImIzM0OywKICAgICYjMzQ7X19leGZhdF9pb21hcF9iZWdpbiYjMzQ7LAogICAgJiMzNDtleGZhdF9pb21hcF92YWxpZCYjMzQ7LAogICAgJiMzNDtleGZhdF93cml0ZWJhY2tfcmFuZ2UmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGV4ZmF0IGZpbGVzeXN0ZW0mIzM5O3MgaW9tYXAgYW5kIGNhY2hpbmcgbG9naWMsIHNwZWNpZmljYWxseSBpbnRyb2R1Y2luZyBhIHZhbGlkaXR5IGNvb2tpZSBmb3IgaW9tYXBzIGFuZCBjaGFuZ2luZyBob3cgdGhlIGNhY2hlIHZhbGlkaXR5IElEIGlzIGluY3JlbWVudGVkLiBUaGVzZSBjaGFuZ2VzIGFyZSBmdW5jdGlvbmFsIGFuZCByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIGZpbGUgd3JpdGUgYW5kIHdyaXRlYmFjayBvcGVyYXRpb25zLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAxIDA2OjQ4PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgMjc1MjJiMzU4NmRlODA3ZmU5NWJjODZlODgzYTk1Y2RlOGQwMjMyOFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDEgMDY6NDg6MjggMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZnMvZXhmYXQvY2FjaGUuYyBiL2ZzL2V4ZmF0L2NhY2hlLmNcbmluZGV4IDdjOGI0MTgyZjVkZTdiLi43MTYzMWJhYjE4MmNkMSAxMDA2NDRcbi0tLSBhL2ZzL2V4ZmF0L2NhY2hlLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2V4ZmF0L2NhY2hlLmNcbkBAIC0yMjgsOSAmIzQzOzIyOCwxMCBAQCBzdGF0aWMgdm9pZCBfX2V4ZmF0X2NhY2hlX2ludmFsX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpXG4gXHRcdGV4ZmF0X2NhY2hlX2ZyZWUoY2FjaGUpO1xuIFx0fVxuIFx0LyogVXBkYXRlLiBUaGUgY29weSBvZiBjYWNoZXMgYmVmb3JlIHRoaXMgaWQgaXMgZGlzY2FyZGVkLiAqL1xuLVx0ZWktXHUwMDNlY2FjaGVfdmFsaWRfaWQmIzQzOyYjNDM7O1xuLVx0aWYgKGVpLVx1MDAzZWNhY2hlX3ZhbGlkX2lkID09IEVYRkFUX0NBQ0hFX1ZBTElEKVxuLVx0XHRlaS1cdTAwM2VjYWNoZV92YWxpZF9pZCYjNDM7JiM0Mzs7XG4mIzQzO1x0aWYgKGVpLVx1MDAzZWNhY2hlX3ZhbGlkX2lkICYjNDM7IDEgPT0gRVhGQVRfQ0FDSEVfVkFMSUQpXG4mIzQzO1x0XHRlaS1cdTAwM2VjYWNoZV92YWxpZF9pZCA9IEVYRkFUX0NBQ0hFX1ZBTElEICYjNDM7IDE7XG4mIzQzO1x0ZWxzZVxuJiM0MztcdFx0ZWktXHUwMDNlY2FjaGVfdmFsaWRfaWQgPSBlaS1cdTAwM2VjYWNoZV92YWxpZF9pZCAmIzQzOyAxO1xuIH1cbiBcbiB2b2lkIGV4ZmF0X2NhY2hlX2ludmFsX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpXG5kaWZmIC0tZ2l0IGEvZnMvZXhmYXQvZmlsZS5jIGIvZnMvZXhmYXQvZmlsZS5jXG5pbmRleCA1ZmMxMzM3OGQzNWY3Mi4uNDI1ODM5OGNhNjQxZjAgMTAwNjQ0XG4tLS0gYS9mcy9leGZhdC9maWxlLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2V4ZmF0L2ZpbGUuY1xuQEAgLTc3Miw4ICYjNDM7NzcyLDggQEAgc3RhdGljIHNzaXplX3QgZXhmYXRfZmlsZV93cml0ZV9pdGVyKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICppdGVyKVxuIFx0aWYgKGlvY2ItXHUwMDNla2lfZmxhZ3MgXHUwMDI2IElPQ0JfRElSRUNUKVxuIFx0XHRyZXQgPSBleGZhdF9kaW9fd3JpdGVfaXRlcihpb2NiLCBpdGVyKTtcbiBcdGVsc2Vcbi1cdFx0cmV0ID0gaW9tYXBfZmlsZV9idWZmZXJlZF93cml0ZShpb2NiLCBpdGVyLFxuLVx0XHRcdFx0XHUwMDI2ZXhmYXRfd3JpdGVfaW9tYXBfb3BzLCBOVUxMLCBOVUxMKTtcbiYjNDM7XHRcdHJldCA9IGlvbWFwX2ZpbGVfYnVmZmVyZWRfd3JpdGUoaW9jYiwgaXRlciwgXHUwMDI2ZXhmYXRfd3JpdGVfaW9tYXBfb3BzLFxuJiM0MztcdFx0XHRcdFx0XHRcdTAwMjZleGZhdF9pb21hcF93cml0ZV9vcHMsIE5VTEwpO1xuIFx0aWYgKHJldCBcdTAwM2MgMClcbiBcdFx0Z290byB1bmxvY2s7XG4gXG5kaWZmIC0tZ2l0IGEvZnMvZXhmYXQvaW9tYXAuYyBiL2ZzL2V4ZmF0L2lvbWFwLmNcbmluZGV4IDFhYWMzOGU2M2ZlNmYwLi5lZmNlZDMyMGE1ZWZiYSAxMDA2NDRcbi0tLSBhL2ZzL2V4ZmF0L2lvbWFwLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2V4ZmF0L2lvbWFwLmNcbkBAIC01Niw2ICYjNDM7NTYsNyBAQCBzdGF0aWMgaW50IF9fZXhmYXRfaW9tYXBfYmVnaW4oc3RydWN0IGlub2RlICppbm9kZSwgbG9mZl90IG9mZnNldCwgbG9mZl90IGxlbmd0aFxuIFx0XHRcdGlvbWFwLVx1MDAzZWFkZHIgPSBJT01BUF9OVUxMX0FERFI7XG4gXHRcdFx0aW9tYXAtXHUwMDNlb2Zmc2V0ID0gb2Zmc2V0O1xuIFx0XHRcdGlvbWFwLVx1MDAzZWxlbmd0aCA9IGxlbmd0aDtcbiYjNDM7XHRcdFx0aW9tYXAtXHUwMDNldmFsaWRpdHlfY29va2llID0gZWktXHUwMDNlY2FjaGVfdmFsaWRfaWQ7XG4gXHRcdFx0cmV0dXJuIDA7XG4gXHRcdH1cbiBcbkBAIC0xMzMsNyAmIzQzOzEzNCw3IEBAIHN0YXRpYyBpbnQgX19leGZhdF9pb21hcF9iZWdpbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBsb2ZmX3Qgb2Zmc2V0LCBsb2ZmX3QgbGVuZ3RoXG4gXHRcdH1cbiBcdH1cbiBcbi1cdGlvbWFwLVx1MDAzZWZsYWdzIHw9IElPTUFQX0ZfTUVSR0VEO1xuJiM0MztcdGlvbWFwLVx1MDAzZXZhbGlkaXR5X2Nvb2tpZSA9IGVpLVx1MDAzZWNhY2hlX3ZhbGlkX2lkO1xuIG91dDpcbiBcdG11dGV4X3VubG9jayhcdTAwMjZzYmktXHUwMDNlc19sb2NrKTtcbiBcdHJldHVybiBlcnI7XG5AQCAtMTU1LDYgJiM0MzsxNTYsMTUgQEAgY29uc3Qgc3RydWN0IGlvbWFwX29wcyBleGZhdF9pb21hcF9vcHMgPSB7XG4gXHQuaW9tYXBfYmVnaW4gPSBleGZhdF9pb21hcF9iZWdpbixcbiB9O1xuIFxuJiM0MztzdGF0aWMgYm9vbCBleGZhdF9pb21hcF92YWxpZChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBjb25zdCBzdHJ1Y3QgaW9tYXAgKmlvbWFwKVxuJiM0Mzt7XG4mIzQzO1x0cmV0dXJuIEVYRkFUX0koaW5vZGUpLVx1MDAzZWNhY2hlX3ZhbGlkX2lkID09IGlvbWFwLVx1MDAzZXZhbGlkaXR5X2Nvb2tpZTtcbiYjNDM7fVxuJiM0MztcbiYjNDM7Y29uc3Qgc3RydWN0IGlvbWFwX3dyaXRlX29wcyBleGZhdF9pb21hcF93cml0ZV9vcHMgPSB7XG4mIzQzO1x0LmlvbWFwX3ZhbGlkID0gZXhmYXRfaW9tYXBfdmFsaWQsXG4mIzQzO307XG4mIzQzO1xuIC8qXG4gICogZXhmYXRfd3JpdGVfaW9tYXBfZW5kIC0gVXBkYXRlIHRoZSBzdGF0ZSBhZnRlciB3cml0ZVxuICAqXG5AQCAtMjAxLDcgJiM0MzsyMTEsOCBAQCBzdGF0aWMgc3NpemVfdCBleGZhdF93cml0ZWJhY2tfcmFuZ2Uoc3RydWN0IGlvbWFwX3dyaXRlcGFnZV9jdHggKndwYyxcbiBcdFx0c3RydWN0IGZvbGlvICpmb2xpbywgdTY0IG9mZnNldCwgdW5zaWduZWQgaW50IGxlbiwgdTY0IGVuZF9wb3MpXG4ge1xuIFx0aWYgKG9mZnNldCBcdTAwM2Mgd3BjLVx1MDAzZWlvbWFwLm9mZnNldCB8fFxuLVx0ICAgIG9mZnNldCBcdTAwM2U9IHdwYy1cdTAwM2Vpb21hcC5vZmZzZXQgJiM0Mzsgd3BjLVx1MDAzZWlvbWFwLmxlbmd0aCkge1xuJiM0MztcdCAgICBvZmZzZXQgXHUwMDNlPSB3cGMtXHUwMDNlaW9tYXAub2Zmc2V0ICYjNDM7IHdwYy1cdTAwM2Vpb21hcC5sZW5ndGggfHxcbiYjNDM7XHQgICAgIWV4ZmF0X2lvbWFwX3ZhbGlkKHdwYy1cdTAwM2Vpbm9kZSwgXHUwMDI2d3BjLVx1MDAzZWlvbWFwKSkge1xuIFx0XHRpbnQgZXJyb3I7XG4gXG4gXHRcdGVycm9yID0gX19leGZhdF9pb21hcF9iZWdpbih3cGMtXHUwMDNlaW5vZGUsIG9mZnNldCwgbGVuLFxuZGlmZiAtLWdpdCBhL2ZzL2V4ZmF0L2lvbWFwLmggYi9mcy9leGZhdC9pb21hcC5oXG5pbmRleCBmZDhhOTEzZjc3OTQ2MC4uMzljOTNmOGNkNzkwNGQgMTAwNjQ0XG4tLS0gYS9mcy9leGZhdC9pb21hcC5oXG4mIzQzOyYjNDM7JiM0MzsgYi9mcy9leGZhdC9pb21hcC5oXG5AQCAtOSw2ICYjNDM7OSw3IEBAXG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBpb21hcF9kaW9fb3BzIGV4ZmF0X3dyaXRlX2Rpb19vcHM7XG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBpb21hcF9vcHMgZXhmYXRfaW9tYXBfb3BzO1xuIGV4dGVybiBjb25zdCBzdHJ1Y3QgaW9tYXBfb3BzIGV4ZmF0X3dyaXRlX2lvbWFwX29wcztcbiYjNDM7ZXh0ZXJuIGNvbnN0IHN0cnVjdCBpb21hcF93cml0ZV9vcHMgZXhmYXRfaW9tYXBfd3JpdGVfb3BzO1xuIGV4dGVybiBjb25zdCBzdHJ1Y3QgaW9tYXBfd3JpdGViYWNrX29wcyBleGZhdF93cml0ZWJhY2tfb3BzO1xuIGV4dGVybiBjb25zdCBzdHJ1Y3QgaW9tYXBfcmVhZF9vcHMgZXhmYXRfaW9tYXBfYmlvX3JlYWRfb3BzO1xuIFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAxIDA2OjQ4PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0VYRkFUX0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7X19leGZhdF9jYWNoZV9pbnZhbF9pbm9kZSYjMzQ7LAogICAgJiMzNDtleGZhdF9maWxlX3dyaXRlX2l0ZXImIzM0OywKICAgICYjMzQ7X19leGZhdF9pb21hcF9iZWdpbiYjMzQ7LAogICAgJiMzNDtleGZhdF9pb21hcF92YWxpZCYjMzQ7LAogICAgJiMzNDtleGZhdF93cml0ZWJhY2tfcmFuZ2UmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGV4ZmF0IGZpbGVzeXN0ZW0mIzM5O3MgaW9tYXAgYW5kIGNhY2hpbmcgbG9naWMsIHNwZWNpZmljYWxseSBpbnRyb2R1Y2luZyBhIHZhbGlkaXR5IGNvb2tpZSBmb3IgaW9tYXBzIGFuZCBjaGFuZ2luZyBob3cgdGhlIGNhY2hlIHZhbGlkaXR5IElEIGlzIGluY3JlbWVudGVkLiBUaGVzZSBjaGFuZ2VzIGFyZSBmdW5jdGlvbmFsIGFuZCByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIGZpbGUgd3JpdGUgYW5kIHdyaXRlYmFjayBvcGVyYXRpb25zLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAyNzUyMmIzNTg2ZGU4MDdmZTk1YmM4NmU4ODNhOTVjZGU4ZDAyMzI4CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFdlZCBKdWwgMSAwNjo0ODoyOCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2ZzL2V4ZmF0L2NhY2hlLmMgYi9mcy9leGZhdC9jYWNoZS5jCmluZGV4IDdjOGI0MTgyZjVkZTdiLi43MTYzMWJhYjE4MmNkMSAxMDA2NDQKLS0tIGEvZnMvZXhmYXQvY2FjaGUuYwomIzQzOyYjNDM7JiM0MzsgYi9mcy9leGZhdC9jYWNoZS5jCkBAIC0yMjgsOSAmIzQzOzIyOCwxMCBAQCBzdGF0aWMgdm9pZCBfX2V4ZmF0X2NhY2hlX2ludmFsX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpCiAJCWV4ZmF0X2NhY2hlX2ZyZWUoY2FjaGUpOwogCX0KIAkvKiBVcGRhdGUuIFRoZSBjb3B5IG9mIGNhY2hlcyBiZWZvcmUgdGhpcyBpZCBpcyBkaXNjYXJkZWQuICovCi0JZWktJmd0O2NhY2hlX3ZhbGlkX2lkJiM0MzsmIzQzOzsKLQlpZiAoZWktJmd0O2NhY2hlX3ZhbGlkX2lkID09IEVYRkFUX0NBQ0hFX1ZBTElEKQotCQllaS0mZ3Q7Y2FjaGVfdmFsaWRfaWQmIzQzOyYjNDM7OwomIzQzOwlpZiAoZWktJmd0O2NhY2hlX3ZhbGlkX2lkICYjNDM7IDEgPT0gRVhGQVRfQ0FDSEVfVkFMSUQpCiYjNDM7CQllaS0mZ3Q7Y2FjaGVfdmFsaWRfaWQgPSBFWEZBVF9DQUNIRV9WQUxJRCAmIzQzOyAxOwomIzQzOwllbHNlCiYjNDM7CQllaS0mZ3Q7Y2FjaGVfdmFsaWRfaWQgPSBlaS0mZ3Q7Y2FjaGVfdmFsaWRfaWQgJiM0MzsgMTsKIH0KIAogdm9pZCBleGZhdF9jYWNoZV9pbnZhbF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKQpkaWZmIC0tZ2l0IGEvZnMvZXhmYXQvZmlsZS5jIGIvZnMvZXhmYXQvZmlsZS5jCmluZGV4IDVmYzEzMzc4ZDM1ZjcyLi40MjU4Mzk4Y2E2NDFmMCAxMDA2NDQKLS0tIGEvZnMvZXhmYXQvZmlsZS5jCiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2V4ZmF0L2ZpbGUuYwpAQCAtNzcyLDggJiM0Mzs3NzIsOCBAQCBzdGF0aWMgc3NpemVfdCBleGZhdF9maWxlX3dyaXRlX2l0ZXIoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKml0ZXIpCiAJaWYgKGlvY2ItJmd0O2tpX2ZsYWdzICZhbXA7IElPQ0JfRElSRUNUKQogCQlyZXQgPSBleGZhdF9kaW9fd3JpdGVfaXRlcihpb2NiLCBpdGVyKTsKIAllbHNlCi0JCXJldCA9IGlvbWFwX2ZpbGVfYnVmZmVyZWRfd3JpdGUoaW9jYiwgaXRlciwKLQkJCQkmYW1wO2V4ZmF0X3dyaXRlX2lvbWFwX29wcywgTlVMTCwgTlVMTCk7CiYjNDM7CQlyZXQgPSBpb21hcF9maWxlX2J1ZmZlcmVkX3dyaXRlKGlvY2IsIGl0ZXIsICZhbXA7ZXhmYXRfd3JpdGVfaW9tYXBfb3BzLAomIzQzOwkJCQkJCSZhbXA7ZXhmYXRfaW9tYXBfd3JpdGVfb3BzLCBOVUxMKTsKIAlpZiAocmV0ICZsdDsgMCkKIAkJZ290byB1bmxvY2s7CiAKZGlmZiAtLWdpdCBhL2ZzL2V4ZmF0L2lvbWFwLmMgYi9mcy9leGZhdC9pb21hcC5jCmluZGV4IDFhYWMzOGU2M2ZlNmYwLi5lZmNlZDMyMGE1ZWZiYSAxMDA2NDQKLS0tIGEvZnMvZXhmYXQvaW9tYXAuYwomIzQzOyYjNDM7JiM0MzsgYi9mcy9leGZhdC9pb21hcC5jCkBAIC01Niw2ICYjNDM7NTYsNyBAQCBzdGF0aWMgaW50IF9fZXhmYXRfaW9tYXBfYmVnaW4oc3RydWN0IGlub2RlICppbm9kZSwgbG9mZl90IG9mZnNldCwgbG9mZl90IGxlbmd0aAogCQkJaW9tYXAtJmd0O2FkZHIgPSBJT01BUF9OVUxMX0FERFI7CiAJCQlpb21hcC0mZ3Q7b2Zmc2V0ID0gb2Zmc2V0OwogCQkJaW9tYXAtJmd0O2xlbmd0aCA9IGxlbmd0aDsKJiM0MzsJCQlpb21hcC0mZ3Q7dmFsaWRpdHlfY29va2llID0gZWktJmd0O2NhY2hlX3ZhbGlkX2lkOwogCQkJcmV0dXJuIDA7CiAJCX0KIApAQCAtMTMzLDcgJiM0MzsxMzQsNyBAQCBzdGF0aWMgaW50IF9fZXhmYXRfaW9tYXBfYmVnaW4oc3RydWN0IGlub2RlICppbm9kZSwgbG9mZl90IG9mZnNldCwgbG9mZl90IGxlbmd0aAogCQl9CiAJfQogCi0JaW9tYXAtJmd0O2ZsYWdzIHw9IElPTUFQX0ZfTUVSR0VEOwomIzQzOwlpb21hcC0mZ3Q7dmFsaWRpdHlfY29va2llID0gZWktJmd0O2NhY2hlX3ZhbGlkX2lkOwogb3V0OgogCW11dGV4X3VubG9jaygmYW1wO3NiaS0mZ3Q7c19sb2NrKTsKIAlyZXR1cm4gZXJyOwpAQCAtMTU1LDYgJiM0MzsxNTYsMTUgQEAgY29uc3Qgc3RydWN0IGlvbWFwX29wcyBleGZhdF9pb21hcF9vcHMgPSB7CiAJLmlvbWFwX2JlZ2luID0gZXhmYXRfaW9tYXBfYmVnaW4sCiB9OwogCiYjNDM7c3RhdGljIGJvb2wgZXhmYXRfaW9tYXBfdmFsaWQoc3RydWN0IGlub2RlICppbm9kZSwgY29uc3Qgc3RydWN0IGlvbWFwICppb21hcCkKJiM0Mzt7CiYjNDM7CXJldHVybiBFWEZBVF9JKGlub2RlKS0mZ3Q7Y2FjaGVfdmFsaWRfaWQgPT0gaW9tYXAtJmd0O3ZhbGlkaXR5X2Nvb2tpZTsKJiM0Mzt9CiYjNDM7CiYjNDM7Y29uc3Qgc3RydWN0IGlvbWFwX3dyaXRlX29wcyBleGZhdF9pb21hcF93cml0ZV9vcHMgPSB7CiYjNDM7CS5pb21hcF92YWxpZCA9IGV4ZmF0X2lvbWFwX3ZhbGlkLAomIzQzO307CiYjNDM7CiAvKgogICogZXhmYXRfd3JpdGVfaW9tYXBfZW5kIC0gVXBkYXRlIHRoZSBzdGF0ZSBhZnRlciB3cml0ZQogICoKQEAgLTIwMSw3ICYjNDM7MjExLDggQEAgc3RhdGljIHNzaXplX3QgZXhmYXRfd3JpdGViYWNrX3JhbmdlKHN0cnVjdCBpb21hcF93cml0ZXBhZ2VfY3R4ICp3cGMsCiAJCXN0cnVjdCBmb2xpbyAqZm9saW8sIHU2NCBvZmZzZXQsIHVuc2lnbmVkIGludCBsZW4sIHU2NCBlbmRfcG9zKQogewogCWlmIChvZmZzZXQgJmx0OyB3cGMtJmd0O2lvbWFwLm9mZnNldCB8fAotCSAgICBvZmZzZXQgJmd0Oz0gd3BjLSZndDtpb21hcC5vZmZzZXQgJiM0Mzsgd3BjLSZndDtpb21hcC5sZW5ndGgpIHsKJiM0MzsJICAgIG9mZnNldCAmZ3Q7PSB3cGMtJmd0O2lvbWFwLm9mZnNldCAmIzQzOyB3cGMtJmd0O2lvbWFwLmxlbmd0aCB8fAomIzQzOwkgICAgIWV4ZmF0X2lvbWFwX3ZhbGlkKHdwYy0mZ3Q7aW5vZGUsICZhbXA7d3BjLSZndDtpb21hcCkpIHsKIAkJaW50IGVycm9yOwogCiAJCWVycm9yID0gX19leGZhdF9pb21hcF9iZWdpbih3cGMtJmd0O2lub2RlLCBvZmZzZXQsIGxlbiwKZGlmZiAtLWdpdCBhL2ZzL2V4ZmF0L2lvbWFwLmggYi9mcy9leGZhdC9pb21hcC5oCmluZGV4IGZkOGE5MTNmNzc5NDYwLi4zOWM5M2Y4Y2Q3OTA0ZCAxMDA2NDQKLS0tIGEvZnMvZXhmYXQvaW9tYXAuaAomIzQzOyYjNDM7JiM0MzsgYi9mcy9leGZhdC9pb21hcC5oCkBAIC05LDYgJiM0Mzs5LDcgQEAKIGV4dGVybiBjb25zdCBzdHJ1Y3QgaW9tYXBfZGlvX29wcyBleGZhdF93cml0ZV9kaW9fb3BzOwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBpb21hcF9vcHMgZXhmYXRfaW9tYXBfb3BzOwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBpb21hcF9vcHMgZXhmYXRfd3JpdGVfaW9tYXBfb3BzOwomIzQzO2V4dGVybiBjb25zdCBzdHJ1Y3QgaW9tYXBfd3JpdGVfb3BzIGV4ZmF0X2lvbWFwX3dyaXRlX29wczsKIGV4dGVybiBjb25zdCBzdHJ1Y3QgaW9tYXBfd3JpdGViYWNrX29wcyBleGZhdF93cml0ZWJhY2tfb3BzOwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBpb21hcF9yZWFkX29wcyBleGZhdF9pb21hcF9iaW9fcmVhZF9vcHM7CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDEgMDY6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzEwMwoJCQkJCQkJb3V0cHV0OiAzMgoJCQkJCQkJdGhvdWdodHM6IDI4NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBQcm9wb3NlZCBFeEZBVCBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgdGhlIGV4RkFUIGZpbGVzeXN0ZW0sIGFuZCBpdCYjMzk7cyB0b3VjaGluZyBhIGZldyBrZXkgYXJlYXM6IGBjYWNoZS5jYCwgYGZpbGUuY2AsIGBpb21hcC5jYCwgYW5kIGBpb21hcC5oYC4gVGhhdCBpbW1lZGlhdGVseSB0ZWxscyBtZSB0aGlzIGlzIHNvbWV0aGluZyBzdWJzdGFudGlhbCwgbGlrZWx5IGEgZnVuY3Rpb25hbCBjaGFuZ2UsIG5vdCBqdXN0IGEgYnVnIGZpeC4KClRoZSBjb3JlIG9mIHRoZSBjaGFuZ2Ugc2VlbXMgdG8gcmV2b2x2ZSBhcm91bmQgaG93IGBjYWNoZV92YWxpZF9pZGAgaXMgaGFuZGxlZCwgc3BlY2lmaWNhbGx5IHdpdGhpbiBgX19leGZhdF9jYWNoZV9pbnZhbF9pbm9kZWAuICBUaGV5JiMzOTtyZSBpbmNyZW1lbnRpbmcgaXQgdGhlcmUsIGFuZCB0aGVuIHNldHRpbmcgYGlvbWFwLSZndDt2YWxpZGl0eV9jb29raWVgIHRvIHRoYXQgbmV3IHZhbHVlIGluIGBfX2V4ZmF0X2lvbWFwX2JlZ2luYC4gIEEgbmV3IGZ1bmN0aW9uLCBgZXhmYXRfaW9tYXBfdmFsaWRgLCBpcyBpbnRyb2R1Y2VkLCB3aGljaCBJIGFzc3VtZSBjaGVja3MgZm9yIHRoZSB2YWxpZGl0eSBvZiB0aGUgY2FjaGVkIGRhdGEgYmFzZWQgb24gY29tcGFyaW5nIGBFWEZBVF9JKGlub2RlKS0mZ3Q7Y2FjaGVfdmFsaWRfaWRgIHdpdGggdGhhdCBjb29raWUuIFRoaXMgaW1wbGllcyBzb21lIGZvcm0gb2YgY2FjaGUgaW52YWxpZGF0aW9uIG9yIHRyYWNraW5nLgoKSSBzZWUgdGhhdCBgJmFtcDtleGZhdF9pb21hcF93cml0ZV9vcHNgIGlzIG5vdyBwYXNzZWQgdG8gYGlvbWFwX2ZpbGVfYnVmZmVyZWRfd3JpdGVgLiBUaGF0JiMzOTtzIGFuIGludGVyZXN0aW5nIGhvb2s7IGl0IG11c3QgYmUgcmVsYXRlZCB0byBob3cgdGhlIHdyaXRlIG9wZXJhdGlvbiBpcyBwZXJmb3JtZWQsIHBvc3NpYmx5IGRlYWxpbmcgd2l0aCBidWZmZXJlZCB3cml0ZXMgb3IgSS9PIG1hcHBpbmcuIEFuZCB0aGVuIHRoZXJlJiMzOTtzIGEgY2hlY2sgZm9yIGAhZXhmYXRfaW9tYXBfdmFsaWRgIGluc2lkZSBgZXhmYXRfd3JpdGViYWNrX3JhbmdlYC4gVGhpcyBpcyBkZWZpbml0ZWx5IGEgY3J1Y2lhbCBhcmVhIHRvIHVuZGVyc3RhbmQgaW4gY29udGV4dCBvZiB0aGlzIG1vZGlmaWNhdGlvbi4KCkdpdmVuIHRoZXNlIGNoYW5nZXMsIGVzcGVjaWFsbHkgdGhlIG1hbmlwdWxhdGlvbiBvZiB0aGUgYGNhY2hlX3ZhbGlkX2lkYCBhbmQgdGhlIGludHJvZHVjdGlvbiBvZiBhIG5ldyB2YWxpZGl0eSBjaGVjaywgdGhpcyBzY3JlYW1zICYjMzQ7ZnV6emluZyB0YXJnZXQmIzM0OyB0byBtZS4gVGhlcmUgYXJlIHNldmVyYWwgaW50ZXJlc3Rpbmcgc3RhdGVzIHRoYXQgY291bGQgYmUgdW5jb3ZlcmVkIGhlcmUuIEFueSBjaGFuZ2UgdGhhdCBkZWFscyB3aXRoIGNhY2hpbmcgYW5kIEkvTyBtYXBwaW5nIGlzIHZlcnkgbGlrZWx5IHRvIGhhdmUgc29tZSBpbnRlcmVzdGluZyBlZGdlIGNhc2VzLCByYWNlIGNvbmRpdGlvbnMsIG9yIG90aGVyIHBvdGVudGlhbCBidWdzIHRoYXQgY2FuIGJlIHJldmVhbGVkIHZpYSBmdXp6aW5nLgoKTXkgbmV4dCBzdGVwIGlzIHRvIGZpbmQgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9uIGZvciBleEZBVC4gSSYjMzk7bGwgdXNlIGBncmVwcGVyYCBhbmQgbG9vayBmb3IgYEVYRkFUX0ZTYCBpbiBgZnMvZXhmYXQvS2NvbmZpZ2AgdG8gZGV0ZXJtaW5lIGhvdyB0byBlbmFibGUvZGlzYWJsZSBpdCBhbmQgZW5zdXJlIGl0JiMzOTtzIHByb3Blcmx5IGNvbmZpZ3VyZWQgZm9yIHRlc3RpbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDEgMDY6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEVYRkFUX0ZTJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZnMvZXhmYXQvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtmcy9leGZhdC9LY29uZmlnLTItXG5mcy9leGZhdC9LY29uZmlnOjM6Y29uZmlnIEVYRkFUX0ZTXG5mcy9leGZhdC9LY29uZmlnLTQtXHR0cmlzdGF0ZSBcJiMzNDtleEZBVCBmaWxlc3lzdGVtIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMSAwNjo0ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzOTQ2CgkJCQkJCQlvdXRwdXQ6IDIwNwoJCQkJCQkJdGhvdWdodHM6IDI2MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFJlY2VudCBFWEZBVCBDaGFuZ2VzKioKCk9rYXksIHNvIHRoZSBjb25maWd1cmF0aW9uIGlzIGRlZmluaXRlbHkgdGFyZ2V0aW5nIGBFWEZBVF9GU2AuIE15IGZvY3VzIG5vdyBpcyBvbiB0aGUgcmVjZW50IG1vZGlmaWNhdGlvbnMsIHNwZWNpZmljYWxseSB0aGVzZSBmdW5jdGlvbnM6IGBfX2V4ZmF0X2NhY2hlX2ludmFsX2lub2RlYCwgYGV4ZmF0X2ZpbGVfd3JpdGVfaXRlcmAsIGBfX2V4ZmF0X2lvbWFwX2JlZ2luYCwgYGV4ZmF0X2lvbWFwX3ZhbGlkYCwgYW5kIGBleGZhdF93cml0ZWJhY2tfcmFuZ2VgLiBJJiMzOTttIGFscmVhZHkgc2VlaW5nIHNvbWUgcGF0dGVybnMuIGBfX2V4ZmF0X2NhY2hlX2ludmFsX2lub2RlYCBpcyBzdGF0aWMsIGNhbGxlZCBieSBgZXhmYXRfY2FjaGVfaW52YWxfaW5vZGVgLCBJJiMzOTtsbCBrZWVwIHRoYXQgaW4gbWluZC4gYGV4ZmF0X2ZpbGVfd3JpdGVfaXRlcmAgaXMgdGhlIGZpbGUgd3JpdGUgaXRlcmF0b3IsIHRoYXQgbWFrZXMgc2Vuc2UuIGBfX2V4ZmF0X2lvbWFwX2JlZ2luYCBpcyB0aGUgaW9tYXAgYmVnaW4sIHdoaWNoLCBJIHN1cHBvc2UgY291bGQgYmUgaW50ZXJlc3RpbmcuIEFuZCB0aGUgYGV4ZmF0X2lvbWFwX3ZhbGlkYCBhbmQgYGV4ZmF0X3dyaXRlYmFja19yYW5nZWAgZnVuY3Rpb25zIGFyZSB0aGVyZSB0b28uCgpKdXN0IGRvdWJsZS1jaGVja2luZywgSSB3YW50IHRvIG1ha2Ugc3VyZSB0aGUgaW1wbGVtZW50YXRpb24gb2YgYGV4ZmF0X2lvbWFwX3ZhbGlkYCBpcyBzdGF0aWM7IHllcywgaXQmIzM5O3MgZGVmaW5lZCBhcyBzdWNoIGluIGBmcy9leGZhdC9pb21hcC5jYC4gQW5kIG5vdywgbGV0JiMzOTtzIGFsc28gaW52ZXN0aWdhdGUgYGV4ZmF0X3dyaXRlYmFja19yYW5nZWAgd2l0aGluIHRoZSBzYW1lIGZpbGUuIEkgdGhpbmsgSSYjMzk7bGwgdXNlIGBncmVwcGVyYCB0byBsb2NhdGUgdGhlIHNvdXJjZSBkZWZpbml0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMSAwNjo0ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtec3RhdGljIHZvaWQgX19leGZhdF9jYWNoZV9pbnZhbF9pbm9kZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2ZzL2V4ZmF0L2NhY2hlLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZnMvZXhmYXQvY2FjaGUuYz0xNjI9c3RhdGljIHZvaWQgZXhmYXRfY2FjaGVfYWRkKHN0cnVjdCBpbm9kZSAqaW5vZGUsXG4tLVxuZnMvZXhmYXQvY2FjaGUuYy0yMTctICovXG5mcy9leGZhdC9jYWNoZS5jOjIxODpzdGF0aWMgdm9pZCBfX2V4ZmF0X2NhY2hlX2ludmFsX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpXG5mcy9leGZhdC9jYWNoZS5jLTIxOS17XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDEgMDY6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7XnN0YXRpYyBzc2l6ZV90IGV4ZmF0X2ZpbGVfd3JpdGVfaXRlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2ZzL2V4ZmF0L2ZpbGUuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtmcy9leGZhdC9maWxlLmM9NzA4PXN0YXRpYyBzc2l6ZV90IGV4ZmF0X2Rpb193cml0ZV9pdGVyKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICpmcm9tKVxuLS1cbmZzL2V4ZmF0L2ZpbGUuYy03MzAtXG5mcy9leGZhdC9maWxlLmM6NzMxOnN0YXRpYyBzc2l6ZV90IGV4ZmF0X2ZpbGVfd3JpdGVfaXRlcihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqaXRlcilcbmZzL2V4ZmF0L2ZpbGUuYy03MzIte1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAxIDA2OjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O15zdGF0aWMgaW50IF9fZXhmYXRfaW9tYXBfYmVnaW4mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy9leGZhdC9pb21hcC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL2V4ZmF0L2lvbWFwLmM9Mzc9Y29uc3Qgc3RydWN0IGlvbWFwX2Rpb19vcHMgZXhmYXRfd3JpdGVfZGlvX29wcyA9IHtcbi0tXG5mcy9leGZhdC9pb21hcC5jLTQwLVxuZnMvZXhmYXQvaW9tYXAuYzo0MTpzdGF0aWMgaW50IF9fZXhmYXRfaW9tYXBfYmVnaW4oc3RydWN0IGlub2RlICppbm9kZSwgbG9mZl90IG9mZnNldCwgbG9mZl90IGxlbmd0aCxcbmZzL2V4ZmF0L2lvbWFwLmMtNDItXHRcdHVuc2lnbmVkIGludCBmbGFncywgc3RydWN0IGlvbWFwICppb21hcCwgYm9vbCBtYXlfYWxsb2MpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDEgMDY6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7XnN0YXRpYyBib29sIGV4ZmF0X2lvbWFwX3ZhbGlkJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZnMvZXhmYXQvaW9tYXAuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtmcy9leGZhdC9pb21hcC5jPTE1NT1jb25zdCBzdHJ1Y3QgaW9tYXBfb3BzIGV4ZmF0X2lvbWFwX29wcyA9IHtcbi0tXG5mcy9leGZhdC9pb21hcC5jLTE1OC1cbmZzL2V4ZmF0L2lvbWFwLmM6MTU5OnN0YXRpYyBib29sIGV4ZmF0X2lvbWFwX3ZhbGlkKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGNvbnN0IHN0cnVjdCBpb21hcCAqaW9tYXApXG5mcy9leGZhdC9pb21hcC5jLTE2MC17XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAxIDA2OjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O15zdGF0aWMgc3NpemVfdCBleGZhdF93cml0ZWJhY2tfcmFuZ2UmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy9leGZhdC9pb21hcC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL2V4ZmF0L2lvbWFwLmM9MTk5PWNvbnN0IHN0cnVjdCBpb21hcF9vcHMgZXhmYXRfd3JpdGVfaW9tYXBfb3BzID0ge1xuLS1cbmZzL2V4ZmF0L2lvbWFwLmMtMjA5LSAqL1xuZnMvZXhmYXQvaW9tYXAuYzoyMTA6c3RhdGljIHNzaXplX3QgZXhmYXRfd3JpdGViYWNrX3JhbmdlKHN0cnVjdCBpb21hcF93cml0ZXBhZ2VfY3R4ICp3cGMsXG5mcy9leGZhdC9pb21hcC5jLTIxMS1cdFx0c3RydWN0IGZvbGlvICpmb2xpbywgdTY0IG9mZnNldCwgdW5zaWduZWQgaW50IGxlbiwgdTY0IGVuZF9wb3MpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAxIDA2OjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUzMzcKCQkJCQkJCW91dHB1dDogMTQ2CgkJCQkJCQl0aG91Z2h0czogMjE5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFkZGluZyBFeEZBVCBJL08gYW5kIENhY2hpbmcgRnVuY3Rpb25zIHRvIEZvY3VzU3ltYm9scyoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgdGhlc2UgZnVuY3Rpb25zOiBgX19leGZhdF9jYWNoZV9pbnZhbF9pbm9kZWAsIGBleGZhdF9maWxlX3dyaXRlX2l0ZXJgLCBgX19leGZhdF9pb21hcF9iZWdpbmAsIGBleGZhdF9pb21hcF92YWxpZGAsIGFuZCBgZXhmYXRfd3JpdGViYWNrX3JhbmdlYC4gQmFzZWQgb24gdGhlIHBhdGNoIGRlc2NyaXB0aW9uLCB0aGVzZSBmdW5jdGlvbnMgYXJlIGFsbCBpbnZvbHZlZCBpbiB0aGUgRXhGQVQgZmlsZXN5c3RlbSYjMzk7cyBpb21hcCBhbmQgY2FjaGluZyBtZWNoYW5pc21zLiBUaGlzIGlzIHByZXR0eSBzaWduaWZpY2FudCwgYW5kIHRoZXkmIzM5O3JlIGRlZmluaXRlbHkgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlLCB3aGljaCBtYWtlcyB0aGVtIHByaW1lIGNhbmRpZGF0ZXMgZm9yIGluY2x1c2lvbiBpbiBgRm9jdXNTeW1ib2xzYC4gRXNzZW50aWFsbHksIGl0IHNlZW1zIHRoaXMgcGF0Y2ggaXMgY2hhbmdpbmcgaG93IHdyaXRlcyBhbmQgd3JpdGViYWNrcyBvcGVyYXRlLgoKTGV0JiMzOTtzIHF1aWNrbHkgdmVyaWZ5IHRoZSBuYW1pbmcuIFllYWgsIGFsbCB0aGUgZnVuY3Rpb24gbmFtZXMgYXJlIGNvcnJlY3QuIEV4Y2VsbGVudC4gSSYjMzk7bSBzYXRpc2ZpZWQuIE5vdywgaXQmIzM5O3MgdGltZSB0byBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAxIDA2OjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtFWEZBVF9GUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O19fZXhmYXRfY2FjaGVfaW52YWxfaW5vZGUmIzM0OywKICAgICYjMzQ7ZXhmYXRfZmlsZV93cml0ZV9pdGVyJiMzNDssCiAgICAmIzM0O19fZXhmYXRfaW9tYXBfYmVnaW4mIzM0OywKICAgICYjMzQ7ZXhmYXRfaW9tYXBfdmFsaWQmIzM0OywKICAgICYjMzQ7ZXhmYXRfd3JpdGViYWNrX3JhbmdlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBleGZhdCBmaWxlc3lzdGVtJiMzOTtzIGlvbWFwIGFuZCBjYWNoaW5nIGxvZ2ljLCBzcGVjaWZpY2FsbHkgaW50cm9kdWNpbmcgYSB2YWxpZGl0eSBjb29raWUgZm9yIGlvbWFwcyBhbmQgY2hhbmdpbmcgaG93IHRoZSBjYWNoZSB2YWxpZGl0eSBJRCBpcyBpbmNyZW1lbnRlZC4gVGhlc2UgY2hhbmdlcyBhcmUgZnVuY3Rpb25hbCBhbmQgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBmaWxlIHdyaXRlIGFuZCB3cml0ZWJhY2sgb3BlcmF0aW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7RVhGQVRfRlMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtfX2V4ZmF0X2NhY2hlX2ludmFsX2lub2RlJiMzNDssCiAgICAmIzM0O2V4ZmF0X2ZpbGVfd3JpdGVfaXRlciYjMzQ7LAogICAgJiMzNDtfX2V4ZmF0X2lvbWFwX2JlZ2luJiMzNDssCiAgICAmIzM0O2V4ZmF0X2lvbWFwX3ZhbGlkJiMzNDssCiAgICAmIzM0O2V4ZmF0X3dyaXRlYmFja19yYW5nZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgZXhmYXQgZmlsZXN5c3RlbSYjMzk7cyBpb21hcCBhbmQgY2FjaGluZyBsb2dpYywgc3BlY2lmaWNhbGx5IGludHJvZHVjaW5nIGEgdmFsaWRpdHkgY29va2llIGZvciBpb21hcHMgYW5kIGNoYW5naW5nIGhvdyB0aGUgY2FjaGUgdmFsaWRpdHkgSUQgaXMgaW5jcmVtZW50ZWQuIFRoZXNlIGNoYW5nZXMgYXJlIGZ1bmN0aW9uYWwgYW5kIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgZmlsZSB3cml0ZSBhbmQgd3JpdGViYWNrIG9wZXJhdGlvbnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0wMVQwNjo0ODozMC4xMDUyNDQwMDVaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxOTg2OTQ4ODUxMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJFWEZBVF9GU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIl9fZXhmYXRfY2FjaGVfaW52YWxfaW5vZGVcIixcbiAgICBcImV4ZmF0X2ZpbGVfd3JpdGVfaXRlclwiLFxuICAgIFwiX19leGZhdF9pb21hcF9iZWdpblwiLFxuICAgIFwiZXhmYXRfaW9tYXBfdmFsaWRcIixcbiAgICBcImV4ZmF0X3dyaXRlYmFja19yYW5nZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBleGZhdCBmaWxlc3lzdGVtJ3MgaW9tYXAgYW5kIGNhY2hpbmcgbG9naWMsIHNwZWNpZmljYWxseSBpbnRyb2R1Y2luZyBhIHZhbGlkaXR5IGNvb2tpZSBmb3IgaW9tYXBzIGFuZCBjaGFuZ2luZyBob3cgdGhlIGNhY2hlIHZhbGlkaXR5IElEIGlzIGluY3JlbWVudGVkLiBUaGVzZSBjaGFuZ2VzIGFyZSBmdW5jdGlvbmFsIGFuZCByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIGZpbGUgd3JpdGUgYW5kIHdyaXRlYmFjayBvcGVyYXRpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMVQwNjo0ODozMC4xMDUyNTk3MTVaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU3NTc1MzExNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDI3NTIyYjM1ODZkZTgwN2ZlOTViYzg2ZTg4M2E5NWNkZThkMDIzMjhcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFdlZCBKdWwgMSAwNjo0ODoyOCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9mcy9leGZhdC9jYWNoZS5jIGIvZnMvZXhmYXQvY2FjaGUuY1xcbmluZGV4IDdjOGI0MTgyZjVkZTdiLi43MTYzMWJhYjE4MmNkMSAxMDA2NDRcXG4tLS0gYS9mcy9leGZhdC9jYWNoZS5jXFxuKysrIGIvZnMvZXhmYXQvY2FjaGUuY1xcbkBAIC0yMjgsOSArMjI4LDEwIEBAIHN0YXRpYyB2b2lkIF9fZXhmYXRfY2FjaGVfaW52YWxfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSlcXG4gXFx0XFx0ZXhmYXRfY2FjaGVfZnJlZShjYWNoZSk7XFxuIFxcdH1cXG4gXFx0LyogVXBkYXRlLiBUaGUgY29weSBvZiBjYWNoZXMgYmVmb3JlIHRoaXMgaWQgaXMgZGlzY2FyZGVkLiAqL1xcbi1cXHRlaS1cXHUwMDNlY2FjaGVfdmFsaWRfaWQrKztcXG4tXFx0aWYgKGVpLVxcdTAwM2VjYWNoZV92YWxpZF9pZCA9PSBFWEZBVF9DQUNIRV9WQUxJRClcXG4tXFx0XFx0ZWktXFx1MDAzZWNhY2hlX3ZhbGlkX2lkKys7XFxuK1xcdGlmIChlaS1cXHUwMDNlY2FjaGVfdmFsaWRfaWQgKyAxID09IEVYRkFUX0NBQ0hFX1ZBTElEKVxcbitcXHRcXHRlaS1cXHUwMDNlY2FjaGVfdmFsaWRfaWQgPSBFWEZBVF9DQUNIRV9WQUxJRCArIDE7XFxuK1xcdGVsc2VcXG4rXFx0XFx0ZWktXFx1MDAzZWNhY2hlX3ZhbGlkX2lkID0gZWktXFx1MDAzZWNhY2hlX3ZhbGlkX2lkICsgMTtcXG4gfVxcbiBcXG4gdm9pZCBleGZhdF9jYWNoZV9pbnZhbF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKVxcbmRpZmYgLS1naXQgYS9mcy9leGZhdC9maWxlLmMgYi9mcy9leGZhdC9maWxlLmNcXG5pbmRleCA1ZmMxMzM3OGQzNWY3Mi4uNDI1ODM5OGNhNjQxZjAgMTAwNjQ0XFxuLS0tIGEvZnMvZXhmYXQvZmlsZS5jXFxuKysrIGIvZnMvZXhmYXQvZmlsZS5jXFxuQEAgLTc3Miw4ICs3NzIsOCBAQCBzdGF0aWMgc3NpemVfdCBleGZhdF9maWxlX3dyaXRlX2l0ZXIoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKml0ZXIpXFxuIFxcdGlmIChpb2NiLVxcdTAwM2VraV9mbGFncyBcXHUwMDI2IElPQ0JfRElSRUNUKVxcbiBcXHRcXHRyZXQgPSBleGZhdF9kaW9fd3JpdGVfaXRlcihpb2NiLCBpdGVyKTtcXG4gXFx0ZWxzZVxcbi1cXHRcXHRyZXQgPSBpb21hcF9maWxlX2J1ZmZlcmVkX3dyaXRlKGlvY2IsIGl0ZXIsXFxuLVxcdFxcdFxcdFxcdFxcdTAwMjZleGZhdF93cml0ZV9pb21hcF9vcHMsIE5VTEwsIE5VTEwpO1xcbitcXHRcXHRyZXQgPSBpb21hcF9maWxlX2J1ZmZlcmVkX3dyaXRlKGlvY2IsIGl0ZXIsIFxcdTAwMjZleGZhdF93cml0ZV9pb21hcF9vcHMsXFxuK1xcdFxcdFxcdFxcdFxcdFxcdFxcdTAwMjZleGZhdF9pb21hcF93cml0ZV9vcHMsIE5VTEwpO1xcbiBcXHRpZiAocmV0IFxcdTAwM2MgMClcXG4gXFx0XFx0Z290byB1bmxvY2s7XFxuIFxcbmRpZmYgLS1naXQgYS9mcy9leGZhdC9pb21hcC5jIGIvZnMvZXhmYXQvaW9tYXAuY1xcbmluZGV4IDFhYWMzOGU2M2ZlNmYwLi5lZmNlZDMyMGE1ZWZiYSAxMDA2NDRcXG4tLS0gYS9mcy9leGZhdC9pb21hcC5jXFxuKysrIGIvZnMvZXhmYXQvaW9tYXAuY1xcbkBAIC01Niw2ICs1Niw3IEBAIHN0YXRpYyBpbnQgX19leGZhdF9pb21hcF9iZWdpbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBsb2ZmX3Qgb2Zmc2V0LCBsb2ZmX3QgbGVuZ3RoXFxuIFxcdFxcdFxcdGlvbWFwLVxcdTAwM2VhZGRyID0gSU9NQVBfTlVMTF9BRERSO1xcbiBcXHRcXHRcXHRpb21hcC1cXHUwMDNlb2Zmc2V0ID0gb2Zmc2V0O1xcbiBcXHRcXHRcXHRpb21hcC1cXHUwMDNlbGVuZ3RoID0gbGVuZ3RoO1xcbitcXHRcXHRcXHRpb21hcC1cXHUwMDNldmFsaWRpdHlfY29va2llID0gZWktXFx1MDAzZWNhY2hlX3ZhbGlkX2lkO1xcbiBcXHRcXHRcXHRyZXR1cm4gMDtcXG4gXFx0XFx0fVxcbiBcXG5AQCAtMTMzLDcgKzEzNCw3IEBAIHN0YXRpYyBpbnQgX19leGZhdF9pb21hcF9iZWdpbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBsb2ZmX3Qgb2Zmc2V0LCBsb2ZmX3QgbGVuZ3RoXFxuIFxcdFxcdH1cXG4gXFx0fVxcbiBcXG4tXFx0aW9tYXAtXFx1MDAzZWZsYWdzIHw9IElPTUFQX0ZfTUVSR0VEO1xcbitcXHRpb21hcC1cXHUwMDNldmFsaWRpdHlfY29va2llID0gZWktXFx1MDAzZWNhY2hlX3ZhbGlkX2lkO1xcbiBvdXQ6XFxuIFxcdG11dGV4X3VubG9jayhcXHUwMDI2c2JpLVxcdTAwM2VzX2xvY2spO1xcbiBcXHRyZXR1cm4gZXJyO1xcbkBAIC0xNTUsNiArMTU2LDE1IEBAIGNvbnN0IHN0cnVjdCBpb21hcF9vcHMgZXhmYXRfaW9tYXBfb3BzID0ge1xcbiBcXHQuaW9tYXBfYmVnaW4gPSBleGZhdF9pb21hcF9iZWdpbixcXG4gfTtcXG4gXFxuK3N0YXRpYyBib29sIGV4ZmF0X2lvbWFwX3ZhbGlkKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGNvbnN0IHN0cnVjdCBpb21hcCAqaW9tYXApXFxuK3tcXG4rXFx0cmV0dXJuIEVYRkFUX0koaW5vZGUpLVxcdTAwM2VjYWNoZV92YWxpZF9pZCA9PSBpb21hcC1cXHUwMDNldmFsaWRpdHlfY29va2llO1xcbit9XFxuK1xcbitjb25zdCBzdHJ1Y3QgaW9tYXBfd3JpdGVfb3BzIGV4ZmF0X2lvbWFwX3dyaXRlX29wcyA9IHtcXG4rXFx0LmlvbWFwX3ZhbGlkID0gZXhmYXRfaW9tYXBfdmFsaWQsXFxuK307XFxuK1xcbiAvKlxcbiAgKiBleGZhdF93cml0ZV9pb21hcF9lbmQgLSBVcGRhdGUgdGhlIHN0YXRlIGFmdGVyIHdyaXRlXFxuICAqXFxuQEAgLTIwMSw3ICsyMTEsOCBAQCBzdGF0aWMgc3NpemVfdCBleGZhdF93cml0ZWJhY2tfcmFuZ2Uoc3RydWN0IGlvbWFwX3dyaXRlcGFnZV9jdHggKndwYyxcXG4gXFx0XFx0c3RydWN0IGZvbGlvICpmb2xpbywgdTY0IG9mZnNldCwgdW5zaWduZWQgaW50IGxlbiwgdTY0IGVuZF9wb3MpXFxuIHtcXG4gXFx0aWYgKG9mZnNldCBcXHUwMDNjIHdwYy1cXHUwMDNlaW9tYXAub2Zmc2V0IHx8XFxuLVxcdCAgICBvZmZzZXQgXFx1MDAzZT0gd3BjLVxcdTAwM2Vpb21hcC5vZmZzZXQgKyB3cGMtXFx1MDAzZWlvbWFwLmxlbmd0aCkge1xcbitcXHQgICAgb2Zmc2V0IFxcdTAwM2U9IHdwYy1cXHUwMDNlaW9tYXAub2Zmc2V0ICsgd3BjLVxcdTAwM2Vpb21hcC5sZW5ndGggfHxcXG4rXFx0ICAgICFleGZhdF9pb21hcF92YWxpZCh3cGMtXFx1MDAzZWlub2RlLCBcXHUwMDI2d3BjLVxcdTAwM2Vpb21hcCkpIHtcXG4gXFx0XFx0aW50IGVycm9yO1xcbiBcXG4gXFx0XFx0ZXJyb3IgPSBfX2V4ZmF0X2lvbWFwX2JlZ2luKHdwYy1cXHUwMDNlaW5vZGUsIG9mZnNldCwgbGVuLFxcbmRpZmYgLS1naXQgYS9mcy9leGZhdC9pb21hcC5oIGIvZnMvZXhmYXQvaW9tYXAuaFxcbmluZGV4IGZkOGE5MTNmNzc5NDYwLi4zOWM5M2Y4Y2Q3OTA0ZCAxMDA2NDRcXG4tLS0gYS9mcy9leGZhdC9pb21hcC5oXFxuKysrIGIvZnMvZXhmYXQvaW9tYXAuaFxcbkBAIC05LDYgKzksNyBAQFxcbiBleHRlcm4gY29uc3Qgc3RydWN0IGlvbWFwX2Rpb19vcHMgZXhmYXRfd3JpdGVfZGlvX29wcztcXG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBpb21hcF9vcHMgZXhmYXRfaW9tYXBfb3BzO1xcbiBleHRlcm4gY29uc3Qgc3RydWN0IGlvbWFwX29wcyBleGZhdF93cml0ZV9pb21hcF9vcHM7XFxuK2V4dGVybiBjb25zdCBzdHJ1Y3QgaW9tYXBfd3JpdGVfb3BzIGV4ZmF0X2lvbWFwX3dyaXRlX29wcztcXG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBpb21hcF93cml0ZWJhY2tfb3BzIGV4ZmF0X3dyaXRlYmFja19vcHM7XFxuIGV4dGVybiBjb25zdCBzdHJ1Y3QgaW9tYXBfcmVhZF9vcHMgZXhmYXRfaW9tYXBfYmlvX3JlYWRfb3BzO1xcbiBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDFUMDY6NDg6MzAuNjgyMDU1ODg5WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxOTI5MjY2MDYwOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJFWEZBVF9GU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIl9fZXhmYXRfY2FjaGVfaW52YWxfaW5vZGVcIixcbiAgICBcImV4ZmF0X2ZpbGVfd3JpdGVfaXRlclwiLFxuICAgIFwiX19leGZhdF9pb21hcF9iZWdpblwiLFxuICAgIFwiZXhmYXRfaW9tYXBfdmFsaWRcIixcbiAgICBcImV4ZmF0X3dyaXRlYmFja19yYW5nZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBleGZhdCBmaWxlc3lzdGVtJ3MgaW9tYXAgYW5kIGNhY2hpbmcgbG9naWMsIHNwZWNpZmljYWxseSBpbnRyb2R1Y2luZyBhIHZhbGlkaXR5IGNvb2tpZSBmb3IgaW9tYXBzIGFuZCBjaGFuZ2luZyBob3cgdGhlIGNhY2hlIHZhbGlkaXR5IElEIGlzIGluY3JlbWVudGVkLiBUaGVzZSBjaGFuZ2VzIGFyZSBmdW5jdGlvbmFsIGFuZCByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIGZpbGUgd3JpdGUgYW5kIHdyaXRlYmFjayBvcGVyYXRpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDI3NTIyYjM1ODZkZTgwN2ZlOTViYzg2ZTg4M2E5NWNkZThkMDIzMjhcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCAxIDA2OjQ4OjI4IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZnMvZXhmYXQvY2FjaGUuYyBiL2ZzL2V4ZmF0L2NhY2hlLmNcbmluZGV4IDdjOGI0MTgyZjVkZTdiLi43MTYzMWJhYjE4MmNkMSAxMDA2NDRcbi0tLSBhL2ZzL2V4ZmF0L2NhY2hlLmNcbisrKyBiL2ZzL2V4ZmF0L2NhY2hlLmNcbkBAIC0yMjgsOSArMjI4LDEwIEBAIHN0YXRpYyB2b2lkIF9fZXhmYXRfY2FjaGVfaW52YWxfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSlcbiBcdFx0ZXhmYXRfY2FjaGVfZnJlZShjYWNoZSk7XG4gXHR9XG4gXHQvKiBVcGRhdGUuIFRoZSBjb3B5IG9mIGNhY2hlcyBiZWZvcmUgdGhpcyBpZCBpcyBkaXNjYXJkZWQuICovXG4tXHRlaS1cdTAwM2VjYWNoZV92YWxpZF9pZCsrO1xuLVx0aWYgKGVpLVx1MDAzZWNhY2hlX3ZhbGlkX2lkID09IEVYRkFUX0NBQ0hFX1ZBTElEKVxuLVx0XHRlaS1cdTAwM2VjYWNoZV92YWxpZF9pZCsrO1xuK1x0aWYgKGVpLVx1MDAzZWNhY2hlX3ZhbGlkX2lkICsgMSA9PSBFWEZBVF9DQUNIRV9WQUxJRClcbitcdFx0ZWktXHUwMDNlY2FjaGVfdmFsaWRfaWQgPSBFWEZBVF9DQUNIRV9WQUxJRCArIDE7XG4rXHRlbHNlXG4rXHRcdGVpLVx1MDAzZWNhY2hlX3ZhbGlkX2lkID0gZWktXHUwMDNlY2FjaGVfdmFsaWRfaWQgKyAxO1xuIH1cbiBcbiB2b2lkIGV4ZmF0X2NhY2hlX2ludmFsX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpXG5kaWZmIC0tZ2l0IGEvZnMvZXhmYXQvZmlsZS5jIGIvZnMvZXhmYXQvZmlsZS5jXG5pbmRleCA1ZmMxMzM3OGQzNWY3Mi4uNDI1ODM5OGNhNjQxZjAgMTAwNjQ0XG4tLS0gYS9mcy9leGZhdC9maWxlLmNcbisrKyBiL2ZzL2V4ZmF0L2ZpbGUuY1xuQEAgLTc3Miw4ICs3NzIsOCBAQCBzdGF0aWMgc3NpemVfdCBleGZhdF9maWxlX3dyaXRlX2l0ZXIoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKml0ZXIpXG4gXHRpZiAoaW9jYi1cdTAwM2VraV9mbGFncyBcdTAwMjYgSU9DQl9ESVJFQ1QpXG4gXHRcdHJldCA9IGV4ZmF0X2Rpb193cml0ZV9pdGVyKGlvY2IsIGl0ZXIpO1xuIFx0ZWxzZVxuLVx0XHRyZXQgPSBpb21hcF9maWxlX2J1ZmZlcmVkX3dyaXRlKGlvY2IsIGl0ZXIsXG4tXHRcdFx0XHRcdTAwMjZleGZhdF93cml0ZV9pb21hcF9vcHMsIE5VTEwsIE5VTEwpO1xuK1x0XHRyZXQgPSBpb21hcF9maWxlX2J1ZmZlcmVkX3dyaXRlKGlvY2IsIGl0ZXIsIFx1MDAyNmV4ZmF0X3dyaXRlX2lvbWFwX29wcyxcbitcdFx0XHRcdFx0XHRcdTAwMjZleGZhdF9pb21hcF93cml0ZV9vcHMsIE5VTEwpO1xuIFx0aWYgKHJldCBcdTAwM2MgMClcbiBcdFx0Z290byB1bmxvY2s7XG4gXG5kaWZmIC0tZ2l0IGEvZnMvZXhmYXQvaW9tYXAuYyBiL2ZzL2V4ZmF0L2lvbWFwLmNcbmluZGV4IDFhYWMzOGU2M2ZlNmYwLi5lZmNlZDMyMGE1ZWZiYSAxMDA2NDRcbi0tLSBhL2ZzL2V4ZmF0L2lvbWFwLmNcbisrKyBiL2ZzL2V4ZmF0L2lvbWFwLmNcbkBAIC01Niw2ICs1Niw3IEBAIHN0YXRpYyBpbnQgX19leGZhdF9pb21hcF9iZWdpbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBsb2ZmX3Qgb2Zmc2V0LCBsb2ZmX3QgbGVuZ3RoXG4gXHRcdFx0aW9tYXAtXHUwMDNlYWRkciA9IElPTUFQX05VTExfQUREUjtcbiBcdFx0XHRpb21hcC1cdTAwM2VvZmZzZXQgPSBvZmZzZXQ7XG4gXHRcdFx0aW9tYXAtXHUwMDNlbGVuZ3RoID0gbGVuZ3RoO1xuK1x0XHRcdGlvbWFwLVx1MDAzZXZhbGlkaXR5X2Nvb2tpZSA9IGVpLVx1MDAzZWNhY2hlX3ZhbGlkX2lkO1xuIFx0XHRcdHJldHVybiAwO1xuIFx0XHR9XG4gXG5AQCAtMTMzLDcgKzEzNCw3IEBAIHN0YXRpYyBpbnQgX19leGZhdF9pb21hcF9iZWdpbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBsb2ZmX3Qgb2Zmc2V0LCBsb2ZmX3QgbGVuZ3RoXG4gXHRcdH1cbiBcdH1cbiBcbi1cdGlvbWFwLVx1MDAzZWZsYWdzIHw9IElPTUFQX0ZfTUVSR0VEO1xuK1x0aW9tYXAtXHUwMDNldmFsaWRpdHlfY29va2llID0gZWktXHUwMDNlY2FjaGVfdmFsaWRfaWQ7XG4gb3V0OlxuIFx0bXV0ZXhfdW5sb2NrKFx1MDAyNnNiaS1cdTAwM2VzX2xvY2spO1xuIFx0cmV0dXJuIGVycjtcbkBAIC0xNTUsNiArMTU2LDE1IEBAIGNvbnN0IHN0cnVjdCBpb21hcF9vcHMgZXhmYXRfaW9tYXBfb3BzID0ge1xuIFx0LmlvbWFwX2JlZ2luID0gZXhmYXRfaW9tYXBfYmVnaW4sXG4gfTtcbiBcbitzdGF0aWMgYm9vbCBleGZhdF9pb21hcF92YWxpZChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBjb25zdCBzdHJ1Y3QgaW9tYXAgKmlvbWFwKVxuK3tcbitcdHJldHVybiBFWEZBVF9JKGlub2RlKS1cdTAwM2VjYWNoZV92YWxpZF9pZCA9PSBpb21hcC1cdTAwM2V2YWxpZGl0eV9jb29raWU7XG4rfVxuK1xuK2NvbnN0IHN0cnVjdCBpb21hcF93cml0ZV9vcHMgZXhmYXRfaW9tYXBfd3JpdGVfb3BzID0ge1xuK1x0LmlvbWFwX3ZhbGlkID0gZXhmYXRfaW9tYXBfdmFsaWQsXG4rfTtcbitcbiAvKlxuICAqIGV4ZmF0X3dyaXRlX2lvbWFwX2VuZCAtIFVwZGF0ZSB0aGUgc3RhdGUgYWZ0ZXIgd3JpdGVcbiAgKlxuQEAgLTIwMSw3ICsyMTEsOCBAQCBzdGF0aWMgc3NpemVfdCBleGZhdF93cml0ZWJhY2tfcmFuZ2Uoc3RydWN0IGlvbWFwX3dyaXRlcGFnZV9jdHggKndwYyxcbiBcdFx0c3RydWN0IGZvbGlvICpmb2xpbywgdTY0IG9mZnNldCwgdW5zaWduZWQgaW50IGxlbiwgdTY0IGVuZF9wb3MpXG4ge1xuIFx0aWYgKG9mZnNldCBcdTAwM2Mgd3BjLVx1MDAzZWlvbWFwLm9mZnNldCB8fFxuLVx0ICAgIG9mZnNldCBcdTAwM2U9IHdwYy1cdTAwM2Vpb21hcC5vZmZzZXQgKyB3cGMtXHUwMDNlaW9tYXAubGVuZ3RoKSB7XG4rXHQgICAgb2Zmc2V0IFx1MDAzZT0gd3BjLVx1MDAzZWlvbWFwLm9mZnNldCArIHdwYy1cdTAwM2Vpb21hcC5sZW5ndGggfHxcbitcdCAgICAhZXhmYXRfaW9tYXBfdmFsaWQod3BjLVx1MDAzZWlub2RlLCBcdTAwMjZ3cGMtXHUwMDNlaW9tYXApKSB7XG4gXHRcdGludCBlcnJvcjtcbiBcbiBcdFx0ZXJyb3IgPSBfX2V4ZmF0X2lvbWFwX2JlZ2luKHdwYy1cdTAwM2Vpbm9kZSwgb2Zmc2V0LCBsZW4sXG5kaWZmIC0tZ2l0IGEvZnMvZXhmYXQvaW9tYXAuaCBiL2ZzL2V4ZmF0L2lvbWFwLmhcbmluZGV4IGZkOGE5MTNmNzc5NDYwLi4zOWM5M2Y4Y2Q3OTA0ZCAxMDA2NDRcbi0tLSBhL2ZzL2V4ZmF0L2lvbWFwLmhcbisrKyBiL2ZzL2V4ZmF0L2lvbWFwLmhcbkBAIC05LDYgKzksNyBAQFxuIGV4dGVybiBjb25zdCBzdHJ1Y3QgaW9tYXBfZGlvX29wcyBleGZhdF93cml0ZV9kaW9fb3BzO1xuIGV4dGVybiBjb25zdCBzdHJ1Y3QgaW9tYXBfb3BzIGV4ZmF0X2lvbWFwX29wcztcbiBleHRlcm4gY29uc3Qgc3RydWN0IGlvbWFwX29wcyBleGZhdF93cml0ZV9pb21hcF9vcHM7XG4rZXh0ZXJuIGNvbnN0IHN0cnVjdCBpb21hcF93cml0ZV9vcHMgZXhmYXRfaW9tYXBfd3JpdGVfb3BzO1xuIGV4dGVybiBjb25zdCBzdHJ1Y3QgaW9tYXBfd3JpdGViYWNrX29wcyBleGZhdF93cml0ZWJhY2tfb3BzO1xuIGV4dGVybiBjb25zdCBzdHJ1Y3QgaW9tYXBfcmVhZF9vcHMgZXhmYXRfaW9tYXBfYmlvX3JlYWRfb3BzO1xuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDFUMDY6NDg6MzAuNjgyMDYwMTM4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjEyOTM1OTQ1MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBQcm9wb3NlZCBFeEZBVCBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIHRoZSBleEZBVCBmaWxlc3lzdGVtLCBhbmQgaXQncyB0b3VjaGluZyBhIGZldyBrZXkgYXJlYXM6IGBjYWNoZS5jYCwgYGZpbGUuY2AsIGBpb21hcC5jYCwgYW5kIGBpb21hcC5oYC4gVGhhdCBpbW1lZGlhdGVseSB0ZWxscyBtZSB0aGlzIGlzIHNvbWV0aGluZyBzdWJzdGFudGlhbCwgbGlrZWx5IGEgZnVuY3Rpb25hbCBjaGFuZ2UsIG5vdCBqdXN0IGEgYnVnIGZpeC5cblxuVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBzZWVtcyB0byByZXZvbHZlIGFyb3VuZCBob3cgYGNhY2hlX3ZhbGlkX2lkYCBpcyBoYW5kbGVkLCBzcGVjaWZpY2FsbHkgd2l0aGluIGBfX2V4ZmF0X2NhY2hlX2ludmFsX2lub2RlYC4gIFRoZXkncmUgaW5jcmVtZW50aW5nIGl0IHRoZXJlLCBhbmQgdGhlbiBzZXR0aW5nIGBpb21hcC1cdTAwM2V2YWxpZGl0eV9jb29raWVgIHRvIHRoYXQgbmV3IHZhbHVlIGluIGBfX2V4ZmF0X2lvbWFwX2JlZ2luYC4gIEEgbmV3IGZ1bmN0aW9uLCBgZXhmYXRfaW9tYXBfdmFsaWRgLCBpcyBpbnRyb2R1Y2VkLCB3aGljaCBJIGFzc3VtZSBjaGVja3MgZm9yIHRoZSB2YWxpZGl0eSBvZiB0aGUgY2FjaGVkIGRhdGEgYmFzZWQgb24gY29tcGFyaW5nIGBFWEZBVF9JKGlub2RlKS1cdTAwM2VjYWNoZV92YWxpZF9pZGAgd2l0aCB0aGF0IGNvb2tpZS4gVGhpcyBpbXBsaWVzIHNvbWUgZm9ybSBvZiBjYWNoZSBpbnZhbGlkYXRpb24gb3IgdHJhY2tpbmcuXG5cbkkgc2VlIHRoYXQgYFx1MDAyNmV4ZmF0X2lvbWFwX3dyaXRlX29wc2AgaXMgbm93IHBhc3NlZCB0byBgaW9tYXBfZmlsZV9idWZmZXJlZF93cml0ZWAuIFRoYXQncyBhbiBpbnRlcmVzdGluZyBob29rOyBpdCBtdXN0IGJlIHJlbGF0ZWQgdG8gaG93IHRoZSB3cml0ZSBvcGVyYXRpb24gaXMgcGVyZm9ybWVkLCBwb3NzaWJseSBkZWFsaW5nIHdpdGggYnVmZmVyZWQgd3JpdGVzIG9yIEkvTyBtYXBwaW5nLiBBbmQgdGhlbiB0aGVyZSdzIGEgY2hlY2sgZm9yIGAhZXhmYXRfaW9tYXBfdmFsaWRgIGluc2lkZSBgZXhmYXRfd3JpdGViYWNrX3JhbmdlYC4gVGhpcyBpcyBkZWZpbml0ZWx5IGEgY3J1Y2lhbCBhcmVhIHRvIHVuZGVyc3RhbmQgaW4gY29udGV4dCBvZiB0aGlzIG1vZGlmaWNhdGlvbi5cblxuR2l2ZW4gdGhlc2UgY2hhbmdlcywgZXNwZWNpYWxseSB0aGUgbWFuaXB1bGF0aW9uIG9mIHRoZSBgY2FjaGVfdmFsaWRfaWRgIGFuZCB0aGUgaW50cm9kdWN0aW9uIG9mIGEgbmV3IHZhbGlkaXR5IGNoZWNrLCB0aGlzIHNjcmVhbXMgXCJmdXp6aW5nIHRhcmdldFwiIHRvIG1lLiBUaGVyZSBhcmUgc2V2ZXJhbCBpbnRlcmVzdGluZyBzdGF0ZXMgdGhhdCBjb3VsZCBiZSB1bmNvdmVyZWQgaGVyZS4gQW55IGNoYW5nZSB0aGF0IGRlYWxzIHdpdGggY2FjaGluZyBhbmQgSS9PIG1hcHBpbmcgaXMgdmVyeSBsaWtlbHkgdG8gaGF2ZSBzb21lIGludGVyZXN0aW5nIGVkZ2UgY2FzZXMsIHJhY2UgY29uZGl0aW9ucywgb3Igb3RoZXIgcG90ZW50aWFsIGJ1Z3MgdGhhdCBjYW4gYmUgcmV2ZWFsZWQgdmlhIGZ1enppbmcuXG5cbk15IG5leHQgc3RlcCBpcyB0byBmaW5kIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbiBmb3IgZXhGQVQuIEknbGwgdXNlIGBncmVwcGVyYCBhbmQgbG9vayBmb3IgYEVYRkFUX0ZTYCBpbiBgZnMvZXhmYXQvS2NvbmZpZ2AgdG8gZGV0ZXJtaW5lIGhvdyB0byBlbmFibGUvZGlzYWJsZSBpdCBhbmQgZW5zdXJlIGl0J3MgcHJvcGVybHkgY29uZmlndXJlZCBmb3IgdGVzdGluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzEwMywiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI4NywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAxVDA2OjQ4OjM2LjgxMTQyMzM3MVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDk1NzI1ODYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEVYRkFUX0ZTXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImZzL2V4ZmF0L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZnMvZXhmYXQvS2NvbmZpZy0yLVxcbmZzL2V4ZmF0L0tjb25maWc6Mzpjb25maWcgRVhGQVRfRlNcXG5mcy9leGZhdC9LY29uZmlnLTQtXFx0dHJpc3RhdGUgXFxcImV4RkFUIGZpbGVzeXN0ZW0gc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDFUMDY6NDg6MzYuOTYxMDE0NDk3WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjYyNDYxMTM0NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFJlY2VudCBFWEZBVCBDaGFuZ2VzKipcblxuT2theSwgc28gdGhlIGNvbmZpZ3VyYXRpb24gaXMgZGVmaW5pdGVseSB0YXJnZXRpbmcgYEVYRkFUX0ZTYC4gTXkgZm9jdXMgbm93IGlzIG9uIHRoZSByZWNlbnQgbW9kaWZpY2F0aW9ucywgc3BlY2lmaWNhbGx5IHRoZXNlIGZ1bmN0aW9uczogYF9fZXhmYXRfY2FjaGVfaW52YWxfaW5vZGVgLCBgZXhmYXRfZmlsZV93cml0ZV9pdGVyYCwgYF9fZXhmYXRfaW9tYXBfYmVnaW5gLCBgZXhmYXRfaW9tYXBfdmFsaWRgLCBhbmQgYGV4ZmF0X3dyaXRlYmFja19yYW5nZWAuIEknbSBhbHJlYWR5IHNlZWluZyBzb21lIHBhdHRlcm5zLiBgX19leGZhdF9jYWNoZV9pbnZhbF9pbm9kZWAgaXMgc3RhdGljLCBjYWxsZWQgYnkgYGV4ZmF0X2NhY2hlX2ludmFsX2lub2RlYCwgSSdsbCBrZWVwIHRoYXQgaW4gbWluZC4gYGV4ZmF0X2ZpbGVfd3JpdGVfaXRlcmAgaXMgdGhlIGZpbGUgd3JpdGUgaXRlcmF0b3IsIHRoYXQgbWFrZXMgc2Vuc2UuIGBfX2V4ZmF0X2lvbWFwX2JlZ2luYCBpcyB0aGUgaW9tYXAgYmVnaW4sIHdoaWNoLCBJIHN1cHBvc2UgY291bGQgYmUgaW50ZXJlc3RpbmcuIEFuZCB0aGUgYGV4ZmF0X2lvbWFwX3ZhbGlkYCBhbmQgYGV4ZmF0X3dyaXRlYmFja19yYW5nZWAgZnVuY3Rpb25zIGFyZSB0aGVyZSB0b28uXG5cbkp1c3QgZG91YmxlLWNoZWNraW5nLCBJIHdhbnQgdG8gbWFrZSBzdXJlIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBgZXhmYXRfaW9tYXBfdmFsaWRgIGlzIHN0YXRpYzsgeWVzLCBpdCdzIGRlZmluZWQgYXMgc3VjaCBpbiBgZnMvZXhmYXQvaW9tYXAuY2AuIEFuZCBub3csIGxldCdzIGFsc28gaW52ZXN0aWdhdGUgYGV4ZmF0X3dyaXRlYmFja19yYW5nZWAgd2l0aGluIHRoZSBzYW1lIGZpbGUuIEkgdGhpbmsgSSdsbCB1c2UgYGdyZXBwZXJgIHRvIGxvY2F0ZSB0aGUgc291cmNlIGRlZmluaXRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjozOTQ2LCJPdXRwdXRUb2tlbnMiOjIwNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI2MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wMVQwNjo0ODo0My41ODU2MzI5MjFaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTA5NTE1MjQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIl5zdGF0aWMgdm9pZCBfX2V4ZmF0X2NhY2hlX2ludmFsX2lub2RlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImZzL2V4ZmF0L2NhY2hlLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZnMvZXhmYXQvY2FjaGUuYz0xNjI9c3RhdGljIHZvaWQgZXhmYXRfY2FjaGVfYWRkKHN0cnVjdCBpbm9kZSAqaW5vZGUsXFxuLS1cXG5mcy9leGZhdC9jYWNoZS5jLTIxNy0gKi9cXG5mcy9leGZhdC9jYWNoZS5jOjIxODpzdGF0aWMgdm9pZCBfX2V4ZmF0X2NhY2hlX2ludmFsX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpXFxuZnMvZXhmYXQvY2FjaGUuYy0yMTkte1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMVQwNjo0ODo0My42OTUxNTY0OVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzA2NTM1MTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiXnN0YXRpYyBzc2l6ZV90IGV4ZmF0X2ZpbGVfd3JpdGVfaXRlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJmcy9leGZhdC9maWxlLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZnMvZXhmYXQvZmlsZS5jPTcwOD1zdGF0aWMgc3NpemVfdCBleGZhdF9kaW9fd3JpdGVfaXRlcihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqZnJvbSlcXG4tLVxcbmZzL2V4ZmF0L2ZpbGUuYy03MzAtXFxuZnMvZXhmYXQvZmlsZS5jOjczMTpzdGF0aWMgc3NpemVfdCBleGZhdF9maWxlX3dyaXRlX2l0ZXIoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKml0ZXIpXFxuZnMvZXhmYXQvZmlsZS5jLTczMi17XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAxVDA2OjQ4OjQzLjgyNTgxODIwOFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDIzMzk1NDYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiXnN0YXRpYyBpbnQgX19leGZhdF9pb21hcF9iZWdpblwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJmcy9leGZhdC9pb21hcC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImZzL2V4ZmF0L2lvbWFwLmM9Mzc9Y29uc3Qgc3RydWN0IGlvbWFwX2Rpb19vcHMgZXhmYXRfd3JpdGVfZGlvX29wcyA9IHtcXG4tLVxcbmZzL2V4ZmF0L2lvbWFwLmMtNDAtXFxuZnMvZXhmYXQvaW9tYXAuYzo0MTpzdGF0aWMgaW50IF9fZXhmYXRfaW9tYXBfYmVnaW4oc3RydWN0IGlub2RlICppbm9kZSwgbG9mZl90IG9mZnNldCwgbG9mZl90IGxlbmd0aCxcXG5mcy9leGZhdC9pb21hcC5jLTQyLVxcdFxcdHVuc2lnbmVkIGludCBmbGFncywgc3RydWN0IGlvbWFwICppb21hcCwgYm9vbCBtYXlfYWxsb2MpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAxVDA2OjQ4OjQzLjk2ODE2NTAwNFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDMzNjYyNjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiXnN0YXRpYyBib29sIGV4ZmF0X2lvbWFwX3ZhbGlkXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImZzL2V4ZmF0L2lvbWFwLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZnMvZXhmYXQvaW9tYXAuYz0xNTU9Y29uc3Qgc3RydWN0IGlvbWFwX29wcyBleGZhdF9pb21hcF9vcHMgPSB7XFxuLS1cXG5mcy9leGZhdC9pb21hcC5jLTE1OC1cXG5mcy9leGZhdC9pb21hcC5jOjE1OTpzdGF0aWMgYm9vbCBleGZhdF9pb21hcF92YWxpZChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBjb25zdCBzdHJ1Y3QgaW9tYXAgKmlvbWFwKVxcbmZzL2V4ZmF0L2lvbWFwLmMtMTYwLXtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDFUMDY6NDg6NDQuMDcxNTM4Njk0WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5Nzc3MDgyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJec3RhdGljIHNzaXplX3QgZXhmYXRfd3JpdGViYWNrX3JhbmdlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImZzL2V4ZmF0L2lvbWFwLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZnMvZXhmYXQvaW9tYXAuYz0xOTk9Y29uc3Qgc3RydWN0IGlvbWFwX29wcyBleGZhdF93cml0ZV9pb21hcF9vcHMgPSB7XFxuLS1cXG5mcy9leGZhdC9pb21hcC5jLTIwOS0gKi9cXG5mcy9leGZhdC9pb21hcC5jOjIxMDpzdGF0aWMgc3NpemVfdCBleGZhdF93cml0ZWJhY2tfcmFuZ2Uoc3RydWN0IGlvbWFwX3dyaXRlcGFnZV9jdHggKndwYyxcXG5mcy9leGZhdC9pb21hcC5jLTIxMS1cXHRcXHRzdHJ1Y3QgZm9saW8gKmZvbGlvLCB1NjQgb2Zmc2V0LCB1bnNpZ25lZCBpbnQgbGVuLCB1NjQgZW5kX3BvcylcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDFUMDY6NDg6NDQuMTY5MzIwNDU0WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU2MTg0NTg3ODMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQWRkaW5nIEV4RkFUIEkvTyBhbmQgQ2FjaGluZyBGdW5jdGlvbnMgdG8gRm9jdXNTeW1ib2xzKipcblxuT2theSwgc28gSSd2ZSBnb3QgdGhlc2UgZnVuY3Rpb25zOiBgX19leGZhdF9jYWNoZV9pbnZhbF9pbm9kZWAsIGBleGZhdF9maWxlX3dyaXRlX2l0ZXJgLCBgX19leGZhdF9pb21hcF9iZWdpbmAsIGBleGZhdF9pb21hcF92YWxpZGAsIGFuZCBgZXhmYXRfd3JpdGViYWNrX3JhbmdlYC4gQmFzZWQgb24gdGhlIHBhdGNoIGRlc2NyaXB0aW9uLCB0aGVzZSBmdW5jdGlvbnMgYXJlIGFsbCBpbnZvbHZlZCBpbiB0aGUgRXhGQVQgZmlsZXN5c3RlbSdzIGlvbWFwIGFuZCBjYWNoaW5nIG1lY2hhbmlzbXMuIFRoaXMgaXMgcHJldHR5IHNpZ25pZmljYW50LCBhbmQgdGhleSdyZSBkZWZpbml0ZWx5IHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSwgd2hpY2ggbWFrZXMgdGhlbSBwcmltZSBjYW5kaWRhdGVzIGZvciBpbmNsdXNpb24gaW4gYEZvY3VzU3ltYm9sc2AuIEVzc2VudGlhbGx5LCBpdCBzZWVtcyB0aGlzIHBhdGNoIGlzIGNoYW5naW5nIGhvdyB3cml0ZXMgYW5kIHdyaXRlYmFja3Mgb3BlcmF0ZS5cblxuTGV0J3MgcXVpY2tseSB2ZXJpZnkgdGhlIG5hbWluZy4gWWVhaCwgYWxsIHRoZSBmdW5jdGlvbiBuYW1lcyBhcmUgY29ycmVjdC4gRXhjZWxsZW50LiBJJ20gc2F0aXNmaWVkLiBOb3csIGl0J3MgdGltZSB0byBjYWxsIGBzZXQtcmVzdWx0c2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUzMzcsIk91dHB1dFRva2VucyI6MTQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjE5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciIsImdyZXBwZXIiLCJncmVwcGVyIiwiZ3JlcHBlciIsImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wMVQwNjo0ODo0OS43ODc3ODIxMTdaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxODY5MjUyNjIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkVYRkFUX0ZTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiX19leGZhdF9jYWNoZV9pbnZhbF9pbm9kZVwiLFxuICAgIFwiZXhmYXRfZmlsZV93cml0ZV9pdGVyXCIsXG4gICAgXCJfX2V4ZmF0X2lvbWFwX2JlZ2luXCIsXG4gICAgXCJleGZhdF9pb21hcF92YWxpZFwiLFxuICAgIFwiZXhmYXRfd3JpdGViYWNrX3JhbmdlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGV4ZmF0IGZpbGVzeXN0ZW0ncyBpb21hcCBhbmQgY2FjaGluZyBsb2dpYywgc3BlY2lmaWNhbGx5IGludHJvZHVjaW5nIGEgdmFsaWRpdHkgY29va2llIGZvciBpb21hcHMgYW5kIGNoYW5naW5nIGhvdyB0aGUgY2FjaGUgdmFsaWRpdHkgSUQgaXMgaW5jcmVtZW50ZWQuIFRoZXNlIGNoYW5nZXMgYXJlIGZ1bmN0aW9uYWwgYW5kIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgZmlsZSB3cml0ZSBhbmQgd3JpdGViYWNrIG9wZXJhdGlvbnMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiRVhGQVRfRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJfX2V4ZmF0X2NhY2hlX2ludmFsX2lub2RlXCIsXG4gICAgXCJleGZhdF9maWxlX3dyaXRlX2l0ZXJcIixcbiAgICBcIl9fZXhmYXRfaW9tYXBfYmVnaW5cIixcbiAgICBcImV4ZmF0X2lvbWFwX3ZhbGlkXCIsXG4gICAgXCJleGZhdF93cml0ZWJhY2tfcmFuZ2VcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgZXhmYXQgZmlsZXN5c3RlbSdzIGlvbWFwIGFuZCBjYWNoaW5nIGxvZ2ljLCBzcGVjaWZpY2FsbHkgaW50cm9kdWNpbmcgYSB2YWxpZGl0eSBjb29raWUgZm9yIGlvbWFwcyBhbmQgY2hhbmdpbmcgaG93IHRoZSBjYWNoZSB2YWxpZGl0eSBJRCBpcyBpbmNyZW1lbnRlZC4gVGhlc2UgY2hhbmdlcyBhcmUgZnVuY3Rpb25hbCBhbmQgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBmaWxlIHdyaXRlIGFuZCB3cml0ZWJhY2sgb3BlcmF0aW9ucy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowjpzzv[1] Phase: Succeeded StartedAt: 2026-07-01 06:49:01 +0000 UTC FinishedAt: 2026-07-01 06:49:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjpzzv[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-01 06:49:01 +0000 UTC FinishedAt: 2026-07-01 06:49:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjpzzv[2] Phase: Succeeded StartedAt: 2026-07-01 06:49:01 +0000 UTC FinishedAt: 2026-07-01 11:01:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjpzzv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["__exfat_cache_inval_inode","exfat_file_write_iter","__exfat_iomap_begin","exfat_iomap_valid","exfat_writeback_range"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"1f82f086-aa52-4d53-b741-577ef518430c","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-01 06:49:01 +0000 UTC FinishedAt: 2026-07-01 11:01:28 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["__exfat_cache_inval_inode","exfat_file_write_iter","__exfat_iomap_begin","exfat_iomap_valid","exfat_writeback_range"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"1f82f086-aa52-4d53-b741-577ef518430c","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-workflowjpzzv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["__exfat_cache_inval_inode","exfat_file_write_iter","__exfat_iomap_begin","exfat_iomap_valid","exfat_writeback_range"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"1f82f086-aa52-4d53-b741-577ef518430c","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-01 06:49:01 +0000 UTC FinishedAt: 2026-07-01 06:49:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjpzzv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["__exfat_cache_inval_inode","exfat_file_write_iter","__exfat_iomap_begin","exfat_iomap_valid","exfat_writeback_range"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"1f82f086-aa52-4d53-b741-577ef518430c","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-01 06:49:01 +0000 UTC FinishedAt: 2026-07-01 06:49:06 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowjpzzv/series-workflowjpzzv-convert-artifact-3091323326/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjpzzv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["__exfat_cache_inval_inode","exfat_file_write_iter","__exfat_iomap_begin","exfat_iomap_valid","exfat_writeback_range"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"1f82f086-aa52-4d53-b741-577ef518430c","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-01 06:49:11 +0000 UTC FinishedAt: 2026-07-01 07:24:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjpzzv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["__exfat_cache_inval_inode","exfat_file_write_iter","__exfat_iomap_begin","exfat_iomap_valid","exfat_writeback_range"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"1f82f086-aa52-4d53-b741-577ef518430c","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-01 06:49:11 +0000 UTC FinishedAt: 2026-07-01 07:24:09 +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:*44bdfa2c-8740-443e-95fc-fa326d68cd6b,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-workflowjpzzv/series-workflowjpzzv-convert-artifact-3091323326/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": "72a9c8e5-1d4e-4f81-87ff-37502beaf922", "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-workflowjpzzv/series-workflowjpzzv-build-action-3652825764/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjpzzv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["__exfat_cache_inval_inode","exfat_file_write_iter","__exfat_iomap_begin","exfat_iomap_valid","exfat_writeback_range"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"1f82f086-aa52-4d53-b741-577ef518430c","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-01 06:49:11 +0000 UTC FinishedAt: 2026-07-01 07:23:59 +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:*44bdfa2c-8740-443e-95fc-fa326d68cd6b,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-workflowjpzzv/series-workflowjpzzv-convert-artifact-3091323326/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": "72a9c8e5-1d4e-4f81-87ff-37502beaf922", "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-workflowjpzzv/series-workflowjpzzv-build-action-3652825764/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjpzzv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["__exfat_cache_inval_inode","exfat_file_write_iter","__exfat_iomap_begin","exfat_iomap_valid","exfat_writeback_range"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"1f82f086-aa52-4d53-b741-577ef518430c","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-01 07:24:09 +0000 UTC FinishedAt: 2026-07-01 07:24:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjpzzv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["__exfat_cache_inval_inode","exfat_file_write_iter","__exfat_iomap_begin","exfat_iomap_valid","exfat_writeback_range"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"1f82f086-aa52-4d53-b741-577ef518430c","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-01 07:24:09 +0000 UTC FinishedAt: 2026-07-01 07:24:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjpzzv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["__exfat_cache_inval_inode","exfat_file_write_iter","__exfat_iomap_begin","exfat_iomap_valid","exfat_writeback_range"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"1f82f086-aa52-4d53-b741-577ef518430c","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-01 07:24:09 +0000 UTC FinishedAt: 2026-07-01 07:24:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjpzzv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["__exfat_cache_inval_inode","exfat_file_write_iter","__exfat_iomap_begin","exfat_iomap_valid","exfat_writeback_range"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"1f82f086-aa52-4d53-b741-577ef518430c","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-01 07:24:09 +0000 UTC FinishedAt: 2026-07-01 07:24:18 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"1f82f086-aa52-4d53-b741-577ef518430c","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-workflowjpzzv/series-workflowjpzzv-convert-artifact-3675484913/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjpzzv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["__exfat_cache_inval_inode","exfat_file_write_iter","__exfat_iomap_begin","exfat_iomap_valid","exfat_writeback_range"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"1f82f086-aa52-4d53-b741-577ef518430c","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-01 07:24:29 +0000 UTC FinishedAt: 2026-07-01 07:26:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjpzzv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["__exfat_cache_inval_inode","exfat_file_write_iter","__exfat_iomap_begin","exfat_iomap_valid","exfat_writeback_range"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"1f82f086-aa52-4d53-b741-577ef518430c","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-01 07:24:29 +0000 UTC FinishedAt: 2026-07-01 07:26:26 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*72a9c8e5-1d4e-4f81-87ff-37502beaf922,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-workflowjpzzv/series-workflowjpzzv-build-action-3652825764/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-workflowjpzzv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["__exfat_cache_inval_inode","exfat_file_write_iter","__exfat_iomap_begin","exfat_iomap_valid","exfat_writeback_range"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"1f82f086-aa52-4d53-b741-577ef518430c","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-01 07:26:36 +0000 UTC FinishedAt: 2026-07-01 07:26:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjpzzv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["__exfat_cache_inval_inode","exfat_file_write_iter","__exfat_iomap_begin","exfat_iomap_valid","exfat_writeback_range"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"1f82f086-aa52-4d53-b741-577ef518430c","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-01 07:26:36 +0000 UTC FinishedAt: 2026-07-01 07:26:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjpzzv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["__exfat_cache_inval_inode","exfat_file_write_iter","__exfat_iomap_begin","exfat_iomap_valid","exfat_writeback_range"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"1f82f086-aa52-4d53-b741-577ef518430c","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-01 07:26:36 +0000 UTC FinishedAt: 2026-07-01 07:57:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjpzzv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["__exfat_cache_inval_inode","exfat_file_write_iter","__exfat_iomap_begin","exfat_iomap_valid","exfat_writeback_range"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"1f82f086-aa52-4d53-b741-577ef518430c","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-01 07:26:36 +0000 UTC FinishedAt: 2026-07-01 07:57:03 +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:*44bdfa2c-8740-443e-95fc-fa326d68cd6b,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-workflowjpzzv/series-workflowjpzzv-convert-artifact-3675484913/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": "5daa0585-9458-48b1-a47e-2f97e251c994", "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-workflowjpzzv/series-workflowjpzzv-build-action-1231622333/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjpzzv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["__exfat_cache_inval_inode","exfat_file_write_iter","__exfat_iomap_begin","exfat_iomap_valid","exfat_writeback_range"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"1f82f086-aa52-4d53-b741-577ef518430c","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-01 07:26:36 +0000 UTC FinishedAt: 2026-07-01 07:56:27 +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:*44bdfa2c-8740-443e-95fc-fa326d68cd6b,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-workflowjpzzv/series-workflowjpzzv-convert-artifact-3675484913/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": "5daa0585-9458-48b1-a47e-2f97e251c994", "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-workflowjpzzv/series-workflowjpzzv-build-action-1231622333/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjpzzv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["__exfat_cache_inval_inode","exfat_file_write_iter","__exfat_iomap_begin","exfat_iomap_valid","exfat_writeback_range"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"1f82f086-aa52-4d53-b741-577ef518430c","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-01 07:57:03 +0000 UTC FinishedAt: 2026-07-01 07:57:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjpzzv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["__exfat_cache_inval_inode","exfat_file_write_iter","__exfat_iomap_begin","exfat_iomap_valid","exfat_writeback_range"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"1f82f086-aa52-4d53-b741-577ef518430c","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-01 07:57:03 +0000 UTC FinishedAt: 2026-07-01 07:57:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjpzzv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["__exfat_cache_inval_inode","exfat_file_write_iter","__exfat_iomap_begin","exfat_iomap_valid","exfat_writeback_range"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"1f82f086-aa52-4d53-b741-577ef518430c","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-01 07:57:03 +0000 UTC FinishedAt: 2026-07-01 07:59:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjpzzv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["__exfat_cache_inval_inode","exfat_file_write_iter","__exfat_iomap_begin","exfat_iomap_valid","exfat_writeback_range"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"1f82f086-aa52-4d53-b741-577ef518430c","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-01 07:57:03 +0000 UTC FinishedAt: 2026-07-01 07:58:56 +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:*5daa0585-9458-48b1-a47e-2f97e251c994,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-workflowjpzzv/series-workflowjpzzv-build-action-1231622333/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-workflowjpzzv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["__exfat_cache_inval_inode","exfat_file_write_iter","__exfat_iomap_begin","exfat_iomap_valid","exfat_writeback_range"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"1f82f086-aa52-4d53-b741-577ef518430c","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-01 07:59:06 +0000 UTC FinishedAt: 2026-07-01 11:01:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjpzzv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["__exfat_cache_inval_inode","exfat_file_write_iter","__exfat_iomap_begin","exfat_iomap_valid","exfat_writeback_range"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"1f82f086-aa52-4d53-b741-577ef518430c","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-01 07:59:06 +0000 UTC FinishedAt: 2026-07-01 11:01:28 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["__exfat_cache_inval_inode","exfat_file_write_iter","__exfat_iomap_begin","exfat_iomap_valid","exfat_writeback_range"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:track,Default:nil,Value:*KASAN,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:base-build-id,Default:nil,Value:*72a9c8e5-1d4e-4f81-87ff-37502beaf922,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*5daa0585-9458-48b1-a47e-2f97e251c994,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-workflowjpzzv/series-workflowjpzzv-build-action-3652825764/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-workflowjpzzv/series-workflowjpzzv-build-action-1231622333/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowjpzzv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["__exfat_cache_inval_inode","exfat_file_write_iter","__exfat_iomap_begin","exfat_iomap_valid","exfat_writeback_range"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"1f82f086-aa52-4d53-b741-577ef518430c","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-01 07:59:06 +0000 UTC FinishedAt: 2026-07-01 07:59:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjpzzv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["__exfat_cache_inval_inode","exfat_file_write_iter","__exfat_iomap_begin","exfat_iomap_valid","exfat_writeback_range"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"1f82f086-aa52-4d53-b741-577ef518430c","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-01 07:59:06 +0000 UTC FinishedAt: 2026-07-01 07:59:16 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["__exfat_cache_inval_inode","exfat_file_write_iter","__exfat_iomap_begin","exfat_iomap_valid","exfat_writeback_range"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowjpzzv/series-workflowjpzzv-convert-artifact-672667046/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjpzzv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["__exfat_cache_inval_inode","exfat_file_write_iter","__exfat_iomap_begin","exfat_iomap_valid","exfat_writeback_range"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"1f82f086-aa52-4d53-b741-577ef518430c","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-01 07:59:06 +0000 UTC FinishedAt: 2026-07-01 07:59:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjpzzv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["__exfat_cache_inval_inode","exfat_file_write_iter","__exfat_iomap_begin","exfat_iomap_valid","exfat_writeback_range"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"1f82f086-aa52-4d53-b741-577ef518430c","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-01 07:59:06 +0000 UTC FinishedAt: 2026-07-01 07:59:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjpzzv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["__exfat_cache_inval_inode","exfat_file_write_iter","__exfat_iomap_begin","exfat_iomap_valid","exfat_writeback_range"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"1f82f086-aa52-4d53-b741-577ef518430c","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-01 07:59:07 +0000 UTC FinishedAt: 2026-07-01 07:59:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjpzzv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["__exfat_cache_inval_inode","exfat_file_write_iter","__exfat_iomap_begin","exfat_iomap_valid","exfat_writeback_range"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"1f82f086-aa52-4d53-b741-577ef518430c","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-01 07:59:27 +0000 UTC FinishedAt: 2026-07-01 11:01:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjpzzv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["__exfat_cache_inval_inode","exfat_file_write_iter","__exfat_iomap_begin","exfat_iomap_valid","exfat_writeback_range"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dc59e4fea9d83f03bad6bddf3fa2e52491777482","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXFAT_FS"],"series_id":"1f82f086-aa52-4d53-b741-577ef518430c","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-01 07:59:27 +0000 UTC FinishedAt: 2026-07-01 11:01:18 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*72a9c8e5-1d4e-4f81-87ff-37502beaf922,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*5daa0585-9458-48b1-a47e-2f97e251c994,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-workflowjpzzv/series-workflowjpzzv-build-action-3652825764/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-workflowjpzzv/series-workflowjpzzv-build-action-1231622333/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-workflowjpzzv/series-workflowjpzzv-convert-artifact-672667046/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,}