Name: series-workflowtth62 Phase: Succeeded StartedAt: 2026-07-05 08:57:11 +0000 UTC FinishedAt: 2026-07-05 11:21:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtth62[0] Phase: Succeeded StartedAt: 2026-07-05 08:57:11 +0000 UTC FinishedAt: 2026-07-05 09:22:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtth62[0].run-triage Phase: Succeeded StartedAt: 2026-07-05 08:57:11 +0000 UTC FinishedAt: 2026-07-05 09:22:00 +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": "b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "USB_NET_CX82310_ETH" ], "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": "b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "USB_NET_CX82310_ETH" ], "series_id": "3206bc0d-3576-409d-89a3-8fcc9912476c" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "cx82310_rx_fixup" ], "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+CgkJCTx0ZD4yMDI2LzA3LzA1IDA5OjE4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1VTQl9ORVRfQ1g4MjMxMF9FVEgmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtjeDgyMzEwX3J4X2ZpeHVwJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGFuIG91dC1vZi1ib3VuZHMgcmVhZCBpbiBjeDgyMzEwX3J4X2ZpeHVwIGluIHRoZSBjeDgyMzEwX2V0aCBVU0IgbmV0d29yayBkcml2ZXIgYnkgY2hlY2tpbmcgaWYgc2tiLVx1MDAzZWxlbiBpcyBhdCBsZWFzdCBwdWxsX2xlbiBiZWZvcmUgY2FsbGluZyBza2JfcHVsbC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgVVNCIGRyaXZlciB0aGF0IGNhbiBiZSBmdXp6ZWQgdmlhIFVTQiBlbXVsYXRpb24uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMDk6MTg8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA2MzQyN2Y0NjljYjhkZDBjNzViYjhiYzc5YzcyNDhjNTRmYjcwNTU1XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBKdWwgNSAwOToxODowOCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC91c2IvY3g4MjMxMF9ldGguYyBiL2RyaXZlcnMvbmV0L3VzYi9jeDgyMzEwX2V0aC5jXG5pbmRleCAwNjhhY2IwNTJhZGIwNS4uMjdiYzM1Mjk4NjY0MDIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC91c2IvY3g4MjMxMF9ldGguY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvdXNiL2N4ODIzMTBfZXRoLmNcbkBAIC0yNDIsNyAmIzQzOzI0Miw3IEBAIHN0YXRpYyB2b2lkIGN4ODIzMTBfdW5iaW5kKHN0cnVjdCB1c2JuZXQgKmRldiwgc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYpXG4gICovXG4gc3RhdGljIGludCBjeDgyMzEwX3J4X2ZpeHVwKHN0cnVjdCB1c2JuZXQgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbiB7XG4tXHRpbnQgbGVuO1xuJiM0MztcdGludCBsZW4sIHB1bGxfbGVuO1xuIFx0c3RydWN0IHNrX2J1ZmYgKnNrYjI7XG4gXHRzdHJ1Y3QgY3g4MjMxMF9wcml2ICpwcml2ID0gZGV2LVx1MDAzZWRyaXZlcl9wcml2O1xuIFxuQEAgLTI1MSw2ICYjNDM7MjUxLDEzIEBAIHN0YXRpYyBpbnQgY3g4MjMxMF9yeF9maXh1cChzdHJ1Y3QgdXNibmV0ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpXG4gXHQgKiBlbmQgb2YgdGhhdCBwYWNrZXQgYXQgdGhlIGJlZ2lubmluZy5cbiBcdCAqL1xuIFx0aWYgKGRldi1cdTAwM2VwYXJ0aWFsX3JlbSkge1xuJiM0MztcdFx0cHVsbF9sZW4gPSAoZGV2LVx1MDAzZXBhcnRpYWxfcmVtICYjNDM7IDEpIFx1MDAyNiB+MTtcbiYjNDM7XHRcdGlmIChza2ItXHUwMDNlbGVuIFx1MDAzYyBwdWxsX2xlbikge1xuJiM0MztcdFx0XHRkZXYtXHUwMDNlcGFydGlhbF9sZW4gPSAwO1xuJiM0MztcdFx0XHRkZXYtXHUwMDNlcGFydGlhbF9yZW0gPSAwO1xuJiM0MztcdFx0XHRyZXR1cm4gMDtcbiYjNDM7XHRcdH1cbiYjNDM7XG4gXHRcdGxlbiA9IGRldi1cdTAwM2VwYXJ0aWFsX2xlbiAmIzQzOyBkZXYtXHUwMDNlcGFydGlhbF9yZW07XG4gXHRcdHNrYjIgPSBhbGxvY19za2IobGVuLCBHRlBfQVRPTUlDKTtcbiBcdFx0aWYgKCFza2IyKVxuQEAgLTI2MSw3ICYjNDM7MjY4LDcgQEAgc3RhdGljIGludCBjeDgyMzEwX3J4X2ZpeHVwKHN0cnVjdCB1c2JuZXQgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbiBcdFx0bWVtY3B5KHNrYjItXHUwMDNlZGF0YSAmIzQzOyBkZXYtXHUwMDNlcGFydGlhbF9sZW4sIHNrYi1cdTAwM2VkYXRhLFxuIFx0XHQgICAgICAgZGV2LVx1MDAzZXBhcnRpYWxfcmVtKTtcbiBcdFx0dXNibmV0X3NrYl9yZXR1cm4oZGV2LCBza2IyKTtcbi1cdFx0c2tiX3B1bGwoc2tiLCAoZGV2LVx1MDAzZXBhcnRpYWxfcmVtICYjNDM7IDEpIFx1MDAyNiB+MSk7XG4mIzQzO1x0XHRza2JfcHVsbChza2IsIHB1bGxfbGVuKTtcbiBcdFx0ZGV2LVx1MDAzZXBhcnRpYWxfcmVtID0gMDtcbiBcdFx0aWYgKHNrYi1cdTAwM2VsZW4gXHUwMDNjIDIpXG4gXHRcdFx0cmV0dXJuIDE7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMDk6MTg8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VVNCX05FVF9DWDgyMzEwX0VUSCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2N4ODIzMTBfcnhfZml4dXAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYW4gb3V0LW9mLWJvdW5kcyByZWFkIGluIGN4ODIzMTBfcnhfZml4dXAgaW4gdGhlIGN4ODIzMTBfZXRoIFVTQiBuZXR3b3JrIGRyaXZlciBieSBjaGVja2luZyBpZiBza2ItXHUwMDNlbGVuIGlzIGF0IGxlYXN0IHB1bGxfbGVuIGJlZm9yZSBjYWxsaW5nIHNrYl9wdWxsLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSBVU0IgZHJpdmVyIHRoYXQgY2FuIGJlIGZ1enplZCB2aWEgVVNCIGVtdWxhdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNjM0MjdmNDY5Y2I4ZGQwYzc1YmI4YmM3OWM3MjQ4YzU0ZmI3MDU1NQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTdW4gSnVsIDUgMDk6MTg6MDggMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC91c2IvY3g4MjMxMF9ldGguYyBiL2RyaXZlcnMvbmV0L3VzYi9jeDgyMzEwX2V0aC5jCmluZGV4IDA2OGFjYjA1MmFkYjA1Li4yN2JjMzUyOTg2NjQwMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdXNiL2N4ODIzMTBfZXRoLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvdXNiL2N4ODIzMTBfZXRoLmMKQEAgLTI0Miw3ICYjNDM7MjQyLDcgQEAgc3RhdGljIHZvaWQgY3g4MjMxMF91bmJpbmQoc3RydWN0IHVzYm5ldCAqZGV2LCBzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZikKICAqLwogc3RhdGljIGludCBjeDgyMzEwX3J4X2ZpeHVwKHN0cnVjdCB1c2JuZXQgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKLQlpbnQgbGVuOwomIzQzOwlpbnQgbGVuLCBwdWxsX2xlbjsKIAlzdHJ1Y3Qgc2tfYnVmZiAqc2tiMjsKIAlzdHJ1Y3QgY3g4MjMxMF9wcml2ICpwcml2ID0gZGV2LSZndDtkcml2ZXJfcHJpdjsKIApAQCAtMjUxLDYgJiM0MzsyNTEsMTMgQEAgc3RhdGljIGludCBjeDgyMzEwX3J4X2ZpeHVwKHN0cnVjdCB1c2JuZXQgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAkgKiBlbmQgb2YgdGhhdCBwYWNrZXQgYXQgdGhlIGJlZ2lubmluZy4KIAkgKi8KIAlpZiAoZGV2LSZndDtwYXJ0aWFsX3JlbSkgewomIzQzOwkJcHVsbF9sZW4gPSAoZGV2LSZndDtwYXJ0aWFsX3JlbSAmIzQzOyAxKSAmYW1wOyB+MTsKJiM0MzsJCWlmIChza2ItJmd0O2xlbiAmbHQ7IHB1bGxfbGVuKSB7CiYjNDM7CQkJZGV2LSZndDtwYXJ0aWFsX2xlbiA9IDA7CiYjNDM7CQkJZGV2LSZndDtwYXJ0aWFsX3JlbSA9IDA7CiYjNDM7CQkJcmV0dXJuIDA7CiYjNDM7CQl9CiYjNDM7CiAJCWxlbiA9IGRldi0mZ3Q7cGFydGlhbF9sZW4gJiM0MzsgZGV2LSZndDtwYXJ0aWFsX3JlbTsKIAkJc2tiMiA9IGFsbG9jX3NrYihsZW4sIEdGUF9BVE9NSUMpOwogCQlpZiAoIXNrYjIpCkBAIC0yNjEsNyAmIzQzOzI2OCw3IEBAIHN0YXRpYyBpbnQgY3g4MjMxMF9yeF9maXh1cChzdHJ1Y3QgdXNibmV0ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpCiAJCW1lbWNweShza2IyLSZndDtkYXRhICYjNDM7IGRldi0mZ3Q7cGFydGlhbF9sZW4sIHNrYi0mZ3Q7ZGF0YSwKIAkJICAgICAgIGRldi0mZ3Q7cGFydGlhbF9yZW0pOwogCQl1c2JuZXRfc2tiX3JldHVybihkZXYsIHNrYjIpOwotCQlza2JfcHVsbChza2IsIChkZXYtJmd0O3BhcnRpYWxfcmVtICYjNDM7IDEpICZhbXA7IH4xKTsKJiM0MzsJCXNrYl9wdWxsKHNrYiwgcHVsbF9sZW4pOwogCQlkZXYtJmd0O3BhcnRpYWxfcmVtID0gMDsKIAkJaWYgKHNrYi0mZ3Q7bGVuICZsdDsgMikKIAkJCXJldHVybiAxOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAwOToxODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjE2CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMTY2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFVTQiBOZXR3b3JrIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYSBwYXRjaCBmb3IgYGRyaXZlcnMvbmV0L3VzYi9jeDgyMzEwX2V0aC5jYC4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBzZWVtcyB0byBiZSBpbiBgY3g4MjMxMF9yeF9maXh1cGAsIHNwZWNpZmljYWxseSB0aGlzIGNoZWNrOgoKYGBgYwoJCXB1bGxfbGVuID0gKGRldi0mZ3Q7cGFydGlhbF9yZW0gJiM0MzsgMSkgJmFtcDsgfjE7CgkJaWYgKHNrYi0mZ3Q7bGVuICZsdDsgcHVsbF9sZW4pIHsKCQkJZGV2LSZndDtwYXJ0aWFsX2xlbiA9IDA7CgkJCWRldi0mZ3Q7cGFydGlhbF9yZW0gPSAwOwoJCQlyZXR1cm4gMDsKCQl9CmBgYAoKVGhpcyBpcyBhIHByZXR0eSBmb2N1c2VkIGNoYW5nZTsgaXQgbG9va3MgbGlrZSB3ZSYjMzk7cmUgaGFuZGxpbmcgc29tZSBraW5kIG9mIHBhcnRpYWwgb3IgZnJhZ21lbnRlZCByZWNlaXZlIGJ1ZmZlci4gVGhlIGNvZGUmIzM5O3MgbG9naWMgaXMgZGVzaWduZWQgdG8gdmFsaWRhdGUgdGhlIGxlbmd0aCBvZiB0aGUgcmVjZWl2ZWQgYnVmZmVyIChgc2tiLSZndDtsZW5gKSBhZ2FpbnN0IHNvbWUgY2FsY3VsYXRlZCBgcHVsbF9sZW5gLCB3aGljaCBhcHBlYXJzIHRvIGJlIHJlbGF0ZWQgdG8gYGRldi0mZ3Q7cGFydGlhbF9yZW1gLiBJZiB0aGUgcmVjZWl2ZSBidWZmZXIgaXMgdG9vIHNob3J0LCB3ZSByZXNldCBzb21lIGludGVybmFsIHN0YXRlIHZhcmlhYmxlcywgYGRldi0mZ3Q7cGFydGlhbF9sZW5gIGFuZCBgZGV2LSZndDtwYXJ0aWFsX3JlbWAsIGFuZCByZXR1cm4uIFRoaXMgc2VlbXMgbGlrZSBhIHBvdGVudGlhbCBmaXggZm9yIGEgc3BlY2lmaWMgZWRnZSBjYXNlLgoKR2l2ZW4gaXQmIzM5O3MgaW4gYSBVU0IgbmV0d29yayBkcml2ZXIsIGZ1enppbmcgdGhpcyBhcmVhIHdpdGggYSBVU0IgZ2FkZ2V0IG9yIGEgZHVtbXkgSENEIGlzIGRlZmluaXRlbHkgc29tZXRoaW5nIEkgd2FudCB0byBrZWVwIGluIG1pbmQuIFdlIG1pZ2h0IGJlIGFibGUgdG8gdHJpZ2dlciB0aGlzIGNvbmRpdGlvbiB3aXRoIHNwZWNpZmljYWxseSBjcmFmdGVkIFVTQiBwYWNrZXRzLiBMZXQgbWUganVzdCBxdWlja2x5IGNoZWNrIHRoZSBLY29uZmlnIHRvIHNlZSB3aGF0IGRlcGVuZGVuY2llcyBvciBjb25maWd1cmFiaWxpdHkgb3B0aW9ucyBhcmUgYXQgcGxheSBmb3IgYGN4ODIzMTBfZXRoLmNgLiBVbmRlcnN0YW5kaW5nIHRoZSBidWlsZCBjb25maWd1cmF0aW9uIHdpbGwgaGVscCBkZXRlcm1pbmUgdGhlIGNvbnRleHQgb2YgdGhpcyBkcml2ZXIgYW5kIHBvdGVudGlhbCBhcmVhcyB0byBleHBsb2l0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA1IDA5OjE4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2N4ODIzMTBfZXRoJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvdXNiLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC91c2IvTWFrZWZpbGU9MzU9b2JqLSQoQ09ORklHX1VTQl9TSUVSUkFfTkVUKVx0JiM0Mzs9IHNpZXJyYV9uZXQub1xuZHJpdmVycy9uZXQvdXNiL01ha2VmaWxlOjM2Om9iai0kKENPTkZJR19VU0JfTkVUX0NYODIzMTBfRVRIKVx0JiM0Mzs9IGN4ODIzMTBfZXRoLm9cbmRyaXZlcnMvbmV0L3VzYi9NYWtlZmlsZS0zNy1vYmotJChDT05GSUdfVVNCX05FVF9DRENfTkNNKVx0JiM0Mzs9IGNkY19uY20ub1xuLS1cbmRyaXZlcnMvbmV0L3VzYi9jeDgyMzEwX2V0aC5jPTM2OD1zdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgY3g4MjMxMF9kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC91c2IvY3g4MjMxMF9ldGguYzozNjk6XHQubmFtZVx0XHQ9IFwmIzM0O2N4ODIzMTBfZXRoXCYjMzQ7LFxuZHJpdmVycy9uZXQvdXNiL2N4ODIzMTBfZXRoLmMtMzcwLVx0LmlkX3RhYmxlXHQ9IHByb2R1Y3RzLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA1IDA5OjE4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI5ODgKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAzNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqQW5hbHl6aW5nIGEgVVNCIE5ldHdvcmsgQ29uZmlndXJhdGlvbioqCgpBbHJpZ2h0LCB0aGUgY29uZmlndXJhdGlvbiBpbiBxdWVzdGlvbiBpcyBgVVNCX05FVF9DWDgyMzEwX0VUSGAuIE15IGZpcnN0IGluc3RpbmN0IGlzIHRvIGltbWVkaWF0ZWx5IGp1bXAgdG8gdGhlIEtjb25maWcgZmlsZSBmb3IgdGhhdCBkcml2ZXIuIFNwZWNpZmljYWxseSwgSSYjMzk7bSB0aGlua2luZyBhYm91dCB0aGUgc3RhbmRhcmQgbG9jYXRpb24sIGBkcml2ZXJzL25ldC91c2IvS2NvbmZpZ2AuIFRoYXQmIzM5O3Mgd2hlcmUgSSBuZWVkIHRvIGJlLiBJIHdhbnQgdG8gcXVpY2tseSBldmFsdWF0ZSB0aGlzIGNvbmZpZyYjMzk7cyBkZXBlbmRlbmNpZXMgYW5kIHVuZGVyc3RhbmQgdGhlIGJ1aWxkIGltcGxpY2F0aW9ucy4gSSBuZWVkIHRvIGtub3c6IHdoYXQgb3RoZXIga2VybmVsIGZlYXR1cmVzIGFyZSByZXF1aXJlZD8gQXJlIHRoZXJlIGFueSBjb25mbGljdGluZyBvcHRpb25zPyBJcyB0aGlzIGxpa2VseSBhIHN0YW5kYWxvbmUgZHJpdmVyLCBvciB0aWVkIHRvIHNvbWUgYnJvYWRlciBVU0IgbmV0d29ya2luZyBpbmZyYXN0cnVjdHVyZT8gR290dGEgZHJpbGwgZG93biBpbnRvIHRoZSBkZXBlbmRlbmNpZXMgYW5kIG1ha2Ugc3VyZSBldmVyeXRoaW5nIGlzIGluIHBsYWNlIHRvIHByb3Blcmx5IGJ1aWxkIGFuZCBpbnRlZ3JhdGUgdGhpcyBwYXJ0aWN1bGFyIFVTQiBuZXR3b3JrIGludGVyZmFjZS4gSXQmIzM5O3MgYSBmdW5kYW1lbnRhbCBwYXJ0IG9mIGFuYWx5emluZyBhIG5ldyBkZXZpY2UmIzM5O3MgZHJpdmVycy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAwOToxODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtVU0JfTkVUX0NYODIzMTBfRVRIJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvdXNiLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC91c2IvS2NvbmZpZz00OTQ9Y29uZmlnIFVTQl9ORVRfWkFVUlVTXG4tLVxuZHJpdmVycy9uZXQvdXNiL0tjb25maWctNTExLVxuZHJpdmVycy9uZXQvdXNiL0tjb25maWc6NTEyOmNvbmZpZyBVU0JfTkVUX0NYODIzMTBfRVRIXG5kcml2ZXJzL25ldC91c2IvS2NvbmZpZy01MTMtXHR0cmlzdGF0ZSBcJiMzNDtDb25leGFudCBDWDgyMzEwIFVTQiBldGhlcm5ldCBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvdXNiL01ha2VmaWxlPTM1PW9iai0kKENPTkZJR19VU0JfU0lFUlJBX05FVClcdCYjNDM7PSBzaWVycmFfbmV0Lm9cbmRyaXZlcnMvbmV0L3VzYi9NYWtlZmlsZTozNjpvYmotJChDT05GSUdfVVNCX05FVF9DWDgyMzEwX0VUSClcdCYjNDM7PSBjeDgyMzEwX2V0aC5vXG5kcml2ZXJzL25ldC91c2IvTWFrZWZpbGUtMzctb2JqLSQoQ09ORklHX1VTQl9ORVRfQ0RDX05DTSlcdCYjNDM7PSBjZGNfbmNtLm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAwOToxODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNDY1CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzOgoKKipEaXZpbmcgaW50byB0aGUgVVNCIE5ldHdvcmtpbmcgS2NvbmZpZyoqCgpPa2F5LCB0aW1lIHRvIGdldCBteSBoYW5kcyBkaXJ0eS4gSSBuZWVkIHRvIGludmVzdGlnYXRlIHNvbWV0aGluZyByZWxhdGVkIHRvIFVTQiBuZXR3b3JraW5nLCBhbmQgbXkgZ3V0IGZlZWxpbmcgdGVsbHMgbWUgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBtaWdodCBiZSB0aGUga2V5LiBMZXQmIzM5O3Mgc3RhcnQgd2l0aCB0aGUgYGRyaXZlcnMvbmV0L3VzYi9LY29uZmlnYCBmaWxlLiBJJiMzOTttIHNwZWNpZmljYWxseSBhaW1pbmcgYXJvdW5kIGxpbmUgNTEyLCB3aGljaCBpcyBhIGZhaXJseSBzdGFuZGFyZCBsb2NhdGlvbiBmb3IgY29yZSBjb25maWd1cmF0aW9ucyBpbiBhIGtlcm5lbCBLY29uZmlnIGZpbGUuIEkmIzM5O20gZXhwZWN0aW5nIHRvIGZpbmQgc29tZSBjcnVjaWFsIHNldHRpbmdzIG9yIGRlcGVuZGVuY2llcyByZWxhdGVkIHRvIFVTQiBuZXR3b3JrIGRldmljZSBkcml2ZXJzLiBNYXliZSBJJiMzOTtsbCBmaW5kIHRoZSBhbnN3ZXIgdGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMDk6MTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC91c2IvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDUwMCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAzMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgNTAwOlx0XHRoZWxwXG4gNTAxOlx0XHQgIENob29zZSB0aGlzIG9wdGlvbiB0byBzdXBwb3J0IHRoZSB1c2IgbmV0d29ya2luZyBsaW5rcyB1c2VkIGJ5XG4gNTAyOlx0XHQgIFphdXJ1cyBtb2RlbHMgbGlrZSB0aGUgU0wtNTAwMEQsIFNMLTU1MDAsIFNMLTU2MDAsIEEtMzAwLCBCLTUwMC5cbiA1MDM6XHRcdCAgVGhpcyBhbHNvIHN1cHBvcnRzIHNvbWUgcmVsYXRlZCBkZXZpY2UgZmlybXdhcmUsIGFzIHVzZWQgaW4gc29tZVxuIDUwNDpcdFx0ICBQREFzIGZyb20gT2x5bXB1cyBhbmQgc29tZSBjZWxsIHBob25lcyBmcm9tIE1vdG9yb2xhLlxuIDUwNTpcdFxuIDUwNjpcdFx0ICBJZiB5b3UgaW5zdGFsbCBhbiBhbHRlcm5hdGUgaW1hZ2UsIHN1Y2ggYXMgdGhlIExpbnV4IDIuNiBiYXNlZFxuIDUwNzpcdFx0ICB2ZXJzaW9ucyBvZiBPcGVuWmF1cnVzLCB5b3Ugc2hvdWxkIG5vIGxvbmdlciBuZWVkIHRvIHN1cHBvcnQgdGhpc1xuIDUwODpcdFx0ICBwcm90b2NvbC4gIE9ubHkgdGhlIFwmIzM0O2V0aC1mZFwmIzM0OyBvciBcJiMzNDtuZXRfZmRcJiMzNDsgZHJpdmVycyBpbiB0aGVzZSBkZXZpY2VzXG4gNTA5Olx0XHQgIHJlYWxseSBuZWVkIHRoaXMgbm9uLWNvbmZvcm1hbnQgdmFyaWFudCBvZiBDREMgRXRoZXJuZXQgKG9yIGluXG4gNTEwOlx0XHQgIHNvbWUgY2FzZXMgQ0RDIE1ETE0pIHByb3RvY29sLCBub3QgXCYjMzQ7Z19ldGhlclwmIzM0Oy5cbiA1MTE6XHRcbiA1MTI6XHRjb25maWcgVVNCX05FVF9DWDgyMzEwX0VUSFxuIDUxMzpcdFx0dHJpc3RhdGUgXCYjMzQ7Q29uZXhhbnQgQ1g4MjMxMCBVU0IgZXRoZXJuZXQgcG9ydFwmIzM0O1xuIDUxNDpcdFx0ZGVwZW5kcyBvbiBVU0JfVVNCTkVUXG4gNTE1Olx0XHRoZWxwXG4gNTE2Olx0XHQgIENob29zZSB0aGlzIG9wdGlvbiBpZiB5b3UmIzM5O3JlIHVzaW5nIGEgQ29uZXhhbnQgQ1g4MjMxMC1iYXNlZCBBRFNMXG4gNTE3Olx0XHQgIHJvdXRlciB3aXRoIFVTQiBldGhlcm5ldCBwb3J0LiBUaGlzIGRyaXZlciBpcyBmb3Igcm91dGVycyBvbmx5LFxuIDUxODpcdFx0ICBpdCB3aWxsIG5vdCB3b3JrIHdpdGggQURTTCBtb2RlbXMgKHVzZSBjeGFjcnUgZHJpdmVyIGluc3RlYWQpLlxuIDUxOTpcdFxuIDUyMDpcdGNvbmZpZyBVU0JfTkVUX0tBTE1JQVxuIDUyMTpcdFx0dHJpc3RhdGUgXCYjMzQ7U2Ftc3VuZyBLYWxtaWEgYmFzZWQgTFRFIFVTQiBtb2RlbVwmIzM0O1xuIDUyMjpcdFx0ZGVwZW5kcyBvbiBVU0JfVVNCTkVUXG4gNTIzOlx0XHRoZWxwXG4gNTI0Olx0XHQgIENob29zZSB0aGlzIG9wdGlvbiBpZiB5b3UgaGF2ZSBhIFNhbXN1bmcgS2FsbWlhIGJhc2VkIFVTQiBtb2RlbVxuIDUyNTpcdFx0ICBhcyBTYW1zdW5nIEdULUIzNzMwLlxuIDUyNjpcdFxuIDUyNzpcdFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGVcbiA1Mjg6XHRcdCAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIGthbG1pYS5cbiA1Mjk6XHRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAwOToxODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MjAzCgkJCQkJCQlvdXRwdXQ6IDQ3CgkJCQkJCQl0aG91Z2h0czogOTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBNb2RpZmljYXRpb24gZm9yIEZ1enppbmcgUG90ZW50aWFsKioKCk9rYXksIHNvIHRoZSBjaGFuZ2UgSSBuZWVkIHRvIGludmVzdGlnYXRlIGlzIHdpdGhpbiB0aGUgYGN4ODIzMTBfcnhfZml4dXBgIGZ1bmN0aW9uLCBzcGVjaWZpY2FsbHkgd2l0aGluIHRoZSBgVVNCX05FVF9DWDgyMzEwX0VUSGAgY29uZmlndXJhdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIHByZXR0eSBzdGFuZGFyZCBtb2RpZmljYXRpb24gaW4gYSBVU0IgbmV0d29yayBkcml2ZXIuIFRoYXQmIzM5O3MgZ29vZCwgdGhhdCBnaXZlcyBtZSBhIGNsZWFyIGRpcmVjdGlvbiB0byBwdXJzdWUgZnV6emluZy4gSSBjYW4gdGFyZ2V0IGl0IHVzaW5nIGVpdGhlciBhIFVTQiBnYWRnZXQgc2V0dXAgb3IgYSBkdW1teSBIQ0QsIGRlcGVuZGluZyBvbiB0aGUgbW9zdCBlZmZlY3RpdmUgYXBwcm9hY2ggZm9yIHRoaXMgc3BlY2lmaWMgZHJpdmVyLiBHaXZlbiB0aGlzIGluZm9ybWF0aW9uLCBgY3g4MjMxMF9yeF9maXh1cGAgd2lsbCBiZSBteSBwcmltYXJ5IGZvY3VzIHN5bWJvbC4gSG93ZXZlciwgaXQmIzM5O3MgYWx3YXlzIHdpc2UgdG8gYmUgdGhvcm91Z2guIEkgc2hvdWxkIHBlcmZvcm0gYSBxdWljayBjaGVjayB0byBzZWUgaWYgdGhpcyBjaGFuZ2UgdG91Y2hlcyBhbnkgcmVsYXRlZCBmdW5jdGlvbnMuIExldCYjMzk7cyBtYWtlIHN1cmUgSSYjMzk7bSBub3QgbWlzc2luZyBhbnkgb3RoZXIgcmVsZXZhbnQgcGllY2VzIG9mIHRoZSBwdXp6bGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA1IDA5OjE4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2N4ODIzMTBfcnhfZml4dXAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC91c2IvY3g4MjMxMF9ldGguYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC91c2IvY3g4MjMxMF9ldGguYz0yMjY9c3RhdGljIHZvaWQgY3g4MjMxMF91bmJpbmQoc3RydWN0IHVzYm5ldCAqZGV2LCBzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50Zilcbi0tXG5kcml2ZXJzL25ldC91c2IvY3g4MjMxMF9ldGguYy0yNDItICovXG5kcml2ZXJzL25ldC91c2IvY3g4MjMxMF9ldGguYzoyNDM6c3RhdGljIGludCBjeDgyMzEwX3J4X2ZpeHVwKHN0cnVjdCB1c2JuZXQgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbmRyaXZlcnMvbmV0L3VzYi9jeDgyMzEwX2V0aC5jLTI0NC17XG4tLVxuZHJpdmVycy9uZXQvdXNiL2N4ODIzMTBfZXRoLmM9MzQxPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJpdmVyX2luZm9cdGN4ODIzMTBfaW5mbyA9IHtcbi0tXG5kcml2ZXJzL25ldC91c2IvY3g4MjMxMF9ldGguYy0zNDUtXHQudW5iaW5kXHRcdD0gY3g4MjMxMF91bmJpbmQsXG5kcml2ZXJzL25ldC91c2IvY3g4MjMxMF9ldGguYzozNDY6XHQucnhfZml4dXBcdD0gY3g4MjMxMF9yeF9maXh1cCxcbmRyaXZlcnMvbmV0L3VzYi9jeDgyMzEwX2V0aC5jLTM0Ny1cdC50eF9maXh1cFx0PSBjeDgyMzEwX3R4X2ZpeHVwLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAwOToxODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0ODQ5CgkJCQkJCQlvdXRwdXQ6IDEzMgoJCQkJCQkJdGhvdWdodHM6IDE1MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgQ1g4MjMxMCBFdGhlcm5ldCBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gbG9va2luZyBhdCB0aGlzIHBhdGNoLCBpdCBzZWVtcyB0aGUgb25seSBmdW5jdGlvbiB0b3VjaGVkIGlzIGBjeDgyMzEwX3J4X2ZpeHVwYC4gVGhhdCBpbW1lZGlhdGVseSBuYXJyb3dzIGRvd24gdGhlIHNjb3BlIG9mIG15IGludmVzdGlnYXRpb24sIHdoaWNoIGlzIGhlbHBmdWwuIFRoZSBjb25maWdzIGludm9sdmVkIGFyZSBgVVNCX05FVF9DWDgyMzEwX0VUSGAsIGFuZCB0aGUga2V5IHN5bWJvbCB0byBmb2N1cyBvbiBpcywgdW5zdXJwcmlzaW5nbHksIGBjeDgyMzEwX3J4X2ZpeHVwYC4KCkZyb20gd2hhdCBJIGNhbiBnYXRoZXIsIHRoZSBmaXggYWRkcmVzc2VzIGEgcG90ZW50aWFsIG91dC1vZi1ib3VuZHMgcmVhZCB3aXRoaW4gdGhlIGBjeDgyMzEwX2V0aGAgVVNCIG5ldHdvcmsgZHJpdmVyLiBUaGUgdnVsbmVyYWJpbGl0eSBsaWVzIGluIGBjeDgyMzEwX3J4X2ZpeHVwYCwgc3BlY2lmaWNhbGx5IGJlZm9yZSB0aGUgYHNrYl9wdWxsYCBjYWxsLiBUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIGNoZWNrIHRvIGVuc3VyZSBgc2tiLSZndDtsZW5gICh0aGUgc2l6ZSBvZiB0aGUgcmVjZWl2ZWQgYnVmZmVyKSBpcyBhdCBsZWFzdCBhcyBsYXJnZSBhcyBgcHVsbF9sZW5gIGJlZm9yZSBleGVjdXRpbmcgdGhlIGBza2JfcHVsbGAgb3BlcmF0aW9uLiBUaGlzIGlzIGEgY2xhc3NpYyBidWZmZXItc2l6ZSB2YWxpZGF0aW9uIGlzc3VlLCB3aGljaCBpcyBnb29kIHRvIHNlZSBhZGRyZXNzZWQuCgpGcm9tIGEgdGVzdGluZyBwZXJzcGVjdGl2ZSwgdGhlIGZhY3QgdGhhdCB0aGlzIGlzIGEgVVNCIGRyaXZlciBpcyBzaWduaWZpY2FudC4gSXQgc3VnZ2VzdHMgdGhlIHZ1bG5lcmFiaWxpdHkgYW5kIHRoZSBmaXggYXJlIHN1c2NlcHRpYmxlIHRvIGZ1enppbmcgdmlhIFVTQiBlbXVsYXRpb24uIEnigJlsbCBtYWtlIGEgbm90ZSBvZiB0aGlzIHRvIHN1Z2dlc3QgZnV6emluZyB0aGlzIGZ1bmN0aW9uIHdpdGhpbiBhIFVTQiB0ZXN0aW5nIGZyYW1ld29yay4KCkFscmlnaHQsIHRoYXQmIzM5O3MgZW5vdWdoIGZvciBteSBpbml0aWFsIGFzc2Vzc21lbnQuIEkmIzM5O20gZ29pbmcgdG8gbG9nIHRoZXNlIGZpbmRpbmdzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAwOToxODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VVNCX05FVF9DWDgyMzEwX0VUSCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2N4ODIzMTBfcnhfZml4dXAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYW4gb3V0LW9mLWJvdW5kcyByZWFkIGluIGN4ODIzMTBfcnhfZml4dXAgaW4gdGhlIGN4ODIzMTBfZXRoIFVTQiBuZXR3b3JrIGRyaXZlciBieSBjaGVja2luZyBpZiBza2ItXHUwMDNlbGVuIGlzIGF0IGxlYXN0IHB1bGxfbGVuIGJlZm9yZSBjYWxsaW5nIHNrYl9wdWxsLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSBVU0IgZHJpdmVyIHRoYXQgY2FuIGJlIGZ1enplZCB2aWEgVVNCIGVtdWxhdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VVNCX05FVF9DWDgyMzEwX0VUSCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2N4ODIzMTBfcnhfZml4dXAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYW4gb3V0LW9mLWJvdW5kcyByZWFkIGluIGN4ODIzMTBfcnhfZml4dXAgaW4gdGhlIGN4ODIzMTBfZXRoIFVTQiBuZXR3b3JrIGRyaXZlciBieSBjaGVja2luZyBpZiBza2ItXHUwMDNlbGVuIGlzIGF0IGxlYXN0IHB1bGxfbGVuIGJlZm9yZSBjYWxsaW5nIHNrYl9wdWxsLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSBVU0IgZHJpdmVyIHRoYXQgY2FuIGJlIGZ1enplZCB2aWEgVVNCIGVtdWxhdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDA5OjE4OjA5LjA5Mzk3MzE1N1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxMTc4ODY3NjUzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlVTQl9ORVRfQ1g4MjMxMF9FVEhcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjeDgyMzEwX3J4X2ZpeHVwXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYW4gb3V0LW9mLWJvdW5kcyByZWFkIGluIGN4ODIzMTBfcnhfZml4dXAgaW4gdGhlIGN4ODIzMTBfZXRoIFVTQiBuZXR3b3JrIGRyaXZlciBieSBjaGVja2luZyBpZiBza2ItXFx1MDAzZWxlbiBpcyBhdCBsZWFzdCBwdWxsX2xlbiBiZWZvcmUgY2FsbGluZyBza2JfcHVsbC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgVVNCIGRyaXZlciB0aGF0IGNhbiBiZSBmdXp6ZWQgdmlhIFVTQiBlbXVsYXRpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDA5OjE4OjA5LjA5Mzk3ODU3N1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzM5NTYwOTA4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNjM0MjdmNDY5Y2I4ZGQwYzc1YmI4YmM3OWM3MjQ4YzU0ZmI3MDU1NVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU3VuIEp1bCA1IDA5OjE4OjA4IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3VzYi9jeDgyMzEwX2V0aC5jIGIvZHJpdmVycy9uZXQvdXNiL2N4ODIzMTBfZXRoLmNcXG5pbmRleCAwNjhhY2IwNTJhZGIwNS4uMjdiYzM1Mjk4NjY0MDIgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvdXNiL2N4ODIzMTBfZXRoLmNcXG4rKysgYi9kcml2ZXJzL25ldC91c2IvY3g4MjMxMF9ldGguY1xcbkBAIC0yNDIsNyArMjQyLDcgQEAgc3RhdGljIHZvaWQgY3g4MjMxMF91bmJpbmQoc3RydWN0IHVzYm5ldCAqZGV2LCBzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZilcXG4gICovXFxuIHN0YXRpYyBpbnQgY3g4MjMxMF9yeF9maXh1cChzdHJ1Y3QgdXNibmV0ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpXFxuIHtcXG4tXFx0aW50IGxlbjtcXG4rXFx0aW50IGxlbiwgcHVsbF9sZW47XFxuIFxcdHN0cnVjdCBza19idWZmICpza2IyO1xcbiBcXHRzdHJ1Y3QgY3g4MjMxMF9wcml2ICpwcml2ID0gZGV2LVxcdTAwM2Vkcml2ZXJfcHJpdjtcXG4gXFxuQEAgLTI1MSw2ICsyNTEsMTMgQEAgc3RhdGljIGludCBjeDgyMzEwX3J4X2ZpeHVwKHN0cnVjdCB1c2JuZXQgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4gXFx0ICogZW5kIG9mIHRoYXQgcGFja2V0IGF0IHRoZSBiZWdpbm5pbmcuXFxuIFxcdCAqL1xcbiBcXHRpZiAoZGV2LVxcdTAwM2VwYXJ0aWFsX3JlbSkge1xcbitcXHRcXHRwdWxsX2xlbiA9IChkZXYtXFx1MDAzZXBhcnRpYWxfcmVtICsgMSkgXFx1MDAyNiB+MTtcXG4rXFx0XFx0aWYgKHNrYi1cXHUwMDNlbGVuIFxcdTAwM2MgcHVsbF9sZW4pIHtcXG4rXFx0XFx0XFx0ZGV2LVxcdTAwM2VwYXJ0aWFsX2xlbiA9IDA7XFxuK1xcdFxcdFxcdGRldi1cXHUwMDNlcGFydGlhbF9yZW0gPSAwO1xcbitcXHRcXHRcXHRyZXR1cm4gMDtcXG4rXFx0XFx0fVxcbitcXG4gXFx0XFx0bGVuID0gZGV2LVxcdTAwM2VwYXJ0aWFsX2xlbiArIGRldi1cXHUwMDNlcGFydGlhbF9yZW07XFxuIFxcdFxcdHNrYjIgPSBhbGxvY19za2IobGVuLCBHRlBfQVRPTUlDKTtcXG4gXFx0XFx0aWYgKCFza2IyKVxcbkBAIC0yNjEsNyArMjY4LDcgQEAgc3RhdGljIGludCBjeDgyMzEwX3J4X2ZpeHVwKHN0cnVjdCB1c2JuZXQgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4gXFx0XFx0bWVtY3B5KHNrYjItXFx1MDAzZWRhdGEgKyBkZXYtXFx1MDAzZXBhcnRpYWxfbGVuLCBza2ItXFx1MDAzZWRhdGEsXFxuIFxcdFxcdCAgICAgICBkZXYtXFx1MDAzZXBhcnRpYWxfcmVtKTtcXG4gXFx0XFx0dXNibmV0X3NrYl9yZXR1cm4oZGV2LCBza2IyKTtcXG4tXFx0XFx0c2tiX3B1bGwoc2tiLCAoZGV2LVxcdTAwM2VwYXJ0aWFsX3JlbSArIDEpIFxcdTAwMjYgfjEpO1xcbitcXHRcXHRza2JfcHVsbChza2IsIHB1bGxfbGVuKTtcXG4gXFx0XFx0ZGV2LVxcdTAwM2VwYXJ0aWFsX3JlbSA9IDA7XFxuIFxcdFxcdGlmIChza2ItXFx1MDAzZWxlbiBcXHUwMDNjIDIpXFxuIFxcdFxcdFxcdHJldHVybiAxO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQwOToxODowOS40MzQzNjQ4NzRaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjIwODM4NDYzMjI1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlVTQl9ORVRfQ1g4MjMxMF9FVEhcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjeDgyMzEwX3J4X2ZpeHVwXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYW4gb3V0LW9mLWJvdW5kcyByZWFkIGluIGN4ODIzMTBfcnhfZml4dXAgaW4gdGhlIGN4ODIzMTBfZXRoIFVTQiBuZXR3b3JrIGRyaXZlciBieSBjaGVja2luZyBpZiBza2ItXFx1MDAzZWxlbiBpcyBhdCBsZWFzdCBwdWxsX2xlbiBiZWZvcmUgY2FsbGluZyBza2JfcHVsbC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgVVNCIGRyaXZlciB0aGF0IGNhbiBiZSBmdXp6ZWQgdmlhIFVTQiBlbXVsYXRpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNjM0MjdmNDY5Y2I4ZGQwYzc1YmI4YmM3OWM3MjQ4YzU0ZmI3MDU1NVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gSnVsIDUgMDk6MTg6MDggMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC91c2IvY3g4MjMxMF9ldGguYyBiL2RyaXZlcnMvbmV0L3VzYi9jeDgyMzEwX2V0aC5jXG5pbmRleCAwNjhhY2IwNTJhZGIwNS4uMjdiYzM1Mjk4NjY0MDIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC91c2IvY3g4MjMxMF9ldGguY1xuKysrIGIvZHJpdmVycy9uZXQvdXNiL2N4ODIzMTBfZXRoLmNcbkBAIC0yNDIsNyArMjQyLDcgQEAgc3RhdGljIHZvaWQgY3g4MjMxMF91bmJpbmQoc3RydWN0IHVzYm5ldCAqZGV2LCBzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZilcbiAgKi9cbiBzdGF0aWMgaW50IGN4ODIzMTBfcnhfZml4dXAoc3RydWN0IHVzYm5ldCAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIHtcbi1cdGludCBsZW47XG4rXHRpbnQgbGVuLCBwdWxsX2xlbjtcbiBcdHN0cnVjdCBza19idWZmICpza2IyO1xuIFx0c3RydWN0IGN4ODIzMTBfcHJpdiAqcHJpdiA9IGRldi1cdTAwM2Vkcml2ZXJfcHJpdjtcbiBcbkBAIC0yNTEsNiArMjUxLDEzIEBAIHN0YXRpYyBpbnQgY3g4MjMxMF9yeF9maXh1cChzdHJ1Y3QgdXNibmV0ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpXG4gXHQgKiBlbmQgb2YgdGhhdCBwYWNrZXQgYXQgdGhlIGJlZ2lubmluZy5cbiBcdCAqL1xuIFx0aWYgKGRldi1cdTAwM2VwYXJ0aWFsX3JlbSkge1xuK1x0XHRwdWxsX2xlbiA9IChkZXYtXHUwMDNlcGFydGlhbF9yZW0gKyAxKSBcdTAwMjYgfjE7XG4rXHRcdGlmIChza2ItXHUwMDNlbGVuIFx1MDAzYyBwdWxsX2xlbikge1xuK1x0XHRcdGRldi1cdTAwM2VwYXJ0aWFsX2xlbiA9IDA7XG4rXHRcdFx0ZGV2LVx1MDAzZXBhcnRpYWxfcmVtID0gMDtcbitcdFx0XHRyZXR1cm4gMDtcbitcdFx0fVxuK1xuIFx0XHRsZW4gPSBkZXYtXHUwMDNlcGFydGlhbF9sZW4gKyBkZXYtXHUwMDNlcGFydGlhbF9yZW07XG4gXHRcdHNrYjIgPSBhbGxvY19za2IobGVuLCBHRlBfQVRPTUlDKTtcbiBcdFx0aWYgKCFza2IyKVxuQEAgLTI2MSw3ICsyNjgsNyBAQCBzdGF0aWMgaW50IGN4ODIzMTBfcnhfZml4dXAoc3RydWN0IHVzYm5ldCAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIFx0XHRtZW1jcHkoc2tiMi1cdTAwM2VkYXRhICsgZGV2LVx1MDAzZXBhcnRpYWxfbGVuLCBza2ItXHUwMDNlZGF0YSxcbiBcdFx0ICAgICAgIGRldi1cdTAwM2VwYXJ0aWFsX3JlbSk7XG4gXHRcdHVzYm5ldF9za2JfcmV0dXJuKGRldiwgc2tiMik7XG4tXHRcdHNrYl9wdWxsKHNrYiwgKGRldi1cdTAwM2VwYXJ0aWFsX3JlbSArIDEpIFx1MDAyNiB+MSk7XG4rXHRcdHNrYl9wdWxsKHNrYiwgcHVsbF9sZW4pO1xuIFx0XHRkZXYtXHUwMDNlcGFydGlhbF9yZW0gPSAwO1xuIFx0XHRpZiAoc2tiLVx1MDAzZWxlbiBcdTAwM2MgMilcbiBcdFx0XHRyZXR1cm4gMTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDA5OjE4OjA5LjQzNDM2NjEyNFoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ5MzY3NDE5MTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgVVNCIE5ldHdvcmsgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBwYXRjaCBmb3IgYGRyaXZlcnMvbmV0L3VzYi9jeDgyMzEwX2V0aC5jYC4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBzZWVtcyB0byBiZSBpbiBgY3g4MjMxMF9yeF9maXh1cGAsIHNwZWNpZmljYWxseSB0aGlzIGNoZWNrOlxuXG5gYGBjXG5cdFx0cHVsbF9sZW4gPSAoZGV2LVx1MDAzZXBhcnRpYWxfcmVtICsgMSkgXHUwMDI2IH4xO1xuXHRcdGlmIChza2ItXHUwMDNlbGVuIFx1MDAzYyBwdWxsX2xlbikge1xuXHRcdFx0ZGV2LVx1MDAzZXBhcnRpYWxfbGVuID0gMDtcblx0XHRcdGRldi1cdTAwM2VwYXJ0aWFsX3JlbSA9IDA7XG5cdFx0XHRyZXR1cm4gMDtcblx0XHR9XG5gYGBcblxuVGhpcyBpcyBhIHByZXR0eSBmb2N1c2VkIGNoYW5nZTsgaXQgbG9va3MgbGlrZSB3ZSdyZSBoYW5kbGluZyBzb21lIGtpbmQgb2YgcGFydGlhbCBvciBmcmFnbWVudGVkIHJlY2VpdmUgYnVmZmVyLiBUaGUgY29kZSdzIGxvZ2ljIGlzIGRlc2lnbmVkIHRvIHZhbGlkYXRlIHRoZSBsZW5ndGggb2YgdGhlIHJlY2VpdmVkIGJ1ZmZlciAoYHNrYi1cdTAwM2VsZW5gKSBhZ2FpbnN0IHNvbWUgY2FsY3VsYXRlZCBgcHVsbF9sZW5gLCB3aGljaCBhcHBlYXJzIHRvIGJlIHJlbGF0ZWQgdG8gYGRldi1cdTAwM2VwYXJ0aWFsX3JlbWAuIElmIHRoZSByZWNlaXZlIGJ1ZmZlciBpcyB0b28gc2hvcnQsIHdlIHJlc2V0IHNvbWUgaW50ZXJuYWwgc3RhdGUgdmFyaWFibGVzLCBgZGV2LVx1MDAzZXBhcnRpYWxfbGVuYCBhbmQgYGRldi1cdTAwM2VwYXJ0aWFsX3JlbWAsIGFuZCByZXR1cm4uIFRoaXMgc2VlbXMgbGlrZSBhIHBvdGVudGlhbCBmaXggZm9yIGEgc3BlY2lmaWMgZWRnZSBjYXNlLlxuXG5HaXZlbiBpdCdzIGluIGEgVVNCIG5ldHdvcmsgZHJpdmVyLCBmdXp6aW5nIHRoaXMgYXJlYSB3aXRoIGEgVVNCIGdhZGdldCBvciBhIGR1bW15IEhDRCBpcyBkZWZpbml0ZWx5IHNvbWV0aGluZyBJIHdhbnQgdG8ga2VlcCBpbiBtaW5kLiBXZSBtaWdodCBiZSBhYmxlIHRvIHRyaWdnZXIgdGhpcyBjb25kaXRpb24gd2l0aCBzcGVjaWZpY2FsbHkgY3JhZnRlZCBVU0IgcGFja2V0cy4gTGV0IG1lIGp1c3QgcXVpY2tseSBjaGVjayB0aGUgS2NvbmZpZyB0byBzZWUgd2hhdCBkZXBlbmRlbmNpZXMgb3IgY29uZmlndXJhYmlsaXR5IG9wdGlvbnMgYXJlIGF0IHBsYXkgZm9yIGBjeDgyMzEwX2V0aC5jYC4gVW5kZXJzdGFuZGluZyB0aGUgYnVpbGQgY29uZmlndXJhdGlvbiB3aWxsIGhlbHAgZGV0ZXJtaW5lIHRoZSBjb250ZXh0IG9mIHRoaXMgZHJpdmVyIGFuZCBwb3RlbnRpYWwgYXJlYXMgdG8gZXhwbG9pdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjIxNiwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2NiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDA5OjE4OjE0LjM3MTEwOTgzWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY0NjA4OTQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImN4ODIzMTBfZXRoXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3VzYi9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvdXNiL01ha2VmaWxlPTM1PW9iai0kKENPTkZJR19VU0JfU0lFUlJBX05FVClcXHQrPSBzaWVycmFfbmV0Lm9cXG5kcml2ZXJzL25ldC91c2IvTWFrZWZpbGU6MzY6b2JqLSQoQ09ORklHX1VTQl9ORVRfQ1g4MjMxMF9FVEgpXFx0Kz0gY3g4MjMxMF9ldGgub1xcbmRyaXZlcnMvbmV0L3VzYi9NYWtlZmlsZS0zNy1vYmotJChDT05GSUdfVVNCX05FVF9DRENfTkNNKVxcdCs9IGNkY19uY20ub1xcbi0tXFxuZHJpdmVycy9uZXQvdXNiL2N4ODIzMTBfZXRoLmM9MzY4PXN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBjeDgyMzEwX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC91c2IvY3g4MjMxMF9ldGguYzozNjk6XFx0Lm5hbWVcXHRcXHQ9IFxcXCJjeDgyMzEwX2V0aFxcXCIsXFxuZHJpdmVycy9uZXQvdXNiL2N4ODIzMTBfZXRoLmMtMzcwLVxcdC5pZF90YWJsZVxcdD0gcHJvZHVjdHMsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDA5OjE4OjE0LjQzNTcyODE0OFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMwOTA1Nzg1NDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipBbmFseXppbmcgYSBVU0IgTmV0d29yayBDb25maWd1cmF0aW9uKipcblxuQWxyaWdodCwgdGhlIGNvbmZpZ3VyYXRpb24gaW4gcXVlc3Rpb24gaXMgYFVTQl9ORVRfQ1g4MjMxMF9FVEhgLiBNeSBmaXJzdCBpbnN0aW5jdCBpcyB0byBpbW1lZGlhdGVseSBqdW1wIHRvIHRoZSBLY29uZmlnIGZpbGUgZm9yIHRoYXQgZHJpdmVyLiBTcGVjaWZpY2FsbHksIEknbSB0aGlua2luZyBhYm91dCB0aGUgc3RhbmRhcmQgbG9jYXRpb24sIGBkcml2ZXJzL25ldC91c2IvS2NvbmZpZ2AuIFRoYXQncyB3aGVyZSBJIG5lZWQgdG8gYmUuIEkgd2FudCB0byBxdWlja2x5IGV2YWx1YXRlIHRoaXMgY29uZmlnJ3MgZGVwZW5kZW5jaWVzIGFuZCB1bmRlcnN0YW5kIHRoZSBidWlsZCBpbXBsaWNhdGlvbnMuIEkgbmVlZCB0byBrbm93OiB3aGF0IG90aGVyIGtlcm5lbCBmZWF0dXJlcyBhcmUgcmVxdWlyZWQ/IEFyZSB0aGVyZSBhbnkgY29uZmxpY3Rpbmcgb3B0aW9ucz8gSXMgdGhpcyBsaWtlbHkgYSBzdGFuZGFsb25lIGRyaXZlciwgb3IgdGllZCB0byBzb21lIGJyb2FkZXIgVVNCIG5ldHdvcmtpbmcgaW5mcmFzdHJ1Y3R1cmU/IEdvdHRhIGRyaWxsIGRvd24gaW50byB0aGUgZGVwZW5kZW5jaWVzIGFuZCBtYWtlIHN1cmUgZXZlcnl0aGluZyBpcyBpbiBwbGFjZSB0byBwcm9wZXJseSBidWlsZCBhbmQgaW50ZWdyYXRlIHRoaXMgcGFydGljdWxhciBVU0IgbmV0d29yayBpbnRlcmZhY2UuIEl0J3MgYSBmdW5kYW1lbnRhbCBwYXJ0IG9mIGFuYWx5emluZyBhIG5ldyBkZXZpY2UncyBkcml2ZXJzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyOTg4LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMDk6MTg6MTcuNTI2MzA4NzAzWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU1MDU2OTQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIlVTQl9ORVRfQ1g4MjMxMF9FVEhcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvdXNiL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC91c2IvS2NvbmZpZz00OTQ9Y29uZmlnIFVTQl9ORVRfWkFVUlVTXFxuLS1cXG5kcml2ZXJzL25ldC91c2IvS2NvbmZpZy01MTEtXFxuZHJpdmVycy9uZXQvdXNiL0tjb25maWc6NTEyOmNvbmZpZyBVU0JfTkVUX0NYODIzMTBfRVRIXFxuZHJpdmVycy9uZXQvdXNiL0tjb25maWctNTEzLVxcdHRyaXN0YXRlIFxcXCJDb25leGFudCBDWDgyMzEwIFVTQiBldGhlcm5ldCBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvdXNiL01ha2VmaWxlPTM1PW9iai0kKENPTkZJR19VU0JfU0lFUlJBX05FVClcXHQrPSBzaWVycmFfbmV0Lm9cXG5kcml2ZXJzL25ldC91c2IvTWFrZWZpbGU6MzY6b2JqLSQoQ09ORklHX1VTQl9ORVRfQ1g4MjMxMF9FVEgpXFx0Kz0gY3g4MjMxMF9ldGgub1xcbmRyaXZlcnMvbmV0L3VzYi9NYWtlZmlsZS0zNy1vYmotJChDT05GSUdfVVNCX05FVF9DRENfTkNNKVxcdCs9IGNkY19uY20ub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQwOToxODoxNy41ODEzNzAxNDFaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyOTMxMzE2ODIxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBVU0IgTmV0d29ya2luZyBLY29uZmlnKipcblxuT2theSwgdGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkuIEkgbmVlZCB0byBpbnZlc3RpZ2F0ZSBzb21ldGhpbmcgcmVsYXRlZCB0byBVU0IgbmV0d29ya2luZywgYW5kIG15IGd1dCBmZWVsaW5nIHRlbGxzIG1lIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgbWlnaHQgYmUgdGhlIGtleS4gTGV0J3Mgc3RhcnQgd2l0aCB0aGUgYGRyaXZlcnMvbmV0L3VzYi9LY29uZmlnYCBmaWxlLiBJJ20gc3BlY2lmaWNhbGx5IGFpbWluZyBhcm91bmQgbGluZSA1MTIsIHdoaWNoIGlzIGEgZmFpcmx5IHN0YW5kYXJkIGxvY2F0aW9uIGZvciBjb3JlIGNvbmZpZ3VyYXRpb25zIGluIGEga2VybmVsIEtjb25maWcgZmlsZS4gSSdtIGV4cGVjdGluZyB0byBmaW5kIHNvbWUgY3J1Y2lhbCBzZXR0aW5ncyBvciBkZXBlbmRlbmNpZXMgcmVsYXRlZCB0byBVU0IgbmV0d29yayBkZXZpY2UgZHJpdmVycy4gTWF5YmUgSSdsbCBmaW5kIHRoZSBhbnN3ZXIgdGhlcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM0NjUsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQwOToxODoyMC41MTI2ODkzNzJaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5OTUxMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC91c2IvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiA1MDAsXG4gIFwiTGluZUNvdW50XCI6IDMwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiA1MDA6XFx0XFx0aGVscFxcbiA1MDE6XFx0XFx0ICBDaG9vc2UgdGhpcyBvcHRpb24gdG8gc3VwcG9ydCB0aGUgdXNiIG5ldHdvcmtpbmcgbGlua3MgdXNlZCBieVxcbiA1MDI6XFx0XFx0ICBaYXVydXMgbW9kZWxzIGxpa2UgdGhlIFNMLTUwMDBELCBTTC01NTAwLCBTTC01NjAwLCBBLTMwMCwgQi01MDAuXFxuIDUwMzpcXHRcXHQgIFRoaXMgYWxzbyBzdXBwb3J0cyBzb21lIHJlbGF0ZWQgZGV2aWNlIGZpcm13YXJlLCBhcyB1c2VkIGluIHNvbWVcXG4gNTA0OlxcdFxcdCAgUERBcyBmcm9tIE9seW1wdXMgYW5kIHNvbWUgY2VsbCBwaG9uZXMgZnJvbSBNb3Rvcm9sYS5cXG4gNTA1OlxcdFxcbiA1MDY6XFx0XFx0ICBJZiB5b3UgaW5zdGFsbCBhbiBhbHRlcm5hdGUgaW1hZ2UsIHN1Y2ggYXMgdGhlIExpbnV4IDIuNiBiYXNlZFxcbiA1MDc6XFx0XFx0ICB2ZXJzaW9ucyBvZiBPcGVuWmF1cnVzLCB5b3Ugc2hvdWxkIG5vIGxvbmdlciBuZWVkIHRvIHN1cHBvcnQgdGhpc1xcbiA1MDg6XFx0XFx0ICBwcm90b2NvbC4gIE9ubHkgdGhlIFxcXCJldGgtZmRcXFwiIG9yIFxcXCJuZXRfZmRcXFwiIGRyaXZlcnMgaW4gdGhlc2UgZGV2aWNlc1xcbiA1MDk6XFx0XFx0ICByZWFsbHkgbmVlZCB0aGlzIG5vbi1jb25mb3JtYW50IHZhcmlhbnQgb2YgQ0RDIEV0aGVybmV0IChvciBpblxcbiA1MTA6XFx0XFx0ICBzb21lIGNhc2VzIENEQyBNRExNKSBwcm90b2NvbCwgbm90IFxcXCJnX2V0aGVyXFxcIi5cXG4gNTExOlxcdFxcbiA1MTI6XFx0Y29uZmlnIFVTQl9ORVRfQ1g4MjMxMF9FVEhcXG4gNTEzOlxcdFxcdHRyaXN0YXRlIFxcXCJDb25leGFudCBDWDgyMzEwIFVTQiBldGhlcm5ldCBwb3J0XFxcIlxcbiA1MTQ6XFx0XFx0ZGVwZW5kcyBvbiBVU0JfVVNCTkVUXFxuIDUxNTpcXHRcXHRoZWxwXFxuIDUxNjpcXHRcXHQgIENob29zZSB0aGlzIG9wdGlvbiBpZiB5b3UncmUgdXNpbmcgYSBDb25leGFudCBDWDgyMzEwLWJhc2VkIEFEU0xcXG4gNTE3OlxcdFxcdCAgcm91dGVyIHdpdGggVVNCIGV0aGVybmV0IHBvcnQuIFRoaXMgZHJpdmVyIGlzIGZvciByb3V0ZXJzIG9ubHksXFxuIDUxODpcXHRcXHQgIGl0IHdpbGwgbm90IHdvcmsgd2l0aCBBRFNMIG1vZGVtcyAodXNlIGN4YWNydSBkcml2ZXIgaW5zdGVhZCkuXFxuIDUxOTpcXHRcXG4gNTIwOlxcdGNvbmZpZyBVU0JfTkVUX0tBTE1JQVxcbiA1MjE6XFx0XFx0dHJpc3RhdGUgXFxcIlNhbXN1bmcgS2FsbWlhIGJhc2VkIExURSBVU0IgbW9kZW1cXFwiXFxuIDUyMjpcXHRcXHRkZXBlbmRzIG9uIFVTQl9VU0JORVRcXG4gNTIzOlxcdFxcdGhlbHBcXG4gNTI0OlxcdFxcdCAgQ2hvb3NlIHRoaXMgb3B0aW9uIGlmIHlvdSBoYXZlIGEgU2Ftc3VuZyBLYWxtaWEgYmFzZWQgVVNCIG1vZGVtXFxuIDUyNTpcXHRcXHQgIGFzIFNhbXN1bmcgR1QtQjM3MzAuXFxuIDUyNjpcXHRcXG4gNTI3OlxcdFxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlXFxuIDUyODpcXHRcXHQgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBrYWxtaWEuXFxuIDUyOTpcXHRcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMDk6MTg6MjAuNTEyNzkwNzQyWiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzgwMTAwOTU5OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE1vZGlmaWNhdGlvbiBmb3IgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyB0aGUgY2hhbmdlIEkgbmVlZCB0byBpbnZlc3RpZ2F0ZSBpcyB3aXRoaW4gdGhlIGBjeDgyMzEwX3J4X2ZpeHVwYCBmdW5jdGlvbiwgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgYFVTQl9ORVRfQ1g4MjMxMF9FVEhgIGNvbmZpZ3VyYXRpb24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYSBwcmV0dHkgc3RhbmRhcmQgbW9kaWZpY2F0aW9uIGluIGEgVVNCIG5ldHdvcmsgZHJpdmVyLiBUaGF0J3MgZ29vZCwgdGhhdCBnaXZlcyBtZSBhIGNsZWFyIGRpcmVjdGlvbiB0byBwdXJzdWUgZnV6emluZy4gSSBjYW4gdGFyZ2V0IGl0IHVzaW5nIGVpdGhlciBhIFVTQiBnYWRnZXQgc2V0dXAgb3IgYSBkdW1teSBIQ0QsIGRlcGVuZGluZyBvbiB0aGUgbW9zdCBlZmZlY3RpdmUgYXBwcm9hY2ggZm9yIHRoaXMgc3BlY2lmaWMgZHJpdmVyLiBHaXZlbiB0aGlzIGluZm9ybWF0aW9uLCBgY3g4MjMxMF9yeF9maXh1cGAgd2lsbCBiZSBteSBwcmltYXJ5IGZvY3VzIHN5bWJvbC4gSG93ZXZlciwgaXQncyBhbHdheXMgd2lzZSB0byBiZSB0aG9yb3VnaC4gSSBzaG91bGQgcGVyZm9ybSBhIHF1aWNrIGNoZWNrIHRvIHNlZSBpZiB0aGlzIGNoYW5nZSB0b3VjaGVzIGFueSByZWxhdGVkIGZ1bmN0aW9ucy4gTGV0J3MgbWFrZSBzdXJlIEknbSBub3QgbWlzc2luZyBhbnkgb3RoZXIgcmVsZXZhbnQgcGllY2VzIG9mIHRoZSBwdXp6bGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQyMDMsIk91dHB1dFRva2VucyI6NDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5NCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDA5OjE4OjI0LjMxMzgwMjgwMVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTU0Njg0OTM0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImN4ODIzMTBfcnhfZml4dXBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvdXNiL2N4ODIzMTBfZXRoLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvdXNiL2N4ODIzMTBfZXRoLmM9MjI2PXN0YXRpYyB2b2lkIGN4ODIzMTBfdW5iaW5kKHN0cnVjdCB1c2JuZXQgKmRldiwgc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYpXFxuLS1cXG5kcml2ZXJzL25ldC91c2IvY3g4MjMxMF9ldGguYy0yNDItICovXFxuZHJpdmVycy9uZXQvdXNiL2N4ODIzMTBfZXRoLmM6MjQzOnN0YXRpYyBpbnQgY3g4MjMxMF9yeF9maXh1cChzdHJ1Y3QgdXNibmV0ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpXFxuZHJpdmVycy9uZXQvdXNiL2N4ODIzMTBfZXRoLmMtMjQ0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9jeDgyMzEwX2V0aC5jPTM0MT1zdGF0aWMgY29uc3Qgc3RydWN0IGRyaXZlcl9pbmZvXFx0Y3g4MjMxMF9pbmZvID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvdXNiL2N4ODIzMTBfZXRoLmMtMzQ1LVxcdC51bmJpbmRcXHRcXHQ9IGN4ODIzMTBfdW5iaW5kLFxcbmRyaXZlcnMvbmV0L3VzYi9jeDgyMzEwX2V0aC5jOjM0NjpcXHQucnhfZml4dXBcXHQ9IGN4ODIzMTBfcnhfZml4dXAsXFxuZHJpdmVycy9uZXQvdXNiL2N4ODIzMTBfZXRoLmMtMzQ3LVxcdC50eF9maXh1cFxcdD0gY3g4MjMxMF90eF9maXh1cCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMDk6MTg6MjQuNDY4NDkzMDQ1WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU2NjE0MjY5ODAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIENYODIzMTAgRXRoZXJuZXQgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gbG9va2luZyBhdCB0aGlzIHBhdGNoLCBpdCBzZWVtcyB0aGUgb25seSBmdW5jdGlvbiB0b3VjaGVkIGlzIGBjeDgyMzEwX3J4X2ZpeHVwYC4gVGhhdCBpbW1lZGlhdGVseSBuYXJyb3dzIGRvd24gdGhlIHNjb3BlIG9mIG15IGludmVzdGlnYXRpb24sIHdoaWNoIGlzIGhlbHBmdWwuIFRoZSBjb25maWdzIGludm9sdmVkIGFyZSBgVVNCX05FVF9DWDgyMzEwX0VUSGAsIGFuZCB0aGUga2V5IHN5bWJvbCB0byBmb2N1cyBvbiBpcywgdW5zdXJwcmlzaW5nbHksIGBjeDgyMzEwX3J4X2ZpeHVwYC5cblxuRnJvbSB3aGF0IEkgY2FuIGdhdGhlciwgdGhlIGZpeCBhZGRyZXNzZXMgYSBwb3RlbnRpYWwgb3V0LW9mLWJvdW5kcyByZWFkIHdpdGhpbiB0aGUgYGN4ODIzMTBfZXRoYCBVU0IgbmV0d29yayBkcml2ZXIuIFRoZSB2dWxuZXJhYmlsaXR5IGxpZXMgaW4gYGN4ODIzMTBfcnhfZml4dXBgLCBzcGVjaWZpY2FsbHkgYmVmb3JlIHRoZSBgc2tiX3B1bGxgIGNhbGwuIFRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgY2hlY2sgdG8gZW5zdXJlIGBza2ItXHUwMDNlbGVuYCAodGhlIHNpemUgb2YgdGhlIHJlY2VpdmVkIGJ1ZmZlcikgaXMgYXQgbGVhc3QgYXMgbGFyZ2UgYXMgYHB1bGxfbGVuYCBiZWZvcmUgZXhlY3V0aW5nIHRoZSBgc2tiX3B1bGxgIG9wZXJhdGlvbi4gVGhpcyBpcyBhIGNsYXNzaWMgYnVmZmVyLXNpemUgdmFsaWRhdGlvbiBpc3N1ZSwgd2hpY2ggaXMgZ29vZCB0byBzZWUgYWRkcmVzc2VkLlxuXG5Gcm9tIGEgdGVzdGluZyBwZXJzcGVjdGl2ZSwgdGhlIGZhY3QgdGhhdCB0aGlzIGlzIGEgVVNCIGRyaXZlciBpcyBzaWduaWZpY2FudC4gSXQgc3VnZ2VzdHMgdGhlIHZ1bG5lcmFiaWxpdHkgYW5kIHRoZSBmaXggYXJlIHN1c2NlcHRpYmxlIHRvIGZ1enppbmcgdmlhIFVTQiBlbXVsYXRpb24uIEnigJlsbCBtYWtlIGEgbm90ZSBvZiB0aGlzIHRvIHN1Z2dlc3QgZnV6emluZyB0aGlzIGZ1bmN0aW9uIHdpdGhpbiBhIFVTQiB0ZXN0aW5nIGZyYW1ld29yay5cblxuQWxyaWdodCwgdGhhdCdzIGVub3VnaCBmb3IgbXkgaW5pdGlhbCBhc3Nlc3NtZW50LiBJJ20gZ29pbmcgdG8gbG9nIHRoZXNlIGZpbmRpbmdzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0ODQ5LCJPdXRwdXRUb2tlbnMiOjEzMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQwOToxODozMC4xMjk5MjE5OTVaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDI5MDAxMTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlVTQl9ORVRfQ1g4MjMxMF9FVEhcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjeDgyMzEwX3J4X2ZpeHVwXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYW4gb3V0LW9mLWJvdW5kcyByZWFkIGluIGN4ODIzMTBfcnhfZml4dXAgaW4gdGhlIGN4ODIzMTBfZXRoIFVTQiBuZXR3b3JrIGRyaXZlciBieSBjaGVja2luZyBpZiBza2ItXFx1MDAzZWxlbiBpcyBhdCBsZWFzdCBwdWxsX2xlbiBiZWZvcmUgY2FsbGluZyBza2JfcHVsbC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgVVNCIGRyaXZlciB0aGF0IGNhbiBiZSBmdXp6ZWQgdmlhIFVTQiBlbXVsYXRpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVVNCX05FVF9DWDgyMzEwX0VUSFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImN4ODIzMTBfcnhfZml4dXBcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhbiBvdXQtb2YtYm91bmRzIHJlYWQgaW4gY3g4MjMxMF9yeF9maXh1cCBpbiB0aGUgY3g4MjMxMF9ldGggVVNCIG5ldHdvcmsgZHJpdmVyIGJ5IGNoZWNraW5nIGlmIHNrYi1cXHUwMDNlbGVuIGlzIGF0IGxlYXN0IHB1bGxfbGVuIGJlZm9yZSBjYWxsaW5nIHNrYl9wdWxsLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSBVU0IgZHJpdmVyIHRoYXQgY2FuIGJlIGZ1enplZCB2aWEgVVNCIGVtdWxhdGlvbi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowtth62[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-05 08:57:11 +0000 UTC FinishedAt: 2026-07-05 09:18: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": "b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "USB_NET_CX82310_ETH" ], "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": "b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "USB_NET_CX82310_ETH" ], "series_id": "3206bc0d-3576-409d-89a3-8fcc9912476c" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "cx82310_rx_fixup" ], "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+CgkJCTx0ZD4yMDI2LzA3LzA1IDA5OjE4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1VTQl9ORVRfQ1g4MjMxMF9FVEgmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtjeDgyMzEwX3J4X2ZpeHVwJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGFuIG91dC1vZi1ib3VuZHMgcmVhZCBpbiBjeDgyMzEwX3J4X2ZpeHVwIGluIHRoZSBjeDgyMzEwX2V0aCBVU0IgbmV0d29yayBkcml2ZXIgYnkgY2hlY2tpbmcgaWYgc2tiLVx1MDAzZWxlbiBpcyBhdCBsZWFzdCBwdWxsX2xlbiBiZWZvcmUgY2FsbGluZyBza2JfcHVsbC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgVVNCIGRyaXZlciB0aGF0IGNhbiBiZSBmdXp6ZWQgdmlhIFVTQiBlbXVsYXRpb24uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMDk6MTg8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA2MzQyN2Y0NjljYjhkZDBjNzViYjhiYzc5YzcyNDhjNTRmYjcwNTU1XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBKdWwgNSAwOToxODowOCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC91c2IvY3g4MjMxMF9ldGguYyBiL2RyaXZlcnMvbmV0L3VzYi9jeDgyMzEwX2V0aC5jXG5pbmRleCAwNjhhY2IwNTJhZGIwNS4uMjdiYzM1Mjk4NjY0MDIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC91c2IvY3g4MjMxMF9ldGguY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvdXNiL2N4ODIzMTBfZXRoLmNcbkBAIC0yNDIsNyAmIzQzOzI0Miw3IEBAIHN0YXRpYyB2b2lkIGN4ODIzMTBfdW5iaW5kKHN0cnVjdCB1c2JuZXQgKmRldiwgc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYpXG4gICovXG4gc3RhdGljIGludCBjeDgyMzEwX3J4X2ZpeHVwKHN0cnVjdCB1c2JuZXQgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbiB7XG4tXHRpbnQgbGVuO1xuJiM0MztcdGludCBsZW4sIHB1bGxfbGVuO1xuIFx0c3RydWN0IHNrX2J1ZmYgKnNrYjI7XG4gXHRzdHJ1Y3QgY3g4MjMxMF9wcml2ICpwcml2ID0gZGV2LVx1MDAzZWRyaXZlcl9wcml2O1xuIFxuQEAgLTI1MSw2ICYjNDM7MjUxLDEzIEBAIHN0YXRpYyBpbnQgY3g4MjMxMF9yeF9maXh1cChzdHJ1Y3QgdXNibmV0ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpXG4gXHQgKiBlbmQgb2YgdGhhdCBwYWNrZXQgYXQgdGhlIGJlZ2lubmluZy5cbiBcdCAqL1xuIFx0aWYgKGRldi1cdTAwM2VwYXJ0aWFsX3JlbSkge1xuJiM0MztcdFx0cHVsbF9sZW4gPSAoZGV2LVx1MDAzZXBhcnRpYWxfcmVtICYjNDM7IDEpIFx1MDAyNiB+MTtcbiYjNDM7XHRcdGlmIChza2ItXHUwMDNlbGVuIFx1MDAzYyBwdWxsX2xlbikge1xuJiM0MztcdFx0XHRkZXYtXHUwMDNlcGFydGlhbF9sZW4gPSAwO1xuJiM0MztcdFx0XHRkZXYtXHUwMDNlcGFydGlhbF9yZW0gPSAwO1xuJiM0MztcdFx0XHRyZXR1cm4gMDtcbiYjNDM7XHRcdH1cbiYjNDM7XG4gXHRcdGxlbiA9IGRldi1cdTAwM2VwYXJ0aWFsX2xlbiAmIzQzOyBkZXYtXHUwMDNlcGFydGlhbF9yZW07XG4gXHRcdHNrYjIgPSBhbGxvY19za2IobGVuLCBHRlBfQVRPTUlDKTtcbiBcdFx0aWYgKCFza2IyKVxuQEAgLTI2MSw3ICYjNDM7MjY4LDcgQEAgc3RhdGljIGludCBjeDgyMzEwX3J4X2ZpeHVwKHN0cnVjdCB1c2JuZXQgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbiBcdFx0bWVtY3B5KHNrYjItXHUwMDNlZGF0YSAmIzQzOyBkZXYtXHUwMDNlcGFydGlhbF9sZW4sIHNrYi1cdTAwM2VkYXRhLFxuIFx0XHQgICAgICAgZGV2LVx1MDAzZXBhcnRpYWxfcmVtKTtcbiBcdFx0dXNibmV0X3NrYl9yZXR1cm4oZGV2LCBza2IyKTtcbi1cdFx0c2tiX3B1bGwoc2tiLCAoZGV2LVx1MDAzZXBhcnRpYWxfcmVtICYjNDM7IDEpIFx1MDAyNiB+MSk7XG4mIzQzO1x0XHRza2JfcHVsbChza2IsIHB1bGxfbGVuKTtcbiBcdFx0ZGV2LVx1MDAzZXBhcnRpYWxfcmVtID0gMDtcbiBcdFx0aWYgKHNrYi1cdTAwM2VsZW4gXHUwMDNjIDIpXG4gXHRcdFx0cmV0dXJuIDE7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMDk6MTg8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VVNCX05FVF9DWDgyMzEwX0VUSCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2N4ODIzMTBfcnhfZml4dXAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYW4gb3V0LW9mLWJvdW5kcyByZWFkIGluIGN4ODIzMTBfcnhfZml4dXAgaW4gdGhlIGN4ODIzMTBfZXRoIFVTQiBuZXR3b3JrIGRyaXZlciBieSBjaGVja2luZyBpZiBza2ItXHUwMDNlbGVuIGlzIGF0IGxlYXN0IHB1bGxfbGVuIGJlZm9yZSBjYWxsaW5nIHNrYl9wdWxsLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSBVU0IgZHJpdmVyIHRoYXQgY2FuIGJlIGZ1enplZCB2aWEgVVNCIGVtdWxhdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNjM0MjdmNDY5Y2I4ZGQwYzc1YmI4YmM3OWM3MjQ4YzU0ZmI3MDU1NQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTdW4gSnVsIDUgMDk6MTg6MDggMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC91c2IvY3g4MjMxMF9ldGguYyBiL2RyaXZlcnMvbmV0L3VzYi9jeDgyMzEwX2V0aC5jCmluZGV4IDA2OGFjYjA1MmFkYjA1Li4yN2JjMzUyOTg2NjQwMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdXNiL2N4ODIzMTBfZXRoLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvdXNiL2N4ODIzMTBfZXRoLmMKQEAgLTI0Miw3ICYjNDM7MjQyLDcgQEAgc3RhdGljIHZvaWQgY3g4MjMxMF91bmJpbmQoc3RydWN0IHVzYm5ldCAqZGV2LCBzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZikKICAqLwogc3RhdGljIGludCBjeDgyMzEwX3J4X2ZpeHVwKHN0cnVjdCB1c2JuZXQgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKLQlpbnQgbGVuOwomIzQzOwlpbnQgbGVuLCBwdWxsX2xlbjsKIAlzdHJ1Y3Qgc2tfYnVmZiAqc2tiMjsKIAlzdHJ1Y3QgY3g4MjMxMF9wcml2ICpwcml2ID0gZGV2LSZndDtkcml2ZXJfcHJpdjsKIApAQCAtMjUxLDYgJiM0MzsyNTEsMTMgQEAgc3RhdGljIGludCBjeDgyMzEwX3J4X2ZpeHVwKHN0cnVjdCB1c2JuZXQgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAkgKiBlbmQgb2YgdGhhdCBwYWNrZXQgYXQgdGhlIGJlZ2lubmluZy4KIAkgKi8KIAlpZiAoZGV2LSZndDtwYXJ0aWFsX3JlbSkgewomIzQzOwkJcHVsbF9sZW4gPSAoZGV2LSZndDtwYXJ0aWFsX3JlbSAmIzQzOyAxKSAmYW1wOyB+MTsKJiM0MzsJCWlmIChza2ItJmd0O2xlbiAmbHQ7IHB1bGxfbGVuKSB7CiYjNDM7CQkJZGV2LSZndDtwYXJ0aWFsX2xlbiA9IDA7CiYjNDM7CQkJZGV2LSZndDtwYXJ0aWFsX3JlbSA9IDA7CiYjNDM7CQkJcmV0dXJuIDA7CiYjNDM7CQl9CiYjNDM7CiAJCWxlbiA9IGRldi0mZ3Q7cGFydGlhbF9sZW4gJiM0MzsgZGV2LSZndDtwYXJ0aWFsX3JlbTsKIAkJc2tiMiA9IGFsbG9jX3NrYihsZW4sIEdGUF9BVE9NSUMpOwogCQlpZiAoIXNrYjIpCkBAIC0yNjEsNyAmIzQzOzI2OCw3IEBAIHN0YXRpYyBpbnQgY3g4MjMxMF9yeF9maXh1cChzdHJ1Y3QgdXNibmV0ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpCiAJCW1lbWNweShza2IyLSZndDtkYXRhICYjNDM7IGRldi0mZ3Q7cGFydGlhbF9sZW4sIHNrYi0mZ3Q7ZGF0YSwKIAkJICAgICAgIGRldi0mZ3Q7cGFydGlhbF9yZW0pOwogCQl1c2JuZXRfc2tiX3JldHVybihkZXYsIHNrYjIpOwotCQlza2JfcHVsbChza2IsIChkZXYtJmd0O3BhcnRpYWxfcmVtICYjNDM7IDEpICZhbXA7IH4xKTsKJiM0MzsJCXNrYl9wdWxsKHNrYiwgcHVsbF9sZW4pOwogCQlkZXYtJmd0O3BhcnRpYWxfcmVtID0gMDsKIAkJaWYgKHNrYi0mZ3Q7bGVuICZsdDsgMikKIAkJCXJldHVybiAxOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAwOToxODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjE2CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMTY2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFVTQiBOZXR3b3JrIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYSBwYXRjaCBmb3IgYGRyaXZlcnMvbmV0L3VzYi9jeDgyMzEwX2V0aC5jYC4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBzZWVtcyB0byBiZSBpbiBgY3g4MjMxMF9yeF9maXh1cGAsIHNwZWNpZmljYWxseSB0aGlzIGNoZWNrOgoKYGBgYwoJCXB1bGxfbGVuID0gKGRldi0mZ3Q7cGFydGlhbF9yZW0gJiM0MzsgMSkgJmFtcDsgfjE7CgkJaWYgKHNrYi0mZ3Q7bGVuICZsdDsgcHVsbF9sZW4pIHsKCQkJZGV2LSZndDtwYXJ0aWFsX2xlbiA9IDA7CgkJCWRldi0mZ3Q7cGFydGlhbF9yZW0gPSAwOwoJCQlyZXR1cm4gMDsKCQl9CmBgYAoKVGhpcyBpcyBhIHByZXR0eSBmb2N1c2VkIGNoYW5nZTsgaXQgbG9va3MgbGlrZSB3ZSYjMzk7cmUgaGFuZGxpbmcgc29tZSBraW5kIG9mIHBhcnRpYWwgb3IgZnJhZ21lbnRlZCByZWNlaXZlIGJ1ZmZlci4gVGhlIGNvZGUmIzM5O3MgbG9naWMgaXMgZGVzaWduZWQgdG8gdmFsaWRhdGUgdGhlIGxlbmd0aCBvZiB0aGUgcmVjZWl2ZWQgYnVmZmVyIChgc2tiLSZndDtsZW5gKSBhZ2FpbnN0IHNvbWUgY2FsY3VsYXRlZCBgcHVsbF9sZW5gLCB3aGljaCBhcHBlYXJzIHRvIGJlIHJlbGF0ZWQgdG8gYGRldi0mZ3Q7cGFydGlhbF9yZW1gLiBJZiB0aGUgcmVjZWl2ZSBidWZmZXIgaXMgdG9vIHNob3J0LCB3ZSByZXNldCBzb21lIGludGVybmFsIHN0YXRlIHZhcmlhYmxlcywgYGRldi0mZ3Q7cGFydGlhbF9sZW5gIGFuZCBgZGV2LSZndDtwYXJ0aWFsX3JlbWAsIGFuZCByZXR1cm4uIFRoaXMgc2VlbXMgbGlrZSBhIHBvdGVudGlhbCBmaXggZm9yIGEgc3BlY2lmaWMgZWRnZSBjYXNlLgoKR2l2ZW4gaXQmIzM5O3MgaW4gYSBVU0IgbmV0d29yayBkcml2ZXIsIGZ1enppbmcgdGhpcyBhcmVhIHdpdGggYSBVU0IgZ2FkZ2V0IG9yIGEgZHVtbXkgSENEIGlzIGRlZmluaXRlbHkgc29tZXRoaW5nIEkgd2FudCB0byBrZWVwIGluIG1pbmQuIFdlIG1pZ2h0IGJlIGFibGUgdG8gdHJpZ2dlciB0aGlzIGNvbmRpdGlvbiB3aXRoIHNwZWNpZmljYWxseSBjcmFmdGVkIFVTQiBwYWNrZXRzLiBMZXQgbWUganVzdCBxdWlja2x5IGNoZWNrIHRoZSBLY29uZmlnIHRvIHNlZSB3aGF0IGRlcGVuZGVuY2llcyBvciBjb25maWd1cmFiaWxpdHkgb3B0aW9ucyBhcmUgYXQgcGxheSBmb3IgYGN4ODIzMTBfZXRoLmNgLiBVbmRlcnN0YW5kaW5nIHRoZSBidWlsZCBjb25maWd1cmF0aW9uIHdpbGwgaGVscCBkZXRlcm1pbmUgdGhlIGNvbnRleHQgb2YgdGhpcyBkcml2ZXIgYW5kIHBvdGVudGlhbCBhcmVhcyB0byBleHBsb2l0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA1IDA5OjE4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2N4ODIzMTBfZXRoJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvdXNiLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC91c2IvTWFrZWZpbGU9MzU9b2JqLSQoQ09ORklHX1VTQl9TSUVSUkFfTkVUKVx0JiM0Mzs9IHNpZXJyYV9uZXQub1xuZHJpdmVycy9uZXQvdXNiL01ha2VmaWxlOjM2Om9iai0kKENPTkZJR19VU0JfTkVUX0NYODIzMTBfRVRIKVx0JiM0Mzs9IGN4ODIzMTBfZXRoLm9cbmRyaXZlcnMvbmV0L3VzYi9NYWtlZmlsZS0zNy1vYmotJChDT05GSUdfVVNCX05FVF9DRENfTkNNKVx0JiM0Mzs9IGNkY19uY20ub1xuLS1cbmRyaXZlcnMvbmV0L3VzYi9jeDgyMzEwX2V0aC5jPTM2OD1zdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgY3g4MjMxMF9kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC91c2IvY3g4MjMxMF9ldGguYzozNjk6XHQubmFtZVx0XHQ9IFwmIzM0O2N4ODIzMTBfZXRoXCYjMzQ7LFxuZHJpdmVycy9uZXQvdXNiL2N4ODIzMTBfZXRoLmMtMzcwLVx0LmlkX3RhYmxlXHQ9IHByb2R1Y3RzLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA1IDA5OjE4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI5ODgKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAzNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqQW5hbHl6aW5nIGEgVVNCIE5ldHdvcmsgQ29uZmlndXJhdGlvbioqCgpBbHJpZ2h0LCB0aGUgY29uZmlndXJhdGlvbiBpbiBxdWVzdGlvbiBpcyBgVVNCX05FVF9DWDgyMzEwX0VUSGAuIE15IGZpcnN0IGluc3RpbmN0IGlzIHRvIGltbWVkaWF0ZWx5IGp1bXAgdG8gdGhlIEtjb25maWcgZmlsZSBmb3IgdGhhdCBkcml2ZXIuIFNwZWNpZmljYWxseSwgSSYjMzk7bSB0aGlua2luZyBhYm91dCB0aGUgc3RhbmRhcmQgbG9jYXRpb24sIGBkcml2ZXJzL25ldC91c2IvS2NvbmZpZ2AuIFRoYXQmIzM5O3Mgd2hlcmUgSSBuZWVkIHRvIGJlLiBJIHdhbnQgdG8gcXVpY2tseSBldmFsdWF0ZSB0aGlzIGNvbmZpZyYjMzk7cyBkZXBlbmRlbmNpZXMgYW5kIHVuZGVyc3RhbmQgdGhlIGJ1aWxkIGltcGxpY2F0aW9ucy4gSSBuZWVkIHRvIGtub3c6IHdoYXQgb3RoZXIga2VybmVsIGZlYXR1cmVzIGFyZSByZXF1aXJlZD8gQXJlIHRoZXJlIGFueSBjb25mbGljdGluZyBvcHRpb25zPyBJcyB0aGlzIGxpa2VseSBhIHN0YW5kYWxvbmUgZHJpdmVyLCBvciB0aWVkIHRvIHNvbWUgYnJvYWRlciBVU0IgbmV0d29ya2luZyBpbmZyYXN0cnVjdHVyZT8gR290dGEgZHJpbGwgZG93biBpbnRvIHRoZSBkZXBlbmRlbmNpZXMgYW5kIG1ha2Ugc3VyZSBldmVyeXRoaW5nIGlzIGluIHBsYWNlIHRvIHByb3Blcmx5IGJ1aWxkIGFuZCBpbnRlZ3JhdGUgdGhpcyBwYXJ0aWN1bGFyIFVTQiBuZXR3b3JrIGludGVyZmFjZS4gSXQmIzM5O3MgYSBmdW5kYW1lbnRhbCBwYXJ0IG9mIGFuYWx5emluZyBhIG5ldyBkZXZpY2UmIzM5O3MgZHJpdmVycy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAwOToxODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtVU0JfTkVUX0NYODIzMTBfRVRIJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvdXNiLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC91c2IvS2NvbmZpZz00OTQ9Y29uZmlnIFVTQl9ORVRfWkFVUlVTXG4tLVxuZHJpdmVycy9uZXQvdXNiL0tjb25maWctNTExLVxuZHJpdmVycy9uZXQvdXNiL0tjb25maWc6NTEyOmNvbmZpZyBVU0JfTkVUX0NYODIzMTBfRVRIXG5kcml2ZXJzL25ldC91c2IvS2NvbmZpZy01MTMtXHR0cmlzdGF0ZSBcJiMzNDtDb25leGFudCBDWDgyMzEwIFVTQiBldGhlcm5ldCBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvdXNiL01ha2VmaWxlPTM1PW9iai0kKENPTkZJR19VU0JfU0lFUlJBX05FVClcdCYjNDM7PSBzaWVycmFfbmV0Lm9cbmRyaXZlcnMvbmV0L3VzYi9NYWtlZmlsZTozNjpvYmotJChDT05GSUdfVVNCX05FVF9DWDgyMzEwX0VUSClcdCYjNDM7PSBjeDgyMzEwX2V0aC5vXG5kcml2ZXJzL25ldC91c2IvTWFrZWZpbGUtMzctb2JqLSQoQ09ORklHX1VTQl9ORVRfQ0RDX05DTSlcdCYjNDM7PSBjZGNfbmNtLm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAwOToxODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNDY1CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzOgoKKipEaXZpbmcgaW50byB0aGUgVVNCIE5ldHdvcmtpbmcgS2NvbmZpZyoqCgpPa2F5LCB0aW1lIHRvIGdldCBteSBoYW5kcyBkaXJ0eS4gSSBuZWVkIHRvIGludmVzdGlnYXRlIHNvbWV0aGluZyByZWxhdGVkIHRvIFVTQiBuZXR3b3JraW5nLCBhbmQgbXkgZ3V0IGZlZWxpbmcgdGVsbHMgbWUgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBtaWdodCBiZSB0aGUga2V5LiBMZXQmIzM5O3Mgc3RhcnQgd2l0aCB0aGUgYGRyaXZlcnMvbmV0L3VzYi9LY29uZmlnYCBmaWxlLiBJJiMzOTttIHNwZWNpZmljYWxseSBhaW1pbmcgYXJvdW5kIGxpbmUgNTEyLCB3aGljaCBpcyBhIGZhaXJseSBzdGFuZGFyZCBsb2NhdGlvbiBmb3IgY29yZSBjb25maWd1cmF0aW9ucyBpbiBhIGtlcm5lbCBLY29uZmlnIGZpbGUuIEkmIzM5O20gZXhwZWN0aW5nIHRvIGZpbmQgc29tZSBjcnVjaWFsIHNldHRpbmdzIG9yIGRlcGVuZGVuY2llcyByZWxhdGVkIHRvIFVTQiBuZXR3b3JrIGRldmljZSBkcml2ZXJzLiBNYXliZSBJJiMzOTtsbCBmaW5kIHRoZSBhbnN3ZXIgdGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMDk6MTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC91c2IvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDUwMCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAzMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgNTAwOlx0XHRoZWxwXG4gNTAxOlx0XHQgIENob29zZSB0aGlzIG9wdGlvbiB0byBzdXBwb3J0IHRoZSB1c2IgbmV0d29ya2luZyBsaW5rcyB1c2VkIGJ5XG4gNTAyOlx0XHQgIFphdXJ1cyBtb2RlbHMgbGlrZSB0aGUgU0wtNTAwMEQsIFNMLTU1MDAsIFNMLTU2MDAsIEEtMzAwLCBCLTUwMC5cbiA1MDM6XHRcdCAgVGhpcyBhbHNvIHN1cHBvcnRzIHNvbWUgcmVsYXRlZCBkZXZpY2UgZmlybXdhcmUsIGFzIHVzZWQgaW4gc29tZVxuIDUwNDpcdFx0ICBQREFzIGZyb20gT2x5bXB1cyBhbmQgc29tZSBjZWxsIHBob25lcyBmcm9tIE1vdG9yb2xhLlxuIDUwNTpcdFxuIDUwNjpcdFx0ICBJZiB5b3UgaW5zdGFsbCBhbiBhbHRlcm5hdGUgaW1hZ2UsIHN1Y2ggYXMgdGhlIExpbnV4IDIuNiBiYXNlZFxuIDUwNzpcdFx0ICB2ZXJzaW9ucyBvZiBPcGVuWmF1cnVzLCB5b3Ugc2hvdWxkIG5vIGxvbmdlciBuZWVkIHRvIHN1cHBvcnQgdGhpc1xuIDUwODpcdFx0ICBwcm90b2NvbC4gIE9ubHkgdGhlIFwmIzM0O2V0aC1mZFwmIzM0OyBvciBcJiMzNDtuZXRfZmRcJiMzNDsgZHJpdmVycyBpbiB0aGVzZSBkZXZpY2VzXG4gNTA5Olx0XHQgIHJlYWxseSBuZWVkIHRoaXMgbm9uLWNvbmZvcm1hbnQgdmFyaWFudCBvZiBDREMgRXRoZXJuZXQgKG9yIGluXG4gNTEwOlx0XHQgIHNvbWUgY2FzZXMgQ0RDIE1ETE0pIHByb3RvY29sLCBub3QgXCYjMzQ7Z19ldGhlclwmIzM0Oy5cbiA1MTE6XHRcbiA1MTI6XHRjb25maWcgVVNCX05FVF9DWDgyMzEwX0VUSFxuIDUxMzpcdFx0dHJpc3RhdGUgXCYjMzQ7Q29uZXhhbnQgQ1g4MjMxMCBVU0IgZXRoZXJuZXQgcG9ydFwmIzM0O1xuIDUxNDpcdFx0ZGVwZW5kcyBvbiBVU0JfVVNCTkVUXG4gNTE1Olx0XHRoZWxwXG4gNTE2Olx0XHQgIENob29zZSB0aGlzIG9wdGlvbiBpZiB5b3UmIzM5O3JlIHVzaW5nIGEgQ29uZXhhbnQgQ1g4MjMxMC1iYXNlZCBBRFNMXG4gNTE3Olx0XHQgIHJvdXRlciB3aXRoIFVTQiBldGhlcm5ldCBwb3J0LiBUaGlzIGRyaXZlciBpcyBmb3Igcm91dGVycyBvbmx5LFxuIDUxODpcdFx0ICBpdCB3aWxsIG5vdCB3b3JrIHdpdGggQURTTCBtb2RlbXMgKHVzZSBjeGFjcnUgZHJpdmVyIGluc3RlYWQpLlxuIDUxOTpcdFxuIDUyMDpcdGNvbmZpZyBVU0JfTkVUX0tBTE1JQVxuIDUyMTpcdFx0dHJpc3RhdGUgXCYjMzQ7U2Ftc3VuZyBLYWxtaWEgYmFzZWQgTFRFIFVTQiBtb2RlbVwmIzM0O1xuIDUyMjpcdFx0ZGVwZW5kcyBvbiBVU0JfVVNCTkVUXG4gNTIzOlx0XHRoZWxwXG4gNTI0Olx0XHQgIENob29zZSB0aGlzIG9wdGlvbiBpZiB5b3UgaGF2ZSBhIFNhbXN1bmcgS2FsbWlhIGJhc2VkIFVTQiBtb2RlbVxuIDUyNTpcdFx0ICBhcyBTYW1zdW5nIEdULUIzNzMwLlxuIDUyNjpcdFxuIDUyNzpcdFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGVcbiA1Mjg6XHRcdCAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIGthbG1pYS5cbiA1Mjk6XHRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAwOToxODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MjAzCgkJCQkJCQlvdXRwdXQ6IDQ3CgkJCQkJCQl0aG91Z2h0czogOTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBNb2RpZmljYXRpb24gZm9yIEZ1enppbmcgUG90ZW50aWFsKioKCk9rYXksIHNvIHRoZSBjaGFuZ2UgSSBuZWVkIHRvIGludmVzdGlnYXRlIGlzIHdpdGhpbiB0aGUgYGN4ODIzMTBfcnhfZml4dXBgIGZ1bmN0aW9uLCBzcGVjaWZpY2FsbHkgd2l0aGluIHRoZSBgVVNCX05FVF9DWDgyMzEwX0VUSGAgY29uZmlndXJhdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIHByZXR0eSBzdGFuZGFyZCBtb2RpZmljYXRpb24gaW4gYSBVU0IgbmV0d29yayBkcml2ZXIuIFRoYXQmIzM5O3MgZ29vZCwgdGhhdCBnaXZlcyBtZSBhIGNsZWFyIGRpcmVjdGlvbiB0byBwdXJzdWUgZnV6emluZy4gSSBjYW4gdGFyZ2V0IGl0IHVzaW5nIGVpdGhlciBhIFVTQiBnYWRnZXQgc2V0dXAgb3IgYSBkdW1teSBIQ0QsIGRlcGVuZGluZyBvbiB0aGUgbW9zdCBlZmZlY3RpdmUgYXBwcm9hY2ggZm9yIHRoaXMgc3BlY2lmaWMgZHJpdmVyLiBHaXZlbiB0aGlzIGluZm9ybWF0aW9uLCBgY3g4MjMxMF9yeF9maXh1cGAgd2lsbCBiZSBteSBwcmltYXJ5IGZvY3VzIHN5bWJvbC4gSG93ZXZlciwgaXQmIzM5O3MgYWx3YXlzIHdpc2UgdG8gYmUgdGhvcm91Z2guIEkgc2hvdWxkIHBlcmZvcm0gYSBxdWljayBjaGVjayB0byBzZWUgaWYgdGhpcyBjaGFuZ2UgdG91Y2hlcyBhbnkgcmVsYXRlZCBmdW5jdGlvbnMuIExldCYjMzk7cyBtYWtlIHN1cmUgSSYjMzk7bSBub3QgbWlzc2luZyBhbnkgb3RoZXIgcmVsZXZhbnQgcGllY2VzIG9mIHRoZSBwdXp6bGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA1IDA5OjE4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2N4ODIzMTBfcnhfZml4dXAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC91c2IvY3g4MjMxMF9ldGguYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC91c2IvY3g4MjMxMF9ldGguYz0yMjY9c3RhdGljIHZvaWQgY3g4MjMxMF91bmJpbmQoc3RydWN0IHVzYm5ldCAqZGV2LCBzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50Zilcbi0tXG5kcml2ZXJzL25ldC91c2IvY3g4MjMxMF9ldGguYy0yNDItICovXG5kcml2ZXJzL25ldC91c2IvY3g4MjMxMF9ldGguYzoyNDM6c3RhdGljIGludCBjeDgyMzEwX3J4X2ZpeHVwKHN0cnVjdCB1c2JuZXQgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbmRyaXZlcnMvbmV0L3VzYi9jeDgyMzEwX2V0aC5jLTI0NC17XG4tLVxuZHJpdmVycy9uZXQvdXNiL2N4ODIzMTBfZXRoLmM9MzQxPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJpdmVyX2luZm9cdGN4ODIzMTBfaW5mbyA9IHtcbi0tXG5kcml2ZXJzL25ldC91c2IvY3g4MjMxMF9ldGguYy0zNDUtXHQudW5iaW5kXHRcdD0gY3g4MjMxMF91bmJpbmQsXG5kcml2ZXJzL25ldC91c2IvY3g4MjMxMF9ldGguYzozNDY6XHQucnhfZml4dXBcdD0gY3g4MjMxMF9yeF9maXh1cCxcbmRyaXZlcnMvbmV0L3VzYi9jeDgyMzEwX2V0aC5jLTM0Ny1cdC50eF9maXh1cFx0PSBjeDgyMzEwX3R4X2ZpeHVwLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAwOToxODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0ODQ5CgkJCQkJCQlvdXRwdXQ6IDEzMgoJCQkJCQkJdGhvdWdodHM6IDE1MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgQ1g4MjMxMCBFdGhlcm5ldCBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gbG9va2luZyBhdCB0aGlzIHBhdGNoLCBpdCBzZWVtcyB0aGUgb25seSBmdW5jdGlvbiB0b3VjaGVkIGlzIGBjeDgyMzEwX3J4X2ZpeHVwYC4gVGhhdCBpbW1lZGlhdGVseSBuYXJyb3dzIGRvd24gdGhlIHNjb3BlIG9mIG15IGludmVzdGlnYXRpb24sIHdoaWNoIGlzIGhlbHBmdWwuIFRoZSBjb25maWdzIGludm9sdmVkIGFyZSBgVVNCX05FVF9DWDgyMzEwX0VUSGAsIGFuZCB0aGUga2V5IHN5bWJvbCB0byBmb2N1cyBvbiBpcywgdW5zdXJwcmlzaW5nbHksIGBjeDgyMzEwX3J4X2ZpeHVwYC4KCkZyb20gd2hhdCBJIGNhbiBnYXRoZXIsIHRoZSBmaXggYWRkcmVzc2VzIGEgcG90ZW50aWFsIG91dC1vZi1ib3VuZHMgcmVhZCB3aXRoaW4gdGhlIGBjeDgyMzEwX2V0aGAgVVNCIG5ldHdvcmsgZHJpdmVyLiBUaGUgdnVsbmVyYWJpbGl0eSBsaWVzIGluIGBjeDgyMzEwX3J4X2ZpeHVwYCwgc3BlY2lmaWNhbGx5IGJlZm9yZSB0aGUgYHNrYl9wdWxsYCBjYWxsLiBUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIGNoZWNrIHRvIGVuc3VyZSBgc2tiLSZndDtsZW5gICh0aGUgc2l6ZSBvZiB0aGUgcmVjZWl2ZWQgYnVmZmVyKSBpcyBhdCBsZWFzdCBhcyBsYXJnZSBhcyBgcHVsbF9sZW5gIGJlZm9yZSBleGVjdXRpbmcgdGhlIGBza2JfcHVsbGAgb3BlcmF0aW9uLiBUaGlzIGlzIGEgY2xhc3NpYyBidWZmZXItc2l6ZSB2YWxpZGF0aW9uIGlzc3VlLCB3aGljaCBpcyBnb29kIHRvIHNlZSBhZGRyZXNzZWQuCgpGcm9tIGEgdGVzdGluZyBwZXJzcGVjdGl2ZSwgdGhlIGZhY3QgdGhhdCB0aGlzIGlzIGEgVVNCIGRyaXZlciBpcyBzaWduaWZpY2FudC4gSXQgc3VnZ2VzdHMgdGhlIHZ1bG5lcmFiaWxpdHkgYW5kIHRoZSBmaXggYXJlIHN1c2NlcHRpYmxlIHRvIGZ1enppbmcgdmlhIFVTQiBlbXVsYXRpb24uIEnigJlsbCBtYWtlIGEgbm90ZSBvZiB0aGlzIHRvIHN1Z2dlc3QgZnV6emluZyB0aGlzIGZ1bmN0aW9uIHdpdGhpbiBhIFVTQiB0ZXN0aW5nIGZyYW1ld29yay4KCkFscmlnaHQsIHRoYXQmIzM5O3MgZW5vdWdoIGZvciBteSBpbml0aWFsIGFzc2Vzc21lbnQuIEkmIzM5O20gZ29pbmcgdG8gbG9nIHRoZXNlIGZpbmRpbmdzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAwOToxODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VVNCX05FVF9DWDgyMzEwX0VUSCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2N4ODIzMTBfcnhfZml4dXAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYW4gb3V0LW9mLWJvdW5kcyByZWFkIGluIGN4ODIzMTBfcnhfZml4dXAgaW4gdGhlIGN4ODIzMTBfZXRoIFVTQiBuZXR3b3JrIGRyaXZlciBieSBjaGVja2luZyBpZiBza2ItXHUwMDNlbGVuIGlzIGF0IGxlYXN0IHB1bGxfbGVuIGJlZm9yZSBjYWxsaW5nIHNrYl9wdWxsLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSBVU0IgZHJpdmVyIHRoYXQgY2FuIGJlIGZ1enplZCB2aWEgVVNCIGVtdWxhdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VVNCX05FVF9DWDgyMzEwX0VUSCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2N4ODIzMTBfcnhfZml4dXAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYW4gb3V0LW9mLWJvdW5kcyByZWFkIGluIGN4ODIzMTBfcnhfZml4dXAgaW4gdGhlIGN4ODIzMTBfZXRoIFVTQiBuZXR3b3JrIGRyaXZlciBieSBjaGVja2luZyBpZiBza2ItXHUwMDNlbGVuIGlzIGF0IGxlYXN0IHB1bGxfbGVuIGJlZm9yZSBjYWxsaW5nIHNrYl9wdWxsLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSBVU0IgZHJpdmVyIHRoYXQgY2FuIGJlIGZ1enplZCB2aWEgVVNCIGVtdWxhdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDA5OjE4OjA5LjA5Mzk3MzE1N1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxMTc4ODY3NjUzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlVTQl9ORVRfQ1g4MjMxMF9FVEhcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjeDgyMzEwX3J4X2ZpeHVwXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYW4gb3V0LW9mLWJvdW5kcyByZWFkIGluIGN4ODIzMTBfcnhfZml4dXAgaW4gdGhlIGN4ODIzMTBfZXRoIFVTQiBuZXR3b3JrIGRyaXZlciBieSBjaGVja2luZyBpZiBza2ItXFx1MDAzZWxlbiBpcyBhdCBsZWFzdCBwdWxsX2xlbiBiZWZvcmUgY2FsbGluZyBza2JfcHVsbC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgVVNCIGRyaXZlciB0aGF0IGNhbiBiZSBmdXp6ZWQgdmlhIFVTQiBlbXVsYXRpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDA5OjE4OjA5LjA5Mzk3ODU3N1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzM5NTYwOTA4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNjM0MjdmNDY5Y2I4ZGQwYzc1YmI4YmM3OWM3MjQ4YzU0ZmI3MDU1NVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU3VuIEp1bCA1IDA5OjE4OjA4IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3VzYi9jeDgyMzEwX2V0aC5jIGIvZHJpdmVycy9uZXQvdXNiL2N4ODIzMTBfZXRoLmNcXG5pbmRleCAwNjhhY2IwNTJhZGIwNS4uMjdiYzM1Mjk4NjY0MDIgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvdXNiL2N4ODIzMTBfZXRoLmNcXG4rKysgYi9kcml2ZXJzL25ldC91c2IvY3g4MjMxMF9ldGguY1xcbkBAIC0yNDIsNyArMjQyLDcgQEAgc3RhdGljIHZvaWQgY3g4MjMxMF91bmJpbmQoc3RydWN0IHVzYm5ldCAqZGV2LCBzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZilcXG4gICovXFxuIHN0YXRpYyBpbnQgY3g4MjMxMF9yeF9maXh1cChzdHJ1Y3QgdXNibmV0ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpXFxuIHtcXG4tXFx0aW50IGxlbjtcXG4rXFx0aW50IGxlbiwgcHVsbF9sZW47XFxuIFxcdHN0cnVjdCBza19idWZmICpza2IyO1xcbiBcXHRzdHJ1Y3QgY3g4MjMxMF9wcml2ICpwcml2ID0gZGV2LVxcdTAwM2Vkcml2ZXJfcHJpdjtcXG4gXFxuQEAgLTI1MSw2ICsyNTEsMTMgQEAgc3RhdGljIGludCBjeDgyMzEwX3J4X2ZpeHVwKHN0cnVjdCB1c2JuZXQgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4gXFx0ICogZW5kIG9mIHRoYXQgcGFja2V0IGF0IHRoZSBiZWdpbm5pbmcuXFxuIFxcdCAqL1xcbiBcXHRpZiAoZGV2LVxcdTAwM2VwYXJ0aWFsX3JlbSkge1xcbitcXHRcXHRwdWxsX2xlbiA9IChkZXYtXFx1MDAzZXBhcnRpYWxfcmVtICsgMSkgXFx1MDAyNiB+MTtcXG4rXFx0XFx0aWYgKHNrYi1cXHUwMDNlbGVuIFxcdTAwM2MgcHVsbF9sZW4pIHtcXG4rXFx0XFx0XFx0ZGV2LVxcdTAwM2VwYXJ0aWFsX2xlbiA9IDA7XFxuK1xcdFxcdFxcdGRldi1cXHUwMDNlcGFydGlhbF9yZW0gPSAwO1xcbitcXHRcXHRcXHRyZXR1cm4gMDtcXG4rXFx0XFx0fVxcbitcXG4gXFx0XFx0bGVuID0gZGV2LVxcdTAwM2VwYXJ0aWFsX2xlbiArIGRldi1cXHUwMDNlcGFydGlhbF9yZW07XFxuIFxcdFxcdHNrYjIgPSBhbGxvY19za2IobGVuLCBHRlBfQVRPTUlDKTtcXG4gXFx0XFx0aWYgKCFza2IyKVxcbkBAIC0yNjEsNyArMjY4LDcgQEAgc3RhdGljIGludCBjeDgyMzEwX3J4X2ZpeHVwKHN0cnVjdCB1c2JuZXQgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4gXFx0XFx0bWVtY3B5KHNrYjItXFx1MDAzZWRhdGEgKyBkZXYtXFx1MDAzZXBhcnRpYWxfbGVuLCBza2ItXFx1MDAzZWRhdGEsXFxuIFxcdFxcdCAgICAgICBkZXYtXFx1MDAzZXBhcnRpYWxfcmVtKTtcXG4gXFx0XFx0dXNibmV0X3NrYl9yZXR1cm4oZGV2LCBza2IyKTtcXG4tXFx0XFx0c2tiX3B1bGwoc2tiLCAoZGV2LVxcdTAwM2VwYXJ0aWFsX3JlbSArIDEpIFxcdTAwMjYgfjEpO1xcbitcXHRcXHRza2JfcHVsbChza2IsIHB1bGxfbGVuKTtcXG4gXFx0XFx0ZGV2LVxcdTAwM2VwYXJ0aWFsX3JlbSA9IDA7XFxuIFxcdFxcdGlmIChza2ItXFx1MDAzZWxlbiBcXHUwMDNjIDIpXFxuIFxcdFxcdFxcdHJldHVybiAxO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQwOToxODowOS40MzQzNjQ4NzRaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjIwODM4NDYzMjI1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlVTQl9ORVRfQ1g4MjMxMF9FVEhcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjeDgyMzEwX3J4X2ZpeHVwXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYW4gb3V0LW9mLWJvdW5kcyByZWFkIGluIGN4ODIzMTBfcnhfZml4dXAgaW4gdGhlIGN4ODIzMTBfZXRoIFVTQiBuZXR3b3JrIGRyaXZlciBieSBjaGVja2luZyBpZiBza2ItXFx1MDAzZWxlbiBpcyBhdCBsZWFzdCBwdWxsX2xlbiBiZWZvcmUgY2FsbGluZyBza2JfcHVsbC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgVVNCIGRyaXZlciB0aGF0IGNhbiBiZSBmdXp6ZWQgdmlhIFVTQiBlbXVsYXRpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNjM0MjdmNDY5Y2I4ZGQwYzc1YmI4YmM3OWM3MjQ4YzU0ZmI3MDU1NVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gSnVsIDUgMDk6MTg6MDggMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC91c2IvY3g4MjMxMF9ldGguYyBiL2RyaXZlcnMvbmV0L3VzYi9jeDgyMzEwX2V0aC5jXG5pbmRleCAwNjhhY2IwNTJhZGIwNS4uMjdiYzM1Mjk4NjY0MDIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC91c2IvY3g4MjMxMF9ldGguY1xuKysrIGIvZHJpdmVycy9uZXQvdXNiL2N4ODIzMTBfZXRoLmNcbkBAIC0yNDIsNyArMjQyLDcgQEAgc3RhdGljIHZvaWQgY3g4MjMxMF91bmJpbmQoc3RydWN0IHVzYm5ldCAqZGV2LCBzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZilcbiAgKi9cbiBzdGF0aWMgaW50IGN4ODIzMTBfcnhfZml4dXAoc3RydWN0IHVzYm5ldCAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIHtcbi1cdGludCBsZW47XG4rXHRpbnQgbGVuLCBwdWxsX2xlbjtcbiBcdHN0cnVjdCBza19idWZmICpza2IyO1xuIFx0c3RydWN0IGN4ODIzMTBfcHJpdiAqcHJpdiA9IGRldi1cdTAwM2Vkcml2ZXJfcHJpdjtcbiBcbkBAIC0yNTEsNiArMjUxLDEzIEBAIHN0YXRpYyBpbnQgY3g4MjMxMF9yeF9maXh1cChzdHJ1Y3QgdXNibmV0ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpXG4gXHQgKiBlbmQgb2YgdGhhdCBwYWNrZXQgYXQgdGhlIGJlZ2lubmluZy5cbiBcdCAqL1xuIFx0aWYgKGRldi1cdTAwM2VwYXJ0aWFsX3JlbSkge1xuK1x0XHRwdWxsX2xlbiA9IChkZXYtXHUwMDNlcGFydGlhbF9yZW0gKyAxKSBcdTAwMjYgfjE7XG4rXHRcdGlmIChza2ItXHUwMDNlbGVuIFx1MDAzYyBwdWxsX2xlbikge1xuK1x0XHRcdGRldi1cdTAwM2VwYXJ0aWFsX2xlbiA9IDA7XG4rXHRcdFx0ZGV2LVx1MDAzZXBhcnRpYWxfcmVtID0gMDtcbitcdFx0XHRyZXR1cm4gMDtcbitcdFx0fVxuK1xuIFx0XHRsZW4gPSBkZXYtXHUwMDNlcGFydGlhbF9sZW4gKyBkZXYtXHUwMDNlcGFydGlhbF9yZW07XG4gXHRcdHNrYjIgPSBhbGxvY19za2IobGVuLCBHRlBfQVRPTUlDKTtcbiBcdFx0aWYgKCFza2IyKVxuQEAgLTI2MSw3ICsyNjgsNyBAQCBzdGF0aWMgaW50IGN4ODIzMTBfcnhfZml4dXAoc3RydWN0IHVzYm5ldCAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIFx0XHRtZW1jcHkoc2tiMi1cdTAwM2VkYXRhICsgZGV2LVx1MDAzZXBhcnRpYWxfbGVuLCBza2ItXHUwMDNlZGF0YSxcbiBcdFx0ICAgICAgIGRldi1cdTAwM2VwYXJ0aWFsX3JlbSk7XG4gXHRcdHVzYm5ldF9za2JfcmV0dXJuKGRldiwgc2tiMik7XG4tXHRcdHNrYl9wdWxsKHNrYiwgKGRldi1cdTAwM2VwYXJ0aWFsX3JlbSArIDEpIFx1MDAyNiB+MSk7XG4rXHRcdHNrYl9wdWxsKHNrYiwgcHVsbF9sZW4pO1xuIFx0XHRkZXYtXHUwMDNlcGFydGlhbF9yZW0gPSAwO1xuIFx0XHRpZiAoc2tiLVx1MDAzZWxlbiBcdTAwM2MgMilcbiBcdFx0XHRyZXR1cm4gMTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDA5OjE4OjA5LjQzNDM2NjEyNFoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ5MzY3NDE5MTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgVVNCIE5ldHdvcmsgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBwYXRjaCBmb3IgYGRyaXZlcnMvbmV0L3VzYi9jeDgyMzEwX2V0aC5jYC4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBzZWVtcyB0byBiZSBpbiBgY3g4MjMxMF9yeF9maXh1cGAsIHNwZWNpZmljYWxseSB0aGlzIGNoZWNrOlxuXG5gYGBjXG5cdFx0cHVsbF9sZW4gPSAoZGV2LVx1MDAzZXBhcnRpYWxfcmVtICsgMSkgXHUwMDI2IH4xO1xuXHRcdGlmIChza2ItXHUwMDNlbGVuIFx1MDAzYyBwdWxsX2xlbikge1xuXHRcdFx0ZGV2LVx1MDAzZXBhcnRpYWxfbGVuID0gMDtcblx0XHRcdGRldi1cdTAwM2VwYXJ0aWFsX3JlbSA9IDA7XG5cdFx0XHRyZXR1cm4gMDtcblx0XHR9XG5gYGBcblxuVGhpcyBpcyBhIHByZXR0eSBmb2N1c2VkIGNoYW5nZTsgaXQgbG9va3MgbGlrZSB3ZSdyZSBoYW5kbGluZyBzb21lIGtpbmQgb2YgcGFydGlhbCBvciBmcmFnbWVudGVkIHJlY2VpdmUgYnVmZmVyLiBUaGUgY29kZSdzIGxvZ2ljIGlzIGRlc2lnbmVkIHRvIHZhbGlkYXRlIHRoZSBsZW5ndGggb2YgdGhlIHJlY2VpdmVkIGJ1ZmZlciAoYHNrYi1cdTAwM2VsZW5gKSBhZ2FpbnN0IHNvbWUgY2FsY3VsYXRlZCBgcHVsbF9sZW5gLCB3aGljaCBhcHBlYXJzIHRvIGJlIHJlbGF0ZWQgdG8gYGRldi1cdTAwM2VwYXJ0aWFsX3JlbWAuIElmIHRoZSByZWNlaXZlIGJ1ZmZlciBpcyB0b28gc2hvcnQsIHdlIHJlc2V0IHNvbWUgaW50ZXJuYWwgc3RhdGUgdmFyaWFibGVzLCBgZGV2LVx1MDAzZXBhcnRpYWxfbGVuYCBhbmQgYGRldi1cdTAwM2VwYXJ0aWFsX3JlbWAsIGFuZCByZXR1cm4uIFRoaXMgc2VlbXMgbGlrZSBhIHBvdGVudGlhbCBmaXggZm9yIGEgc3BlY2lmaWMgZWRnZSBjYXNlLlxuXG5HaXZlbiBpdCdzIGluIGEgVVNCIG5ldHdvcmsgZHJpdmVyLCBmdXp6aW5nIHRoaXMgYXJlYSB3aXRoIGEgVVNCIGdhZGdldCBvciBhIGR1bW15IEhDRCBpcyBkZWZpbml0ZWx5IHNvbWV0aGluZyBJIHdhbnQgdG8ga2VlcCBpbiBtaW5kLiBXZSBtaWdodCBiZSBhYmxlIHRvIHRyaWdnZXIgdGhpcyBjb25kaXRpb24gd2l0aCBzcGVjaWZpY2FsbHkgY3JhZnRlZCBVU0IgcGFja2V0cy4gTGV0IG1lIGp1c3QgcXVpY2tseSBjaGVjayB0aGUgS2NvbmZpZyB0byBzZWUgd2hhdCBkZXBlbmRlbmNpZXMgb3IgY29uZmlndXJhYmlsaXR5IG9wdGlvbnMgYXJlIGF0IHBsYXkgZm9yIGBjeDgyMzEwX2V0aC5jYC4gVW5kZXJzdGFuZGluZyB0aGUgYnVpbGQgY29uZmlndXJhdGlvbiB3aWxsIGhlbHAgZGV0ZXJtaW5lIHRoZSBjb250ZXh0IG9mIHRoaXMgZHJpdmVyIGFuZCBwb3RlbnRpYWwgYXJlYXMgdG8gZXhwbG9pdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjIxNiwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2NiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDA5OjE4OjE0LjM3MTEwOTgzWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY0NjA4OTQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImN4ODIzMTBfZXRoXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3VzYi9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvdXNiL01ha2VmaWxlPTM1PW9iai0kKENPTkZJR19VU0JfU0lFUlJBX05FVClcXHQrPSBzaWVycmFfbmV0Lm9cXG5kcml2ZXJzL25ldC91c2IvTWFrZWZpbGU6MzY6b2JqLSQoQ09ORklHX1VTQl9ORVRfQ1g4MjMxMF9FVEgpXFx0Kz0gY3g4MjMxMF9ldGgub1xcbmRyaXZlcnMvbmV0L3VzYi9NYWtlZmlsZS0zNy1vYmotJChDT05GSUdfVVNCX05FVF9DRENfTkNNKVxcdCs9IGNkY19uY20ub1xcbi0tXFxuZHJpdmVycy9uZXQvdXNiL2N4ODIzMTBfZXRoLmM9MzY4PXN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBjeDgyMzEwX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC91c2IvY3g4MjMxMF9ldGguYzozNjk6XFx0Lm5hbWVcXHRcXHQ9IFxcXCJjeDgyMzEwX2V0aFxcXCIsXFxuZHJpdmVycy9uZXQvdXNiL2N4ODIzMTBfZXRoLmMtMzcwLVxcdC5pZF90YWJsZVxcdD0gcHJvZHVjdHMsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDA5OjE4OjE0LjQzNTcyODE0OFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMwOTA1Nzg1NDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipBbmFseXppbmcgYSBVU0IgTmV0d29yayBDb25maWd1cmF0aW9uKipcblxuQWxyaWdodCwgdGhlIGNvbmZpZ3VyYXRpb24gaW4gcXVlc3Rpb24gaXMgYFVTQl9ORVRfQ1g4MjMxMF9FVEhgLiBNeSBmaXJzdCBpbnN0aW5jdCBpcyB0byBpbW1lZGlhdGVseSBqdW1wIHRvIHRoZSBLY29uZmlnIGZpbGUgZm9yIHRoYXQgZHJpdmVyLiBTcGVjaWZpY2FsbHksIEknbSB0aGlua2luZyBhYm91dCB0aGUgc3RhbmRhcmQgbG9jYXRpb24sIGBkcml2ZXJzL25ldC91c2IvS2NvbmZpZ2AuIFRoYXQncyB3aGVyZSBJIG5lZWQgdG8gYmUuIEkgd2FudCB0byBxdWlja2x5IGV2YWx1YXRlIHRoaXMgY29uZmlnJ3MgZGVwZW5kZW5jaWVzIGFuZCB1bmRlcnN0YW5kIHRoZSBidWlsZCBpbXBsaWNhdGlvbnMuIEkgbmVlZCB0byBrbm93OiB3aGF0IG90aGVyIGtlcm5lbCBmZWF0dXJlcyBhcmUgcmVxdWlyZWQ/IEFyZSB0aGVyZSBhbnkgY29uZmxpY3Rpbmcgb3B0aW9ucz8gSXMgdGhpcyBsaWtlbHkgYSBzdGFuZGFsb25lIGRyaXZlciwgb3IgdGllZCB0byBzb21lIGJyb2FkZXIgVVNCIG5ldHdvcmtpbmcgaW5mcmFzdHJ1Y3R1cmU/IEdvdHRhIGRyaWxsIGRvd24gaW50byB0aGUgZGVwZW5kZW5jaWVzIGFuZCBtYWtlIHN1cmUgZXZlcnl0aGluZyBpcyBpbiBwbGFjZSB0byBwcm9wZXJseSBidWlsZCBhbmQgaW50ZWdyYXRlIHRoaXMgcGFydGljdWxhciBVU0IgbmV0d29yayBpbnRlcmZhY2UuIEl0J3MgYSBmdW5kYW1lbnRhbCBwYXJ0IG9mIGFuYWx5emluZyBhIG5ldyBkZXZpY2UncyBkcml2ZXJzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyOTg4LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMDk6MTg6MTcuNTI2MzA4NzAzWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU1MDU2OTQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIlVTQl9ORVRfQ1g4MjMxMF9FVEhcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvdXNiL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC91c2IvS2NvbmZpZz00OTQ9Y29uZmlnIFVTQl9ORVRfWkFVUlVTXFxuLS1cXG5kcml2ZXJzL25ldC91c2IvS2NvbmZpZy01MTEtXFxuZHJpdmVycy9uZXQvdXNiL0tjb25maWc6NTEyOmNvbmZpZyBVU0JfTkVUX0NYODIzMTBfRVRIXFxuZHJpdmVycy9uZXQvdXNiL0tjb25maWctNTEzLVxcdHRyaXN0YXRlIFxcXCJDb25leGFudCBDWDgyMzEwIFVTQiBldGhlcm5ldCBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvdXNiL01ha2VmaWxlPTM1PW9iai0kKENPTkZJR19VU0JfU0lFUlJBX05FVClcXHQrPSBzaWVycmFfbmV0Lm9cXG5kcml2ZXJzL25ldC91c2IvTWFrZWZpbGU6MzY6b2JqLSQoQ09ORklHX1VTQl9ORVRfQ1g4MjMxMF9FVEgpXFx0Kz0gY3g4MjMxMF9ldGgub1xcbmRyaXZlcnMvbmV0L3VzYi9NYWtlZmlsZS0zNy1vYmotJChDT05GSUdfVVNCX05FVF9DRENfTkNNKVxcdCs9IGNkY19uY20ub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQwOToxODoxNy41ODEzNzAxNDFaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyOTMxMzE2ODIxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBVU0IgTmV0d29ya2luZyBLY29uZmlnKipcblxuT2theSwgdGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkuIEkgbmVlZCB0byBpbnZlc3RpZ2F0ZSBzb21ldGhpbmcgcmVsYXRlZCB0byBVU0IgbmV0d29ya2luZywgYW5kIG15IGd1dCBmZWVsaW5nIHRlbGxzIG1lIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgbWlnaHQgYmUgdGhlIGtleS4gTGV0J3Mgc3RhcnQgd2l0aCB0aGUgYGRyaXZlcnMvbmV0L3VzYi9LY29uZmlnYCBmaWxlLiBJJ20gc3BlY2lmaWNhbGx5IGFpbWluZyBhcm91bmQgbGluZSA1MTIsIHdoaWNoIGlzIGEgZmFpcmx5IHN0YW5kYXJkIGxvY2F0aW9uIGZvciBjb3JlIGNvbmZpZ3VyYXRpb25zIGluIGEga2VybmVsIEtjb25maWcgZmlsZS4gSSdtIGV4cGVjdGluZyB0byBmaW5kIHNvbWUgY3J1Y2lhbCBzZXR0aW5ncyBvciBkZXBlbmRlbmNpZXMgcmVsYXRlZCB0byBVU0IgbmV0d29yayBkZXZpY2UgZHJpdmVycy4gTWF5YmUgSSdsbCBmaW5kIHRoZSBhbnN3ZXIgdGhlcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM0NjUsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQwOToxODoyMC41MTI2ODkzNzJaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5OTUxMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC91c2IvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiA1MDAsXG4gIFwiTGluZUNvdW50XCI6IDMwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiA1MDA6XFx0XFx0aGVscFxcbiA1MDE6XFx0XFx0ICBDaG9vc2UgdGhpcyBvcHRpb24gdG8gc3VwcG9ydCB0aGUgdXNiIG5ldHdvcmtpbmcgbGlua3MgdXNlZCBieVxcbiA1MDI6XFx0XFx0ICBaYXVydXMgbW9kZWxzIGxpa2UgdGhlIFNMLTUwMDBELCBTTC01NTAwLCBTTC01NjAwLCBBLTMwMCwgQi01MDAuXFxuIDUwMzpcXHRcXHQgIFRoaXMgYWxzbyBzdXBwb3J0cyBzb21lIHJlbGF0ZWQgZGV2aWNlIGZpcm13YXJlLCBhcyB1c2VkIGluIHNvbWVcXG4gNTA0OlxcdFxcdCAgUERBcyBmcm9tIE9seW1wdXMgYW5kIHNvbWUgY2VsbCBwaG9uZXMgZnJvbSBNb3Rvcm9sYS5cXG4gNTA1OlxcdFxcbiA1MDY6XFx0XFx0ICBJZiB5b3UgaW5zdGFsbCBhbiBhbHRlcm5hdGUgaW1hZ2UsIHN1Y2ggYXMgdGhlIExpbnV4IDIuNiBiYXNlZFxcbiA1MDc6XFx0XFx0ICB2ZXJzaW9ucyBvZiBPcGVuWmF1cnVzLCB5b3Ugc2hvdWxkIG5vIGxvbmdlciBuZWVkIHRvIHN1cHBvcnQgdGhpc1xcbiA1MDg6XFx0XFx0ICBwcm90b2NvbC4gIE9ubHkgdGhlIFxcXCJldGgtZmRcXFwiIG9yIFxcXCJuZXRfZmRcXFwiIGRyaXZlcnMgaW4gdGhlc2UgZGV2aWNlc1xcbiA1MDk6XFx0XFx0ICByZWFsbHkgbmVlZCB0aGlzIG5vbi1jb25mb3JtYW50IHZhcmlhbnQgb2YgQ0RDIEV0aGVybmV0IChvciBpblxcbiA1MTA6XFx0XFx0ICBzb21lIGNhc2VzIENEQyBNRExNKSBwcm90b2NvbCwgbm90IFxcXCJnX2V0aGVyXFxcIi5cXG4gNTExOlxcdFxcbiA1MTI6XFx0Y29uZmlnIFVTQl9ORVRfQ1g4MjMxMF9FVEhcXG4gNTEzOlxcdFxcdHRyaXN0YXRlIFxcXCJDb25leGFudCBDWDgyMzEwIFVTQiBldGhlcm5ldCBwb3J0XFxcIlxcbiA1MTQ6XFx0XFx0ZGVwZW5kcyBvbiBVU0JfVVNCTkVUXFxuIDUxNTpcXHRcXHRoZWxwXFxuIDUxNjpcXHRcXHQgIENob29zZSB0aGlzIG9wdGlvbiBpZiB5b3UncmUgdXNpbmcgYSBDb25leGFudCBDWDgyMzEwLWJhc2VkIEFEU0xcXG4gNTE3OlxcdFxcdCAgcm91dGVyIHdpdGggVVNCIGV0aGVybmV0IHBvcnQuIFRoaXMgZHJpdmVyIGlzIGZvciByb3V0ZXJzIG9ubHksXFxuIDUxODpcXHRcXHQgIGl0IHdpbGwgbm90IHdvcmsgd2l0aCBBRFNMIG1vZGVtcyAodXNlIGN4YWNydSBkcml2ZXIgaW5zdGVhZCkuXFxuIDUxOTpcXHRcXG4gNTIwOlxcdGNvbmZpZyBVU0JfTkVUX0tBTE1JQVxcbiA1MjE6XFx0XFx0dHJpc3RhdGUgXFxcIlNhbXN1bmcgS2FsbWlhIGJhc2VkIExURSBVU0IgbW9kZW1cXFwiXFxuIDUyMjpcXHRcXHRkZXBlbmRzIG9uIFVTQl9VU0JORVRcXG4gNTIzOlxcdFxcdGhlbHBcXG4gNTI0OlxcdFxcdCAgQ2hvb3NlIHRoaXMgb3B0aW9uIGlmIHlvdSBoYXZlIGEgU2Ftc3VuZyBLYWxtaWEgYmFzZWQgVVNCIG1vZGVtXFxuIDUyNTpcXHRcXHQgIGFzIFNhbXN1bmcgR1QtQjM3MzAuXFxuIDUyNjpcXHRcXG4gNTI3OlxcdFxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlXFxuIDUyODpcXHRcXHQgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBrYWxtaWEuXFxuIDUyOTpcXHRcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMDk6MTg6MjAuNTEyNzkwNzQyWiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzgwMTAwOTU5OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE1vZGlmaWNhdGlvbiBmb3IgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyB0aGUgY2hhbmdlIEkgbmVlZCB0byBpbnZlc3RpZ2F0ZSBpcyB3aXRoaW4gdGhlIGBjeDgyMzEwX3J4X2ZpeHVwYCBmdW5jdGlvbiwgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgYFVTQl9ORVRfQ1g4MjMxMF9FVEhgIGNvbmZpZ3VyYXRpb24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYSBwcmV0dHkgc3RhbmRhcmQgbW9kaWZpY2F0aW9uIGluIGEgVVNCIG5ldHdvcmsgZHJpdmVyLiBUaGF0J3MgZ29vZCwgdGhhdCBnaXZlcyBtZSBhIGNsZWFyIGRpcmVjdGlvbiB0byBwdXJzdWUgZnV6emluZy4gSSBjYW4gdGFyZ2V0IGl0IHVzaW5nIGVpdGhlciBhIFVTQiBnYWRnZXQgc2V0dXAgb3IgYSBkdW1teSBIQ0QsIGRlcGVuZGluZyBvbiB0aGUgbW9zdCBlZmZlY3RpdmUgYXBwcm9hY2ggZm9yIHRoaXMgc3BlY2lmaWMgZHJpdmVyLiBHaXZlbiB0aGlzIGluZm9ybWF0aW9uLCBgY3g4MjMxMF9yeF9maXh1cGAgd2lsbCBiZSBteSBwcmltYXJ5IGZvY3VzIHN5bWJvbC4gSG93ZXZlciwgaXQncyBhbHdheXMgd2lzZSB0byBiZSB0aG9yb3VnaC4gSSBzaG91bGQgcGVyZm9ybSBhIHF1aWNrIGNoZWNrIHRvIHNlZSBpZiB0aGlzIGNoYW5nZSB0b3VjaGVzIGFueSByZWxhdGVkIGZ1bmN0aW9ucy4gTGV0J3MgbWFrZSBzdXJlIEknbSBub3QgbWlzc2luZyBhbnkgb3RoZXIgcmVsZXZhbnQgcGllY2VzIG9mIHRoZSBwdXp6bGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQyMDMsIk91dHB1dFRva2VucyI6NDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5NCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDA5OjE4OjI0LjMxMzgwMjgwMVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTU0Njg0OTM0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImN4ODIzMTBfcnhfZml4dXBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvdXNiL2N4ODIzMTBfZXRoLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvdXNiL2N4ODIzMTBfZXRoLmM9MjI2PXN0YXRpYyB2b2lkIGN4ODIzMTBfdW5iaW5kKHN0cnVjdCB1c2JuZXQgKmRldiwgc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYpXFxuLS1cXG5kcml2ZXJzL25ldC91c2IvY3g4MjMxMF9ldGguYy0yNDItICovXFxuZHJpdmVycy9uZXQvdXNiL2N4ODIzMTBfZXRoLmM6MjQzOnN0YXRpYyBpbnQgY3g4MjMxMF9yeF9maXh1cChzdHJ1Y3QgdXNibmV0ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpXFxuZHJpdmVycy9uZXQvdXNiL2N4ODIzMTBfZXRoLmMtMjQ0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9jeDgyMzEwX2V0aC5jPTM0MT1zdGF0aWMgY29uc3Qgc3RydWN0IGRyaXZlcl9pbmZvXFx0Y3g4MjMxMF9pbmZvID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvdXNiL2N4ODIzMTBfZXRoLmMtMzQ1LVxcdC51bmJpbmRcXHRcXHQ9IGN4ODIzMTBfdW5iaW5kLFxcbmRyaXZlcnMvbmV0L3VzYi9jeDgyMzEwX2V0aC5jOjM0NjpcXHQucnhfZml4dXBcXHQ9IGN4ODIzMTBfcnhfZml4dXAsXFxuZHJpdmVycy9uZXQvdXNiL2N4ODIzMTBfZXRoLmMtMzQ3LVxcdC50eF9maXh1cFxcdD0gY3g4MjMxMF90eF9maXh1cCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMDk6MTg6MjQuNDY4NDkzMDQ1WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU2NjE0MjY5ODAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIENYODIzMTAgRXRoZXJuZXQgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gbG9va2luZyBhdCB0aGlzIHBhdGNoLCBpdCBzZWVtcyB0aGUgb25seSBmdW5jdGlvbiB0b3VjaGVkIGlzIGBjeDgyMzEwX3J4X2ZpeHVwYC4gVGhhdCBpbW1lZGlhdGVseSBuYXJyb3dzIGRvd24gdGhlIHNjb3BlIG9mIG15IGludmVzdGlnYXRpb24sIHdoaWNoIGlzIGhlbHBmdWwuIFRoZSBjb25maWdzIGludm9sdmVkIGFyZSBgVVNCX05FVF9DWDgyMzEwX0VUSGAsIGFuZCB0aGUga2V5IHN5bWJvbCB0byBmb2N1cyBvbiBpcywgdW5zdXJwcmlzaW5nbHksIGBjeDgyMzEwX3J4X2ZpeHVwYC5cblxuRnJvbSB3aGF0IEkgY2FuIGdhdGhlciwgdGhlIGZpeCBhZGRyZXNzZXMgYSBwb3RlbnRpYWwgb3V0LW9mLWJvdW5kcyByZWFkIHdpdGhpbiB0aGUgYGN4ODIzMTBfZXRoYCBVU0IgbmV0d29yayBkcml2ZXIuIFRoZSB2dWxuZXJhYmlsaXR5IGxpZXMgaW4gYGN4ODIzMTBfcnhfZml4dXBgLCBzcGVjaWZpY2FsbHkgYmVmb3JlIHRoZSBgc2tiX3B1bGxgIGNhbGwuIFRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgY2hlY2sgdG8gZW5zdXJlIGBza2ItXHUwMDNlbGVuYCAodGhlIHNpemUgb2YgdGhlIHJlY2VpdmVkIGJ1ZmZlcikgaXMgYXQgbGVhc3QgYXMgbGFyZ2UgYXMgYHB1bGxfbGVuYCBiZWZvcmUgZXhlY3V0aW5nIHRoZSBgc2tiX3B1bGxgIG9wZXJhdGlvbi4gVGhpcyBpcyBhIGNsYXNzaWMgYnVmZmVyLXNpemUgdmFsaWRhdGlvbiBpc3N1ZSwgd2hpY2ggaXMgZ29vZCB0byBzZWUgYWRkcmVzc2VkLlxuXG5Gcm9tIGEgdGVzdGluZyBwZXJzcGVjdGl2ZSwgdGhlIGZhY3QgdGhhdCB0aGlzIGlzIGEgVVNCIGRyaXZlciBpcyBzaWduaWZpY2FudC4gSXQgc3VnZ2VzdHMgdGhlIHZ1bG5lcmFiaWxpdHkgYW5kIHRoZSBmaXggYXJlIHN1c2NlcHRpYmxlIHRvIGZ1enppbmcgdmlhIFVTQiBlbXVsYXRpb24uIEnigJlsbCBtYWtlIGEgbm90ZSBvZiB0aGlzIHRvIHN1Z2dlc3QgZnV6emluZyB0aGlzIGZ1bmN0aW9uIHdpdGhpbiBhIFVTQiB0ZXN0aW5nIGZyYW1ld29yay5cblxuQWxyaWdodCwgdGhhdCdzIGVub3VnaCBmb3IgbXkgaW5pdGlhbCBhc3Nlc3NtZW50LiBJJ20gZ29pbmcgdG8gbG9nIHRoZXNlIGZpbmRpbmdzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0ODQ5LCJPdXRwdXRUb2tlbnMiOjEzMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQwOToxODozMC4xMjk5MjE5OTVaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDI5MDAxMTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlVTQl9ORVRfQ1g4MjMxMF9FVEhcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjeDgyMzEwX3J4X2ZpeHVwXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYW4gb3V0LW9mLWJvdW5kcyByZWFkIGluIGN4ODIzMTBfcnhfZml4dXAgaW4gdGhlIGN4ODIzMTBfZXRoIFVTQiBuZXR3b3JrIGRyaXZlciBieSBjaGVja2luZyBpZiBza2ItXFx1MDAzZWxlbiBpcyBhdCBsZWFzdCBwdWxsX2xlbiBiZWZvcmUgY2FsbGluZyBza2JfcHVsbC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgVVNCIGRyaXZlciB0aGF0IGNhbiBiZSBmdXp6ZWQgdmlhIFVTQiBlbXVsYXRpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVVNCX05FVF9DWDgyMzEwX0VUSFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImN4ODIzMTBfcnhfZml4dXBcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhbiBvdXQtb2YtYm91bmRzIHJlYWQgaW4gY3g4MjMxMF9yeF9maXh1cCBpbiB0aGUgY3g4MjMxMF9ldGggVVNCIG5ldHdvcmsgZHJpdmVyIGJ5IGNoZWNraW5nIGlmIHNrYi1cXHUwMDNlbGVuIGlzIGF0IGxlYXN0IHB1bGxfbGVuIGJlZm9yZSBjYWxsaW5nIHNrYl9wdWxsLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSBVU0IgZHJpdmVyIHRoYXQgY2FuIGJlIGZ1enplZCB2aWEgVVNCIGVtdWxhdGlvbi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowtth62[1] Phase: Succeeded StartedAt: 2026-07-05 09:22:00 +0000 UTC FinishedAt: 2026-07-05 09:22:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtth62[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-05 09:22:00 +0000 UTC FinishedAt: 2026-07-05 09:22:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtth62[2] Phase: Succeeded StartedAt: 2026-07-05 09:22:00 +0000 UTC FinishedAt: 2026-07-05 11:21:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtth62[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"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":["cx82310_rx_fixup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"series_id":"3206bc0d-3576-409d-89a3-8fcc9912476c","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-05 09:22:00 +0000 UTC FinishedAt: 2026-07-05 11:21:27 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"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":["cx82310_rx_fixup"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"series_id":"3206bc0d-3576-409d-89a3-8fcc9912476c","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-workflowtth62[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"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":["cx82310_rx_fixup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"series_id":"3206bc0d-3576-409d-89a3-8fcc9912476c","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-05 09:22:00 +0000 UTC FinishedAt: 2026-07-05 09:22:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtth62[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"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":["cx82310_rx_fixup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"series_id":"3206bc0d-3576-409d-89a3-8fcc9912476c","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-05 09:22:00 +0000 UTC FinishedAt: 2026-07-05 09:22:33 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"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-workflowtth62/series-workflowtth62-convert-artifact-70350224/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowtth62[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"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":["cx82310_rx_fixup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"series_id":"3206bc0d-3576-409d-89a3-8fcc9912476c","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-05 09:22:40 +0000 UTC FinishedAt: 2026-07-05 09:52:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtth62[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"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":["cx82310_rx_fixup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"series_id":"3206bc0d-3576-409d-89a3-8fcc9912476c","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-05 09:22:40 +0000 UTC FinishedAt: 2026-07-05 09:52:30 +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:*d489061a-85c3-40ae-8623-98c7dd93dbb1,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-workflowtth62/series-workflowtth62-convert-artifact-70350224/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": "7cb14c15-aad6-4019-9a10-89008e480a3f", "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-workflowtth62/series-workflowtth62-build-action-4208628246/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowtth62[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"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":["cx82310_rx_fixup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"series_id":"3206bc0d-3576-409d-89a3-8fcc9912476c","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-05 09:22:40 +0000 UTC FinishedAt: 2026-07-05 09:51:06 +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:*d489061a-85c3-40ae-8623-98c7dd93dbb1,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-workflowtth62/series-workflowtth62-convert-artifact-70350224/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": "7cb14c15-aad6-4019-9a10-89008e480a3f", "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-workflowtth62/series-workflowtth62-build-action-4208628246/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowtth62[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"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":["cx82310_rx_fixup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"series_id":"3206bc0d-3576-409d-89a3-8fcc9912476c","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-05 09:52:30 +0000 UTC FinishedAt: 2026-07-05 09:52:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtth62[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"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":["cx82310_rx_fixup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"series_id":"3206bc0d-3576-409d-89a3-8fcc9912476c","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-05 09:52:30 +0000 UTC FinishedAt: 2026-07-05 09:52:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtth62[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"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":["cx82310_rx_fixup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"series_id":"3206bc0d-3576-409d-89a3-8fcc9912476c","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-05 09:52:30 +0000 UTC FinishedAt: 2026-07-05 09:53:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtth62[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"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":["cx82310_rx_fixup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"series_id":"3206bc0d-3576-409d-89a3-8fcc9912476c","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-05 09:52:30 +0000 UTC FinishedAt: 2026-07-05 09:53:07 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"series_id":"3206bc0d-3576-409d-89a3-8fcc9912476c","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-workflowtth62/series-workflowtth62-convert-artifact-3275790583/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowtth62[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"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":["cx82310_rx_fixup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"series_id":"3206bc0d-3576-409d-89a3-8fcc9912476c","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-05 09:53:14 +0000 UTC FinishedAt: 2026-07-05 09:55:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtth62[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"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":["cx82310_rx_fixup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"series_id":"3206bc0d-3576-409d-89a3-8fcc9912476c","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-05 09:53:14 +0000 UTC FinishedAt: 2026-07-05 09:55:05 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*7cb14c15-aad6-4019-9a10-89008e480a3f,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-workflowtth62/series-workflowtth62-build-action-4208628246/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-workflowtth62[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"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":["cx82310_rx_fixup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"series_id":"3206bc0d-3576-409d-89a3-8fcc9912476c","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-05 09:55:15 +0000 UTC FinishedAt: 2026-07-05 09:55:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtth62[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"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":["cx82310_rx_fixup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"series_id":"3206bc0d-3576-409d-89a3-8fcc9912476c","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-05 09:55:15 +0000 UTC FinishedAt: 2026-07-05 09:55:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtth62[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"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":["cx82310_rx_fixup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"series_id":"3206bc0d-3576-409d-89a3-8fcc9912476c","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-05 09:55:15 +0000 UTC FinishedAt: 2026-07-05 10:27:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtth62[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"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":["cx82310_rx_fixup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"series_id":"3206bc0d-3576-409d-89a3-8fcc9912476c","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-05 09:55:15 +0000 UTC FinishedAt: 2026-07-05 10:27:52 +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:*d489061a-85c3-40ae-8623-98c7dd93dbb1,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-workflowtth62/series-workflowtth62-convert-artifact-3275790583/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": "12cca95a-f5ab-4c84-b208-cacac3c761f0", "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-workflowtth62/series-workflowtth62-build-action-2462673851/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowtth62[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"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":["cx82310_rx_fixup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"series_id":"3206bc0d-3576-409d-89a3-8fcc9912476c","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-05 09:55:15 +0000 UTC FinishedAt: 2026-07-05 10:27:42 +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:*d489061a-85c3-40ae-8623-98c7dd93dbb1,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-workflowtth62/series-workflowtth62-convert-artifact-3275790583/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": "12cca95a-f5ab-4c84-b208-cacac3c761f0", "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-workflowtth62/series-workflowtth62-build-action-2462673851/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowtth62[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"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":["cx82310_rx_fixup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"series_id":"3206bc0d-3576-409d-89a3-8fcc9912476c","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-05 10:27:52 +0000 UTC FinishedAt: 2026-07-05 10:27:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtth62[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"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":["cx82310_rx_fixup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"series_id":"3206bc0d-3576-409d-89a3-8fcc9912476c","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-05 10:27:52 +0000 UTC FinishedAt: 2026-07-05 10:27:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtth62[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"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":["cx82310_rx_fixup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"series_id":"3206bc0d-3576-409d-89a3-8fcc9912476c","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-05 10:27:52 +0000 UTC FinishedAt: 2026-07-05 10:29:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtth62[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"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":["cx82310_rx_fixup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"series_id":"3206bc0d-3576-409d-89a3-8fcc9912476c","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-05 10:27:52 +0000 UTC FinishedAt: 2026-07-05 10:29:43 +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:*12cca95a-f5ab-4c84-b208-cacac3c761f0,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-workflowtth62/series-workflowtth62-build-action-2462673851/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-workflowtth62[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"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":["cx82310_rx_fixup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"series_id":"3206bc0d-3576-409d-89a3-8fcc9912476c","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-05 10:29:53 +0000 UTC FinishedAt: 2026-07-05 11:21:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtth62[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"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":["cx82310_rx_fixup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"series_id":"3206bc0d-3576-409d-89a3-8fcc9912476c","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-05 10:29:53 +0000 UTC FinishedAt: 2026-07-05 11:21:27 +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":["cx82310_rx_fixup"],"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:*7cb14c15-aad6-4019-9a10-89008e480a3f,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*12cca95a-f5ab-4c84-b208-cacac3c761f0,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-workflowtth62/series-workflowtth62-build-action-4208628246/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-workflowtth62/series-workflowtth62-build-action-2462673851/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowtth62[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"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":["cx82310_rx_fixup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"series_id":"3206bc0d-3576-409d-89a3-8fcc9912476c","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-05 10:29:53 +0000 UTC FinishedAt: 2026-07-05 10:30:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtth62[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"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":["cx82310_rx_fixup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"series_id":"3206bc0d-3576-409d-89a3-8fcc9912476c","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-05 10:29:53 +0000 UTC FinishedAt: 2026-07-05 10:30:24 +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":["cx82310_rx_fixup"],"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-workflowtth62/series-workflowtth62-convert-artifact-909845808/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowtth62[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"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":["cx82310_rx_fixup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"series_id":"3206bc0d-3576-409d-89a3-8fcc9912476c","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-05 10:29:53 +0000 UTC FinishedAt: 2026-07-05 10:29:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtth62[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"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":["cx82310_rx_fixup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"series_id":"3206bc0d-3576-409d-89a3-8fcc9912476c","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-05 10:29:53 +0000 UTC FinishedAt: 2026-07-05 10:29:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtth62[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"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":["cx82310_rx_fixup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"series_id":"3206bc0d-3576-409d-89a3-8fcc9912476c","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-05 10:29:53 +0000 UTC FinishedAt: 2026-07-05 10:29:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtth62[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"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":["cx82310_rx_fixup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"series_id":"3206bc0d-3576-409d-89a3-8fcc9912476c","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-05 10:30:32 +0000 UTC FinishedAt: 2026-07-05 11:21:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtth62[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"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":["cx82310_rx_fixup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b73bc9ca3686b78b642fb35dcc1fdf874ecb74a1","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_NET_CX82310_ETH"],"series_id":"3206bc0d-3576-409d-89a3-8fcc9912476c","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-05 10:30:32 +0000 UTC FinishedAt: 2026-07-05 11:21:18 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*7cb14c15-aad6-4019-9a10-89008e480a3f,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*12cca95a-f5ab-4c84-b208-cacac3c761f0,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-workflowtth62/series-workflowtth62-build-action-4208628246/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-workflowtth62/series-workflowtth62-build-action-2462673851/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-workflowtth62/series-workflowtth62-convert-artifact-909845808/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,}