Name: series-workflowjmdh2 Phase: Succeeded StartedAt: 2026-07-26 02:48:55 +0000 UTC FinishedAt: 2026-07-26 07:53:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjmdh2[0] Phase: Succeeded StartedAt: 2026-07-26 02:48:55 +0000 UTC FinishedAt: 2026-07-26 03:20:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjmdh2[0].run-triage Phase: Succeeded StartedAt: 2026-07-26 02:48:55 +0000 UTC FinishedAt: 2026-07-26 03:20:31 +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": "04026c998c24ac47eb76886b9790c5710b603eb4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IPV6", "INET6_AH", "XFRM_USER" ], "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": "04026c998c24ac47eb76886b9790c5710b603eb4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IPV6", "INET6_AH", "XFRM_USER" ], "series_id": "f63f2e67-13a1-4f80-a643-a932130263dd" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ah6_input", "ah6_output" ], "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+CgkJCTx0ZD4yMDI2LzA3LzI2IDAzOjE5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lQVjYmIzM0OywKICAgICYjMzQ7SU5FVDZfQUgmIzM0OywKICAgICYjMzQ7WEZSTV9VU0VSJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YWg2X2lucHV0JiMzNDssCiAgICAmIzM0O2FoNl9vdXRwdXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgb3V0LW9mLWJvdW5kcyBhY2Nlc3MgaW4gaXB2Nl9yZWFycmFuZ2VfcnRoZHIgYnkgdmFsaWRhdGluZyBzZWdtZW50c19sZWZ0IGFnYWluc3QgdGhlIHJvdXRpbmcgaGVhZGVyIGxlbmd0aC4gVGhpcyBjb2RlIGlzIGV4ZWN1dGVkIGR1cmluZyBJUHY2IElQc2VjIEFIIChBdXRoZW50aWNhdGlvbiBIZWFkZXIpIHBhY2tldCBwcm9jZXNzaW5nLiBGdXp6aW5nIHNob3VsZCBmb2N1cyBvbiB0aGUgQUg2IGlucHV0IGFuZCBvdXRwdXQgcGF0aHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMDM6MTk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAxMzk5YjU2ODRhMDkzOGQ5M2U2NjE1YjYyNGNiNmZjNDhlNWJkMjEyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBKdWwgMjYgMDM6MTk6NDMgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L2lwdjYvYWg2LmMgYi9uZXQvaXB2Ni9haDYuY1xuaW5kZXggNzZmN2EyZGU5MTA4ZWIuLmM5NmY3ZTBkMGE0ODE1IDEwMDY0NFxuLS0tIGEvbmV0L2lwdjYvYWg2LmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC9pcHY2L2FoNi5jXG5AQCAtMjMyLDI2ICYjNDM7MjMyLDI4IEBAIHN0YXRpYyB2b2lkIGlwdjZfcmVhcnJhbmdlX2Rlc3RvcHQoc3RydWN0IGlwdjZoZHIgKmlwaCwgc3RydWN0IGlwdjZfb3B0X2hkciAqZGVzXG4gICpcdFJlYXJyYW5nZSB0aGUgZGVzdGluYXRpb24gYWRkcmVzcyBpbiBAaXBoIGFuZCB0aGUgYWRkcmVzc2VzIGluIEBydGhkclxuICAqXHRzbyB0aGF0IHRoZXkgYXBwZWFyIGluIHRoZSBvcmRlciB0aGV5IHdpbGwgYXQgdGhlIGZpbmFsIGRlc3RpbmF0aW9uLlxuICAqXHRTZWUgQXBwZW5kaXggQTIgb2YgUkZDIDI0MDIgZm9yIGRldGFpbHMuXG4mIzQzOyAqXG4mIzQzOyAqIFJldHVybjogMCBvbiBzdWNjZXNzLCAtRUlOVkFMIGlmIHNlZ21lbnRzX2xlZnQgZXhjZWVkcyB0aGUgbnVtYmVyIG9mXG4mIzQzOyAqIGFkZHJlc3NlcyBkZXNjcmliZWQgYnkgaGRybGVuLlxuICAqL1xuLXN0YXRpYyB2b2lkIGlwdjZfcmVhcnJhbmdlX3J0aGRyKHN0cnVjdCBpcHY2aGRyICppcGgsIHN0cnVjdCBpcHY2X3J0X2hkciAqcnRoZHIpXG4mIzQzO3N0YXRpYyBpbnQgaXB2Nl9yZWFycmFuZ2VfcnRoZHIoc3RydWN0IGlwdjZoZHIgKmlwaCwgc3RydWN0IGlwdjZfcnRfaGRyICpydGhkcilcbiB7XG4tXHRpbnQgc2VnbWVudHMsIHNlZ21lbnRzX2xlZnQ7XG4mIzQzO1x0dW5zaWduZWQgaW50IHNlZ21lbnRzLCBzZWdtZW50c19sZWZ0O1xuIFx0c3RydWN0IGluNl9hZGRyICphZGRycztcbiBcdHN0cnVjdCBpbjZfYWRkciBmaW5hbF9hZGRyO1xuIFxuIFx0c2VnbWVudHNfbGVmdCA9IHJ0aGRyLVx1MDAzZXNlZ21lbnRzX2xlZnQ7XG4gXHRpZiAoc2VnbWVudHNfbGVmdCA9PSAwKVxuLVx0XHRyZXR1cm47XG4tXHRydGhkci1cdTAwM2VzZWdtZW50c19sZWZ0ID0gMDtcbiYjNDM7XHRcdHJldHVybiAwO1xuIFxuLVx0LyogVGhlIHZhbHVlIG9mIHJ0aGRyLVx1MDAzZWhkcmxlbiBoYXMgYmVlbiB2ZXJpZmllZCBlaXRoZXIgYnkgdGhlIHN5c3RlbVxuLVx0ICogY2FsbCBpZiBpdCBpcyBsb2NhbGx5IGdlbmVyYXRlZCwgb3IgYnkgaXB2Nl9ydGhkcl9yY3YoKSBmb3IgaW5jb21pbmdcbi1cdCAqIHBhY2tldHMuICBTbyB3ZSBjYW4gYXNzdW1lIHRoYXQgaXQgaXMgZXZlbiBhbmQgdGhhdCBzZWdtZW50cyBpc1xuLVx0ICogZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHNlZ21lbnRzX2xlZnQuXG4tXHQgKlxuLVx0ICogRm9yIHRoZSBzYW1lIHJlYXNvbiB3ZSBjYW4gYXNzdW1lIHRoYXQgdGhpcyBvcHRpb24gaXMgb2YgdHlwZSAwLlxuJiM0MztcdC8qIFJhdyBsb2NhbGx5IGdlbmVyYXRlZCBwYWNrZXRzIGNhbiByZWFjaCBBSDYgd2l0aG91dCB0aGUgaW52YXJpYW50XG4mIzQzO1x0ICogcmVxdWlyZWQgYnkgdGhlIHJ0MC1zdHlsZSBhZGRyZXNzIHJlYXJyYW5nZW1lbnQgYmVsb3cuXG4gXHQgKi9cbiBcdHNlZ21lbnRzID0gcnRoZHItXHUwMDNlaGRybGVuIFx1MDAzZVx1MDAzZSAxO1xuJiM0MztcdGlmIChzZWdtZW50c19sZWZ0IFx1MDAzZSBzZWdtZW50cylcbiYjNDM7XHRcdHJldHVybiAtRUlOVkFMO1xuJiM0MztcbiYjNDM7XHRydGhkci1cdTAwM2VzZWdtZW50c19sZWZ0ID0gMDtcbiBcbiBcdGFkZHJzID0gKChzdHJ1Y3QgcnQwX2hkciAqKXJ0aGRyKS1cdTAwM2VhZGRyO1xuIFx0ZmluYWxfYWRkciA9IGFkZHJzW3NlZ21lbnRzIC0gMV07XG5AQCAtMjYxLDYgJiM0MzsyNjMsOCBAQCBzdGF0aWMgdm9pZCBpcHY2X3JlYXJyYW5nZV9ydGhkcihzdHJ1Y3QgaXB2NmhkciAqaXBoLCBzdHJ1Y3QgaXB2Nl9ydF9oZHIgKnJ0aGRyKVxuIFxuIFx0YWRkcnNbMF0gPSBpcGgtXHUwMDNlZGFkZHI7XG4gXHRpcGgtXHUwMDNlZGFkZHIgPSBmaW5hbF9hZGRyO1xuJiM0MztcbiYjNDM7XHRyZXR1cm4gMDtcbiB9XG4gXG4gc3RhdGljIGludCBpcHY2X2NsZWFyX211dGFibGVfb3B0aW9ucyhzdHJ1Y3QgaXB2NmhkciAqaXBoLCBpbnQgbGVuLCBpbnQgZGlyKVxuQEAgLTI3Myw2ICYjNDM7Mjc3LDcgQEAgc3RhdGljIGludCBpcHY2X2NsZWFyX211dGFibGVfb3B0aW9ucyhzdHJ1Y3QgaXB2NmhkciAqaXBoLCBpbnQgbGVuLCBpbnQgZGlyKVxuIFx0fSBleHRoZHIgPSB7IC5pcGggPSBpcGggfTtcbiBcdGNoYXIgKmVuZCA9IGV4dGhkci5yYXcgJiM0MzsgbGVuO1xuIFx0aW50IG5leHRoZHIgPSBpcGgtXHUwMDNlbmV4dGhkcjtcbiYjNDM7XHRpbnQgZXJyO1xuIFxuIFx0ZXh0aGRyLmlwaCYjNDM7JiM0Mzs7XG4gXG5AQCAtMjkyLDcgJiM0MzsyOTcsOSBAQCBzdGF0aWMgaW50IGlwdjZfY2xlYXJfbXV0YWJsZV9vcHRpb25zKHN0cnVjdCBpcHY2aGRyICppcGgsIGludCBsZW4sIGludCBkaXIpXG4gXHRcdFx0YnJlYWs7XG4gXG4gXHRcdGNhc2UgTkVYVEhEUl9ST1VUSU5HOlxuLVx0XHRcdGlwdjZfcmVhcnJhbmdlX3J0aGRyKGlwaCwgZXh0aGRyLnJ0aCk7XG4mIzQzO1x0XHRcdGVyciA9IGlwdjZfcmVhcnJhbmdlX3J0aGRyKGlwaCwgZXh0aGRyLnJ0aCk7XG4mIzQzO1x0XHRcdGlmIChlcnIpXG4mIzQzO1x0XHRcdFx0cmV0dXJuIGVycjtcbiBcdFx0XHRicmVhaztcbiBcbiBcdFx0ZGVmYXVsdDpcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAwMzoxOTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7SVBWNiYjMzQ7LAogICAgJiMzNDtJTkVUNl9BSCYjMzQ7LAogICAgJiMzNDtYRlJNX1VTRVImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDthaDZfaW5wdXQmIzM0OywKICAgICYjMzQ7YWg2X291dHB1dCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIGFjY2VzcyBpbiBpcHY2X3JlYXJyYW5nZV9ydGhkciBieSB2YWxpZGF0aW5nIHNlZ21lbnRzX2xlZnQgYWdhaW5zdCB0aGUgcm91dGluZyBoZWFkZXIgbGVuZ3RoLiBUaGlzIGNvZGUgaXMgZXhlY3V0ZWQgZHVyaW5nIElQdjYgSVBzZWMgQUggKEF1dGhlbnRpY2F0aW9uIEhlYWRlcikgcGFja2V0IHByb2Nlc3NpbmcuIEZ1enppbmcgc2hvdWxkIGZvY3VzIG9uIHRoZSBBSDYgaW5wdXQgYW5kIG91dHB1dCBwYXRocy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDEzOTliNTY4NGEwOTM4ZDkzZTY2MTViNjI0Y2I2ZmM0OGU1YmQyMTIKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU3VuIEp1bCAyNiAwMzoxOTo0MyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2FoNi5jIGIvbmV0L2lwdjYvYWg2LmMKaW5kZXggNzZmN2EyZGU5MTA4ZWIuLmM5NmY3ZTBkMGE0ODE1IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9haDYuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvaXB2Ni9haDYuYwpAQCAtMjMyLDI2ICYjNDM7MjMyLDI4IEBAIHN0YXRpYyB2b2lkIGlwdjZfcmVhcnJhbmdlX2Rlc3RvcHQoc3RydWN0IGlwdjZoZHIgKmlwaCwgc3RydWN0IGlwdjZfb3B0X2hkciAqZGVzCiAgKglSZWFycmFuZ2UgdGhlIGRlc3RpbmF0aW9uIGFkZHJlc3MgaW4gQGlwaCBhbmQgdGhlIGFkZHJlc3NlcyBpbiBAcnRoZHIKICAqCXNvIHRoYXQgdGhleSBhcHBlYXIgaW4gdGhlIG9yZGVyIHRoZXkgd2lsbCBhdCB0aGUgZmluYWwgZGVzdGluYXRpb24uCiAgKglTZWUgQXBwZW5kaXggQTIgb2YgUkZDIDI0MDIgZm9yIGRldGFpbHMuCiYjNDM7ICoKJiM0MzsgKiBSZXR1cm46IDAgb24gc3VjY2VzcywgLUVJTlZBTCBpZiBzZWdtZW50c19sZWZ0IGV4Y2VlZHMgdGhlIG51bWJlciBvZgomIzQzOyAqIGFkZHJlc3NlcyBkZXNjcmliZWQgYnkgaGRybGVuLgogICovCi1zdGF0aWMgdm9pZCBpcHY2X3JlYXJyYW5nZV9ydGhkcihzdHJ1Y3QgaXB2NmhkciAqaXBoLCBzdHJ1Y3QgaXB2Nl9ydF9oZHIgKnJ0aGRyKQomIzQzO3N0YXRpYyBpbnQgaXB2Nl9yZWFycmFuZ2VfcnRoZHIoc3RydWN0IGlwdjZoZHIgKmlwaCwgc3RydWN0IGlwdjZfcnRfaGRyICpydGhkcikKIHsKLQlpbnQgc2VnbWVudHMsIHNlZ21lbnRzX2xlZnQ7CiYjNDM7CXVuc2lnbmVkIGludCBzZWdtZW50cywgc2VnbWVudHNfbGVmdDsKIAlzdHJ1Y3QgaW42X2FkZHIgKmFkZHJzOwogCXN0cnVjdCBpbjZfYWRkciBmaW5hbF9hZGRyOwogCiAJc2VnbWVudHNfbGVmdCA9IHJ0aGRyLSZndDtzZWdtZW50c19sZWZ0OwogCWlmIChzZWdtZW50c19sZWZ0ID09IDApCi0JCXJldHVybjsKLQlydGhkci0mZ3Q7c2VnbWVudHNfbGVmdCA9IDA7CiYjNDM7CQlyZXR1cm4gMDsKIAotCS8qIFRoZSB2YWx1ZSBvZiBydGhkci0mZ3Q7aGRybGVuIGhhcyBiZWVuIHZlcmlmaWVkIGVpdGhlciBieSB0aGUgc3lzdGVtCi0JICogY2FsbCBpZiBpdCBpcyBsb2NhbGx5IGdlbmVyYXRlZCwgb3IgYnkgaXB2Nl9ydGhkcl9yY3YoKSBmb3IgaW5jb21pbmcKLQkgKiBwYWNrZXRzLiAgU28gd2UgY2FuIGFzc3VtZSB0aGF0IGl0IGlzIGV2ZW4gYW5kIHRoYXQgc2VnbWVudHMgaXMKLQkgKiBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gc2VnbWVudHNfbGVmdC4KLQkgKgotCSAqIEZvciB0aGUgc2FtZSByZWFzb24gd2UgY2FuIGFzc3VtZSB0aGF0IHRoaXMgb3B0aW9uIGlzIG9mIHR5cGUgMC4KJiM0MzsJLyogUmF3IGxvY2FsbHkgZ2VuZXJhdGVkIHBhY2tldHMgY2FuIHJlYWNoIEFINiB3aXRob3V0IHRoZSBpbnZhcmlhbnQKJiM0MzsJICogcmVxdWlyZWQgYnkgdGhlIHJ0MC1zdHlsZSBhZGRyZXNzIHJlYXJyYW5nZW1lbnQgYmVsb3cuCiAJICovCiAJc2VnbWVudHMgPSBydGhkci0mZ3Q7aGRybGVuICZndDsmZ3Q7IDE7CiYjNDM7CWlmIChzZWdtZW50c19sZWZ0ICZndDsgc2VnbWVudHMpCiYjNDM7CQlyZXR1cm4gLUVJTlZBTDsKJiM0MzsKJiM0MzsJcnRoZHItJmd0O3NlZ21lbnRzX2xlZnQgPSAwOwogCiAJYWRkcnMgPSAoKHN0cnVjdCBydDBfaGRyICopcnRoZHIpLSZndDthZGRyOwogCWZpbmFsX2FkZHIgPSBhZGRyc1tzZWdtZW50cyAtIDFdOwpAQCAtMjYxLDYgJiM0MzsyNjMsOCBAQCBzdGF0aWMgdm9pZCBpcHY2X3JlYXJyYW5nZV9ydGhkcihzdHJ1Y3QgaXB2NmhkciAqaXBoLCBzdHJ1Y3QgaXB2Nl9ydF9oZHIgKnJ0aGRyKQogCiAJYWRkcnNbMF0gPSBpcGgtJmd0O2RhZGRyOwogCWlwaC0mZ3Q7ZGFkZHIgPSBmaW5hbF9hZGRyOwomIzQzOwomIzQzOwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGludCBpcHY2X2NsZWFyX211dGFibGVfb3B0aW9ucyhzdHJ1Y3QgaXB2NmhkciAqaXBoLCBpbnQgbGVuLCBpbnQgZGlyKQpAQCAtMjczLDYgJiM0MzsyNzcsNyBAQCBzdGF0aWMgaW50IGlwdjZfY2xlYXJfbXV0YWJsZV9vcHRpb25zKHN0cnVjdCBpcHY2aGRyICppcGgsIGludCBsZW4sIGludCBkaXIpCiAJfSBleHRoZHIgPSB7IC5pcGggPSBpcGggfTsKIAljaGFyICplbmQgPSBleHRoZHIucmF3ICYjNDM7IGxlbjsKIAlpbnQgbmV4dGhkciA9IGlwaC0mZ3Q7bmV4dGhkcjsKJiM0MzsJaW50IGVycjsKIAogCWV4dGhkci5pcGgmIzQzOyYjNDM7OwogCkBAIC0yOTIsNyAmIzQzOzI5Nyw5IEBAIHN0YXRpYyBpbnQgaXB2Nl9jbGVhcl9tdXRhYmxlX29wdGlvbnMoc3RydWN0IGlwdjZoZHIgKmlwaCwgaW50IGxlbiwgaW50IGRpcikKIAkJCWJyZWFrOwogCiAJCWNhc2UgTkVYVEhEUl9ST1VUSU5HOgotCQkJaXB2Nl9yZWFycmFuZ2VfcnRoZHIoaXBoLCBleHRoZHIucnRoKTsKJiM0MzsJCQllcnIgPSBpcHY2X3JlYXJyYW5nZV9ydGhkcihpcGgsIGV4dGhkci5ydGgpOwomIzQzOwkJCWlmIChlcnIpCiYjNDM7CQkJCXJldHVybiBlcnI7CiAJCQlicmVhazsKIAogCQlkZWZhdWx0Ogo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAwMzoxOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyODAyCgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogMTUyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFNlY3VyaXR5LVJlbGF0ZWQgUGF0Y2ggdG8gaXB2Nl9yZWFycmFuZ2VfcnRoZHIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBuZXQvaXB2Ni9haDYuY2AsIGFuZCBpdCYjMzk7cyBtYWtpbmcgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byBgaXB2Nl9yZWFycmFuZ2VfcnRoZHJgLiBUaGUgcHJpbWFyeSB0aGluZyBqdW1waW5nIG91dCBpcyB0aGF0IHRoZXkmIzM5O3ZlIGNoYW5nZWQgdGhlIHJldHVybiB0eXBlIGZyb20gYHZvaWRgIHRvIGBpbnRgLiAgVGhhdCBpbW1lZGlhdGVseSBzaWduYWxzIGEgcG90ZW50aWFsIGZvciBlcnJvciBoYW5kbGluZy4gIEFuZCBJIHNlZSB0aGUgYWRkZWQgY2hlY2s6IGBpZiAoc2VnbWVudHNfbGVmdCAmZ3Q7IHNlZ21lbnRzKSByZXR1cm4gLUVJTlZBTDtgLiBBaCwgdGhhdCYjMzk7cyBhbG1vc3QgY2VydGFpbmx5IHRvIHByZXZlbnQgYW4gb3V0LW9mLWJvdW5kcyByZWFkIG9yIHdyaXRlLCBvciBtYXliZSBzb21lIG90aGVyIGtpbmQgb2YgZGF0YSBjb3JydXB0aW9uLCBieSB2YWxpZGF0aW5nIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBgc2VnbWVudHNfbGVmdGAgYW5kIGBzZWdtZW50c2AuIEdvb2QgY2F0Y2guCgpUaGUgY29kZSBub3cgcmV0dXJucyBhbiBlcnJvciBjb2RlLCAtRUlOVkFMLiAgVGhlIGltbWVkaWF0ZSBpbXBsaWNhdGlvbiBpcyB0aGF0IHRoZSBjYWxsZXIsIGBpcHY2X2NsZWFyX211dGFibGVfb3B0aW9uc2AsIG5vdyAqbXVzdCogYmUgdXBkYXRlZCB0byBhY2NvdW50IGZvciB0aGlzIG5ldyByZXR1cm4gdmFsdWUsIGFuZCBpdCBsb29rcyBsaWtlIGl0IGlzLiBJdCYjMzk7cyB0aGUgb25seSBjYWxsZXIgbGlzdGVkLiBIb3dldmVyLCBJIHdhbnQgdG8gdGFrZSBhIGNsb3NlciBsb29rIGFuZCBlbnN1cmUgbm8gb3RoZXIgZnVuY3Rpb25hbGl0eSBkZXBlbmRzIG9uIHRoYXQuIEkmIzM5O20gZ29pbmcgdG8gc2NhbiB0aGUgb3RoZXIgY2FsbHMgdG8gYGlwdjZfY2xlYXJfbXV0YWJsZV9vcHRpb25zYCB0byBlbnN1cmUgdGhhdCB0aGVyZSBhcmVuJiMzOTt0IGFueSBvdGhlciBzdWJ0bGUgZGVwZW5kZW5jaWVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDAzOjE5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2lwdjZfY2xlYXJfbXV0YWJsZV9vcHRpb25zJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L2lwdjYvYWg2LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L2lwdjYvYWg2LmM9MjM5PXN0YXRpYyBpbnQgaXB2Nl9yZWFycmFuZ2VfcnRoZHIoc3RydWN0IGlwdjZoZHIgKmlwaCwgc3RydWN0IGlwdjZfcnRfaGRyICpydGhkcilcbi0tXG5uZXQvaXB2Ni9haDYuYy0yNjktXG5uZXQvaXB2Ni9haDYuYzoyNzA6c3RhdGljIGludCBpcHY2X2NsZWFyX211dGFibGVfb3B0aW9ucyhzdHJ1Y3QgaXB2NmhkciAqaXBoLCBpbnQgbGVuLCBpbnQgZGlyKVxubmV0L2lwdjYvYWg2LmMtMjcxLXtcbi0tXG5uZXQvaXB2Ni9haDYuYz0zNTA9c3RhdGljIGludCBhaDZfb3V0cHV0KHN0cnVjdCB4ZnJtX3N0YXRlICp4LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuLS1cbm5ldC9pcHY2L2FoNi5jLTQxNi1cdGlmIChleHRsZW4pIHtcbm5ldC9pcHY2L2FoNi5jOjQxNzpcdFx0ZXJyID0gaXB2Nl9jbGVhcl9tdXRhYmxlX29wdGlvbnModG9wX2lwaCxcbm5ldC9pcHY2L2FoNi5jLTQxOC1cdFx0XHRcdFx0XHQgZXh0bGVuIC0gc2l6ZW9mKCppcGhfZXh0KSAmIzQzO1xuLS1cbm5ldC9pcHY2L2FoNi5jPTUxOT1zdGF0aWMgaW50IGFoNl9pbnB1dChzdHJ1Y3QgeGZybV9zdGF0ZSAqeCwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbi0tXG5uZXQvaXB2Ni9haDYuYy02MTMtXG5uZXQvaXB2Ni9haDYuYzo2MTQ6XHRlcnIgPSBpcHY2X2NsZWFyX211dGFibGVfb3B0aW9ucyhpcDZoLCBoZHJfbGVuLCBYRlJNX1BPTElDWV9JTik7XG5uZXQvaXB2Ni9haDYuYy02MTUtXHRpZiAoZXJyKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDAzOjE5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM2MzQKCQkJCQkJCW91dHB1dDogMjkKCQkJCQkJCXRob3VnaHRzOiA0NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0JiMzOTtzIGludGVybmFsIG1vbm9sb2d1ZToKCioqSVB2NiBJUHNlYyBBSCBEZWVwIERpdmUqKgoKQWxyaWdodCwgbGV0JiMzOTtzIHNlZS4uLiB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGBhaDZfb3V0cHV0YCBhbmQgYGFoNl9pbnB1dGAuICBSaWdodCwgdGhlc2UgYXJlIHRoZSBjcml0aWNhbCBmdW5jdGlvbiBjYWxscyB3aXRoaW4gYW4gSVB2NiBJUHNlYyBBSCBpbXBsZW1lbnRhdGlvbi4gU3BlY2lmaWNhbGx5LCB0aGV5JiMzOTtyZSB0aGUgc2VuZCBhbmQgcmVjZWl2ZSBwYXRocywgdGhlIGNvcmUgb2YgdGhlIEF1dGhlbnRpY2F0aW9uIEhlYWRlciBmdW5jdGlvbmFsaXR5LiBNeSBmaXJzdCBpbnN0aW5jdCwgYXMgYWx3YXlzLCBpcyB0byBjaGVjayB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zLiAgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgaXMgYmVpbmcgY29tcGlsZWQgaW4sIGFuZCB3aGF0IGRlcGVuZGVuY2llcyBtaWdodCBiZSBhdCBwbGF5LiBTbywgS2NvbmZpZyBpdCBpcy4gTGV0IG1lIGltbWVkaWF0ZWx5IGNoZWNrIHRoZSBLY29uZmlnIHNldHRpbmdzIHJlbGF0ZWQgdG8gYGFoNi5jYC4gVGhhdCBzaG91bGQgdGVsbCB0aGUgd2hvbGUgc3RvcnkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMDM6MTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YWg2Lm8mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvaXB2Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L2lwdjYvTWFrZWZpbGU9Mjg9aXB2Ni0kKENPTkZJR19JUFY2X0lPQU02X0xXVFVOTkVMKSAmIzQzOz0gaW9hbTZfaXB0dW5uZWwub1xubmV0L2lwdjYvTWFrZWZpbGUtMjktXG5uZXQvaXB2Ni9NYWtlZmlsZTozMDpvYmotJChDT05GSUdfSU5FVDZfQUgpICYjNDM7PSBhaDYub1xubmV0L2lwdjYvTWFrZWZpbGUtMzEtb2JqLSQoQ09ORklHX0lORVQ2X0VTUCkgJiM0Mzs9IGVzcDYub1xuLS1cbm5ldC9pcHY2L2FoNi5jPTI3MD1zdGF0aWMgaW50IGlwdjZfY2xlYXJfbXV0YWJsZV9vcHRpb25zKHN0cnVjdCBpcHY2aGRyICppcGgsIGludCBsZW4sIGludCBkaXIpXG4tLVxubmV0L2lwdjYvYWg2LmMtMzE1LVxubmV0L2lwdjYvYWg2LmM6MzE2OnN0YXRpYyB2b2lkIGFoNl9vdXRwdXRfZG9uZSh2b2lkICpkYXRhLCBpbnQgZXJyKVxubmV0L2lwdjYvYWg2LmMtMzE3LXtcbi0tXG5uZXQvaXB2Ni9haDYuYy0zNDktXG5uZXQvaXB2Ni9haDYuYzozNTA6c3RhdGljIGludCBhaDZfb3V0cHV0KHN0cnVjdCB4ZnJtX3N0YXRlICp4LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxubmV0L2lwdjYvYWg2LmMtMzUxLXtcbi0tXG5uZXQvaXB2Ni9haDYuYy00NDktXHRhaGFzaF9yZXF1ZXN0X3NldF9jcnlwdChyZXEsIHNnLCBpY3YsIHNrYi1cdTAwM2VsZW4gJiM0Mzsgc2VxaGlfbGVuKTtcbm5ldC9pcHY2L2FoNi5jOjQ1MDpcdGFoYXNoX3JlcXVlc3Rfc2V0X2NhbGxiYWNrKHJlcSwgMCwgYWg2X291dHB1dF9kb25lLCBza2IpO1xubmV0L2lwdjYvYWg2LmMtNDUxLVxuLS1cbm5ldC9pcHY2L2FoNi5jPTc4Nz1zdGF0aWMgY29uc3Qgc3RydWN0IHhmcm1fdHlwZSBhaDZfdHlwZSA9IHtcbi0tXG5uZXQvaXB2Ni9haDYuYy03OTMtXHQuaW5wdXRcdFx0PSBhaDZfaW5wdXQsXG5uZXQvaXB2Ni9haDYuYzo3OTQ6XHQub3V0cHV0XHRcdD0gYWg2X291dHB1dCxcbm5ldC9pcHY2L2FoNi5jLTc5NS19O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDAzOjE5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQzNTIKCQkJCQkJCW91dHB1dDogMzEKCQkJCQkJCXRob3VnaHRzOiAyNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBzdW1tYXJ5LCBhcyB0aGUgdGhvdWdodCBwcm9jZXNzIHVuZm9sZHM6CgoqKkNvbmZpZ3VyYXRpb24gRXhhbWluYXRpb246IElORVQ2X0FIKioKCkFscmlnaHQsIHRoZSBjb25maWd1cmF0aW9uIGluIHF1ZXN0aW9uIGlzIGBJTkVUNl9BSGAuIE15IGluaXRpYWwgc3RlcCBpcyB0byBkZWx2ZSBkaXJlY3RseSBpbnRvIHRoZSBLY29uZmlnIGZpbGUuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBkZWZpbml0aW9uLCBkZXBlbmRlbmNpZXMsIGFuZCBhbnkgYXNzb2NpYXRlZCBpbXBsaWNhdGlvbnMgd2l0aGluIHRoZSBrZXJuZWwgY29uZmlndXJhdGlvbi4gSSYjMzk7bSBnb2luZyB0byBsb29rIHVwIGBJTkVUNl9BSGAgaW4gS2NvbmZpZyB0byBncmFzcCB0aGUgc3BlY2lmaWNzIG9mIHRoaXMgcGFydGljdWxhciBzZXR0aW5nLCBpdHMgcHVycG9zZSwgYW5kIGhvdyBpdCBpbnRlcmFjdHMgd2l0aCBvdGhlciBjb21wb25lbnRzLiBUaGlzIGlzIHRoZSBzdGFydGluZyBwb2ludCBmb3IgYW55IG1lYW5pbmdmdWwgYW5hbHlzaXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMDM6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIElORVQ2X0FIJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L2lwdjYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9pcHY2L0tjb25maWc9Mzk9Y29uZmlnIElQVjZfT1BUSU1JU1RJQ19EQURcbi0tXG5uZXQvaXB2Ni9LY29uZmlnLTQ2LVxubmV0L2lwdjYvS2NvbmZpZzo0Nzpjb25maWcgSU5FVDZfQUhcbm5ldC9pcHY2L0tjb25maWctNDgtXHR0cmlzdGF0ZSBcJiMzNDtJUHY2OiBBSCB0cmFuc2Zvcm1hdGlvblwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDAzOjIwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ2MTAKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAxMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkFuYWx5emluZyB0aGUgSU5FVDZfQUggRGVwZW5kZW5jaWVzKioKCkFscmlnaHQsIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcy4gJiMzNDtJTkVUNl9BSCYjMzQ7Li4uIHRoYXQgaW1tZWRpYXRlbHkgYnJpbmdzIHRvIG1pbmQgdGhlIEF1dGhlbnRpY2F0aW9uIEhlYWRlciBmb3IgSVB2Ni4gTXkgZmlyc3QgaW5jbGluYXRpb24gaXMgdG8gbWFwIG91dCBpdHMgZGVwZW5kZW5jaWVzLiBJdCYjMzk7cyBub3QganVzdCBhIHN0YW5kYWxvbmUgZW50aXR5OyBpdCYjMzk7cyBpbnRyaWNhdGVseSB3b3ZlbiBpbnRvIHRoZSBJUHY2IHNlY3VyaXR5IGFyY2hpdGVjdHVyZS4gV2UgbmVlZCB0byB0aGluayBhYm91dCBob3cgaXQgaW50ZXJhY3RzIHdpdGggdGhlIElQc2VjIGZyYW1ld29yaywgdGhlIHRyYW5zcG9ydCBwcm90b2NvbHMgaXQgcHJvdGVjdHMsIGFuZCwgb2YgY291cnNlLCB0aGUga2V5IG1hbmFnZW1lbnQgdGhhdCB1bmRlcnBpbnMgaXQuCgpJJiMzOTttIG1lbnRhbGx5IHB1bGxpbmcgdXAgdGhlIHJlbGV2YW50IFJGQ3Mg4oCTIFJGQyA0MzAyLCBwcm9iYWJseS4gV2hhdCBjcnlwdG9ncmFwaGljIGFsZ29yaXRobXMgYXJlIG1hbmRhdGVkIG9yIGFsbG93ZWQ/IEFyZSB0aGVyZSBhbnkgc3BlY2lmaWMgbGlicmFyaWVzIGl0IHJlbGllcyBvbiBmb3IgdGhvc2UgYWxnb3JpdGhtcywgbGlrZSBPcGVuU1NMIG9yIHNvbWV0aGluZyBtb3JlIHNwZWNpYWxpemVkIHdpdGhpbiBhIGtlcm5lbD8gSSBuZWVkIHRvIGNvbnNpZGVyIHdoaWNoIG90aGVyIG1vZHVsZXMgb3IgcHJvdG9jb2xzIGFyZSByZWxpYW50IG9uIGBJTkVUNl9BSGAsIG9yIHVzZSBpdCB0byBmdW5jdGlvbi4KCkkmIzM5O20gYWxzbyBjb25zaWRlcmluZyB0aGUgaW1wbGljYXRpb25zIG9mIGl0cyBwcmVzZW5jZSwgb3IgYWJzZW5jZSwgaW4gdGVybXMgb2YgbmV0d29yayBwZXJmb3JtYW5jZS4gV2hhdCYjMzk7cyB0aGUgb3ZlcmhlYWQgb2YgQUggcHJvY2Vzc2luZywgYW5kIGhvdyBkb2VzIGl0IGNvbXBhcmUgdG8gRVNQPyBEb2VzIHRoZSBwcmVzZW5jZSBvZiBgSU5FVDZfQUhgIGFmZmVjdCBNVFUsIGFuZCBhbnkgcG90ZW50aWFsIGZvciBmcmFnbWVudGF0aW9uPyBJIG5lZWQgdG8gdGhpbmsgYWJvdXQgYW55IHBvdGVudGlhbCBjb25mbGljdHMgb3IgaW50ZXJhY3Rpb25zIHdpdGggTkFULCBhbmQgaWYgdGhpcyByZXF1aXJlcyBhbnkgc3BlY2lhbCBjb25zaWRlcmF0aW9ucy4KClVsdGltYXRlbHksIEkgd2FudCB0byBmb3JtIGEgY2xlYXIgcGljdHVyZSBvZiBpdHMgcm9sZSwgdGhlIGFyY2hpdGVjdHVyYWwgaW1wbGljYXRpb25zIG9mIGBJTkVUNl9BSGAgYW5kIHVuZGVyc3RhbmQgdGhlIGV4dGVudCBvZiBpdHMgZm9vdHByaW50LCBhbmQgYW55IHBvdGVudGlhbCBzZWN1cml0eSBpbXBsaWNhdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDAzOjIwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bmV0L2lwdjYvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDQ3LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgNDc6XHRjb25maWcgSU5FVDZfQUhcbiAgNDg6XHRcdHRyaXN0YXRlIFwmIzM0O0lQdjY6IEFIIHRyYW5zZm9ybWF0aW9uXCYjMzQ7XG4gIDQ5Olx0XHRzZWxlY3QgWEZSTV9BSFxuICA1MDpcdFx0aGVscFxuICA1MTpcdFx0ICBTdXBwb3J0IGZvciBJUHNlYyBBSCAoQXV0aGVudGljYXRpb24gSGVhZGVyKS5cbiAgNTI6XHRcbiAgNTM6XHRcdCAgQUggY2FuIGJlIHVzZWQgd2l0aCB2YXJpb3VzIGF1dGhlbnRpY2F0aW9uIGFsZ29yaXRobXMuICBCZXNpZGVzXG4gIDU0Olx0XHQgIGVuYWJsaW5nIEFIIHN1cHBvcnQgaXRzZWxmLCB0aGlzIG9wdGlvbiBlbmFibGVzIHRoZSBnZW5lcmljXG4gIDU1Olx0XHQgIGltcGxlbWVudGF0aW9ucyBvZiB0aGUgYWxnb3JpdGhtcyB0aGF0IFJGQyA4MjIxIGxpc3RzIGFzIE1VU1QgYmVcbiAgNTY6XHRcdCAgaW1wbGVtZW50ZWQuICBJZiB5b3UgbmVlZCBhbnkgb3RoZXIgYWxnb3JpdGhtcywgeW91JiMzOTtsbCBuZWVkIHRvIGVuYWJsZVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAwMzoyMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MTM1CgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogMjgyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgSVBzZWMgQUh2NiBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gZGl2aW5nIGludG8gdGhpcyBJUHNlYyBBSHY2IHNpdHVhdGlvbi4gSXQmIzM5O3MgY2xlYXIgZnJvbSBgbmV0L2lwdjYvS2NvbmZpZ2AgdGhhdCB0aGlzIGNvbmZpZ3VyYXRpb24gaGluZ2VzIGltcGxpY2l0bHkgb24gYElQVjZgLCBzcGVjaWZpY2FsbHkgYmVjYXVzZSBgSU5FVDZfQUhgIGlzIG5lc3RlZCB1bmRlciBgbWVudWNvbmZpZyBJUFY2YC4gVGhlcmVmb3JlLCBgSVBWNmAgYW5kIGBJTkVUNl9BSGAgYXJlIG15IHByaW1hcnkgY29uZmlndXJhdGlvbiBwb2ludHMgb2YgaW50ZXJlc3QuCgpNeSBpbW1lZGlhdGUgZm9jdXMgaXMgb24gdGhlIGBhaDZfaW5wdXRgIGFuZCBgYWg2X291dHB1dGAgZnVuY3Rpb25zLiBJIGtub3cgdGhleSYjMzk7cmUgY3JpdGljYWwgY29tcG9uZW50cyBvZiB0aGUgWEZSTSBJUHNlYyBzdGFjaywgYW5kIHRoYXQmIzM5O3MgdGhlIHBhdGh3YXkgdG8gdGhlbS4KCk5vdywgbGV0JiMzOTtzIHNlZSBpZiB0aGVyZSBhcmUgYW55IG90aGVyIHN1cHBvcnRpbmcgY29uZmlncyBJIG5lZWQgdG8gYWRkcmVzcy4gSXQgc2VlbXMsIGluaXRpYWxseSwgdGhhdCBgSU5FVDZfQUhgIGl0c2VsZiwgYWxvbmcgd2l0aCB0aGUgZm91bmRhdGlvbmFsIGBJUFY2YCBzZXR0aW5nLCBpcyBzdWZmaWNpZW50LgoKTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrLCBmb3IgbXkgcGVhY2Ugb2YgbWluZCwgdGhhdCBgYWg2X2lucHV0YCBhbmQgYGFoNl9vdXRwdXRgIGFyZSBzdGF0aWMgZnVuY3Rpb25zLiBZZXAsIHRoZXkgYXJlLiBIbW1tLCBidXQgaGFuZyBvbiBhIG1pbnV0ZS4gVGhlIGluc3RydWN0aW9ucyBzYXkgdG8gZmF2b3Igbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnRzLiBUaGF0JiMzOTtzIGEga2V5IGRpc3RpbmN0aW9uISBgYWg2X2lucHV0YCBhbmQgYGFoNl9vdXRwdXRgIGFyZSBzdGF0aWMsIGJ1dCB0aGV5JiMzOTtyZSBhc3NpZ25lZCB0byB0aGUgYHN0cnVjdCB4ZnJtX3R5cGUgYWg2X3R5cGVgIGFzIHRoZSBgLmlucHV0YCBhbmQgYC5vdXRwdXRgIG1lbWJlcnMuIFRoaXMgaXMgaW50ZXJlc3Rpbmc6IFRoZXkmIzM5O3JlICpub3QqIGlubGluZWQgYmVjYXVzZSB0aGVpciBhZGRyZXNzZXMgYXJlIGJlaW5nIHRha2VuLiBCdXQsIG1heWJlIEkgY2FuIGluY29ycG9yYXRlIGB4ZnJtX2lucHV0YCBvciBgeGZybV9vdXRwdXRgIG9yIGB4ZnJtNl9yY3ZgIHRvbz8KClRvIGNsYXJpZnkgdGhpcywgSSYjMzk7bGwgbmVlZCB0byBmaWd1cmUgb3V0IHdoZXJlIGBhaDZfdHlwZWAgaXMgcmVnaXN0ZXJlZC4gVGhhdCYjMzk7bGwgZ2l2ZSBtZSBhIGNsZWFyZXIgcGljdHVyZSBvZiBob3cgdGhlc2UgZnVuY3Rpb25zIGFyZSB1c2VkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAwMzoyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthaDZfdHlwZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9pcHY2L2FoNi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9pcHY2L2FoNi5jPTc4Mj1zdGF0aWMgaW50IGFoNl9yY3ZfY2Ioc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IGVycilcbi0tXG5uZXQvaXB2Ni9haDYuYy03ODYtXG5uZXQvaXB2Ni9haDYuYzo3ODc6c3RhdGljIGNvbnN0IHN0cnVjdCB4ZnJtX3R5cGUgYWg2X3R5cGUgPSB7XG5uZXQvaXB2Ni9haDYuYy03ODgtXHQub3duZXJcdFx0PSBUSElTX01PRFVMRSxcbi0tXG5uZXQvaXB2Ni9haDYuYz04MDU9c3RhdGljIGludCBfX2luaXQgYWg2X2luaXQodm9pZClcbm5ldC9pcHY2L2FoNi5jLTgwNi17XG5uZXQvaXB2Ni9haDYuYzo4MDc6XHRpZiAoeGZybV9yZWdpc3Rlcl90eXBlKFx1MDAyNmFoNl90eXBlLCBBRl9JTkVUNikgXHUwMDNjIDApIHtcbm5ldC9pcHY2L2FoNi5jLTgwOC1cdFx0cHJfaW5mbyhcJiMzNDslczogY2FuJiMzOTt0IGFkZCB4ZnJtIHR5cGVcXG5cJiMzNDssIF9fZnVuY19fKTtcbi0tXG5uZXQvaXB2Ni9haDYuYy04MTMtXHRcdHByX2luZm8oXCYjMzQ7JXM6IGNhbiYjMzk7dCBhZGQgcHJvdG9jb2xcXG5cJiMzNDssIF9fZnVuY19fKTtcbm5ldC9pcHY2L2FoNi5jOjgxNDpcdFx0eGZybV91bnJlZ2lzdGVyX3R5cGUoXHUwMDI2YWg2X3R5cGUsIEFGX0lORVQ2KTtcbm5ldC9pcHY2L2FoNi5jLTgxNS1cdFx0cmV0dXJuIC1FQUdBSU47XG4tLVxubmV0L2lwdjYvYWg2LmM9ODIxPXN0YXRpYyB2b2lkIF9fZXhpdCBhaDZfZmluaSh2b2lkKVxuLS1cbm5ldC9pcHY2L2FoNi5jLTgyNS1cbm5ldC9pcHY2L2FoNi5jOjgyNjpcdHhmcm1fdW5yZWdpc3Rlcl90eXBlKFx1MDAyNmFoNl90eXBlLCBBRl9JTkVUNik7XG5uZXQvaXB2Ni9haDYuYy04MjctfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAwMzoyMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2MjUzCgkJCQkJCQlvdXRwdXQ6IDEyNgoJCQkJCQkJdGhvdWdodHM6IDU5MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgQUg2IElQc2VjIFZ1bG5lcmFiaWxpdHkgUGF0Y2gqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgYGFoNl9pbnB1dGAgYW5kIGBhaDZfb3V0cHV0YCBhcmUgdGhlIGtleSBlbnRyeSBwb2ludHMgZm9yIEFINiBwcm9jZXNzaW5nLiBUaGV5JiMzOTtyZSBzdGF0aWMsIHdoaWNoIGluaXRpYWxseSByYWlzZWQgYSBmbGFnIHJlZ2FyZGluZyBTeXprYWxsZXImIzM5O3MgYWJpbGl0eSB0byByZXNvbHZlIHRoZW0uIEhvd2V2ZXIsIGlmIHRoZSBEV0FSRiBpbmZvcm1hdGlvbiBpcyBjb3JyZWN0bHkgaW5jbHVkZWQsIGl0IHNob3VsZCBiZSBmaW5lLiBJJiMzOTttIGNob29zaW5nIHRoZW0gYXMgdGhlIGZvY3VzIGZ1bmN0aW9ucy4gYHhmcm1faW5wdXRgIGFuZCBgeGZybV9vdXRwdXRgIGFyZSBhbHNvIHJlbGV2YW50LCBidXQgdGhleSYjMzk7cmUgbW9yZSBnZW5lcmljLCBzbyBJJiMzOTttIHN0aWNraW5nIHdpdGggYGFoNl9pbnB1dGAgYW5kIGBhaDZfb3V0cHV0YCBmb3IgdGhlaXIgc3BlY2lmaWNpdHkuIEFuZCBzaW5jZSB3ZSYjMzk7cmUgaGVyZSwgbGV0IG1lIG1ha2UgYSBub3RlIHRoYXQgYGlwdjZfY2xlYXJfbXV0YWJsZV9vcHRpb25zYCBpcyBhbHNvIHN0YXRpYy4KCkxldCYjMzk7cyBxdWlja2x5IGNoZWNrIGB4ZnJtX2lucHV0YCBhbmQgYHhmcm1fb3V0cHV0YCDigJMgeWVwLCBnZW5lcmljIGFzIGV4cGVjdGVkLiBTbywgZm9jdXNpbmcgb24gYGFoNl9pbnB1dGAgYW5kIGBhaDZfb3V0cHV0YCBtYWtlcyB0aGUgbW9zdCBzZW5zZS4KCk5vdywgd2hhdCBhYm91dCB0aGUgY29uZmlndXJhdGlvbj8gSSB0aGluayBgWEZSTV9VU0VSYCBpcyBnb2luZyB0byBiZSBpbXBvcnRhbnQuIEl0JiMzOTtzIHByb2JhYmx5IG5lY2Vzc2FyeSB0byBjb25maWd1cmUgSVBzZWMgZnJvbSB1c2Vyc3BhY2UuIFNvLCBJIG5lZWQgdG8gYWRkIHRoYXQuCgpPa2F5LCBzbyBteSBjb25maWdzIGFyZSBgSVBWNmAsIGBJTkVUNl9BSGAsIGFuZCBgWEZSTV9VU0VSYC4gTXkgYEZvY3VzU3ltYm9sc2AgYXJlIGRlZmluaXRlbHkgYGFoNl9pbnB1dGAgYW5kIGBhaDZfb3V0cHV0YC4KClRoZSByZWFzb25pbmcgaXMgc29saWQ6IHRoaXMgcGF0Y2ggaXMgZml4aW5nIGEgcG90ZW50aWFsIG91dC1vZi1ib3VuZHMgcmVhZC93cml0ZSBpbiBgaXB2Nl9yZWFycmFuZ2VfcnRoZHJgLiBUaGUgY29kZSYjMzk7cyB0cmlnZ2VyZWQgd2hlbiBwcm9jZXNzaW5nIElQdjYgSVBzZWMgQUggcGFja2V0cyB3aXRoIHJvdXRpbmcgaGVhZGVycy4gU28sIGZ1enppbmcgdGhlIElQdjYgQUggaW5wdXQgYW5kIG91dHB1dCBwYXRocyBpcyB0aGUgcmlnaHQgYXBwcm9hY2guCgpMZXQmIzM5O3MgcXVpY2tseSBjb25maXJtIHRoYXQgYGlwdjZfcmVhcnJhbmdlX3J0aGRyYCBpcyByZWFjaGFibGUuIE9rYXksIGl0JiMzOTtzIGNhbGxlZCBmcm9tIGBpcHY2X2NsZWFyX211dGFibGVfb3B0aW9uc2AsIHdoaWNoIGlzLCBpbiB0dXJuLCBjYWxsZWQgYnkgYGFoNl9vdXRwdXRgIGFuZCBgYWg2X2lucHV0YC4gUGVyZmVjdC4gWWVwLCBpdCBpcyByZWFjaGFibGUuCgpKdXN0IHRvIGJlIGFic29sdXRlbHkgc3VyZSwgbGV0IG1lIGRvdWJsZS1jaGVjazogeWVwLCBgYWg2X2lucHV0YCBhbmQgYGFoNl9vdXRwdXRgIGFyZSBpbmRlZWQgdGhlIGJlc3Qgc3ltYm9scy4gVGhleSBhcmUgdGhlIGNvcmUgaGFuZGxlcnMgZm9yIEFINi4gSSYjMzk7bSBjb25maWRlbnQgaW4gdGhpcyBhc3Nlc3NtZW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAwMzoyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7SVBWNiYjMzQ7LAogICAgJiMzNDtJTkVUNl9BSCYjMzQ7LAogICAgJiMzNDtYRlJNX1VTRVImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDthaDZfaW5wdXQmIzM0OywKICAgICYjMzQ7YWg2X291dHB1dCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIGFjY2VzcyBpbiBpcHY2X3JlYXJyYW5nZV9ydGhkciBieSB2YWxpZGF0aW5nIHNlZ21lbnRzX2xlZnQgYWdhaW5zdCB0aGUgcm91dGluZyBoZWFkZXIgbGVuZ3RoLiBUaGlzIGNvZGUgaXMgZXhlY3V0ZWQgZHVyaW5nIElQdjYgSVBzZWMgQUggKEF1dGhlbnRpY2F0aW9uIEhlYWRlcikgcGFja2V0IHByb2Nlc3NpbmcuIEZ1enppbmcgc2hvdWxkIGZvY3VzIG9uIHRoZSBBSDYgaW5wdXQgYW5kIG91dHB1dCBwYXRocy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7SVBWNiYjMzQ7LAogICAgJiMzNDtJTkVUNl9BSCYjMzQ7LAogICAgJiMzNDtYRlJNX1VTRVImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDthaDZfaW5wdXQmIzM0OywKICAgICYjMzQ7YWg2X291dHB1dCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIGFjY2VzcyBpbiBpcHY2X3JlYXJyYW5nZV9ydGhkciBieSB2YWxpZGF0aW5nIHNlZ21lbnRzX2xlZnQgYWdhaW5zdCB0aGUgcm91dGluZyBoZWFkZXIgbGVuZ3RoLiBUaGlzIGNvZGUgaXMgZXhlY3V0ZWQgZHVyaW5nIElQdjYgSVBzZWMgQUggKEF1dGhlbnRpY2F0aW9uIEhlYWRlcikgcGFja2V0IHByb2Nlc3NpbmcuIEZ1enppbmcgc2hvdWxkIGZvY3VzIG9uIHRoZSBBSDYgaW5wdXQgYW5kIG91dHB1dCBwYXRocy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDAzOjE5OjQ1LjM1Mjg3OTU3NloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM1NjUyMDYwMzMxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIklQVjZcIixcbiAgICBcIklORVQ2X0FIXCIsXG4gICAgXCJYRlJNX1VTRVJcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJhaDZfaW5wdXRcIixcbiAgICBcImFoNl9vdXRwdXRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIGFjY2VzcyBpbiBpcHY2X3JlYXJyYW5nZV9ydGhkciBieSB2YWxpZGF0aW5nIHNlZ21lbnRzX2xlZnQgYWdhaW5zdCB0aGUgcm91dGluZyBoZWFkZXIgbGVuZ3RoLiBUaGlzIGNvZGUgaXMgZXhlY3V0ZWQgZHVyaW5nIElQdjYgSVBzZWMgQUggKEF1dGhlbnRpY2F0aW9uIEhlYWRlcikgcGFja2V0IHByb2Nlc3NpbmcuIEZ1enppbmcgc2hvdWxkIGZvY3VzIG9uIHRoZSBBSDYgaW5wdXQgYW5kIG91dHB1dCBwYXRocy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjZUMDM6MTk6NDUuMzUyODk3Nzc2WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4MTI2NDAxNTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAxMzk5YjU2ODRhMDkzOGQ5M2U2NjE1YjYyNGNiNmZjNDhlNWJkMjEyXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTdW4gSnVsIDI2IDAzOjE5OjQzIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL25ldC9pcHY2L2FoNi5jIGIvbmV0L2lwdjYvYWg2LmNcXG5pbmRleCA3NmY3YTJkZTkxMDhlYi4uYzk2ZjdlMGQwYTQ4MTUgMTAwNjQ0XFxuLS0tIGEvbmV0L2lwdjYvYWg2LmNcXG4rKysgYi9uZXQvaXB2Ni9haDYuY1xcbkBAIC0yMzIsMjYgKzIzMiwyOCBAQCBzdGF0aWMgdm9pZCBpcHY2X3JlYXJyYW5nZV9kZXN0b3B0KHN0cnVjdCBpcHY2aGRyICppcGgsIHN0cnVjdCBpcHY2X29wdF9oZHIgKmRlc1xcbiAgKlxcdFJlYXJyYW5nZSB0aGUgZGVzdGluYXRpb24gYWRkcmVzcyBpbiBAaXBoIGFuZCB0aGUgYWRkcmVzc2VzIGluIEBydGhkclxcbiAgKlxcdHNvIHRoYXQgdGhleSBhcHBlYXIgaW4gdGhlIG9yZGVyIHRoZXkgd2lsbCBhdCB0aGUgZmluYWwgZGVzdGluYXRpb24uXFxuICAqXFx0U2VlIEFwcGVuZGl4IEEyIG9mIFJGQyAyNDAyIGZvciBkZXRhaWxzLlxcbisgKlxcbisgKiBSZXR1cm46IDAgb24gc3VjY2VzcywgLUVJTlZBTCBpZiBzZWdtZW50c19sZWZ0IGV4Y2VlZHMgdGhlIG51bWJlciBvZlxcbisgKiBhZGRyZXNzZXMgZGVzY3JpYmVkIGJ5IGhkcmxlbi5cXG4gICovXFxuLXN0YXRpYyB2b2lkIGlwdjZfcmVhcnJhbmdlX3J0aGRyKHN0cnVjdCBpcHY2aGRyICppcGgsIHN0cnVjdCBpcHY2X3J0X2hkciAqcnRoZHIpXFxuK3N0YXRpYyBpbnQgaXB2Nl9yZWFycmFuZ2VfcnRoZHIoc3RydWN0IGlwdjZoZHIgKmlwaCwgc3RydWN0IGlwdjZfcnRfaGRyICpydGhkcilcXG4ge1xcbi1cXHRpbnQgc2VnbWVudHMsIHNlZ21lbnRzX2xlZnQ7XFxuK1xcdHVuc2lnbmVkIGludCBzZWdtZW50cywgc2VnbWVudHNfbGVmdDtcXG4gXFx0c3RydWN0IGluNl9hZGRyICphZGRycztcXG4gXFx0c3RydWN0IGluNl9hZGRyIGZpbmFsX2FkZHI7XFxuIFxcbiBcXHRzZWdtZW50c19sZWZ0ID0gcnRoZHItXFx1MDAzZXNlZ21lbnRzX2xlZnQ7XFxuIFxcdGlmIChzZWdtZW50c19sZWZ0ID09IDApXFxuLVxcdFxcdHJldHVybjtcXG4tXFx0cnRoZHItXFx1MDAzZXNlZ21lbnRzX2xlZnQgPSAwO1xcbitcXHRcXHRyZXR1cm4gMDtcXG4gXFxuLVxcdC8qIFRoZSB2YWx1ZSBvZiBydGhkci1cXHUwMDNlaGRybGVuIGhhcyBiZWVuIHZlcmlmaWVkIGVpdGhlciBieSB0aGUgc3lzdGVtXFxuLVxcdCAqIGNhbGwgaWYgaXQgaXMgbG9jYWxseSBnZW5lcmF0ZWQsIG9yIGJ5IGlwdjZfcnRoZHJfcmN2KCkgZm9yIGluY29taW5nXFxuLVxcdCAqIHBhY2tldHMuICBTbyB3ZSBjYW4gYXNzdW1lIHRoYXQgaXQgaXMgZXZlbiBhbmQgdGhhdCBzZWdtZW50cyBpc1xcbi1cXHQgKiBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gc2VnbWVudHNfbGVmdC5cXG4tXFx0ICpcXG4tXFx0ICogRm9yIHRoZSBzYW1lIHJlYXNvbiB3ZSBjYW4gYXNzdW1lIHRoYXQgdGhpcyBvcHRpb24gaXMgb2YgdHlwZSAwLlxcbitcXHQvKiBSYXcgbG9jYWxseSBnZW5lcmF0ZWQgcGFja2V0cyBjYW4gcmVhY2ggQUg2IHdpdGhvdXQgdGhlIGludmFyaWFudFxcbitcXHQgKiByZXF1aXJlZCBieSB0aGUgcnQwLXN0eWxlIGFkZHJlc3MgcmVhcnJhbmdlbWVudCBiZWxvdy5cXG4gXFx0ICovXFxuIFxcdHNlZ21lbnRzID0gcnRoZHItXFx1MDAzZWhkcmxlbiBcXHUwMDNlXFx1MDAzZSAxO1xcbitcXHRpZiAoc2VnbWVudHNfbGVmdCBcXHUwMDNlIHNlZ21lbnRzKVxcbitcXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4rXFxuK1xcdHJ0aGRyLVxcdTAwM2VzZWdtZW50c19sZWZ0ID0gMDtcXG4gXFxuIFxcdGFkZHJzID0gKChzdHJ1Y3QgcnQwX2hkciAqKXJ0aGRyKS1cXHUwMDNlYWRkcjtcXG4gXFx0ZmluYWxfYWRkciA9IGFkZHJzW3NlZ21lbnRzIC0gMV07XFxuQEAgLTI2MSw2ICsyNjMsOCBAQCBzdGF0aWMgdm9pZCBpcHY2X3JlYXJyYW5nZV9ydGhkcihzdHJ1Y3QgaXB2NmhkciAqaXBoLCBzdHJ1Y3QgaXB2Nl9ydF9oZHIgKnJ0aGRyKVxcbiBcXG4gXFx0YWRkcnNbMF0gPSBpcGgtXFx1MDAzZWRhZGRyO1xcbiBcXHRpcGgtXFx1MDAzZWRhZGRyID0gZmluYWxfYWRkcjtcXG4rXFxuK1xcdHJldHVybiAwO1xcbiB9XFxuIFxcbiBzdGF0aWMgaW50IGlwdjZfY2xlYXJfbXV0YWJsZV9vcHRpb25zKHN0cnVjdCBpcHY2aGRyICppcGgsIGludCBsZW4sIGludCBkaXIpXFxuQEAgLTI3Myw2ICsyNzcsNyBAQCBzdGF0aWMgaW50IGlwdjZfY2xlYXJfbXV0YWJsZV9vcHRpb25zKHN0cnVjdCBpcHY2aGRyICppcGgsIGludCBsZW4sIGludCBkaXIpXFxuIFxcdH0gZXh0aGRyID0geyAuaXBoID0gaXBoIH07XFxuIFxcdGNoYXIgKmVuZCA9IGV4dGhkci5yYXcgKyBsZW47XFxuIFxcdGludCBuZXh0aGRyID0gaXBoLVxcdTAwM2VuZXh0aGRyO1xcbitcXHRpbnQgZXJyO1xcbiBcXG4gXFx0ZXh0aGRyLmlwaCsrO1xcbiBcXG5AQCAtMjkyLDcgKzI5Nyw5IEBAIHN0YXRpYyBpbnQgaXB2Nl9jbGVhcl9tdXRhYmxlX29wdGlvbnMoc3RydWN0IGlwdjZoZHIgKmlwaCwgaW50IGxlbiwgaW50IGRpcilcXG4gXFx0XFx0XFx0YnJlYWs7XFxuIFxcbiBcXHRcXHRjYXNlIE5FWFRIRFJfUk9VVElORzpcXG4tXFx0XFx0XFx0aXB2Nl9yZWFycmFuZ2VfcnRoZHIoaXBoLCBleHRoZHIucnRoKTtcXG4rXFx0XFx0XFx0ZXJyID0gaXB2Nl9yZWFycmFuZ2VfcnRoZHIoaXBoLCBleHRoZHIucnRoKTtcXG4rXFx0XFx0XFx0aWYgKGVycilcXG4rXFx0XFx0XFx0XFx0cmV0dXJuIGVycjtcXG4gXFx0XFx0XFx0YnJlYWs7XFxuIFxcbiBcXHRcXHRkZWZhdWx0OlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQwMzoxOTo0Ni4xNjY1NjkxMjFaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjozNDgzODM1NzA1NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJJUFY2XCIsXG4gICAgXCJJTkVUNl9BSFwiLFxuICAgIFwiWEZSTV9VU0VSXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYWg2X2lucHV0XCIsXG4gICAgXCJhaDZfb3V0cHV0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgb3V0LW9mLWJvdW5kcyBhY2Nlc3MgaW4gaXB2Nl9yZWFycmFuZ2VfcnRoZHIgYnkgdmFsaWRhdGluZyBzZWdtZW50c19sZWZ0IGFnYWluc3QgdGhlIHJvdXRpbmcgaGVhZGVyIGxlbmd0aC4gVGhpcyBjb2RlIGlzIGV4ZWN1dGVkIGR1cmluZyBJUHY2IElQc2VjIEFIIChBdXRoZW50aWNhdGlvbiBIZWFkZXIpIHBhY2tldCBwcm9jZXNzaW5nLiBGdXp6aW5nIHNob3VsZCBmb2N1cyBvbiB0aGUgQUg2IGlucHV0IGFuZCBvdXRwdXQgcGF0aHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDEzOTliNTY4NGEwOTM4ZDkzZTY2MTViNjI0Y2I2ZmM0OGU1YmQyMTJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU3VuIEp1bCAyNiAwMzoxOTo0MyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9pcHY2L2FoNi5jIGIvbmV0L2lwdjYvYWg2LmNcbmluZGV4IDc2ZjdhMmRlOTEwOGViLi5jOTZmN2UwZDBhNDgxNSAxMDA2NDRcbi0tLSBhL25ldC9pcHY2L2FoNi5jXG4rKysgYi9uZXQvaXB2Ni9haDYuY1xuQEAgLTIzMiwyNiArMjMyLDI4IEBAIHN0YXRpYyB2b2lkIGlwdjZfcmVhcnJhbmdlX2Rlc3RvcHQoc3RydWN0IGlwdjZoZHIgKmlwaCwgc3RydWN0IGlwdjZfb3B0X2hkciAqZGVzXG4gICpcdFJlYXJyYW5nZSB0aGUgZGVzdGluYXRpb24gYWRkcmVzcyBpbiBAaXBoIGFuZCB0aGUgYWRkcmVzc2VzIGluIEBydGhkclxuICAqXHRzbyB0aGF0IHRoZXkgYXBwZWFyIGluIHRoZSBvcmRlciB0aGV5IHdpbGwgYXQgdGhlIGZpbmFsIGRlc3RpbmF0aW9uLlxuICAqXHRTZWUgQXBwZW5kaXggQTIgb2YgUkZDIDI0MDIgZm9yIGRldGFpbHMuXG4rICpcbisgKiBSZXR1cm46IDAgb24gc3VjY2VzcywgLUVJTlZBTCBpZiBzZWdtZW50c19sZWZ0IGV4Y2VlZHMgdGhlIG51bWJlciBvZlxuKyAqIGFkZHJlc3NlcyBkZXNjcmliZWQgYnkgaGRybGVuLlxuICAqL1xuLXN0YXRpYyB2b2lkIGlwdjZfcmVhcnJhbmdlX3J0aGRyKHN0cnVjdCBpcHY2aGRyICppcGgsIHN0cnVjdCBpcHY2X3J0X2hkciAqcnRoZHIpXG4rc3RhdGljIGludCBpcHY2X3JlYXJyYW5nZV9ydGhkcihzdHJ1Y3QgaXB2NmhkciAqaXBoLCBzdHJ1Y3QgaXB2Nl9ydF9oZHIgKnJ0aGRyKVxuIHtcbi1cdGludCBzZWdtZW50cywgc2VnbWVudHNfbGVmdDtcbitcdHVuc2lnbmVkIGludCBzZWdtZW50cywgc2VnbWVudHNfbGVmdDtcbiBcdHN0cnVjdCBpbjZfYWRkciAqYWRkcnM7XG4gXHRzdHJ1Y3QgaW42X2FkZHIgZmluYWxfYWRkcjtcbiBcbiBcdHNlZ21lbnRzX2xlZnQgPSBydGhkci1cdTAwM2VzZWdtZW50c19sZWZ0O1xuIFx0aWYgKHNlZ21lbnRzX2xlZnQgPT0gMClcbi1cdFx0cmV0dXJuO1xuLVx0cnRoZHItXHUwMDNlc2VnbWVudHNfbGVmdCA9IDA7XG4rXHRcdHJldHVybiAwO1xuIFxuLVx0LyogVGhlIHZhbHVlIG9mIHJ0aGRyLVx1MDAzZWhkcmxlbiBoYXMgYmVlbiB2ZXJpZmllZCBlaXRoZXIgYnkgdGhlIHN5c3RlbVxuLVx0ICogY2FsbCBpZiBpdCBpcyBsb2NhbGx5IGdlbmVyYXRlZCwgb3IgYnkgaXB2Nl9ydGhkcl9yY3YoKSBmb3IgaW5jb21pbmdcbi1cdCAqIHBhY2tldHMuICBTbyB3ZSBjYW4gYXNzdW1lIHRoYXQgaXQgaXMgZXZlbiBhbmQgdGhhdCBzZWdtZW50cyBpc1xuLVx0ICogZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHNlZ21lbnRzX2xlZnQuXG4tXHQgKlxuLVx0ICogRm9yIHRoZSBzYW1lIHJlYXNvbiB3ZSBjYW4gYXNzdW1lIHRoYXQgdGhpcyBvcHRpb24gaXMgb2YgdHlwZSAwLlxuK1x0LyogUmF3IGxvY2FsbHkgZ2VuZXJhdGVkIHBhY2tldHMgY2FuIHJlYWNoIEFINiB3aXRob3V0IHRoZSBpbnZhcmlhbnRcbitcdCAqIHJlcXVpcmVkIGJ5IHRoZSBydDAtc3R5bGUgYWRkcmVzcyByZWFycmFuZ2VtZW50IGJlbG93LlxuIFx0ICovXG4gXHRzZWdtZW50cyA9IHJ0aGRyLVx1MDAzZWhkcmxlbiBcdTAwM2VcdTAwM2UgMTtcbitcdGlmIChzZWdtZW50c19sZWZ0IFx1MDAzZSBzZWdtZW50cylcbitcdFx0cmV0dXJuIC1FSU5WQUw7XG4rXG4rXHRydGhkci1cdTAwM2VzZWdtZW50c19sZWZ0ID0gMDtcbiBcbiBcdGFkZHJzID0gKChzdHJ1Y3QgcnQwX2hkciAqKXJ0aGRyKS1cdTAwM2VhZGRyO1xuIFx0ZmluYWxfYWRkciA9IGFkZHJzW3NlZ21lbnRzIC0gMV07XG5AQCAtMjYxLDYgKzI2Myw4IEBAIHN0YXRpYyB2b2lkIGlwdjZfcmVhcnJhbmdlX3J0aGRyKHN0cnVjdCBpcHY2aGRyICppcGgsIHN0cnVjdCBpcHY2X3J0X2hkciAqcnRoZHIpXG4gXG4gXHRhZGRyc1swXSA9IGlwaC1cdTAwM2VkYWRkcjtcbiBcdGlwaC1cdTAwM2VkYWRkciA9IGZpbmFsX2FkZHI7XG4rXG4rXHRyZXR1cm4gMDtcbiB9XG4gXG4gc3RhdGljIGludCBpcHY2X2NsZWFyX211dGFibGVfb3B0aW9ucyhzdHJ1Y3QgaXB2NmhkciAqaXBoLCBpbnQgbGVuLCBpbnQgZGlyKVxuQEAgLTI3Myw2ICsyNzcsNyBAQCBzdGF0aWMgaW50IGlwdjZfY2xlYXJfbXV0YWJsZV9vcHRpb25zKHN0cnVjdCBpcHY2aGRyICppcGgsIGludCBsZW4sIGludCBkaXIpXG4gXHR9IGV4dGhkciA9IHsgLmlwaCA9IGlwaCB9O1xuIFx0Y2hhciAqZW5kID0gZXh0aGRyLnJhdyArIGxlbjtcbiBcdGludCBuZXh0aGRyID0gaXBoLVx1MDAzZW5leHRoZHI7XG4rXHRpbnQgZXJyO1xuIFxuIFx0ZXh0aGRyLmlwaCsrO1xuIFxuQEAgLTI5Miw3ICsyOTcsOSBAQCBzdGF0aWMgaW50IGlwdjZfY2xlYXJfbXV0YWJsZV9vcHRpb25zKHN0cnVjdCBpcHY2aGRyICppcGgsIGludCBsZW4sIGludCBkaXIpXG4gXHRcdFx0YnJlYWs7XG4gXG4gXHRcdGNhc2UgTkVYVEhEUl9ST1VUSU5HOlxuLVx0XHRcdGlwdjZfcmVhcnJhbmdlX3J0aGRyKGlwaCwgZXh0aGRyLnJ0aCk7XG4rXHRcdFx0ZXJyID0gaXB2Nl9yZWFycmFuZ2VfcnRoZHIoaXBoLCBleHRoZHIucnRoKTtcbitcdFx0XHRpZiAoZXJyKVxuK1x0XHRcdFx0cmV0dXJuIGVycjtcbiBcdFx0XHRicmVhaztcbiBcbiBcdFx0ZGVmYXVsdDpcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDAzOjE5OjQ2LjE2NjU3MTcyMVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg5MzAwMTgzODAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgU2VjdXJpdHktUmVsYXRlZCBQYXRjaCB0byBpcHY2X3JlYXJyYW5nZV9ydGhkcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBuZXQvaXB2Ni9haDYuY2AsIGFuZCBpdCdzIG1ha2luZyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIGBpcHY2X3JlYXJyYW5nZV9ydGhkcmAuIFRoZSBwcmltYXJ5IHRoaW5nIGp1bXBpbmcgb3V0IGlzIHRoYXQgdGhleSd2ZSBjaGFuZ2VkIHRoZSByZXR1cm4gdHlwZSBmcm9tIGB2b2lkYCB0byBgaW50YC4gIFRoYXQgaW1tZWRpYXRlbHkgc2lnbmFscyBhIHBvdGVudGlhbCBmb3IgZXJyb3IgaGFuZGxpbmcuICBBbmQgSSBzZWUgdGhlIGFkZGVkIGNoZWNrOiBgaWYgKHNlZ21lbnRzX2xlZnQgXHUwMDNlIHNlZ21lbnRzKSByZXR1cm4gLUVJTlZBTDtgLiBBaCwgdGhhdCdzIGFsbW9zdCBjZXJ0YWlubHkgdG8gcHJldmVudCBhbiBvdXQtb2YtYm91bmRzIHJlYWQgb3Igd3JpdGUsIG9yIG1heWJlIHNvbWUgb3RoZXIga2luZCBvZiBkYXRhIGNvcnJ1cHRpb24sIGJ5IHZhbGlkYXRpbmcgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGBzZWdtZW50c19sZWZ0YCBhbmQgYHNlZ21lbnRzYC4gR29vZCBjYXRjaC5cblxuVGhlIGNvZGUgbm93IHJldHVybnMgYW4gZXJyb3IgY29kZSwgLUVJTlZBTC4gIFRoZSBpbW1lZGlhdGUgaW1wbGljYXRpb24gaXMgdGhhdCB0aGUgY2FsbGVyLCBgaXB2Nl9jbGVhcl9tdXRhYmxlX29wdGlvbnNgLCBub3cgKm11c3QqIGJlIHVwZGF0ZWQgdG8gYWNjb3VudCBmb3IgdGhpcyBuZXcgcmV0dXJuIHZhbHVlLCBhbmQgaXQgbG9va3MgbGlrZSBpdCBpcy4gSXQncyB0aGUgb25seSBjYWxsZXIgbGlzdGVkLiBIb3dldmVyLCBJIHdhbnQgdG8gdGFrZSBhIGNsb3NlciBsb29rIGFuZCBlbnN1cmUgbm8gb3RoZXIgZnVuY3Rpb25hbGl0eSBkZXBlbmRzIG9uIHRoYXQuIEknbSBnb2luZyB0byBzY2FuIHRoZSBvdGhlciBjYWxscyB0byBgaXB2Nl9jbGVhcl9tdXRhYmxlX29wdGlvbnNgIHRvIGVuc3VyZSB0aGF0IHRoZXJlIGFyZW4ndCBhbnkgb3RoZXIgc3VidGxlIGRlcGVuZGVuY2llcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjgwMiwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1MiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDAzOjE5OjU1LjA5NjU5MjY1MloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2ODA3MzA2MTIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaXB2Nl9jbGVhcl9tdXRhYmxlX29wdGlvbnNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L2lwdjYvYWg2LmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L2lwdjYvYWg2LmM9MjM5PXN0YXRpYyBpbnQgaXB2Nl9yZWFycmFuZ2VfcnRoZHIoc3RydWN0IGlwdjZoZHIgKmlwaCwgc3RydWN0IGlwdjZfcnRfaGRyICpydGhkcilcXG4tLVxcbm5ldC9pcHY2L2FoNi5jLTI2OS1cXG5uZXQvaXB2Ni9haDYuYzoyNzA6c3RhdGljIGludCBpcHY2X2NsZWFyX211dGFibGVfb3B0aW9ucyhzdHJ1Y3QgaXB2NmhkciAqaXBoLCBpbnQgbGVuLCBpbnQgZGlyKVxcbm5ldC9pcHY2L2FoNi5jLTI3MS17XFxuLS1cXG5uZXQvaXB2Ni9haDYuYz0zNTA9c3RhdGljIGludCBhaDZfb3V0cHV0KHN0cnVjdCB4ZnJtX3N0YXRlICp4LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxubmV0L2lwdjYvYWg2LmMtNDE2LVxcdGlmIChleHRsZW4pIHtcXG5uZXQvaXB2Ni9haDYuYzo0MTc6XFx0XFx0ZXJyID0gaXB2Nl9jbGVhcl9tdXRhYmxlX29wdGlvbnModG9wX2lwaCxcXG5uZXQvaXB2Ni9haDYuYy00MTgtXFx0XFx0XFx0XFx0XFx0XFx0IGV4dGxlbiAtIHNpemVvZigqaXBoX2V4dCkgK1xcbi0tXFxubmV0L2lwdjYvYWg2LmM9NTE5PXN0YXRpYyBpbnQgYWg2X2lucHV0KHN0cnVjdCB4ZnJtX3N0YXRlICp4LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxubmV0L2lwdjYvYWg2LmMtNjEzLVxcbm5ldC9pcHY2L2FoNi5jOjYxNDpcXHRlcnIgPSBpcHY2X2NsZWFyX211dGFibGVfb3B0aW9ucyhpcDZoLCBoZHJfbGVuLCBYRlJNX1BPTElDWV9JTik7XFxubmV0L2lwdjYvYWg2LmMtNjE1LVxcdGlmIChlcnIpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDAzOjE5OjU1Ljc3NzMyOTM3NFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI4MjM3MjIxMDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKklQdjYgSVBzZWMgQUggRGVlcCBEaXZlKipcblxuQWxyaWdodCwgbGV0J3Mgc2VlLi4uIHdlJ3JlIGRlYWxpbmcgd2l0aCBgYWg2X291dHB1dGAgYW5kIGBhaDZfaW5wdXRgLiAgUmlnaHQsIHRoZXNlIGFyZSB0aGUgY3JpdGljYWwgZnVuY3Rpb24gY2FsbHMgd2l0aGluIGFuIElQdjYgSVBzZWMgQUggaW1wbGVtZW50YXRpb24uIFNwZWNpZmljYWxseSwgdGhleSdyZSB0aGUgc2VuZCBhbmQgcmVjZWl2ZSBwYXRocywgdGhlIGNvcmUgb2YgdGhlIEF1dGhlbnRpY2F0aW9uIEhlYWRlciBmdW5jdGlvbmFsaXR5LiBNeSBmaXJzdCBpbnN0aW5jdCwgYXMgYWx3YXlzLCBpcyB0byBjaGVjayB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zLiAgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgaXMgYmVpbmcgY29tcGlsZWQgaW4sIGFuZCB3aGF0IGRlcGVuZGVuY2llcyBtaWdodCBiZSBhdCBwbGF5LiBTbywgS2NvbmZpZyBpdCBpcy4gTGV0IG1lIGltbWVkaWF0ZWx5IGNoZWNrIHRoZSBLY29uZmlnIHNldHRpbmdzIHJlbGF0ZWQgdG8gYGFoNi5jYC4gVGhhdCBzaG91bGQgdGVsbCB0aGUgd2hvbGUgc3RvcnkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM2MzQsIk91dHB1dFRva2VucyI6MjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQwMzoxOTo1OC42MDEwNTM3OFoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzk3MzcyODUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYWg2Lm9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L2lwdjYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9pcHY2L01ha2VmaWxlPTI4PWlwdjYtJChDT05GSUdfSVBWNl9JT0FNNl9MV1RVTk5FTCkgKz0gaW9hbTZfaXB0dW5uZWwub1xcbm5ldC9pcHY2L01ha2VmaWxlLTI5LVxcbm5ldC9pcHY2L01ha2VmaWxlOjMwOm9iai0kKENPTkZJR19JTkVUNl9BSCkgKz0gYWg2Lm9cXG5uZXQvaXB2Ni9NYWtlZmlsZS0zMS1vYmotJChDT05GSUdfSU5FVDZfRVNQKSArPSBlc3A2Lm9cXG4tLVxcbm5ldC9pcHY2L2FoNi5jPTI3MD1zdGF0aWMgaW50IGlwdjZfY2xlYXJfbXV0YWJsZV9vcHRpb25zKHN0cnVjdCBpcHY2aGRyICppcGgsIGludCBsZW4sIGludCBkaXIpXFxuLS1cXG5uZXQvaXB2Ni9haDYuYy0zMTUtXFxubmV0L2lwdjYvYWg2LmM6MzE2OnN0YXRpYyB2b2lkIGFoNl9vdXRwdXRfZG9uZSh2b2lkICpkYXRhLCBpbnQgZXJyKVxcbm5ldC9pcHY2L2FoNi5jLTMxNy17XFxuLS1cXG5uZXQvaXB2Ni9haDYuYy0zNDktXFxubmV0L2lwdjYvYWg2LmM6MzUwOnN0YXRpYyBpbnQgYWg2X291dHB1dChzdHJ1Y3QgeGZybV9zdGF0ZSAqeCwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG5uZXQvaXB2Ni9haDYuYy0zNTEte1xcbi0tXFxubmV0L2lwdjYvYWg2LmMtNDQ5LVxcdGFoYXNoX3JlcXVlc3Rfc2V0X2NyeXB0KHJlcSwgc2csIGljdiwgc2tiLVxcdTAwM2VsZW4gKyBzZXFoaV9sZW4pO1xcbm5ldC9pcHY2L2FoNi5jOjQ1MDpcXHRhaGFzaF9yZXF1ZXN0X3NldF9jYWxsYmFjayhyZXEsIDAsIGFoNl9vdXRwdXRfZG9uZSwgc2tiKTtcXG5uZXQvaXB2Ni9haDYuYy00NTEtXFxuLS1cXG5uZXQvaXB2Ni9haDYuYz03ODc9c3RhdGljIGNvbnN0IHN0cnVjdCB4ZnJtX3R5cGUgYWg2X3R5cGUgPSB7XFxuLS1cXG5uZXQvaXB2Ni9haDYuYy03OTMtXFx0LmlucHV0XFx0XFx0PSBhaDZfaW5wdXQsXFxubmV0L2lwdjYvYWg2LmM6Nzk0OlxcdC5vdXRwdXRcXHRcXHQ9IGFoNl9vdXRwdXQsXFxubmV0L2lwdjYvYWg2LmMtNzk1LX07XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDAzOjE5OjU4Ljg0MDc5NzQ0NFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI3Mzg0NzU1NzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBzdW1tYXJ5LCBhcyB0aGUgdGhvdWdodCBwcm9jZXNzIHVuZm9sZHM6XG5cbioqQ29uZmlndXJhdGlvbiBFeGFtaW5hdGlvbjogSU5FVDZfQUgqKlxuXG5BbHJpZ2h0LCB0aGUgY29uZmlndXJhdGlvbiBpbiBxdWVzdGlvbiBpcyBgSU5FVDZfQUhgLiBNeSBpbml0aWFsIHN0ZXAgaXMgdG8gZGVsdmUgZGlyZWN0bHkgaW50byB0aGUgS2NvbmZpZyBmaWxlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgZGVmaW5pdGlvbiwgZGVwZW5kZW5jaWVzLCBhbmQgYW55IGFzc29jaWF0ZWQgaW1wbGljYXRpb25zIHdpdGhpbiB0aGUga2VybmVsIGNvbmZpZ3VyYXRpb24uIEknbSBnb2luZyB0byBsb29rIHVwIGBJTkVUNl9BSGAgaW4gS2NvbmZpZyB0byBncmFzcCB0aGUgc3BlY2lmaWNzIG9mIHRoaXMgcGFydGljdWxhciBzZXR0aW5nLCBpdHMgcHVycG9zZSwgYW5kIGhvdyBpdCBpbnRlcmFjdHMgd2l0aCBvdGhlciBjb21wb25lbnRzLiBUaGlzIGlzIHRoZSBzdGFydGluZyBwb2ludCBmb3IgYW55IG1lYW5pbmdmdWwgYW5hbHlzaXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQzNTIsIk91dHB1dFRva2VucyI6MzEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQwMzoyMDowMS41NzkyNzU1NDJaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQxOTk4MDY2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBJTkVUNl9BSFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvaXB2Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L2lwdjYvS2NvbmZpZz0zOT1jb25maWcgSVBWNl9PUFRJTUlTVElDX0RBRFxcbi0tXFxubmV0L2lwdjYvS2NvbmZpZy00Ni1cXG5uZXQvaXB2Ni9LY29uZmlnOjQ3OmNvbmZpZyBJTkVUNl9BSFxcbm5ldC9pcHY2L0tjb25maWctNDgtXFx0dHJpc3RhdGUgXFxcIklQdjY6IEFIIHRyYW5zZm9ybWF0aW9uXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQwMzoyMDowMS43MjEyNzk0MzhaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozOTQzNjUyNzE3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkFuYWx5emluZyB0aGUgSU5FVDZfQUggRGVwZW5kZW5jaWVzKipcblxuQWxyaWdodCwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIFwiSU5FVDZfQUhcIi4uLiB0aGF0IGltbWVkaWF0ZWx5IGJyaW5ncyB0byBtaW5kIHRoZSBBdXRoZW50aWNhdGlvbiBIZWFkZXIgZm9yIElQdjYuIE15IGZpcnN0IGluY2xpbmF0aW9uIGlzIHRvIG1hcCBvdXQgaXRzIGRlcGVuZGVuY2llcy4gSXQncyBub3QganVzdCBhIHN0YW5kYWxvbmUgZW50aXR5OyBpdCdzIGludHJpY2F0ZWx5IHdvdmVuIGludG8gdGhlIElQdjYgc2VjdXJpdHkgYXJjaGl0ZWN0dXJlLiBXZSBuZWVkIHRvIHRoaW5rIGFib3V0IGhvdyBpdCBpbnRlcmFjdHMgd2l0aCB0aGUgSVBzZWMgZnJhbWV3b3JrLCB0aGUgdHJhbnNwb3J0IHByb3RvY29scyBpdCBwcm90ZWN0cywgYW5kLCBvZiBjb3Vyc2UsIHRoZSBrZXkgbWFuYWdlbWVudCB0aGF0IHVuZGVycGlucyBpdC5cblxuSSdtIG1lbnRhbGx5IHB1bGxpbmcgdXAgdGhlIHJlbGV2YW50IFJGQ3Mg4oCTIFJGQyA0MzAyLCBwcm9iYWJseS4gV2hhdCBjcnlwdG9ncmFwaGljIGFsZ29yaXRobXMgYXJlIG1hbmRhdGVkIG9yIGFsbG93ZWQ/IEFyZSB0aGVyZSBhbnkgc3BlY2lmaWMgbGlicmFyaWVzIGl0IHJlbGllcyBvbiBmb3IgdGhvc2UgYWxnb3JpdGhtcywgbGlrZSBPcGVuU1NMIG9yIHNvbWV0aGluZyBtb3JlIHNwZWNpYWxpemVkIHdpdGhpbiBhIGtlcm5lbD8gSSBuZWVkIHRvIGNvbnNpZGVyIHdoaWNoIG90aGVyIG1vZHVsZXMgb3IgcHJvdG9jb2xzIGFyZSByZWxpYW50IG9uIGBJTkVUNl9BSGAsIG9yIHVzZSBpdCB0byBmdW5jdGlvbi5cblxuSSdtIGFsc28gY29uc2lkZXJpbmcgdGhlIGltcGxpY2F0aW9ucyBvZiBpdHMgcHJlc2VuY2UsIG9yIGFic2VuY2UsIGluIHRlcm1zIG9mIG5ldHdvcmsgcGVyZm9ybWFuY2UuIFdoYXQncyB0aGUgb3ZlcmhlYWQgb2YgQUggcHJvY2Vzc2luZywgYW5kIGhvdyBkb2VzIGl0IGNvbXBhcmUgdG8gRVNQPyBEb2VzIHRoZSBwcmVzZW5jZSBvZiBgSU5FVDZfQUhgIGFmZmVjdCBNVFUsIGFuZCBhbnkgcG90ZW50aWFsIGZvciBmcmFnbWVudGF0aW9uPyBJIG5lZWQgdG8gdGhpbmsgYWJvdXQgYW55IHBvdGVudGlhbCBjb25mbGljdHMgb3IgaW50ZXJhY3Rpb25zIHdpdGggTkFULCBhbmQgaWYgdGhpcyByZXF1aXJlcyBhbnkgc3BlY2lhbCBjb25zaWRlcmF0aW9ucy5cblxuVWx0aW1hdGVseSwgSSB3YW50IHRvIGZvcm0gYSBjbGVhciBwaWN0dXJlIG9mIGl0cyByb2xlLCB0aGUgYXJjaGl0ZWN0dXJhbCBpbXBsaWNhdGlvbnMgb2YgYElORVQ2X0FIYCBhbmQgdW5kZXJzdGFuZCB0aGUgZXh0ZW50IG9mIGl0cyBmb290cHJpbnQsIGFuZCBhbnkgcG90ZW50aWFsIHNlY3VyaXR5IGltcGxpY2F0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDYxMCwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDAzOjIwOjA1LjY2NDkzNTEzNVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyOTk4NzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwibmV0L2lwdjYvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiA0NyxcbiAgXCJMaW5lQ291bnRcIjogMTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICA0NzpcXHRjb25maWcgSU5FVDZfQUhcXG4gIDQ4OlxcdFxcdHRyaXN0YXRlIFxcXCJJUHY2OiBBSCB0cmFuc2Zvcm1hdGlvblxcXCJcXG4gIDQ5OlxcdFxcdHNlbGVjdCBYRlJNX0FIXFxuICA1MDpcXHRcXHRoZWxwXFxuICA1MTpcXHRcXHQgIFN1cHBvcnQgZm9yIElQc2VjIEFIIChBdXRoZW50aWNhdGlvbiBIZWFkZXIpLlxcbiAgNTI6XFx0XFxuICA1MzpcXHRcXHQgIEFIIGNhbiBiZSB1c2VkIHdpdGggdmFyaW91cyBhdXRoZW50aWNhdGlvbiBhbGdvcml0aG1zLiAgQmVzaWRlc1xcbiAgNTQ6XFx0XFx0ICBlbmFibGluZyBBSCBzdXBwb3J0IGl0c2VsZiwgdGhpcyBvcHRpb24gZW5hYmxlcyB0aGUgZ2VuZXJpY1xcbiAgNTU6XFx0XFx0ICBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlIGFsZ29yaXRobXMgdGhhdCBSRkMgODIyMSBsaXN0cyBhcyBNVVNUIGJlXFxuICA1NjpcXHRcXHQgIGltcGxlbWVudGVkLiAgSWYgeW91IG5lZWQgYW55IG90aGVyIGFsZ29yaXRobXMsIHlvdSdsbCBuZWVkIHRvIGVuYWJsZVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQwMzoyMDowNS42NjUyMzg0OTRaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTYxOTU5MDA2MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIElQc2VjIEFIdjYgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIHNvIEknbSBkaXZpbmcgaW50byB0aGlzIElQc2VjIEFIdjYgc2l0dWF0aW9uLiBJdCdzIGNsZWFyIGZyb20gYG5ldC9pcHY2L0tjb25maWdgIHRoYXQgdGhpcyBjb25maWd1cmF0aW9uIGhpbmdlcyBpbXBsaWNpdGx5IG9uIGBJUFY2YCwgc3BlY2lmaWNhbGx5IGJlY2F1c2UgYElORVQ2X0FIYCBpcyBuZXN0ZWQgdW5kZXIgYG1lbnVjb25maWcgSVBWNmAuIFRoZXJlZm9yZSwgYElQVjZgIGFuZCBgSU5FVDZfQUhgIGFyZSBteSBwcmltYXJ5IGNvbmZpZ3VyYXRpb24gcG9pbnRzIG9mIGludGVyZXN0LlxuXG5NeSBpbW1lZGlhdGUgZm9jdXMgaXMgb24gdGhlIGBhaDZfaW5wdXRgIGFuZCBgYWg2X291dHB1dGAgZnVuY3Rpb25zLiBJIGtub3cgdGhleSdyZSBjcml0aWNhbCBjb21wb25lbnRzIG9mIHRoZSBYRlJNIElQc2VjIHN0YWNrLCBhbmQgdGhhdCdzIHRoZSBwYXRod2F5IHRvIHRoZW0uXG5cbk5vdywgbGV0J3Mgc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgc3VwcG9ydGluZyBjb25maWdzIEkgbmVlZCB0byBhZGRyZXNzLiBJdCBzZWVtcywgaW5pdGlhbGx5LCB0aGF0IGBJTkVUNl9BSGAgaXRzZWxmLCBhbG9uZyB3aXRoIHRoZSBmb3VuZGF0aW9uYWwgYElQVjZgIHNldHRpbmcsIGlzIHN1ZmZpY2llbnQuXG5cbkxldCBtZSBqdXN0IGRvdWJsZS1jaGVjaywgZm9yIG15IHBlYWNlIG9mIG1pbmQsIHRoYXQgYGFoNl9pbnB1dGAgYW5kIGBhaDZfb3V0cHV0YCBhcmUgc3RhdGljIGZ1bmN0aW9ucy4gWWVwLCB0aGV5IGFyZS4gSG1tbSwgYnV0IGhhbmcgb24gYSBtaW51dGUuIFRoZSBpbnN0cnVjdGlvbnMgc2F5IHRvIGZhdm9yIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50cy4gVGhhdCdzIGEga2V5IGRpc3RpbmN0aW9uISBgYWg2X2lucHV0YCBhbmQgYGFoNl9vdXRwdXRgIGFyZSBzdGF0aWMsIGJ1dCB0aGV5J3JlIGFzc2lnbmVkIHRvIHRoZSBgc3RydWN0IHhmcm1fdHlwZSBhaDZfdHlwZWAgYXMgdGhlIGAuaW5wdXRgIGFuZCBgLm91dHB1dGAgbWVtYmVycy4gVGhpcyBpcyBpbnRlcmVzdGluZzogVGhleSdyZSAqbm90KiBpbmxpbmVkIGJlY2F1c2UgdGhlaXIgYWRkcmVzc2VzIGFyZSBiZWluZyB0YWtlbi4gQnV0LCBtYXliZSBJIGNhbiBpbmNvcnBvcmF0ZSBgeGZybV9pbnB1dGAgb3IgYHhmcm1fb3V0cHV0YCBvciBgeGZybTZfcmN2YCB0b28/XG5cblRvIGNsYXJpZnkgdGhpcywgSSdsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hlcmUgYGFoNl90eXBlYCBpcyByZWdpc3RlcmVkLiBUaGF0J2xsIGdpdmUgbWUgYSBjbGVhcmVyIHBpY3R1cmUgb2YgaG93IHRoZXNlIGZ1bmN0aW9ucyBhcmUgdXNlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTEzNSwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI4MiwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDAzOjIwOjExLjI4NDgzMTYxNVoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODE2MDUwNzU0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImFoNl90eXBlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9pcHY2L2FoNi5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9pcHY2L2FoNi5jPTc4Mj1zdGF0aWMgaW50IGFoNl9yY3ZfY2Ioc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IGVycilcXG4tLVxcbm5ldC9pcHY2L2FoNi5jLTc4Ni1cXG5uZXQvaXB2Ni9haDYuYzo3ODc6c3RhdGljIGNvbnN0IHN0cnVjdCB4ZnJtX3R5cGUgYWg2X3R5cGUgPSB7XFxubmV0L2lwdjYvYWg2LmMtNzg4LVxcdC5vd25lclxcdFxcdD0gVEhJU19NT0RVTEUsXFxuLS1cXG5uZXQvaXB2Ni9haDYuYz04MDU9c3RhdGljIGludCBfX2luaXQgYWg2X2luaXQodm9pZClcXG5uZXQvaXB2Ni9haDYuYy04MDYte1xcbm5ldC9pcHY2L2FoNi5jOjgwNzpcXHRpZiAoeGZybV9yZWdpc3Rlcl90eXBlKFxcdTAwMjZhaDZfdHlwZSwgQUZfSU5FVDYpIFxcdTAwM2MgMCkge1xcbm5ldC9pcHY2L2FoNi5jLTgwOC1cXHRcXHRwcl9pbmZvKFxcXCIlczogY2FuJ3QgYWRkIHhmcm0gdHlwZVxcXFxuXFxcIiwgX19mdW5jX18pO1xcbi0tXFxubmV0L2lwdjYvYWg2LmMtODEzLVxcdFxcdHByX2luZm8oXFxcIiVzOiBjYW4ndCBhZGQgcHJvdG9jb2xcXFxcblxcXCIsIF9fZnVuY19fKTtcXG5uZXQvaXB2Ni9haDYuYzo4MTQ6XFx0XFx0eGZybV91bnJlZ2lzdGVyX3R5cGUoXFx1MDAyNmFoNl90eXBlLCBBRl9JTkVUNik7XFxubmV0L2lwdjYvYWg2LmMtODE1LVxcdFxcdHJldHVybiAtRUFHQUlOO1xcbi0tXFxubmV0L2lwdjYvYWg2LmM9ODIxPXN0YXRpYyB2b2lkIF9fZXhpdCBhaDZfZmluaSh2b2lkKVxcbi0tXFxubmV0L2lwdjYvYWg2LmMtODI1LVxcbm5ldC9pcHY2L2FoNi5jOjgyNjpcXHR4ZnJtX3VucmVnaXN0ZXJfdHlwZShcXHUwMDI2YWg2X3R5cGUsIEFGX0lORVQ2KTtcXG5uZXQvaXB2Ni9haDYuYy04MjctfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQwMzoyMDoxMi4xMDA4OTA4OTlaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODY5Mzc4NTk5MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiB0aGUgQUg2IElQc2VjIFZ1bG5lcmFiaWxpdHkgUGF0Y2gqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IGBhaDZfaW5wdXRgIGFuZCBgYWg2X291dHB1dGAgYXJlIHRoZSBrZXkgZW50cnkgcG9pbnRzIGZvciBBSDYgcHJvY2Vzc2luZy4gVGhleSdyZSBzdGF0aWMsIHdoaWNoIGluaXRpYWxseSByYWlzZWQgYSBmbGFnIHJlZ2FyZGluZyBTeXprYWxsZXIncyBhYmlsaXR5IHRvIHJlc29sdmUgdGhlbS4gSG93ZXZlciwgaWYgdGhlIERXQVJGIGluZm9ybWF0aW9uIGlzIGNvcnJlY3RseSBpbmNsdWRlZCwgaXQgc2hvdWxkIGJlIGZpbmUuIEknbSBjaG9vc2luZyB0aGVtIGFzIHRoZSBmb2N1cyBmdW5jdGlvbnMuIGB4ZnJtX2lucHV0YCBhbmQgYHhmcm1fb3V0cHV0YCBhcmUgYWxzbyByZWxldmFudCwgYnV0IHRoZXkncmUgbW9yZSBnZW5lcmljLCBzbyBJJ20gc3RpY2tpbmcgd2l0aCBgYWg2X2lucHV0YCBhbmQgYGFoNl9vdXRwdXRgIGZvciB0aGVpciBzcGVjaWZpY2l0eS4gQW5kIHNpbmNlIHdlJ3JlIGhlcmUsIGxldCBtZSBtYWtlIGEgbm90ZSB0aGF0IGBpcHY2X2NsZWFyX211dGFibGVfb3B0aW9uc2AgaXMgYWxzbyBzdGF0aWMuXG5cbkxldCdzIHF1aWNrbHkgY2hlY2sgYHhmcm1faW5wdXRgIGFuZCBgeGZybV9vdXRwdXRgIOKAkyB5ZXAsIGdlbmVyaWMgYXMgZXhwZWN0ZWQuIFNvLCBmb2N1c2luZyBvbiBgYWg2X2lucHV0YCBhbmQgYGFoNl9vdXRwdXRgIG1ha2VzIHRoZSBtb3N0IHNlbnNlLlxuXG5Ob3csIHdoYXQgYWJvdXQgdGhlIGNvbmZpZ3VyYXRpb24/IEkgdGhpbmsgYFhGUk1fVVNFUmAgaXMgZ29pbmcgdG8gYmUgaW1wb3J0YW50LiBJdCdzIHByb2JhYmx5IG5lY2Vzc2FyeSB0byBjb25maWd1cmUgSVBzZWMgZnJvbSB1c2Vyc3BhY2UuIFNvLCBJIG5lZWQgdG8gYWRkIHRoYXQuXG5cbk9rYXksIHNvIG15IGNvbmZpZ3MgYXJlIGBJUFY2YCwgYElORVQ2X0FIYCwgYW5kIGBYRlJNX1VTRVJgLiBNeSBgRm9jdXNTeW1ib2xzYCBhcmUgZGVmaW5pdGVseSBgYWg2X2lucHV0YCBhbmQgYGFoNl9vdXRwdXRgLlxuXG5UaGUgcmVhc29uaW5nIGlzIHNvbGlkOiB0aGlzIHBhdGNoIGlzIGZpeGluZyBhIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIHJlYWQvd3JpdGUgaW4gYGlwdjZfcmVhcnJhbmdlX3J0aGRyYC4gVGhlIGNvZGUncyB0cmlnZ2VyZWQgd2hlbiBwcm9jZXNzaW5nIElQdjYgSVBzZWMgQUggcGFja2V0cyB3aXRoIHJvdXRpbmcgaGVhZGVycy4gU28sIGZ1enppbmcgdGhlIElQdjYgQUggaW5wdXQgYW5kIG91dHB1dCBwYXRocyBpcyB0aGUgcmlnaHQgYXBwcm9hY2guXG5cbkxldCdzIHF1aWNrbHkgY29uZmlybSB0aGF0IGBpcHY2X3JlYXJyYW5nZV9ydGhkcmAgaXMgcmVhY2hhYmxlLiBPa2F5LCBpdCdzIGNhbGxlZCBmcm9tIGBpcHY2X2NsZWFyX211dGFibGVfb3B0aW9uc2AsIHdoaWNoIGlzLCBpbiB0dXJuLCBjYWxsZWQgYnkgYGFoNl9vdXRwdXRgIGFuZCBgYWg2X2lucHV0YC4gUGVyZmVjdC4gWWVwLCBpdCBpcyByZWFjaGFibGUuXG5cbkp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLCBsZXQgbWUgZG91YmxlLWNoZWNrOiB5ZXAsIGBhaDZfaW5wdXRgIGFuZCBgYWg2X291dHB1dGAgYXJlIGluZGVlZCB0aGUgYmVzdCBzeW1ib2xzLiBUaGV5IGFyZSB0aGUgY29yZSBoYW5kbGVycyBmb3IgQUg2LiBJJ20gY29uZmlkZW50IGluIHRoaXMgYXNzZXNzbWVudC5cblxuXG4iLCJJbnB1dFRva2VucyI6NjI1MywiT3V0cHV0VG9rZW5zIjoxMjYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1OTAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjZUMDM6MjA6MjAuNzk0Njc5NTMyWiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjEwMjQyMzI2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJJUFY2XCIsXG4gICAgXCJJTkVUNl9BSFwiLFxuICAgIFwiWEZSTV9VU0VSXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYWg2X2lucHV0XCIsXG4gICAgXCJhaDZfb3V0cHV0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgb3V0LW9mLWJvdW5kcyBhY2Nlc3MgaW4gaXB2Nl9yZWFycmFuZ2VfcnRoZHIgYnkgdmFsaWRhdGluZyBzZWdtZW50c19sZWZ0IGFnYWluc3QgdGhlIHJvdXRpbmcgaGVhZGVyIGxlbmd0aC4gVGhpcyBjb2RlIGlzIGV4ZWN1dGVkIGR1cmluZyBJUHY2IElQc2VjIEFIIChBdXRoZW50aWNhdGlvbiBIZWFkZXIpIHBhY2tldCBwcm9jZXNzaW5nLiBGdXp6aW5nIHNob3VsZCBmb2N1cyBvbiB0aGUgQUg2IGlucHV0IGFuZCBvdXRwdXQgcGF0aHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiSVBWNlwiLFxuICAgIFwiSU5FVDZfQUhcIixcbiAgICBcIlhGUk1fVVNFUlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImFoNl9pbnB1dFwiLFxuICAgIFwiYWg2X291dHB1dFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIG91dC1vZi1ib3VuZHMgYWNjZXNzIGluIGlwdjZfcmVhcnJhbmdlX3J0aGRyIGJ5IHZhbGlkYXRpbmcgc2VnbWVudHNfbGVmdCBhZ2FpbnN0IHRoZSByb3V0aW5nIGhlYWRlciBsZW5ndGguIFRoaXMgY29kZSBpcyBleGVjdXRlZCBkdXJpbmcgSVB2NiBJUHNlYyBBSCAoQXV0aGVudGljYXRpb24gSGVhZGVyKSBwYWNrZXQgcHJvY2Vzc2luZy4gRnV6emluZyBzaG91bGQgZm9jdXMgb24gdGhlIEFINiBpbnB1dCBhbmQgb3V0cHV0IHBhdGhzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowjmdh2[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-26 02:48:55 +0000 UTC FinishedAt: 2026-07-26 03:20:21 +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": "04026c998c24ac47eb76886b9790c5710b603eb4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IPV6", "INET6_AH", "XFRM_USER" ], "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": "04026c998c24ac47eb76886b9790c5710b603eb4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IPV6", "INET6_AH", "XFRM_USER" ], "series_id": "f63f2e67-13a1-4f80-a643-a932130263dd" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ah6_input", "ah6_output" ], "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+CgkJCTx0ZD4yMDI2LzA3LzI2IDAzOjE5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lQVjYmIzM0OywKICAgICYjMzQ7SU5FVDZfQUgmIzM0OywKICAgICYjMzQ7WEZSTV9VU0VSJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YWg2X2lucHV0JiMzNDssCiAgICAmIzM0O2FoNl9vdXRwdXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgb3V0LW9mLWJvdW5kcyBhY2Nlc3MgaW4gaXB2Nl9yZWFycmFuZ2VfcnRoZHIgYnkgdmFsaWRhdGluZyBzZWdtZW50c19sZWZ0IGFnYWluc3QgdGhlIHJvdXRpbmcgaGVhZGVyIGxlbmd0aC4gVGhpcyBjb2RlIGlzIGV4ZWN1dGVkIGR1cmluZyBJUHY2IElQc2VjIEFIIChBdXRoZW50aWNhdGlvbiBIZWFkZXIpIHBhY2tldCBwcm9jZXNzaW5nLiBGdXp6aW5nIHNob3VsZCBmb2N1cyBvbiB0aGUgQUg2IGlucHV0IGFuZCBvdXRwdXQgcGF0aHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMDM6MTk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAxMzk5YjU2ODRhMDkzOGQ5M2U2NjE1YjYyNGNiNmZjNDhlNWJkMjEyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBKdWwgMjYgMDM6MTk6NDMgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L2lwdjYvYWg2LmMgYi9uZXQvaXB2Ni9haDYuY1xuaW5kZXggNzZmN2EyZGU5MTA4ZWIuLmM5NmY3ZTBkMGE0ODE1IDEwMDY0NFxuLS0tIGEvbmV0L2lwdjYvYWg2LmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC9pcHY2L2FoNi5jXG5AQCAtMjMyLDI2ICYjNDM7MjMyLDI4IEBAIHN0YXRpYyB2b2lkIGlwdjZfcmVhcnJhbmdlX2Rlc3RvcHQoc3RydWN0IGlwdjZoZHIgKmlwaCwgc3RydWN0IGlwdjZfb3B0X2hkciAqZGVzXG4gICpcdFJlYXJyYW5nZSB0aGUgZGVzdGluYXRpb24gYWRkcmVzcyBpbiBAaXBoIGFuZCB0aGUgYWRkcmVzc2VzIGluIEBydGhkclxuICAqXHRzbyB0aGF0IHRoZXkgYXBwZWFyIGluIHRoZSBvcmRlciB0aGV5IHdpbGwgYXQgdGhlIGZpbmFsIGRlc3RpbmF0aW9uLlxuICAqXHRTZWUgQXBwZW5kaXggQTIgb2YgUkZDIDI0MDIgZm9yIGRldGFpbHMuXG4mIzQzOyAqXG4mIzQzOyAqIFJldHVybjogMCBvbiBzdWNjZXNzLCAtRUlOVkFMIGlmIHNlZ21lbnRzX2xlZnQgZXhjZWVkcyB0aGUgbnVtYmVyIG9mXG4mIzQzOyAqIGFkZHJlc3NlcyBkZXNjcmliZWQgYnkgaGRybGVuLlxuICAqL1xuLXN0YXRpYyB2b2lkIGlwdjZfcmVhcnJhbmdlX3J0aGRyKHN0cnVjdCBpcHY2aGRyICppcGgsIHN0cnVjdCBpcHY2X3J0X2hkciAqcnRoZHIpXG4mIzQzO3N0YXRpYyBpbnQgaXB2Nl9yZWFycmFuZ2VfcnRoZHIoc3RydWN0IGlwdjZoZHIgKmlwaCwgc3RydWN0IGlwdjZfcnRfaGRyICpydGhkcilcbiB7XG4tXHRpbnQgc2VnbWVudHMsIHNlZ21lbnRzX2xlZnQ7XG4mIzQzO1x0dW5zaWduZWQgaW50IHNlZ21lbnRzLCBzZWdtZW50c19sZWZ0O1xuIFx0c3RydWN0IGluNl9hZGRyICphZGRycztcbiBcdHN0cnVjdCBpbjZfYWRkciBmaW5hbF9hZGRyO1xuIFxuIFx0c2VnbWVudHNfbGVmdCA9IHJ0aGRyLVx1MDAzZXNlZ21lbnRzX2xlZnQ7XG4gXHRpZiAoc2VnbWVudHNfbGVmdCA9PSAwKVxuLVx0XHRyZXR1cm47XG4tXHRydGhkci1cdTAwM2VzZWdtZW50c19sZWZ0ID0gMDtcbiYjNDM7XHRcdHJldHVybiAwO1xuIFxuLVx0LyogVGhlIHZhbHVlIG9mIHJ0aGRyLVx1MDAzZWhkcmxlbiBoYXMgYmVlbiB2ZXJpZmllZCBlaXRoZXIgYnkgdGhlIHN5c3RlbVxuLVx0ICogY2FsbCBpZiBpdCBpcyBsb2NhbGx5IGdlbmVyYXRlZCwgb3IgYnkgaXB2Nl9ydGhkcl9yY3YoKSBmb3IgaW5jb21pbmdcbi1cdCAqIHBhY2tldHMuICBTbyB3ZSBjYW4gYXNzdW1lIHRoYXQgaXQgaXMgZXZlbiBhbmQgdGhhdCBzZWdtZW50cyBpc1xuLVx0ICogZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHNlZ21lbnRzX2xlZnQuXG4tXHQgKlxuLVx0ICogRm9yIHRoZSBzYW1lIHJlYXNvbiB3ZSBjYW4gYXNzdW1lIHRoYXQgdGhpcyBvcHRpb24gaXMgb2YgdHlwZSAwLlxuJiM0MztcdC8qIFJhdyBsb2NhbGx5IGdlbmVyYXRlZCBwYWNrZXRzIGNhbiByZWFjaCBBSDYgd2l0aG91dCB0aGUgaW52YXJpYW50XG4mIzQzO1x0ICogcmVxdWlyZWQgYnkgdGhlIHJ0MC1zdHlsZSBhZGRyZXNzIHJlYXJyYW5nZW1lbnQgYmVsb3cuXG4gXHQgKi9cbiBcdHNlZ21lbnRzID0gcnRoZHItXHUwMDNlaGRybGVuIFx1MDAzZVx1MDAzZSAxO1xuJiM0MztcdGlmIChzZWdtZW50c19sZWZ0IFx1MDAzZSBzZWdtZW50cylcbiYjNDM7XHRcdHJldHVybiAtRUlOVkFMO1xuJiM0MztcbiYjNDM7XHRydGhkci1cdTAwM2VzZWdtZW50c19sZWZ0ID0gMDtcbiBcbiBcdGFkZHJzID0gKChzdHJ1Y3QgcnQwX2hkciAqKXJ0aGRyKS1cdTAwM2VhZGRyO1xuIFx0ZmluYWxfYWRkciA9IGFkZHJzW3NlZ21lbnRzIC0gMV07XG5AQCAtMjYxLDYgJiM0MzsyNjMsOCBAQCBzdGF0aWMgdm9pZCBpcHY2X3JlYXJyYW5nZV9ydGhkcihzdHJ1Y3QgaXB2NmhkciAqaXBoLCBzdHJ1Y3QgaXB2Nl9ydF9oZHIgKnJ0aGRyKVxuIFxuIFx0YWRkcnNbMF0gPSBpcGgtXHUwMDNlZGFkZHI7XG4gXHRpcGgtXHUwMDNlZGFkZHIgPSBmaW5hbF9hZGRyO1xuJiM0MztcbiYjNDM7XHRyZXR1cm4gMDtcbiB9XG4gXG4gc3RhdGljIGludCBpcHY2X2NsZWFyX211dGFibGVfb3B0aW9ucyhzdHJ1Y3QgaXB2NmhkciAqaXBoLCBpbnQgbGVuLCBpbnQgZGlyKVxuQEAgLTI3Myw2ICYjNDM7Mjc3LDcgQEAgc3RhdGljIGludCBpcHY2X2NsZWFyX211dGFibGVfb3B0aW9ucyhzdHJ1Y3QgaXB2NmhkciAqaXBoLCBpbnQgbGVuLCBpbnQgZGlyKVxuIFx0fSBleHRoZHIgPSB7IC5pcGggPSBpcGggfTtcbiBcdGNoYXIgKmVuZCA9IGV4dGhkci5yYXcgJiM0MzsgbGVuO1xuIFx0aW50IG5leHRoZHIgPSBpcGgtXHUwMDNlbmV4dGhkcjtcbiYjNDM7XHRpbnQgZXJyO1xuIFxuIFx0ZXh0aGRyLmlwaCYjNDM7JiM0Mzs7XG4gXG5AQCAtMjkyLDcgJiM0MzsyOTcsOSBAQCBzdGF0aWMgaW50IGlwdjZfY2xlYXJfbXV0YWJsZV9vcHRpb25zKHN0cnVjdCBpcHY2aGRyICppcGgsIGludCBsZW4sIGludCBkaXIpXG4gXHRcdFx0YnJlYWs7XG4gXG4gXHRcdGNhc2UgTkVYVEhEUl9ST1VUSU5HOlxuLVx0XHRcdGlwdjZfcmVhcnJhbmdlX3J0aGRyKGlwaCwgZXh0aGRyLnJ0aCk7XG4mIzQzO1x0XHRcdGVyciA9IGlwdjZfcmVhcnJhbmdlX3J0aGRyKGlwaCwgZXh0aGRyLnJ0aCk7XG4mIzQzO1x0XHRcdGlmIChlcnIpXG4mIzQzO1x0XHRcdFx0cmV0dXJuIGVycjtcbiBcdFx0XHRicmVhaztcbiBcbiBcdFx0ZGVmYXVsdDpcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAwMzoxOTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7SVBWNiYjMzQ7LAogICAgJiMzNDtJTkVUNl9BSCYjMzQ7LAogICAgJiMzNDtYRlJNX1VTRVImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDthaDZfaW5wdXQmIzM0OywKICAgICYjMzQ7YWg2X291dHB1dCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIGFjY2VzcyBpbiBpcHY2X3JlYXJyYW5nZV9ydGhkciBieSB2YWxpZGF0aW5nIHNlZ21lbnRzX2xlZnQgYWdhaW5zdCB0aGUgcm91dGluZyBoZWFkZXIgbGVuZ3RoLiBUaGlzIGNvZGUgaXMgZXhlY3V0ZWQgZHVyaW5nIElQdjYgSVBzZWMgQUggKEF1dGhlbnRpY2F0aW9uIEhlYWRlcikgcGFja2V0IHByb2Nlc3NpbmcuIEZ1enppbmcgc2hvdWxkIGZvY3VzIG9uIHRoZSBBSDYgaW5wdXQgYW5kIG91dHB1dCBwYXRocy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDEzOTliNTY4NGEwOTM4ZDkzZTY2MTViNjI0Y2I2ZmM0OGU1YmQyMTIKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU3VuIEp1bCAyNiAwMzoxOTo0MyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2FoNi5jIGIvbmV0L2lwdjYvYWg2LmMKaW5kZXggNzZmN2EyZGU5MTA4ZWIuLmM5NmY3ZTBkMGE0ODE1IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9haDYuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvaXB2Ni9haDYuYwpAQCAtMjMyLDI2ICYjNDM7MjMyLDI4IEBAIHN0YXRpYyB2b2lkIGlwdjZfcmVhcnJhbmdlX2Rlc3RvcHQoc3RydWN0IGlwdjZoZHIgKmlwaCwgc3RydWN0IGlwdjZfb3B0X2hkciAqZGVzCiAgKglSZWFycmFuZ2UgdGhlIGRlc3RpbmF0aW9uIGFkZHJlc3MgaW4gQGlwaCBhbmQgdGhlIGFkZHJlc3NlcyBpbiBAcnRoZHIKICAqCXNvIHRoYXQgdGhleSBhcHBlYXIgaW4gdGhlIG9yZGVyIHRoZXkgd2lsbCBhdCB0aGUgZmluYWwgZGVzdGluYXRpb24uCiAgKglTZWUgQXBwZW5kaXggQTIgb2YgUkZDIDI0MDIgZm9yIGRldGFpbHMuCiYjNDM7ICoKJiM0MzsgKiBSZXR1cm46IDAgb24gc3VjY2VzcywgLUVJTlZBTCBpZiBzZWdtZW50c19sZWZ0IGV4Y2VlZHMgdGhlIG51bWJlciBvZgomIzQzOyAqIGFkZHJlc3NlcyBkZXNjcmliZWQgYnkgaGRybGVuLgogICovCi1zdGF0aWMgdm9pZCBpcHY2X3JlYXJyYW5nZV9ydGhkcihzdHJ1Y3QgaXB2NmhkciAqaXBoLCBzdHJ1Y3QgaXB2Nl9ydF9oZHIgKnJ0aGRyKQomIzQzO3N0YXRpYyBpbnQgaXB2Nl9yZWFycmFuZ2VfcnRoZHIoc3RydWN0IGlwdjZoZHIgKmlwaCwgc3RydWN0IGlwdjZfcnRfaGRyICpydGhkcikKIHsKLQlpbnQgc2VnbWVudHMsIHNlZ21lbnRzX2xlZnQ7CiYjNDM7CXVuc2lnbmVkIGludCBzZWdtZW50cywgc2VnbWVudHNfbGVmdDsKIAlzdHJ1Y3QgaW42X2FkZHIgKmFkZHJzOwogCXN0cnVjdCBpbjZfYWRkciBmaW5hbF9hZGRyOwogCiAJc2VnbWVudHNfbGVmdCA9IHJ0aGRyLSZndDtzZWdtZW50c19sZWZ0OwogCWlmIChzZWdtZW50c19sZWZ0ID09IDApCi0JCXJldHVybjsKLQlydGhkci0mZ3Q7c2VnbWVudHNfbGVmdCA9IDA7CiYjNDM7CQlyZXR1cm4gMDsKIAotCS8qIFRoZSB2YWx1ZSBvZiBydGhkci0mZ3Q7aGRybGVuIGhhcyBiZWVuIHZlcmlmaWVkIGVpdGhlciBieSB0aGUgc3lzdGVtCi0JICogY2FsbCBpZiBpdCBpcyBsb2NhbGx5IGdlbmVyYXRlZCwgb3IgYnkgaXB2Nl9ydGhkcl9yY3YoKSBmb3IgaW5jb21pbmcKLQkgKiBwYWNrZXRzLiAgU28gd2UgY2FuIGFzc3VtZSB0aGF0IGl0IGlzIGV2ZW4gYW5kIHRoYXQgc2VnbWVudHMgaXMKLQkgKiBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gc2VnbWVudHNfbGVmdC4KLQkgKgotCSAqIEZvciB0aGUgc2FtZSByZWFzb24gd2UgY2FuIGFzc3VtZSB0aGF0IHRoaXMgb3B0aW9uIGlzIG9mIHR5cGUgMC4KJiM0MzsJLyogUmF3IGxvY2FsbHkgZ2VuZXJhdGVkIHBhY2tldHMgY2FuIHJlYWNoIEFINiB3aXRob3V0IHRoZSBpbnZhcmlhbnQKJiM0MzsJICogcmVxdWlyZWQgYnkgdGhlIHJ0MC1zdHlsZSBhZGRyZXNzIHJlYXJyYW5nZW1lbnQgYmVsb3cuCiAJICovCiAJc2VnbWVudHMgPSBydGhkci0mZ3Q7aGRybGVuICZndDsmZ3Q7IDE7CiYjNDM7CWlmIChzZWdtZW50c19sZWZ0ICZndDsgc2VnbWVudHMpCiYjNDM7CQlyZXR1cm4gLUVJTlZBTDsKJiM0MzsKJiM0MzsJcnRoZHItJmd0O3NlZ21lbnRzX2xlZnQgPSAwOwogCiAJYWRkcnMgPSAoKHN0cnVjdCBydDBfaGRyICopcnRoZHIpLSZndDthZGRyOwogCWZpbmFsX2FkZHIgPSBhZGRyc1tzZWdtZW50cyAtIDFdOwpAQCAtMjYxLDYgJiM0MzsyNjMsOCBAQCBzdGF0aWMgdm9pZCBpcHY2X3JlYXJyYW5nZV9ydGhkcihzdHJ1Y3QgaXB2NmhkciAqaXBoLCBzdHJ1Y3QgaXB2Nl9ydF9oZHIgKnJ0aGRyKQogCiAJYWRkcnNbMF0gPSBpcGgtJmd0O2RhZGRyOwogCWlwaC0mZ3Q7ZGFkZHIgPSBmaW5hbF9hZGRyOwomIzQzOwomIzQzOwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGludCBpcHY2X2NsZWFyX211dGFibGVfb3B0aW9ucyhzdHJ1Y3QgaXB2NmhkciAqaXBoLCBpbnQgbGVuLCBpbnQgZGlyKQpAQCAtMjczLDYgJiM0MzsyNzcsNyBAQCBzdGF0aWMgaW50IGlwdjZfY2xlYXJfbXV0YWJsZV9vcHRpb25zKHN0cnVjdCBpcHY2aGRyICppcGgsIGludCBsZW4sIGludCBkaXIpCiAJfSBleHRoZHIgPSB7IC5pcGggPSBpcGggfTsKIAljaGFyICplbmQgPSBleHRoZHIucmF3ICYjNDM7IGxlbjsKIAlpbnQgbmV4dGhkciA9IGlwaC0mZ3Q7bmV4dGhkcjsKJiM0MzsJaW50IGVycjsKIAogCWV4dGhkci5pcGgmIzQzOyYjNDM7OwogCkBAIC0yOTIsNyAmIzQzOzI5Nyw5IEBAIHN0YXRpYyBpbnQgaXB2Nl9jbGVhcl9tdXRhYmxlX29wdGlvbnMoc3RydWN0IGlwdjZoZHIgKmlwaCwgaW50IGxlbiwgaW50IGRpcikKIAkJCWJyZWFrOwogCiAJCWNhc2UgTkVYVEhEUl9ST1VUSU5HOgotCQkJaXB2Nl9yZWFycmFuZ2VfcnRoZHIoaXBoLCBleHRoZHIucnRoKTsKJiM0MzsJCQllcnIgPSBpcHY2X3JlYXJyYW5nZV9ydGhkcihpcGgsIGV4dGhkci5ydGgpOwomIzQzOwkJCWlmIChlcnIpCiYjNDM7CQkJCXJldHVybiBlcnI7CiAJCQlicmVhazsKIAogCQlkZWZhdWx0Ogo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAwMzoxOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyODAyCgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogMTUyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFNlY3VyaXR5LVJlbGF0ZWQgUGF0Y2ggdG8gaXB2Nl9yZWFycmFuZ2VfcnRoZHIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBuZXQvaXB2Ni9haDYuY2AsIGFuZCBpdCYjMzk7cyBtYWtpbmcgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byBgaXB2Nl9yZWFycmFuZ2VfcnRoZHJgLiBUaGUgcHJpbWFyeSB0aGluZyBqdW1waW5nIG91dCBpcyB0aGF0IHRoZXkmIzM5O3ZlIGNoYW5nZWQgdGhlIHJldHVybiB0eXBlIGZyb20gYHZvaWRgIHRvIGBpbnRgLiAgVGhhdCBpbW1lZGlhdGVseSBzaWduYWxzIGEgcG90ZW50aWFsIGZvciBlcnJvciBoYW5kbGluZy4gIEFuZCBJIHNlZSB0aGUgYWRkZWQgY2hlY2s6IGBpZiAoc2VnbWVudHNfbGVmdCAmZ3Q7IHNlZ21lbnRzKSByZXR1cm4gLUVJTlZBTDtgLiBBaCwgdGhhdCYjMzk7cyBhbG1vc3QgY2VydGFpbmx5IHRvIHByZXZlbnQgYW4gb3V0LW9mLWJvdW5kcyByZWFkIG9yIHdyaXRlLCBvciBtYXliZSBzb21lIG90aGVyIGtpbmQgb2YgZGF0YSBjb3JydXB0aW9uLCBieSB2YWxpZGF0aW5nIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBgc2VnbWVudHNfbGVmdGAgYW5kIGBzZWdtZW50c2AuIEdvb2QgY2F0Y2guCgpUaGUgY29kZSBub3cgcmV0dXJucyBhbiBlcnJvciBjb2RlLCAtRUlOVkFMLiAgVGhlIGltbWVkaWF0ZSBpbXBsaWNhdGlvbiBpcyB0aGF0IHRoZSBjYWxsZXIsIGBpcHY2X2NsZWFyX211dGFibGVfb3B0aW9uc2AsIG5vdyAqbXVzdCogYmUgdXBkYXRlZCB0byBhY2NvdW50IGZvciB0aGlzIG5ldyByZXR1cm4gdmFsdWUsIGFuZCBpdCBsb29rcyBsaWtlIGl0IGlzLiBJdCYjMzk7cyB0aGUgb25seSBjYWxsZXIgbGlzdGVkLiBIb3dldmVyLCBJIHdhbnQgdG8gdGFrZSBhIGNsb3NlciBsb29rIGFuZCBlbnN1cmUgbm8gb3RoZXIgZnVuY3Rpb25hbGl0eSBkZXBlbmRzIG9uIHRoYXQuIEkmIzM5O20gZ29pbmcgdG8gc2NhbiB0aGUgb3RoZXIgY2FsbHMgdG8gYGlwdjZfY2xlYXJfbXV0YWJsZV9vcHRpb25zYCB0byBlbnN1cmUgdGhhdCB0aGVyZSBhcmVuJiMzOTt0IGFueSBvdGhlciBzdWJ0bGUgZGVwZW5kZW5jaWVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDAzOjE5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2lwdjZfY2xlYXJfbXV0YWJsZV9vcHRpb25zJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L2lwdjYvYWg2LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L2lwdjYvYWg2LmM9MjM5PXN0YXRpYyBpbnQgaXB2Nl9yZWFycmFuZ2VfcnRoZHIoc3RydWN0IGlwdjZoZHIgKmlwaCwgc3RydWN0IGlwdjZfcnRfaGRyICpydGhkcilcbi0tXG5uZXQvaXB2Ni9haDYuYy0yNjktXG5uZXQvaXB2Ni9haDYuYzoyNzA6c3RhdGljIGludCBpcHY2X2NsZWFyX211dGFibGVfb3B0aW9ucyhzdHJ1Y3QgaXB2NmhkciAqaXBoLCBpbnQgbGVuLCBpbnQgZGlyKVxubmV0L2lwdjYvYWg2LmMtMjcxLXtcbi0tXG5uZXQvaXB2Ni9haDYuYz0zNTA9c3RhdGljIGludCBhaDZfb3V0cHV0KHN0cnVjdCB4ZnJtX3N0YXRlICp4LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuLS1cbm5ldC9pcHY2L2FoNi5jLTQxNi1cdGlmIChleHRsZW4pIHtcbm5ldC9pcHY2L2FoNi5jOjQxNzpcdFx0ZXJyID0gaXB2Nl9jbGVhcl9tdXRhYmxlX29wdGlvbnModG9wX2lwaCxcbm5ldC9pcHY2L2FoNi5jLTQxOC1cdFx0XHRcdFx0XHQgZXh0bGVuIC0gc2l6ZW9mKCppcGhfZXh0KSAmIzQzO1xuLS1cbm5ldC9pcHY2L2FoNi5jPTUxOT1zdGF0aWMgaW50IGFoNl9pbnB1dChzdHJ1Y3QgeGZybV9zdGF0ZSAqeCwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbi0tXG5uZXQvaXB2Ni9haDYuYy02MTMtXG5uZXQvaXB2Ni9haDYuYzo2MTQ6XHRlcnIgPSBpcHY2X2NsZWFyX211dGFibGVfb3B0aW9ucyhpcDZoLCBoZHJfbGVuLCBYRlJNX1BPTElDWV9JTik7XG5uZXQvaXB2Ni9haDYuYy02MTUtXHRpZiAoZXJyKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDAzOjE5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM2MzQKCQkJCQkJCW91dHB1dDogMjkKCQkJCQkJCXRob3VnaHRzOiA0NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0JiMzOTtzIGludGVybmFsIG1vbm9sb2d1ZToKCioqSVB2NiBJUHNlYyBBSCBEZWVwIERpdmUqKgoKQWxyaWdodCwgbGV0JiMzOTtzIHNlZS4uLiB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGBhaDZfb3V0cHV0YCBhbmQgYGFoNl9pbnB1dGAuICBSaWdodCwgdGhlc2UgYXJlIHRoZSBjcml0aWNhbCBmdW5jdGlvbiBjYWxscyB3aXRoaW4gYW4gSVB2NiBJUHNlYyBBSCBpbXBsZW1lbnRhdGlvbi4gU3BlY2lmaWNhbGx5LCB0aGV5JiMzOTtyZSB0aGUgc2VuZCBhbmQgcmVjZWl2ZSBwYXRocywgdGhlIGNvcmUgb2YgdGhlIEF1dGhlbnRpY2F0aW9uIEhlYWRlciBmdW5jdGlvbmFsaXR5LiBNeSBmaXJzdCBpbnN0aW5jdCwgYXMgYWx3YXlzLCBpcyB0byBjaGVjayB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zLiAgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgaXMgYmVpbmcgY29tcGlsZWQgaW4sIGFuZCB3aGF0IGRlcGVuZGVuY2llcyBtaWdodCBiZSBhdCBwbGF5LiBTbywgS2NvbmZpZyBpdCBpcy4gTGV0IG1lIGltbWVkaWF0ZWx5IGNoZWNrIHRoZSBLY29uZmlnIHNldHRpbmdzIHJlbGF0ZWQgdG8gYGFoNi5jYC4gVGhhdCBzaG91bGQgdGVsbCB0aGUgd2hvbGUgc3RvcnkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMDM6MTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YWg2Lm8mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvaXB2Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L2lwdjYvTWFrZWZpbGU9Mjg9aXB2Ni0kKENPTkZJR19JUFY2X0lPQU02X0xXVFVOTkVMKSAmIzQzOz0gaW9hbTZfaXB0dW5uZWwub1xubmV0L2lwdjYvTWFrZWZpbGUtMjktXG5uZXQvaXB2Ni9NYWtlZmlsZTozMDpvYmotJChDT05GSUdfSU5FVDZfQUgpICYjNDM7PSBhaDYub1xubmV0L2lwdjYvTWFrZWZpbGUtMzEtb2JqLSQoQ09ORklHX0lORVQ2X0VTUCkgJiM0Mzs9IGVzcDYub1xuLS1cbm5ldC9pcHY2L2FoNi5jPTI3MD1zdGF0aWMgaW50IGlwdjZfY2xlYXJfbXV0YWJsZV9vcHRpb25zKHN0cnVjdCBpcHY2aGRyICppcGgsIGludCBsZW4sIGludCBkaXIpXG4tLVxubmV0L2lwdjYvYWg2LmMtMzE1LVxubmV0L2lwdjYvYWg2LmM6MzE2OnN0YXRpYyB2b2lkIGFoNl9vdXRwdXRfZG9uZSh2b2lkICpkYXRhLCBpbnQgZXJyKVxubmV0L2lwdjYvYWg2LmMtMzE3LXtcbi0tXG5uZXQvaXB2Ni9haDYuYy0zNDktXG5uZXQvaXB2Ni9haDYuYzozNTA6c3RhdGljIGludCBhaDZfb3V0cHV0KHN0cnVjdCB4ZnJtX3N0YXRlICp4LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxubmV0L2lwdjYvYWg2LmMtMzUxLXtcbi0tXG5uZXQvaXB2Ni9haDYuYy00NDktXHRhaGFzaF9yZXF1ZXN0X3NldF9jcnlwdChyZXEsIHNnLCBpY3YsIHNrYi1cdTAwM2VsZW4gJiM0Mzsgc2VxaGlfbGVuKTtcbm5ldC9pcHY2L2FoNi5jOjQ1MDpcdGFoYXNoX3JlcXVlc3Rfc2V0X2NhbGxiYWNrKHJlcSwgMCwgYWg2X291dHB1dF9kb25lLCBza2IpO1xubmV0L2lwdjYvYWg2LmMtNDUxLVxuLS1cbm5ldC9pcHY2L2FoNi5jPTc4Nz1zdGF0aWMgY29uc3Qgc3RydWN0IHhmcm1fdHlwZSBhaDZfdHlwZSA9IHtcbi0tXG5uZXQvaXB2Ni9haDYuYy03OTMtXHQuaW5wdXRcdFx0PSBhaDZfaW5wdXQsXG5uZXQvaXB2Ni9haDYuYzo3OTQ6XHQub3V0cHV0XHRcdD0gYWg2X291dHB1dCxcbm5ldC9pcHY2L2FoNi5jLTc5NS19O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDAzOjE5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQzNTIKCQkJCQkJCW91dHB1dDogMzEKCQkJCQkJCXRob3VnaHRzOiAyNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBzdW1tYXJ5LCBhcyB0aGUgdGhvdWdodCBwcm9jZXNzIHVuZm9sZHM6CgoqKkNvbmZpZ3VyYXRpb24gRXhhbWluYXRpb246IElORVQ2X0FIKioKCkFscmlnaHQsIHRoZSBjb25maWd1cmF0aW9uIGluIHF1ZXN0aW9uIGlzIGBJTkVUNl9BSGAuIE15IGluaXRpYWwgc3RlcCBpcyB0byBkZWx2ZSBkaXJlY3RseSBpbnRvIHRoZSBLY29uZmlnIGZpbGUuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBkZWZpbml0aW9uLCBkZXBlbmRlbmNpZXMsIGFuZCBhbnkgYXNzb2NpYXRlZCBpbXBsaWNhdGlvbnMgd2l0aGluIHRoZSBrZXJuZWwgY29uZmlndXJhdGlvbi4gSSYjMzk7bSBnb2luZyB0byBsb29rIHVwIGBJTkVUNl9BSGAgaW4gS2NvbmZpZyB0byBncmFzcCB0aGUgc3BlY2lmaWNzIG9mIHRoaXMgcGFydGljdWxhciBzZXR0aW5nLCBpdHMgcHVycG9zZSwgYW5kIGhvdyBpdCBpbnRlcmFjdHMgd2l0aCBvdGhlciBjb21wb25lbnRzLiBUaGlzIGlzIHRoZSBzdGFydGluZyBwb2ludCBmb3IgYW55IG1lYW5pbmdmdWwgYW5hbHlzaXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjYgMDM6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIElORVQ2X0FIJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L2lwdjYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9pcHY2L0tjb25maWc9Mzk9Y29uZmlnIElQVjZfT1BUSU1JU1RJQ19EQURcbi0tXG5uZXQvaXB2Ni9LY29uZmlnLTQ2LVxubmV0L2lwdjYvS2NvbmZpZzo0Nzpjb25maWcgSU5FVDZfQUhcbm5ldC9pcHY2L0tjb25maWctNDgtXHR0cmlzdGF0ZSBcJiMzNDtJUHY2OiBBSCB0cmFuc2Zvcm1hdGlvblwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDAzOjIwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ2MTAKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAxMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkFuYWx5emluZyB0aGUgSU5FVDZfQUggRGVwZW5kZW5jaWVzKioKCkFscmlnaHQsIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcy4gJiMzNDtJTkVUNl9BSCYjMzQ7Li4uIHRoYXQgaW1tZWRpYXRlbHkgYnJpbmdzIHRvIG1pbmQgdGhlIEF1dGhlbnRpY2F0aW9uIEhlYWRlciBmb3IgSVB2Ni4gTXkgZmlyc3QgaW5jbGluYXRpb24gaXMgdG8gbWFwIG91dCBpdHMgZGVwZW5kZW5jaWVzLiBJdCYjMzk7cyBub3QganVzdCBhIHN0YW5kYWxvbmUgZW50aXR5OyBpdCYjMzk7cyBpbnRyaWNhdGVseSB3b3ZlbiBpbnRvIHRoZSBJUHY2IHNlY3VyaXR5IGFyY2hpdGVjdHVyZS4gV2UgbmVlZCB0byB0aGluayBhYm91dCBob3cgaXQgaW50ZXJhY3RzIHdpdGggdGhlIElQc2VjIGZyYW1ld29yaywgdGhlIHRyYW5zcG9ydCBwcm90b2NvbHMgaXQgcHJvdGVjdHMsIGFuZCwgb2YgY291cnNlLCB0aGUga2V5IG1hbmFnZW1lbnQgdGhhdCB1bmRlcnBpbnMgaXQuCgpJJiMzOTttIG1lbnRhbGx5IHB1bGxpbmcgdXAgdGhlIHJlbGV2YW50IFJGQ3Mg4oCTIFJGQyA0MzAyLCBwcm9iYWJseS4gV2hhdCBjcnlwdG9ncmFwaGljIGFsZ29yaXRobXMgYXJlIG1hbmRhdGVkIG9yIGFsbG93ZWQ/IEFyZSB0aGVyZSBhbnkgc3BlY2lmaWMgbGlicmFyaWVzIGl0IHJlbGllcyBvbiBmb3IgdGhvc2UgYWxnb3JpdGhtcywgbGlrZSBPcGVuU1NMIG9yIHNvbWV0aGluZyBtb3JlIHNwZWNpYWxpemVkIHdpdGhpbiBhIGtlcm5lbD8gSSBuZWVkIHRvIGNvbnNpZGVyIHdoaWNoIG90aGVyIG1vZHVsZXMgb3IgcHJvdG9jb2xzIGFyZSByZWxpYW50IG9uIGBJTkVUNl9BSGAsIG9yIHVzZSBpdCB0byBmdW5jdGlvbi4KCkkmIzM5O20gYWxzbyBjb25zaWRlcmluZyB0aGUgaW1wbGljYXRpb25zIG9mIGl0cyBwcmVzZW5jZSwgb3IgYWJzZW5jZSwgaW4gdGVybXMgb2YgbmV0d29yayBwZXJmb3JtYW5jZS4gV2hhdCYjMzk7cyB0aGUgb3ZlcmhlYWQgb2YgQUggcHJvY2Vzc2luZywgYW5kIGhvdyBkb2VzIGl0IGNvbXBhcmUgdG8gRVNQPyBEb2VzIHRoZSBwcmVzZW5jZSBvZiBgSU5FVDZfQUhgIGFmZmVjdCBNVFUsIGFuZCBhbnkgcG90ZW50aWFsIGZvciBmcmFnbWVudGF0aW9uPyBJIG5lZWQgdG8gdGhpbmsgYWJvdXQgYW55IHBvdGVudGlhbCBjb25mbGljdHMgb3IgaW50ZXJhY3Rpb25zIHdpdGggTkFULCBhbmQgaWYgdGhpcyByZXF1aXJlcyBhbnkgc3BlY2lhbCBjb25zaWRlcmF0aW9ucy4KClVsdGltYXRlbHksIEkgd2FudCB0byBmb3JtIGEgY2xlYXIgcGljdHVyZSBvZiBpdHMgcm9sZSwgdGhlIGFyY2hpdGVjdHVyYWwgaW1wbGljYXRpb25zIG9mIGBJTkVUNl9BSGAgYW5kIHVuZGVyc3RhbmQgdGhlIGV4dGVudCBvZiBpdHMgZm9vdHByaW50LCBhbmQgYW55IHBvdGVudGlhbCBzZWN1cml0eSBpbXBsaWNhdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI2IDAzOjIwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bmV0L2lwdjYvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDQ3LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgNDc6XHRjb25maWcgSU5FVDZfQUhcbiAgNDg6XHRcdHRyaXN0YXRlIFwmIzM0O0lQdjY6IEFIIHRyYW5zZm9ybWF0aW9uXCYjMzQ7XG4gIDQ5Olx0XHRzZWxlY3QgWEZSTV9BSFxuICA1MDpcdFx0aGVscFxuICA1MTpcdFx0ICBTdXBwb3J0IGZvciBJUHNlYyBBSCAoQXV0aGVudGljYXRpb24gSGVhZGVyKS5cbiAgNTI6XHRcbiAgNTM6XHRcdCAgQUggY2FuIGJlIHVzZWQgd2l0aCB2YXJpb3VzIGF1dGhlbnRpY2F0aW9uIGFsZ29yaXRobXMuICBCZXNpZGVzXG4gIDU0Olx0XHQgIGVuYWJsaW5nIEFIIHN1cHBvcnQgaXRzZWxmLCB0aGlzIG9wdGlvbiBlbmFibGVzIHRoZSBnZW5lcmljXG4gIDU1Olx0XHQgIGltcGxlbWVudGF0aW9ucyBvZiB0aGUgYWxnb3JpdGhtcyB0aGF0IFJGQyA4MjIxIGxpc3RzIGFzIE1VU1QgYmVcbiAgNTY6XHRcdCAgaW1wbGVtZW50ZWQuICBJZiB5b3UgbmVlZCBhbnkgb3RoZXIgYWxnb3JpdGhtcywgeW91JiMzOTtsbCBuZWVkIHRvIGVuYWJsZVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAwMzoyMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MTM1CgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogMjgyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgSVBzZWMgQUh2NiBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gZGl2aW5nIGludG8gdGhpcyBJUHNlYyBBSHY2IHNpdHVhdGlvbi4gSXQmIzM5O3MgY2xlYXIgZnJvbSBgbmV0L2lwdjYvS2NvbmZpZ2AgdGhhdCB0aGlzIGNvbmZpZ3VyYXRpb24gaGluZ2VzIGltcGxpY2l0bHkgb24gYElQVjZgLCBzcGVjaWZpY2FsbHkgYmVjYXVzZSBgSU5FVDZfQUhgIGlzIG5lc3RlZCB1bmRlciBgbWVudWNvbmZpZyBJUFY2YC4gVGhlcmVmb3JlLCBgSVBWNmAgYW5kIGBJTkVUNl9BSGAgYXJlIG15IHByaW1hcnkgY29uZmlndXJhdGlvbiBwb2ludHMgb2YgaW50ZXJlc3QuCgpNeSBpbW1lZGlhdGUgZm9jdXMgaXMgb24gdGhlIGBhaDZfaW5wdXRgIGFuZCBgYWg2X291dHB1dGAgZnVuY3Rpb25zLiBJIGtub3cgdGhleSYjMzk7cmUgY3JpdGljYWwgY29tcG9uZW50cyBvZiB0aGUgWEZSTSBJUHNlYyBzdGFjaywgYW5kIHRoYXQmIzM5O3MgdGhlIHBhdGh3YXkgdG8gdGhlbS4KCk5vdywgbGV0JiMzOTtzIHNlZSBpZiB0aGVyZSBhcmUgYW55IG90aGVyIHN1cHBvcnRpbmcgY29uZmlncyBJIG5lZWQgdG8gYWRkcmVzcy4gSXQgc2VlbXMsIGluaXRpYWxseSwgdGhhdCBgSU5FVDZfQUhgIGl0c2VsZiwgYWxvbmcgd2l0aCB0aGUgZm91bmRhdGlvbmFsIGBJUFY2YCBzZXR0aW5nLCBpcyBzdWZmaWNpZW50LgoKTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrLCBmb3IgbXkgcGVhY2Ugb2YgbWluZCwgdGhhdCBgYWg2X2lucHV0YCBhbmQgYGFoNl9vdXRwdXRgIGFyZSBzdGF0aWMgZnVuY3Rpb25zLiBZZXAsIHRoZXkgYXJlLiBIbW1tLCBidXQgaGFuZyBvbiBhIG1pbnV0ZS4gVGhlIGluc3RydWN0aW9ucyBzYXkgdG8gZmF2b3Igbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnRzLiBUaGF0JiMzOTtzIGEga2V5IGRpc3RpbmN0aW9uISBgYWg2X2lucHV0YCBhbmQgYGFoNl9vdXRwdXRgIGFyZSBzdGF0aWMsIGJ1dCB0aGV5JiMzOTtyZSBhc3NpZ25lZCB0byB0aGUgYHN0cnVjdCB4ZnJtX3R5cGUgYWg2X3R5cGVgIGFzIHRoZSBgLmlucHV0YCBhbmQgYC5vdXRwdXRgIG1lbWJlcnMuIFRoaXMgaXMgaW50ZXJlc3Rpbmc6IFRoZXkmIzM5O3JlICpub3QqIGlubGluZWQgYmVjYXVzZSB0aGVpciBhZGRyZXNzZXMgYXJlIGJlaW5nIHRha2VuLiBCdXQsIG1heWJlIEkgY2FuIGluY29ycG9yYXRlIGB4ZnJtX2lucHV0YCBvciBgeGZybV9vdXRwdXRgIG9yIGB4ZnJtNl9yY3ZgIHRvbz8KClRvIGNsYXJpZnkgdGhpcywgSSYjMzk7bGwgbmVlZCB0byBmaWd1cmUgb3V0IHdoZXJlIGBhaDZfdHlwZWAgaXMgcmVnaXN0ZXJlZC4gVGhhdCYjMzk7bGwgZ2l2ZSBtZSBhIGNsZWFyZXIgcGljdHVyZSBvZiBob3cgdGhlc2UgZnVuY3Rpb25zIGFyZSB1c2VkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAwMzoyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthaDZfdHlwZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9pcHY2L2FoNi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9pcHY2L2FoNi5jPTc4Mj1zdGF0aWMgaW50IGFoNl9yY3ZfY2Ioc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IGVycilcbi0tXG5uZXQvaXB2Ni9haDYuYy03ODYtXG5uZXQvaXB2Ni9haDYuYzo3ODc6c3RhdGljIGNvbnN0IHN0cnVjdCB4ZnJtX3R5cGUgYWg2X3R5cGUgPSB7XG5uZXQvaXB2Ni9haDYuYy03ODgtXHQub3duZXJcdFx0PSBUSElTX01PRFVMRSxcbi0tXG5uZXQvaXB2Ni9haDYuYz04MDU9c3RhdGljIGludCBfX2luaXQgYWg2X2luaXQodm9pZClcbm5ldC9pcHY2L2FoNi5jLTgwNi17XG5uZXQvaXB2Ni9haDYuYzo4MDc6XHRpZiAoeGZybV9yZWdpc3Rlcl90eXBlKFx1MDAyNmFoNl90eXBlLCBBRl9JTkVUNikgXHUwMDNjIDApIHtcbm5ldC9pcHY2L2FoNi5jLTgwOC1cdFx0cHJfaW5mbyhcJiMzNDslczogY2FuJiMzOTt0IGFkZCB4ZnJtIHR5cGVcXG5cJiMzNDssIF9fZnVuY19fKTtcbi0tXG5uZXQvaXB2Ni9haDYuYy04MTMtXHRcdHByX2luZm8oXCYjMzQ7JXM6IGNhbiYjMzk7dCBhZGQgcHJvdG9jb2xcXG5cJiMzNDssIF9fZnVuY19fKTtcbm5ldC9pcHY2L2FoNi5jOjgxNDpcdFx0eGZybV91bnJlZ2lzdGVyX3R5cGUoXHUwMDI2YWg2X3R5cGUsIEFGX0lORVQ2KTtcbm5ldC9pcHY2L2FoNi5jLTgxNS1cdFx0cmV0dXJuIC1FQUdBSU47XG4tLVxubmV0L2lwdjYvYWg2LmM9ODIxPXN0YXRpYyB2b2lkIF9fZXhpdCBhaDZfZmluaSh2b2lkKVxuLS1cbm5ldC9pcHY2L2FoNi5jLTgyNS1cbm5ldC9pcHY2L2FoNi5jOjgyNjpcdHhmcm1fdW5yZWdpc3Rlcl90eXBlKFx1MDAyNmFoNl90eXBlLCBBRl9JTkVUNik7XG5uZXQvaXB2Ni9haDYuYy04MjctfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAwMzoyMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2MjUzCgkJCQkJCQlvdXRwdXQ6IDEyNgoJCQkJCQkJdGhvdWdodHM6IDU5MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgQUg2IElQc2VjIFZ1bG5lcmFiaWxpdHkgUGF0Y2gqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgYGFoNl9pbnB1dGAgYW5kIGBhaDZfb3V0cHV0YCBhcmUgdGhlIGtleSBlbnRyeSBwb2ludHMgZm9yIEFINiBwcm9jZXNzaW5nLiBUaGV5JiMzOTtyZSBzdGF0aWMsIHdoaWNoIGluaXRpYWxseSByYWlzZWQgYSBmbGFnIHJlZ2FyZGluZyBTeXprYWxsZXImIzM5O3MgYWJpbGl0eSB0byByZXNvbHZlIHRoZW0uIEhvd2V2ZXIsIGlmIHRoZSBEV0FSRiBpbmZvcm1hdGlvbiBpcyBjb3JyZWN0bHkgaW5jbHVkZWQsIGl0IHNob3VsZCBiZSBmaW5lLiBJJiMzOTttIGNob29zaW5nIHRoZW0gYXMgdGhlIGZvY3VzIGZ1bmN0aW9ucy4gYHhmcm1faW5wdXRgIGFuZCBgeGZybV9vdXRwdXRgIGFyZSBhbHNvIHJlbGV2YW50LCBidXQgdGhleSYjMzk7cmUgbW9yZSBnZW5lcmljLCBzbyBJJiMzOTttIHN0aWNraW5nIHdpdGggYGFoNl9pbnB1dGAgYW5kIGBhaDZfb3V0cHV0YCBmb3IgdGhlaXIgc3BlY2lmaWNpdHkuIEFuZCBzaW5jZSB3ZSYjMzk7cmUgaGVyZSwgbGV0IG1lIG1ha2UgYSBub3RlIHRoYXQgYGlwdjZfY2xlYXJfbXV0YWJsZV9vcHRpb25zYCBpcyBhbHNvIHN0YXRpYy4KCkxldCYjMzk7cyBxdWlja2x5IGNoZWNrIGB4ZnJtX2lucHV0YCBhbmQgYHhmcm1fb3V0cHV0YCDigJMgeWVwLCBnZW5lcmljIGFzIGV4cGVjdGVkLiBTbywgZm9jdXNpbmcgb24gYGFoNl9pbnB1dGAgYW5kIGBhaDZfb3V0cHV0YCBtYWtlcyB0aGUgbW9zdCBzZW5zZS4KCk5vdywgd2hhdCBhYm91dCB0aGUgY29uZmlndXJhdGlvbj8gSSB0aGluayBgWEZSTV9VU0VSYCBpcyBnb2luZyB0byBiZSBpbXBvcnRhbnQuIEl0JiMzOTtzIHByb2JhYmx5IG5lY2Vzc2FyeSB0byBjb25maWd1cmUgSVBzZWMgZnJvbSB1c2Vyc3BhY2UuIFNvLCBJIG5lZWQgdG8gYWRkIHRoYXQuCgpPa2F5LCBzbyBteSBjb25maWdzIGFyZSBgSVBWNmAsIGBJTkVUNl9BSGAsIGFuZCBgWEZSTV9VU0VSYC4gTXkgYEZvY3VzU3ltYm9sc2AgYXJlIGRlZmluaXRlbHkgYGFoNl9pbnB1dGAgYW5kIGBhaDZfb3V0cHV0YC4KClRoZSByZWFzb25pbmcgaXMgc29saWQ6IHRoaXMgcGF0Y2ggaXMgZml4aW5nIGEgcG90ZW50aWFsIG91dC1vZi1ib3VuZHMgcmVhZC93cml0ZSBpbiBgaXB2Nl9yZWFycmFuZ2VfcnRoZHJgLiBUaGUgY29kZSYjMzk7cyB0cmlnZ2VyZWQgd2hlbiBwcm9jZXNzaW5nIElQdjYgSVBzZWMgQUggcGFja2V0cyB3aXRoIHJvdXRpbmcgaGVhZGVycy4gU28sIGZ1enppbmcgdGhlIElQdjYgQUggaW5wdXQgYW5kIG91dHB1dCBwYXRocyBpcyB0aGUgcmlnaHQgYXBwcm9hY2guCgpMZXQmIzM5O3MgcXVpY2tseSBjb25maXJtIHRoYXQgYGlwdjZfcmVhcnJhbmdlX3J0aGRyYCBpcyByZWFjaGFibGUuIE9rYXksIGl0JiMzOTtzIGNhbGxlZCBmcm9tIGBpcHY2X2NsZWFyX211dGFibGVfb3B0aW9uc2AsIHdoaWNoIGlzLCBpbiB0dXJuLCBjYWxsZWQgYnkgYGFoNl9vdXRwdXRgIGFuZCBgYWg2X2lucHV0YC4gUGVyZmVjdC4gWWVwLCBpdCBpcyByZWFjaGFibGUuCgpKdXN0IHRvIGJlIGFic29sdXRlbHkgc3VyZSwgbGV0IG1lIGRvdWJsZS1jaGVjazogeWVwLCBgYWg2X2lucHV0YCBhbmQgYGFoNl9vdXRwdXRgIGFyZSBpbmRlZWQgdGhlIGJlc3Qgc3ltYm9scy4gVGhleSBhcmUgdGhlIGNvcmUgaGFuZGxlcnMgZm9yIEFINi4gSSYjMzk7bSBjb25maWRlbnQgaW4gdGhpcyBhc3Nlc3NtZW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNiAwMzoyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7SVBWNiYjMzQ7LAogICAgJiMzNDtJTkVUNl9BSCYjMzQ7LAogICAgJiMzNDtYRlJNX1VTRVImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDthaDZfaW5wdXQmIzM0OywKICAgICYjMzQ7YWg2X291dHB1dCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIGFjY2VzcyBpbiBpcHY2X3JlYXJyYW5nZV9ydGhkciBieSB2YWxpZGF0aW5nIHNlZ21lbnRzX2xlZnQgYWdhaW5zdCB0aGUgcm91dGluZyBoZWFkZXIgbGVuZ3RoLiBUaGlzIGNvZGUgaXMgZXhlY3V0ZWQgZHVyaW5nIElQdjYgSVBzZWMgQUggKEF1dGhlbnRpY2F0aW9uIEhlYWRlcikgcGFja2V0IHByb2Nlc3NpbmcuIEZ1enppbmcgc2hvdWxkIGZvY3VzIG9uIHRoZSBBSDYgaW5wdXQgYW5kIG91dHB1dCBwYXRocy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7SVBWNiYjMzQ7LAogICAgJiMzNDtJTkVUNl9BSCYjMzQ7LAogICAgJiMzNDtYRlJNX1VTRVImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDthaDZfaW5wdXQmIzM0OywKICAgICYjMzQ7YWg2X291dHB1dCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIGFjY2VzcyBpbiBpcHY2X3JlYXJyYW5nZV9ydGhkciBieSB2YWxpZGF0aW5nIHNlZ21lbnRzX2xlZnQgYWdhaW5zdCB0aGUgcm91dGluZyBoZWFkZXIgbGVuZ3RoLiBUaGlzIGNvZGUgaXMgZXhlY3V0ZWQgZHVyaW5nIElQdjYgSVBzZWMgQUggKEF1dGhlbnRpY2F0aW9uIEhlYWRlcikgcGFja2V0IHByb2Nlc3NpbmcuIEZ1enppbmcgc2hvdWxkIGZvY3VzIG9uIHRoZSBBSDYgaW5wdXQgYW5kIG91dHB1dCBwYXRocy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDAzOjE5OjQ1LjM1Mjg3OTU3NloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM1NjUyMDYwMzMxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIklQVjZcIixcbiAgICBcIklORVQ2X0FIXCIsXG4gICAgXCJYRlJNX1VTRVJcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJhaDZfaW5wdXRcIixcbiAgICBcImFoNl9vdXRwdXRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIGFjY2VzcyBpbiBpcHY2X3JlYXJyYW5nZV9ydGhkciBieSB2YWxpZGF0aW5nIHNlZ21lbnRzX2xlZnQgYWdhaW5zdCB0aGUgcm91dGluZyBoZWFkZXIgbGVuZ3RoLiBUaGlzIGNvZGUgaXMgZXhlY3V0ZWQgZHVyaW5nIElQdjYgSVBzZWMgQUggKEF1dGhlbnRpY2F0aW9uIEhlYWRlcikgcGFja2V0IHByb2Nlc3NpbmcuIEZ1enppbmcgc2hvdWxkIGZvY3VzIG9uIHRoZSBBSDYgaW5wdXQgYW5kIG91dHB1dCBwYXRocy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjZUMDM6MTk6NDUuMzUyODk3Nzc2WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4MTI2NDAxNTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAxMzk5YjU2ODRhMDkzOGQ5M2U2NjE1YjYyNGNiNmZjNDhlNWJkMjEyXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTdW4gSnVsIDI2IDAzOjE5OjQzIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL25ldC9pcHY2L2FoNi5jIGIvbmV0L2lwdjYvYWg2LmNcXG5pbmRleCA3NmY3YTJkZTkxMDhlYi4uYzk2ZjdlMGQwYTQ4MTUgMTAwNjQ0XFxuLS0tIGEvbmV0L2lwdjYvYWg2LmNcXG4rKysgYi9uZXQvaXB2Ni9haDYuY1xcbkBAIC0yMzIsMjYgKzIzMiwyOCBAQCBzdGF0aWMgdm9pZCBpcHY2X3JlYXJyYW5nZV9kZXN0b3B0KHN0cnVjdCBpcHY2aGRyICppcGgsIHN0cnVjdCBpcHY2X29wdF9oZHIgKmRlc1xcbiAgKlxcdFJlYXJyYW5nZSB0aGUgZGVzdGluYXRpb24gYWRkcmVzcyBpbiBAaXBoIGFuZCB0aGUgYWRkcmVzc2VzIGluIEBydGhkclxcbiAgKlxcdHNvIHRoYXQgdGhleSBhcHBlYXIgaW4gdGhlIG9yZGVyIHRoZXkgd2lsbCBhdCB0aGUgZmluYWwgZGVzdGluYXRpb24uXFxuICAqXFx0U2VlIEFwcGVuZGl4IEEyIG9mIFJGQyAyNDAyIGZvciBkZXRhaWxzLlxcbisgKlxcbisgKiBSZXR1cm46IDAgb24gc3VjY2VzcywgLUVJTlZBTCBpZiBzZWdtZW50c19sZWZ0IGV4Y2VlZHMgdGhlIG51bWJlciBvZlxcbisgKiBhZGRyZXNzZXMgZGVzY3JpYmVkIGJ5IGhkcmxlbi5cXG4gICovXFxuLXN0YXRpYyB2b2lkIGlwdjZfcmVhcnJhbmdlX3J0aGRyKHN0cnVjdCBpcHY2aGRyICppcGgsIHN0cnVjdCBpcHY2X3J0X2hkciAqcnRoZHIpXFxuK3N0YXRpYyBpbnQgaXB2Nl9yZWFycmFuZ2VfcnRoZHIoc3RydWN0IGlwdjZoZHIgKmlwaCwgc3RydWN0IGlwdjZfcnRfaGRyICpydGhkcilcXG4ge1xcbi1cXHRpbnQgc2VnbWVudHMsIHNlZ21lbnRzX2xlZnQ7XFxuK1xcdHVuc2lnbmVkIGludCBzZWdtZW50cywgc2VnbWVudHNfbGVmdDtcXG4gXFx0c3RydWN0IGluNl9hZGRyICphZGRycztcXG4gXFx0c3RydWN0IGluNl9hZGRyIGZpbmFsX2FkZHI7XFxuIFxcbiBcXHRzZWdtZW50c19sZWZ0ID0gcnRoZHItXFx1MDAzZXNlZ21lbnRzX2xlZnQ7XFxuIFxcdGlmIChzZWdtZW50c19sZWZ0ID09IDApXFxuLVxcdFxcdHJldHVybjtcXG4tXFx0cnRoZHItXFx1MDAzZXNlZ21lbnRzX2xlZnQgPSAwO1xcbitcXHRcXHRyZXR1cm4gMDtcXG4gXFxuLVxcdC8qIFRoZSB2YWx1ZSBvZiBydGhkci1cXHUwMDNlaGRybGVuIGhhcyBiZWVuIHZlcmlmaWVkIGVpdGhlciBieSB0aGUgc3lzdGVtXFxuLVxcdCAqIGNhbGwgaWYgaXQgaXMgbG9jYWxseSBnZW5lcmF0ZWQsIG9yIGJ5IGlwdjZfcnRoZHJfcmN2KCkgZm9yIGluY29taW5nXFxuLVxcdCAqIHBhY2tldHMuICBTbyB3ZSBjYW4gYXNzdW1lIHRoYXQgaXQgaXMgZXZlbiBhbmQgdGhhdCBzZWdtZW50cyBpc1xcbi1cXHQgKiBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gc2VnbWVudHNfbGVmdC5cXG4tXFx0ICpcXG4tXFx0ICogRm9yIHRoZSBzYW1lIHJlYXNvbiB3ZSBjYW4gYXNzdW1lIHRoYXQgdGhpcyBvcHRpb24gaXMgb2YgdHlwZSAwLlxcbitcXHQvKiBSYXcgbG9jYWxseSBnZW5lcmF0ZWQgcGFja2V0cyBjYW4gcmVhY2ggQUg2IHdpdGhvdXQgdGhlIGludmFyaWFudFxcbitcXHQgKiByZXF1aXJlZCBieSB0aGUgcnQwLXN0eWxlIGFkZHJlc3MgcmVhcnJhbmdlbWVudCBiZWxvdy5cXG4gXFx0ICovXFxuIFxcdHNlZ21lbnRzID0gcnRoZHItXFx1MDAzZWhkcmxlbiBcXHUwMDNlXFx1MDAzZSAxO1xcbitcXHRpZiAoc2VnbWVudHNfbGVmdCBcXHUwMDNlIHNlZ21lbnRzKVxcbitcXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4rXFxuK1xcdHJ0aGRyLVxcdTAwM2VzZWdtZW50c19sZWZ0ID0gMDtcXG4gXFxuIFxcdGFkZHJzID0gKChzdHJ1Y3QgcnQwX2hkciAqKXJ0aGRyKS1cXHUwMDNlYWRkcjtcXG4gXFx0ZmluYWxfYWRkciA9IGFkZHJzW3NlZ21lbnRzIC0gMV07XFxuQEAgLTI2MSw2ICsyNjMsOCBAQCBzdGF0aWMgdm9pZCBpcHY2X3JlYXJyYW5nZV9ydGhkcihzdHJ1Y3QgaXB2NmhkciAqaXBoLCBzdHJ1Y3QgaXB2Nl9ydF9oZHIgKnJ0aGRyKVxcbiBcXG4gXFx0YWRkcnNbMF0gPSBpcGgtXFx1MDAzZWRhZGRyO1xcbiBcXHRpcGgtXFx1MDAzZWRhZGRyID0gZmluYWxfYWRkcjtcXG4rXFxuK1xcdHJldHVybiAwO1xcbiB9XFxuIFxcbiBzdGF0aWMgaW50IGlwdjZfY2xlYXJfbXV0YWJsZV9vcHRpb25zKHN0cnVjdCBpcHY2aGRyICppcGgsIGludCBsZW4sIGludCBkaXIpXFxuQEAgLTI3Myw2ICsyNzcsNyBAQCBzdGF0aWMgaW50IGlwdjZfY2xlYXJfbXV0YWJsZV9vcHRpb25zKHN0cnVjdCBpcHY2aGRyICppcGgsIGludCBsZW4sIGludCBkaXIpXFxuIFxcdH0gZXh0aGRyID0geyAuaXBoID0gaXBoIH07XFxuIFxcdGNoYXIgKmVuZCA9IGV4dGhkci5yYXcgKyBsZW47XFxuIFxcdGludCBuZXh0aGRyID0gaXBoLVxcdTAwM2VuZXh0aGRyO1xcbitcXHRpbnQgZXJyO1xcbiBcXG4gXFx0ZXh0aGRyLmlwaCsrO1xcbiBcXG5AQCAtMjkyLDcgKzI5Nyw5IEBAIHN0YXRpYyBpbnQgaXB2Nl9jbGVhcl9tdXRhYmxlX29wdGlvbnMoc3RydWN0IGlwdjZoZHIgKmlwaCwgaW50IGxlbiwgaW50IGRpcilcXG4gXFx0XFx0XFx0YnJlYWs7XFxuIFxcbiBcXHRcXHRjYXNlIE5FWFRIRFJfUk9VVElORzpcXG4tXFx0XFx0XFx0aXB2Nl9yZWFycmFuZ2VfcnRoZHIoaXBoLCBleHRoZHIucnRoKTtcXG4rXFx0XFx0XFx0ZXJyID0gaXB2Nl9yZWFycmFuZ2VfcnRoZHIoaXBoLCBleHRoZHIucnRoKTtcXG4rXFx0XFx0XFx0aWYgKGVycilcXG4rXFx0XFx0XFx0XFx0cmV0dXJuIGVycjtcXG4gXFx0XFx0XFx0YnJlYWs7XFxuIFxcbiBcXHRcXHRkZWZhdWx0OlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQwMzoxOTo0Ni4xNjY1NjkxMjFaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjozNDgzODM1NzA1NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJJUFY2XCIsXG4gICAgXCJJTkVUNl9BSFwiLFxuICAgIFwiWEZSTV9VU0VSXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYWg2X2lucHV0XCIsXG4gICAgXCJhaDZfb3V0cHV0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgb3V0LW9mLWJvdW5kcyBhY2Nlc3MgaW4gaXB2Nl9yZWFycmFuZ2VfcnRoZHIgYnkgdmFsaWRhdGluZyBzZWdtZW50c19sZWZ0IGFnYWluc3QgdGhlIHJvdXRpbmcgaGVhZGVyIGxlbmd0aC4gVGhpcyBjb2RlIGlzIGV4ZWN1dGVkIGR1cmluZyBJUHY2IElQc2VjIEFIIChBdXRoZW50aWNhdGlvbiBIZWFkZXIpIHBhY2tldCBwcm9jZXNzaW5nLiBGdXp6aW5nIHNob3VsZCBmb2N1cyBvbiB0aGUgQUg2IGlucHV0IGFuZCBvdXRwdXQgcGF0aHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDEzOTliNTY4NGEwOTM4ZDkzZTY2MTViNjI0Y2I2ZmM0OGU1YmQyMTJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU3VuIEp1bCAyNiAwMzoxOTo0MyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9pcHY2L2FoNi5jIGIvbmV0L2lwdjYvYWg2LmNcbmluZGV4IDc2ZjdhMmRlOTEwOGViLi5jOTZmN2UwZDBhNDgxNSAxMDA2NDRcbi0tLSBhL25ldC9pcHY2L2FoNi5jXG4rKysgYi9uZXQvaXB2Ni9haDYuY1xuQEAgLTIzMiwyNiArMjMyLDI4IEBAIHN0YXRpYyB2b2lkIGlwdjZfcmVhcnJhbmdlX2Rlc3RvcHQoc3RydWN0IGlwdjZoZHIgKmlwaCwgc3RydWN0IGlwdjZfb3B0X2hkciAqZGVzXG4gICpcdFJlYXJyYW5nZSB0aGUgZGVzdGluYXRpb24gYWRkcmVzcyBpbiBAaXBoIGFuZCB0aGUgYWRkcmVzc2VzIGluIEBydGhkclxuICAqXHRzbyB0aGF0IHRoZXkgYXBwZWFyIGluIHRoZSBvcmRlciB0aGV5IHdpbGwgYXQgdGhlIGZpbmFsIGRlc3RpbmF0aW9uLlxuICAqXHRTZWUgQXBwZW5kaXggQTIgb2YgUkZDIDI0MDIgZm9yIGRldGFpbHMuXG4rICpcbisgKiBSZXR1cm46IDAgb24gc3VjY2VzcywgLUVJTlZBTCBpZiBzZWdtZW50c19sZWZ0IGV4Y2VlZHMgdGhlIG51bWJlciBvZlxuKyAqIGFkZHJlc3NlcyBkZXNjcmliZWQgYnkgaGRybGVuLlxuICAqL1xuLXN0YXRpYyB2b2lkIGlwdjZfcmVhcnJhbmdlX3J0aGRyKHN0cnVjdCBpcHY2aGRyICppcGgsIHN0cnVjdCBpcHY2X3J0X2hkciAqcnRoZHIpXG4rc3RhdGljIGludCBpcHY2X3JlYXJyYW5nZV9ydGhkcihzdHJ1Y3QgaXB2NmhkciAqaXBoLCBzdHJ1Y3QgaXB2Nl9ydF9oZHIgKnJ0aGRyKVxuIHtcbi1cdGludCBzZWdtZW50cywgc2VnbWVudHNfbGVmdDtcbitcdHVuc2lnbmVkIGludCBzZWdtZW50cywgc2VnbWVudHNfbGVmdDtcbiBcdHN0cnVjdCBpbjZfYWRkciAqYWRkcnM7XG4gXHRzdHJ1Y3QgaW42X2FkZHIgZmluYWxfYWRkcjtcbiBcbiBcdHNlZ21lbnRzX2xlZnQgPSBydGhkci1cdTAwM2VzZWdtZW50c19sZWZ0O1xuIFx0aWYgKHNlZ21lbnRzX2xlZnQgPT0gMClcbi1cdFx0cmV0dXJuO1xuLVx0cnRoZHItXHUwMDNlc2VnbWVudHNfbGVmdCA9IDA7XG4rXHRcdHJldHVybiAwO1xuIFxuLVx0LyogVGhlIHZhbHVlIG9mIHJ0aGRyLVx1MDAzZWhkcmxlbiBoYXMgYmVlbiB2ZXJpZmllZCBlaXRoZXIgYnkgdGhlIHN5c3RlbVxuLVx0ICogY2FsbCBpZiBpdCBpcyBsb2NhbGx5IGdlbmVyYXRlZCwgb3IgYnkgaXB2Nl9ydGhkcl9yY3YoKSBmb3IgaW5jb21pbmdcbi1cdCAqIHBhY2tldHMuICBTbyB3ZSBjYW4gYXNzdW1lIHRoYXQgaXQgaXMgZXZlbiBhbmQgdGhhdCBzZWdtZW50cyBpc1xuLVx0ICogZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHNlZ21lbnRzX2xlZnQuXG4tXHQgKlxuLVx0ICogRm9yIHRoZSBzYW1lIHJlYXNvbiB3ZSBjYW4gYXNzdW1lIHRoYXQgdGhpcyBvcHRpb24gaXMgb2YgdHlwZSAwLlxuK1x0LyogUmF3IGxvY2FsbHkgZ2VuZXJhdGVkIHBhY2tldHMgY2FuIHJlYWNoIEFINiB3aXRob3V0IHRoZSBpbnZhcmlhbnRcbitcdCAqIHJlcXVpcmVkIGJ5IHRoZSBydDAtc3R5bGUgYWRkcmVzcyByZWFycmFuZ2VtZW50IGJlbG93LlxuIFx0ICovXG4gXHRzZWdtZW50cyA9IHJ0aGRyLVx1MDAzZWhkcmxlbiBcdTAwM2VcdTAwM2UgMTtcbitcdGlmIChzZWdtZW50c19sZWZ0IFx1MDAzZSBzZWdtZW50cylcbitcdFx0cmV0dXJuIC1FSU5WQUw7XG4rXG4rXHRydGhkci1cdTAwM2VzZWdtZW50c19sZWZ0ID0gMDtcbiBcbiBcdGFkZHJzID0gKChzdHJ1Y3QgcnQwX2hkciAqKXJ0aGRyKS1cdTAwM2VhZGRyO1xuIFx0ZmluYWxfYWRkciA9IGFkZHJzW3NlZ21lbnRzIC0gMV07XG5AQCAtMjYxLDYgKzI2Myw4IEBAIHN0YXRpYyB2b2lkIGlwdjZfcmVhcnJhbmdlX3J0aGRyKHN0cnVjdCBpcHY2aGRyICppcGgsIHN0cnVjdCBpcHY2X3J0X2hkciAqcnRoZHIpXG4gXG4gXHRhZGRyc1swXSA9IGlwaC1cdTAwM2VkYWRkcjtcbiBcdGlwaC1cdTAwM2VkYWRkciA9IGZpbmFsX2FkZHI7XG4rXG4rXHRyZXR1cm4gMDtcbiB9XG4gXG4gc3RhdGljIGludCBpcHY2X2NsZWFyX211dGFibGVfb3B0aW9ucyhzdHJ1Y3QgaXB2NmhkciAqaXBoLCBpbnQgbGVuLCBpbnQgZGlyKVxuQEAgLTI3Myw2ICsyNzcsNyBAQCBzdGF0aWMgaW50IGlwdjZfY2xlYXJfbXV0YWJsZV9vcHRpb25zKHN0cnVjdCBpcHY2aGRyICppcGgsIGludCBsZW4sIGludCBkaXIpXG4gXHR9IGV4dGhkciA9IHsgLmlwaCA9IGlwaCB9O1xuIFx0Y2hhciAqZW5kID0gZXh0aGRyLnJhdyArIGxlbjtcbiBcdGludCBuZXh0aGRyID0gaXBoLVx1MDAzZW5leHRoZHI7XG4rXHRpbnQgZXJyO1xuIFxuIFx0ZXh0aGRyLmlwaCsrO1xuIFxuQEAgLTI5Miw3ICsyOTcsOSBAQCBzdGF0aWMgaW50IGlwdjZfY2xlYXJfbXV0YWJsZV9vcHRpb25zKHN0cnVjdCBpcHY2aGRyICppcGgsIGludCBsZW4sIGludCBkaXIpXG4gXHRcdFx0YnJlYWs7XG4gXG4gXHRcdGNhc2UgTkVYVEhEUl9ST1VUSU5HOlxuLVx0XHRcdGlwdjZfcmVhcnJhbmdlX3J0aGRyKGlwaCwgZXh0aGRyLnJ0aCk7XG4rXHRcdFx0ZXJyID0gaXB2Nl9yZWFycmFuZ2VfcnRoZHIoaXBoLCBleHRoZHIucnRoKTtcbitcdFx0XHRpZiAoZXJyKVxuK1x0XHRcdFx0cmV0dXJuIGVycjtcbiBcdFx0XHRicmVhaztcbiBcbiBcdFx0ZGVmYXVsdDpcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDAzOjE5OjQ2LjE2NjU3MTcyMVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg5MzAwMTgzODAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgU2VjdXJpdHktUmVsYXRlZCBQYXRjaCB0byBpcHY2X3JlYXJyYW5nZV9ydGhkcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBuZXQvaXB2Ni9haDYuY2AsIGFuZCBpdCdzIG1ha2luZyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIGBpcHY2X3JlYXJyYW5nZV9ydGhkcmAuIFRoZSBwcmltYXJ5IHRoaW5nIGp1bXBpbmcgb3V0IGlzIHRoYXQgdGhleSd2ZSBjaGFuZ2VkIHRoZSByZXR1cm4gdHlwZSBmcm9tIGB2b2lkYCB0byBgaW50YC4gIFRoYXQgaW1tZWRpYXRlbHkgc2lnbmFscyBhIHBvdGVudGlhbCBmb3IgZXJyb3IgaGFuZGxpbmcuICBBbmQgSSBzZWUgdGhlIGFkZGVkIGNoZWNrOiBgaWYgKHNlZ21lbnRzX2xlZnQgXHUwMDNlIHNlZ21lbnRzKSByZXR1cm4gLUVJTlZBTDtgLiBBaCwgdGhhdCdzIGFsbW9zdCBjZXJ0YWlubHkgdG8gcHJldmVudCBhbiBvdXQtb2YtYm91bmRzIHJlYWQgb3Igd3JpdGUsIG9yIG1heWJlIHNvbWUgb3RoZXIga2luZCBvZiBkYXRhIGNvcnJ1cHRpb24sIGJ5IHZhbGlkYXRpbmcgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGBzZWdtZW50c19sZWZ0YCBhbmQgYHNlZ21lbnRzYC4gR29vZCBjYXRjaC5cblxuVGhlIGNvZGUgbm93IHJldHVybnMgYW4gZXJyb3IgY29kZSwgLUVJTlZBTC4gIFRoZSBpbW1lZGlhdGUgaW1wbGljYXRpb24gaXMgdGhhdCB0aGUgY2FsbGVyLCBgaXB2Nl9jbGVhcl9tdXRhYmxlX29wdGlvbnNgLCBub3cgKm11c3QqIGJlIHVwZGF0ZWQgdG8gYWNjb3VudCBmb3IgdGhpcyBuZXcgcmV0dXJuIHZhbHVlLCBhbmQgaXQgbG9va3MgbGlrZSBpdCBpcy4gSXQncyB0aGUgb25seSBjYWxsZXIgbGlzdGVkLiBIb3dldmVyLCBJIHdhbnQgdG8gdGFrZSBhIGNsb3NlciBsb29rIGFuZCBlbnN1cmUgbm8gb3RoZXIgZnVuY3Rpb25hbGl0eSBkZXBlbmRzIG9uIHRoYXQuIEknbSBnb2luZyB0byBzY2FuIHRoZSBvdGhlciBjYWxscyB0byBgaXB2Nl9jbGVhcl9tdXRhYmxlX29wdGlvbnNgIHRvIGVuc3VyZSB0aGF0IHRoZXJlIGFyZW4ndCBhbnkgb3RoZXIgc3VidGxlIGRlcGVuZGVuY2llcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjgwMiwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1MiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDAzOjE5OjU1LjA5NjU5MjY1MloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2ODA3MzA2MTIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaXB2Nl9jbGVhcl9tdXRhYmxlX29wdGlvbnNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L2lwdjYvYWg2LmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L2lwdjYvYWg2LmM9MjM5PXN0YXRpYyBpbnQgaXB2Nl9yZWFycmFuZ2VfcnRoZHIoc3RydWN0IGlwdjZoZHIgKmlwaCwgc3RydWN0IGlwdjZfcnRfaGRyICpydGhkcilcXG4tLVxcbm5ldC9pcHY2L2FoNi5jLTI2OS1cXG5uZXQvaXB2Ni9haDYuYzoyNzA6c3RhdGljIGludCBpcHY2X2NsZWFyX211dGFibGVfb3B0aW9ucyhzdHJ1Y3QgaXB2NmhkciAqaXBoLCBpbnQgbGVuLCBpbnQgZGlyKVxcbm5ldC9pcHY2L2FoNi5jLTI3MS17XFxuLS1cXG5uZXQvaXB2Ni9haDYuYz0zNTA9c3RhdGljIGludCBhaDZfb3V0cHV0KHN0cnVjdCB4ZnJtX3N0YXRlICp4LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxubmV0L2lwdjYvYWg2LmMtNDE2LVxcdGlmIChleHRsZW4pIHtcXG5uZXQvaXB2Ni9haDYuYzo0MTc6XFx0XFx0ZXJyID0gaXB2Nl9jbGVhcl9tdXRhYmxlX29wdGlvbnModG9wX2lwaCxcXG5uZXQvaXB2Ni9haDYuYy00MTgtXFx0XFx0XFx0XFx0XFx0XFx0IGV4dGxlbiAtIHNpemVvZigqaXBoX2V4dCkgK1xcbi0tXFxubmV0L2lwdjYvYWg2LmM9NTE5PXN0YXRpYyBpbnQgYWg2X2lucHV0KHN0cnVjdCB4ZnJtX3N0YXRlICp4LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxubmV0L2lwdjYvYWg2LmMtNjEzLVxcbm5ldC9pcHY2L2FoNi5jOjYxNDpcXHRlcnIgPSBpcHY2X2NsZWFyX211dGFibGVfb3B0aW9ucyhpcDZoLCBoZHJfbGVuLCBYRlJNX1BPTElDWV9JTik7XFxubmV0L2lwdjYvYWg2LmMtNjE1LVxcdGlmIChlcnIpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDAzOjE5OjU1Ljc3NzMyOTM3NFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI4MjM3MjIxMDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKklQdjYgSVBzZWMgQUggRGVlcCBEaXZlKipcblxuQWxyaWdodCwgbGV0J3Mgc2VlLi4uIHdlJ3JlIGRlYWxpbmcgd2l0aCBgYWg2X291dHB1dGAgYW5kIGBhaDZfaW5wdXRgLiAgUmlnaHQsIHRoZXNlIGFyZSB0aGUgY3JpdGljYWwgZnVuY3Rpb24gY2FsbHMgd2l0aGluIGFuIElQdjYgSVBzZWMgQUggaW1wbGVtZW50YXRpb24uIFNwZWNpZmljYWxseSwgdGhleSdyZSB0aGUgc2VuZCBhbmQgcmVjZWl2ZSBwYXRocywgdGhlIGNvcmUgb2YgdGhlIEF1dGhlbnRpY2F0aW9uIEhlYWRlciBmdW5jdGlvbmFsaXR5LiBNeSBmaXJzdCBpbnN0aW5jdCwgYXMgYWx3YXlzLCBpcyB0byBjaGVjayB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zLiAgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgaXMgYmVpbmcgY29tcGlsZWQgaW4sIGFuZCB3aGF0IGRlcGVuZGVuY2llcyBtaWdodCBiZSBhdCBwbGF5LiBTbywgS2NvbmZpZyBpdCBpcy4gTGV0IG1lIGltbWVkaWF0ZWx5IGNoZWNrIHRoZSBLY29uZmlnIHNldHRpbmdzIHJlbGF0ZWQgdG8gYGFoNi5jYC4gVGhhdCBzaG91bGQgdGVsbCB0aGUgd2hvbGUgc3RvcnkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM2MzQsIk91dHB1dFRva2VucyI6MjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQwMzoxOTo1OC42MDEwNTM3OFoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzk3MzcyODUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYWg2Lm9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L2lwdjYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9pcHY2L01ha2VmaWxlPTI4PWlwdjYtJChDT05GSUdfSVBWNl9JT0FNNl9MV1RVTk5FTCkgKz0gaW9hbTZfaXB0dW5uZWwub1xcbm5ldC9pcHY2L01ha2VmaWxlLTI5LVxcbm5ldC9pcHY2L01ha2VmaWxlOjMwOm9iai0kKENPTkZJR19JTkVUNl9BSCkgKz0gYWg2Lm9cXG5uZXQvaXB2Ni9NYWtlZmlsZS0zMS1vYmotJChDT05GSUdfSU5FVDZfRVNQKSArPSBlc3A2Lm9cXG4tLVxcbm5ldC9pcHY2L2FoNi5jPTI3MD1zdGF0aWMgaW50IGlwdjZfY2xlYXJfbXV0YWJsZV9vcHRpb25zKHN0cnVjdCBpcHY2aGRyICppcGgsIGludCBsZW4sIGludCBkaXIpXFxuLS1cXG5uZXQvaXB2Ni9haDYuYy0zMTUtXFxubmV0L2lwdjYvYWg2LmM6MzE2OnN0YXRpYyB2b2lkIGFoNl9vdXRwdXRfZG9uZSh2b2lkICpkYXRhLCBpbnQgZXJyKVxcbm5ldC9pcHY2L2FoNi5jLTMxNy17XFxuLS1cXG5uZXQvaXB2Ni9haDYuYy0zNDktXFxubmV0L2lwdjYvYWg2LmM6MzUwOnN0YXRpYyBpbnQgYWg2X291dHB1dChzdHJ1Y3QgeGZybV9zdGF0ZSAqeCwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG5uZXQvaXB2Ni9haDYuYy0zNTEte1xcbi0tXFxubmV0L2lwdjYvYWg2LmMtNDQ5LVxcdGFoYXNoX3JlcXVlc3Rfc2V0X2NyeXB0KHJlcSwgc2csIGljdiwgc2tiLVxcdTAwM2VsZW4gKyBzZXFoaV9sZW4pO1xcbm5ldC9pcHY2L2FoNi5jOjQ1MDpcXHRhaGFzaF9yZXF1ZXN0X3NldF9jYWxsYmFjayhyZXEsIDAsIGFoNl9vdXRwdXRfZG9uZSwgc2tiKTtcXG5uZXQvaXB2Ni9haDYuYy00NTEtXFxuLS1cXG5uZXQvaXB2Ni9haDYuYz03ODc9c3RhdGljIGNvbnN0IHN0cnVjdCB4ZnJtX3R5cGUgYWg2X3R5cGUgPSB7XFxuLS1cXG5uZXQvaXB2Ni9haDYuYy03OTMtXFx0LmlucHV0XFx0XFx0PSBhaDZfaW5wdXQsXFxubmV0L2lwdjYvYWg2LmM6Nzk0OlxcdC5vdXRwdXRcXHRcXHQ9IGFoNl9vdXRwdXQsXFxubmV0L2lwdjYvYWg2LmMtNzk1LX07XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDAzOjE5OjU4Ljg0MDc5NzQ0NFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI3Mzg0NzU1NzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBzdW1tYXJ5LCBhcyB0aGUgdGhvdWdodCBwcm9jZXNzIHVuZm9sZHM6XG5cbioqQ29uZmlndXJhdGlvbiBFeGFtaW5hdGlvbjogSU5FVDZfQUgqKlxuXG5BbHJpZ2h0LCB0aGUgY29uZmlndXJhdGlvbiBpbiBxdWVzdGlvbiBpcyBgSU5FVDZfQUhgLiBNeSBpbml0aWFsIHN0ZXAgaXMgdG8gZGVsdmUgZGlyZWN0bHkgaW50byB0aGUgS2NvbmZpZyBmaWxlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgZGVmaW5pdGlvbiwgZGVwZW5kZW5jaWVzLCBhbmQgYW55IGFzc29jaWF0ZWQgaW1wbGljYXRpb25zIHdpdGhpbiB0aGUga2VybmVsIGNvbmZpZ3VyYXRpb24uIEknbSBnb2luZyB0byBsb29rIHVwIGBJTkVUNl9BSGAgaW4gS2NvbmZpZyB0byBncmFzcCB0aGUgc3BlY2lmaWNzIG9mIHRoaXMgcGFydGljdWxhciBzZXR0aW5nLCBpdHMgcHVycG9zZSwgYW5kIGhvdyBpdCBpbnRlcmFjdHMgd2l0aCBvdGhlciBjb21wb25lbnRzLiBUaGlzIGlzIHRoZSBzdGFydGluZyBwb2ludCBmb3IgYW55IG1lYW5pbmdmdWwgYW5hbHlzaXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQzNTIsIk91dHB1dFRva2VucyI6MzEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQwMzoyMDowMS41NzkyNzU1NDJaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQxOTk4MDY2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBJTkVUNl9BSFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvaXB2Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L2lwdjYvS2NvbmZpZz0zOT1jb25maWcgSVBWNl9PUFRJTUlTVElDX0RBRFxcbi0tXFxubmV0L2lwdjYvS2NvbmZpZy00Ni1cXG5uZXQvaXB2Ni9LY29uZmlnOjQ3OmNvbmZpZyBJTkVUNl9BSFxcbm5ldC9pcHY2L0tjb25maWctNDgtXFx0dHJpc3RhdGUgXFxcIklQdjY6IEFIIHRyYW5zZm9ybWF0aW9uXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQwMzoyMDowMS43MjEyNzk0MzhaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozOTQzNjUyNzE3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkFuYWx5emluZyB0aGUgSU5FVDZfQUggRGVwZW5kZW5jaWVzKipcblxuQWxyaWdodCwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIFwiSU5FVDZfQUhcIi4uLiB0aGF0IGltbWVkaWF0ZWx5IGJyaW5ncyB0byBtaW5kIHRoZSBBdXRoZW50aWNhdGlvbiBIZWFkZXIgZm9yIElQdjYuIE15IGZpcnN0IGluY2xpbmF0aW9uIGlzIHRvIG1hcCBvdXQgaXRzIGRlcGVuZGVuY2llcy4gSXQncyBub3QganVzdCBhIHN0YW5kYWxvbmUgZW50aXR5OyBpdCdzIGludHJpY2F0ZWx5IHdvdmVuIGludG8gdGhlIElQdjYgc2VjdXJpdHkgYXJjaGl0ZWN0dXJlLiBXZSBuZWVkIHRvIHRoaW5rIGFib3V0IGhvdyBpdCBpbnRlcmFjdHMgd2l0aCB0aGUgSVBzZWMgZnJhbWV3b3JrLCB0aGUgdHJhbnNwb3J0IHByb3RvY29scyBpdCBwcm90ZWN0cywgYW5kLCBvZiBjb3Vyc2UsIHRoZSBrZXkgbWFuYWdlbWVudCB0aGF0IHVuZGVycGlucyBpdC5cblxuSSdtIG1lbnRhbGx5IHB1bGxpbmcgdXAgdGhlIHJlbGV2YW50IFJGQ3Mg4oCTIFJGQyA0MzAyLCBwcm9iYWJseS4gV2hhdCBjcnlwdG9ncmFwaGljIGFsZ29yaXRobXMgYXJlIG1hbmRhdGVkIG9yIGFsbG93ZWQ/IEFyZSB0aGVyZSBhbnkgc3BlY2lmaWMgbGlicmFyaWVzIGl0IHJlbGllcyBvbiBmb3IgdGhvc2UgYWxnb3JpdGhtcywgbGlrZSBPcGVuU1NMIG9yIHNvbWV0aGluZyBtb3JlIHNwZWNpYWxpemVkIHdpdGhpbiBhIGtlcm5lbD8gSSBuZWVkIHRvIGNvbnNpZGVyIHdoaWNoIG90aGVyIG1vZHVsZXMgb3IgcHJvdG9jb2xzIGFyZSByZWxpYW50IG9uIGBJTkVUNl9BSGAsIG9yIHVzZSBpdCB0byBmdW5jdGlvbi5cblxuSSdtIGFsc28gY29uc2lkZXJpbmcgdGhlIGltcGxpY2F0aW9ucyBvZiBpdHMgcHJlc2VuY2UsIG9yIGFic2VuY2UsIGluIHRlcm1zIG9mIG5ldHdvcmsgcGVyZm9ybWFuY2UuIFdoYXQncyB0aGUgb3ZlcmhlYWQgb2YgQUggcHJvY2Vzc2luZywgYW5kIGhvdyBkb2VzIGl0IGNvbXBhcmUgdG8gRVNQPyBEb2VzIHRoZSBwcmVzZW5jZSBvZiBgSU5FVDZfQUhgIGFmZmVjdCBNVFUsIGFuZCBhbnkgcG90ZW50aWFsIGZvciBmcmFnbWVudGF0aW9uPyBJIG5lZWQgdG8gdGhpbmsgYWJvdXQgYW55IHBvdGVudGlhbCBjb25mbGljdHMgb3IgaW50ZXJhY3Rpb25zIHdpdGggTkFULCBhbmQgaWYgdGhpcyByZXF1aXJlcyBhbnkgc3BlY2lhbCBjb25zaWRlcmF0aW9ucy5cblxuVWx0aW1hdGVseSwgSSB3YW50IHRvIGZvcm0gYSBjbGVhciBwaWN0dXJlIG9mIGl0cyByb2xlLCB0aGUgYXJjaGl0ZWN0dXJhbCBpbXBsaWNhdGlvbnMgb2YgYElORVQ2X0FIYCBhbmQgdW5kZXJzdGFuZCB0aGUgZXh0ZW50IG9mIGl0cyBmb290cHJpbnQsIGFuZCBhbnkgcG90ZW50aWFsIHNlY3VyaXR5IGltcGxpY2F0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDYxMCwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDAzOjIwOjA1LjY2NDkzNTEzNVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyOTk4NzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwibmV0L2lwdjYvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiA0NyxcbiAgXCJMaW5lQ291bnRcIjogMTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICA0NzpcXHRjb25maWcgSU5FVDZfQUhcXG4gIDQ4OlxcdFxcdHRyaXN0YXRlIFxcXCJJUHY2OiBBSCB0cmFuc2Zvcm1hdGlvblxcXCJcXG4gIDQ5OlxcdFxcdHNlbGVjdCBYRlJNX0FIXFxuICA1MDpcXHRcXHRoZWxwXFxuICA1MTpcXHRcXHQgIFN1cHBvcnQgZm9yIElQc2VjIEFIIChBdXRoZW50aWNhdGlvbiBIZWFkZXIpLlxcbiAgNTI6XFx0XFxuICA1MzpcXHRcXHQgIEFIIGNhbiBiZSB1c2VkIHdpdGggdmFyaW91cyBhdXRoZW50aWNhdGlvbiBhbGdvcml0aG1zLiAgQmVzaWRlc1xcbiAgNTQ6XFx0XFx0ICBlbmFibGluZyBBSCBzdXBwb3J0IGl0c2VsZiwgdGhpcyBvcHRpb24gZW5hYmxlcyB0aGUgZ2VuZXJpY1xcbiAgNTU6XFx0XFx0ICBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlIGFsZ29yaXRobXMgdGhhdCBSRkMgODIyMSBsaXN0cyBhcyBNVVNUIGJlXFxuICA1NjpcXHRcXHQgIGltcGxlbWVudGVkLiAgSWYgeW91IG5lZWQgYW55IG90aGVyIGFsZ29yaXRobXMsIHlvdSdsbCBuZWVkIHRvIGVuYWJsZVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQwMzoyMDowNS42NjUyMzg0OTRaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTYxOTU5MDA2MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIElQc2VjIEFIdjYgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIHNvIEknbSBkaXZpbmcgaW50byB0aGlzIElQc2VjIEFIdjYgc2l0dWF0aW9uLiBJdCdzIGNsZWFyIGZyb20gYG5ldC9pcHY2L0tjb25maWdgIHRoYXQgdGhpcyBjb25maWd1cmF0aW9uIGhpbmdlcyBpbXBsaWNpdGx5IG9uIGBJUFY2YCwgc3BlY2lmaWNhbGx5IGJlY2F1c2UgYElORVQ2X0FIYCBpcyBuZXN0ZWQgdW5kZXIgYG1lbnVjb25maWcgSVBWNmAuIFRoZXJlZm9yZSwgYElQVjZgIGFuZCBgSU5FVDZfQUhgIGFyZSBteSBwcmltYXJ5IGNvbmZpZ3VyYXRpb24gcG9pbnRzIG9mIGludGVyZXN0LlxuXG5NeSBpbW1lZGlhdGUgZm9jdXMgaXMgb24gdGhlIGBhaDZfaW5wdXRgIGFuZCBgYWg2X291dHB1dGAgZnVuY3Rpb25zLiBJIGtub3cgdGhleSdyZSBjcml0aWNhbCBjb21wb25lbnRzIG9mIHRoZSBYRlJNIElQc2VjIHN0YWNrLCBhbmQgdGhhdCdzIHRoZSBwYXRod2F5IHRvIHRoZW0uXG5cbk5vdywgbGV0J3Mgc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgc3VwcG9ydGluZyBjb25maWdzIEkgbmVlZCB0byBhZGRyZXNzLiBJdCBzZWVtcywgaW5pdGlhbGx5LCB0aGF0IGBJTkVUNl9BSGAgaXRzZWxmLCBhbG9uZyB3aXRoIHRoZSBmb3VuZGF0aW9uYWwgYElQVjZgIHNldHRpbmcsIGlzIHN1ZmZpY2llbnQuXG5cbkxldCBtZSBqdXN0IGRvdWJsZS1jaGVjaywgZm9yIG15IHBlYWNlIG9mIG1pbmQsIHRoYXQgYGFoNl9pbnB1dGAgYW5kIGBhaDZfb3V0cHV0YCBhcmUgc3RhdGljIGZ1bmN0aW9ucy4gWWVwLCB0aGV5IGFyZS4gSG1tbSwgYnV0IGhhbmcgb24gYSBtaW51dGUuIFRoZSBpbnN0cnVjdGlvbnMgc2F5IHRvIGZhdm9yIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50cy4gVGhhdCdzIGEga2V5IGRpc3RpbmN0aW9uISBgYWg2X2lucHV0YCBhbmQgYGFoNl9vdXRwdXRgIGFyZSBzdGF0aWMsIGJ1dCB0aGV5J3JlIGFzc2lnbmVkIHRvIHRoZSBgc3RydWN0IHhmcm1fdHlwZSBhaDZfdHlwZWAgYXMgdGhlIGAuaW5wdXRgIGFuZCBgLm91dHB1dGAgbWVtYmVycy4gVGhpcyBpcyBpbnRlcmVzdGluZzogVGhleSdyZSAqbm90KiBpbmxpbmVkIGJlY2F1c2UgdGhlaXIgYWRkcmVzc2VzIGFyZSBiZWluZyB0YWtlbi4gQnV0LCBtYXliZSBJIGNhbiBpbmNvcnBvcmF0ZSBgeGZybV9pbnB1dGAgb3IgYHhmcm1fb3V0cHV0YCBvciBgeGZybTZfcmN2YCB0b28/XG5cblRvIGNsYXJpZnkgdGhpcywgSSdsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hlcmUgYGFoNl90eXBlYCBpcyByZWdpc3RlcmVkLiBUaGF0J2xsIGdpdmUgbWUgYSBjbGVhcmVyIHBpY3R1cmUgb2YgaG93IHRoZXNlIGZ1bmN0aW9ucyBhcmUgdXNlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTEzNSwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI4MiwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI2VDAzOjIwOjExLjI4NDgzMTYxNVoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODE2MDUwNzU0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImFoNl90eXBlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9pcHY2L2FoNi5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9pcHY2L2FoNi5jPTc4Mj1zdGF0aWMgaW50IGFoNl9yY3ZfY2Ioc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IGVycilcXG4tLVxcbm5ldC9pcHY2L2FoNi5jLTc4Ni1cXG5uZXQvaXB2Ni9haDYuYzo3ODc6c3RhdGljIGNvbnN0IHN0cnVjdCB4ZnJtX3R5cGUgYWg2X3R5cGUgPSB7XFxubmV0L2lwdjYvYWg2LmMtNzg4LVxcdC5vd25lclxcdFxcdD0gVEhJU19NT0RVTEUsXFxuLS1cXG5uZXQvaXB2Ni9haDYuYz04MDU9c3RhdGljIGludCBfX2luaXQgYWg2X2luaXQodm9pZClcXG5uZXQvaXB2Ni9haDYuYy04MDYte1xcbm5ldC9pcHY2L2FoNi5jOjgwNzpcXHRpZiAoeGZybV9yZWdpc3Rlcl90eXBlKFxcdTAwMjZhaDZfdHlwZSwgQUZfSU5FVDYpIFxcdTAwM2MgMCkge1xcbm5ldC9pcHY2L2FoNi5jLTgwOC1cXHRcXHRwcl9pbmZvKFxcXCIlczogY2FuJ3QgYWRkIHhmcm0gdHlwZVxcXFxuXFxcIiwgX19mdW5jX18pO1xcbi0tXFxubmV0L2lwdjYvYWg2LmMtODEzLVxcdFxcdHByX2luZm8oXFxcIiVzOiBjYW4ndCBhZGQgcHJvdG9jb2xcXFxcblxcXCIsIF9fZnVuY19fKTtcXG5uZXQvaXB2Ni9haDYuYzo4MTQ6XFx0XFx0eGZybV91bnJlZ2lzdGVyX3R5cGUoXFx1MDAyNmFoNl90eXBlLCBBRl9JTkVUNik7XFxubmV0L2lwdjYvYWg2LmMtODE1LVxcdFxcdHJldHVybiAtRUFHQUlOO1xcbi0tXFxubmV0L2lwdjYvYWg2LmM9ODIxPXN0YXRpYyB2b2lkIF9fZXhpdCBhaDZfZmluaSh2b2lkKVxcbi0tXFxubmV0L2lwdjYvYWg2LmMtODI1LVxcbm5ldC9pcHY2L2FoNi5jOjgyNjpcXHR4ZnJtX3VucmVnaXN0ZXJfdHlwZShcXHUwMDI2YWg2X3R5cGUsIEFGX0lORVQ2KTtcXG5uZXQvaXB2Ni9haDYuYy04MjctfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNlQwMzoyMDoxMi4xMDA4OTA4OTlaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODY5Mzc4NTk5MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiB0aGUgQUg2IElQc2VjIFZ1bG5lcmFiaWxpdHkgUGF0Y2gqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IGBhaDZfaW5wdXRgIGFuZCBgYWg2X291dHB1dGAgYXJlIHRoZSBrZXkgZW50cnkgcG9pbnRzIGZvciBBSDYgcHJvY2Vzc2luZy4gVGhleSdyZSBzdGF0aWMsIHdoaWNoIGluaXRpYWxseSByYWlzZWQgYSBmbGFnIHJlZ2FyZGluZyBTeXprYWxsZXIncyBhYmlsaXR5IHRvIHJlc29sdmUgdGhlbS4gSG93ZXZlciwgaWYgdGhlIERXQVJGIGluZm9ybWF0aW9uIGlzIGNvcnJlY3RseSBpbmNsdWRlZCwgaXQgc2hvdWxkIGJlIGZpbmUuIEknbSBjaG9vc2luZyB0aGVtIGFzIHRoZSBmb2N1cyBmdW5jdGlvbnMuIGB4ZnJtX2lucHV0YCBhbmQgYHhmcm1fb3V0cHV0YCBhcmUgYWxzbyByZWxldmFudCwgYnV0IHRoZXkncmUgbW9yZSBnZW5lcmljLCBzbyBJJ20gc3RpY2tpbmcgd2l0aCBgYWg2X2lucHV0YCBhbmQgYGFoNl9vdXRwdXRgIGZvciB0aGVpciBzcGVjaWZpY2l0eS4gQW5kIHNpbmNlIHdlJ3JlIGhlcmUsIGxldCBtZSBtYWtlIGEgbm90ZSB0aGF0IGBpcHY2X2NsZWFyX211dGFibGVfb3B0aW9uc2AgaXMgYWxzbyBzdGF0aWMuXG5cbkxldCdzIHF1aWNrbHkgY2hlY2sgYHhmcm1faW5wdXRgIGFuZCBgeGZybV9vdXRwdXRgIOKAkyB5ZXAsIGdlbmVyaWMgYXMgZXhwZWN0ZWQuIFNvLCBmb2N1c2luZyBvbiBgYWg2X2lucHV0YCBhbmQgYGFoNl9vdXRwdXRgIG1ha2VzIHRoZSBtb3N0IHNlbnNlLlxuXG5Ob3csIHdoYXQgYWJvdXQgdGhlIGNvbmZpZ3VyYXRpb24/IEkgdGhpbmsgYFhGUk1fVVNFUmAgaXMgZ29pbmcgdG8gYmUgaW1wb3J0YW50LiBJdCdzIHByb2JhYmx5IG5lY2Vzc2FyeSB0byBjb25maWd1cmUgSVBzZWMgZnJvbSB1c2Vyc3BhY2UuIFNvLCBJIG5lZWQgdG8gYWRkIHRoYXQuXG5cbk9rYXksIHNvIG15IGNvbmZpZ3MgYXJlIGBJUFY2YCwgYElORVQ2X0FIYCwgYW5kIGBYRlJNX1VTRVJgLiBNeSBgRm9jdXNTeW1ib2xzYCBhcmUgZGVmaW5pdGVseSBgYWg2X2lucHV0YCBhbmQgYGFoNl9vdXRwdXRgLlxuXG5UaGUgcmVhc29uaW5nIGlzIHNvbGlkOiB0aGlzIHBhdGNoIGlzIGZpeGluZyBhIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIHJlYWQvd3JpdGUgaW4gYGlwdjZfcmVhcnJhbmdlX3J0aGRyYC4gVGhlIGNvZGUncyB0cmlnZ2VyZWQgd2hlbiBwcm9jZXNzaW5nIElQdjYgSVBzZWMgQUggcGFja2V0cyB3aXRoIHJvdXRpbmcgaGVhZGVycy4gU28sIGZ1enppbmcgdGhlIElQdjYgQUggaW5wdXQgYW5kIG91dHB1dCBwYXRocyBpcyB0aGUgcmlnaHQgYXBwcm9hY2guXG5cbkxldCdzIHF1aWNrbHkgY29uZmlybSB0aGF0IGBpcHY2X3JlYXJyYW5nZV9ydGhkcmAgaXMgcmVhY2hhYmxlLiBPa2F5LCBpdCdzIGNhbGxlZCBmcm9tIGBpcHY2X2NsZWFyX211dGFibGVfb3B0aW9uc2AsIHdoaWNoIGlzLCBpbiB0dXJuLCBjYWxsZWQgYnkgYGFoNl9vdXRwdXRgIGFuZCBgYWg2X2lucHV0YC4gUGVyZmVjdC4gWWVwLCBpdCBpcyByZWFjaGFibGUuXG5cbkp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLCBsZXQgbWUgZG91YmxlLWNoZWNrOiB5ZXAsIGBhaDZfaW5wdXRgIGFuZCBgYWg2X291dHB1dGAgYXJlIGluZGVlZCB0aGUgYmVzdCBzeW1ib2xzLiBUaGV5IGFyZSB0aGUgY29yZSBoYW5kbGVycyBmb3IgQUg2LiBJJ20gY29uZmlkZW50IGluIHRoaXMgYXNzZXNzbWVudC5cblxuXG4iLCJJbnB1dFRva2VucyI6NjI1MywiT3V0cHV0VG9rZW5zIjoxMjYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1OTAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjZUMDM6MjA6MjAuNzk0Njc5NTMyWiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjEwMjQyMzI2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJJUFY2XCIsXG4gICAgXCJJTkVUNl9BSFwiLFxuICAgIFwiWEZSTV9VU0VSXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYWg2X2lucHV0XCIsXG4gICAgXCJhaDZfb3V0cHV0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgb3V0LW9mLWJvdW5kcyBhY2Nlc3MgaW4gaXB2Nl9yZWFycmFuZ2VfcnRoZHIgYnkgdmFsaWRhdGluZyBzZWdtZW50c19sZWZ0IGFnYWluc3QgdGhlIHJvdXRpbmcgaGVhZGVyIGxlbmd0aC4gVGhpcyBjb2RlIGlzIGV4ZWN1dGVkIGR1cmluZyBJUHY2IElQc2VjIEFIIChBdXRoZW50aWNhdGlvbiBIZWFkZXIpIHBhY2tldCBwcm9jZXNzaW5nLiBGdXp6aW5nIHNob3VsZCBmb2N1cyBvbiB0aGUgQUg2IGlucHV0IGFuZCBvdXRwdXQgcGF0aHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiSVBWNlwiLFxuICAgIFwiSU5FVDZfQUhcIixcbiAgICBcIlhGUk1fVVNFUlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImFoNl9pbnB1dFwiLFxuICAgIFwiYWg2X291dHB1dFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIG91dC1vZi1ib3VuZHMgYWNjZXNzIGluIGlwdjZfcmVhcnJhbmdlX3J0aGRyIGJ5IHZhbGlkYXRpbmcgc2VnbWVudHNfbGVmdCBhZ2FpbnN0IHRoZSByb3V0aW5nIGhlYWRlciBsZW5ndGguIFRoaXMgY29kZSBpcyBleGVjdXRlZCBkdXJpbmcgSVB2NiBJUHNlYyBBSCAoQXV0aGVudGljYXRpb24gSGVhZGVyKSBwYWNrZXQgcHJvY2Vzc2luZy4gRnV6emluZyBzaG91bGQgZm9jdXMgb24gdGhlIEFINiBpbnB1dCBhbmQgb3V0cHV0IHBhdGhzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowjmdh2[1] Phase: Succeeded StartedAt: 2026-07-26 03:20:31 +0000 UTC FinishedAt: 2026-07-26 03:20:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjmdh2[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-26 03:20:31 +0000 UTC FinishedAt: 2026-07-26 03:20:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjmdh2[2] Phase: Succeeded StartedAt: 2026-07-26 03:20:31 +0000 UTC FinishedAt: 2026-07-26 07:53:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjmdh2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"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":["ah6_input","ah6_output"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"series_id":"f63f2e67-13a1-4f80-a643-a932130263dd","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-07-26 03:20:31 +0000 UTC FinishedAt: 2026-07-26 07:53:50 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"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":["ah6_input","ah6_output"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"series_id":"f63f2e67-13a1-4f80-a643-a932130263dd","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-workflowjmdh2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"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":["ah6_input","ah6_output"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"series_id":"f63f2e67-13a1-4f80-a643-a932130263dd","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-07-26 03:20:31 +0000 UTC FinishedAt: 2026-07-26 03:21:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjmdh2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"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":["ah6_input","ah6_output"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"series_id":"f63f2e67-13a1-4f80-a643-a932130263dd","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-07-26 03:20:31 +0000 UTC FinishedAt: 2026-07-26 03:20:54 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"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-workflowjmdh2/series-workflowjmdh2-convert-artifact-2748524820/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjmdh2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"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":["ah6_input","ah6_output"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"series_id":"f63f2e67-13a1-4f80-a643-a932130263dd","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-07-26 03:21:07 +0000 UTC FinishedAt: 2026-07-26 04:05:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjmdh2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"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":["ah6_input","ah6_output"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"series_id":"f63f2e67-13a1-4f80-a643-a932130263dd","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-07-26 03:21:07 +0000 UTC FinishedAt: 2026-07-26 04:05:38 +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:*735b0ea7-8988-492d-9e3f-d2168c507b08,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-workflowjmdh2/series-workflowjmdh2-convert-artifact-2748524820/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": "b6b74ae8-0157-4cc9-804e-797dcf9b2ea1", "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-workflowjmdh2/series-workflowjmdh2-build-action-322352530/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjmdh2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"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":["ah6_input","ah6_output"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"series_id":"f63f2e67-13a1-4f80-a643-a932130263dd","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-07-26 03:21:07 +0000 UTC FinishedAt: 2026-07-26 04:05:28 +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:*735b0ea7-8988-492d-9e3f-d2168c507b08,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-workflowjmdh2/series-workflowjmdh2-convert-artifact-2748524820/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": "b6b74ae8-0157-4cc9-804e-797dcf9b2ea1", "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-workflowjmdh2/series-workflowjmdh2-build-action-322352530/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjmdh2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"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":["ah6_input","ah6_output"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"series_id":"f63f2e67-13a1-4f80-a643-a932130263dd","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-07-26 04:05:38 +0000 UTC FinishedAt: 2026-07-26 04:05:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjmdh2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"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":["ah6_input","ah6_output"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"series_id":"f63f2e67-13a1-4f80-a643-a932130263dd","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-07-26 04:05:38 +0000 UTC FinishedAt: 2026-07-26 04:05:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjmdh2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"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":["ah6_input","ah6_output"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"series_id":"f63f2e67-13a1-4f80-a643-a932130263dd","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-07-26 04:05:38 +0000 UTC FinishedAt: 2026-07-26 04:05:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjmdh2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"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":["ah6_input","ah6_output"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"series_id":"f63f2e67-13a1-4f80-a643-a932130263dd","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-07-26 04:05:38 +0000 UTC FinishedAt: 2026-07-26 04:05:44 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"series_id":"f63f2e67-13a1-4f80-a643-a932130263dd","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-workflowjmdh2/series-workflowjmdh2-convert-artifact-3926775507/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjmdh2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"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":["ah6_input","ah6_output"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"series_id":"f63f2e67-13a1-4f80-a643-a932130263dd","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-07-26 04:05:48 +0000 UTC FinishedAt: 2026-07-26 04:07:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjmdh2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"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":["ah6_input","ah6_output"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"series_id":"f63f2e67-13a1-4f80-a643-a932130263dd","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-07-26 04:05:48 +0000 UTC FinishedAt: 2026-07-26 04:07:45 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*b6b74ae8-0157-4cc9-804e-797dcf9b2ea1,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-workflowjmdh2/series-workflowjmdh2-build-action-322352530/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-workflowjmdh2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"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":["ah6_input","ah6_output"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"series_id":"f63f2e67-13a1-4f80-a643-a932130263dd","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-07-26 04:07:55 +0000 UTC FinishedAt: 2026-07-26 04:07:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjmdh2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"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":["ah6_input","ah6_output"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"series_id":"f63f2e67-13a1-4f80-a643-a932130263dd","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-07-26 04:07:55 +0000 UTC FinishedAt: 2026-07-26 04:07:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjmdh2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"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":["ah6_input","ah6_output"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"series_id":"f63f2e67-13a1-4f80-a643-a932130263dd","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-07-26 04:07:55 +0000 UTC FinishedAt: 2026-07-26 04:49:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjmdh2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"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":["ah6_input","ah6_output"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"series_id":"f63f2e67-13a1-4f80-a643-a932130263dd","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-07-26 04:07:55 +0000 UTC FinishedAt: 2026-07-26 04:49:09 +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:*735b0ea7-8988-492d-9e3f-d2168c507b08,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-workflowjmdh2/series-workflowjmdh2-convert-artifact-3926775507/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": "80d21603-3556-4fb1-b112-c64637d3afcc", "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-workflowjmdh2/series-workflowjmdh2-build-action-520358919/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjmdh2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"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":["ah6_input","ah6_output"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"series_id":"f63f2e67-13a1-4f80-a643-a932130263dd","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-07-26 04:07:55 +0000 UTC FinishedAt: 2026-07-26 04:48:59 +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:*735b0ea7-8988-492d-9e3f-d2168c507b08,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-workflowjmdh2/series-workflowjmdh2-convert-artifact-3926775507/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": "80d21603-3556-4fb1-b112-c64637d3afcc", "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-workflowjmdh2/series-workflowjmdh2-build-action-520358919/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjmdh2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"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":["ah6_input","ah6_output"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"series_id":"f63f2e67-13a1-4f80-a643-a932130263dd","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-07-26 04:49:09 +0000 UTC FinishedAt: 2026-07-26 04:49:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjmdh2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"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":["ah6_input","ah6_output"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"series_id":"f63f2e67-13a1-4f80-a643-a932130263dd","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-07-26 04:49:09 +0000 UTC FinishedAt: 2026-07-26 04:49:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjmdh2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"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":["ah6_input","ah6_output"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"series_id":"f63f2e67-13a1-4f80-a643-a932130263dd","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-07-26 04:49:09 +0000 UTC FinishedAt: 2026-07-26 04:51:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjmdh2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"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":["ah6_input","ah6_output"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"series_id":"f63f2e67-13a1-4f80-a643-a932130263dd","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-07-26 04:49:09 +0000 UTC FinishedAt: 2026-07-26 04:51:05 +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:*80d21603-3556-4fb1-b112-c64637d3afcc,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-workflowjmdh2/series-workflowjmdh2-build-action-520358919/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-workflowjmdh2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"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":["ah6_input","ah6_output"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"series_id":"f63f2e67-13a1-4f80-a643-a932130263dd","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-07-26 04:51:14 +0000 UTC FinishedAt: 2026-07-26 07:53:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjmdh2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"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":["ah6_input","ah6_output"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"series_id":"f63f2e67-13a1-4f80-a643-a932130263dd","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-07-26 04:51:14 +0000 UTC FinishedAt: 2026-07-26 07:53:50 +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":["ah6_input","ah6_output"],"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:*b6b74ae8-0157-4cc9-804e-797dcf9b2ea1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*80d21603-3556-4fb1-b112-c64637d3afcc,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-workflowjmdh2/series-workflowjmdh2-build-action-322352530/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-workflowjmdh2/series-workflowjmdh2-build-action-520358919/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowjmdh2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"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":["ah6_input","ah6_output"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"series_id":"f63f2e67-13a1-4f80-a643-a932130263dd","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-07-26 04:51:14 +0000 UTC FinishedAt: 2026-07-26 04:51:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjmdh2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"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":["ah6_input","ah6_output"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"series_id":"f63f2e67-13a1-4f80-a643-a932130263dd","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-07-26 04:51:14 +0000 UTC FinishedAt: 2026-07-26 04:51:20 +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":["ah6_input","ah6_output"],"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-workflowjmdh2/series-workflowjmdh2-convert-artifact-338943564/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjmdh2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"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":["ah6_input","ah6_output"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"series_id":"f63f2e67-13a1-4f80-a643-a932130263dd","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-07-26 04:51:14 +0000 UTC FinishedAt: 2026-07-26 04:51:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjmdh2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"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":["ah6_input","ah6_output"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"series_id":"f63f2e67-13a1-4f80-a643-a932130263dd","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-07-26 04:51:14 +0000 UTC FinishedAt: 2026-07-26 04:51:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjmdh2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"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":["ah6_input","ah6_output"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"series_id":"f63f2e67-13a1-4f80-a643-a932130263dd","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-07-26 04:51:14 +0000 UTC FinishedAt: 2026-07-26 04:51:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjmdh2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"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":["ah6_input","ah6_output"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"series_id":"f63f2e67-13a1-4f80-a643-a932130263dd","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-07-26 04:51:24 +0000 UTC FinishedAt: 2026-07-26 07:53:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjmdh2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"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":["ah6_input","ah6_output"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","INET6_AH","XFRM_USER"],"series_id":"f63f2e67-13a1-4f80-a643-a932130263dd","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-07-26 04:51:24 +0000 UTC FinishedAt: 2026-07-26 07:53:40 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*b6b74ae8-0157-4cc9-804e-797dcf9b2ea1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*80d21603-3556-4fb1-b112-c64637d3afcc,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-workflowjmdh2/series-workflowjmdh2-build-action-322352530/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-workflowjmdh2/series-workflowjmdh2-build-action-520358919/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-workflowjmdh2/series-workflowjmdh2-convert-artifact-338943564/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,}