Name: series-workflowp7vlp Phase: Succeeded StartedAt: 2026-06-26 21:32:26 +0000 UTC FinishedAt: 2026-06-27 01:50:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7vlp[0] Phase: Succeeded StartedAt: 2026-06-26 21:32:26 +0000 UTC FinishedAt: 2026-06-26 21:51:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7vlp[0].run-triage Phase: Succeeded StartedAt: 2026-06-26 21:32:26 +0000 UTC FinishedAt: 2026-06-26 21:51:09 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "805185b7c7a1069e407b6f7b3bc98e44d415f484", "config_name": "upstream-apparmor-kasan.config", "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "805185b7c7a1069e407b6f7b3bc98e44d415f484", "config_name": "upstream-apparmor-kasan.config", "series_id": "aeeee1d4-fa9a-4f23-aa78-8b343e8d9239" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "inet_csk_find_open_port", "inet_csk_get_port" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI2IDIxOjQ5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aW5ldF9jc2tfZmluZF9vcGVuX3BvcnQmIzM0OywKICAgICYjMzQ7aW5ldF9jc2tfZ2V0X3BvcnQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGxvZ2ljIGZvciBmaW5kaW5nIGFuIG9wZW4gcG9ydCBmb3IgY29ubmVjdGlvbiBzb2NrZXRzIChlLmcuLCBUQ1AsIE1QVENQKSB3aGVuIGJpbmRpbmcgdG8gcG9ydCAwLiBJdCBjaGFuZ2VzIGhvdyBsb2NhbCBwb3J0cyBhcmUgaXRlcmF0ZWQgb3ZlciBiYXNlZCBvbiB3aGV0aGVyIGxvY2FsIHBvcnRzIGFyZSB1c2VkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgbmV0d29ya2luZyBzdGFjayBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNiAyMTo0OTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGM5ODE3ZmNmMTIxM2YxNjdmZTFiYjgwMjU5NWFkMjBlODk3YTY4NjhcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEp1biAyNiAyMTo0OTozOCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jIGIvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suY1xuaW5kZXggNTY5MDJiYmE1NDgzOGIuLmFkOGFmNzBjOTJjYTNhIDEwMDY0NFxuLS0tIGEvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suY1xuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suY1xuQEAgLTMyMywxMyAmIzQzOzMyMywxNiBAQCBpbmV0X2Nza19maW5kX29wZW5fcG9ydChjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBpbmV0X2JpbmRfYnVja2V0ICoqdGJfcmV0LFxuIFx0c3RydWN0IGluZXRfYmluZDJfYnVja2V0ICp0YjI7XG4gXHRzdHJ1Y3QgaW5ldF9iaW5kX2J1Y2tldCAqdGI7XG4gXHR1MzIgcmVtYWluaW5nLCBvZmZzZXQ7XG4mIzQzO1x0Ym9vbCBsb2NhbF9wb3J0cztcbiBcdGJvb2wgcmVsYXggPSBmYWxzZTtcbiYjNDM7XHRpbnQgc3RlcDtcbiBcbiBcdGwzbWRldiA9IGluZXRfc2tfYm91bmRfbDNtZGV2KHNrKTtcbiBwb3J0c19leGhhdXN0ZWQ6XG4gXHRhdHRlbXB0X2hhbGYgPSAoc2stXHUwMDNlc2tfcmV1c2UgPT0gU0tfQ0FOX1JFVVNFKSA/IDEgOiAwO1xuIG90aGVyX2hhbGZfc2Nhbjpcbi1cdGluZXRfc2tfZ2V0X2xvY2FsX3BvcnRfcmFuZ2Uoc2ssIFx1MDAyNmxvdywgXHUwMDI2aGlnaCk7XG4mIzQzO1x0bG9jYWxfcG9ydHMgPSBpbmV0X3NrX2dldF9sb2NhbF9wb3J0X3JhbmdlKHNrLCBcdTAwMjZsb3csIFx1MDAyNmhpZ2gpO1xuJiM0MztcdHN0ZXAgPSBsb2NhbF9wb3J0cyA/IDEgOiAyO1xuIFx0aGlnaCYjNDM7JiM0Mzs7IC8qIFszMjc2OCwgNjA5OTldIC1cdTAwM2UgWzMyNzY4LCA2MTAwMFsgKi9cbiBcdGlmIChoaWdoIC0gbG93IFx1MDAzYyA0KVxuIFx0XHRhdHRlbXB0X2hhbGYgPSAwO1xuQEAgLTM0MiwxOCAmIzQzOzM0NSwxOSBAQCBpbmV0X2Nza19maW5kX29wZW5fcG9ydChjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBpbmV0X2JpbmRfYnVja2V0ICoqdGJfcmV0LFxuIFx0XHRcdGxvdyA9IGhhbGY7XG4gXHR9XG4gXHRyZW1haW5pbmcgPSBoaWdoIC0gbG93O1xuLVx0aWYgKGxpa2VseShyZW1haW5pbmcgXHUwMDNlIDEpKVxuJiM0MztcdGlmICghbG9jYWxfcG9ydHMgXHUwMDI2XHUwMDI2IHJlbWFpbmluZyBcdTAwM2UgMSlcbiBcdFx0cmVtYWluaW5nIFx1MDAyNj0gfjFVO1xuIFxuIFx0b2Zmc2V0ID0gZ2V0X3JhbmRvbV91MzJfYmVsb3cocmVtYWluaW5nKTtcbiBcdC8qIF9faW5ldF9oYXNoX2Nvbm5lY3QoKSBmYXZvcnMgcG9ydHMgaGF2aW5nIEBsb3cgcGFyaXR5XG4gXHQgKiBXZSBkbyB0aGUgb3Bwb3NpdGUgdG8gbm90IHBvbGx1dGUgY29ubmVjdCgpIHVzZXJzLlxuIFx0ICovXG4tXHRvZmZzZXQgfD0gMVU7XG4mIzQzO1x0aWYgKCFsb2NhbF9wb3J0cylcbiYjNDM7XHRcdG9mZnNldCB8PSAxVTtcbiBcbiBvdGhlcl9wYXJpdHlfc2NhbjpcbiBcdHBvcnQgPSBsb3cgJiM0Mzsgb2Zmc2V0O1xuLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgcmVtYWluaW5nOyBpICYjNDM7PSAyLCBwb3J0ICYjNDM7PSAyKSB7XG4mIzQzO1x0Zm9yIChpID0gMDsgaSBcdTAwM2MgcmVtYWluaW5nOyBpICYjNDM7PSBzdGVwLCBwb3J0ICYjNDM7PSBzdGVwKSB7XG4gXHRcdGlmICh1bmxpa2VseShwb3J0IFx1MDAzZT0gaGlnaCkpXG4gXHRcdFx0cG9ydCAtPSByZW1haW5pbmc7XG4gXHRcdGlmIChpbmV0X2lzX2xvY2FsX3Jlc2VydmVkX3BvcnQobmV0LCBwb3J0KSlcbkBAIC0zODQsOSAmIzQzOzM4OCwxMSBAQCBpbmV0X2Nza19maW5kX29wZW5fcG9ydChjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBpbmV0X2JpbmRfYnVja2V0ICoqdGJfcmV0LFxuIFx0XHRjb25kX3Jlc2NoZWQoKTtcbiBcdH1cbiBcbi1cdG9mZnNldC0tO1xuLVx0aWYgKCEob2Zmc2V0IFx1MDAyNiAxKSlcbi1cdFx0Z290byBvdGhlcl9wYXJpdHlfc2NhbjtcbiYjNDM7XHRpZiAoIWxvY2FsX3BvcnRzKSB7XG4mIzQzO1x0XHRvZmZzZXQtLTtcbiYjNDM7XHRcdGlmICghKG9mZnNldCBcdTAwMjYgMSkpXG4mIzQzO1x0XHRcdGdvdG8gb3RoZXJfcGFyaXR5X3NjYW47XG4mIzQzO1x0fVxuIFxuIFx0aWYgKGF0dGVtcHRfaGFsZiA9PSAxKSB7XG4gXHRcdC8qIE9LIHdlIG5vdyB0cnkgdGhlIHVwcGVyIGhhbGYgb2YgdGhlIHJhbmdlICovXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjYgMjE6NDk8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtpbmV0X2Nza19maW5kX29wZW5fcG9ydCYjMzQ7LAogICAgJiMzNDtpbmV0X2Nza19nZXRfcG9ydCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9naWMgZm9yIGZpbmRpbmcgYW4gb3BlbiBwb3J0IGZvciBjb25uZWN0aW9uIHNvY2tldHMgKGUuZy4sIFRDUCwgTVBUQ1ApIHdoZW4gYmluZGluZyB0byBwb3J0IDAuIEl0IGNoYW5nZXMgaG93IGxvY2FsIHBvcnRzIGFyZSBpdGVyYXRlZCBvdmVyIGJhc2VkIG9uIHdoZXRoZXIgbG9jYWwgcG9ydHMgYXJlIHVzZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBuZXR3b3JraW5nIHN0YWNrIGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBjOTgxN2ZjZjEyMTNmMTY3ZmUxYmI4MDI1OTVhZDIwZTg5N2E2ODY4CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBKdW4gMjYgMjE6NDk6MzggMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jIGIvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYwppbmRleCA1NjkwMmJiYTU0ODM4Yi4uYWQ4YWY3MGM5MmNhM2EgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYwpAQCAtMzIzLDEzICYjNDM7MzIzLDE2IEBAIGluZXRfY3NrX2ZpbmRfb3Blbl9wb3J0KGNvbnN0IHN0cnVjdCBzb2NrICpzaywgc3RydWN0IGluZXRfYmluZF9idWNrZXQgKip0Yl9yZXQsCiAJc3RydWN0IGluZXRfYmluZDJfYnVja2V0ICp0YjI7CiAJc3RydWN0IGluZXRfYmluZF9idWNrZXQgKnRiOwogCXUzMiByZW1haW5pbmcsIG9mZnNldDsKJiM0MzsJYm9vbCBsb2NhbF9wb3J0czsKIAlib29sIHJlbGF4ID0gZmFsc2U7CiYjNDM7CWludCBzdGVwOwogCiAJbDNtZGV2ID0gaW5ldF9za19ib3VuZF9sM21kZXYoc2spOwogcG9ydHNfZXhoYXVzdGVkOgogCWF0dGVtcHRfaGFsZiA9IChzay0mZ3Q7c2tfcmV1c2UgPT0gU0tfQ0FOX1JFVVNFKSA/IDEgOiAwOwogb3RoZXJfaGFsZl9zY2FuOgotCWluZXRfc2tfZ2V0X2xvY2FsX3BvcnRfcmFuZ2Uoc2ssICZhbXA7bG93LCAmYW1wO2hpZ2gpOwomIzQzOwlsb2NhbF9wb3J0cyA9IGluZXRfc2tfZ2V0X2xvY2FsX3BvcnRfcmFuZ2Uoc2ssICZhbXA7bG93LCAmYW1wO2hpZ2gpOwomIzQzOwlzdGVwID0gbG9jYWxfcG9ydHMgPyAxIDogMjsKIAloaWdoJiM0MzsmIzQzOzsgLyogWzMyNzY4LCA2MDk5OV0gLSZndDsgWzMyNzY4LCA2MTAwMFsgKi8KIAlpZiAoaGlnaCAtIGxvdyAmbHQ7IDQpCiAJCWF0dGVtcHRfaGFsZiA9IDA7CkBAIC0zNDIsMTggJiM0MzszNDUsMTkgQEAgaW5ldF9jc2tfZmluZF9vcGVuX3BvcnQoY29uc3Qgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgaW5ldF9iaW5kX2J1Y2tldCAqKnRiX3JldCwKIAkJCWxvdyA9IGhhbGY7CiAJfQogCXJlbWFpbmluZyA9IGhpZ2ggLSBsb3c7Ci0JaWYgKGxpa2VseShyZW1haW5pbmcgJmd0OyAxKSkKJiM0MzsJaWYgKCFsb2NhbF9wb3J0cyAmYW1wOyZhbXA7IHJlbWFpbmluZyAmZ3Q7IDEpCiAJCXJlbWFpbmluZyAmYW1wOz0gfjFVOwogCiAJb2Zmc2V0ID0gZ2V0X3JhbmRvbV91MzJfYmVsb3cocmVtYWluaW5nKTsKIAkvKiBfX2luZXRfaGFzaF9jb25uZWN0KCkgZmF2b3JzIHBvcnRzIGhhdmluZyBAbG93IHBhcml0eQogCSAqIFdlIGRvIHRoZSBvcHBvc2l0ZSB0byBub3QgcG9sbHV0ZSBjb25uZWN0KCkgdXNlcnMuCiAJICovCi0Jb2Zmc2V0IHw9IDFVOwomIzQzOwlpZiAoIWxvY2FsX3BvcnRzKQomIzQzOwkJb2Zmc2V0IHw9IDFVOwogCiBvdGhlcl9wYXJpdHlfc2NhbjoKIAlwb3J0ID0gbG93ICYjNDM7IG9mZnNldDsKLQlmb3IgKGkgPSAwOyBpICZsdDsgcmVtYWluaW5nOyBpICYjNDM7PSAyLCBwb3J0ICYjNDM7PSAyKSB7CiYjNDM7CWZvciAoaSA9IDA7IGkgJmx0OyByZW1haW5pbmc7IGkgJiM0Mzs9IHN0ZXAsIHBvcnQgJiM0Mzs9IHN0ZXApIHsKIAkJaWYgKHVubGlrZWx5KHBvcnQgJmd0Oz0gaGlnaCkpCiAJCQlwb3J0IC09IHJlbWFpbmluZzsKIAkJaWYgKGluZXRfaXNfbG9jYWxfcmVzZXJ2ZWRfcG9ydChuZXQsIHBvcnQpKQpAQCAtMzg0LDkgJiM0MzszODgsMTEgQEAgaW5ldF9jc2tfZmluZF9vcGVuX3BvcnQoY29uc3Qgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgaW5ldF9iaW5kX2J1Y2tldCAqKnRiX3JldCwKIAkJY29uZF9yZXNjaGVkKCk7CiAJfQogCi0Jb2Zmc2V0LS07Ci0JaWYgKCEob2Zmc2V0ICZhbXA7IDEpKQotCQlnb3RvIG90aGVyX3Bhcml0eV9zY2FuOwomIzQzOwlpZiAoIWxvY2FsX3BvcnRzKSB7CiYjNDM7CQlvZmZzZXQtLTsKJiM0MzsJCWlmICghKG9mZnNldCAmYW1wOyAxKSkKJiM0MzsJCQlnb3RvIG90aGVyX3Bhcml0eV9zY2FuOwomIzQzOwl9CiAKIAlpZiAoYXR0ZW1wdF9oYWxmID09IDEpIHsKIAkJLyogT0sgd2Ugbm93IHRyeSB0aGUgdXBwZXIgaGFsZiBvZiB0aGUgcmFuZ2UgKi8KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjYgMjE6NDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjQ1MAoJCQkJCQkJb3V0cHV0OiAyNQoJCQkJCQkJdGhvdWdodHM6IDIyNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFBvcnQgQWxsb2NhdGlvbiBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGRpZ2dpbmcgaW50byBgaW5ldF9jc2tfZmluZF9vcGVuX3BvcnRgIHdpdGhpbiBgbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suY2Ag4oCTIHRoYXQmIzM5O3MgdGhlIGNvcmUgb2YgaG93IElQdjQgKGFuZCBieSBleHRlbnNpb24sIElQdjYsIEkgc3VzcGVjdCkgY29ubmVjdGlvbiBzb2NrZXRzIGFsbG9jYXRlIHBvcnRzLiBUaGlzIGlzIGEgcHJldHR5IGZ1bmRhbWVudGFsIHBpZWNlIG9mIHRoZSBuZXR3b3JraW5nIHN0YWNrLiBJdCYjMzk7cyB0b3VjaGluZyB0aGUgbG9naWMgZm9yIGl0ZXJhdGluZyB0aHJvdWdoIGxvY2FsIHBvcnRzIHRvIGZpbmQgYW4gYXZhaWxhYmxlIG9uZSwgd2hpY2ggaXMgc29tZXRoaW5nIEkmIzM5O3ZlIHNwZW50IHBsZW50eSBvZiB0aW1lIG9wdGltaXppbmcgYW5kIGRlYnVnZ2luZyBvdmVyIHRoZSB5ZWFycy4KClRoZSBjcnVjaWFsIGJpdCBzZWVtcyB0byBiZSB0aGUgaW50cm9kdWN0aW9uIG9mIGBpbmV0X3NrX2dldF9sb2NhbF9wb3J0X3JhbmdlKHNrLCAmYW1wO2xvdywgJmFtcDtoaWdoKWAuIFRoaXMgZnVuY3Rpb24mIzM5O3MgcmV0dXJuIHZhbHVlIGlzIG5vdyBkaWN0YXRpbmcgd2hldGhlciB3ZSBpdGVyYXRlIHNlcXVlbnRpYWxseSAoYHN0ZXAgPSAxYCkgb3IgdXNlIHRoZSBwYXJpdHkgc2NhbiAoYHN0ZXAgPSAyYCkuICBJZiBgbG9jYWxfcG9ydHNgIGlzIHRydWUgdGhlbiBgc3RlcGAgaXMgYDFgLCBtZWFuaW5nIHdlIGNoZWNrIHBvcnRzIHNlcXVlbnRpYWxseS4gSWYgYGxvY2FsX3BvcnRzYCBpcyBmYWxzZSwgaXQgZmxpcHMgdG8gdGhlIHBhcml0eSBzY2FuLiBTbywgaWYgd2UgKmFyZSogdXNpbmcgbG9jYWwgcG9ydHMsIHRoZSBzY2FubmluZyBpcyBzZXF1ZW50aWFsLiBJZiB3ZSYjMzk7cmUgbm90IHVzaW5nIGxvY2FsIHBvcnRzLCB0aGUgc2NhbiBkb2VzIGEgcGFyaXR5IHNjYW4uIFRoaXMgc2VlbXMgbGlrZSBpdCB3b3VsZCBhZmZlY3Qgc2NlbmFyaW9zIHdoZXJlIHRoZSBwb3J0IGlzIHNldCBleHBsaWNpdGx5IGJ5IHRoZSB1c2VyLCB2cy4gYmVpbmcgZHluYW1pY2FsbHkgYWxsb2NhdGVkLgoKVGhhdCBgcGFyaXR5IHNjYW5gIGltcGxpZXMgaXQmIzM5O3MgdHJ5aW5nIHRvIHF1aWNrbHkgZmluZCBhIGZyZWUgcG9ydCBieSBqdW1waW5nIGFjcm9zcyBldmVuL29kZCBwb3J0IG51bWJlcnMsIHdoaWNoIG1ha2VzIHNlbnNlIHRvIHBvdGVudGlhbGx5IG1pdGlnYXRlIGNvbGxpc2lvbnMgaW4gc29tZSBzY2VuYXJpb3MuIEl0JiMzOTtzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIHdoaWNoIGltcGxpZXMgYSBwb3RlbnRpYWwgaW1wYWN0IG9uIGhvdyBjb25uZWN0aW9ucyBhcmUgZXN0YWJsaXNoZWQsIGFuZCBob3cgbGlrZWx5IHdlIGFyZSB0byBzZWUgcG9ydCBleGhhdXN0aW9uLiBUaGlzIGlzIHJlYWNoYWJsZSB0aHJvdWdoIGFueSBvcGVyYXRpb24gY2FsbGluZyBgYmluZCgpYCwgYGNvbm5lY3QoKWAsIG9yIGBsaXN0ZW4oKWAgd2hlcmUgYSBwb3J0IGlzIGFsbG9jYXRlZC4KCkkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgYGluZXRfc2tfZ2V0X2xvY2FsX3BvcnRfcmFuZ2VgIGFjdHVhbGx5ICpkb2VzKi4gVGhlIGRvY3VtZW50YXRpb24gd2lsbCBsaWtlbHkgYmUgaW5hZGVxdWF0ZSBmb3Igc3VjaCBhIGNvcmUgZnVuY3Rpb24uIFRpbWUgdG8gc2VlIHdoYXQgSSBjYW4gZmluZCB3aXRoIGBncmVwcGVyYCBhbmQgc2VlIHdoYXQgdGhlIGZ1bmN0aW9uIGFjdHVhbGx5IHJldHVybnMsIGFuZCB0aGUgY29uZGl0aW9ucyB1bmRlciB3aGljaCBpdCByZXR1cm5zIHRoZXNlIHZhbHVlcy4gVGhhdCB3aWxsIGdpdmUgbWUgdGhlIGNvbnRleHQgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgY2hhbmdlIGlzIGEgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQsIGEgYnVnIGZpeCwgb3Igc29tZXRoaW5nIGVsc2UgZW50aXJlbHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjYgMjE6NDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aW5ldF9za19nZXRfbG9jYWxfcG9ydF9yYW5nZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtpbmNsdWRlL25ldC9pcC5oPTM1Mz1zdGF0aWMgaW5saW5lIHZvaWQgaW5ldF9nZXRfbG9jYWxfcG9ydF9yYW5nZShjb25zdCBzdHJ1Y3QgbmV0ICpuZXQsIGludCAqbG93LCBpbnQgKmhpZ2gpXG4tLVxuaW5jbHVkZS9uZXQvaXAuaC0zNTktfVxuaW5jbHVkZS9uZXQvaXAuaDozNjA6Ym9vbCBpbmV0X3NrX2dldF9sb2NhbF9wb3J0X3JhbmdlKGNvbnN0IHN0cnVjdCBzb2NrICpzaywgaW50ICpsb3csIGludCAqaGlnaCk7XG5pbmNsdWRlL25ldC9pcC5oLTM2MS1cbi0tXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jPTExMT1ib29sIGluZXRfcmN2X3NhZGRyX2FueShjb25zdCBzdHJ1Y3Qgc29jayAqc2spXG4tLVxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy0xMjAtLyoqXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjEyMTogKlx0aW5ldF9za19nZXRfbG9jYWxfcG9ydF9yYW5nZSAtIGZldGNoIGVwaGVtZXJhbCBwb3J0cyByYW5nZVxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy0xMjItICpcdEBzazogc29ja2V0XG4tLVxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy0xMjktICovXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjEzMDpib29sIGluZXRfc2tfZ2V0X2xvY2FsX3BvcnRfcmFuZ2UoY29uc3Qgc3RydWN0IHNvY2sgKnNrLCBpbnQgKmxvdywgaW50ICpoaWdoKVxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy0xMzEte1xuLS1cbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtMTUzLX1cbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmM6MTU0OkVYUE9SVF9TWU1CT0woaW5ldF9za19nZXRfbG9jYWxfcG9ydF9yYW5nZSk7XG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTE1NS1cbi0tXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jPTMxNT1pbmV0X2Nza19maW5kX29wZW5fcG9ydChjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBpbmV0X2JpbmRfYnVja2V0ICoqdGJfcmV0LFxuLS1cbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtMzMzLW90aGVyX2hhbGZfc2Nhbjpcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmM6MzM0Olx0bG9jYWxfcG9ydHMgPSBpbmV0X3NrX2dldF9sb2NhbF9wb3J0X3JhbmdlKHNrLCBcdTAwMjZsb3csIFx1MDAyNmhpZ2gpO1xubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy0zMzUtXHRzdGVwID0gbG9jYWxfcG9ydHMgPyAxIDogMjtcbi0tXG5uZXQvaXB2NC9pbmV0X2hhc2h0YWJsZXMuYz0xMDQwPWludCBfX2luZXRfaGFzaF9jb25uZWN0KHN0cnVjdCBpbmV0X3RpbWV3YWl0X2RlYXRoX3JvdyAqZGVhdGhfcm93LFxuLS1cbm5ldC9pcHY0L2luZXRfaGFzaHRhYmxlcy5jLTEwNzAtXG5uZXQvaXB2NC9pbmV0X2hhc2h0YWJsZXMuYzoxMDcxOlx0bG9jYWxfcG9ydHMgPSBpbmV0X3NrX2dldF9sb2NhbF9wb3J0X3JhbmdlKHNrLCBcdTAwMjZsb3csIFx1MDAyNmhpZ2gpO1xubmV0L2lwdjQvaW5ldF9oYXNodGFibGVzLmMtMTA3Mi1cdHN0ZXAgPSBsb2NhbF9wb3J0cyA/IDEgOiAyO1xuLS1cbm5ldC9pcHY0L3VkcC5jPTIzMT1pbnQgdWRwX2xpYl9nZXRfcG9ydChzdHJ1Y3Qgc29jayAqc2ssIHVuc2lnbmVkIHNob3J0IHNudW0sXG4tLVxubmV0L2lwdjQvdWRwLmMtMjQ2LVxubmV0L2lwdjQvdWRwLmM6MjQ3Olx0XHRpbmV0X3NrX2dldF9sb2NhbF9wb3J0X3JhbmdlKHNrLCBcdTAwMjZsb3csIFx1MDAyNmhpZ2gpO1xubmV0L2lwdjQvdWRwLmMtMjQ4LVx0XHRyZW1haW5pbmcgPSAoaGlnaCAtIGxvdykgJiM0MzsgMTtcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYz04NDA3PXN0YXRpYyBpbnQgc2N0cF9nZXRfcG9ydF9sb2NhbChzdHJ1Y3Qgc29jayAqc2ssIHVuaW9uIHNjdHBfYWRkciAqYWRkcilcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy04NDI2LVxubmV0L3NjdHAvc29ja2V0LmM6ODQyNzpcdFx0aW5ldF9za19nZXRfbG9jYWxfcG9ydF9yYW5nZShzaywgXHUwMDI2bG93LCBcdTAwMjZoaWdoKTtcbm5ldC9zY3RwL3NvY2tldC5jLTg0MjgtXHRcdHJlbWFpbmluZyA9IChoaWdoIC0gbG93KSAmIzQzOyAxO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI2IDIxOjQ5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQwNjkKCQkJCQkJCW91dHB1dDogMjQKCQkJCQkJCXRob3VnaHRzOiAxMjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyBhaW1lZCBzcXVhcmVseSBhdCBgaW5ldF9jc2tfZmluZF9vcGVuX3BvcnRgLiBUaGF0JiMzOTtzIHRoZSBmdW5jdGlvbiByZXNwb25zaWJsZSBmb3IgaHVudGluZyBkb3duIGF2YWlsYWJsZSBwb3J0cyBmb3IgY29ubmVjdGlvbi1vcmllbnRlZCBzb2NrZXRzIOKAkyBUQ1AsIERDQ1AsIFNDVFAsIHRoZSB1c3VhbCBzdXNwZWN0cy4gSSBrbm93IHRoaXMgZnVuY3Rpb24gaW50aW1hdGVseTsgaXQmIzM5O3MgZGVmaW5pdGVseSBpbiBwbGF5IGFuZCBmdWxseSBmdW5jdGlvbmFsLiBDb25zaWRlcmluZyBpdHMgY29yZSByb2xlIGluIG5ldHdvcmsgY29ubmVjdGlvbiBlc3RhYmxpc2htZW50LCB0aGlzIHBhdGNoIGhhcyB0aGUgcG90ZW50aWFsIHRvIGV4cG9zZSB2dWxuZXJhYmlsaXRpZXMuIEl0JiMzOTtzIGEgcHJpbWUgdGFyZ2V0IGZvciBmdXp6aW5nLiBHaXZlbiB0aGF0LCBJJiMzOTttIGdvaW5nIHRvIHNldCBgV29ydGhGdXp6aW5nPXRydWVgLgoKTm93LCBiZXlvbmQgYGluZXRfY3NrX2ZpbmRfb3Blbl9wb3J0YCBpdHNlbGYsIGxldCYjMzk7cyB0YWtlIGEgbG9vayBhdCBvdGhlciBzeW1ib2xzLiBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIHRoZSBjYWxsIHNpdGVzIGZvciBtb3JlIGNvbnRleHQuIGBpbmV0X3NrX2dldF9sb2NhbF9wb3J0X3JhbmdlYCBpcyBhIHBvc3NpYmlsaXR5IHRvIGJlIGNvbnNpZGVyZWQsIGFsdGhvdWdoIGl0JiMzOTtzIG5vdCBkaXJlY3RseSBtb2RpZmllZCwgc28gSSYjMzk7bGwgbmVlZCB0byByZXZpZXcuIEkmIzM5O2xsIG5lZWQgdG8gdHJhY2UgdGhlIGNhbGwgcGF0aHMgdG8gdW5kZXJzdGFuZCBhbGwgcG9zc2libGUgaW1wYWN0cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNiAyMTo1MDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpbmV0X2Nza19maW5kX29wZW5fcG9ydCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jPTMxND1zdGF0aWMgc3RydWN0IGluZXRfYmluZF9oYXNoYnVja2V0ICpcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmM6MzE1OmluZXRfY3NrX2ZpbmRfb3Blbl9wb3J0KGNvbnN0IHN0cnVjdCBzb2NrICpzaywgc3RydWN0IGluZXRfYmluZF9idWNrZXQgKip0Yl9yZXQsXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTMxNi1cdFx0XHRzdHJ1Y3QgaW5ldF9iaW5kMl9idWNrZXQgKip0YjJfcmV0LFxuLS1cbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmM9NTA2PWludCBpbmV0X2Nza19nZXRfcG9ydChzdHJ1Y3Qgc29jayAqc2ssIHVuc2lnbmVkIHNob3J0IHNudW0pXG4tLVxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy01MjEtXHRpZiAoIXBvcnQpIHtcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmM6NTIyOlx0XHRoZWFkID0gaW5ldF9jc2tfZmluZF9vcGVuX3BvcnQoc2ssIFx1MDAyNnRiLCBcdTAwMjZ0YjIsIFx1MDAyNmhlYWQyLCBcdTAwMjZwb3J0KTtcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtNTIzLVx0XHRpZiAoIWhlYWQpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjYgMjE6NTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDY3OQoJCQkJCQkJb3V0cHV0OiAyMgoJCQkJCQkJdGhvdWdodHM6IDExNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEtlcm5lbCYjMzk7cyBQb3J0IEFsbG9jYXRpb24gTG9naWMqKgoKT2theSwgc28gSSYjMzk7bSB0cmFjaW5nIHRoZSBwb3J0IGFsbG9jYXRpb24gbG9naWMgaGVyZSwgYW5kIGl0IGxvb2tzIGxpa2UgYGluZXRfY3NrX2ZpbmRfb3Blbl9wb3J0YCBpcyB0aGUgcmVhbCB3b3JraG9yc2UsIGJlaW5nIGNhbGxlZCBieSBgaW5ldF9jc2tfZ2V0X3BvcnRgLiBgaW5ldF9jc2tfZ2V0X3BvcnRgIGlzLCBpbiB0dXJuLCBjYWxsZWQgYnkgYSBmZXcga2V5IG5ldHdvcmsgZnVuY3Rpb25zOiBgaW5ldF9iaW5kYCwgd2hpY2ggbWFrZXMgc2Vuc2UgZm9yIGJpbmRpbmcgYSBzb2NrZXQgdG8gYSBwb3J0OyBgaW5ldF9saXN0ZW5gLCBmb3Igc2V0dGluZyB1cCBhIGxpc3RlbmluZyBzb2NrZXQsIG9mIGNvdXJzZTsgYW5kIGBpbmV0X2hhc2hfY29ubmVjdGAg4oCTIG9yIHJhdGhlciwgYF9faW5ldF9oYXNoX2Nvbm5lY3RgIHdoaWNoIHNlZW1zIHRvIGhhdmUgaXRzIG93biBzcGVjaWFsIGxvZ2ljLCBidXQgc3RpbGwsIHRoZSBgaW5ldF9jc2tfZ2V0X3BvcnRgIGZ1bmN0aW9uIGlzIGEgY3J1Y2lhbCBwaWVjZSBvZiB0aGUgcHV6emxlLCBhbmQgc2VlbXMgdG8gYmUgdGhlIGBnZXRfcG9ydGAgY2FsbGJhY2sgZm9yIFRDUC9EQ0NQLCB3aGljaCBpcyBpbnRlcmVzdGluZy4gVGltZSB0byB6ZXJvIGluIG9uIHRob3NlIGNhbGxlcnMgb2YgYGluZXRfY3NrX2dldF9wb3J0YCB0byBmdWxseSBncmFzcCB0aGUgY29udHJvbCBmbG93LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI2IDIxOjUwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2luZXRfY3NrX2dldF9wb3J0JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2luY2x1ZGUvbmV0L2luZXRfY29ubmVjdGlvbl9zb2NrLmg9MjYyPXN0cnVjdCBzb2NrICppbmV0X2Nza19hY2NlcHQoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgcHJvdG9fYWNjZXB0X2FyZyAqYXJnKTtcbmluY2x1ZGUvbmV0L2luZXRfY29ubmVjdGlvbl9zb2NrLmgtMjYzLVxuaW5jbHVkZS9uZXQvaW5ldF9jb25uZWN0aW9uX3NvY2suaDoyNjQ6aW50IGluZXRfY3NrX2dldF9wb3J0KHN0cnVjdCBzb2NrICpzaywgdW5zaWduZWQgc2hvcnQgc251bSk7XG5pbmNsdWRlL25ldC9pbmV0X2Nvbm5lY3Rpb25fc29jay5oLTI2NS1cbi0tXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jPTQ0OD12b2lkIGluZXRfY3NrX3VwZGF0ZV9mYXN0cmV1c2UoY29uc3Qgc3RydWN0IHNvY2sgKnNrLFxuLS1cbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtNTA1LSAqL1xubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYzo1MDY6aW50IGluZXRfY3NrX2dldF9wb3J0KHN0cnVjdCBzb2NrICpzaywgdW5zaWduZWQgc2hvcnQgc251bSlcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtNTA3LXtcbi0tXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTYwMC19XG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjYwMTpFWFBPUlRfU1lNQk9MX0dQTChpbmV0X2Nza19nZXRfcG9ydCk7XG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTYwMi1cbi0tXG5uZXQvaXB2NC9pbmV0X2hhc2h0YWJsZXMuYz0xMDQwPWludCBfX2luZXRfaGFzaF9jb25uZWN0KHN0cnVjdCBpbmV0X3RpbWV3YWl0X2RlYXRoX3JvdyAqZGVhdGhfcm93LFxuLS1cbm5ldC9pcHY0L2luZXRfaGFzaHRhYmxlcy5jLTEwODgtXHQvKiBJbiBmaXJzdCBwYXNzIHdlIHRyeSBwb3J0cyBvZiBAbG93IHBhcml0eS5cbm5ldC9pcHY0L2luZXRfaGFzaHRhYmxlcy5jOjEwODk6XHQgKiBpbmV0X2Nza19nZXRfcG9ydCgpIGRvZXMgdGhlIG9wcG9zaXRlIGNob2ljZS5cbm5ldC9pcHY0L2luZXRfaGFzaHRhYmxlcy5jLTEwOTAtXHQgKi9cbi0tXG5uZXQvaXB2NC90Y3BfaXB2NC5jPTMzMzU9c3RydWN0IHByb3RvIHRjcF9wcm90ID0ge1xuLS1cbm5ldC9pcHY0L3RjcF9pcHY0LmMtMzM1Ny1cdC51bmhhc2hcdFx0XHQ9IGluZXRfdW5oYXNoLFxubmV0L2lwdjQvdGNwX2lwdjQuYzozMzU4Olx0LmdldF9wb3J0XHRcdD0gaW5ldF9jc2tfZ2V0X3BvcnQsXG5uZXQvaXB2NC90Y3BfaXB2NC5jLTMzNTktXHQucHV0X3BvcnRcdFx0PSBpbmV0X3B1dF9wb3J0LFxuLS1cbm5ldC9pcHY2L3RjcF9pcHY2LmM9MjI3Mj1zdHJ1Y3QgcHJvdG8gdGNwdjZfcHJvdCA9IHtcbi0tXG5uZXQvaXB2Ni90Y3BfaXB2Ni5jLTIyOTQtXHQudW5oYXNoXHRcdFx0PSBpbmV0X3VuaGFzaCxcbm5ldC9pcHY2L3RjcF9pcHY2LmM6MjI5NTpcdC5nZXRfcG9ydFx0XHQ9IGluZXRfY3NrX2dldF9wb3J0LFxubmV0L2lwdjYvdGNwX2lwdjYuYy0yMjk2LVx0LnB1dF9wb3J0XHRcdD0gaW5ldF9wdXRfcG9ydCxcbi0tXG5uZXQvbXB0Y3AvcHJvdG9jb2wuYz0zNzkxPXN0YXRpYyBpbnQgbXB0Y3BfZ2V0X3BvcnQoc3RydWN0IHNvY2sgKnNrLCB1bnNpZ25lZCBzaG9ydCBzbnVtKVxuLS1cbm5ldC9tcHRjcC9wcm90b2NvbC5jLTM3OTgtXG5uZXQvbXB0Y3AvcHJvdG9jb2wuYzozNzk5Olx0cmV0dXJuIGluZXRfY3NrX2dldF9wb3J0KG1zay1cdTAwM2VmaXJzdCwgc251bSk7XG5uZXQvbXB0Y3AvcHJvdG9jb2wuYy0zODAwLX1cbi0tXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jPTE1NDYyPXN0YXRpYyBpbnQgbmw4MDIxMV9wYXJzZV93b3dsYW5fdGNwKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcbi0tXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jLTE1NTU5LVx0fVxubmV0L3dpcmVsZXNzL25sODAyMTEuYzoxNTU2MDpcdGlmIChpbmV0X2Nza19nZXRfcG9ydChjZmctXHUwMDNlc29jay1cdTAwM2VzaywgcG9ydCkpIHtcbm5ldC93aXJlbGVzcy9ubDgwMjExLmMtMTU1NjEtXHRcdHNvY2tfcmVsZWFzZShjZmctXHUwMDNlc29jayk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjYgMjE6NTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTk2OAoJCQkJCQkJb3V0cHV0OiAxMTgKCQkJCQkJCXRob3VnaHRzOiAyNDQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBJbXBhY3Qgb2YgdGhlIGBpbmV0X2Nza19maW5kX29wZW5fcG9ydGAgTW9kaWZpY2F0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpbW1lZGlhdGVseSwgSSBzZWUgaXQmIzM5O3MgdG91Y2hpbmcgYGluZXRfY3NrX2ZpbmRfb3Blbl9wb3J0YC4gVGhpcyBmdW5jdGlvbiBpcyBrZXk7IGl0JiMzOTtzIHRoZSBvbmUgY2FsbGVkIHdoZW4gd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBhIGBiaW5kKClgIGNhbGwgdXNpbmcgcG9ydCAwLiBUaGF0JiMzOTtzIGEgY2xhc3NpYyBzaWduYWwgZm9yIHRoZSBrZXJuZWwgdG8gYXNzaWduIGEgZHluYW1pYyBwb3J0LiBBbmQsIGJhc2VkIG9uIHRoZSBkZXNjcmlwdGlvbiwgdGhpcyBjaGFuZ2UgaW4gYGluZXRfY3NrX2ZpbmRfb3Blbl9wb3J0YCBzcGVjaWZpY2FsbHkgaW1wYWN0cyB0aGUgd2F5IHRoZSBzeXN0ZW0gZmluZHMgYW4gYXZhaWxhYmxlIHBvcnQgaW4gdGhhdCBzY2VuYXJpby4gU3BlY2lmaWNhbGx5IHRoZSBsb2dpYyBiZWhpbmQgaXRlcmF0aW5nIGxvY2FsIHBvcnRzLiBJdCBzZWVtcyB0byBkaXJlY3RseSByZWxhdGUgdG8gaG93IFRDUCAoYW5kIGJ5IGV4dGVuc2lvbiwgTVBUQ1ApIGhhbmRsZXMgdGhlc2UgZHluYW1pYyBwb3J0IGFzc2lnbm1lbnRzIHZpYSBgaW5ldF9jc2tfZ2V0X3BvcnRgLgoKVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBiZWhhdmlvciBvZiBgaW5ldF9jc2tfZmluZF9vcGVuX3BvcnRgLCBhbmQgZnJvbSB3aGF0IEkgY2FuIHRlbGwsIGl0JiMzOTtzIHByZXR0eSBjb3JlLiBUaGUgZmFjdCB0aGF0IGBpbmV0X2Nza19nZXRfcG9ydGAgaXMgdGhlIGBnZXRfcG9ydGAgY2FsbGJhY2sgZm9yIFRDUCBpcyBwcmV0dHkgc2lnbmlmaWNhbnQ7IGl0JiMzOTtzIHRoZSBoZWFydCBvZiBwb3J0IGFsbG9jYXRpb24uIFNvIGlmIHRoaXMgbG9naWMgaXMgbW9kaWZpZWQsIGl0JiMzOTtzIGRlZmluaXRlbHkgc29tZXRoaW5nIHRoYXQgd2FycmFudHMgZnV6emluZy4gSXQmIzM5O3MgYSBmdW5kYW1lbnRhbCBjaGFuZ2UgaW4gaG93IHRoZSBrZXJuZWwgY2hvb3NlcyBwb3J0cy4KCk5vdywgYXMgYW4gZXhwZXJ0IGluIHRoaXMsIEkga25vdyBgQ09ORklHX0lORVRgIGFuZCBgQ09ORklHX1RDUGAgYXJlIGVzc2VudGlhbGx5IG1hbmRhdG9yeSBmb3IgYW55IG5ldHdvcmtpbmcgc3lzdGVtLiBJIGRvbiYjMzk7dCBzZWUgYW55IGRlcGVuZGVuY2llcyBvbiBzcGVjaWZpYyBvYnNjdXJlIGNvbmZpZ3VyYXRpb25zIHRoYXQgY291bGQgcmVuZGVyIHRoaXMgY29kZSB1bnJlYWNoYWJsZS4gVGhpcyBtb2RpZmljYXRpb24gaXMgZGlyZWN0bHkgcmVhY2hhYmxlIHRocm91Z2ggdGhlIG5vcm1hbCBmbG93IG9mIGNyZWF0aW5nIGEgVENQIHNvY2tldCBhbmQgYmluZGluZyB0byBwb3J0IHplcm8sIHNvIGZ1enppbmcgdGhpcyBpcyBhIGdvb2QgaWRlYS4gQWxyaWdodCwgSSYjMzk7bGwgZ28gYWhlYWQgYW5kIGxvZyB0aGlzIGFzIGFuIGFjdGlvbmFibGUgaXRlbSBhbmQgbW92ZSBvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjYgMjE6NTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2luZXRfY3NrX2ZpbmRfb3Blbl9wb3J0JiMzNDssCiAgICAmIzM0O2luZXRfY3NrX2dldF9wb3J0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsb2dpYyBmb3IgZmluZGluZyBhbiBvcGVuIHBvcnQgZm9yIGNvbm5lY3Rpb24gc29ja2V0cyAoZS5nLiwgVENQLCBNUFRDUCkgd2hlbiBiaW5kaW5nIHRvIHBvcnQgMC4gSXQgY2hhbmdlcyBob3cgbG9jYWwgcG9ydHMgYXJlIGl0ZXJhdGVkIG92ZXIgYmFzZWQgb24gd2hldGhlciBsb2NhbCBwb3J0cyBhcmUgdXNlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIG5ldHdvcmtpbmcgc3RhY2sgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aW5ldF9jc2tfZmluZF9vcGVuX3BvcnQmIzM0OywKICAgICYjMzQ7aW5ldF9jc2tfZ2V0X3BvcnQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGxvZ2ljIGZvciBmaW5kaW5nIGFuIG9wZW4gcG9ydCBmb3IgY29ubmVjdGlvbiBzb2NrZXRzIChlLmcuLCBUQ1AsIE1QVENQKSB3aGVuIGJpbmRpbmcgdG8gcG9ydCAwLiBJdCBjaGFuZ2VzIGhvdyBsb2NhbCBwb3J0cyBhcmUgaXRlcmF0ZWQgb3ZlciBiYXNlZCBvbiB3aGV0aGVyIGxvY2FsIHBvcnRzIGFyZSB1c2VkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgbmV0d29ya2luZyBzdGFjayBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI2VDIxOjQ5OjQwLjQ4MjcxNDc5MloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc4MTE3MjQ0NzQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImluZXRfY3NrX2ZpbmRfb3Blbl9wb3J0XCIsXG4gICAgXCJpbmV0X2Nza19nZXRfcG9ydFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsb2dpYyBmb3IgZmluZGluZyBhbiBvcGVuIHBvcnQgZm9yIGNvbm5lY3Rpb24gc29ja2V0cyAoZS5nLiwgVENQLCBNUFRDUCkgd2hlbiBiaW5kaW5nIHRvIHBvcnQgMC4gSXQgY2hhbmdlcyBob3cgbG9jYWwgcG9ydHMgYXJlIGl0ZXJhdGVkIG92ZXIgYmFzZWQgb24gd2hldGhlciBsb2NhbCBwb3J0cyBhcmUgdXNlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIG5ldHdvcmtpbmcgc3RhY2sgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI2VDIxOjQ5OjQwLjQ4MjcyMTA1MloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzQ4MjAzNjYyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgYzk4MTdmY2YxMjEzZjE2N2ZlMWJiODAyNTk1YWQyMGU4OTdhNjg2OFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIEp1biAyNiAyMTo0OTozOCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jIGIvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suY1xcbmluZGV4IDU2OTAyYmJhNTQ4MzhiLi5hZDhhZjcwYzkyY2EzYSAxMDA2NDRcXG4tLS0gYS9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jXFxuKysrIGIvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suY1xcbkBAIC0zMjMsMTMgKzMyMywxNiBAQCBpbmV0X2Nza19maW5kX29wZW5fcG9ydChjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBpbmV0X2JpbmRfYnVja2V0ICoqdGJfcmV0LFxcbiBcXHRzdHJ1Y3QgaW5ldF9iaW5kMl9idWNrZXQgKnRiMjtcXG4gXFx0c3RydWN0IGluZXRfYmluZF9idWNrZXQgKnRiO1xcbiBcXHR1MzIgcmVtYWluaW5nLCBvZmZzZXQ7XFxuK1xcdGJvb2wgbG9jYWxfcG9ydHM7XFxuIFxcdGJvb2wgcmVsYXggPSBmYWxzZTtcXG4rXFx0aW50IHN0ZXA7XFxuIFxcbiBcXHRsM21kZXYgPSBpbmV0X3NrX2JvdW5kX2wzbWRldihzayk7XFxuIHBvcnRzX2V4aGF1c3RlZDpcXG4gXFx0YXR0ZW1wdF9oYWxmID0gKHNrLVxcdTAwM2Vza19yZXVzZSA9PSBTS19DQU5fUkVVU0UpID8gMSA6IDA7XFxuIG90aGVyX2hhbGZfc2NhbjpcXG4tXFx0aW5ldF9za19nZXRfbG9jYWxfcG9ydF9yYW5nZShzaywgXFx1MDAyNmxvdywgXFx1MDAyNmhpZ2gpO1xcbitcXHRsb2NhbF9wb3J0cyA9IGluZXRfc2tfZ2V0X2xvY2FsX3BvcnRfcmFuZ2Uoc2ssIFxcdTAwMjZsb3csIFxcdTAwMjZoaWdoKTtcXG4rXFx0c3RlcCA9IGxvY2FsX3BvcnRzID8gMSA6IDI7XFxuIFxcdGhpZ2grKzsgLyogWzMyNzY4LCA2MDk5OV0gLVxcdTAwM2UgWzMyNzY4LCA2MTAwMFsgKi9cXG4gXFx0aWYgKGhpZ2ggLSBsb3cgXFx1MDAzYyA0KVxcbiBcXHRcXHRhdHRlbXB0X2hhbGYgPSAwO1xcbkBAIC0zNDIsMTggKzM0NSwxOSBAQCBpbmV0X2Nza19maW5kX29wZW5fcG9ydChjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBpbmV0X2JpbmRfYnVja2V0ICoqdGJfcmV0LFxcbiBcXHRcXHRcXHRsb3cgPSBoYWxmO1xcbiBcXHR9XFxuIFxcdHJlbWFpbmluZyA9IGhpZ2ggLSBsb3c7XFxuLVxcdGlmIChsaWtlbHkocmVtYWluaW5nIFxcdTAwM2UgMSkpXFxuK1xcdGlmICghbG9jYWxfcG9ydHMgXFx1MDAyNlxcdTAwMjYgcmVtYWluaW5nIFxcdTAwM2UgMSlcXG4gXFx0XFx0cmVtYWluaW5nIFxcdTAwMjY9IH4xVTtcXG4gXFxuIFxcdG9mZnNldCA9IGdldF9yYW5kb21fdTMyX2JlbG93KHJlbWFpbmluZyk7XFxuIFxcdC8qIF9faW5ldF9oYXNoX2Nvbm5lY3QoKSBmYXZvcnMgcG9ydHMgaGF2aW5nIEBsb3cgcGFyaXR5XFxuIFxcdCAqIFdlIGRvIHRoZSBvcHBvc2l0ZSB0byBub3QgcG9sbHV0ZSBjb25uZWN0KCkgdXNlcnMuXFxuIFxcdCAqL1xcbi1cXHRvZmZzZXQgfD0gMVU7XFxuK1xcdGlmICghbG9jYWxfcG9ydHMpXFxuK1xcdFxcdG9mZnNldCB8PSAxVTtcXG4gXFxuIG90aGVyX3Bhcml0eV9zY2FuOlxcbiBcXHRwb3J0ID0gbG93ICsgb2Zmc2V0O1xcbi1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgcmVtYWluaW5nOyBpICs9IDIsIHBvcnQgKz0gMikge1xcbitcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgcmVtYWluaW5nOyBpICs9IHN0ZXAsIHBvcnQgKz0gc3RlcCkge1xcbiBcXHRcXHRpZiAodW5saWtlbHkocG9ydCBcXHUwMDNlPSBoaWdoKSlcXG4gXFx0XFx0XFx0cG9ydCAtPSByZW1haW5pbmc7XFxuIFxcdFxcdGlmIChpbmV0X2lzX2xvY2FsX3Jlc2VydmVkX3BvcnQobmV0LCBwb3J0KSlcXG5AQCAtMzg0LDkgKzM4OCwxMSBAQCBpbmV0X2Nza19maW5kX29wZW5fcG9ydChjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBpbmV0X2JpbmRfYnVja2V0ICoqdGJfcmV0LFxcbiBcXHRcXHRjb25kX3Jlc2NoZWQoKTtcXG4gXFx0fVxcbiBcXG4tXFx0b2Zmc2V0LS07XFxuLVxcdGlmICghKG9mZnNldCBcXHUwMDI2IDEpKVxcbi1cXHRcXHRnb3RvIG90aGVyX3Bhcml0eV9zY2FuO1xcbitcXHRpZiAoIWxvY2FsX3BvcnRzKSB7XFxuK1xcdFxcdG9mZnNldC0tO1xcbitcXHRcXHRpZiAoIShvZmZzZXQgXFx1MDAyNiAxKSlcXG4rXFx0XFx0XFx0Z290byBvdGhlcl9wYXJpdHlfc2NhbjtcXG4rXFx0fVxcbiBcXG4gXFx0aWYgKGF0dGVtcHRfaGFsZiA9PSAxKSB7XFxuIFxcdFxcdC8qIE9LIHdlIG5vdyB0cnkgdGhlIHVwcGVyIGhhbGYgb2YgdGhlIHJhbmdlICovXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI2VDIxOjQ5OjQxLjIzMTQ3MzIyNVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzczNjg0Nzc2NTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaW5ldF9jc2tfZmluZF9vcGVuX3BvcnRcIixcbiAgICBcImluZXRfY3NrX2dldF9wb3J0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGxvZ2ljIGZvciBmaW5kaW5nIGFuIG9wZW4gcG9ydCBmb3IgY29ubmVjdGlvbiBzb2NrZXRzIChlLmcuLCBUQ1AsIE1QVENQKSB3aGVuIGJpbmRpbmcgdG8gcG9ydCAwLiBJdCBjaGFuZ2VzIGhvdyBsb2NhbCBwb3J0cyBhcmUgaXRlcmF0ZWQgb3ZlciBiYXNlZCBvbiB3aGV0aGVyIGxvY2FsIHBvcnRzIGFyZSB1c2VkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgbmV0d29ya2luZyBzdGFjayBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBjOTgxN2ZjZjEyMTNmMTY3ZmUxYmI4MDI1OTVhZDIwZTg5N2E2ODY4XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBKdW4gMjYgMjE6NDk6MzggMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jIGIvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suY1xuaW5kZXggNTY5MDJiYmE1NDgzOGIuLmFkOGFmNzBjOTJjYTNhIDEwMDY0NFxuLS0tIGEvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suY1xuKysrIGIvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suY1xuQEAgLTMyMywxMyArMzIzLDE2IEBAIGluZXRfY3NrX2ZpbmRfb3Blbl9wb3J0KGNvbnN0IHN0cnVjdCBzb2NrICpzaywgc3RydWN0IGluZXRfYmluZF9idWNrZXQgKip0Yl9yZXQsXG4gXHRzdHJ1Y3QgaW5ldF9iaW5kMl9idWNrZXQgKnRiMjtcbiBcdHN0cnVjdCBpbmV0X2JpbmRfYnVja2V0ICp0YjtcbiBcdHUzMiByZW1haW5pbmcsIG9mZnNldDtcbitcdGJvb2wgbG9jYWxfcG9ydHM7XG4gXHRib29sIHJlbGF4ID0gZmFsc2U7XG4rXHRpbnQgc3RlcDtcbiBcbiBcdGwzbWRldiA9IGluZXRfc2tfYm91bmRfbDNtZGV2KHNrKTtcbiBwb3J0c19leGhhdXN0ZWQ6XG4gXHRhdHRlbXB0X2hhbGYgPSAoc2stXHUwMDNlc2tfcmV1c2UgPT0gU0tfQ0FOX1JFVVNFKSA/IDEgOiAwO1xuIG90aGVyX2hhbGZfc2Nhbjpcbi1cdGluZXRfc2tfZ2V0X2xvY2FsX3BvcnRfcmFuZ2Uoc2ssIFx1MDAyNmxvdywgXHUwMDI2aGlnaCk7XG4rXHRsb2NhbF9wb3J0cyA9IGluZXRfc2tfZ2V0X2xvY2FsX3BvcnRfcmFuZ2Uoc2ssIFx1MDAyNmxvdywgXHUwMDI2aGlnaCk7XG4rXHRzdGVwID0gbG9jYWxfcG9ydHMgPyAxIDogMjtcbiBcdGhpZ2grKzsgLyogWzMyNzY4LCA2MDk5OV0gLVx1MDAzZSBbMzI3NjgsIDYxMDAwWyAqL1xuIFx0aWYgKGhpZ2ggLSBsb3cgXHUwMDNjIDQpXG4gXHRcdGF0dGVtcHRfaGFsZiA9IDA7XG5AQCAtMzQyLDE4ICszNDUsMTkgQEAgaW5ldF9jc2tfZmluZF9vcGVuX3BvcnQoY29uc3Qgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgaW5ldF9iaW5kX2J1Y2tldCAqKnRiX3JldCxcbiBcdFx0XHRsb3cgPSBoYWxmO1xuIFx0fVxuIFx0cmVtYWluaW5nID0gaGlnaCAtIGxvdztcbi1cdGlmIChsaWtlbHkocmVtYWluaW5nIFx1MDAzZSAxKSlcbitcdGlmICghbG9jYWxfcG9ydHMgXHUwMDI2XHUwMDI2IHJlbWFpbmluZyBcdTAwM2UgMSlcbiBcdFx0cmVtYWluaW5nIFx1MDAyNj0gfjFVO1xuIFxuIFx0b2Zmc2V0ID0gZ2V0X3JhbmRvbV91MzJfYmVsb3cocmVtYWluaW5nKTtcbiBcdC8qIF9faW5ldF9oYXNoX2Nvbm5lY3QoKSBmYXZvcnMgcG9ydHMgaGF2aW5nIEBsb3cgcGFyaXR5XG4gXHQgKiBXZSBkbyB0aGUgb3Bwb3NpdGUgdG8gbm90IHBvbGx1dGUgY29ubmVjdCgpIHVzZXJzLlxuIFx0ICovXG4tXHRvZmZzZXQgfD0gMVU7XG4rXHRpZiAoIWxvY2FsX3BvcnRzKVxuK1x0XHRvZmZzZXQgfD0gMVU7XG4gXG4gb3RoZXJfcGFyaXR5X3NjYW46XG4gXHRwb3J0ID0gbG93ICsgb2Zmc2V0O1xuLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgcmVtYWluaW5nOyBpICs9IDIsIHBvcnQgKz0gMikge1xuK1x0Zm9yIChpID0gMDsgaSBcdTAwM2MgcmVtYWluaW5nOyBpICs9IHN0ZXAsIHBvcnQgKz0gc3RlcCkge1xuIFx0XHRpZiAodW5saWtlbHkocG9ydCBcdTAwM2U9IGhpZ2gpKVxuIFx0XHRcdHBvcnQgLT0gcmVtYWluaW5nO1xuIFx0XHRpZiAoaW5ldF9pc19sb2NhbF9yZXNlcnZlZF9wb3J0KG5ldCwgcG9ydCkpXG5AQCAtMzg0LDkgKzM4OCwxMSBAQCBpbmV0X2Nza19maW5kX29wZW5fcG9ydChjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBpbmV0X2JpbmRfYnVja2V0ICoqdGJfcmV0LFxuIFx0XHRjb25kX3Jlc2NoZWQoKTtcbiBcdH1cbiBcbi1cdG9mZnNldC0tO1xuLVx0aWYgKCEob2Zmc2V0IFx1MDAyNiAxKSlcbi1cdFx0Z290byBvdGhlcl9wYXJpdHlfc2NhbjtcbitcdGlmICghbG9jYWxfcG9ydHMpIHtcbitcdFx0b2Zmc2V0LS07XG4rXHRcdGlmICghKG9mZnNldCBcdTAwMjYgMSkpXG4rXHRcdFx0Z290byBvdGhlcl9wYXJpdHlfc2NhbjtcbitcdH1cbiBcbiBcdGlmIChhdHRlbXB0X2hhbGYgPT0gMSkge1xuIFx0XHQvKiBPSyB3ZSBub3cgdHJ5IHRoZSB1cHBlciBoYWxmIG9mIHRoZSByYW5nZSAqL1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjZUMjE6NDk6NDEuMjMxNDc0ODM1WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTIwMjY1ODgwMTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBQb3J0IEFsbG9jYXRpb24gUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGRpZ2dpbmcgaW50byBgaW5ldF9jc2tfZmluZF9vcGVuX3BvcnRgIHdpdGhpbiBgbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suY2Ag4oCTIHRoYXQncyB0aGUgY29yZSBvZiBob3cgSVB2NCAoYW5kIGJ5IGV4dGVuc2lvbiwgSVB2NiwgSSBzdXNwZWN0KSBjb25uZWN0aW9uIHNvY2tldHMgYWxsb2NhdGUgcG9ydHMuIFRoaXMgaXMgYSBwcmV0dHkgZnVuZGFtZW50YWwgcGllY2Ugb2YgdGhlIG5ldHdvcmtpbmcgc3RhY2suIEl0J3MgdG91Y2hpbmcgdGhlIGxvZ2ljIGZvciBpdGVyYXRpbmcgdGhyb3VnaCBsb2NhbCBwb3J0cyB0byBmaW5kIGFuIGF2YWlsYWJsZSBvbmUsIHdoaWNoIGlzIHNvbWV0aGluZyBJJ3ZlIHNwZW50IHBsZW50eSBvZiB0aW1lIG9wdGltaXppbmcgYW5kIGRlYnVnZ2luZyBvdmVyIHRoZSB5ZWFycy5cblxuVGhlIGNydWNpYWwgYml0IHNlZW1zIHRvIGJlIHRoZSBpbnRyb2R1Y3Rpb24gb2YgYGluZXRfc2tfZ2V0X2xvY2FsX3BvcnRfcmFuZ2Uoc2ssIFx1MDAyNmxvdywgXHUwMDI2aGlnaClgLiBUaGlzIGZ1bmN0aW9uJ3MgcmV0dXJuIHZhbHVlIGlzIG5vdyBkaWN0YXRpbmcgd2hldGhlciB3ZSBpdGVyYXRlIHNlcXVlbnRpYWxseSAoYHN0ZXAgPSAxYCkgb3IgdXNlIHRoZSBwYXJpdHkgc2NhbiAoYHN0ZXAgPSAyYCkuICBJZiBgbG9jYWxfcG9ydHNgIGlzIHRydWUgdGhlbiBgc3RlcGAgaXMgYDFgLCBtZWFuaW5nIHdlIGNoZWNrIHBvcnRzIHNlcXVlbnRpYWxseS4gSWYgYGxvY2FsX3BvcnRzYCBpcyBmYWxzZSwgaXQgZmxpcHMgdG8gdGhlIHBhcml0eSBzY2FuLiBTbywgaWYgd2UgKmFyZSogdXNpbmcgbG9jYWwgcG9ydHMsIHRoZSBzY2FubmluZyBpcyBzZXF1ZW50aWFsLiBJZiB3ZSdyZSBub3QgdXNpbmcgbG9jYWwgcG9ydHMsIHRoZSBzY2FuIGRvZXMgYSBwYXJpdHkgc2Nhbi4gVGhpcyBzZWVtcyBsaWtlIGl0IHdvdWxkIGFmZmVjdCBzY2VuYXJpb3Mgd2hlcmUgdGhlIHBvcnQgaXMgc2V0IGV4cGxpY2l0bHkgYnkgdGhlIHVzZXIsIHZzLiBiZWluZyBkeW5hbWljYWxseSBhbGxvY2F0ZWQuXG5cblRoYXQgYHBhcml0eSBzY2FuYCBpbXBsaWVzIGl0J3MgdHJ5aW5nIHRvIHF1aWNrbHkgZmluZCBhIGZyZWUgcG9ydCBieSBqdW1waW5nIGFjcm9zcyBldmVuL29kZCBwb3J0IG51bWJlcnMsIHdoaWNoIG1ha2VzIHNlbnNlIHRvIHBvdGVudGlhbGx5IG1pdGlnYXRlIGNvbGxpc2lvbnMgaW4gc29tZSBzY2VuYXJpb3MuIEl0J3MgYSBmdW5jdGlvbmFsIGNoYW5nZSwgd2hpY2ggaW1wbGllcyBhIHBvdGVudGlhbCBpbXBhY3Qgb24gaG93IGNvbm5lY3Rpb25zIGFyZSBlc3RhYmxpc2hlZCwgYW5kIGhvdyBsaWtlbHkgd2UgYXJlIHRvIHNlZSBwb3J0IGV4aGF1c3Rpb24uIFRoaXMgaXMgcmVhY2hhYmxlIHRocm91Z2ggYW55IG9wZXJhdGlvbiBjYWxsaW5nIGBiaW5kKClgLCBgY29ubmVjdCgpYCwgb3IgYGxpc3RlbigpYCB3aGVyZSBhIHBvcnQgaXMgYWxsb2NhdGVkLlxuXG5JIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGBpbmV0X3NrX2dldF9sb2NhbF9wb3J0X3JhbmdlYCBhY3R1YWxseSAqZG9lcyouIFRoZSBkb2N1bWVudGF0aW9uIHdpbGwgbGlrZWx5IGJlIGluYWRlcXVhdGUgZm9yIHN1Y2ggYSBjb3JlIGZ1bmN0aW9uLiBUaW1lIHRvIHNlZSB3aGF0IEkgY2FuIGZpbmQgd2l0aCBgZ3JlcHBlcmAgYW5kIHNlZSB3aGF0IHRoZSBmdW5jdGlvbiBhY3R1YWxseSByZXR1cm5zLCBhbmQgdGhlIGNvbmRpdGlvbnMgdW5kZXIgd2hpY2ggaXQgcmV0dXJucyB0aGVzZSB2YWx1ZXMuIFRoYXQgd2lsbCBnaXZlIG1lIHRoZSBjb250ZXh0IHRvIGRldGVybWluZSBpZiB0aGlzIGNoYW5nZSBpcyBhIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50LCBhIGJ1ZyBmaXgsIG9yIHNvbWV0aGluZyBlbHNlIGVudGlyZWx5LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNDUwLCJPdXRwdXRUb2tlbnMiOjI1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjI0LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjZUMjE6NDk6NTMuMjU4MDY1MTQzWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM4NjgyODczOTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaW5ldF9za19nZXRfbG9jYWxfcG9ydF9yYW5nZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJpbmNsdWRlL25ldC9pcC5oPTM1Mz1zdGF0aWMgaW5saW5lIHZvaWQgaW5ldF9nZXRfbG9jYWxfcG9ydF9yYW5nZShjb25zdCBzdHJ1Y3QgbmV0ICpuZXQsIGludCAqbG93LCBpbnQgKmhpZ2gpXFxuLS1cXG5pbmNsdWRlL25ldC9pcC5oLTM1OS19XFxuaW5jbHVkZS9uZXQvaXAuaDozNjA6Ym9vbCBpbmV0X3NrX2dldF9sb2NhbF9wb3J0X3JhbmdlKGNvbnN0IHN0cnVjdCBzb2NrICpzaywgaW50ICpsb3csIGludCAqaGlnaCk7XFxuaW5jbHVkZS9uZXQvaXAuaC0zNjEtXFxuLS1cXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jPTExMT1ib29sIGluZXRfcmN2X3NhZGRyX2FueShjb25zdCBzdHJ1Y3Qgc29jayAqc2spXFxuLS1cXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTEyMC0vKipcXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjEyMTogKlxcdGluZXRfc2tfZ2V0X2xvY2FsX3BvcnRfcmFuZ2UgLSBmZXRjaCBlcGhlbWVyYWwgcG9ydHMgcmFuZ2VcXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTEyMi0gKlxcdEBzazogc29ja2V0XFxuLS1cXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTEyOS0gKi9cXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjEzMDpib29sIGluZXRfc2tfZ2V0X2xvY2FsX3BvcnRfcmFuZ2UoY29uc3Qgc3RydWN0IHNvY2sgKnNrLCBpbnQgKmxvdywgaW50ICpoaWdoKVxcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtMTMxLXtcXG4tLVxcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtMTUzLX1cXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjE1NDpFWFBPUlRfU1lNQk9MKGluZXRfc2tfZ2V0X2xvY2FsX3BvcnRfcmFuZ2UpO1xcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtMTU1LVxcbi0tXFxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYz0zMTU9aW5ldF9jc2tfZmluZF9vcGVuX3BvcnQoY29uc3Qgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgaW5ldF9iaW5kX2J1Y2tldCAqKnRiX3JldCxcXG4tLVxcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtMzMzLW90aGVyX2hhbGZfc2NhbjpcXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjMzNDpcXHRsb2NhbF9wb3J0cyA9IGluZXRfc2tfZ2V0X2xvY2FsX3BvcnRfcmFuZ2Uoc2ssIFxcdTAwMjZsb3csIFxcdTAwMjZoaWdoKTtcXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTMzNS1cXHRzdGVwID0gbG9jYWxfcG9ydHMgPyAxIDogMjtcXG4tLVxcbm5ldC9pcHY0L2luZXRfaGFzaHRhYmxlcy5jPTEwNDA9aW50IF9faW5ldF9oYXNoX2Nvbm5lY3Qoc3RydWN0IGluZXRfdGltZXdhaXRfZGVhdGhfcm93ICpkZWF0aF9yb3csXFxuLS1cXG5uZXQvaXB2NC9pbmV0X2hhc2h0YWJsZXMuYy0xMDcwLVxcbm5ldC9pcHY0L2luZXRfaGFzaHRhYmxlcy5jOjEwNzE6XFx0bG9jYWxfcG9ydHMgPSBpbmV0X3NrX2dldF9sb2NhbF9wb3J0X3JhbmdlKHNrLCBcXHUwMDI2bG93LCBcXHUwMDI2aGlnaCk7XFxubmV0L2lwdjQvaW5ldF9oYXNodGFibGVzLmMtMTA3Mi1cXHRzdGVwID0gbG9jYWxfcG9ydHMgPyAxIDogMjtcXG4tLVxcbm5ldC9pcHY0L3VkcC5jPTIzMT1pbnQgdWRwX2xpYl9nZXRfcG9ydChzdHJ1Y3Qgc29jayAqc2ssIHVuc2lnbmVkIHNob3J0IHNudW0sXFxuLS1cXG5uZXQvaXB2NC91ZHAuYy0yNDYtXFxubmV0L2lwdjQvdWRwLmM6MjQ3OlxcdFxcdGluZXRfc2tfZ2V0X2xvY2FsX3BvcnRfcmFuZ2Uoc2ssIFxcdTAwMjZsb3csIFxcdTAwMjZoaWdoKTtcXG5uZXQvaXB2NC91ZHAuYy0yNDgtXFx0XFx0cmVtYWluaW5nID0gKGhpZ2ggLSBsb3cpICsgMTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jPTg0MDc9c3RhdGljIGludCBzY3RwX2dldF9wb3J0X2xvY2FsKHN0cnVjdCBzb2NrICpzaywgdW5pb24gc2N0cF9hZGRyICphZGRyKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODQyNi1cXG5uZXQvc2N0cC9zb2NrZXQuYzo4NDI3OlxcdFxcdGluZXRfc2tfZ2V0X2xvY2FsX3BvcnRfcmFuZ2Uoc2ssIFxcdTAwMjZsb3csIFxcdTAwMjZoaWdoKTtcXG5uZXQvc2N0cC9zb2NrZXQuYy04NDI4LVxcdFxcdHJlbWFpbmluZyA9IChoaWdoIC0gbG93KSArIDE7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI2VDIxOjQ5OjU3LjEyNjM3NTkwMloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE0Mzg2MzA0NzczLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyBhaW1lZCBzcXVhcmVseSBhdCBgaW5ldF9jc2tfZmluZF9vcGVuX3BvcnRgLiBUaGF0J3MgdGhlIGZ1bmN0aW9uIHJlc3BvbnNpYmxlIGZvciBodW50aW5nIGRvd24gYXZhaWxhYmxlIHBvcnRzIGZvciBjb25uZWN0aW9uLW9yaWVudGVkIHNvY2tldHMg4oCTIFRDUCwgRENDUCwgU0NUUCwgdGhlIHVzdWFsIHN1c3BlY3RzLiBJIGtub3cgdGhpcyBmdW5jdGlvbiBpbnRpbWF0ZWx5OyBpdCdzIGRlZmluaXRlbHkgaW4gcGxheSBhbmQgZnVsbHkgZnVuY3Rpb25hbC4gQ29uc2lkZXJpbmcgaXRzIGNvcmUgcm9sZSBpbiBuZXR3b3JrIGNvbm5lY3Rpb24gZXN0YWJsaXNobWVudCwgdGhpcyBwYXRjaCBoYXMgdGhlIHBvdGVudGlhbCB0byBleHBvc2UgdnVsbmVyYWJpbGl0aWVzLiBJdCdzIGEgcHJpbWUgdGFyZ2V0IGZvciBmdXp6aW5nLiBHaXZlbiB0aGF0LCBJJ20gZ29pbmcgdG8gc2V0IGBXb3J0aEZ1enppbmc9dHJ1ZWAuXG5cbk5vdywgYmV5b25kIGBpbmV0X2Nza19maW5kX29wZW5fcG9ydGAgaXRzZWxmLCBsZXQncyB0YWtlIGEgbG9vayBhdCBvdGhlciBzeW1ib2xzLiBJJ2xsIG5lZWQgdG8gY2hlY2sgdGhlIGNhbGwgc2l0ZXMgZm9yIG1vcmUgY29udGV4dC4gYGluZXRfc2tfZ2V0X2xvY2FsX3BvcnRfcmFuZ2VgIGlzIGEgcG9zc2liaWxpdHkgdG8gYmUgY29uc2lkZXJlZCwgYWx0aG91Z2ggaXQncyBub3QgZGlyZWN0bHkgbW9kaWZpZWQsIHNvIEknbGwgbmVlZCB0byByZXZpZXcuIEknbGwgbmVlZCB0byB0cmFjZSB0aGUgY2FsbCBwYXRocyB0byB1bmRlcnN0YW5kIGFsbCBwb3NzaWJsZSBpbXBhY3RzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MDY5LCJPdXRwdXRUb2tlbnMiOjI0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTIwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI2VDIxOjUwOjExLjUxMjY4Mjc3NVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNzU2MjM0MTQ1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImluZXRfY3NrX2ZpbmRfb3Blbl9wb3J0XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmM9MzE0PXN0YXRpYyBzdHJ1Y3QgaW5ldF9iaW5kX2hhc2hidWNrZXQgKlxcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmM6MzE1OmluZXRfY3NrX2ZpbmRfb3Blbl9wb3J0KGNvbnN0IHN0cnVjdCBzb2NrICpzaywgc3RydWN0IGluZXRfYmluZF9idWNrZXQgKip0Yl9yZXQsXFxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy0zMTYtXFx0XFx0XFx0c3RydWN0IGluZXRfYmluZDJfYnVja2V0ICoqdGIyX3JldCxcXG4tLVxcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmM9NTA2PWludCBpbmV0X2Nza19nZXRfcG9ydChzdHJ1Y3Qgc29jayAqc2ssIHVuc2lnbmVkIHNob3J0IHNudW0pXFxuLS1cXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTUyMS1cXHRpZiAoIXBvcnQpIHtcXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjUyMjpcXHRcXHRoZWFkID0gaW5ldF9jc2tfZmluZF9vcGVuX3BvcnQoc2ssIFxcdTAwMjZ0YiwgXFx1MDAyNnRiMiwgXFx1MDAyNmhlYWQyLCBcXHUwMDI2cG9ydCk7XFxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy01MjMtXFx0XFx0aWYgKCFoZWFkKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNlQyMTo1MDoxNC4yNjg5MjI5MVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE3MTQ2MzI0ODQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgS2VybmVsJ3MgUG9ydCBBbGxvY2F0aW9uIExvZ2ljKipcblxuT2theSwgc28gSSdtIHRyYWNpbmcgdGhlIHBvcnQgYWxsb2NhdGlvbiBsb2dpYyBoZXJlLCBhbmQgaXQgbG9va3MgbGlrZSBgaW5ldF9jc2tfZmluZF9vcGVuX3BvcnRgIGlzIHRoZSByZWFsIHdvcmtob3JzZSwgYmVpbmcgY2FsbGVkIGJ5IGBpbmV0X2Nza19nZXRfcG9ydGAuIGBpbmV0X2Nza19nZXRfcG9ydGAgaXMsIGluIHR1cm4sIGNhbGxlZCBieSBhIGZldyBrZXkgbmV0d29yayBmdW5jdGlvbnM6IGBpbmV0X2JpbmRgLCB3aGljaCBtYWtlcyBzZW5zZSBmb3IgYmluZGluZyBhIHNvY2tldCB0byBhIHBvcnQ7IGBpbmV0X2xpc3RlbmAsIGZvciBzZXR0aW5nIHVwIGEgbGlzdGVuaW5nIHNvY2tldCwgb2YgY291cnNlOyBhbmQgYGluZXRfaGFzaF9jb25uZWN0YCDigJMgb3IgcmF0aGVyLCBgX19pbmV0X2hhc2hfY29ubmVjdGAgd2hpY2ggc2VlbXMgdG8gaGF2ZSBpdHMgb3duIHNwZWNpYWwgbG9naWMsIGJ1dCBzdGlsbCwgdGhlIGBpbmV0X2Nza19nZXRfcG9ydGAgZnVuY3Rpb24gaXMgYSBjcnVjaWFsIHBpZWNlIG9mIHRoZSBwdXp6bGUsIGFuZCBzZWVtcyB0byBiZSB0aGUgYGdldF9wb3J0YCBjYWxsYmFjayBmb3IgVENQL0RDQ1AsIHdoaWNoIGlzIGludGVyZXN0aW5nLiBUaW1lIHRvIHplcm8gaW4gb24gdGhvc2UgY2FsbGVycyBvZiBgaW5ldF9jc2tfZ2V0X3BvcnRgIHRvIGZ1bGx5IGdyYXNwIHRoZSBjb250cm9sIGZsb3cuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ2NzksIk91dHB1dFRva2VucyI6MjIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMTQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjZUMjE6NTA6MzEuNDE1MjUwMzc4WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI1MjMxNjE2MzEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaW5ldF9jc2tfZ2V0X3BvcnRcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiaW5jbHVkZS9uZXQvaW5ldF9jb25uZWN0aW9uX3NvY2suaD0yNjI9c3RydWN0IHNvY2sgKmluZXRfY3NrX2FjY2VwdChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBwcm90b19hY2NlcHRfYXJnICphcmcpO1xcbmluY2x1ZGUvbmV0L2luZXRfY29ubmVjdGlvbl9zb2NrLmgtMjYzLVxcbmluY2x1ZGUvbmV0L2luZXRfY29ubmVjdGlvbl9zb2NrLmg6MjY0OmludCBpbmV0X2Nza19nZXRfcG9ydChzdHJ1Y3Qgc29jayAqc2ssIHVuc2lnbmVkIHNob3J0IHNudW0pO1xcbmluY2x1ZGUvbmV0L2luZXRfY29ubmVjdGlvbl9zb2NrLmgtMjY1LVxcbi0tXFxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYz00NDg9dm9pZCBpbmV0X2Nza191cGRhdGVfZmFzdHJldXNlKGNvbnN0IHN0cnVjdCBzb2NrICpzayxcXG4tLVxcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtNTA1LSAqL1xcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmM6NTA2OmludCBpbmV0X2Nza19nZXRfcG9ydChzdHJ1Y3Qgc29jayAqc2ssIHVuc2lnbmVkIHNob3J0IHNudW0pXFxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy01MDcte1xcbi0tXFxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy02MDAtfVxcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmM6NjAxOkVYUE9SVF9TWU1CT0xfR1BMKGluZXRfY3NrX2dldF9wb3J0KTtcXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTYwMi1cXG4tLVxcbm5ldC9pcHY0L2luZXRfaGFzaHRhYmxlcy5jPTEwNDA9aW50IF9faW5ldF9oYXNoX2Nvbm5lY3Qoc3RydWN0IGluZXRfdGltZXdhaXRfZGVhdGhfcm93ICpkZWF0aF9yb3csXFxuLS1cXG5uZXQvaXB2NC9pbmV0X2hhc2h0YWJsZXMuYy0xMDg4LVxcdC8qIEluIGZpcnN0IHBhc3Mgd2UgdHJ5IHBvcnRzIG9mIEBsb3cgcGFyaXR5Llxcbm5ldC9pcHY0L2luZXRfaGFzaHRhYmxlcy5jOjEwODk6XFx0ICogaW5ldF9jc2tfZ2V0X3BvcnQoKSBkb2VzIHRoZSBvcHBvc2l0ZSBjaG9pY2UuXFxubmV0L2lwdjQvaW5ldF9oYXNodGFibGVzLmMtMTA5MC1cXHQgKi9cXG4tLVxcbm5ldC9pcHY0L3RjcF9pcHY0LmM9MzMzNT1zdHJ1Y3QgcHJvdG8gdGNwX3Byb3QgPSB7XFxuLS1cXG5uZXQvaXB2NC90Y3BfaXB2NC5jLTMzNTctXFx0LnVuaGFzaFxcdFxcdFxcdD0gaW5ldF91bmhhc2gsXFxubmV0L2lwdjQvdGNwX2lwdjQuYzozMzU4OlxcdC5nZXRfcG9ydFxcdFxcdD0gaW5ldF9jc2tfZ2V0X3BvcnQsXFxubmV0L2lwdjQvdGNwX2lwdjQuYy0zMzU5LVxcdC5wdXRfcG9ydFxcdFxcdD0gaW5ldF9wdXRfcG9ydCxcXG4tLVxcbm5ldC9pcHY2L3RjcF9pcHY2LmM9MjI3Mj1zdHJ1Y3QgcHJvdG8gdGNwdjZfcHJvdCA9IHtcXG4tLVxcbm5ldC9pcHY2L3RjcF9pcHY2LmMtMjI5NC1cXHQudW5oYXNoXFx0XFx0XFx0PSBpbmV0X3VuaGFzaCxcXG5uZXQvaXB2Ni90Y3BfaXB2Ni5jOjIyOTU6XFx0LmdldF9wb3J0XFx0XFx0PSBpbmV0X2Nza19nZXRfcG9ydCxcXG5uZXQvaXB2Ni90Y3BfaXB2Ni5jLTIyOTYtXFx0LnB1dF9wb3J0XFx0XFx0PSBpbmV0X3B1dF9wb3J0LFxcbi0tXFxubmV0L21wdGNwL3Byb3RvY29sLmM9Mzc5MT1zdGF0aWMgaW50IG1wdGNwX2dldF9wb3J0KHN0cnVjdCBzb2NrICpzaywgdW5zaWduZWQgc2hvcnQgc251bSlcXG4tLVxcbm5ldC9tcHRjcC9wcm90b2NvbC5jLTM3OTgtXFxubmV0L21wdGNwL3Byb3RvY29sLmM6Mzc5OTpcXHRyZXR1cm4gaW5ldF9jc2tfZ2V0X3BvcnQobXNrLVxcdTAwM2VmaXJzdCwgc251bSk7XFxubmV0L21wdGNwL3Byb3RvY29sLmMtMzgwMC19XFxuLS1cXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jPTE1NDYyPXN0YXRpYyBpbnQgbmw4MDIxMV9wYXJzZV93b3dsYW5fdGNwKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcXG4tLVxcbm5ldC93aXJlbGVzcy9ubDgwMjExLmMtMTU1NTktXFx0fVxcbm5ldC93aXJlbGVzcy9ubDgwMjExLmM6MTU1NjA6XFx0aWYgKGluZXRfY3NrX2dldF9wb3J0KGNmZy1cXHUwMDNlc29jay1cXHUwMDNlc2ssIHBvcnQpKSB7XFxubmV0L3dpcmVsZXNzL25sODAyMTEuYy0xNTU2MS1cXHRcXHRzb2NrX3JlbGVhc2UoY2ZnLVxcdTAwM2Vzb2NrKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjZUMjE6NTA6MzMuOTM4NDE4MjE5WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjQ2NjE0OTM1OTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBJbXBhY3Qgb2YgdGhlIGBpbmV0X2Nza19maW5kX29wZW5fcG9ydGAgTW9kaWZpY2F0aW9uKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaW1tZWRpYXRlbHksIEkgc2VlIGl0J3MgdG91Y2hpbmcgYGluZXRfY3NrX2ZpbmRfb3Blbl9wb3J0YC4gVGhpcyBmdW5jdGlvbiBpcyBrZXk7IGl0J3MgdGhlIG9uZSBjYWxsZWQgd2hlbiB3ZSdyZSBkZWFsaW5nIHdpdGggYSBgYmluZCgpYCBjYWxsIHVzaW5nIHBvcnQgMC4gVGhhdCdzIGEgY2xhc3NpYyBzaWduYWwgZm9yIHRoZSBrZXJuZWwgdG8gYXNzaWduIGEgZHluYW1pYyBwb3J0LiBBbmQsIGJhc2VkIG9uIHRoZSBkZXNjcmlwdGlvbiwgdGhpcyBjaGFuZ2UgaW4gYGluZXRfY3NrX2ZpbmRfb3Blbl9wb3J0YCBzcGVjaWZpY2FsbHkgaW1wYWN0cyB0aGUgd2F5IHRoZSBzeXN0ZW0gZmluZHMgYW4gYXZhaWxhYmxlIHBvcnQgaW4gdGhhdCBzY2VuYXJpby4gU3BlY2lmaWNhbGx5IHRoZSBsb2dpYyBiZWhpbmQgaXRlcmF0aW5nIGxvY2FsIHBvcnRzLiBJdCBzZWVtcyB0byBkaXJlY3RseSByZWxhdGUgdG8gaG93IFRDUCAoYW5kIGJ5IGV4dGVuc2lvbiwgTVBUQ1ApIGhhbmRsZXMgdGhlc2UgZHluYW1pYyBwb3J0IGFzc2lnbm1lbnRzIHZpYSBgaW5ldF9jc2tfZ2V0X3BvcnRgLlxuXG5UaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGJlaGF2aW9yIG9mIGBpbmV0X2Nza19maW5kX29wZW5fcG9ydGAsIGFuZCBmcm9tIHdoYXQgSSBjYW4gdGVsbCwgaXQncyBwcmV0dHkgY29yZS4gVGhlIGZhY3QgdGhhdCBgaW5ldF9jc2tfZ2V0X3BvcnRgIGlzIHRoZSBgZ2V0X3BvcnRgIGNhbGxiYWNrIGZvciBUQ1AgaXMgcHJldHR5IHNpZ25pZmljYW50OyBpdCdzIHRoZSBoZWFydCBvZiBwb3J0IGFsbG9jYXRpb24uIFNvIGlmIHRoaXMgbG9naWMgaXMgbW9kaWZpZWQsIGl0J3MgZGVmaW5pdGVseSBzb21ldGhpbmcgdGhhdCB3YXJyYW50cyBmdXp6aW5nLiBJdCdzIGEgZnVuZGFtZW50YWwgY2hhbmdlIGluIGhvdyB0aGUga2VybmVsIGNob29zZXMgcG9ydHMuXG5cbk5vdywgYXMgYW4gZXhwZXJ0IGluIHRoaXMsIEkga25vdyBgQ09ORklHX0lORVRgIGFuZCBgQ09ORklHX1RDUGAgYXJlIGVzc2VudGlhbGx5IG1hbmRhdG9yeSBmb3IgYW55IG5ldHdvcmtpbmcgc3lzdGVtLiBJIGRvbid0IHNlZSBhbnkgZGVwZW5kZW5jaWVzIG9uIHNwZWNpZmljIG9ic2N1cmUgY29uZmlndXJhdGlvbnMgdGhhdCBjb3VsZCByZW5kZXIgdGhpcyBjb2RlIHVucmVhY2hhYmxlLiBUaGlzIG1vZGlmaWNhdGlvbiBpcyBkaXJlY3RseSByZWFjaGFibGUgdGhyb3VnaCB0aGUgbm9ybWFsIGZsb3cgb2YgY3JlYXRpbmcgYSBUQ1Agc29ja2V0IGFuZCBiaW5kaW5nIHRvIHBvcnQgemVybywgc28gZnV6emluZyB0aGlzIGlzIGEgZ29vZCBpZGVhLiBBbHJpZ2h0LCBJJ2xsIGdvIGFoZWFkIGFuZCBsb2cgdGhpcyBhcyBhbiBhY3Rpb25hYmxlIGl0ZW0gYW5kIG1vdmUgb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU5NjgsIk91dHB1dFRva2VucyI6MTE4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQ0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI2VDIxOjUwOjU4LjU5OTkxNDI1MVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM0NjY5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaW5ldF9jc2tfZmluZF9vcGVuX3BvcnRcIixcbiAgICBcImluZXRfY3NrX2dldF9wb3J0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGxvZ2ljIGZvciBmaW5kaW5nIGFuIG9wZW4gcG9ydCBmb3IgY29ubmVjdGlvbiBzb2NrZXRzIChlLmcuLCBUQ1AsIE1QVENQKSB3aGVuIGJpbmRpbmcgdG8gcG9ydCAwLiBJdCBjaGFuZ2VzIGhvdyBsb2NhbCBwb3J0cyBhcmUgaXRlcmF0ZWQgb3ZlciBiYXNlZCBvbiB3aGV0aGVyIGxvY2FsIHBvcnRzIGFyZSB1c2VkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgbmV0d29ya2luZyBzdGFjayBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJpbmV0X2Nza19maW5kX29wZW5fcG9ydFwiLFxuICAgIFwiaW5ldF9jc2tfZ2V0X3BvcnRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9naWMgZm9yIGZpbmRpbmcgYW4gb3BlbiBwb3J0IGZvciBjb25uZWN0aW9uIHNvY2tldHMgKGUuZy4sIFRDUCwgTVBUQ1ApIHdoZW4gYmluZGluZyB0byBwb3J0IDAuIEl0IGNoYW5nZXMgaG93IGxvY2FsIHBvcnRzIGFyZSBpdGVyYXRlZCBvdmVyIGJhc2VkIG9uIHdoZXRoZXIgbG9jYWwgcG9ydHMgYXJlIHVzZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBuZXR3b3JraW5nIHN0YWNrIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowp7vlp[0].run-triage(0) Phase: Succeeded StartedAt: 2026-06-26 21:32:26 +0000 UTC FinishedAt: 2026-06-26 21:50:59 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "805185b7c7a1069e407b6f7b3bc98e44d415f484", "config_name": "upstream-apparmor-kasan.config", "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "805185b7c7a1069e407b6f7b3bc98e44d415f484", "config_name": "upstream-apparmor-kasan.config", "series_id": "aeeee1d4-fa9a-4f23-aa78-8b343e8d9239" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "inet_csk_find_open_port", "inet_csk_get_port" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI2IDIxOjQ5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aW5ldF9jc2tfZmluZF9vcGVuX3BvcnQmIzM0OywKICAgICYjMzQ7aW5ldF9jc2tfZ2V0X3BvcnQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGxvZ2ljIGZvciBmaW5kaW5nIGFuIG9wZW4gcG9ydCBmb3IgY29ubmVjdGlvbiBzb2NrZXRzIChlLmcuLCBUQ1AsIE1QVENQKSB3aGVuIGJpbmRpbmcgdG8gcG9ydCAwLiBJdCBjaGFuZ2VzIGhvdyBsb2NhbCBwb3J0cyBhcmUgaXRlcmF0ZWQgb3ZlciBiYXNlZCBvbiB3aGV0aGVyIGxvY2FsIHBvcnRzIGFyZSB1c2VkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgbmV0d29ya2luZyBzdGFjayBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNiAyMTo0OTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGM5ODE3ZmNmMTIxM2YxNjdmZTFiYjgwMjU5NWFkMjBlODk3YTY4NjhcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEp1biAyNiAyMTo0OTozOCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jIGIvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suY1xuaW5kZXggNTY5MDJiYmE1NDgzOGIuLmFkOGFmNzBjOTJjYTNhIDEwMDY0NFxuLS0tIGEvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suY1xuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suY1xuQEAgLTMyMywxMyAmIzQzOzMyMywxNiBAQCBpbmV0X2Nza19maW5kX29wZW5fcG9ydChjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBpbmV0X2JpbmRfYnVja2V0ICoqdGJfcmV0LFxuIFx0c3RydWN0IGluZXRfYmluZDJfYnVja2V0ICp0YjI7XG4gXHRzdHJ1Y3QgaW5ldF9iaW5kX2J1Y2tldCAqdGI7XG4gXHR1MzIgcmVtYWluaW5nLCBvZmZzZXQ7XG4mIzQzO1x0Ym9vbCBsb2NhbF9wb3J0cztcbiBcdGJvb2wgcmVsYXggPSBmYWxzZTtcbiYjNDM7XHRpbnQgc3RlcDtcbiBcbiBcdGwzbWRldiA9IGluZXRfc2tfYm91bmRfbDNtZGV2KHNrKTtcbiBwb3J0c19leGhhdXN0ZWQ6XG4gXHRhdHRlbXB0X2hhbGYgPSAoc2stXHUwMDNlc2tfcmV1c2UgPT0gU0tfQ0FOX1JFVVNFKSA/IDEgOiAwO1xuIG90aGVyX2hhbGZfc2Nhbjpcbi1cdGluZXRfc2tfZ2V0X2xvY2FsX3BvcnRfcmFuZ2Uoc2ssIFx1MDAyNmxvdywgXHUwMDI2aGlnaCk7XG4mIzQzO1x0bG9jYWxfcG9ydHMgPSBpbmV0X3NrX2dldF9sb2NhbF9wb3J0X3JhbmdlKHNrLCBcdTAwMjZsb3csIFx1MDAyNmhpZ2gpO1xuJiM0MztcdHN0ZXAgPSBsb2NhbF9wb3J0cyA/IDEgOiAyO1xuIFx0aGlnaCYjNDM7JiM0Mzs7IC8qIFszMjc2OCwgNjA5OTldIC1cdTAwM2UgWzMyNzY4LCA2MTAwMFsgKi9cbiBcdGlmIChoaWdoIC0gbG93IFx1MDAzYyA0KVxuIFx0XHRhdHRlbXB0X2hhbGYgPSAwO1xuQEAgLTM0MiwxOCAmIzQzOzM0NSwxOSBAQCBpbmV0X2Nza19maW5kX29wZW5fcG9ydChjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBpbmV0X2JpbmRfYnVja2V0ICoqdGJfcmV0LFxuIFx0XHRcdGxvdyA9IGhhbGY7XG4gXHR9XG4gXHRyZW1haW5pbmcgPSBoaWdoIC0gbG93O1xuLVx0aWYgKGxpa2VseShyZW1haW5pbmcgXHUwMDNlIDEpKVxuJiM0MztcdGlmICghbG9jYWxfcG9ydHMgXHUwMDI2XHUwMDI2IHJlbWFpbmluZyBcdTAwM2UgMSlcbiBcdFx0cmVtYWluaW5nIFx1MDAyNj0gfjFVO1xuIFxuIFx0b2Zmc2V0ID0gZ2V0X3JhbmRvbV91MzJfYmVsb3cocmVtYWluaW5nKTtcbiBcdC8qIF9faW5ldF9oYXNoX2Nvbm5lY3QoKSBmYXZvcnMgcG9ydHMgaGF2aW5nIEBsb3cgcGFyaXR5XG4gXHQgKiBXZSBkbyB0aGUgb3Bwb3NpdGUgdG8gbm90IHBvbGx1dGUgY29ubmVjdCgpIHVzZXJzLlxuIFx0ICovXG4tXHRvZmZzZXQgfD0gMVU7XG4mIzQzO1x0aWYgKCFsb2NhbF9wb3J0cylcbiYjNDM7XHRcdG9mZnNldCB8PSAxVTtcbiBcbiBvdGhlcl9wYXJpdHlfc2NhbjpcbiBcdHBvcnQgPSBsb3cgJiM0Mzsgb2Zmc2V0O1xuLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgcmVtYWluaW5nOyBpICYjNDM7PSAyLCBwb3J0ICYjNDM7PSAyKSB7XG4mIzQzO1x0Zm9yIChpID0gMDsgaSBcdTAwM2MgcmVtYWluaW5nOyBpICYjNDM7PSBzdGVwLCBwb3J0ICYjNDM7PSBzdGVwKSB7XG4gXHRcdGlmICh1bmxpa2VseShwb3J0IFx1MDAzZT0gaGlnaCkpXG4gXHRcdFx0cG9ydCAtPSByZW1haW5pbmc7XG4gXHRcdGlmIChpbmV0X2lzX2xvY2FsX3Jlc2VydmVkX3BvcnQobmV0LCBwb3J0KSlcbkBAIC0zODQsOSAmIzQzOzM4OCwxMSBAQCBpbmV0X2Nza19maW5kX29wZW5fcG9ydChjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBpbmV0X2JpbmRfYnVja2V0ICoqdGJfcmV0LFxuIFx0XHRjb25kX3Jlc2NoZWQoKTtcbiBcdH1cbiBcbi1cdG9mZnNldC0tO1xuLVx0aWYgKCEob2Zmc2V0IFx1MDAyNiAxKSlcbi1cdFx0Z290byBvdGhlcl9wYXJpdHlfc2NhbjtcbiYjNDM7XHRpZiAoIWxvY2FsX3BvcnRzKSB7XG4mIzQzO1x0XHRvZmZzZXQtLTtcbiYjNDM7XHRcdGlmICghKG9mZnNldCBcdTAwMjYgMSkpXG4mIzQzO1x0XHRcdGdvdG8gb3RoZXJfcGFyaXR5X3NjYW47XG4mIzQzO1x0fVxuIFxuIFx0aWYgKGF0dGVtcHRfaGFsZiA9PSAxKSB7XG4gXHRcdC8qIE9LIHdlIG5vdyB0cnkgdGhlIHVwcGVyIGhhbGYgb2YgdGhlIHJhbmdlICovXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjYgMjE6NDk8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtpbmV0X2Nza19maW5kX29wZW5fcG9ydCYjMzQ7LAogICAgJiMzNDtpbmV0X2Nza19nZXRfcG9ydCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9naWMgZm9yIGZpbmRpbmcgYW4gb3BlbiBwb3J0IGZvciBjb25uZWN0aW9uIHNvY2tldHMgKGUuZy4sIFRDUCwgTVBUQ1ApIHdoZW4gYmluZGluZyB0byBwb3J0IDAuIEl0IGNoYW5nZXMgaG93IGxvY2FsIHBvcnRzIGFyZSBpdGVyYXRlZCBvdmVyIGJhc2VkIG9uIHdoZXRoZXIgbG9jYWwgcG9ydHMgYXJlIHVzZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBuZXR3b3JraW5nIHN0YWNrIGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBjOTgxN2ZjZjEyMTNmMTY3ZmUxYmI4MDI1OTVhZDIwZTg5N2E2ODY4CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBKdW4gMjYgMjE6NDk6MzggMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jIGIvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYwppbmRleCA1NjkwMmJiYTU0ODM4Yi4uYWQ4YWY3MGM5MmNhM2EgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYwpAQCAtMzIzLDEzICYjNDM7MzIzLDE2IEBAIGluZXRfY3NrX2ZpbmRfb3Blbl9wb3J0KGNvbnN0IHN0cnVjdCBzb2NrICpzaywgc3RydWN0IGluZXRfYmluZF9idWNrZXQgKip0Yl9yZXQsCiAJc3RydWN0IGluZXRfYmluZDJfYnVja2V0ICp0YjI7CiAJc3RydWN0IGluZXRfYmluZF9idWNrZXQgKnRiOwogCXUzMiByZW1haW5pbmcsIG9mZnNldDsKJiM0MzsJYm9vbCBsb2NhbF9wb3J0czsKIAlib29sIHJlbGF4ID0gZmFsc2U7CiYjNDM7CWludCBzdGVwOwogCiAJbDNtZGV2ID0gaW5ldF9za19ib3VuZF9sM21kZXYoc2spOwogcG9ydHNfZXhoYXVzdGVkOgogCWF0dGVtcHRfaGFsZiA9IChzay0mZ3Q7c2tfcmV1c2UgPT0gU0tfQ0FOX1JFVVNFKSA/IDEgOiAwOwogb3RoZXJfaGFsZl9zY2FuOgotCWluZXRfc2tfZ2V0X2xvY2FsX3BvcnRfcmFuZ2Uoc2ssICZhbXA7bG93LCAmYW1wO2hpZ2gpOwomIzQzOwlsb2NhbF9wb3J0cyA9IGluZXRfc2tfZ2V0X2xvY2FsX3BvcnRfcmFuZ2Uoc2ssICZhbXA7bG93LCAmYW1wO2hpZ2gpOwomIzQzOwlzdGVwID0gbG9jYWxfcG9ydHMgPyAxIDogMjsKIAloaWdoJiM0MzsmIzQzOzsgLyogWzMyNzY4LCA2MDk5OV0gLSZndDsgWzMyNzY4LCA2MTAwMFsgKi8KIAlpZiAoaGlnaCAtIGxvdyAmbHQ7IDQpCiAJCWF0dGVtcHRfaGFsZiA9IDA7CkBAIC0zNDIsMTggJiM0MzszNDUsMTkgQEAgaW5ldF9jc2tfZmluZF9vcGVuX3BvcnQoY29uc3Qgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgaW5ldF9iaW5kX2J1Y2tldCAqKnRiX3JldCwKIAkJCWxvdyA9IGhhbGY7CiAJfQogCXJlbWFpbmluZyA9IGhpZ2ggLSBsb3c7Ci0JaWYgKGxpa2VseShyZW1haW5pbmcgJmd0OyAxKSkKJiM0MzsJaWYgKCFsb2NhbF9wb3J0cyAmYW1wOyZhbXA7IHJlbWFpbmluZyAmZ3Q7IDEpCiAJCXJlbWFpbmluZyAmYW1wOz0gfjFVOwogCiAJb2Zmc2V0ID0gZ2V0X3JhbmRvbV91MzJfYmVsb3cocmVtYWluaW5nKTsKIAkvKiBfX2luZXRfaGFzaF9jb25uZWN0KCkgZmF2b3JzIHBvcnRzIGhhdmluZyBAbG93IHBhcml0eQogCSAqIFdlIGRvIHRoZSBvcHBvc2l0ZSB0byBub3QgcG9sbHV0ZSBjb25uZWN0KCkgdXNlcnMuCiAJICovCi0Jb2Zmc2V0IHw9IDFVOwomIzQzOwlpZiAoIWxvY2FsX3BvcnRzKQomIzQzOwkJb2Zmc2V0IHw9IDFVOwogCiBvdGhlcl9wYXJpdHlfc2NhbjoKIAlwb3J0ID0gbG93ICYjNDM7IG9mZnNldDsKLQlmb3IgKGkgPSAwOyBpICZsdDsgcmVtYWluaW5nOyBpICYjNDM7PSAyLCBwb3J0ICYjNDM7PSAyKSB7CiYjNDM7CWZvciAoaSA9IDA7IGkgJmx0OyByZW1haW5pbmc7IGkgJiM0Mzs9IHN0ZXAsIHBvcnQgJiM0Mzs9IHN0ZXApIHsKIAkJaWYgKHVubGlrZWx5KHBvcnQgJmd0Oz0gaGlnaCkpCiAJCQlwb3J0IC09IHJlbWFpbmluZzsKIAkJaWYgKGluZXRfaXNfbG9jYWxfcmVzZXJ2ZWRfcG9ydChuZXQsIHBvcnQpKQpAQCAtMzg0LDkgJiM0MzszODgsMTEgQEAgaW5ldF9jc2tfZmluZF9vcGVuX3BvcnQoY29uc3Qgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgaW5ldF9iaW5kX2J1Y2tldCAqKnRiX3JldCwKIAkJY29uZF9yZXNjaGVkKCk7CiAJfQogCi0Jb2Zmc2V0LS07Ci0JaWYgKCEob2Zmc2V0ICZhbXA7IDEpKQotCQlnb3RvIG90aGVyX3Bhcml0eV9zY2FuOwomIzQzOwlpZiAoIWxvY2FsX3BvcnRzKSB7CiYjNDM7CQlvZmZzZXQtLTsKJiM0MzsJCWlmICghKG9mZnNldCAmYW1wOyAxKSkKJiM0MzsJCQlnb3RvIG90aGVyX3Bhcml0eV9zY2FuOwomIzQzOwl9CiAKIAlpZiAoYXR0ZW1wdF9oYWxmID09IDEpIHsKIAkJLyogT0sgd2Ugbm93IHRyeSB0aGUgdXBwZXIgaGFsZiBvZiB0aGUgcmFuZ2UgKi8KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjYgMjE6NDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjQ1MAoJCQkJCQkJb3V0cHV0OiAyNQoJCQkJCQkJdGhvdWdodHM6IDIyNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFBvcnQgQWxsb2NhdGlvbiBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGRpZ2dpbmcgaW50byBgaW5ldF9jc2tfZmluZF9vcGVuX3BvcnRgIHdpdGhpbiBgbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suY2Ag4oCTIHRoYXQmIzM5O3MgdGhlIGNvcmUgb2YgaG93IElQdjQgKGFuZCBieSBleHRlbnNpb24sIElQdjYsIEkgc3VzcGVjdCkgY29ubmVjdGlvbiBzb2NrZXRzIGFsbG9jYXRlIHBvcnRzLiBUaGlzIGlzIGEgcHJldHR5IGZ1bmRhbWVudGFsIHBpZWNlIG9mIHRoZSBuZXR3b3JraW5nIHN0YWNrLiBJdCYjMzk7cyB0b3VjaGluZyB0aGUgbG9naWMgZm9yIGl0ZXJhdGluZyB0aHJvdWdoIGxvY2FsIHBvcnRzIHRvIGZpbmQgYW4gYXZhaWxhYmxlIG9uZSwgd2hpY2ggaXMgc29tZXRoaW5nIEkmIzM5O3ZlIHNwZW50IHBsZW50eSBvZiB0aW1lIG9wdGltaXppbmcgYW5kIGRlYnVnZ2luZyBvdmVyIHRoZSB5ZWFycy4KClRoZSBjcnVjaWFsIGJpdCBzZWVtcyB0byBiZSB0aGUgaW50cm9kdWN0aW9uIG9mIGBpbmV0X3NrX2dldF9sb2NhbF9wb3J0X3JhbmdlKHNrLCAmYW1wO2xvdywgJmFtcDtoaWdoKWAuIFRoaXMgZnVuY3Rpb24mIzM5O3MgcmV0dXJuIHZhbHVlIGlzIG5vdyBkaWN0YXRpbmcgd2hldGhlciB3ZSBpdGVyYXRlIHNlcXVlbnRpYWxseSAoYHN0ZXAgPSAxYCkgb3IgdXNlIHRoZSBwYXJpdHkgc2NhbiAoYHN0ZXAgPSAyYCkuICBJZiBgbG9jYWxfcG9ydHNgIGlzIHRydWUgdGhlbiBgc3RlcGAgaXMgYDFgLCBtZWFuaW5nIHdlIGNoZWNrIHBvcnRzIHNlcXVlbnRpYWxseS4gSWYgYGxvY2FsX3BvcnRzYCBpcyBmYWxzZSwgaXQgZmxpcHMgdG8gdGhlIHBhcml0eSBzY2FuLiBTbywgaWYgd2UgKmFyZSogdXNpbmcgbG9jYWwgcG9ydHMsIHRoZSBzY2FubmluZyBpcyBzZXF1ZW50aWFsLiBJZiB3ZSYjMzk7cmUgbm90IHVzaW5nIGxvY2FsIHBvcnRzLCB0aGUgc2NhbiBkb2VzIGEgcGFyaXR5IHNjYW4uIFRoaXMgc2VlbXMgbGlrZSBpdCB3b3VsZCBhZmZlY3Qgc2NlbmFyaW9zIHdoZXJlIHRoZSBwb3J0IGlzIHNldCBleHBsaWNpdGx5IGJ5IHRoZSB1c2VyLCB2cy4gYmVpbmcgZHluYW1pY2FsbHkgYWxsb2NhdGVkLgoKVGhhdCBgcGFyaXR5IHNjYW5gIGltcGxpZXMgaXQmIzM5O3MgdHJ5aW5nIHRvIHF1aWNrbHkgZmluZCBhIGZyZWUgcG9ydCBieSBqdW1waW5nIGFjcm9zcyBldmVuL29kZCBwb3J0IG51bWJlcnMsIHdoaWNoIG1ha2VzIHNlbnNlIHRvIHBvdGVudGlhbGx5IG1pdGlnYXRlIGNvbGxpc2lvbnMgaW4gc29tZSBzY2VuYXJpb3MuIEl0JiMzOTtzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIHdoaWNoIGltcGxpZXMgYSBwb3RlbnRpYWwgaW1wYWN0IG9uIGhvdyBjb25uZWN0aW9ucyBhcmUgZXN0YWJsaXNoZWQsIGFuZCBob3cgbGlrZWx5IHdlIGFyZSB0byBzZWUgcG9ydCBleGhhdXN0aW9uLiBUaGlzIGlzIHJlYWNoYWJsZSB0aHJvdWdoIGFueSBvcGVyYXRpb24gY2FsbGluZyBgYmluZCgpYCwgYGNvbm5lY3QoKWAsIG9yIGBsaXN0ZW4oKWAgd2hlcmUgYSBwb3J0IGlzIGFsbG9jYXRlZC4KCkkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgYGluZXRfc2tfZ2V0X2xvY2FsX3BvcnRfcmFuZ2VgIGFjdHVhbGx5ICpkb2VzKi4gVGhlIGRvY3VtZW50YXRpb24gd2lsbCBsaWtlbHkgYmUgaW5hZGVxdWF0ZSBmb3Igc3VjaCBhIGNvcmUgZnVuY3Rpb24uIFRpbWUgdG8gc2VlIHdoYXQgSSBjYW4gZmluZCB3aXRoIGBncmVwcGVyYCBhbmQgc2VlIHdoYXQgdGhlIGZ1bmN0aW9uIGFjdHVhbGx5IHJldHVybnMsIGFuZCB0aGUgY29uZGl0aW9ucyB1bmRlciB3aGljaCBpdCByZXR1cm5zIHRoZXNlIHZhbHVlcy4gVGhhdCB3aWxsIGdpdmUgbWUgdGhlIGNvbnRleHQgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgY2hhbmdlIGlzIGEgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQsIGEgYnVnIGZpeCwgb3Igc29tZXRoaW5nIGVsc2UgZW50aXJlbHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjYgMjE6NDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aW5ldF9za19nZXRfbG9jYWxfcG9ydF9yYW5nZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtpbmNsdWRlL25ldC9pcC5oPTM1Mz1zdGF0aWMgaW5saW5lIHZvaWQgaW5ldF9nZXRfbG9jYWxfcG9ydF9yYW5nZShjb25zdCBzdHJ1Y3QgbmV0ICpuZXQsIGludCAqbG93LCBpbnQgKmhpZ2gpXG4tLVxuaW5jbHVkZS9uZXQvaXAuaC0zNTktfVxuaW5jbHVkZS9uZXQvaXAuaDozNjA6Ym9vbCBpbmV0X3NrX2dldF9sb2NhbF9wb3J0X3JhbmdlKGNvbnN0IHN0cnVjdCBzb2NrICpzaywgaW50ICpsb3csIGludCAqaGlnaCk7XG5pbmNsdWRlL25ldC9pcC5oLTM2MS1cbi0tXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jPTExMT1ib29sIGluZXRfcmN2X3NhZGRyX2FueShjb25zdCBzdHJ1Y3Qgc29jayAqc2spXG4tLVxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy0xMjAtLyoqXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjEyMTogKlx0aW5ldF9za19nZXRfbG9jYWxfcG9ydF9yYW5nZSAtIGZldGNoIGVwaGVtZXJhbCBwb3J0cyByYW5nZVxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy0xMjItICpcdEBzazogc29ja2V0XG4tLVxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy0xMjktICovXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjEzMDpib29sIGluZXRfc2tfZ2V0X2xvY2FsX3BvcnRfcmFuZ2UoY29uc3Qgc3RydWN0IHNvY2sgKnNrLCBpbnQgKmxvdywgaW50ICpoaWdoKVxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy0xMzEte1xuLS1cbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtMTUzLX1cbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmM6MTU0OkVYUE9SVF9TWU1CT0woaW5ldF9za19nZXRfbG9jYWxfcG9ydF9yYW5nZSk7XG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTE1NS1cbi0tXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jPTMxNT1pbmV0X2Nza19maW5kX29wZW5fcG9ydChjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBpbmV0X2JpbmRfYnVja2V0ICoqdGJfcmV0LFxuLS1cbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtMzMzLW90aGVyX2hhbGZfc2Nhbjpcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmM6MzM0Olx0bG9jYWxfcG9ydHMgPSBpbmV0X3NrX2dldF9sb2NhbF9wb3J0X3JhbmdlKHNrLCBcdTAwMjZsb3csIFx1MDAyNmhpZ2gpO1xubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy0zMzUtXHRzdGVwID0gbG9jYWxfcG9ydHMgPyAxIDogMjtcbi0tXG5uZXQvaXB2NC9pbmV0X2hhc2h0YWJsZXMuYz0xMDQwPWludCBfX2luZXRfaGFzaF9jb25uZWN0KHN0cnVjdCBpbmV0X3RpbWV3YWl0X2RlYXRoX3JvdyAqZGVhdGhfcm93LFxuLS1cbm5ldC9pcHY0L2luZXRfaGFzaHRhYmxlcy5jLTEwNzAtXG5uZXQvaXB2NC9pbmV0X2hhc2h0YWJsZXMuYzoxMDcxOlx0bG9jYWxfcG9ydHMgPSBpbmV0X3NrX2dldF9sb2NhbF9wb3J0X3JhbmdlKHNrLCBcdTAwMjZsb3csIFx1MDAyNmhpZ2gpO1xubmV0L2lwdjQvaW5ldF9oYXNodGFibGVzLmMtMTA3Mi1cdHN0ZXAgPSBsb2NhbF9wb3J0cyA/IDEgOiAyO1xuLS1cbm5ldC9pcHY0L3VkcC5jPTIzMT1pbnQgdWRwX2xpYl9nZXRfcG9ydChzdHJ1Y3Qgc29jayAqc2ssIHVuc2lnbmVkIHNob3J0IHNudW0sXG4tLVxubmV0L2lwdjQvdWRwLmMtMjQ2LVxubmV0L2lwdjQvdWRwLmM6MjQ3Olx0XHRpbmV0X3NrX2dldF9sb2NhbF9wb3J0X3JhbmdlKHNrLCBcdTAwMjZsb3csIFx1MDAyNmhpZ2gpO1xubmV0L2lwdjQvdWRwLmMtMjQ4LVx0XHRyZW1haW5pbmcgPSAoaGlnaCAtIGxvdykgJiM0MzsgMTtcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYz04NDA3PXN0YXRpYyBpbnQgc2N0cF9nZXRfcG9ydF9sb2NhbChzdHJ1Y3Qgc29jayAqc2ssIHVuaW9uIHNjdHBfYWRkciAqYWRkcilcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy04NDI2LVxubmV0L3NjdHAvc29ja2V0LmM6ODQyNzpcdFx0aW5ldF9za19nZXRfbG9jYWxfcG9ydF9yYW5nZShzaywgXHUwMDI2bG93LCBcdTAwMjZoaWdoKTtcbm5ldC9zY3RwL3NvY2tldC5jLTg0MjgtXHRcdHJlbWFpbmluZyA9IChoaWdoIC0gbG93KSAmIzQzOyAxO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI2IDIxOjQ5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQwNjkKCQkJCQkJCW91dHB1dDogMjQKCQkJCQkJCXRob3VnaHRzOiAxMjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyBhaW1lZCBzcXVhcmVseSBhdCBgaW5ldF9jc2tfZmluZF9vcGVuX3BvcnRgLiBUaGF0JiMzOTtzIHRoZSBmdW5jdGlvbiByZXNwb25zaWJsZSBmb3IgaHVudGluZyBkb3duIGF2YWlsYWJsZSBwb3J0cyBmb3IgY29ubmVjdGlvbi1vcmllbnRlZCBzb2NrZXRzIOKAkyBUQ1AsIERDQ1AsIFNDVFAsIHRoZSB1c3VhbCBzdXNwZWN0cy4gSSBrbm93IHRoaXMgZnVuY3Rpb24gaW50aW1hdGVseTsgaXQmIzM5O3MgZGVmaW5pdGVseSBpbiBwbGF5IGFuZCBmdWxseSBmdW5jdGlvbmFsLiBDb25zaWRlcmluZyBpdHMgY29yZSByb2xlIGluIG5ldHdvcmsgY29ubmVjdGlvbiBlc3RhYmxpc2htZW50LCB0aGlzIHBhdGNoIGhhcyB0aGUgcG90ZW50aWFsIHRvIGV4cG9zZSB2dWxuZXJhYmlsaXRpZXMuIEl0JiMzOTtzIGEgcHJpbWUgdGFyZ2V0IGZvciBmdXp6aW5nLiBHaXZlbiB0aGF0LCBJJiMzOTttIGdvaW5nIHRvIHNldCBgV29ydGhGdXp6aW5nPXRydWVgLgoKTm93LCBiZXlvbmQgYGluZXRfY3NrX2ZpbmRfb3Blbl9wb3J0YCBpdHNlbGYsIGxldCYjMzk7cyB0YWtlIGEgbG9vayBhdCBvdGhlciBzeW1ib2xzLiBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIHRoZSBjYWxsIHNpdGVzIGZvciBtb3JlIGNvbnRleHQuIGBpbmV0X3NrX2dldF9sb2NhbF9wb3J0X3JhbmdlYCBpcyBhIHBvc3NpYmlsaXR5IHRvIGJlIGNvbnNpZGVyZWQsIGFsdGhvdWdoIGl0JiMzOTtzIG5vdCBkaXJlY3RseSBtb2RpZmllZCwgc28gSSYjMzk7bGwgbmVlZCB0byByZXZpZXcuIEkmIzM5O2xsIG5lZWQgdG8gdHJhY2UgdGhlIGNhbGwgcGF0aHMgdG8gdW5kZXJzdGFuZCBhbGwgcG9zc2libGUgaW1wYWN0cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNiAyMTo1MDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpbmV0X2Nza19maW5kX29wZW5fcG9ydCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jPTMxND1zdGF0aWMgc3RydWN0IGluZXRfYmluZF9oYXNoYnVja2V0ICpcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmM6MzE1OmluZXRfY3NrX2ZpbmRfb3Blbl9wb3J0KGNvbnN0IHN0cnVjdCBzb2NrICpzaywgc3RydWN0IGluZXRfYmluZF9idWNrZXQgKip0Yl9yZXQsXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTMxNi1cdFx0XHRzdHJ1Y3QgaW5ldF9iaW5kMl9idWNrZXQgKip0YjJfcmV0LFxuLS1cbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmM9NTA2PWludCBpbmV0X2Nza19nZXRfcG9ydChzdHJ1Y3Qgc29jayAqc2ssIHVuc2lnbmVkIHNob3J0IHNudW0pXG4tLVxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy01MjEtXHRpZiAoIXBvcnQpIHtcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmM6NTIyOlx0XHRoZWFkID0gaW5ldF9jc2tfZmluZF9vcGVuX3BvcnQoc2ssIFx1MDAyNnRiLCBcdTAwMjZ0YjIsIFx1MDAyNmhlYWQyLCBcdTAwMjZwb3J0KTtcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtNTIzLVx0XHRpZiAoIWhlYWQpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjYgMjE6NTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDY3OQoJCQkJCQkJb3V0cHV0OiAyMgoJCQkJCQkJdGhvdWdodHM6IDExNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEtlcm5lbCYjMzk7cyBQb3J0IEFsbG9jYXRpb24gTG9naWMqKgoKT2theSwgc28gSSYjMzk7bSB0cmFjaW5nIHRoZSBwb3J0IGFsbG9jYXRpb24gbG9naWMgaGVyZSwgYW5kIGl0IGxvb2tzIGxpa2UgYGluZXRfY3NrX2ZpbmRfb3Blbl9wb3J0YCBpcyB0aGUgcmVhbCB3b3JraG9yc2UsIGJlaW5nIGNhbGxlZCBieSBgaW5ldF9jc2tfZ2V0X3BvcnRgLiBgaW5ldF9jc2tfZ2V0X3BvcnRgIGlzLCBpbiB0dXJuLCBjYWxsZWQgYnkgYSBmZXcga2V5IG5ldHdvcmsgZnVuY3Rpb25zOiBgaW5ldF9iaW5kYCwgd2hpY2ggbWFrZXMgc2Vuc2UgZm9yIGJpbmRpbmcgYSBzb2NrZXQgdG8gYSBwb3J0OyBgaW5ldF9saXN0ZW5gLCBmb3Igc2V0dGluZyB1cCBhIGxpc3RlbmluZyBzb2NrZXQsIG9mIGNvdXJzZTsgYW5kIGBpbmV0X2hhc2hfY29ubmVjdGAg4oCTIG9yIHJhdGhlciwgYF9faW5ldF9oYXNoX2Nvbm5lY3RgIHdoaWNoIHNlZW1zIHRvIGhhdmUgaXRzIG93biBzcGVjaWFsIGxvZ2ljLCBidXQgc3RpbGwsIHRoZSBgaW5ldF9jc2tfZ2V0X3BvcnRgIGZ1bmN0aW9uIGlzIGEgY3J1Y2lhbCBwaWVjZSBvZiB0aGUgcHV6emxlLCBhbmQgc2VlbXMgdG8gYmUgdGhlIGBnZXRfcG9ydGAgY2FsbGJhY2sgZm9yIFRDUC9EQ0NQLCB3aGljaCBpcyBpbnRlcmVzdGluZy4gVGltZSB0byB6ZXJvIGluIG9uIHRob3NlIGNhbGxlcnMgb2YgYGluZXRfY3NrX2dldF9wb3J0YCB0byBmdWxseSBncmFzcCB0aGUgY29udHJvbCBmbG93LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI2IDIxOjUwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2luZXRfY3NrX2dldF9wb3J0JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2luY2x1ZGUvbmV0L2luZXRfY29ubmVjdGlvbl9zb2NrLmg9MjYyPXN0cnVjdCBzb2NrICppbmV0X2Nza19hY2NlcHQoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgcHJvdG9fYWNjZXB0X2FyZyAqYXJnKTtcbmluY2x1ZGUvbmV0L2luZXRfY29ubmVjdGlvbl9zb2NrLmgtMjYzLVxuaW5jbHVkZS9uZXQvaW5ldF9jb25uZWN0aW9uX3NvY2suaDoyNjQ6aW50IGluZXRfY3NrX2dldF9wb3J0KHN0cnVjdCBzb2NrICpzaywgdW5zaWduZWQgc2hvcnQgc251bSk7XG5pbmNsdWRlL25ldC9pbmV0X2Nvbm5lY3Rpb25fc29jay5oLTI2NS1cbi0tXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jPTQ0OD12b2lkIGluZXRfY3NrX3VwZGF0ZV9mYXN0cmV1c2UoY29uc3Qgc3RydWN0IHNvY2sgKnNrLFxuLS1cbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtNTA1LSAqL1xubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYzo1MDY6aW50IGluZXRfY3NrX2dldF9wb3J0KHN0cnVjdCBzb2NrICpzaywgdW5zaWduZWQgc2hvcnQgc251bSlcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtNTA3LXtcbi0tXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTYwMC19XG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjYwMTpFWFBPUlRfU1lNQk9MX0dQTChpbmV0X2Nza19nZXRfcG9ydCk7XG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTYwMi1cbi0tXG5uZXQvaXB2NC9pbmV0X2hhc2h0YWJsZXMuYz0xMDQwPWludCBfX2luZXRfaGFzaF9jb25uZWN0KHN0cnVjdCBpbmV0X3RpbWV3YWl0X2RlYXRoX3JvdyAqZGVhdGhfcm93LFxuLS1cbm5ldC9pcHY0L2luZXRfaGFzaHRhYmxlcy5jLTEwODgtXHQvKiBJbiBmaXJzdCBwYXNzIHdlIHRyeSBwb3J0cyBvZiBAbG93IHBhcml0eS5cbm5ldC9pcHY0L2luZXRfaGFzaHRhYmxlcy5jOjEwODk6XHQgKiBpbmV0X2Nza19nZXRfcG9ydCgpIGRvZXMgdGhlIG9wcG9zaXRlIGNob2ljZS5cbm5ldC9pcHY0L2luZXRfaGFzaHRhYmxlcy5jLTEwOTAtXHQgKi9cbi0tXG5uZXQvaXB2NC90Y3BfaXB2NC5jPTMzMzU9c3RydWN0IHByb3RvIHRjcF9wcm90ID0ge1xuLS1cbm5ldC9pcHY0L3RjcF9pcHY0LmMtMzM1Ny1cdC51bmhhc2hcdFx0XHQ9IGluZXRfdW5oYXNoLFxubmV0L2lwdjQvdGNwX2lwdjQuYzozMzU4Olx0LmdldF9wb3J0XHRcdD0gaW5ldF9jc2tfZ2V0X3BvcnQsXG5uZXQvaXB2NC90Y3BfaXB2NC5jLTMzNTktXHQucHV0X3BvcnRcdFx0PSBpbmV0X3B1dF9wb3J0LFxuLS1cbm5ldC9pcHY2L3RjcF9pcHY2LmM9MjI3Mj1zdHJ1Y3QgcHJvdG8gdGNwdjZfcHJvdCA9IHtcbi0tXG5uZXQvaXB2Ni90Y3BfaXB2Ni5jLTIyOTQtXHQudW5oYXNoXHRcdFx0PSBpbmV0X3VuaGFzaCxcbm5ldC9pcHY2L3RjcF9pcHY2LmM6MjI5NTpcdC5nZXRfcG9ydFx0XHQ9IGluZXRfY3NrX2dldF9wb3J0LFxubmV0L2lwdjYvdGNwX2lwdjYuYy0yMjk2LVx0LnB1dF9wb3J0XHRcdD0gaW5ldF9wdXRfcG9ydCxcbi0tXG5uZXQvbXB0Y3AvcHJvdG9jb2wuYz0zNzkxPXN0YXRpYyBpbnQgbXB0Y3BfZ2V0X3BvcnQoc3RydWN0IHNvY2sgKnNrLCB1bnNpZ25lZCBzaG9ydCBzbnVtKVxuLS1cbm5ldC9tcHRjcC9wcm90b2NvbC5jLTM3OTgtXG5uZXQvbXB0Y3AvcHJvdG9jb2wuYzozNzk5Olx0cmV0dXJuIGluZXRfY3NrX2dldF9wb3J0KG1zay1cdTAwM2VmaXJzdCwgc251bSk7XG5uZXQvbXB0Y3AvcHJvdG9jb2wuYy0zODAwLX1cbi0tXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jPTE1NDYyPXN0YXRpYyBpbnQgbmw4MDIxMV9wYXJzZV93b3dsYW5fdGNwKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcbi0tXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jLTE1NTU5LVx0fVxubmV0L3dpcmVsZXNzL25sODAyMTEuYzoxNTU2MDpcdGlmIChpbmV0X2Nza19nZXRfcG9ydChjZmctXHUwMDNlc29jay1cdTAwM2VzaywgcG9ydCkpIHtcbm5ldC93aXJlbGVzcy9ubDgwMjExLmMtMTU1NjEtXHRcdHNvY2tfcmVsZWFzZShjZmctXHUwMDNlc29jayk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjYgMjE6NTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTk2OAoJCQkJCQkJb3V0cHV0OiAxMTgKCQkJCQkJCXRob3VnaHRzOiAyNDQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBJbXBhY3Qgb2YgdGhlIGBpbmV0X2Nza19maW5kX29wZW5fcG9ydGAgTW9kaWZpY2F0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpbW1lZGlhdGVseSwgSSBzZWUgaXQmIzM5O3MgdG91Y2hpbmcgYGluZXRfY3NrX2ZpbmRfb3Blbl9wb3J0YC4gVGhpcyBmdW5jdGlvbiBpcyBrZXk7IGl0JiMzOTtzIHRoZSBvbmUgY2FsbGVkIHdoZW4gd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBhIGBiaW5kKClgIGNhbGwgdXNpbmcgcG9ydCAwLiBUaGF0JiMzOTtzIGEgY2xhc3NpYyBzaWduYWwgZm9yIHRoZSBrZXJuZWwgdG8gYXNzaWduIGEgZHluYW1pYyBwb3J0LiBBbmQsIGJhc2VkIG9uIHRoZSBkZXNjcmlwdGlvbiwgdGhpcyBjaGFuZ2UgaW4gYGluZXRfY3NrX2ZpbmRfb3Blbl9wb3J0YCBzcGVjaWZpY2FsbHkgaW1wYWN0cyB0aGUgd2F5IHRoZSBzeXN0ZW0gZmluZHMgYW4gYXZhaWxhYmxlIHBvcnQgaW4gdGhhdCBzY2VuYXJpby4gU3BlY2lmaWNhbGx5IHRoZSBsb2dpYyBiZWhpbmQgaXRlcmF0aW5nIGxvY2FsIHBvcnRzLiBJdCBzZWVtcyB0byBkaXJlY3RseSByZWxhdGUgdG8gaG93IFRDUCAoYW5kIGJ5IGV4dGVuc2lvbiwgTVBUQ1ApIGhhbmRsZXMgdGhlc2UgZHluYW1pYyBwb3J0IGFzc2lnbm1lbnRzIHZpYSBgaW5ldF9jc2tfZ2V0X3BvcnRgLgoKVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBiZWhhdmlvciBvZiBgaW5ldF9jc2tfZmluZF9vcGVuX3BvcnRgLCBhbmQgZnJvbSB3aGF0IEkgY2FuIHRlbGwsIGl0JiMzOTtzIHByZXR0eSBjb3JlLiBUaGUgZmFjdCB0aGF0IGBpbmV0X2Nza19nZXRfcG9ydGAgaXMgdGhlIGBnZXRfcG9ydGAgY2FsbGJhY2sgZm9yIFRDUCBpcyBwcmV0dHkgc2lnbmlmaWNhbnQ7IGl0JiMzOTtzIHRoZSBoZWFydCBvZiBwb3J0IGFsbG9jYXRpb24uIFNvIGlmIHRoaXMgbG9naWMgaXMgbW9kaWZpZWQsIGl0JiMzOTtzIGRlZmluaXRlbHkgc29tZXRoaW5nIHRoYXQgd2FycmFudHMgZnV6emluZy4gSXQmIzM5O3MgYSBmdW5kYW1lbnRhbCBjaGFuZ2UgaW4gaG93IHRoZSBrZXJuZWwgY2hvb3NlcyBwb3J0cy4KCk5vdywgYXMgYW4gZXhwZXJ0IGluIHRoaXMsIEkga25vdyBgQ09ORklHX0lORVRgIGFuZCBgQ09ORklHX1RDUGAgYXJlIGVzc2VudGlhbGx5IG1hbmRhdG9yeSBmb3IgYW55IG5ldHdvcmtpbmcgc3lzdGVtLiBJIGRvbiYjMzk7dCBzZWUgYW55IGRlcGVuZGVuY2llcyBvbiBzcGVjaWZpYyBvYnNjdXJlIGNvbmZpZ3VyYXRpb25zIHRoYXQgY291bGQgcmVuZGVyIHRoaXMgY29kZSB1bnJlYWNoYWJsZS4gVGhpcyBtb2RpZmljYXRpb24gaXMgZGlyZWN0bHkgcmVhY2hhYmxlIHRocm91Z2ggdGhlIG5vcm1hbCBmbG93IG9mIGNyZWF0aW5nIGEgVENQIHNvY2tldCBhbmQgYmluZGluZyB0byBwb3J0IHplcm8sIHNvIGZ1enppbmcgdGhpcyBpcyBhIGdvb2QgaWRlYS4gQWxyaWdodCwgSSYjMzk7bGwgZ28gYWhlYWQgYW5kIGxvZyB0aGlzIGFzIGFuIGFjdGlvbmFibGUgaXRlbSBhbmQgbW92ZSBvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjYgMjE6NTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2luZXRfY3NrX2ZpbmRfb3Blbl9wb3J0JiMzNDssCiAgICAmIzM0O2luZXRfY3NrX2dldF9wb3J0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsb2dpYyBmb3IgZmluZGluZyBhbiBvcGVuIHBvcnQgZm9yIGNvbm5lY3Rpb24gc29ja2V0cyAoZS5nLiwgVENQLCBNUFRDUCkgd2hlbiBiaW5kaW5nIHRvIHBvcnQgMC4gSXQgY2hhbmdlcyBob3cgbG9jYWwgcG9ydHMgYXJlIGl0ZXJhdGVkIG92ZXIgYmFzZWQgb24gd2hldGhlciBsb2NhbCBwb3J0cyBhcmUgdXNlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIG5ldHdvcmtpbmcgc3RhY2sgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aW5ldF9jc2tfZmluZF9vcGVuX3BvcnQmIzM0OywKICAgICYjMzQ7aW5ldF9jc2tfZ2V0X3BvcnQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGxvZ2ljIGZvciBmaW5kaW5nIGFuIG9wZW4gcG9ydCBmb3IgY29ubmVjdGlvbiBzb2NrZXRzIChlLmcuLCBUQ1AsIE1QVENQKSB3aGVuIGJpbmRpbmcgdG8gcG9ydCAwLiBJdCBjaGFuZ2VzIGhvdyBsb2NhbCBwb3J0cyBhcmUgaXRlcmF0ZWQgb3ZlciBiYXNlZCBvbiB3aGV0aGVyIGxvY2FsIHBvcnRzIGFyZSB1c2VkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgbmV0d29ya2luZyBzdGFjayBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI2VDIxOjQ5OjQwLjQ4MjcxNDc5MloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc4MTE3MjQ0NzQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImluZXRfY3NrX2ZpbmRfb3Blbl9wb3J0XCIsXG4gICAgXCJpbmV0X2Nza19nZXRfcG9ydFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsb2dpYyBmb3IgZmluZGluZyBhbiBvcGVuIHBvcnQgZm9yIGNvbm5lY3Rpb24gc29ja2V0cyAoZS5nLiwgVENQLCBNUFRDUCkgd2hlbiBiaW5kaW5nIHRvIHBvcnQgMC4gSXQgY2hhbmdlcyBob3cgbG9jYWwgcG9ydHMgYXJlIGl0ZXJhdGVkIG92ZXIgYmFzZWQgb24gd2hldGhlciBsb2NhbCBwb3J0cyBhcmUgdXNlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIG5ldHdvcmtpbmcgc3RhY2sgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI2VDIxOjQ5OjQwLjQ4MjcyMTA1MloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzQ4MjAzNjYyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgYzk4MTdmY2YxMjEzZjE2N2ZlMWJiODAyNTk1YWQyMGU4OTdhNjg2OFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIEp1biAyNiAyMTo0OTozOCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jIGIvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suY1xcbmluZGV4IDU2OTAyYmJhNTQ4MzhiLi5hZDhhZjcwYzkyY2EzYSAxMDA2NDRcXG4tLS0gYS9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jXFxuKysrIGIvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suY1xcbkBAIC0zMjMsMTMgKzMyMywxNiBAQCBpbmV0X2Nza19maW5kX29wZW5fcG9ydChjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBpbmV0X2JpbmRfYnVja2V0ICoqdGJfcmV0LFxcbiBcXHRzdHJ1Y3QgaW5ldF9iaW5kMl9idWNrZXQgKnRiMjtcXG4gXFx0c3RydWN0IGluZXRfYmluZF9idWNrZXQgKnRiO1xcbiBcXHR1MzIgcmVtYWluaW5nLCBvZmZzZXQ7XFxuK1xcdGJvb2wgbG9jYWxfcG9ydHM7XFxuIFxcdGJvb2wgcmVsYXggPSBmYWxzZTtcXG4rXFx0aW50IHN0ZXA7XFxuIFxcbiBcXHRsM21kZXYgPSBpbmV0X3NrX2JvdW5kX2wzbWRldihzayk7XFxuIHBvcnRzX2V4aGF1c3RlZDpcXG4gXFx0YXR0ZW1wdF9oYWxmID0gKHNrLVxcdTAwM2Vza19yZXVzZSA9PSBTS19DQU5fUkVVU0UpID8gMSA6IDA7XFxuIG90aGVyX2hhbGZfc2NhbjpcXG4tXFx0aW5ldF9za19nZXRfbG9jYWxfcG9ydF9yYW5nZShzaywgXFx1MDAyNmxvdywgXFx1MDAyNmhpZ2gpO1xcbitcXHRsb2NhbF9wb3J0cyA9IGluZXRfc2tfZ2V0X2xvY2FsX3BvcnRfcmFuZ2Uoc2ssIFxcdTAwMjZsb3csIFxcdTAwMjZoaWdoKTtcXG4rXFx0c3RlcCA9IGxvY2FsX3BvcnRzID8gMSA6IDI7XFxuIFxcdGhpZ2grKzsgLyogWzMyNzY4LCA2MDk5OV0gLVxcdTAwM2UgWzMyNzY4LCA2MTAwMFsgKi9cXG4gXFx0aWYgKGhpZ2ggLSBsb3cgXFx1MDAzYyA0KVxcbiBcXHRcXHRhdHRlbXB0X2hhbGYgPSAwO1xcbkBAIC0zNDIsMTggKzM0NSwxOSBAQCBpbmV0X2Nza19maW5kX29wZW5fcG9ydChjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBpbmV0X2JpbmRfYnVja2V0ICoqdGJfcmV0LFxcbiBcXHRcXHRcXHRsb3cgPSBoYWxmO1xcbiBcXHR9XFxuIFxcdHJlbWFpbmluZyA9IGhpZ2ggLSBsb3c7XFxuLVxcdGlmIChsaWtlbHkocmVtYWluaW5nIFxcdTAwM2UgMSkpXFxuK1xcdGlmICghbG9jYWxfcG9ydHMgXFx1MDAyNlxcdTAwMjYgcmVtYWluaW5nIFxcdTAwM2UgMSlcXG4gXFx0XFx0cmVtYWluaW5nIFxcdTAwMjY9IH4xVTtcXG4gXFxuIFxcdG9mZnNldCA9IGdldF9yYW5kb21fdTMyX2JlbG93KHJlbWFpbmluZyk7XFxuIFxcdC8qIF9faW5ldF9oYXNoX2Nvbm5lY3QoKSBmYXZvcnMgcG9ydHMgaGF2aW5nIEBsb3cgcGFyaXR5XFxuIFxcdCAqIFdlIGRvIHRoZSBvcHBvc2l0ZSB0byBub3QgcG9sbHV0ZSBjb25uZWN0KCkgdXNlcnMuXFxuIFxcdCAqL1xcbi1cXHRvZmZzZXQgfD0gMVU7XFxuK1xcdGlmICghbG9jYWxfcG9ydHMpXFxuK1xcdFxcdG9mZnNldCB8PSAxVTtcXG4gXFxuIG90aGVyX3Bhcml0eV9zY2FuOlxcbiBcXHRwb3J0ID0gbG93ICsgb2Zmc2V0O1xcbi1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgcmVtYWluaW5nOyBpICs9IDIsIHBvcnQgKz0gMikge1xcbitcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgcmVtYWluaW5nOyBpICs9IHN0ZXAsIHBvcnQgKz0gc3RlcCkge1xcbiBcXHRcXHRpZiAodW5saWtlbHkocG9ydCBcXHUwMDNlPSBoaWdoKSlcXG4gXFx0XFx0XFx0cG9ydCAtPSByZW1haW5pbmc7XFxuIFxcdFxcdGlmIChpbmV0X2lzX2xvY2FsX3Jlc2VydmVkX3BvcnQobmV0LCBwb3J0KSlcXG5AQCAtMzg0LDkgKzM4OCwxMSBAQCBpbmV0X2Nza19maW5kX29wZW5fcG9ydChjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBpbmV0X2JpbmRfYnVja2V0ICoqdGJfcmV0LFxcbiBcXHRcXHRjb25kX3Jlc2NoZWQoKTtcXG4gXFx0fVxcbiBcXG4tXFx0b2Zmc2V0LS07XFxuLVxcdGlmICghKG9mZnNldCBcXHUwMDI2IDEpKVxcbi1cXHRcXHRnb3RvIG90aGVyX3Bhcml0eV9zY2FuO1xcbitcXHRpZiAoIWxvY2FsX3BvcnRzKSB7XFxuK1xcdFxcdG9mZnNldC0tO1xcbitcXHRcXHRpZiAoIShvZmZzZXQgXFx1MDAyNiAxKSlcXG4rXFx0XFx0XFx0Z290byBvdGhlcl9wYXJpdHlfc2NhbjtcXG4rXFx0fVxcbiBcXG4gXFx0aWYgKGF0dGVtcHRfaGFsZiA9PSAxKSB7XFxuIFxcdFxcdC8qIE9LIHdlIG5vdyB0cnkgdGhlIHVwcGVyIGhhbGYgb2YgdGhlIHJhbmdlICovXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI2VDIxOjQ5OjQxLjIzMTQ3MzIyNVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzczNjg0Nzc2NTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaW5ldF9jc2tfZmluZF9vcGVuX3BvcnRcIixcbiAgICBcImluZXRfY3NrX2dldF9wb3J0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGxvZ2ljIGZvciBmaW5kaW5nIGFuIG9wZW4gcG9ydCBmb3IgY29ubmVjdGlvbiBzb2NrZXRzIChlLmcuLCBUQ1AsIE1QVENQKSB3aGVuIGJpbmRpbmcgdG8gcG9ydCAwLiBJdCBjaGFuZ2VzIGhvdyBsb2NhbCBwb3J0cyBhcmUgaXRlcmF0ZWQgb3ZlciBiYXNlZCBvbiB3aGV0aGVyIGxvY2FsIHBvcnRzIGFyZSB1c2VkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgbmV0d29ya2luZyBzdGFjayBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBjOTgxN2ZjZjEyMTNmMTY3ZmUxYmI4MDI1OTVhZDIwZTg5N2E2ODY4XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBKdW4gMjYgMjE6NDk6MzggMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jIGIvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suY1xuaW5kZXggNTY5MDJiYmE1NDgzOGIuLmFkOGFmNzBjOTJjYTNhIDEwMDY0NFxuLS0tIGEvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suY1xuKysrIGIvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suY1xuQEAgLTMyMywxMyArMzIzLDE2IEBAIGluZXRfY3NrX2ZpbmRfb3Blbl9wb3J0KGNvbnN0IHN0cnVjdCBzb2NrICpzaywgc3RydWN0IGluZXRfYmluZF9idWNrZXQgKip0Yl9yZXQsXG4gXHRzdHJ1Y3QgaW5ldF9iaW5kMl9idWNrZXQgKnRiMjtcbiBcdHN0cnVjdCBpbmV0X2JpbmRfYnVja2V0ICp0YjtcbiBcdHUzMiByZW1haW5pbmcsIG9mZnNldDtcbitcdGJvb2wgbG9jYWxfcG9ydHM7XG4gXHRib29sIHJlbGF4ID0gZmFsc2U7XG4rXHRpbnQgc3RlcDtcbiBcbiBcdGwzbWRldiA9IGluZXRfc2tfYm91bmRfbDNtZGV2KHNrKTtcbiBwb3J0c19leGhhdXN0ZWQ6XG4gXHRhdHRlbXB0X2hhbGYgPSAoc2stXHUwMDNlc2tfcmV1c2UgPT0gU0tfQ0FOX1JFVVNFKSA/IDEgOiAwO1xuIG90aGVyX2hhbGZfc2Nhbjpcbi1cdGluZXRfc2tfZ2V0X2xvY2FsX3BvcnRfcmFuZ2Uoc2ssIFx1MDAyNmxvdywgXHUwMDI2aGlnaCk7XG4rXHRsb2NhbF9wb3J0cyA9IGluZXRfc2tfZ2V0X2xvY2FsX3BvcnRfcmFuZ2Uoc2ssIFx1MDAyNmxvdywgXHUwMDI2aGlnaCk7XG4rXHRzdGVwID0gbG9jYWxfcG9ydHMgPyAxIDogMjtcbiBcdGhpZ2grKzsgLyogWzMyNzY4LCA2MDk5OV0gLVx1MDAzZSBbMzI3NjgsIDYxMDAwWyAqL1xuIFx0aWYgKGhpZ2ggLSBsb3cgXHUwMDNjIDQpXG4gXHRcdGF0dGVtcHRfaGFsZiA9IDA7XG5AQCAtMzQyLDE4ICszNDUsMTkgQEAgaW5ldF9jc2tfZmluZF9vcGVuX3BvcnQoY29uc3Qgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgaW5ldF9iaW5kX2J1Y2tldCAqKnRiX3JldCxcbiBcdFx0XHRsb3cgPSBoYWxmO1xuIFx0fVxuIFx0cmVtYWluaW5nID0gaGlnaCAtIGxvdztcbi1cdGlmIChsaWtlbHkocmVtYWluaW5nIFx1MDAzZSAxKSlcbitcdGlmICghbG9jYWxfcG9ydHMgXHUwMDI2XHUwMDI2IHJlbWFpbmluZyBcdTAwM2UgMSlcbiBcdFx0cmVtYWluaW5nIFx1MDAyNj0gfjFVO1xuIFxuIFx0b2Zmc2V0ID0gZ2V0X3JhbmRvbV91MzJfYmVsb3cocmVtYWluaW5nKTtcbiBcdC8qIF9faW5ldF9oYXNoX2Nvbm5lY3QoKSBmYXZvcnMgcG9ydHMgaGF2aW5nIEBsb3cgcGFyaXR5XG4gXHQgKiBXZSBkbyB0aGUgb3Bwb3NpdGUgdG8gbm90IHBvbGx1dGUgY29ubmVjdCgpIHVzZXJzLlxuIFx0ICovXG4tXHRvZmZzZXQgfD0gMVU7XG4rXHRpZiAoIWxvY2FsX3BvcnRzKVxuK1x0XHRvZmZzZXQgfD0gMVU7XG4gXG4gb3RoZXJfcGFyaXR5X3NjYW46XG4gXHRwb3J0ID0gbG93ICsgb2Zmc2V0O1xuLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgcmVtYWluaW5nOyBpICs9IDIsIHBvcnQgKz0gMikge1xuK1x0Zm9yIChpID0gMDsgaSBcdTAwM2MgcmVtYWluaW5nOyBpICs9IHN0ZXAsIHBvcnQgKz0gc3RlcCkge1xuIFx0XHRpZiAodW5saWtlbHkocG9ydCBcdTAwM2U9IGhpZ2gpKVxuIFx0XHRcdHBvcnQgLT0gcmVtYWluaW5nO1xuIFx0XHRpZiAoaW5ldF9pc19sb2NhbF9yZXNlcnZlZF9wb3J0KG5ldCwgcG9ydCkpXG5AQCAtMzg0LDkgKzM4OCwxMSBAQCBpbmV0X2Nza19maW5kX29wZW5fcG9ydChjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBpbmV0X2JpbmRfYnVja2V0ICoqdGJfcmV0LFxuIFx0XHRjb25kX3Jlc2NoZWQoKTtcbiBcdH1cbiBcbi1cdG9mZnNldC0tO1xuLVx0aWYgKCEob2Zmc2V0IFx1MDAyNiAxKSlcbi1cdFx0Z290byBvdGhlcl9wYXJpdHlfc2NhbjtcbitcdGlmICghbG9jYWxfcG9ydHMpIHtcbitcdFx0b2Zmc2V0LS07XG4rXHRcdGlmICghKG9mZnNldCBcdTAwMjYgMSkpXG4rXHRcdFx0Z290byBvdGhlcl9wYXJpdHlfc2NhbjtcbitcdH1cbiBcbiBcdGlmIChhdHRlbXB0X2hhbGYgPT0gMSkge1xuIFx0XHQvKiBPSyB3ZSBub3cgdHJ5IHRoZSB1cHBlciBoYWxmIG9mIHRoZSByYW5nZSAqL1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjZUMjE6NDk6NDEuMjMxNDc0ODM1WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTIwMjY1ODgwMTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBQb3J0IEFsbG9jYXRpb24gUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGRpZ2dpbmcgaW50byBgaW5ldF9jc2tfZmluZF9vcGVuX3BvcnRgIHdpdGhpbiBgbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suY2Ag4oCTIHRoYXQncyB0aGUgY29yZSBvZiBob3cgSVB2NCAoYW5kIGJ5IGV4dGVuc2lvbiwgSVB2NiwgSSBzdXNwZWN0KSBjb25uZWN0aW9uIHNvY2tldHMgYWxsb2NhdGUgcG9ydHMuIFRoaXMgaXMgYSBwcmV0dHkgZnVuZGFtZW50YWwgcGllY2Ugb2YgdGhlIG5ldHdvcmtpbmcgc3RhY2suIEl0J3MgdG91Y2hpbmcgdGhlIGxvZ2ljIGZvciBpdGVyYXRpbmcgdGhyb3VnaCBsb2NhbCBwb3J0cyB0byBmaW5kIGFuIGF2YWlsYWJsZSBvbmUsIHdoaWNoIGlzIHNvbWV0aGluZyBJJ3ZlIHNwZW50IHBsZW50eSBvZiB0aW1lIG9wdGltaXppbmcgYW5kIGRlYnVnZ2luZyBvdmVyIHRoZSB5ZWFycy5cblxuVGhlIGNydWNpYWwgYml0IHNlZW1zIHRvIGJlIHRoZSBpbnRyb2R1Y3Rpb24gb2YgYGluZXRfc2tfZ2V0X2xvY2FsX3BvcnRfcmFuZ2Uoc2ssIFx1MDAyNmxvdywgXHUwMDI2aGlnaClgLiBUaGlzIGZ1bmN0aW9uJ3MgcmV0dXJuIHZhbHVlIGlzIG5vdyBkaWN0YXRpbmcgd2hldGhlciB3ZSBpdGVyYXRlIHNlcXVlbnRpYWxseSAoYHN0ZXAgPSAxYCkgb3IgdXNlIHRoZSBwYXJpdHkgc2NhbiAoYHN0ZXAgPSAyYCkuICBJZiBgbG9jYWxfcG9ydHNgIGlzIHRydWUgdGhlbiBgc3RlcGAgaXMgYDFgLCBtZWFuaW5nIHdlIGNoZWNrIHBvcnRzIHNlcXVlbnRpYWxseS4gSWYgYGxvY2FsX3BvcnRzYCBpcyBmYWxzZSwgaXQgZmxpcHMgdG8gdGhlIHBhcml0eSBzY2FuLiBTbywgaWYgd2UgKmFyZSogdXNpbmcgbG9jYWwgcG9ydHMsIHRoZSBzY2FubmluZyBpcyBzZXF1ZW50aWFsLiBJZiB3ZSdyZSBub3QgdXNpbmcgbG9jYWwgcG9ydHMsIHRoZSBzY2FuIGRvZXMgYSBwYXJpdHkgc2Nhbi4gVGhpcyBzZWVtcyBsaWtlIGl0IHdvdWxkIGFmZmVjdCBzY2VuYXJpb3Mgd2hlcmUgdGhlIHBvcnQgaXMgc2V0IGV4cGxpY2l0bHkgYnkgdGhlIHVzZXIsIHZzLiBiZWluZyBkeW5hbWljYWxseSBhbGxvY2F0ZWQuXG5cblRoYXQgYHBhcml0eSBzY2FuYCBpbXBsaWVzIGl0J3MgdHJ5aW5nIHRvIHF1aWNrbHkgZmluZCBhIGZyZWUgcG9ydCBieSBqdW1waW5nIGFjcm9zcyBldmVuL29kZCBwb3J0IG51bWJlcnMsIHdoaWNoIG1ha2VzIHNlbnNlIHRvIHBvdGVudGlhbGx5IG1pdGlnYXRlIGNvbGxpc2lvbnMgaW4gc29tZSBzY2VuYXJpb3MuIEl0J3MgYSBmdW5jdGlvbmFsIGNoYW5nZSwgd2hpY2ggaW1wbGllcyBhIHBvdGVudGlhbCBpbXBhY3Qgb24gaG93IGNvbm5lY3Rpb25zIGFyZSBlc3RhYmxpc2hlZCwgYW5kIGhvdyBsaWtlbHkgd2UgYXJlIHRvIHNlZSBwb3J0IGV4aGF1c3Rpb24uIFRoaXMgaXMgcmVhY2hhYmxlIHRocm91Z2ggYW55IG9wZXJhdGlvbiBjYWxsaW5nIGBiaW5kKClgLCBgY29ubmVjdCgpYCwgb3IgYGxpc3RlbigpYCB3aGVyZSBhIHBvcnQgaXMgYWxsb2NhdGVkLlxuXG5JIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGBpbmV0X3NrX2dldF9sb2NhbF9wb3J0X3JhbmdlYCBhY3R1YWxseSAqZG9lcyouIFRoZSBkb2N1bWVudGF0aW9uIHdpbGwgbGlrZWx5IGJlIGluYWRlcXVhdGUgZm9yIHN1Y2ggYSBjb3JlIGZ1bmN0aW9uLiBUaW1lIHRvIHNlZSB3aGF0IEkgY2FuIGZpbmQgd2l0aCBgZ3JlcHBlcmAgYW5kIHNlZSB3aGF0IHRoZSBmdW5jdGlvbiBhY3R1YWxseSByZXR1cm5zLCBhbmQgdGhlIGNvbmRpdGlvbnMgdW5kZXIgd2hpY2ggaXQgcmV0dXJucyB0aGVzZSB2YWx1ZXMuIFRoYXQgd2lsbCBnaXZlIG1lIHRoZSBjb250ZXh0IHRvIGRldGVybWluZSBpZiB0aGlzIGNoYW5nZSBpcyBhIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50LCBhIGJ1ZyBmaXgsIG9yIHNvbWV0aGluZyBlbHNlIGVudGlyZWx5LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNDUwLCJPdXRwdXRUb2tlbnMiOjI1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjI0LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjZUMjE6NDk6NTMuMjU4MDY1MTQzWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM4NjgyODczOTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaW5ldF9za19nZXRfbG9jYWxfcG9ydF9yYW5nZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJpbmNsdWRlL25ldC9pcC5oPTM1Mz1zdGF0aWMgaW5saW5lIHZvaWQgaW5ldF9nZXRfbG9jYWxfcG9ydF9yYW5nZShjb25zdCBzdHJ1Y3QgbmV0ICpuZXQsIGludCAqbG93LCBpbnQgKmhpZ2gpXFxuLS1cXG5pbmNsdWRlL25ldC9pcC5oLTM1OS19XFxuaW5jbHVkZS9uZXQvaXAuaDozNjA6Ym9vbCBpbmV0X3NrX2dldF9sb2NhbF9wb3J0X3JhbmdlKGNvbnN0IHN0cnVjdCBzb2NrICpzaywgaW50ICpsb3csIGludCAqaGlnaCk7XFxuaW5jbHVkZS9uZXQvaXAuaC0zNjEtXFxuLS1cXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jPTExMT1ib29sIGluZXRfcmN2X3NhZGRyX2FueShjb25zdCBzdHJ1Y3Qgc29jayAqc2spXFxuLS1cXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTEyMC0vKipcXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjEyMTogKlxcdGluZXRfc2tfZ2V0X2xvY2FsX3BvcnRfcmFuZ2UgLSBmZXRjaCBlcGhlbWVyYWwgcG9ydHMgcmFuZ2VcXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTEyMi0gKlxcdEBzazogc29ja2V0XFxuLS1cXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTEyOS0gKi9cXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjEzMDpib29sIGluZXRfc2tfZ2V0X2xvY2FsX3BvcnRfcmFuZ2UoY29uc3Qgc3RydWN0IHNvY2sgKnNrLCBpbnQgKmxvdywgaW50ICpoaWdoKVxcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtMTMxLXtcXG4tLVxcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtMTUzLX1cXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjE1NDpFWFBPUlRfU1lNQk9MKGluZXRfc2tfZ2V0X2xvY2FsX3BvcnRfcmFuZ2UpO1xcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtMTU1LVxcbi0tXFxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYz0zMTU9aW5ldF9jc2tfZmluZF9vcGVuX3BvcnQoY29uc3Qgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgaW5ldF9iaW5kX2J1Y2tldCAqKnRiX3JldCxcXG4tLVxcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtMzMzLW90aGVyX2hhbGZfc2NhbjpcXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjMzNDpcXHRsb2NhbF9wb3J0cyA9IGluZXRfc2tfZ2V0X2xvY2FsX3BvcnRfcmFuZ2Uoc2ssIFxcdTAwMjZsb3csIFxcdTAwMjZoaWdoKTtcXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTMzNS1cXHRzdGVwID0gbG9jYWxfcG9ydHMgPyAxIDogMjtcXG4tLVxcbm5ldC9pcHY0L2luZXRfaGFzaHRhYmxlcy5jPTEwNDA9aW50IF9faW5ldF9oYXNoX2Nvbm5lY3Qoc3RydWN0IGluZXRfdGltZXdhaXRfZGVhdGhfcm93ICpkZWF0aF9yb3csXFxuLS1cXG5uZXQvaXB2NC9pbmV0X2hhc2h0YWJsZXMuYy0xMDcwLVxcbm5ldC9pcHY0L2luZXRfaGFzaHRhYmxlcy5jOjEwNzE6XFx0bG9jYWxfcG9ydHMgPSBpbmV0X3NrX2dldF9sb2NhbF9wb3J0X3JhbmdlKHNrLCBcXHUwMDI2bG93LCBcXHUwMDI2aGlnaCk7XFxubmV0L2lwdjQvaW5ldF9oYXNodGFibGVzLmMtMTA3Mi1cXHRzdGVwID0gbG9jYWxfcG9ydHMgPyAxIDogMjtcXG4tLVxcbm5ldC9pcHY0L3VkcC5jPTIzMT1pbnQgdWRwX2xpYl9nZXRfcG9ydChzdHJ1Y3Qgc29jayAqc2ssIHVuc2lnbmVkIHNob3J0IHNudW0sXFxuLS1cXG5uZXQvaXB2NC91ZHAuYy0yNDYtXFxubmV0L2lwdjQvdWRwLmM6MjQ3OlxcdFxcdGluZXRfc2tfZ2V0X2xvY2FsX3BvcnRfcmFuZ2Uoc2ssIFxcdTAwMjZsb3csIFxcdTAwMjZoaWdoKTtcXG5uZXQvaXB2NC91ZHAuYy0yNDgtXFx0XFx0cmVtYWluaW5nID0gKGhpZ2ggLSBsb3cpICsgMTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jPTg0MDc9c3RhdGljIGludCBzY3RwX2dldF9wb3J0X2xvY2FsKHN0cnVjdCBzb2NrICpzaywgdW5pb24gc2N0cF9hZGRyICphZGRyKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODQyNi1cXG5uZXQvc2N0cC9zb2NrZXQuYzo4NDI3OlxcdFxcdGluZXRfc2tfZ2V0X2xvY2FsX3BvcnRfcmFuZ2Uoc2ssIFxcdTAwMjZsb3csIFxcdTAwMjZoaWdoKTtcXG5uZXQvc2N0cC9zb2NrZXQuYy04NDI4LVxcdFxcdHJlbWFpbmluZyA9IChoaWdoIC0gbG93KSArIDE7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI2VDIxOjQ5OjU3LjEyNjM3NTkwMloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE0Mzg2MzA0NzczLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyBhaW1lZCBzcXVhcmVseSBhdCBgaW5ldF9jc2tfZmluZF9vcGVuX3BvcnRgLiBUaGF0J3MgdGhlIGZ1bmN0aW9uIHJlc3BvbnNpYmxlIGZvciBodW50aW5nIGRvd24gYXZhaWxhYmxlIHBvcnRzIGZvciBjb25uZWN0aW9uLW9yaWVudGVkIHNvY2tldHMg4oCTIFRDUCwgRENDUCwgU0NUUCwgdGhlIHVzdWFsIHN1c3BlY3RzLiBJIGtub3cgdGhpcyBmdW5jdGlvbiBpbnRpbWF0ZWx5OyBpdCdzIGRlZmluaXRlbHkgaW4gcGxheSBhbmQgZnVsbHkgZnVuY3Rpb25hbC4gQ29uc2lkZXJpbmcgaXRzIGNvcmUgcm9sZSBpbiBuZXR3b3JrIGNvbm5lY3Rpb24gZXN0YWJsaXNobWVudCwgdGhpcyBwYXRjaCBoYXMgdGhlIHBvdGVudGlhbCB0byBleHBvc2UgdnVsbmVyYWJpbGl0aWVzLiBJdCdzIGEgcHJpbWUgdGFyZ2V0IGZvciBmdXp6aW5nLiBHaXZlbiB0aGF0LCBJJ20gZ29pbmcgdG8gc2V0IGBXb3J0aEZ1enppbmc9dHJ1ZWAuXG5cbk5vdywgYmV5b25kIGBpbmV0X2Nza19maW5kX29wZW5fcG9ydGAgaXRzZWxmLCBsZXQncyB0YWtlIGEgbG9vayBhdCBvdGhlciBzeW1ib2xzLiBJJ2xsIG5lZWQgdG8gY2hlY2sgdGhlIGNhbGwgc2l0ZXMgZm9yIG1vcmUgY29udGV4dC4gYGluZXRfc2tfZ2V0X2xvY2FsX3BvcnRfcmFuZ2VgIGlzIGEgcG9zc2liaWxpdHkgdG8gYmUgY29uc2lkZXJlZCwgYWx0aG91Z2ggaXQncyBub3QgZGlyZWN0bHkgbW9kaWZpZWQsIHNvIEknbGwgbmVlZCB0byByZXZpZXcuIEknbGwgbmVlZCB0byB0cmFjZSB0aGUgY2FsbCBwYXRocyB0byB1bmRlcnN0YW5kIGFsbCBwb3NzaWJsZSBpbXBhY3RzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MDY5LCJPdXRwdXRUb2tlbnMiOjI0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTIwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI2VDIxOjUwOjExLjUxMjY4Mjc3NVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNzU2MjM0MTQ1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImluZXRfY3NrX2ZpbmRfb3Blbl9wb3J0XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmM9MzE0PXN0YXRpYyBzdHJ1Y3QgaW5ldF9iaW5kX2hhc2hidWNrZXQgKlxcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmM6MzE1OmluZXRfY3NrX2ZpbmRfb3Blbl9wb3J0KGNvbnN0IHN0cnVjdCBzb2NrICpzaywgc3RydWN0IGluZXRfYmluZF9idWNrZXQgKip0Yl9yZXQsXFxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy0zMTYtXFx0XFx0XFx0c3RydWN0IGluZXRfYmluZDJfYnVja2V0ICoqdGIyX3JldCxcXG4tLVxcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmM9NTA2PWludCBpbmV0X2Nza19nZXRfcG9ydChzdHJ1Y3Qgc29jayAqc2ssIHVuc2lnbmVkIHNob3J0IHNudW0pXFxuLS1cXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTUyMS1cXHRpZiAoIXBvcnQpIHtcXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjUyMjpcXHRcXHRoZWFkID0gaW5ldF9jc2tfZmluZF9vcGVuX3BvcnQoc2ssIFxcdTAwMjZ0YiwgXFx1MDAyNnRiMiwgXFx1MDAyNmhlYWQyLCBcXHUwMDI2cG9ydCk7XFxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy01MjMtXFx0XFx0aWYgKCFoZWFkKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNlQyMTo1MDoxNC4yNjg5MjI5MVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE3MTQ2MzI0ODQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgS2VybmVsJ3MgUG9ydCBBbGxvY2F0aW9uIExvZ2ljKipcblxuT2theSwgc28gSSdtIHRyYWNpbmcgdGhlIHBvcnQgYWxsb2NhdGlvbiBsb2dpYyBoZXJlLCBhbmQgaXQgbG9va3MgbGlrZSBgaW5ldF9jc2tfZmluZF9vcGVuX3BvcnRgIGlzIHRoZSByZWFsIHdvcmtob3JzZSwgYmVpbmcgY2FsbGVkIGJ5IGBpbmV0X2Nza19nZXRfcG9ydGAuIGBpbmV0X2Nza19nZXRfcG9ydGAgaXMsIGluIHR1cm4sIGNhbGxlZCBieSBhIGZldyBrZXkgbmV0d29yayBmdW5jdGlvbnM6IGBpbmV0X2JpbmRgLCB3aGljaCBtYWtlcyBzZW5zZSBmb3IgYmluZGluZyBhIHNvY2tldCB0byBhIHBvcnQ7IGBpbmV0X2xpc3RlbmAsIGZvciBzZXR0aW5nIHVwIGEgbGlzdGVuaW5nIHNvY2tldCwgb2YgY291cnNlOyBhbmQgYGluZXRfaGFzaF9jb25uZWN0YCDigJMgb3IgcmF0aGVyLCBgX19pbmV0X2hhc2hfY29ubmVjdGAgd2hpY2ggc2VlbXMgdG8gaGF2ZSBpdHMgb3duIHNwZWNpYWwgbG9naWMsIGJ1dCBzdGlsbCwgdGhlIGBpbmV0X2Nza19nZXRfcG9ydGAgZnVuY3Rpb24gaXMgYSBjcnVjaWFsIHBpZWNlIG9mIHRoZSBwdXp6bGUsIGFuZCBzZWVtcyB0byBiZSB0aGUgYGdldF9wb3J0YCBjYWxsYmFjayBmb3IgVENQL0RDQ1AsIHdoaWNoIGlzIGludGVyZXN0aW5nLiBUaW1lIHRvIHplcm8gaW4gb24gdGhvc2UgY2FsbGVycyBvZiBgaW5ldF9jc2tfZ2V0X3BvcnRgIHRvIGZ1bGx5IGdyYXNwIHRoZSBjb250cm9sIGZsb3cuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ2NzksIk91dHB1dFRva2VucyI6MjIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMTQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjZUMjE6NTA6MzEuNDE1MjUwMzc4WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI1MjMxNjE2MzEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaW5ldF9jc2tfZ2V0X3BvcnRcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiaW5jbHVkZS9uZXQvaW5ldF9jb25uZWN0aW9uX3NvY2suaD0yNjI9c3RydWN0IHNvY2sgKmluZXRfY3NrX2FjY2VwdChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBwcm90b19hY2NlcHRfYXJnICphcmcpO1xcbmluY2x1ZGUvbmV0L2luZXRfY29ubmVjdGlvbl9zb2NrLmgtMjYzLVxcbmluY2x1ZGUvbmV0L2luZXRfY29ubmVjdGlvbl9zb2NrLmg6MjY0OmludCBpbmV0X2Nza19nZXRfcG9ydChzdHJ1Y3Qgc29jayAqc2ssIHVuc2lnbmVkIHNob3J0IHNudW0pO1xcbmluY2x1ZGUvbmV0L2luZXRfY29ubmVjdGlvbl9zb2NrLmgtMjY1LVxcbi0tXFxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYz00NDg9dm9pZCBpbmV0X2Nza191cGRhdGVfZmFzdHJldXNlKGNvbnN0IHN0cnVjdCBzb2NrICpzayxcXG4tLVxcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtNTA1LSAqL1xcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmM6NTA2OmludCBpbmV0X2Nza19nZXRfcG9ydChzdHJ1Y3Qgc29jayAqc2ssIHVuc2lnbmVkIHNob3J0IHNudW0pXFxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy01MDcte1xcbi0tXFxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy02MDAtfVxcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmM6NjAxOkVYUE9SVF9TWU1CT0xfR1BMKGluZXRfY3NrX2dldF9wb3J0KTtcXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTYwMi1cXG4tLVxcbm5ldC9pcHY0L2luZXRfaGFzaHRhYmxlcy5jPTEwNDA9aW50IF9faW5ldF9oYXNoX2Nvbm5lY3Qoc3RydWN0IGluZXRfdGltZXdhaXRfZGVhdGhfcm93ICpkZWF0aF9yb3csXFxuLS1cXG5uZXQvaXB2NC9pbmV0X2hhc2h0YWJsZXMuYy0xMDg4LVxcdC8qIEluIGZpcnN0IHBhc3Mgd2UgdHJ5IHBvcnRzIG9mIEBsb3cgcGFyaXR5Llxcbm5ldC9pcHY0L2luZXRfaGFzaHRhYmxlcy5jOjEwODk6XFx0ICogaW5ldF9jc2tfZ2V0X3BvcnQoKSBkb2VzIHRoZSBvcHBvc2l0ZSBjaG9pY2UuXFxubmV0L2lwdjQvaW5ldF9oYXNodGFibGVzLmMtMTA5MC1cXHQgKi9cXG4tLVxcbm5ldC9pcHY0L3RjcF9pcHY0LmM9MzMzNT1zdHJ1Y3QgcHJvdG8gdGNwX3Byb3QgPSB7XFxuLS1cXG5uZXQvaXB2NC90Y3BfaXB2NC5jLTMzNTctXFx0LnVuaGFzaFxcdFxcdFxcdD0gaW5ldF91bmhhc2gsXFxubmV0L2lwdjQvdGNwX2lwdjQuYzozMzU4OlxcdC5nZXRfcG9ydFxcdFxcdD0gaW5ldF9jc2tfZ2V0X3BvcnQsXFxubmV0L2lwdjQvdGNwX2lwdjQuYy0zMzU5LVxcdC5wdXRfcG9ydFxcdFxcdD0gaW5ldF9wdXRfcG9ydCxcXG4tLVxcbm5ldC9pcHY2L3RjcF9pcHY2LmM9MjI3Mj1zdHJ1Y3QgcHJvdG8gdGNwdjZfcHJvdCA9IHtcXG4tLVxcbm5ldC9pcHY2L3RjcF9pcHY2LmMtMjI5NC1cXHQudW5oYXNoXFx0XFx0XFx0PSBpbmV0X3VuaGFzaCxcXG5uZXQvaXB2Ni90Y3BfaXB2Ni5jOjIyOTU6XFx0LmdldF9wb3J0XFx0XFx0PSBpbmV0X2Nza19nZXRfcG9ydCxcXG5uZXQvaXB2Ni90Y3BfaXB2Ni5jLTIyOTYtXFx0LnB1dF9wb3J0XFx0XFx0PSBpbmV0X3B1dF9wb3J0LFxcbi0tXFxubmV0L21wdGNwL3Byb3RvY29sLmM9Mzc5MT1zdGF0aWMgaW50IG1wdGNwX2dldF9wb3J0KHN0cnVjdCBzb2NrICpzaywgdW5zaWduZWQgc2hvcnQgc251bSlcXG4tLVxcbm5ldC9tcHRjcC9wcm90b2NvbC5jLTM3OTgtXFxubmV0L21wdGNwL3Byb3RvY29sLmM6Mzc5OTpcXHRyZXR1cm4gaW5ldF9jc2tfZ2V0X3BvcnQobXNrLVxcdTAwM2VmaXJzdCwgc251bSk7XFxubmV0L21wdGNwL3Byb3RvY29sLmMtMzgwMC19XFxuLS1cXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jPTE1NDYyPXN0YXRpYyBpbnQgbmw4MDIxMV9wYXJzZV93b3dsYW5fdGNwKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcXG4tLVxcbm5ldC93aXJlbGVzcy9ubDgwMjExLmMtMTU1NTktXFx0fVxcbm5ldC93aXJlbGVzcy9ubDgwMjExLmM6MTU1NjA6XFx0aWYgKGluZXRfY3NrX2dldF9wb3J0KGNmZy1cXHUwMDNlc29jay1cXHUwMDNlc2ssIHBvcnQpKSB7XFxubmV0L3dpcmVsZXNzL25sODAyMTEuYy0xNTU2MS1cXHRcXHRzb2NrX3JlbGVhc2UoY2ZnLVxcdTAwM2Vzb2NrKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjZUMjE6NTA6MzMuOTM4NDE4MjE5WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjQ2NjE0OTM1OTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBJbXBhY3Qgb2YgdGhlIGBpbmV0X2Nza19maW5kX29wZW5fcG9ydGAgTW9kaWZpY2F0aW9uKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaW1tZWRpYXRlbHksIEkgc2VlIGl0J3MgdG91Y2hpbmcgYGluZXRfY3NrX2ZpbmRfb3Blbl9wb3J0YC4gVGhpcyBmdW5jdGlvbiBpcyBrZXk7IGl0J3MgdGhlIG9uZSBjYWxsZWQgd2hlbiB3ZSdyZSBkZWFsaW5nIHdpdGggYSBgYmluZCgpYCBjYWxsIHVzaW5nIHBvcnQgMC4gVGhhdCdzIGEgY2xhc3NpYyBzaWduYWwgZm9yIHRoZSBrZXJuZWwgdG8gYXNzaWduIGEgZHluYW1pYyBwb3J0LiBBbmQsIGJhc2VkIG9uIHRoZSBkZXNjcmlwdGlvbiwgdGhpcyBjaGFuZ2UgaW4gYGluZXRfY3NrX2ZpbmRfb3Blbl9wb3J0YCBzcGVjaWZpY2FsbHkgaW1wYWN0cyB0aGUgd2F5IHRoZSBzeXN0ZW0gZmluZHMgYW4gYXZhaWxhYmxlIHBvcnQgaW4gdGhhdCBzY2VuYXJpby4gU3BlY2lmaWNhbGx5IHRoZSBsb2dpYyBiZWhpbmQgaXRlcmF0aW5nIGxvY2FsIHBvcnRzLiBJdCBzZWVtcyB0byBkaXJlY3RseSByZWxhdGUgdG8gaG93IFRDUCAoYW5kIGJ5IGV4dGVuc2lvbiwgTVBUQ1ApIGhhbmRsZXMgdGhlc2UgZHluYW1pYyBwb3J0IGFzc2lnbm1lbnRzIHZpYSBgaW5ldF9jc2tfZ2V0X3BvcnRgLlxuXG5UaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGJlaGF2aW9yIG9mIGBpbmV0X2Nza19maW5kX29wZW5fcG9ydGAsIGFuZCBmcm9tIHdoYXQgSSBjYW4gdGVsbCwgaXQncyBwcmV0dHkgY29yZS4gVGhlIGZhY3QgdGhhdCBgaW5ldF9jc2tfZ2V0X3BvcnRgIGlzIHRoZSBgZ2V0X3BvcnRgIGNhbGxiYWNrIGZvciBUQ1AgaXMgcHJldHR5IHNpZ25pZmljYW50OyBpdCdzIHRoZSBoZWFydCBvZiBwb3J0IGFsbG9jYXRpb24uIFNvIGlmIHRoaXMgbG9naWMgaXMgbW9kaWZpZWQsIGl0J3MgZGVmaW5pdGVseSBzb21ldGhpbmcgdGhhdCB3YXJyYW50cyBmdXp6aW5nLiBJdCdzIGEgZnVuZGFtZW50YWwgY2hhbmdlIGluIGhvdyB0aGUga2VybmVsIGNob29zZXMgcG9ydHMuXG5cbk5vdywgYXMgYW4gZXhwZXJ0IGluIHRoaXMsIEkga25vdyBgQ09ORklHX0lORVRgIGFuZCBgQ09ORklHX1RDUGAgYXJlIGVzc2VudGlhbGx5IG1hbmRhdG9yeSBmb3IgYW55IG5ldHdvcmtpbmcgc3lzdGVtLiBJIGRvbid0IHNlZSBhbnkgZGVwZW5kZW5jaWVzIG9uIHNwZWNpZmljIG9ic2N1cmUgY29uZmlndXJhdGlvbnMgdGhhdCBjb3VsZCByZW5kZXIgdGhpcyBjb2RlIHVucmVhY2hhYmxlLiBUaGlzIG1vZGlmaWNhdGlvbiBpcyBkaXJlY3RseSByZWFjaGFibGUgdGhyb3VnaCB0aGUgbm9ybWFsIGZsb3cgb2YgY3JlYXRpbmcgYSBUQ1Agc29ja2V0IGFuZCBiaW5kaW5nIHRvIHBvcnQgemVybywgc28gZnV6emluZyB0aGlzIGlzIGEgZ29vZCBpZGVhLiBBbHJpZ2h0LCBJJ2xsIGdvIGFoZWFkIGFuZCBsb2cgdGhpcyBhcyBhbiBhY3Rpb25hYmxlIGl0ZW0gYW5kIG1vdmUgb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU5NjgsIk91dHB1dFRva2VucyI6MTE4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQ0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI2VDIxOjUwOjU4LjU5OTkxNDI1MVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM0NjY5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaW5ldF9jc2tfZmluZF9vcGVuX3BvcnRcIixcbiAgICBcImluZXRfY3NrX2dldF9wb3J0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGxvZ2ljIGZvciBmaW5kaW5nIGFuIG9wZW4gcG9ydCBmb3IgY29ubmVjdGlvbiBzb2NrZXRzIChlLmcuLCBUQ1AsIE1QVENQKSB3aGVuIGJpbmRpbmcgdG8gcG9ydCAwLiBJdCBjaGFuZ2VzIGhvdyBsb2NhbCBwb3J0cyBhcmUgaXRlcmF0ZWQgb3ZlciBiYXNlZCBvbiB3aGV0aGVyIGxvY2FsIHBvcnRzIGFyZSB1c2VkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgbmV0d29ya2luZyBzdGFjayBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJpbmV0X2Nza19maW5kX29wZW5fcG9ydFwiLFxuICAgIFwiaW5ldF9jc2tfZ2V0X3BvcnRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9naWMgZm9yIGZpbmRpbmcgYW4gb3BlbiBwb3J0IGZvciBjb25uZWN0aW9uIHNvY2tldHMgKGUuZy4sIFRDUCwgTVBUQ1ApIHdoZW4gYmluZGluZyB0byBwb3J0IDAuIEl0IGNoYW5nZXMgaG93IGxvY2FsIHBvcnRzIGFyZSBpdGVyYXRlZCBvdmVyIGJhc2VkIG9uIHdoZXRoZXIgbG9jYWwgcG9ydHMgYXJlIHVzZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBuZXR3b3JraW5nIHN0YWNrIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowp7vlp[1] Phase: Succeeded StartedAt: 2026-06-26 21:51:09 +0000 UTC FinishedAt: 2026-06-26 21:51:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7vlp[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-06-26 21:51:09 +0000 UTC FinishedAt: 2026-06-26 21:51:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7vlp[2] Phase: Succeeded StartedAt: 2026-06-26 21:51:09 +0000 UTC FinishedAt: 2026-06-27 01:50:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7vlp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["inet_csk_find_open_port","inet_csk_get_port"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"aeeee1d4-fa9a-4f23-aa78-8b343e8d9239","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-06-26 21:51:09 +0000 UTC FinishedAt: 2026-06-27 01:50:46 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["inet_csk_find_open_port","inet_csk_get_port"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"aeeee1d4-fa9a-4f23-aa78-8b343e8d9239","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowp7vlp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["inet_csk_find_open_port","inet_csk_get_port"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"aeeee1d4-fa9a-4f23-aa78-8b343e8d9239","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-06-26 21:51:09 +0000 UTC FinishedAt: 2026-06-26 21:51:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7vlp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["inet_csk_find_open_port","inet_csk_get_port"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"aeeee1d4-fa9a-4f23-aa78-8b343e8d9239","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-06-26 21:51:09 +0000 UTC FinishedAt: 2026-06-26 21:51:17 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowp7vlp/series-workflowp7vlp-convert-artifact-4095638037/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowp7vlp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["inet_csk_find_open_port","inet_csk_get_port"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"aeeee1d4-fa9a-4f23-aa78-8b343e8d9239","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-06-26 21:51:19 +0000 UTC FinishedAt: 2026-06-26 22:14:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7vlp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["inet_csk_find_open_port","inet_csk_get_port"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"aeeee1d4-fa9a-4f23-aa78-8b343e8d9239","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-06-26 21:51:19 +0000 UTC FinishedAt: 2026-06-26 22:14:45 +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:*e1515781-3bea-4671-bc92-439a009d39f4,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-workflowp7vlp/series-workflowp7vlp-convert-artifact-4095638037/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": "19bf1b65-0c97-4705-84a6-1cc08ee3693a", "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-workflowp7vlp/series-workflowp7vlp-build-action-752800379/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowp7vlp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["inet_csk_find_open_port","inet_csk_get_port"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"aeeee1d4-fa9a-4f23-aa78-8b343e8d9239","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-06-26 21:51:19 +0000 UTC FinishedAt: 2026-06-26 22:14:34 +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:*e1515781-3bea-4671-bc92-439a009d39f4,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-workflowp7vlp/series-workflowp7vlp-convert-artifact-4095638037/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": "19bf1b65-0c97-4705-84a6-1cc08ee3693a", "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-workflowp7vlp/series-workflowp7vlp-build-action-752800379/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowp7vlp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["inet_csk_find_open_port","inet_csk_get_port"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"aeeee1d4-fa9a-4f23-aa78-8b343e8d9239","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-06-26 22:14:45 +0000 UTC FinishedAt: 2026-06-26 22:14:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7vlp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["inet_csk_find_open_port","inet_csk_get_port"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"aeeee1d4-fa9a-4f23-aa78-8b343e8d9239","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-06-26 22:14:45 +0000 UTC FinishedAt: 2026-06-26 22:14:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7vlp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["inet_csk_find_open_port","inet_csk_get_port"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"aeeee1d4-fa9a-4f23-aa78-8b343e8d9239","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-06-26 22:14:45 +0000 UTC FinishedAt: 2026-06-26 22:15:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7vlp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["inet_csk_find_open_port","inet_csk_get_port"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"aeeee1d4-fa9a-4f23-aa78-8b343e8d9239","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-06-26 22:14:45 +0000 UTC FinishedAt: 2026-06-26 22:15:40 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"aeeee1d4-fa9a-4f23-aa78-8b343e8d9239","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowp7vlp/series-workflowp7vlp-convert-artifact-3033337584/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowp7vlp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["inet_csk_find_open_port","inet_csk_get_port"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"aeeee1d4-fa9a-4f23-aa78-8b343e8d9239","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-06-26 22:15:47 +0000 UTC FinishedAt: 2026-06-26 22:18:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7vlp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["inet_csk_find_open_port","inet_csk_get_port"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"aeeee1d4-fa9a-4f23-aa78-8b343e8d9239","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-06-26 22:15:47 +0000 UTC FinishedAt: 2026-06-26 22:17:57 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*19bf1b65-0c97-4705-84a6-1cc08ee3693a,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-workflowp7vlp/series-workflowp7vlp-build-action-752800379/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-workflowp7vlp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["inet_csk_find_open_port","inet_csk_get_port"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"aeeee1d4-fa9a-4f23-aa78-8b343e8d9239","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-06-26 22:18:07 +0000 UTC FinishedAt: 2026-06-26 22:18:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7vlp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["inet_csk_find_open_port","inet_csk_get_port"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"aeeee1d4-fa9a-4f23-aa78-8b343e8d9239","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-06-26 22:18:07 +0000 UTC FinishedAt: 2026-06-26 22:18:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7vlp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["inet_csk_find_open_port","inet_csk_get_port"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"aeeee1d4-fa9a-4f23-aa78-8b343e8d9239","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-06-26 22:18:07 +0000 UTC FinishedAt: 2026-06-26 22:46:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7vlp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["inet_csk_find_open_port","inet_csk_get_port"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"aeeee1d4-fa9a-4f23-aa78-8b343e8d9239","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-06-26 22:18:07 +0000 UTC FinishedAt: 2026-06-26 22:46:44 +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:*e1515781-3bea-4671-bc92-439a009d39f4,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-workflowp7vlp/series-workflowp7vlp-convert-artifact-3033337584/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": "279a7eec-04ff-4c34-9cb1-30d786e9b4d3", "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-workflowp7vlp/series-workflowp7vlp-build-action-1163358188/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowp7vlp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["inet_csk_find_open_port","inet_csk_get_port"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"aeeee1d4-fa9a-4f23-aa78-8b343e8d9239","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-06-26 22:18:07 +0000 UTC FinishedAt: 2026-06-26 22:45:25 +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:*e1515781-3bea-4671-bc92-439a009d39f4,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-workflowp7vlp/series-workflowp7vlp-convert-artifact-3033337584/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": "279a7eec-04ff-4c34-9cb1-30d786e9b4d3", "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-workflowp7vlp/series-workflowp7vlp-build-action-1163358188/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowp7vlp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["inet_csk_find_open_port","inet_csk_get_port"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"aeeee1d4-fa9a-4f23-aa78-8b343e8d9239","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-06-26 22:46:44 +0000 UTC FinishedAt: 2026-06-26 22:46:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7vlp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["inet_csk_find_open_port","inet_csk_get_port"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"aeeee1d4-fa9a-4f23-aa78-8b343e8d9239","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-06-26 22:46:44 +0000 UTC FinishedAt: 2026-06-26 22:46:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7vlp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["inet_csk_find_open_port","inet_csk_get_port"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"aeeee1d4-fa9a-4f23-aa78-8b343e8d9239","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-06-26 22:46:44 +0000 UTC FinishedAt: 2026-06-26 22:48:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7vlp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["inet_csk_find_open_port","inet_csk_get_port"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"aeeee1d4-fa9a-4f23-aa78-8b343e8d9239","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-06-26 22:46:44 +0000 UTC FinishedAt: 2026-06-26 22:48:44 +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:*279a7eec-04ff-4c34-9cb1-30d786e9b4d3,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-workflowp7vlp/series-workflowp7vlp-build-action-1163358188/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-workflowp7vlp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["inet_csk_find_open_port","inet_csk_get_port"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"aeeee1d4-fa9a-4f23-aa78-8b343e8d9239","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-06-26 22:48:56 +0000 UTC FinishedAt: 2026-06-27 01:50:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7vlp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["inet_csk_find_open_port","inet_csk_get_port"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"aeeee1d4-fa9a-4f23-aa78-8b343e8d9239","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-06-26 22:48:56 +0000 UTC FinishedAt: 2026-06-27 01:50:46 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["inet_csk_find_open_port","inet_csk_get_port"],"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:*19bf1b65-0c97-4705-84a6-1cc08ee3693a,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*279a7eec-04ff-4c34-9cb1-30d786e9b4d3,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-workflowp7vlp/series-workflowp7vlp-build-action-752800379/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-workflowp7vlp/series-workflowp7vlp-build-action-1163358188/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowp7vlp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["inet_csk_find_open_port","inet_csk_get_port"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"aeeee1d4-fa9a-4f23-aa78-8b343e8d9239","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-06-26 22:48:56 +0000 UTC FinishedAt: 2026-06-26 22:49:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7vlp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["inet_csk_find_open_port","inet_csk_get_port"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"aeeee1d4-fa9a-4f23-aa78-8b343e8d9239","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-06-26 22:48:56 +0000 UTC FinishedAt: 2026-06-26 22:49:03 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["inet_csk_find_open_port","inet_csk_get_port"],"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-workflowp7vlp/series-workflowp7vlp-convert-artifact-4193691497/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowp7vlp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["inet_csk_find_open_port","inet_csk_get_port"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"aeeee1d4-fa9a-4f23-aa78-8b343e8d9239","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-06-26 22:48:56 +0000 UTC FinishedAt: 2026-06-26 22:48:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7vlp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["inet_csk_find_open_port","inet_csk_get_port"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"aeeee1d4-fa9a-4f23-aa78-8b343e8d9239","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-06-26 22:48:56 +0000 UTC FinishedAt: 2026-06-26 22:48:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7vlp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["inet_csk_find_open_port","inet_csk_get_port"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"aeeee1d4-fa9a-4f23-aa78-8b343e8d9239","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-06-26 22:48:56 +0000 UTC FinishedAt: 2026-06-26 22:48:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7vlp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["inet_csk_find_open_port","inet_csk_get_port"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"aeeee1d4-fa9a-4f23-aa78-8b343e8d9239","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-06-26 22:49:10 +0000 UTC FinishedAt: 2026-06-27 01:50:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowp7vlp[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["inet_csk_find_open_port","inet_csk_get_port"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","series_id":"aeeee1d4-fa9a-4f23-aa78-8b343e8d9239","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-06-26 22:49:10 +0000 UTC FinishedAt: 2026-06-27 01:50:37 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*19bf1b65-0c97-4705-84a6-1cc08ee3693a,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*279a7eec-04ff-4c34-9cb1-30d786e9b4d3,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-workflowp7vlp/series-workflowp7vlp-build-action-752800379/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-workflowp7vlp/series-workflowp7vlp-build-action-1163358188/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-workflowp7vlp/series-workflowp7vlp-convert-artifact-4193691497/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,}