Name: series-workflow8msvf Phase: Succeeded StartedAt: 2026-06-24 10:06:00 +0000 UTC FinishedAt: 2026-06-24 12:36:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvf[0] Phase: Succeeded StartedAt: 2026-06-24 10:06:00 +0000 UTC FinishedAt: 2026-06-24 10:15:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvf[0].run-triage Phase: Succeeded StartedAt: 2026-06-24 10:06:00 +0000 UTC FinishedAt: 2026-06-24 10:15:12 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "840ef6c78e6a2f694b578ecb9063241c992aaa9e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "CARL9170" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "840ef6c78e6a2f694b578ecb9063241c992aaa9e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "CARL9170" ], "series_id": "ff1f0ea6-3a3d-441a-96e5-63f3b5d660b6" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "carl9170_cmd_callback", "carl9170_handle_command_response", "carl9170_usb_rx_irq_complete" ], "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+CgkJCTx0ZD4yMDI2LzA2LzI0IDEwOjE0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0NBUkw5MTcwJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2FybDkxNzBfY21kX2NhbGxiYWNrJiMzNDssCiAgICAmIzM0O2Nhcmw5MTcwX2hhbmRsZV9jb21tYW5kX3Jlc3BvbnNlJiMzNDssCiAgICAmIzM0O2Nhcmw5MTcwX3VzYl9yeF9pcnFfY29tcGxldGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIG1pc3NpbmcgcmV0dXJuIHN0YXRlbWVudCBpbiBjYXJsOTE3MF9jbWRfY2FsbGJhY2sgYWZ0ZXIgY2FsbGluZyBjYXJsOTE3MF9yZXN0YXJ0LCBwcmV2ZW50aW5nIGZ1cnRoZXIgZXhlY3V0aW9uIG9mIHRoZSBmdW5jdGlvbiB3aGljaCB3b3VsZCBvdGhlcndpc2UgYXR0ZW1wdCB0byBhY3F1aXJlIGEgc3BpbmxvY2sgYW5kIGNvbXBsZXRlIGEgd2FpdCBxdWV1ZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgVVNCIHdpcmVsZXNzIGRyaXZlciB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBVU0IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNCAxMDoxNDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGJlZWEyZWNjYmVjNTViNzUwZmIxYzEwNDI2MmJkZDdjNTEzY2ZjM2VcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1biAyNCAxMDoxNDozMCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvcnguYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jXG5pbmRleCA2ODMzNDMwMTMwZjRjYS4uZWEzZjQzNWZiNjRjOTkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvcnguY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL3J4LmNcbkBAIC0xNDUsNiAmIzQzOzE0NSw3IEBAIHN0YXRpYyB2b2lkIGNhcmw5MTcwX2NtZF9jYWxsYmFjayhzdHJ1Y3QgYXI5MTcwICphciwgdTMyIGxlbiwgdm9pZCAqYnVmZmVyKVxuIFx0XHQgKiBhbmQgd2UgZ2V0IGEgc3RhY2sgdHJhY2UgZnJvbSB0aGVyZS5cbiBcdFx0ICovXG4gXHRcdGNhcmw5MTcwX3Jlc3RhcnQoYXIsIENBUkw5MTcwX1JSX0lOVkFMSURfUlNQKTtcbiYjNDM7XHRcdHJldHVybjtcbiBcdH1cbiBcbiBcdHNwaW5fbG9jayhcdTAwMjZhci1cdTAwM2VjbWRfbG9jayk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjQgMTA6MTQ8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7Q0FSTDkxNzAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtjYXJsOTE3MF9jbWRfY2FsbGJhY2smIzM0OywKICAgICYjMzQ7Y2FybDkxNzBfaGFuZGxlX2NvbW1hbmRfcmVzcG9uc2UmIzM0OywKICAgICYjMzQ7Y2FybDkxNzBfdXNiX3J4X2lycV9jb21wbGV0ZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgbWlzc2luZyByZXR1cm4gc3RhdGVtZW50IGluIGNhcmw5MTcwX2NtZF9jYWxsYmFjayBhZnRlciBjYWxsaW5nIGNhcmw5MTcwX3Jlc3RhcnQsIHByZXZlbnRpbmcgZnVydGhlciBleGVjdXRpb24gb2YgdGhlIGZ1bmN0aW9uIHdoaWNoIHdvdWxkIG90aGVyd2lzZSBhdHRlbXB0IHRvIGFjcXVpcmUgYSBzcGlubG9jayBhbmQgY29tcGxldGUgYSB3YWl0IHF1ZXVlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSBVU0Igd2lyZWxlc3MgZHJpdmVyIHRoYXQgY2FuIGJlIHJlYWNoZWQgdmlhIFVTQiBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBiZWVhMmVjY2JlYzU1Yjc1MGZiMWMxMDQyNjJiZGQ3YzUxM2NmYzNlCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFdlZCBKdW4gMjQgMTA6MTQ6MzAgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvcnguYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jCmluZGV4IDY4MzM0MzAxMzBmNGNhLi5lYTNmNDM1ZmI2NGM5OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL3J4LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL3J4LmMKQEAgLTE0NSw2ICYjNDM7MTQ1LDcgQEAgc3RhdGljIHZvaWQgY2FybDkxNzBfY21kX2NhbGxiYWNrKHN0cnVjdCBhcjkxNzAgKmFyLCB1MzIgbGVuLCB2b2lkICpidWZmZXIpCiAJCSAqIGFuZCB3ZSBnZXQgYSBzdGFjayB0cmFjZSBmcm9tIHRoZXJlLgogCQkgKi8KIAkJY2FybDkxNzBfcmVzdGFydChhciwgQ0FSTDkxNzBfUlJfSU5WQUxJRF9SU1ApOwomIzQzOwkJcmV0dXJuOwogCX0KIAogCXNwaW5fbG9jaygmYW1wO2FyLSZndDtjbWRfbG9jayk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI0IDEwOjE0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4NTUKCQkJCQkJCW91dHB1dDogNDgKCQkJCQkJCXRob3VnaHRzOiAxMTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQYXRjaCB0byBgY2FybDkxNzBfY21kX2NhbGxiYWNrYCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0JiMzOTtzIGJlZW4gYXBwbGllZCwgYW5kIGl0JiMzOTtzIGEgbWlub3IgY2hhbmdlIHRvIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvcnguY2AuIFNwZWNpZmljYWxseSwgdGhleSYjMzk7dmUgYWRkZWQgYSBgcmV0dXJuO2Agc3RhdGVtZW50IGFmdGVyIHRoZSBgY2FybDkxNzBfcmVzdGFydChhciwgQ0FSTDkxNzBfUlJfSU5WQUxJRF9SU1ApO2AgY2FsbCB3aXRoaW4gdGhlIGBjYXJsOTE3MF9jbWRfY2FsbGJhY2tgIGZ1bmN0aW9uLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcmVhc29uaW5nIGJlaGluZCB0aGlzLCBiZWNhdXNlLCBhdCBmaXJzdCBnbGFuY2UsIHRoZSBjaGFuZ2Ugc2VlbXMgYSBsaXR0bGUuLi4gYWJydXB0LiBMZXQgbWUgZGlnIGludG8gdGhlIGNvbnRleHQgb2YgdGhlIGBjYXJsOTE3MF9jbWRfY2FsbGJhY2tgIGZ1bmN0aW9uIGl0c2VsZiB0byBmaWd1cmUgb3V0IHdoeSB0aGlzIGByZXR1cm5gIHdhcyBhZGRlZCBhbmQgd2hhdCBwb3RlbnRpYWwgaXNzdWVzIGl0IGFkZHJlc3Nlcy4gVW5kZXJzdGFuZGluZyB0aGUgY29udHJvbCBmbG93IGFyb3VuZCB0aGF0IGNhbGwgdG8gYGNhcmw5MTcwX3Jlc3RhcnRgIGlzIGtleSBoZXJlLiBJJiMzOTtsbCBuZWVkIHRvIHNlZSB3aGF0IGhhcHBlbnMgYWZ0ZXIgdGhhdCByZXN0YXJ0IGZ1bmN0aW9uIGV4ZWN1dGVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI0IDEwOjE0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2Nhcmw5MTcwX2NtZF9jYWxsYmFjayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jPTk2PXN0YXRpYyBpbnQgY2FybDkxNzBfY2hlY2tfc2VxdWVuY2Uoc3RydWN0IGFyOTE3MCAqYXIsIHVuc2lnbmVkIGludCBzZXEpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL3J4LmMtMTI4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL3J4LmM6MTI5OnN0YXRpYyB2b2lkIGNhcmw5MTcwX2NtZF9jYWxsYmFjayhzdHJ1Y3QgYXI5MTcwICphciwgdTMyIGxlbiwgdm9pZCAqYnVmZmVyKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL3J4LmMtMTMwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvcnguYz0xNjI9dm9pZCBjYXJsOTE3MF9oYW5kbGVfY29tbWFuZF9yZXNwb25zZShzdHJ1Y3QgYXI5MTcwICphciwgdm9pZCAqYnVmLCB1MzIgbGVuKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jLTE2OC1cdFx0aWYgKCEoY21kLVx1MDAzZWhkci5jbWQgXHUwMDI2IENBUkw5MTcwX0NNRF9BU1lOQ19GTEFHKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jOjE2OTpcdFx0XHRjYXJsOTE3MF9jbWRfY2FsbGJhY2soYXIsIGxlbiwgYnVmKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jLTE3MC1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNCAxMDoxNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTc0CgkJCQkJCQlvdXRwdXQ6IDQ2CgkJCQkJCQl0aG91Z2h0czogMzEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IG1lbnRhbCBwcm9jZXNzOgoKKipEaXZpbmcgaW50byB0aGUgQXRoZXJvcyBEcml2ZXIqKgoKT2theSwgdGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQmIzM5O3MgaGFwcGVuaW5nIGluIHRoZSBjYXJsOTE3MCB3aXJlbGVzcyBkcml2ZXIuIFNwZWNpZmljYWxseSwgSSYjMzk7bSBmb2N1c2luZyBvbiB0aGUgcmVjZWl2ZSBwYXRoLCBhbmQgSSYjMzk7bSBoZWFkaW5nIHN0cmFpZ2h0IGZvciB0aGUgYHJ4LmNgIGZpbGUuIEkmIzM5O20gZ29pbmcgdG8gc3RhcnQgbXkgaW52ZXN0aWdhdGlvbiBhcm91bmQgbGluZSAxMjkuIEkmIzM5O20gaG9waW5nIHRoYXQmIzM5O3MgYSBnb29kIGVudHJ5IHBvaW50IHRvIHNlZSBob3cgaW5jb21pbmcgd2lyZWxlc3MgZGF0YSBpcyBoYW5kbGVkLiBMaW5lIDEyOSBzaG91bGQgZ2l2ZSBhIGdvb2Qgc3RhcnQgdG8gd2hlcmUgdG8gbG9vay4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNCAxMDoxNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMTI5LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDUwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAxMjk6XHRzdGF0aWMgdm9pZCBjYXJsOTE3MF9jbWRfY2FsbGJhY2soc3RydWN0IGFyOTE3MCAqYXIsIHUzMiBsZW4sIHZvaWQgKmJ1ZmZlcilcbiAxMzA6XHR7XG4gMTMxOlx0XHQvKlxuIDEzMjpcdFx0ICogU29tZSBjb21tYW5kcyBtYXkgaGF2ZSBhIHZhcmlhYmxlIHJlc3BvbnNlIGxlbmd0aFxuIDEzMzpcdFx0ICogYW5kIHdlIGNhbm5vdCBwcmVkaWN0IHRoZSBjb3JyZWN0IGxlbmd0aCBpbiBhZHZhbmNlLlxuIDEzNDpcdFx0ICogU28gd2Ugb25seSBjaGVjayBpZiB3ZSBwcm92aWRlZCBlbm91Z2ggc3BhY2UgZm9yIHRoZSBkYXRhLlxuIDEzNTpcdFx0ICovXG4gMTM2Olx0XHRpZiAodW5saWtlbHkoYXItXHUwMDNlcmVhZGxlbiAhPSAobGVuIC0gNCkpKSB7XG4gMTM3Olx0XHRcdGRldl93YXJuKFx1MDAyNmFyLVx1MDAzZXVkZXYtXHUwMDNlZGV2LCBcJiMzNDtyZWNlaXZlZCBpbnZhbGlkIGNvbW1hbmQgcmVzcG9uc2U6XCYjMzQ7XG4gMTM4Olx0XHRcdFx0IFwmIzM0O2dvdCAlZCwgaW5zdGVhZCBvZiAlZFxcblwmIzM0OywgbGVuIC0gNCwgYXItXHUwMDNlcmVhZGxlbik7XG4gMTM5Olx0XHRcdHByaW50X2hleF9kdW1wX2J5dGVzKFwmIzM0O2Nhcmw5MTcwIGNtZDpcJiMzNDssIERVTVBfUFJFRklYX09GRlNFVCxcbiAxNDA6XHRcdFx0XHRhci1cdTAwM2VjbWRfYnVmLCAoYXItXHUwMDNlY21kLmhkci5sZW4gJiM0MzsgNCkgXHUwMDI2IDB4M2YpO1xuIDE0MTpcdFx0XHRwcmludF9oZXhfZHVtcF9ieXRlcyhcJiMzNDtjYXJsOTE3MCByc3A6XCYjMzQ7LCBEVU1QX1BSRUZJWF9PRkZTRVQsXG4gMTQyOlx0XHRcdFx0YnVmZmVyLCBsZW4pO1xuIDE0MzpcdFx0XHQvKlxuIDE0NDpcdFx0XHQgKiBEbyBub3QgY29tcGxldGUuIFRoZSBjb21tYW5kIHRpbWVzIG91dCxcbiAxNDU6XHRcdFx0ICogYW5kIHdlIGdldCBhIHN0YWNrIHRyYWNlIGZyb20gdGhlcmUuXG4gMTQ2Olx0XHRcdCAqL1xuIDE0NzpcdFx0XHRjYXJsOTE3MF9yZXN0YXJ0KGFyLCBDQVJMOTE3MF9SUl9JTlZBTElEX1JTUCk7XG4gMTQ4Olx0XHRcdHJldHVybjtcbiAxNDk6XHRcdH1cbiAxNTA6XHRcbiAxNTE6XHRcdHNwaW5fbG9jayhcdTAwMjZhci1cdTAwM2VjbWRfbG9jayk7XG4gMTUyOlx0XHRpZiAoYXItXHUwMDNlcmVhZGJ1Zikge1xuIDE1MzpcdFx0XHRpZiAobGVuIFx1MDAzZT0gNClcbiAxNTQ6XHRcdFx0XHRtZW1jcHkoYXItXHUwMDNlcmVhZGJ1ZiwgYnVmZmVyICYjNDM7IDQsIGxlbiAtIDQpO1xuIDE1NTpcdFxuIDE1NjpcdFx0XHRhci1cdTAwM2VyZWFkYnVmID0gTlVMTDtcbiAxNTc6XHRcdH1cbiAxNTg6XHRcdGNvbXBsZXRlKFx1MDAyNmFyLVx1MDAzZWNtZF93YWl0KTtcbiAxNTk6XHRcdHNwaW5fdW5sb2NrKFx1MDAyNmFyLVx1MDAzZWNtZF9sb2NrKTtcbiAxNjA6XHR9XG4gMTYxOlx0XG4gMTYyOlx0dm9pZCBjYXJsOTE3MF9oYW5kbGVfY29tbWFuZF9yZXNwb25zZShzdHJ1Y3QgYXI5MTcwICphciwgdm9pZCAqYnVmLCB1MzIgbGVuKVxuIDE2MzpcdHtcbiAxNjQ6XHRcdHN0cnVjdCBjYXJsOTE3MF9yc3AgKmNtZCA9IGJ1ZjtcbiAxNjU6XHRcdHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWY7XG4gMTY2Olx0XG4gMTY3Olx0XHRpZiAoKGNtZC1cdTAwM2VoZHIuY21kIFx1MDAyNiBDQVJMOTE3MF9SU1BfRkxBRykgIT0gQ0FSTDkxNzBfUlNQX0ZMQUcpIHtcbiAxNjg6XHRcdFx0aWYgKCEoY21kLVx1MDAzZWhkci5jbWQgXHUwMDI2IENBUkw5MTcwX0NNRF9BU1lOQ19GTEFHKSlcbiAxNjk6XHRcdFx0XHRjYXJsOTE3MF9jbWRfY2FsbGJhY2soYXIsIGxlbiwgYnVmKTtcbiAxNzA6XHRcbiAxNzE6XHRcdFx0cmV0dXJuO1xuIDE3MjpcdFx0fVxuIDE3MzpcdFxuIDE3NDpcdFx0aWYgKHVubGlrZWx5KGNtZC1cdTAwM2VoZHIubGVuICE9IChsZW4gLSA0KSkpIHtcbiAxNzU6XHRcdFx0aWYgKG5ldF9yYXRlbGltaXQoKSkge1xuIDE3NjpcdFx0XHRcdHdpcGh5X2Vycihhci1cdTAwM2Vody1cdTAwM2V3aXBoeSwgXCYjMzQ7Rlc6IHJlY2VpdmVkIG92ZXItL3VuZGVyXCYjMzQ7XG4gMTc3Olx0XHRcdFx0XHRcJiMzNDtzaXplZCBldmVudCAleCAoJWQsIGJ1dCBzaG91bGQgYmUgJWQpLlxcblwmIzM0OyxcbiAxNzg6XHRcdFx0XHQgICAgICAgY21kLVx1MDAzZWhkci5jbWQsIGNtZC1cdTAwM2VoZHIubGVuLCBsZW4gLSA0KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNCAxMDoxNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNjcyCgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogMTU2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUHJvcG9zZWQgQ29kZSBDaGFuZ2UqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyBpbnRyb2R1Y2luZyBhIGByZXR1cm47YCBzdGF0ZW1lbnQuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IHRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYW5kIHRoZSBnb2FsIGlzIHRvIHByZXZlbnQgdGhlIHJlc3Qgb2YgdGhlIGZ1bmN0aW9uIGZyb20gZXhlY3V0aW5nIGFmdGVyIGBjYXJsOTE3MF9yZXN0YXJ0YCBpcyBjYWxsZWQuIEl0JiMzOTtzIG1ha2luZyBzdXJlIHdlIGRvbiYjMzk7dCBlbmQgdXAgd2l0aCBhIHVzZS1hZnRlci1mcmVlIHNjZW5hcmlvIG9yIHNpbWlsYXIgaXNzdWVzIGlmIGBjYXJsOTE3MF9yZXN0YXJ0YCBkZWNpZGVzIHRvIGZyZWUgYGFyYCwgb3IgaWYgd2UganVzdCBwbGFpbiBkb24mIzM5O3Qgd2FudCB0byBjb250aW51ZSB0aGUgY29tbWFuZCBwcm9jZXNzaW5nIGFmdGVyIHRoZSByZXN0YXJ0IGlzIHRyaWdnZXJlZC4KCkFoLCByaWdodCwgYGNhcmw5MTcwX3Jlc3RhcnRgIHNjaGVkdWxlcyB3b3JrIHRvIHJlc3RhcnQgdGhlIGRldmljZS4gSWYgd2UgKmRvbiYjMzk7dCogcmV0dXJuLCB3ZSYjMzk7ZCBwcm9jZWVkIHRvIGV4ZWN1dGUgYHNwaW5fbG9jaygmYW1wO2FyLSZndDtjbWRfbG9jayk7YCBhbmQgYGNvbXBsZXRlKCZhbXA7YXItJmd0O2NtZF93YWl0KTtgLiBTbyBpdCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLiBHb3QgaXQuCgpOb3csIGxldCBtZSBqdXN0IHF1aWNrbHkgcHVsbCB1cCB0aGUgY29uZmlnIG9wdGlvbnMgYXNzb2NpYXRlZCB3aXRoIGBjYXJsOTE3MGAgdG8gbWFrZSBzdXJlIHRoaXMgZG9lc24mIzM5O3QgaW50cm9kdWNlIGFueSB1bmZvcmVzZWVuIGRlcGVuZGVuY2llcyBvciBjb25mbGljdHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjQgMTA6MTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIENBUkw5MTcwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnOjI6Y29uZmlnIENBUkw5MTcwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7TGludXggQ29tbXVuaXR5IEFSOTE3MCA4MDIuMTFuIFVTQiBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWctMTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZzoxNzpjb25maWcgQ0FSTDkxNzBfTEVEU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWctMTgtXHRib29sIFwmIzM0O1NvZnRMRUQgU3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnLTI2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWc6Mjc6Y29uZmlnIENBUkw5MTcwX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnLTI4LVx0Ym9vbCBcJiMzNDtEZWJ1Z0ZTIFN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZy0zNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnOjM2OmNvbmZpZyBDQVJMOTE3MF9XUENcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnLTM3LVx0Ym9vbFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnLTQwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWc6NDE6Y29uZmlnIENBUkw5MTcwX0hXUk5HXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZy00Mi1cdGJvb2wgXCYjMzQ7UmFuZG9tIG51bWJlciBnZW5lcmF0b3JcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNCAxMDoxNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NTQ1CgkJCQkJCQlvdXRwdXQ6IDQ3CgkJCQkJCQl0aG91Z2h0czogMTQyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlJlYWNoaW5nIHRoZSBDQVJMOTE3MCBEcml2ZXIgZm9yIEZ1enppbmcqKgoKT2theSwgc28gdGhlIHRhcmdldCBjb25maWcgaXMgYENBUkw5MTcwYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGRldGVybWluZSByZWFjaGFiaWxpdHksIHNwZWNpZmljYWxseSBpbiB2aXJ0dWFsaXplZCBzZXR1cHMg4oCTIGEgY3J1Y2lhbCBjb25zaWRlcmF0aW9uIGZvciBlZmZpY2llbnQgZnV6emluZy4gU2luY2UgYENBUkw5MTcwYCBpcyBhIFVTQiBkcml2ZXIsIHRoZSAmIzM0O0xpbnV4IENvbW11bml0eSBBUjkxNzAgODAyLjExbiBVU0Igc3VwcG9ydCYjMzQ7IGRyaXZlciwgSSBpbW1lZGlhdGVseSB0aGluayBvZiBob3cgVVNCIGRyaXZlcnMgYXJlIHR5cGljYWxseSBmdXp6ZWQuIFN5emthbGxlciwgd2l0aCBpdHMgYGR1bW15X2hjZGAgb3IgYHJhdy1nYWRnZXRgIG9wdGlvbnMsIGNvbWVzIHRvIG1pbmQuIEdpdmVuIHRoYXQgdGhlIGRyaXZlciBpcyBhIFVTQiBkcml2ZXIsIGl0IHNob3VsZCBiZSByZWFjaGFibGUuCgpOb3csIGxldCYjMzk7cyBpZGVudGlmeSByZWxldmFudCBlbnRyeSBwb2ludHMuIEkgc2hvdWxkIGZvY3VzIG9uIHRoZSBjb21tYW5kIGhhbmRsaW5nIGFuZCByZXNwb25zZSByb3V0aW5lcy4gYGNhcmw5MTcwX2NtZF9jYWxsYmFja2AgYW5kIGBjYXJsOTE3MF9oYW5kbGVfY29tbWFuZF9yZXNwb25zZWAgYXJlIHRoZSBwcmltZSB0YXJnZXRzLiBBIHF1aWNrIGdsYW5jZSBzdWdnZXN0cyB0aGF0IGBjYXJsOTE3MF9oYW5kbGVfY29tbWFuZF9yZXNwb25zZWAgaXMgY2FsbGVkIGZyb20gYGNhcmw5MTcwX3J4YC4gR29vZCwgdGhhdCBtZWFucyB0aGUgUlggcGF0aCBjb3VsZCBsZWFkIHVzIGRpcmVjdGx5IHRvIHRoZSBjb21tYW5kIHByb2Nlc3NpbmcgbG9naWMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI0IDEwOjE0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2Nhcmw5MTcwX2hhbmRsZV9jb21tYW5kX3Jlc3BvbnNlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvY2FybDkxNzAuaD01NzU9dm9pZCBjYXJsOTE3MF9yeChzdHJ1Y3QgYXI5MTcwICphciwgdm9pZCAqYnVmLCB1bnNpZ25lZCBpbnQgbGVuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9jYXJsOTE3MC5oOjU3Njp2b2lkIGNhcmw5MTcwX2hhbmRsZV9jb21tYW5kX3Jlc3BvbnNlKHN0cnVjdCBhcjkxNzAgKmFyLCB2b2lkICpidWYsIHUzMiBsZW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL2Nhcmw5MTcwLmgtNTc3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jPTEyOT1zdGF0aWMgdm9pZCBjYXJsOTE3MF9jbWRfY2FsbGJhY2soc3RydWN0IGFyOTE3MCAqYXIsIHUzMiBsZW4sIHZvaWQgKmJ1ZmZlcilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvcnguYy0xNjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvcnguYzoxNjI6dm9pZCBjYXJsOTE3MF9oYW5kbGVfY29tbWFuZF9yZXNwb25zZShzdHJ1Y3QgYXI5MTcwICphciwgdm9pZCAqYnVmLCB1MzIgbGVuKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL3J4LmMtMTYzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvcnguYz04MjY9c3RhdGljIHZvaWQgY2FybDkxNzBfcnhfdW50aWVfY21kcyhzdHJ1Y3QgYXI5MTcwICphciwgY29uc3QgdTggKnJlc3BidWYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL3J4LmMtODQxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL3J4LmM6ODQyOlx0XHRjYXJsOTE3MF9oYW5kbGVfY29tbWFuZF9yZXNwb25zZShhciwgY21kLCBjbWQtXHUwMDNlaGRyLmxlbiAmIzQzOyA0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jLTg0My1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvdXNiLmM9Mjc3PXN0YXRpYyB2b2lkIGNhcmw5MTcwX3VzYl9yeF9pcnFfY29tcGxldGUoc3RydWN0IHVyYiAqdXJiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC91c2IuYy0zMDYtXHQgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC91c2IuYzozMDc6XHRjYXJsOTE3MF9oYW5kbGVfY29tbWFuZF9yZXNwb25zZShhciwgdXJiLVx1MDAzZXRyYW5zZmVyX2J1ZmZlcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC91c2IuYy0zMDgtXHRcdFx0XHRcdCB1cmItXHUwMDNlYWN0dWFsX2xlbmd0aCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI0IDEwOjE0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU2MTYKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAxMTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgUG90ZW50aWFsIFVTQiBGdXp6aW5nIFRhcmdldHMqKgoKT2theSwgc28gYGNhcmw5MTcwX3VzYl9yeF9pcnFfY29tcGxldGVgIGlzIHRoZSBjb21wbGV0aW9uIGhhbmRsZXIgZm9yIFVSQnMsIHdoaWNoIG1lYW5zIGl0JiMzOTtzIGEgZGlyZWN0IGVudHJ5IHBvaW50IGZyb20gVVNCIGludGVyYWN0aW9uLiBUaGF0JiMzOTtzIGltbWVkaWF0ZWx5IGludGVyZXN0aW5nIGZyb20gYSBmdXp6aW5nIHBlcnNwZWN0aXZlOyBhIGRpcmVjdCBwYXRoIHRvIHRoZSBjb2RlIGlzIHdoYXQgSSYjMzk7bSBsb29raW5nIGZvci4gR2l2ZW4gdGhhdCwgSSBuZWVkIHRvIGZvY3VzIG15IGZ1enppbmcgZWZmb3J0cyBvbiB0aGlzIGZ1bmN0aW9uIGFuZCBpdHMgYXNzb2NpYXRlZCBjYWxsIHN0YWNrLiBJIG5lZWQgdG8gY2xvc2VseSBleGFtaW5lIGBjYXJsOTE3MF9jbWRfY2FsbGJhY2tgIGFuZCBgY2FybDkxNzBfaGFuZGxlX2NvbW1hbmRfcmVzcG9uc2VgLCBzaW5jZSB0aG9zZSBhcmUgbGlrZWx5IHdoZXJlIHRoZSBwcm9jZXNzaW5nIGhhcHBlbnMgd2hlbiB0aGF0IGNvbXBsZXRpb24gaGFuZGxlciBpcyBoaXQuCgpCZWZvcmUgSSBnbyBmdXJ0aGVyLCBsZXQmIzM5O3Mgc2VlIHdoYXQgb3RoZXIgZGVwZW5kZW5jaWVzIGV4aXN0LiBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIHRoZSBjb25maWcgb3B0aW9ucy4gSXQgbG9va3MgbGlrZSBgQ0FSTDkxNzBgIGRlcGVuZHMgb24gYm90aCBgVVNCYCBhbmQgYE1BQzgwMjExYCwgc28gdGhhdCBnaXZlcyBtZSBzb21lIGRpcmVjdGlvbiBhbmQgY29udGV4dCBhYm91dCB0aGUgYnVpbGQgYW5kIGVudmlyb25tZW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNCAxMDoxNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkZXBlbmRzIG9uJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWc9Mj1jb25maWcgQ0FSTDkxNzBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtMaW51eCBDb21tdW5pdHkgQVI5MTcwIDgwMi4xMW4gVVNCIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnOjQ6XHRkZXBlbmRzIG9uIFVTQiBcdTAwMjZcdTAwMjYgTUFDODAyMTFcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnLTUtXHRzZWxlY3QgQVRIX0NPTU1PTlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnPTE3PWNvbmZpZyBDQVJMOTE3MF9MRURTXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWctMTktXHRkZWZhdWx0IHlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnOjIwOlx0ZGVwZW5kcyBvbiBDQVJMOTE3MFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWc6MjE6XHRkZXBlbmRzIG9uIE1BQzgwMjExX0xFRFNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnLTIyLVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnPTI3PWNvbmZpZyBDQVJMOTE3MF9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZy0yOC1cdGJvb2wgXCYjMzQ7RGVidWdGUyBTdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZzoyOTpcdGRlcGVuZHMgb24gQ0FSTDkxNzAgXHUwMDI2XHUwMDI2IERFQlVHX0ZTIFx1MDAyNlx1MDAyNiBNQUM4MDIxMV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZy0zMC1cdGRlZmF1bHQgblxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnPTM2PWNvbmZpZyBDQVJMOTE3MF9XUENcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnLTM3LVx0Ym9vbFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWc6Mzg6XHRkZXBlbmRzIG9uIENBUkw5MTcwIFx1MDAyNlx1MDAyNiAoSU5QVVQgPSB5IHx8IElOUFVUID0gQ0FSTDkxNzApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZy0zOS1cdGRlZmF1bHQgeVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnPTQxPWNvbmZpZyBDQVJMOTE3MF9IV1JOR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWctNDItXHRib29sIFwmIzM0O1JhbmRvbSBudW1iZXIgZ2VuZXJhdG9yXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZzo0MzpcdGRlcGVuZHMgb24gQ0FSTDkxNzAgXHUwMDI2XHUwMDI2IChIV19SQU5ET00gPSB5IHx8IEhXX1JBTkRPTSA9IENBUkw5MTcwKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWctNDQtXHRkZWZhdWx0IG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjQgMTA6MTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjY2NwoJCQkJCQkJb3V0cHV0OiAxNTMKCQkJCQkJCXRob3VnaHRzOiAxMjgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBDQVJMOTE3MCBDb25maWd1cmF0aW9uIGFuZCBQb3RlbnRpYWwgRnV6emluZyBUYXJnZXRzKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIFRoZSBjb3JlIGNvbmZpZ3VyYXRpb24gaGVyZSBpcyBjbGVhcmx5IGBDQVJMOTE3MGAuIFRoZSBmaXggaXRzZWxmIGlzIHNpdHVhdGVkIHdpdGhpbiB0aGUgYGNhcmw5MTcwX2NtZF9jYWxsYmFja2AgZnVuY3Rpb24g4oCTIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGFpbWVkIGF0IGF2ZXJ0aW5nIGEgcG9zc2libGUgYnVnIHdoZW4gYGNhcmw5MTcwX3Jlc3RhcnRgIGdldHMgY2FsbGVkLiBUaGlzIG1lYW5zIGl0JiMzOTtzIGFib3V0IHJvYnVzdCBleGVjdXRpb24gYW5kIGVycm9yIGhhbmRsaW5nLCB3aGljaCBpcyBjcml0aWNhbC4gR2l2ZW4gdGhpcyB0YXJnZXRlZCBmaXgsIEkmIzM5O20gYWJzb2x1dGVseSBnb2luZyB0byBtYXJrIHRoaXMgYXMgYFdvcnRoRnV6emluZz10cnVlYC4KCk5vdywgZm9yIGZvY3VzIHN5bWJvbHMsIHRvIHJlYWxseSBkaWcgaW50byB0aGUgaW1wbGljYXRpb25zIGFuZCBwb3NzaWJsZSB2dWxuZXJhYmlsaXRpZXMsIEkmIzM5O2xsIGNvbmNlbnRyYXRlIG15IGF0dGVudGlvbiBvbiBgY2FybDkxNzBfY21kX2NhbGxiYWNrYCwgb2YgY291cnNlLCBidXQgYWxzbyBvbiBgY2FybDkxNzBfaGFuZGxlX2NvbW1hbmRfcmVzcG9uc2VgLCBhbmQgYGNhcmw5MTcwX3VzYl9yeF9pcnFfY29tcGxldGVgLiBUaGUgY29tbWFuZCByZXNwb25zZSBhbmQgdGhlIGludGVycnVwdCBjb21wbGV0aW9uIGFyZSBrZXkgdG8gdW5kZXJzdGFuZGluZyB0aGUgd29ya2Zsb3cuIE5hdHVyYWxseSwgdGhlIGBDQVJMOTE3MGAgY29uZmlnIHdpbGwgYmUgZW5hYmxlZCBmb3IgdGVzdGluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjQgMTA6MTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0NBUkw5MTcwJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2FybDkxNzBfY21kX2NhbGxiYWNrJiMzNDssCiAgICAmIzM0O2Nhcmw5MTcwX2hhbmRsZV9jb21tYW5kX3Jlc3BvbnNlJiMzNDssCiAgICAmIzM0O2Nhcmw5MTcwX3VzYl9yeF9pcnFfY29tcGxldGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIG1pc3NpbmcgcmV0dXJuIHN0YXRlbWVudCBpbiBjYXJsOTE3MF9jbWRfY2FsbGJhY2sgYWZ0ZXIgY2FsbGluZyBjYXJsOTE3MF9yZXN0YXJ0LCBwcmV2ZW50aW5nIGZ1cnRoZXIgZXhlY3V0aW9uIG9mIHRoZSBmdW5jdGlvbiB3aGljaCB3b3VsZCBvdGhlcndpc2UgYXR0ZW1wdCB0byBhY3F1aXJlIGEgc3BpbmxvY2sgYW5kIGNvbXBsZXRlIGEgd2FpdCBxdWV1ZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgVVNCIHdpcmVsZXNzIGRyaXZlciB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBVU0IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7Q0FSTDkxNzAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtjYXJsOTE3MF9jbWRfY2FsbGJhY2smIzM0OywKICAgICYjMzQ7Y2FybDkxNzBfaGFuZGxlX2NvbW1hbmRfcmVzcG9uc2UmIzM0OywKICAgICYjMzQ7Y2FybDkxNzBfdXNiX3J4X2lycV9jb21wbGV0ZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgbWlzc2luZyByZXR1cm4gc3RhdGVtZW50IGluIGNhcmw5MTcwX2NtZF9jYWxsYmFjayBhZnRlciBjYWxsaW5nIGNhcmw5MTcwX3Jlc3RhcnQsIHByZXZlbnRpbmcgZnVydGhlciBleGVjdXRpb24gb2YgdGhlIGZ1bmN0aW9uIHdoaWNoIHdvdWxkIG90aGVyd2lzZSBhdHRlbXB0IHRvIGFjcXVpcmUgYSBzcGlubG9jayBhbmQgY29tcGxldGUgYSB3YWl0IHF1ZXVlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSBVU0Igd2lyZWxlc3MgZHJpdmVyIHRoYXQgY2FuIGJlIHJlYWNoZWQgdmlhIFVTQiBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDYtMjRUMTA6MTQ6MzEuOTAwNzE2MjI2WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mjc5NDMxMzA3NzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQ0FSTDkxNzBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjYXJsOTE3MF9jbWRfY2FsbGJhY2tcIixcbiAgICBcImNhcmw5MTcwX2hhbmRsZV9jb21tYW5kX3Jlc3BvbnNlXCIsXG4gICAgXCJjYXJsOTE3MF91c2JfcnhfaXJxX2NvbXBsZXRlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIG1pc3NpbmcgcmV0dXJuIHN0YXRlbWVudCBpbiBjYXJsOTE3MF9jbWRfY2FsbGJhY2sgYWZ0ZXIgY2FsbGluZyBjYXJsOTE3MF9yZXN0YXJ0LCBwcmV2ZW50aW5nIGZ1cnRoZXIgZXhlY3V0aW9uIG9mIHRoZSBmdW5jdGlvbiB3aGljaCB3b3VsZCBvdGhlcndpc2UgYXR0ZW1wdCB0byBhY3F1aXJlIGEgc3BpbmxvY2sgYW5kIGNvbXBsZXRlIGEgd2FpdCBxdWV1ZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgVVNCIHdpcmVsZXNzIGRyaXZlciB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBVU0IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjRUMTA6MTQ6MzEuOTAwNzE5OTg2WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MjY4NjcxMDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBiZWVhMmVjY2JlYzU1Yjc1MGZiMWMxMDQyNjJiZGQ3YzUxM2NmYzNlXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBXZWQgSnVuIDI0IDEwOjE0OjMwIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL3J4LmNcXG5pbmRleCA2ODMzNDMwMTMwZjRjYS4uZWEzZjQzNWZiNjRjOTkgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL3J4LmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvcnguY1xcbkBAIC0xNDUsNiArMTQ1LDcgQEAgc3RhdGljIHZvaWQgY2FybDkxNzBfY21kX2NhbGxiYWNrKHN0cnVjdCBhcjkxNzAgKmFyLCB1MzIgbGVuLCB2b2lkICpidWZmZXIpXFxuIFxcdFxcdCAqIGFuZCB3ZSBnZXQgYSBzdGFjayB0cmFjZSBmcm9tIHRoZXJlLlxcbiBcXHRcXHQgKi9cXG4gXFx0XFx0Y2FybDkxNzBfcmVzdGFydChhciwgQ0FSTDkxNzBfUlJfSU5WQUxJRF9SU1ApO1xcbitcXHRcXHRyZXR1cm47XFxuIFxcdH1cXG4gXFxuIFxcdHNwaW5fbG9jayhcXHUwMDI2YXItXFx1MDAzZWNtZF9sb2NrKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjRUMTA6MTQ6MzIuMzI4MjMxMjcxWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNzUxNTYwMjY2NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJDQVJMOTE3MFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImNhcmw5MTcwX2NtZF9jYWxsYmFja1wiLFxuICAgIFwiY2FybDkxNzBfaGFuZGxlX2NvbW1hbmRfcmVzcG9uc2VcIixcbiAgICBcImNhcmw5MTcwX3VzYl9yeF9pcnFfY29tcGxldGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgbWlzc2luZyByZXR1cm4gc3RhdGVtZW50IGluIGNhcmw5MTcwX2NtZF9jYWxsYmFjayBhZnRlciBjYWxsaW5nIGNhcmw5MTcwX3Jlc3RhcnQsIHByZXZlbnRpbmcgZnVydGhlciBleGVjdXRpb24gb2YgdGhlIGZ1bmN0aW9uIHdoaWNoIHdvdWxkIG90aGVyd2lzZSBhdHRlbXB0IHRvIGFjcXVpcmUgYSBzcGlubG9jayBhbmQgY29tcGxldGUgYSB3YWl0IHF1ZXVlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSBVU0Igd2lyZWxlc3MgZHJpdmVyIHRoYXQgY2FuIGJlIHJlYWNoZWQgdmlhIFVTQiBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGJlZWEyZWNjYmVjNTViNzUwZmIxYzEwNDI2MmJkZDdjNTEzY2ZjM2VcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1biAyNCAxMDoxNDozMCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL3J4LmNcbmluZGV4IDY4MzM0MzAxMzBmNGNhLi5lYTNmNDM1ZmI2NGM5OSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvcnguY1xuQEAgLTE0NSw2ICsxNDUsNyBAQCBzdGF0aWMgdm9pZCBjYXJsOTE3MF9jbWRfY2FsbGJhY2soc3RydWN0IGFyOTE3MCAqYXIsIHUzMiBsZW4sIHZvaWQgKmJ1ZmZlcilcbiBcdFx0ICogYW5kIHdlIGdldCBhIHN0YWNrIHRyYWNlIGZyb20gdGhlcmUuXG4gXHRcdCAqL1xuIFx0XHRjYXJsOTE3MF9yZXN0YXJ0KGFyLCBDQVJMOTE3MF9SUl9JTlZBTElEX1JTUCk7XG4rXHRcdHJldHVybjtcbiBcdH1cbiBcbiBcdHNwaW5fbG9jayhcdTAwMjZhci1cdTAwM2VjbWRfbG9jayk7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQxMDoxNDozMi4zMjgyMzI2MTFaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTQ5NzY5NTQ2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUGF0Y2ggdG8gYGNhcmw5MTcwX2NtZF9jYWxsYmFja2AqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQncyBiZWVuIGFwcGxpZWQsIGFuZCBpdCdzIGEgbWlub3IgY2hhbmdlIHRvIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvcnguY2AuIFNwZWNpZmljYWxseSwgdGhleSd2ZSBhZGRlZCBhIGByZXR1cm47YCBzdGF0ZW1lbnQgYWZ0ZXIgdGhlIGBjYXJsOTE3MF9yZXN0YXJ0KGFyLCBDQVJMOTE3MF9SUl9JTlZBTElEX1JTUCk7YCBjYWxsIHdpdGhpbiB0aGUgYGNhcmw5MTcwX2NtZF9jYWxsYmFja2AgZnVuY3Rpb24uIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSByZWFzb25pbmcgYmVoaW5kIHRoaXMsIGJlY2F1c2UsIGF0IGZpcnN0IGdsYW5jZSwgdGhlIGNoYW5nZSBzZWVtcyBhIGxpdHRsZS4uLiBhYnJ1cHQuIExldCBtZSBkaWcgaW50byB0aGUgY29udGV4dCBvZiB0aGUgYGNhcmw5MTcwX2NtZF9jYWxsYmFja2AgZnVuY3Rpb24gaXRzZWxmIHRvIGZpZ3VyZSBvdXQgd2h5IHRoaXMgYHJldHVybmAgd2FzIGFkZGVkIGFuZCB3aGF0IHBvdGVudGlhbCBpc3N1ZXMgaXQgYWRkcmVzc2VzLiBVbmRlcnN0YW5kaW5nIHRoZSBjb250cm9sIGZsb3cgYXJvdW5kIHRoYXQgY2FsbCB0byBgY2FybDkxNzBfcmVzdGFydGAgaXMga2V5IGhlcmUuIEknbGwgbmVlZCB0byBzZWUgd2hhdCBoYXBwZW5zIGFmdGVyIHRoYXQgcmVzdGFydCBmdW5jdGlvbiBleGVjdXRlcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTg1NSwiT3V0cHV0VG9rZW5zIjo0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExNCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI0VDEwOjE0OjM2LjQ3ODAwMzU1N1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNjEyNjk1MjYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY2FybDkxNzBfY21kX2NhbGxiYWNrXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jPTk2PXN0YXRpYyBpbnQgY2FybDkxNzBfY2hlY2tfc2VxdWVuY2Uoc3RydWN0IGFyOTE3MCAqYXIsIHVuc2lnbmVkIGludCBzZXEpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvcnguYy0xMjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL3J4LmM6MTI5OnN0YXRpYyB2b2lkIGNhcmw5MTcwX2NtZF9jYWxsYmFjayhzdHJ1Y3QgYXI5MTcwICphciwgdTMyIGxlbiwgdm9pZCAqYnVmZmVyKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jLTEzMC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvcnguYz0xNjI9dm9pZCBjYXJsOTE3MF9oYW5kbGVfY29tbWFuZF9yZXNwb25zZShzdHJ1Y3QgYXI5MTcwICphciwgdm9pZCAqYnVmLCB1MzIgbGVuKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL3J4LmMtMTY4LVxcdFxcdGlmICghKGNtZC1cXHUwMDNlaGRyLmNtZCBcXHUwMDI2IENBUkw5MTcwX0NNRF9BU1lOQ19GTEFHKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvcnguYzoxNjk6XFx0XFx0XFx0Y2FybDkxNzBfY21kX2NhbGxiYWNrKGFyLCBsZW4sIGJ1Zik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL3J4LmMtMTcwLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQxMDoxNDozNi44MzkyNzc4MzNaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDc5NDQ4OTU3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IG1lbnRhbCBwcm9jZXNzOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBBdGhlcm9zIERyaXZlcioqXG5cbk9rYXksIHRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0J3MgaGFwcGVuaW5nIGluIHRoZSBjYXJsOTE3MCB3aXJlbGVzcyBkcml2ZXIuIFNwZWNpZmljYWxseSwgSSdtIGZvY3VzaW5nIG9uIHRoZSByZWNlaXZlIHBhdGgsIGFuZCBJJ20gaGVhZGluZyBzdHJhaWdodCBmb3IgdGhlIGByeC5jYCBmaWxlLiBJJ20gZ29pbmcgdG8gc3RhcnQgbXkgaW52ZXN0aWdhdGlvbiBhcm91bmQgbGluZSAxMjkuIEknbSBob3BpbmcgdGhhdCdzIGEgZ29vZCBlbnRyeSBwb2ludCB0byBzZWUgaG93IGluY29taW5nIHdpcmVsZXNzIGRhdGEgaXMgaGFuZGxlZC4gTGluZSAxMjkgc2hvdWxkIGdpdmUgYSBnb29kIHN0YXJ0IHRvIHdoZXJlIHRvIGxvb2suXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI1NzQsIk91dHB1dFRva2VucyI6NDYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQxMDoxNDo0MC45MTg3MjgxMVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc2MjYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEyOSxcbiAgXCJMaW5lQ291bnRcIjogNTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDEyOTpcXHRzdGF0aWMgdm9pZCBjYXJsOTE3MF9jbWRfY2FsbGJhY2soc3RydWN0IGFyOTE3MCAqYXIsIHUzMiBsZW4sIHZvaWQgKmJ1ZmZlcilcXG4gMTMwOlxcdHtcXG4gMTMxOlxcdFxcdC8qXFxuIDEzMjpcXHRcXHQgKiBTb21lIGNvbW1hbmRzIG1heSBoYXZlIGEgdmFyaWFibGUgcmVzcG9uc2UgbGVuZ3RoXFxuIDEzMzpcXHRcXHQgKiBhbmQgd2UgY2Fubm90IHByZWRpY3QgdGhlIGNvcnJlY3QgbGVuZ3RoIGluIGFkdmFuY2UuXFxuIDEzNDpcXHRcXHQgKiBTbyB3ZSBvbmx5IGNoZWNrIGlmIHdlIHByb3ZpZGVkIGVub3VnaCBzcGFjZSBmb3IgdGhlIGRhdGEuXFxuIDEzNTpcXHRcXHQgKi9cXG4gMTM2OlxcdFxcdGlmICh1bmxpa2VseShhci1cXHUwMDNlcmVhZGxlbiAhPSAobGVuIC0gNCkpKSB7XFxuIDEzNzpcXHRcXHRcXHRkZXZfd2FybihcXHUwMDI2YXItXFx1MDAzZXVkZXYtXFx1MDAzZWRldiwgXFxcInJlY2VpdmVkIGludmFsaWQgY29tbWFuZCByZXNwb25zZTpcXFwiXFxuIDEzODpcXHRcXHRcXHRcXHQgXFxcImdvdCAlZCwgaW5zdGVhZCBvZiAlZFxcXFxuXFxcIiwgbGVuIC0gNCwgYXItXFx1MDAzZXJlYWRsZW4pO1xcbiAxMzk6XFx0XFx0XFx0cHJpbnRfaGV4X2R1bXBfYnl0ZXMoXFxcImNhcmw5MTcwIGNtZDpcXFwiLCBEVU1QX1BSRUZJWF9PRkZTRVQsXFxuIDE0MDpcXHRcXHRcXHRcXHRhci1cXHUwMDNlY21kX2J1ZiwgKGFyLVxcdTAwM2VjbWQuaGRyLmxlbiArIDQpIFxcdTAwMjYgMHgzZik7XFxuIDE0MTpcXHRcXHRcXHRwcmludF9oZXhfZHVtcF9ieXRlcyhcXFwiY2FybDkxNzAgcnNwOlxcXCIsIERVTVBfUFJFRklYX09GRlNFVCxcXG4gMTQyOlxcdFxcdFxcdFxcdGJ1ZmZlciwgbGVuKTtcXG4gMTQzOlxcdFxcdFxcdC8qXFxuIDE0NDpcXHRcXHRcXHQgKiBEbyBub3QgY29tcGxldGUuIFRoZSBjb21tYW5kIHRpbWVzIG91dCxcXG4gMTQ1OlxcdFxcdFxcdCAqIGFuZCB3ZSBnZXQgYSBzdGFjayB0cmFjZSBmcm9tIHRoZXJlLlxcbiAxNDY6XFx0XFx0XFx0ICovXFxuIDE0NzpcXHRcXHRcXHRjYXJsOTE3MF9yZXN0YXJ0KGFyLCBDQVJMOTE3MF9SUl9JTlZBTElEX1JTUCk7XFxuIDE0ODpcXHRcXHRcXHRyZXR1cm47XFxuIDE0OTpcXHRcXHR9XFxuIDE1MDpcXHRcXG4gMTUxOlxcdFxcdHNwaW5fbG9jayhcXHUwMDI2YXItXFx1MDAzZWNtZF9sb2NrKTtcXG4gMTUyOlxcdFxcdGlmIChhci1cXHUwMDNlcmVhZGJ1Zikge1xcbiAxNTM6XFx0XFx0XFx0aWYgKGxlbiBcXHUwMDNlPSA0KVxcbiAxNTQ6XFx0XFx0XFx0XFx0bWVtY3B5KGFyLVxcdTAwM2VyZWFkYnVmLCBidWZmZXIgKyA0LCBsZW4gLSA0KTtcXG4gMTU1OlxcdFxcbiAxNTY6XFx0XFx0XFx0YXItXFx1MDAzZXJlYWRidWYgPSBOVUxMO1xcbiAxNTc6XFx0XFx0fVxcbiAxNTg6XFx0XFx0Y29tcGxldGUoXFx1MDAyNmFyLVxcdTAwM2VjbWRfd2FpdCk7XFxuIDE1OTpcXHRcXHRzcGluX3VubG9jayhcXHUwMDI2YXItXFx1MDAzZWNtZF9sb2NrKTtcXG4gMTYwOlxcdH1cXG4gMTYxOlxcdFxcbiAxNjI6XFx0dm9pZCBjYXJsOTE3MF9oYW5kbGVfY29tbWFuZF9yZXNwb25zZShzdHJ1Y3QgYXI5MTcwICphciwgdm9pZCAqYnVmLCB1MzIgbGVuKVxcbiAxNjM6XFx0e1xcbiAxNjQ6XFx0XFx0c3RydWN0IGNhcmw5MTcwX3JzcCAqY21kID0gYnVmO1xcbiAxNjU6XFx0XFx0c3RydWN0IGllZWU4MDIxMV92aWYgKnZpZjtcXG4gMTY2OlxcdFxcbiAxNjc6XFx0XFx0aWYgKChjbWQtXFx1MDAzZWhkci5jbWQgXFx1MDAyNiBDQVJMOTE3MF9SU1BfRkxBRykgIT0gQ0FSTDkxNzBfUlNQX0ZMQUcpIHtcXG4gMTY4OlxcdFxcdFxcdGlmICghKGNtZC1cXHUwMDNlaGRyLmNtZCBcXHUwMDI2IENBUkw5MTcwX0NNRF9BU1lOQ19GTEFHKSlcXG4gMTY5OlxcdFxcdFxcdFxcdGNhcmw5MTcwX2NtZF9jYWxsYmFjayhhciwgbGVuLCBidWYpO1xcbiAxNzA6XFx0XFxuIDE3MTpcXHRcXHRcXHRyZXR1cm47XFxuIDE3MjpcXHRcXHR9XFxuIDE3MzpcXHRcXG4gMTc0OlxcdFxcdGlmICh1bmxpa2VseShjbWQtXFx1MDAzZWhkci5sZW4gIT0gKGxlbiAtIDQpKSkge1xcbiAxNzU6XFx0XFx0XFx0aWYgKG5ldF9yYXRlbGltaXQoKSkge1xcbiAxNzY6XFx0XFx0XFx0XFx0d2lwaHlfZXJyKGFyLVxcdTAwM2Vody1cXHUwMDNld2lwaHksIFxcXCJGVzogcmVjZWl2ZWQgb3Zlci0vdW5kZXJcXFwiXFxuIDE3NzpcXHRcXHRcXHRcXHRcXHRcXFwic2l6ZWQgZXZlbnQgJXggKCVkLCBidXQgc2hvdWxkIGJlICVkKS5cXFxcblxcXCIsXFxuIDE3ODpcXHRcXHRcXHRcXHQgICAgICAgY21kLVxcdTAwM2VoZHIuY21kLCBjbWQtXFx1MDAzZWhkci5sZW4sIGxlbiAtIDQpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQxMDoxNDo0MC45MTg4MDU3OVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ1MDk5MTA3MzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBQcm9wb3NlZCBDb2RlIENoYW5nZSoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgaW50cm9kdWNpbmcgYSBgcmV0dXJuO2Agc3RhdGVtZW50LiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCB0aGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGFuZCB0aGUgZ29hbCBpcyB0byBwcmV2ZW50IHRoZSByZXN0IG9mIHRoZSBmdW5jdGlvbiBmcm9tIGV4ZWN1dGluZyBhZnRlciBgY2FybDkxNzBfcmVzdGFydGAgaXMgY2FsbGVkLiBJdCdzIG1ha2luZyBzdXJlIHdlIGRvbid0IGVuZCB1cCB3aXRoIGEgdXNlLWFmdGVyLWZyZWUgc2NlbmFyaW8gb3Igc2ltaWxhciBpc3N1ZXMgaWYgYGNhcmw5MTcwX3Jlc3RhcnRgIGRlY2lkZXMgdG8gZnJlZSBgYXJgLCBvciBpZiB3ZSBqdXN0IHBsYWluIGRvbid0IHdhbnQgdG8gY29udGludWUgdGhlIGNvbW1hbmQgcHJvY2Vzc2luZyBhZnRlciB0aGUgcmVzdGFydCBpcyB0cmlnZ2VyZWQuXG5cbkFoLCByaWdodCwgYGNhcmw5MTcwX3Jlc3RhcnRgIHNjaGVkdWxlcyB3b3JrIHRvIHJlc3RhcnQgdGhlIGRldmljZS4gSWYgd2UgKmRvbid0KiByZXR1cm4sIHdlJ2QgcHJvY2VlZCB0byBleGVjdXRlIGBzcGluX2xvY2soXHUwMDI2YXItXHUwMDNlY21kX2xvY2spO2AgYW5kIGBjb21wbGV0ZShcdTAwMjZhci1cdTAwM2VjbWRfd2FpdCk7YC4gU28gaXQgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZS4gR290IGl0LlxuXG5Ob3csIGxldCBtZSBqdXN0IHF1aWNrbHkgcHVsbCB1cCB0aGUgY29uZmlnIG9wdGlvbnMgYXNzb2NpYXRlZCB3aXRoIGBjYXJsOTE3MGAgdG8gbWFrZSBzdXJlIHRoaXMgZG9lc24ndCBpbnRyb2R1Y2UgYW55IHVuZm9yZXNlZW4gZGVwZW5kZW5jaWVzIG9yIGNvbmZsaWN0cy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzY3MiwiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1NiwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI0VDEwOjE0OjQ1LjQyODcxNzk3MloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDEzMTgxNjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIENBUkw5MTcwXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWc6Mjpjb25maWcgQ0FSTDkxNzBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJMaW51eCBDb21tdW5pdHkgQVI5MTcwIDgwMi4xMW4gVVNCIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZy0xNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZzoxNzpjb25maWcgQ0FSTDkxNzBfTEVEU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnLTE4LVxcdGJvb2wgXFxcIlNvZnRMRUQgU3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnLTI2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnOjI3OmNvbmZpZyBDQVJMOTE3MF9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWctMjgtXFx0Ym9vbCBcXFwiRGVidWdGUyBTdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWctMzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWc6MzY6Y29uZmlnIENBUkw5MTcwX1dQQ1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnLTM3LVxcdGJvb2xcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnLTQwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnOjQxOmNvbmZpZyBDQVJMOTE3MF9IV1JOR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnLTQyLVxcdGJvb2wgXFxcIlJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQxMDoxNDo0NS42MzAwNDE2NFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ1NTY1MTk1MjIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqUmVhY2hpbmcgdGhlIENBUkw5MTcwIERyaXZlciBmb3IgRnV6emluZyoqXG5cbk9rYXksIHNvIHRoZSB0YXJnZXQgY29uZmlnIGlzIGBDQVJMOTE3MGAuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBkZXRlcm1pbmUgcmVhY2hhYmlsaXR5LCBzcGVjaWZpY2FsbHkgaW4gdmlydHVhbGl6ZWQgc2V0dXBzIOKAkyBhIGNydWNpYWwgY29uc2lkZXJhdGlvbiBmb3IgZWZmaWNpZW50IGZ1enppbmcuIFNpbmNlIGBDQVJMOTE3MGAgaXMgYSBVU0IgZHJpdmVyLCB0aGUgXCJMaW51eCBDb21tdW5pdHkgQVI5MTcwIDgwMi4xMW4gVVNCIHN1cHBvcnRcIiBkcml2ZXIsIEkgaW1tZWRpYXRlbHkgdGhpbmsgb2YgaG93IFVTQiBkcml2ZXJzIGFyZSB0eXBpY2FsbHkgZnV6emVkLiBTeXprYWxsZXIsIHdpdGggaXRzIGBkdW1teV9oY2RgIG9yIGByYXctZ2FkZ2V0YCBvcHRpb25zLCBjb21lcyB0byBtaW5kLiBHaXZlbiB0aGF0IHRoZSBkcml2ZXIgaXMgYSBVU0IgZHJpdmVyLCBpdCBzaG91bGQgYmUgcmVhY2hhYmxlLlxuXG5Ob3csIGxldCdzIGlkZW50aWZ5IHJlbGV2YW50IGVudHJ5IHBvaW50cy4gSSBzaG91bGQgZm9jdXMgb24gdGhlIGNvbW1hbmQgaGFuZGxpbmcgYW5kIHJlc3BvbnNlIHJvdXRpbmVzLiBgY2FybDkxNzBfY21kX2NhbGxiYWNrYCBhbmQgYGNhcmw5MTcwX2hhbmRsZV9jb21tYW5kX3Jlc3BvbnNlYCBhcmUgdGhlIHByaW1lIHRhcmdldHMuIEEgcXVpY2sgZ2xhbmNlIHN1Z2dlc3RzIHRoYXQgYGNhcmw5MTcwX2hhbmRsZV9jb21tYW5kX3Jlc3BvbnNlYCBpcyBjYWxsZWQgZnJvbSBgY2FybDkxNzBfcnhgLiBHb29kLCB0aGF0IG1lYW5zIHRoZSBSWCBwYXRoIGNvdWxkIGxlYWQgdXMgZGlyZWN0bHkgdG8gdGhlIGNvbW1hbmQgcHJvY2Vzc2luZyBsb2dpYy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDU0NSwiT3V0cHV0VG9rZW5zIjo0NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQxMDoxNDo1MC4xODY1NjMwMTFaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2Njk2OTExOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjYXJsOTE3MF9oYW5kbGVfY29tbWFuZF9yZXNwb25zZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9jYXJsOTE3MC5oPTU3NT12b2lkIGNhcmw5MTcwX3J4KHN0cnVjdCBhcjkxNzAgKmFyLCB2b2lkICpidWYsIHVuc2lnbmVkIGludCBsZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9jYXJsOTE3MC5oOjU3Njp2b2lkIGNhcmw5MTcwX2hhbmRsZV9jb21tYW5kX3Jlc3BvbnNlKHN0cnVjdCBhcjkxNzAgKmFyLCB2b2lkICpidWYsIHUzMiBsZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9jYXJsOTE3MC5oLTU3Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jPTEyOT1zdGF0aWMgdm9pZCBjYXJsOTE3MF9jbWRfY2FsbGJhY2soc3RydWN0IGFyOTE3MCAqYXIsIHUzMiBsZW4sIHZvaWQgKmJ1ZmZlcilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jLTE2MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvcnguYzoxNjI6dm9pZCBjYXJsOTE3MF9oYW5kbGVfY29tbWFuZF9yZXNwb25zZShzdHJ1Y3QgYXI5MTcwICphciwgdm9pZCAqYnVmLCB1MzIgbGVuKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jLTE2My17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvcnguYz04MjY9c3RhdGljIHZvaWQgY2FybDkxNzBfcnhfdW50aWVfY21kcyhzdHJ1Y3QgYXI5MTcwICphciwgY29uc3QgdTggKnJlc3BidWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvcnguYy04NDEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL3J4LmM6ODQyOlxcdFxcdGNhcmw5MTcwX2hhbmRsZV9jb21tYW5kX3Jlc3BvbnNlKGFyLCBjbWQsIGNtZC1cXHUwMDNlaGRyLmxlbiArIDQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jLTg0My1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvdXNiLmM9Mjc3PXN0YXRpYyB2b2lkIGNhcmw5MTcwX3VzYl9yeF9pcnFfY29tcGxldGUoc3RydWN0IHVyYiAqdXJiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL3VzYi5jLTMwNi1cXHQgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvdXNiLmM6MzA3OlxcdGNhcmw5MTcwX2hhbmRsZV9jb21tYW5kX3Jlc3BvbnNlKGFyLCB1cmItXFx1MDAzZXRyYW5zZmVyX2J1ZmZlcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvdXNiLmMtMzA4LVxcdFxcdFxcdFxcdFxcdCB1cmItXFx1MDAzZWFjdHVhbF9sZW5ndGgpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQxMDoxNDo1MC4zNTM1MzkxNTlaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDMxNzkzODMwNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiBQb3RlbnRpYWwgVVNCIEZ1enppbmcgVGFyZ2V0cyoqXG5cbk9rYXksIHNvIGBjYXJsOTE3MF91c2JfcnhfaXJxX2NvbXBsZXRlYCBpcyB0aGUgY29tcGxldGlvbiBoYW5kbGVyIGZvciBVUkJzLCB3aGljaCBtZWFucyBpdCdzIGEgZGlyZWN0IGVudHJ5IHBvaW50IGZyb20gVVNCIGludGVyYWN0aW9uLiBUaGF0J3MgaW1tZWRpYXRlbHkgaW50ZXJlc3RpbmcgZnJvbSBhIGZ1enppbmcgcGVyc3BlY3RpdmU7IGEgZGlyZWN0IHBhdGggdG8gdGhlIGNvZGUgaXMgd2hhdCBJJ20gbG9va2luZyBmb3IuIEdpdmVuIHRoYXQsIEkgbmVlZCB0byBmb2N1cyBteSBmdXp6aW5nIGVmZm9ydHMgb24gdGhpcyBmdW5jdGlvbiBhbmQgaXRzIGFzc29jaWF0ZWQgY2FsbCBzdGFjay4gSSBuZWVkIHRvIGNsb3NlbHkgZXhhbWluZSBgY2FybDkxNzBfY21kX2NhbGxiYWNrYCBhbmQgYGNhcmw5MTcwX2hhbmRsZV9jb21tYW5kX3Jlc3BvbnNlYCwgc2luY2UgdGhvc2UgYXJlIGxpa2VseSB3aGVyZSB0aGUgcHJvY2Vzc2luZyBoYXBwZW5zIHdoZW4gdGhhdCBjb21wbGV0aW9uIGhhbmRsZXIgaXMgaGl0LlxuXG5CZWZvcmUgSSBnbyBmdXJ0aGVyLCBsZXQncyBzZWUgd2hhdCBvdGhlciBkZXBlbmRlbmNpZXMgZXhpc3QuIEknbGwgbmVlZCB0byBjaGVjayB0aGUgY29uZmlnIG9wdGlvbnMuIEl0IGxvb2tzIGxpa2UgYENBUkw5MTcwYCBkZXBlbmRzIG9uIGJvdGggYFVTQmAgYW5kIGBNQUM4MDIxMWAsIHNvIHRoYXQgZ2l2ZXMgbWUgc29tZSBkaXJlY3Rpb24gYW5kIGNvbnRleHQgYWJvdXQgdGhlIGJ1aWxkIGFuZCBlbnZpcm9ubWVudC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTYxNiwiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQxMDoxNDo1NC42NzE0NzkyNDNaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUyOTM0NDI5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRlcGVuZHMgb25cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWc9Mj1jb25maWcgQ0FSTDkxNzBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJMaW51eCBDb21tdW5pdHkgQVI5MTcwIDgwMi4xMW4gVVNCIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWc6NDpcXHRkZXBlbmRzIG9uIFVTQiBcXHUwMDI2XFx1MDAyNiBNQUM4MDIxMVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnLTUtXFx0c2VsZWN0IEFUSF9DT01NT05cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnPTE3PWNvbmZpZyBDQVJMOTE3MF9MRURTXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZy0xOS1cXHRkZWZhdWx0IHlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZzoyMDpcXHRkZXBlbmRzIG9uIENBUkw5MTcwXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWc6MjE6XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9MRURTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWctMjItXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWc9Mjc9Y29uZmlnIENBUkw5MTcwX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZy0yOC1cXHRib29sIFxcXCJEZWJ1Z0ZTIFN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWc6Mjk6XFx0ZGVwZW5kcyBvbiBDQVJMOTE3MCBcXHUwMDI2XFx1MDAyNiBERUJVR19GUyBcXHUwMDI2XFx1MDAyNiBNQUM4MDIxMV9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWctMzAtXFx0ZGVmYXVsdCBuXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZz0zNj1jb25maWcgQ0FSTDkxNzBfV1BDXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWctMzctXFx0Ym9vbFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnOjM4OlxcdGRlcGVuZHMgb24gQ0FSTDkxNzAgXFx1MDAyNlxcdTAwMjYgKElOUFVUID0geSB8fCBJTlBVVCA9IENBUkw5MTcwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnLTM5LVxcdGRlZmF1bHQgeVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWc9NDE9Y29uZmlnIENBUkw5MTcwX0hXUk5HXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWctNDItXFx0Ym9vbCBcXFwiUmFuZG9tIG51bWJlciBnZW5lcmF0b3JcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWc6NDM6XFx0ZGVwZW5kcyBvbiBDQVJMOTE3MCBcXHUwMDI2XFx1MDAyNiAoSFdfUkFORE9NID0geSB8fCBIV19SQU5ET00gPSBDQVJMOTE3MClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZy00NC1cXHRkZWZhdWx0IG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjRUMTA6MTQ6NTQuNzI0NDE4MTEyWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUwMzM5NzI0OTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBDQVJMOTE3MCBDb25maWd1cmF0aW9uIGFuZCBQb3RlbnRpYWwgRnV6emluZyBUYXJnZXRzKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBUaGUgY29yZSBjb25maWd1cmF0aW9uIGhlcmUgaXMgY2xlYXJseSBgQ0FSTDkxNzBgLiBUaGUgZml4IGl0c2VsZiBpcyBzaXR1YXRlZCB3aXRoaW4gdGhlIGBjYXJsOTE3MF9jbWRfY2FsbGJhY2tgIGZ1bmN0aW9uIOKAkyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhaW1lZCBhdCBhdmVydGluZyBhIHBvc3NpYmxlIGJ1ZyB3aGVuIGBjYXJsOTE3MF9yZXN0YXJ0YCBnZXRzIGNhbGxlZC4gVGhpcyBtZWFucyBpdCdzIGFib3V0IHJvYnVzdCBleGVjdXRpb24gYW5kIGVycm9yIGhhbmRsaW5nLCB3aGljaCBpcyBjcml0aWNhbC4gR2l2ZW4gdGhpcyB0YXJnZXRlZCBmaXgsIEknbSBhYnNvbHV0ZWx5IGdvaW5nIHRvIG1hcmsgdGhpcyBhcyBgV29ydGhGdXp6aW5nPXRydWVgLlxuXG5Ob3csIGZvciBmb2N1cyBzeW1ib2xzLCB0byByZWFsbHkgZGlnIGludG8gdGhlIGltcGxpY2F0aW9ucyBhbmQgcG9zc2libGUgdnVsbmVyYWJpbGl0aWVzLCBJJ2xsIGNvbmNlbnRyYXRlIG15IGF0dGVudGlvbiBvbiBgY2FybDkxNzBfY21kX2NhbGxiYWNrYCwgb2YgY291cnNlLCBidXQgYWxzbyBvbiBgY2FybDkxNzBfaGFuZGxlX2NvbW1hbmRfcmVzcG9uc2VgLCBhbmQgYGNhcmw5MTcwX3VzYl9yeF9pcnFfY29tcGxldGVgLiBUaGUgY29tbWFuZCByZXNwb25zZSBhbmQgdGhlIGludGVycnVwdCBjb21wbGV0aW9uIGFyZSBrZXkgdG8gdW5kZXJzdGFuZGluZyB0aGUgd29ya2Zsb3cuIE5hdHVyYWxseSwgdGhlIGBDQVJMOTE3MGAgY29uZmlnIHdpbGwgYmUgZW5hYmxlZCBmb3IgdGVzdGluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6NjY2NywiT3V0cHV0VG9rZW5zIjoxNTMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjRUMTA6MTQ6NTkuNzU4MzkyNTY3WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODU0Mzc4NDksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkNBUkw5MTcwXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiY2FybDkxNzBfY21kX2NhbGxiYWNrXCIsXG4gICAgXCJjYXJsOTE3MF9oYW5kbGVfY29tbWFuZF9yZXNwb25zZVwiLFxuICAgIFwiY2FybDkxNzBfdXNiX3J4X2lycV9jb21wbGV0ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBtaXNzaW5nIHJldHVybiBzdGF0ZW1lbnQgaW4gY2FybDkxNzBfY21kX2NhbGxiYWNrIGFmdGVyIGNhbGxpbmcgY2FybDkxNzBfcmVzdGFydCwgcHJldmVudGluZyBmdXJ0aGVyIGV4ZWN1dGlvbiBvZiB0aGUgZnVuY3Rpb24gd2hpY2ggd291bGQgb3RoZXJ3aXNlIGF0dGVtcHQgdG8gYWNxdWlyZSBhIHNwaW5sb2NrIGFuZCBjb21wbGV0ZSBhIHdhaXQgcXVldWUuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIFVTQiB3aXJlbGVzcyBkcml2ZXIgdGhhdCBjYW4gYmUgcmVhY2hlZCB2aWEgVVNCIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQ0FSTDkxNzBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjYXJsOTE3MF9jbWRfY2FsbGJhY2tcIixcbiAgICBcImNhcmw5MTcwX2hhbmRsZV9jb21tYW5kX3Jlc3BvbnNlXCIsXG4gICAgXCJjYXJsOTE3MF91c2JfcnhfaXJxX2NvbXBsZXRlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIG1pc3NpbmcgcmV0dXJuIHN0YXRlbWVudCBpbiBjYXJsOTE3MF9jbWRfY2FsbGJhY2sgYWZ0ZXIgY2FsbGluZyBjYXJsOTE3MF9yZXN0YXJ0LCBwcmV2ZW50aW5nIGZ1cnRoZXIgZXhlY3V0aW9uIG9mIHRoZSBmdW5jdGlvbiB3aGljaCB3b3VsZCBvdGhlcndpc2UgYXR0ZW1wdCB0byBhY3F1aXJlIGEgc3BpbmxvY2sgYW5kIGNvbXBsZXRlIGEgd2FpdCBxdWV1ZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgVVNCIHdpcmVsZXNzIGRyaXZlciB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBVU0IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflow8msvf[0].run-triage(0) Phase: Succeeded StartedAt: 2026-06-24 10:06:00 +0000 UTC FinishedAt: 2026-06-24 10:15:02 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "840ef6c78e6a2f694b578ecb9063241c992aaa9e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "CARL9170" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "840ef6c78e6a2f694b578ecb9063241c992aaa9e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "CARL9170" ], "series_id": "ff1f0ea6-3a3d-441a-96e5-63f3b5d660b6" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "carl9170_cmd_callback", "carl9170_handle_command_response", "carl9170_usb_rx_irq_complete" ], "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+CgkJCTx0ZD4yMDI2LzA2LzI0IDEwOjE0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0NBUkw5MTcwJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2FybDkxNzBfY21kX2NhbGxiYWNrJiMzNDssCiAgICAmIzM0O2Nhcmw5MTcwX2hhbmRsZV9jb21tYW5kX3Jlc3BvbnNlJiMzNDssCiAgICAmIzM0O2Nhcmw5MTcwX3VzYl9yeF9pcnFfY29tcGxldGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIG1pc3NpbmcgcmV0dXJuIHN0YXRlbWVudCBpbiBjYXJsOTE3MF9jbWRfY2FsbGJhY2sgYWZ0ZXIgY2FsbGluZyBjYXJsOTE3MF9yZXN0YXJ0LCBwcmV2ZW50aW5nIGZ1cnRoZXIgZXhlY3V0aW9uIG9mIHRoZSBmdW5jdGlvbiB3aGljaCB3b3VsZCBvdGhlcndpc2UgYXR0ZW1wdCB0byBhY3F1aXJlIGEgc3BpbmxvY2sgYW5kIGNvbXBsZXRlIGEgd2FpdCBxdWV1ZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgVVNCIHdpcmVsZXNzIGRyaXZlciB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBVU0IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNCAxMDoxNDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGJlZWEyZWNjYmVjNTViNzUwZmIxYzEwNDI2MmJkZDdjNTEzY2ZjM2VcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1biAyNCAxMDoxNDozMCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvcnguYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jXG5pbmRleCA2ODMzNDMwMTMwZjRjYS4uZWEzZjQzNWZiNjRjOTkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvcnguY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL3J4LmNcbkBAIC0xNDUsNiAmIzQzOzE0NSw3IEBAIHN0YXRpYyB2b2lkIGNhcmw5MTcwX2NtZF9jYWxsYmFjayhzdHJ1Y3QgYXI5MTcwICphciwgdTMyIGxlbiwgdm9pZCAqYnVmZmVyKVxuIFx0XHQgKiBhbmQgd2UgZ2V0IGEgc3RhY2sgdHJhY2UgZnJvbSB0aGVyZS5cbiBcdFx0ICovXG4gXHRcdGNhcmw5MTcwX3Jlc3RhcnQoYXIsIENBUkw5MTcwX1JSX0lOVkFMSURfUlNQKTtcbiYjNDM7XHRcdHJldHVybjtcbiBcdH1cbiBcbiBcdHNwaW5fbG9jayhcdTAwMjZhci1cdTAwM2VjbWRfbG9jayk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjQgMTA6MTQ8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7Q0FSTDkxNzAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtjYXJsOTE3MF9jbWRfY2FsbGJhY2smIzM0OywKICAgICYjMzQ7Y2FybDkxNzBfaGFuZGxlX2NvbW1hbmRfcmVzcG9uc2UmIzM0OywKICAgICYjMzQ7Y2FybDkxNzBfdXNiX3J4X2lycV9jb21wbGV0ZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgbWlzc2luZyByZXR1cm4gc3RhdGVtZW50IGluIGNhcmw5MTcwX2NtZF9jYWxsYmFjayBhZnRlciBjYWxsaW5nIGNhcmw5MTcwX3Jlc3RhcnQsIHByZXZlbnRpbmcgZnVydGhlciBleGVjdXRpb24gb2YgdGhlIGZ1bmN0aW9uIHdoaWNoIHdvdWxkIG90aGVyd2lzZSBhdHRlbXB0IHRvIGFjcXVpcmUgYSBzcGlubG9jayBhbmQgY29tcGxldGUgYSB3YWl0IHF1ZXVlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSBVU0Igd2lyZWxlc3MgZHJpdmVyIHRoYXQgY2FuIGJlIHJlYWNoZWQgdmlhIFVTQiBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBiZWVhMmVjY2JlYzU1Yjc1MGZiMWMxMDQyNjJiZGQ3YzUxM2NmYzNlCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFdlZCBKdW4gMjQgMTA6MTQ6MzAgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvcnguYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jCmluZGV4IDY4MzM0MzAxMzBmNGNhLi5lYTNmNDM1ZmI2NGM5OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL3J4LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL3J4LmMKQEAgLTE0NSw2ICYjNDM7MTQ1LDcgQEAgc3RhdGljIHZvaWQgY2FybDkxNzBfY21kX2NhbGxiYWNrKHN0cnVjdCBhcjkxNzAgKmFyLCB1MzIgbGVuLCB2b2lkICpidWZmZXIpCiAJCSAqIGFuZCB3ZSBnZXQgYSBzdGFjayB0cmFjZSBmcm9tIHRoZXJlLgogCQkgKi8KIAkJY2FybDkxNzBfcmVzdGFydChhciwgQ0FSTDkxNzBfUlJfSU5WQUxJRF9SU1ApOwomIzQzOwkJcmV0dXJuOwogCX0KIAogCXNwaW5fbG9jaygmYW1wO2FyLSZndDtjbWRfbG9jayk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI0IDEwOjE0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4NTUKCQkJCQkJCW91dHB1dDogNDgKCQkJCQkJCXRob3VnaHRzOiAxMTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQYXRjaCB0byBgY2FybDkxNzBfY21kX2NhbGxiYWNrYCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0JiMzOTtzIGJlZW4gYXBwbGllZCwgYW5kIGl0JiMzOTtzIGEgbWlub3IgY2hhbmdlIHRvIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvcnguY2AuIFNwZWNpZmljYWxseSwgdGhleSYjMzk7dmUgYWRkZWQgYSBgcmV0dXJuO2Agc3RhdGVtZW50IGFmdGVyIHRoZSBgY2FybDkxNzBfcmVzdGFydChhciwgQ0FSTDkxNzBfUlJfSU5WQUxJRF9SU1ApO2AgY2FsbCB3aXRoaW4gdGhlIGBjYXJsOTE3MF9jbWRfY2FsbGJhY2tgIGZ1bmN0aW9uLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcmVhc29uaW5nIGJlaGluZCB0aGlzLCBiZWNhdXNlLCBhdCBmaXJzdCBnbGFuY2UsIHRoZSBjaGFuZ2Ugc2VlbXMgYSBsaXR0bGUuLi4gYWJydXB0LiBMZXQgbWUgZGlnIGludG8gdGhlIGNvbnRleHQgb2YgdGhlIGBjYXJsOTE3MF9jbWRfY2FsbGJhY2tgIGZ1bmN0aW9uIGl0c2VsZiB0byBmaWd1cmUgb3V0IHdoeSB0aGlzIGByZXR1cm5gIHdhcyBhZGRlZCBhbmQgd2hhdCBwb3RlbnRpYWwgaXNzdWVzIGl0IGFkZHJlc3Nlcy4gVW5kZXJzdGFuZGluZyB0aGUgY29udHJvbCBmbG93IGFyb3VuZCB0aGF0IGNhbGwgdG8gYGNhcmw5MTcwX3Jlc3RhcnRgIGlzIGtleSBoZXJlLiBJJiMzOTtsbCBuZWVkIHRvIHNlZSB3aGF0IGhhcHBlbnMgYWZ0ZXIgdGhhdCByZXN0YXJ0IGZ1bmN0aW9uIGV4ZWN1dGVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI0IDEwOjE0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2Nhcmw5MTcwX2NtZF9jYWxsYmFjayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jPTk2PXN0YXRpYyBpbnQgY2FybDkxNzBfY2hlY2tfc2VxdWVuY2Uoc3RydWN0IGFyOTE3MCAqYXIsIHVuc2lnbmVkIGludCBzZXEpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL3J4LmMtMTI4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL3J4LmM6MTI5OnN0YXRpYyB2b2lkIGNhcmw5MTcwX2NtZF9jYWxsYmFjayhzdHJ1Y3QgYXI5MTcwICphciwgdTMyIGxlbiwgdm9pZCAqYnVmZmVyKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL3J4LmMtMTMwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvcnguYz0xNjI9dm9pZCBjYXJsOTE3MF9oYW5kbGVfY29tbWFuZF9yZXNwb25zZShzdHJ1Y3QgYXI5MTcwICphciwgdm9pZCAqYnVmLCB1MzIgbGVuKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jLTE2OC1cdFx0aWYgKCEoY21kLVx1MDAzZWhkci5jbWQgXHUwMDI2IENBUkw5MTcwX0NNRF9BU1lOQ19GTEFHKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jOjE2OTpcdFx0XHRjYXJsOTE3MF9jbWRfY2FsbGJhY2soYXIsIGxlbiwgYnVmKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jLTE3MC1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNCAxMDoxNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTc0CgkJCQkJCQlvdXRwdXQ6IDQ2CgkJCQkJCQl0aG91Z2h0czogMzEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IG1lbnRhbCBwcm9jZXNzOgoKKipEaXZpbmcgaW50byB0aGUgQXRoZXJvcyBEcml2ZXIqKgoKT2theSwgdGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQmIzM5O3MgaGFwcGVuaW5nIGluIHRoZSBjYXJsOTE3MCB3aXJlbGVzcyBkcml2ZXIuIFNwZWNpZmljYWxseSwgSSYjMzk7bSBmb2N1c2luZyBvbiB0aGUgcmVjZWl2ZSBwYXRoLCBhbmQgSSYjMzk7bSBoZWFkaW5nIHN0cmFpZ2h0IGZvciB0aGUgYHJ4LmNgIGZpbGUuIEkmIzM5O20gZ29pbmcgdG8gc3RhcnQgbXkgaW52ZXN0aWdhdGlvbiBhcm91bmQgbGluZSAxMjkuIEkmIzM5O20gaG9waW5nIHRoYXQmIzM5O3MgYSBnb29kIGVudHJ5IHBvaW50IHRvIHNlZSBob3cgaW5jb21pbmcgd2lyZWxlc3MgZGF0YSBpcyBoYW5kbGVkLiBMaW5lIDEyOSBzaG91bGQgZ2l2ZSBhIGdvb2Qgc3RhcnQgdG8gd2hlcmUgdG8gbG9vay4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNCAxMDoxNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMTI5LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDUwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAxMjk6XHRzdGF0aWMgdm9pZCBjYXJsOTE3MF9jbWRfY2FsbGJhY2soc3RydWN0IGFyOTE3MCAqYXIsIHUzMiBsZW4sIHZvaWQgKmJ1ZmZlcilcbiAxMzA6XHR7XG4gMTMxOlx0XHQvKlxuIDEzMjpcdFx0ICogU29tZSBjb21tYW5kcyBtYXkgaGF2ZSBhIHZhcmlhYmxlIHJlc3BvbnNlIGxlbmd0aFxuIDEzMzpcdFx0ICogYW5kIHdlIGNhbm5vdCBwcmVkaWN0IHRoZSBjb3JyZWN0IGxlbmd0aCBpbiBhZHZhbmNlLlxuIDEzNDpcdFx0ICogU28gd2Ugb25seSBjaGVjayBpZiB3ZSBwcm92aWRlZCBlbm91Z2ggc3BhY2UgZm9yIHRoZSBkYXRhLlxuIDEzNTpcdFx0ICovXG4gMTM2Olx0XHRpZiAodW5saWtlbHkoYXItXHUwMDNlcmVhZGxlbiAhPSAobGVuIC0gNCkpKSB7XG4gMTM3Olx0XHRcdGRldl93YXJuKFx1MDAyNmFyLVx1MDAzZXVkZXYtXHUwMDNlZGV2LCBcJiMzNDtyZWNlaXZlZCBpbnZhbGlkIGNvbW1hbmQgcmVzcG9uc2U6XCYjMzQ7XG4gMTM4Olx0XHRcdFx0IFwmIzM0O2dvdCAlZCwgaW5zdGVhZCBvZiAlZFxcblwmIzM0OywgbGVuIC0gNCwgYXItXHUwMDNlcmVhZGxlbik7XG4gMTM5Olx0XHRcdHByaW50X2hleF9kdW1wX2J5dGVzKFwmIzM0O2Nhcmw5MTcwIGNtZDpcJiMzNDssIERVTVBfUFJFRklYX09GRlNFVCxcbiAxNDA6XHRcdFx0XHRhci1cdTAwM2VjbWRfYnVmLCAoYXItXHUwMDNlY21kLmhkci5sZW4gJiM0MzsgNCkgXHUwMDI2IDB4M2YpO1xuIDE0MTpcdFx0XHRwcmludF9oZXhfZHVtcF9ieXRlcyhcJiMzNDtjYXJsOTE3MCByc3A6XCYjMzQ7LCBEVU1QX1BSRUZJWF9PRkZTRVQsXG4gMTQyOlx0XHRcdFx0YnVmZmVyLCBsZW4pO1xuIDE0MzpcdFx0XHQvKlxuIDE0NDpcdFx0XHQgKiBEbyBub3QgY29tcGxldGUuIFRoZSBjb21tYW5kIHRpbWVzIG91dCxcbiAxNDU6XHRcdFx0ICogYW5kIHdlIGdldCBhIHN0YWNrIHRyYWNlIGZyb20gdGhlcmUuXG4gMTQ2Olx0XHRcdCAqL1xuIDE0NzpcdFx0XHRjYXJsOTE3MF9yZXN0YXJ0KGFyLCBDQVJMOTE3MF9SUl9JTlZBTElEX1JTUCk7XG4gMTQ4Olx0XHRcdHJldHVybjtcbiAxNDk6XHRcdH1cbiAxNTA6XHRcbiAxNTE6XHRcdHNwaW5fbG9jayhcdTAwMjZhci1cdTAwM2VjbWRfbG9jayk7XG4gMTUyOlx0XHRpZiAoYXItXHUwMDNlcmVhZGJ1Zikge1xuIDE1MzpcdFx0XHRpZiAobGVuIFx1MDAzZT0gNClcbiAxNTQ6XHRcdFx0XHRtZW1jcHkoYXItXHUwMDNlcmVhZGJ1ZiwgYnVmZmVyICYjNDM7IDQsIGxlbiAtIDQpO1xuIDE1NTpcdFxuIDE1NjpcdFx0XHRhci1cdTAwM2VyZWFkYnVmID0gTlVMTDtcbiAxNTc6XHRcdH1cbiAxNTg6XHRcdGNvbXBsZXRlKFx1MDAyNmFyLVx1MDAzZWNtZF93YWl0KTtcbiAxNTk6XHRcdHNwaW5fdW5sb2NrKFx1MDAyNmFyLVx1MDAzZWNtZF9sb2NrKTtcbiAxNjA6XHR9XG4gMTYxOlx0XG4gMTYyOlx0dm9pZCBjYXJsOTE3MF9oYW5kbGVfY29tbWFuZF9yZXNwb25zZShzdHJ1Y3QgYXI5MTcwICphciwgdm9pZCAqYnVmLCB1MzIgbGVuKVxuIDE2MzpcdHtcbiAxNjQ6XHRcdHN0cnVjdCBjYXJsOTE3MF9yc3AgKmNtZCA9IGJ1ZjtcbiAxNjU6XHRcdHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWY7XG4gMTY2Olx0XG4gMTY3Olx0XHRpZiAoKGNtZC1cdTAwM2VoZHIuY21kIFx1MDAyNiBDQVJMOTE3MF9SU1BfRkxBRykgIT0gQ0FSTDkxNzBfUlNQX0ZMQUcpIHtcbiAxNjg6XHRcdFx0aWYgKCEoY21kLVx1MDAzZWhkci5jbWQgXHUwMDI2IENBUkw5MTcwX0NNRF9BU1lOQ19GTEFHKSlcbiAxNjk6XHRcdFx0XHRjYXJsOTE3MF9jbWRfY2FsbGJhY2soYXIsIGxlbiwgYnVmKTtcbiAxNzA6XHRcbiAxNzE6XHRcdFx0cmV0dXJuO1xuIDE3MjpcdFx0fVxuIDE3MzpcdFxuIDE3NDpcdFx0aWYgKHVubGlrZWx5KGNtZC1cdTAwM2VoZHIubGVuICE9IChsZW4gLSA0KSkpIHtcbiAxNzU6XHRcdFx0aWYgKG5ldF9yYXRlbGltaXQoKSkge1xuIDE3NjpcdFx0XHRcdHdpcGh5X2Vycihhci1cdTAwM2Vody1cdTAwM2V3aXBoeSwgXCYjMzQ7Rlc6IHJlY2VpdmVkIG92ZXItL3VuZGVyXCYjMzQ7XG4gMTc3Olx0XHRcdFx0XHRcJiMzNDtzaXplZCBldmVudCAleCAoJWQsIGJ1dCBzaG91bGQgYmUgJWQpLlxcblwmIzM0OyxcbiAxNzg6XHRcdFx0XHQgICAgICAgY21kLVx1MDAzZWhkci5jbWQsIGNtZC1cdTAwM2VoZHIubGVuLCBsZW4gLSA0KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNCAxMDoxNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNjcyCgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogMTU2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUHJvcG9zZWQgQ29kZSBDaGFuZ2UqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyBpbnRyb2R1Y2luZyBhIGByZXR1cm47YCBzdGF0ZW1lbnQuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IHRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYW5kIHRoZSBnb2FsIGlzIHRvIHByZXZlbnQgdGhlIHJlc3Qgb2YgdGhlIGZ1bmN0aW9uIGZyb20gZXhlY3V0aW5nIGFmdGVyIGBjYXJsOTE3MF9yZXN0YXJ0YCBpcyBjYWxsZWQuIEl0JiMzOTtzIG1ha2luZyBzdXJlIHdlIGRvbiYjMzk7dCBlbmQgdXAgd2l0aCBhIHVzZS1hZnRlci1mcmVlIHNjZW5hcmlvIG9yIHNpbWlsYXIgaXNzdWVzIGlmIGBjYXJsOTE3MF9yZXN0YXJ0YCBkZWNpZGVzIHRvIGZyZWUgYGFyYCwgb3IgaWYgd2UganVzdCBwbGFpbiBkb24mIzM5O3Qgd2FudCB0byBjb250aW51ZSB0aGUgY29tbWFuZCBwcm9jZXNzaW5nIGFmdGVyIHRoZSByZXN0YXJ0IGlzIHRyaWdnZXJlZC4KCkFoLCByaWdodCwgYGNhcmw5MTcwX3Jlc3RhcnRgIHNjaGVkdWxlcyB3b3JrIHRvIHJlc3RhcnQgdGhlIGRldmljZS4gSWYgd2UgKmRvbiYjMzk7dCogcmV0dXJuLCB3ZSYjMzk7ZCBwcm9jZWVkIHRvIGV4ZWN1dGUgYHNwaW5fbG9jaygmYW1wO2FyLSZndDtjbWRfbG9jayk7YCBhbmQgYGNvbXBsZXRlKCZhbXA7YXItJmd0O2NtZF93YWl0KTtgLiBTbyBpdCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLiBHb3QgaXQuCgpOb3csIGxldCBtZSBqdXN0IHF1aWNrbHkgcHVsbCB1cCB0aGUgY29uZmlnIG9wdGlvbnMgYXNzb2NpYXRlZCB3aXRoIGBjYXJsOTE3MGAgdG8gbWFrZSBzdXJlIHRoaXMgZG9lc24mIzM5O3QgaW50cm9kdWNlIGFueSB1bmZvcmVzZWVuIGRlcGVuZGVuY2llcyBvciBjb25mbGljdHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjQgMTA6MTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIENBUkw5MTcwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnOjI6Y29uZmlnIENBUkw5MTcwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7TGludXggQ29tbXVuaXR5IEFSOTE3MCA4MDIuMTFuIFVTQiBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWctMTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZzoxNzpjb25maWcgQ0FSTDkxNzBfTEVEU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWctMTgtXHRib29sIFwmIzM0O1NvZnRMRUQgU3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnLTI2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWc6Mjc6Y29uZmlnIENBUkw5MTcwX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnLTI4LVx0Ym9vbCBcJiMzNDtEZWJ1Z0ZTIFN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZy0zNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnOjM2OmNvbmZpZyBDQVJMOTE3MF9XUENcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnLTM3LVx0Ym9vbFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnLTQwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWc6NDE6Y29uZmlnIENBUkw5MTcwX0hXUk5HXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZy00Mi1cdGJvb2wgXCYjMzQ7UmFuZG9tIG51bWJlciBnZW5lcmF0b3JcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNCAxMDoxNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NTQ1CgkJCQkJCQlvdXRwdXQ6IDQ3CgkJCQkJCQl0aG91Z2h0czogMTQyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlJlYWNoaW5nIHRoZSBDQVJMOTE3MCBEcml2ZXIgZm9yIEZ1enppbmcqKgoKT2theSwgc28gdGhlIHRhcmdldCBjb25maWcgaXMgYENBUkw5MTcwYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGRldGVybWluZSByZWFjaGFiaWxpdHksIHNwZWNpZmljYWxseSBpbiB2aXJ0dWFsaXplZCBzZXR1cHMg4oCTIGEgY3J1Y2lhbCBjb25zaWRlcmF0aW9uIGZvciBlZmZpY2llbnQgZnV6emluZy4gU2luY2UgYENBUkw5MTcwYCBpcyBhIFVTQiBkcml2ZXIsIHRoZSAmIzM0O0xpbnV4IENvbW11bml0eSBBUjkxNzAgODAyLjExbiBVU0Igc3VwcG9ydCYjMzQ7IGRyaXZlciwgSSBpbW1lZGlhdGVseSB0aGluayBvZiBob3cgVVNCIGRyaXZlcnMgYXJlIHR5cGljYWxseSBmdXp6ZWQuIFN5emthbGxlciwgd2l0aCBpdHMgYGR1bW15X2hjZGAgb3IgYHJhdy1nYWRnZXRgIG9wdGlvbnMsIGNvbWVzIHRvIG1pbmQuIEdpdmVuIHRoYXQgdGhlIGRyaXZlciBpcyBhIFVTQiBkcml2ZXIsIGl0IHNob3VsZCBiZSByZWFjaGFibGUuCgpOb3csIGxldCYjMzk7cyBpZGVudGlmeSByZWxldmFudCBlbnRyeSBwb2ludHMuIEkgc2hvdWxkIGZvY3VzIG9uIHRoZSBjb21tYW5kIGhhbmRsaW5nIGFuZCByZXNwb25zZSByb3V0aW5lcy4gYGNhcmw5MTcwX2NtZF9jYWxsYmFja2AgYW5kIGBjYXJsOTE3MF9oYW5kbGVfY29tbWFuZF9yZXNwb25zZWAgYXJlIHRoZSBwcmltZSB0YXJnZXRzLiBBIHF1aWNrIGdsYW5jZSBzdWdnZXN0cyB0aGF0IGBjYXJsOTE3MF9oYW5kbGVfY29tbWFuZF9yZXNwb25zZWAgaXMgY2FsbGVkIGZyb20gYGNhcmw5MTcwX3J4YC4gR29vZCwgdGhhdCBtZWFucyB0aGUgUlggcGF0aCBjb3VsZCBsZWFkIHVzIGRpcmVjdGx5IHRvIHRoZSBjb21tYW5kIHByb2Nlc3NpbmcgbG9naWMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI0IDEwOjE0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2Nhcmw5MTcwX2hhbmRsZV9jb21tYW5kX3Jlc3BvbnNlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvY2FybDkxNzAuaD01NzU9dm9pZCBjYXJsOTE3MF9yeChzdHJ1Y3QgYXI5MTcwICphciwgdm9pZCAqYnVmLCB1bnNpZ25lZCBpbnQgbGVuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9jYXJsOTE3MC5oOjU3Njp2b2lkIGNhcmw5MTcwX2hhbmRsZV9jb21tYW5kX3Jlc3BvbnNlKHN0cnVjdCBhcjkxNzAgKmFyLCB2b2lkICpidWYsIHUzMiBsZW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL2Nhcmw5MTcwLmgtNTc3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jPTEyOT1zdGF0aWMgdm9pZCBjYXJsOTE3MF9jbWRfY2FsbGJhY2soc3RydWN0IGFyOTE3MCAqYXIsIHUzMiBsZW4sIHZvaWQgKmJ1ZmZlcilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvcnguYy0xNjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvcnguYzoxNjI6dm9pZCBjYXJsOTE3MF9oYW5kbGVfY29tbWFuZF9yZXNwb25zZShzdHJ1Y3QgYXI5MTcwICphciwgdm9pZCAqYnVmLCB1MzIgbGVuKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL3J4LmMtMTYzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvcnguYz04MjY9c3RhdGljIHZvaWQgY2FybDkxNzBfcnhfdW50aWVfY21kcyhzdHJ1Y3QgYXI5MTcwICphciwgY29uc3QgdTggKnJlc3BidWYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL3J4LmMtODQxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL3J4LmM6ODQyOlx0XHRjYXJsOTE3MF9oYW5kbGVfY29tbWFuZF9yZXNwb25zZShhciwgY21kLCBjbWQtXHUwMDNlaGRyLmxlbiAmIzQzOyA0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jLTg0My1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvdXNiLmM9Mjc3PXN0YXRpYyB2b2lkIGNhcmw5MTcwX3VzYl9yeF9pcnFfY29tcGxldGUoc3RydWN0IHVyYiAqdXJiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC91c2IuYy0zMDYtXHQgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC91c2IuYzozMDc6XHRjYXJsOTE3MF9oYW5kbGVfY29tbWFuZF9yZXNwb25zZShhciwgdXJiLVx1MDAzZXRyYW5zZmVyX2J1ZmZlcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC91c2IuYy0zMDgtXHRcdFx0XHRcdCB1cmItXHUwMDNlYWN0dWFsX2xlbmd0aCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI0IDEwOjE0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU2MTYKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAxMTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgUG90ZW50aWFsIFVTQiBGdXp6aW5nIFRhcmdldHMqKgoKT2theSwgc28gYGNhcmw5MTcwX3VzYl9yeF9pcnFfY29tcGxldGVgIGlzIHRoZSBjb21wbGV0aW9uIGhhbmRsZXIgZm9yIFVSQnMsIHdoaWNoIG1lYW5zIGl0JiMzOTtzIGEgZGlyZWN0IGVudHJ5IHBvaW50IGZyb20gVVNCIGludGVyYWN0aW9uLiBUaGF0JiMzOTtzIGltbWVkaWF0ZWx5IGludGVyZXN0aW5nIGZyb20gYSBmdXp6aW5nIHBlcnNwZWN0aXZlOyBhIGRpcmVjdCBwYXRoIHRvIHRoZSBjb2RlIGlzIHdoYXQgSSYjMzk7bSBsb29raW5nIGZvci4gR2l2ZW4gdGhhdCwgSSBuZWVkIHRvIGZvY3VzIG15IGZ1enppbmcgZWZmb3J0cyBvbiB0aGlzIGZ1bmN0aW9uIGFuZCBpdHMgYXNzb2NpYXRlZCBjYWxsIHN0YWNrLiBJIG5lZWQgdG8gY2xvc2VseSBleGFtaW5lIGBjYXJsOTE3MF9jbWRfY2FsbGJhY2tgIGFuZCBgY2FybDkxNzBfaGFuZGxlX2NvbW1hbmRfcmVzcG9uc2VgLCBzaW5jZSB0aG9zZSBhcmUgbGlrZWx5IHdoZXJlIHRoZSBwcm9jZXNzaW5nIGhhcHBlbnMgd2hlbiB0aGF0IGNvbXBsZXRpb24gaGFuZGxlciBpcyBoaXQuCgpCZWZvcmUgSSBnbyBmdXJ0aGVyLCBsZXQmIzM5O3Mgc2VlIHdoYXQgb3RoZXIgZGVwZW5kZW5jaWVzIGV4aXN0LiBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIHRoZSBjb25maWcgb3B0aW9ucy4gSXQgbG9va3MgbGlrZSBgQ0FSTDkxNzBgIGRlcGVuZHMgb24gYm90aCBgVVNCYCBhbmQgYE1BQzgwMjExYCwgc28gdGhhdCBnaXZlcyBtZSBzb21lIGRpcmVjdGlvbiBhbmQgY29udGV4dCBhYm91dCB0aGUgYnVpbGQgYW5kIGVudmlyb25tZW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNCAxMDoxNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkZXBlbmRzIG9uJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWc9Mj1jb25maWcgQ0FSTDkxNzBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtMaW51eCBDb21tdW5pdHkgQVI5MTcwIDgwMi4xMW4gVVNCIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnOjQ6XHRkZXBlbmRzIG9uIFVTQiBcdTAwMjZcdTAwMjYgTUFDODAyMTFcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnLTUtXHRzZWxlY3QgQVRIX0NPTU1PTlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnPTE3PWNvbmZpZyBDQVJMOTE3MF9MRURTXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWctMTktXHRkZWZhdWx0IHlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnOjIwOlx0ZGVwZW5kcyBvbiBDQVJMOTE3MFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWc6MjE6XHRkZXBlbmRzIG9uIE1BQzgwMjExX0xFRFNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnLTIyLVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnPTI3PWNvbmZpZyBDQVJMOTE3MF9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZy0yOC1cdGJvb2wgXCYjMzQ7RGVidWdGUyBTdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZzoyOTpcdGRlcGVuZHMgb24gQ0FSTDkxNzAgXHUwMDI2XHUwMDI2IERFQlVHX0ZTIFx1MDAyNlx1MDAyNiBNQUM4MDIxMV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZy0zMC1cdGRlZmF1bHQgblxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnPTM2PWNvbmZpZyBDQVJMOTE3MF9XUENcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnLTM3LVx0Ym9vbFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWc6Mzg6XHRkZXBlbmRzIG9uIENBUkw5MTcwIFx1MDAyNlx1MDAyNiAoSU5QVVQgPSB5IHx8IElOUFVUID0gQ0FSTDkxNzApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZy0zOS1cdGRlZmF1bHQgeVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnPTQxPWNvbmZpZyBDQVJMOTE3MF9IV1JOR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWctNDItXHRib29sIFwmIzM0O1JhbmRvbSBudW1iZXIgZ2VuZXJhdG9yXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZzo0MzpcdGRlcGVuZHMgb24gQ0FSTDkxNzAgXHUwMDI2XHUwMDI2IChIV19SQU5ET00gPSB5IHx8IEhXX1JBTkRPTSA9IENBUkw5MTcwKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWctNDQtXHRkZWZhdWx0IG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjQgMTA6MTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjY2NwoJCQkJCQkJb3V0cHV0OiAxNTMKCQkJCQkJCXRob3VnaHRzOiAxMjgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBDQVJMOTE3MCBDb25maWd1cmF0aW9uIGFuZCBQb3RlbnRpYWwgRnV6emluZyBUYXJnZXRzKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIFRoZSBjb3JlIGNvbmZpZ3VyYXRpb24gaGVyZSBpcyBjbGVhcmx5IGBDQVJMOTE3MGAuIFRoZSBmaXggaXRzZWxmIGlzIHNpdHVhdGVkIHdpdGhpbiB0aGUgYGNhcmw5MTcwX2NtZF9jYWxsYmFja2AgZnVuY3Rpb24g4oCTIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGFpbWVkIGF0IGF2ZXJ0aW5nIGEgcG9zc2libGUgYnVnIHdoZW4gYGNhcmw5MTcwX3Jlc3RhcnRgIGdldHMgY2FsbGVkLiBUaGlzIG1lYW5zIGl0JiMzOTtzIGFib3V0IHJvYnVzdCBleGVjdXRpb24gYW5kIGVycm9yIGhhbmRsaW5nLCB3aGljaCBpcyBjcml0aWNhbC4gR2l2ZW4gdGhpcyB0YXJnZXRlZCBmaXgsIEkmIzM5O20gYWJzb2x1dGVseSBnb2luZyB0byBtYXJrIHRoaXMgYXMgYFdvcnRoRnV6emluZz10cnVlYC4KCk5vdywgZm9yIGZvY3VzIHN5bWJvbHMsIHRvIHJlYWxseSBkaWcgaW50byB0aGUgaW1wbGljYXRpb25zIGFuZCBwb3NzaWJsZSB2dWxuZXJhYmlsaXRpZXMsIEkmIzM5O2xsIGNvbmNlbnRyYXRlIG15IGF0dGVudGlvbiBvbiBgY2FybDkxNzBfY21kX2NhbGxiYWNrYCwgb2YgY291cnNlLCBidXQgYWxzbyBvbiBgY2FybDkxNzBfaGFuZGxlX2NvbW1hbmRfcmVzcG9uc2VgLCBhbmQgYGNhcmw5MTcwX3VzYl9yeF9pcnFfY29tcGxldGVgLiBUaGUgY29tbWFuZCByZXNwb25zZSBhbmQgdGhlIGludGVycnVwdCBjb21wbGV0aW9uIGFyZSBrZXkgdG8gdW5kZXJzdGFuZGluZyB0aGUgd29ya2Zsb3cuIE5hdHVyYWxseSwgdGhlIGBDQVJMOTE3MGAgY29uZmlnIHdpbGwgYmUgZW5hYmxlZCBmb3IgdGVzdGluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjQgMTA6MTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0NBUkw5MTcwJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2FybDkxNzBfY21kX2NhbGxiYWNrJiMzNDssCiAgICAmIzM0O2Nhcmw5MTcwX2hhbmRsZV9jb21tYW5kX3Jlc3BvbnNlJiMzNDssCiAgICAmIzM0O2Nhcmw5MTcwX3VzYl9yeF9pcnFfY29tcGxldGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIG1pc3NpbmcgcmV0dXJuIHN0YXRlbWVudCBpbiBjYXJsOTE3MF9jbWRfY2FsbGJhY2sgYWZ0ZXIgY2FsbGluZyBjYXJsOTE3MF9yZXN0YXJ0LCBwcmV2ZW50aW5nIGZ1cnRoZXIgZXhlY3V0aW9uIG9mIHRoZSBmdW5jdGlvbiB3aGljaCB3b3VsZCBvdGhlcndpc2UgYXR0ZW1wdCB0byBhY3F1aXJlIGEgc3BpbmxvY2sgYW5kIGNvbXBsZXRlIGEgd2FpdCBxdWV1ZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgVVNCIHdpcmVsZXNzIGRyaXZlciB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBVU0IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7Q0FSTDkxNzAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtjYXJsOTE3MF9jbWRfY2FsbGJhY2smIzM0OywKICAgICYjMzQ7Y2FybDkxNzBfaGFuZGxlX2NvbW1hbmRfcmVzcG9uc2UmIzM0OywKICAgICYjMzQ7Y2FybDkxNzBfdXNiX3J4X2lycV9jb21wbGV0ZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgbWlzc2luZyByZXR1cm4gc3RhdGVtZW50IGluIGNhcmw5MTcwX2NtZF9jYWxsYmFjayBhZnRlciBjYWxsaW5nIGNhcmw5MTcwX3Jlc3RhcnQsIHByZXZlbnRpbmcgZnVydGhlciBleGVjdXRpb24gb2YgdGhlIGZ1bmN0aW9uIHdoaWNoIHdvdWxkIG90aGVyd2lzZSBhdHRlbXB0IHRvIGFjcXVpcmUgYSBzcGlubG9jayBhbmQgY29tcGxldGUgYSB3YWl0IHF1ZXVlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSBVU0Igd2lyZWxlc3MgZHJpdmVyIHRoYXQgY2FuIGJlIHJlYWNoZWQgdmlhIFVTQiBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDYtMjRUMTA6MTQ6MzEuOTAwNzE2MjI2WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mjc5NDMxMzA3NzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQ0FSTDkxNzBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjYXJsOTE3MF9jbWRfY2FsbGJhY2tcIixcbiAgICBcImNhcmw5MTcwX2hhbmRsZV9jb21tYW5kX3Jlc3BvbnNlXCIsXG4gICAgXCJjYXJsOTE3MF91c2JfcnhfaXJxX2NvbXBsZXRlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIG1pc3NpbmcgcmV0dXJuIHN0YXRlbWVudCBpbiBjYXJsOTE3MF9jbWRfY2FsbGJhY2sgYWZ0ZXIgY2FsbGluZyBjYXJsOTE3MF9yZXN0YXJ0LCBwcmV2ZW50aW5nIGZ1cnRoZXIgZXhlY3V0aW9uIG9mIHRoZSBmdW5jdGlvbiB3aGljaCB3b3VsZCBvdGhlcndpc2UgYXR0ZW1wdCB0byBhY3F1aXJlIGEgc3BpbmxvY2sgYW5kIGNvbXBsZXRlIGEgd2FpdCBxdWV1ZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgVVNCIHdpcmVsZXNzIGRyaXZlciB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBVU0IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjRUMTA6MTQ6MzEuOTAwNzE5OTg2WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MjY4NjcxMDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBiZWVhMmVjY2JlYzU1Yjc1MGZiMWMxMDQyNjJiZGQ3YzUxM2NmYzNlXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBXZWQgSnVuIDI0IDEwOjE0OjMwIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL3J4LmNcXG5pbmRleCA2ODMzNDMwMTMwZjRjYS4uZWEzZjQzNWZiNjRjOTkgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL3J4LmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvcnguY1xcbkBAIC0xNDUsNiArMTQ1LDcgQEAgc3RhdGljIHZvaWQgY2FybDkxNzBfY21kX2NhbGxiYWNrKHN0cnVjdCBhcjkxNzAgKmFyLCB1MzIgbGVuLCB2b2lkICpidWZmZXIpXFxuIFxcdFxcdCAqIGFuZCB3ZSBnZXQgYSBzdGFjayB0cmFjZSBmcm9tIHRoZXJlLlxcbiBcXHRcXHQgKi9cXG4gXFx0XFx0Y2FybDkxNzBfcmVzdGFydChhciwgQ0FSTDkxNzBfUlJfSU5WQUxJRF9SU1ApO1xcbitcXHRcXHRyZXR1cm47XFxuIFxcdH1cXG4gXFxuIFxcdHNwaW5fbG9jayhcXHUwMDI2YXItXFx1MDAzZWNtZF9sb2NrKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjRUMTA6MTQ6MzIuMzI4MjMxMjcxWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNzUxNTYwMjY2NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJDQVJMOTE3MFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImNhcmw5MTcwX2NtZF9jYWxsYmFja1wiLFxuICAgIFwiY2FybDkxNzBfaGFuZGxlX2NvbW1hbmRfcmVzcG9uc2VcIixcbiAgICBcImNhcmw5MTcwX3VzYl9yeF9pcnFfY29tcGxldGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgbWlzc2luZyByZXR1cm4gc3RhdGVtZW50IGluIGNhcmw5MTcwX2NtZF9jYWxsYmFjayBhZnRlciBjYWxsaW5nIGNhcmw5MTcwX3Jlc3RhcnQsIHByZXZlbnRpbmcgZnVydGhlciBleGVjdXRpb24gb2YgdGhlIGZ1bmN0aW9uIHdoaWNoIHdvdWxkIG90aGVyd2lzZSBhdHRlbXB0IHRvIGFjcXVpcmUgYSBzcGlubG9jayBhbmQgY29tcGxldGUgYSB3YWl0IHF1ZXVlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSBVU0Igd2lyZWxlc3MgZHJpdmVyIHRoYXQgY2FuIGJlIHJlYWNoZWQgdmlhIFVTQiBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGJlZWEyZWNjYmVjNTViNzUwZmIxYzEwNDI2MmJkZDdjNTEzY2ZjM2VcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1biAyNCAxMDoxNDozMCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL3J4LmNcbmluZGV4IDY4MzM0MzAxMzBmNGNhLi5lYTNmNDM1ZmI2NGM5OSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvcnguY1xuQEAgLTE0NSw2ICsxNDUsNyBAQCBzdGF0aWMgdm9pZCBjYXJsOTE3MF9jbWRfY2FsbGJhY2soc3RydWN0IGFyOTE3MCAqYXIsIHUzMiBsZW4sIHZvaWQgKmJ1ZmZlcilcbiBcdFx0ICogYW5kIHdlIGdldCBhIHN0YWNrIHRyYWNlIGZyb20gdGhlcmUuXG4gXHRcdCAqL1xuIFx0XHRjYXJsOTE3MF9yZXN0YXJ0KGFyLCBDQVJMOTE3MF9SUl9JTlZBTElEX1JTUCk7XG4rXHRcdHJldHVybjtcbiBcdH1cbiBcbiBcdHNwaW5fbG9jayhcdTAwMjZhci1cdTAwM2VjbWRfbG9jayk7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQxMDoxNDozMi4zMjgyMzI2MTFaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTQ5NzY5NTQ2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUGF0Y2ggdG8gYGNhcmw5MTcwX2NtZF9jYWxsYmFja2AqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQncyBiZWVuIGFwcGxpZWQsIGFuZCBpdCdzIGEgbWlub3IgY2hhbmdlIHRvIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvcnguY2AuIFNwZWNpZmljYWxseSwgdGhleSd2ZSBhZGRlZCBhIGByZXR1cm47YCBzdGF0ZW1lbnQgYWZ0ZXIgdGhlIGBjYXJsOTE3MF9yZXN0YXJ0KGFyLCBDQVJMOTE3MF9SUl9JTlZBTElEX1JTUCk7YCBjYWxsIHdpdGhpbiB0aGUgYGNhcmw5MTcwX2NtZF9jYWxsYmFja2AgZnVuY3Rpb24uIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSByZWFzb25pbmcgYmVoaW5kIHRoaXMsIGJlY2F1c2UsIGF0IGZpcnN0IGdsYW5jZSwgdGhlIGNoYW5nZSBzZWVtcyBhIGxpdHRsZS4uLiBhYnJ1cHQuIExldCBtZSBkaWcgaW50byB0aGUgY29udGV4dCBvZiB0aGUgYGNhcmw5MTcwX2NtZF9jYWxsYmFja2AgZnVuY3Rpb24gaXRzZWxmIHRvIGZpZ3VyZSBvdXQgd2h5IHRoaXMgYHJldHVybmAgd2FzIGFkZGVkIGFuZCB3aGF0IHBvdGVudGlhbCBpc3N1ZXMgaXQgYWRkcmVzc2VzLiBVbmRlcnN0YW5kaW5nIHRoZSBjb250cm9sIGZsb3cgYXJvdW5kIHRoYXQgY2FsbCB0byBgY2FybDkxNzBfcmVzdGFydGAgaXMga2V5IGhlcmUuIEknbGwgbmVlZCB0byBzZWUgd2hhdCBoYXBwZW5zIGFmdGVyIHRoYXQgcmVzdGFydCBmdW5jdGlvbiBleGVjdXRlcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTg1NSwiT3V0cHV0VG9rZW5zIjo0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExNCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI0VDEwOjE0OjM2LjQ3ODAwMzU1N1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNjEyNjk1MjYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY2FybDkxNzBfY21kX2NhbGxiYWNrXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jPTk2PXN0YXRpYyBpbnQgY2FybDkxNzBfY2hlY2tfc2VxdWVuY2Uoc3RydWN0IGFyOTE3MCAqYXIsIHVuc2lnbmVkIGludCBzZXEpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvcnguYy0xMjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL3J4LmM6MTI5OnN0YXRpYyB2b2lkIGNhcmw5MTcwX2NtZF9jYWxsYmFjayhzdHJ1Y3QgYXI5MTcwICphciwgdTMyIGxlbiwgdm9pZCAqYnVmZmVyKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jLTEzMC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvcnguYz0xNjI9dm9pZCBjYXJsOTE3MF9oYW5kbGVfY29tbWFuZF9yZXNwb25zZShzdHJ1Y3QgYXI5MTcwICphciwgdm9pZCAqYnVmLCB1MzIgbGVuKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL3J4LmMtMTY4LVxcdFxcdGlmICghKGNtZC1cXHUwMDNlaGRyLmNtZCBcXHUwMDI2IENBUkw5MTcwX0NNRF9BU1lOQ19GTEFHKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvcnguYzoxNjk6XFx0XFx0XFx0Y2FybDkxNzBfY21kX2NhbGxiYWNrKGFyLCBsZW4sIGJ1Zik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL3J4LmMtMTcwLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQxMDoxNDozNi44MzkyNzc4MzNaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDc5NDQ4OTU3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IG1lbnRhbCBwcm9jZXNzOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBBdGhlcm9zIERyaXZlcioqXG5cbk9rYXksIHRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0J3MgaGFwcGVuaW5nIGluIHRoZSBjYXJsOTE3MCB3aXJlbGVzcyBkcml2ZXIuIFNwZWNpZmljYWxseSwgSSdtIGZvY3VzaW5nIG9uIHRoZSByZWNlaXZlIHBhdGgsIGFuZCBJJ20gaGVhZGluZyBzdHJhaWdodCBmb3IgdGhlIGByeC5jYCBmaWxlLiBJJ20gZ29pbmcgdG8gc3RhcnQgbXkgaW52ZXN0aWdhdGlvbiBhcm91bmQgbGluZSAxMjkuIEknbSBob3BpbmcgdGhhdCdzIGEgZ29vZCBlbnRyeSBwb2ludCB0byBzZWUgaG93IGluY29taW5nIHdpcmVsZXNzIGRhdGEgaXMgaGFuZGxlZC4gTGluZSAxMjkgc2hvdWxkIGdpdmUgYSBnb29kIHN0YXJ0IHRvIHdoZXJlIHRvIGxvb2suXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI1NzQsIk91dHB1dFRva2VucyI6NDYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQxMDoxNDo0MC45MTg3MjgxMVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc2MjYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEyOSxcbiAgXCJMaW5lQ291bnRcIjogNTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDEyOTpcXHRzdGF0aWMgdm9pZCBjYXJsOTE3MF9jbWRfY2FsbGJhY2soc3RydWN0IGFyOTE3MCAqYXIsIHUzMiBsZW4sIHZvaWQgKmJ1ZmZlcilcXG4gMTMwOlxcdHtcXG4gMTMxOlxcdFxcdC8qXFxuIDEzMjpcXHRcXHQgKiBTb21lIGNvbW1hbmRzIG1heSBoYXZlIGEgdmFyaWFibGUgcmVzcG9uc2UgbGVuZ3RoXFxuIDEzMzpcXHRcXHQgKiBhbmQgd2UgY2Fubm90IHByZWRpY3QgdGhlIGNvcnJlY3QgbGVuZ3RoIGluIGFkdmFuY2UuXFxuIDEzNDpcXHRcXHQgKiBTbyB3ZSBvbmx5IGNoZWNrIGlmIHdlIHByb3ZpZGVkIGVub3VnaCBzcGFjZSBmb3IgdGhlIGRhdGEuXFxuIDEzNTpcXHRcXHQgKi9cXG4gMTM2OlxcdFxcdGlmICh1bmxpa2VseShhci1cXHUwMDNlcmVhZGxlbiAhPSAobGVuIC0gNCkpKSB7XFxuIDEzNzpcXHRcXHRcXHRkZXZfd2FybihcXHUwMDI2YXItXFx1MDAzZXVkZXYtXFx1MDAzZWRldiwgXFxcInJlY2VpdmVkIGludmFsaWQgY29tbWFuZCByZXNwb25zZTpcXFwiXFxuIDEzODpcXHRcXHRcXHRcXHQgXFxcImdvdCAlZCwgaW5zdGVhZCBvZiAlZFxcXFxuXFxcIiwgbGVuIC0gNCwgYXItXFx1MDAzZXJlYWRsZW4pO1xcbiAxMzk6XFx0XFx0XFx0cHJpbnRfaGV4X2R1bXBfYnl0ZXMoXFxcImNhcmw5MTcwIGNtZDpcXFwiLCBEVU1QX1BSRUZJWF9PRkZTRVQsXFxuIDE0MDpcXHRcXHRcXHRcXHRhci1cXHUwMDNlY21kX2J1ZiwgKGFyLVxcdTAwM2VjbWQuaGRyLmxlbiArIDQpIFxcdTAwMjYgMHgzZik7XFxuIDE0MTpcXHRcXHRcXHRwcmludF9oZXhfZHVtcF9ieXRlcyhcXFwiY2FybDkxNzAgcnNwOlxcXCIsIERVTVBfUFJFRklYX09GRlNFVCxcXG4gMTQyOlxcdFxcdFxcdFxcdGJ1ZmZlciwgbGVuKTtcXG4gMTQzOlxcdFxcdFxcdC8qXFxuIDE0NDpcXHRcXHRcXHQgKiBEbyBub3QgY29tcGxldGUuIFRoZSBjb21tYW5kIHRpbWVzIG91dCxcXG4gMTQ1OlxcdFxcdFxcdCAqIGFuZCB3ZSBnZXQgYSBzdGFjayB0cmFjZSBmcm9tIHRoZXJlLlxcbiAxNDY6XFx0XFx0XFx0ICovXFxuIDE0NzpcXHRcXHRcXHRjYXJsOTE3MF9yZXN0YXJ0KGFyLCBDQVJMOTE3MF9SUl9JTlZBTElEX1JTUCk7XFxuIDE0ODpcXHRcXHRcXHRyZXR1cm47XFxuIDE0OTpcXHRcXHR9XFxuIDE1MDpcXHRcXG4gMTUxOlxcdFxcdHNwaW5fbG9jayhcXHUwMDI2YXItXFx1MDAzZWNtZF9sb2NrKTtcXG4gMTUyOlxcdFxcdGlmIChhci1cXHUwMDNlcmVhZGJ1Zikge1xcbiAxNTM6XFx0XFx0XFx0aWYgKGxlbiBcXHUwMDNlPSA0KVxcbiAxNTQ6XFx0XFx0XFx0XFx0bWVtY3B5KGFyLVxcdTAwM2VyZWFkYnVmLCBidWZmZXIgKyA0LCBsZW4gLSA0KTtcXG4gMTU1OlxcdFxcbiAxNTY6XFx0XFx0XFx0YXItXFx1MDAzZXJlYWRidWYgPSBOVUxMO1xcbiAxNTc6XFx0XFx0fVxcbiAxNTg6XFx0XFx0Y29tcGxldGUoXFx1MDAyNmFyLVxcdTAwM2VjbWRfd2FpdCk7XFxuIDE1OTpcXHRcXHRzcGluX3VubG9jayhcXHUwMDI2YXItXFx1MDAzZWNtZF9sb2NrKTtcXG4gMTYwOlxcdH1cXG4gMTYxOlxcdFxcbiAxNjI6XFx0dm9pZCBjYXJsOTE3MF9oYW5kbGVfY29tbWFuZF9yZXNwb25zZShzdHJ1Y3QgYXI5MTcwICphciwgdm9pZCAqYnVmLCB1MzIgbGVuKVxcbiAxNjM6XFx0e1xcbiAxNjQ6XFx0XFx0c3RydWN0IGNhcmw5MTcwX3JzcCAqY21kID0gYnVmO1xcbiAxNjU6XFx0XFx0c3RydWN0IGllZWU4MDIxMV92aWYgKnZpZjtcXG4gMTY2OlxcdFxcbiAxNjc6XFx0XFx0aWYgKChjbWQtXFx1MDAzZWhkci5jbWQgXFx1MDAyNiBDQVJMOTE3MF9SU1BfRkxBRykgIT0gQ0FSTDkxNzBfUlNQX0ZMQUcpIHtcXG4gMTY4OlxcdFxcdFxcdGlmICghKGNtZC1cXHUwMDNlaGRyLmNtZCBcXHUwMDI2IENBUkw5MTcwX0NNRF9BU1lOQ19GTEFHKSlcXG4gMTY5OlxcdFxcdFxcdFxcdGNhcmw5MTcwX2NtZF9jYWxsYmFjayhhciwgbGVuLCBidWYpO1xcbiAxNzA6XFx0XFxuIDE3MTpcXHRcXHRcXHRyZXR1cm47XFxuIDE3MjpcXHRcXHR9XFxuIDE3MzpcXHRcXG4gMTc0OlxcdFxcdGlmICh1bmxpa2VseShjbWQtXFx1MDAzZWhkci5sZW4gIT0gKGxlbiAtIDQpKSkge1xcbiAxNzU6XFx0XFx0XFx0aWYgKG5ldF9yYXRlbGltaXQoKSkge1xcbiAxNzY6XFx0XFx0XFx0XFx0d2lwaHlfZXJyKGFyLVxcdTAwM2Vody1cXHUwMDNld2lwaHksIFxcXCJGVzogcmVjZWl2ZWQgb3Zlci0vdW5kZXJcXFwiXFxuIDE3NzpcXHRcXHRcXHRcXHRcXHRcXFwic2l6ZWQgZXZlbnQgJXggKCVkLCBidXQgc2hvdWxkIGJlICVkKS5cXFxcblxcXCIsXFxuIDE3ODpcXHRcXHRcXHRcXHQgICAgICAgY21kLVxcdTAwM2VoZHIuY21kLCBjbWQtXFx1MDAzZWhkci5sZW4sIGxlbiAtIDQpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQxMDoxNDo0MC45MTg4MDU3OVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ1MDk5MTA3MzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBQcm9wb3NlZCBDb2RlIENoYW5nZSoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgaW50cm9kdWNpbmcgYSBgcmV0dXJuO2Agc3RhdGVtZW50LiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCB0aGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGFuZCB0aGUgZ29hbCBpcyB0byBwcmV2ZW50IHRoZSByZXN0IG9mIHRoZSBmdW5jdGlvbiBmcm9tIGV4ZWN1dGluZyBhZnRlciBgY2FybDkxNzBfcmVzdGFydGAgaXMgY2FsbGVkLiBJdCdzIG1ha2luZyBzdXJlIHdlIGRvbid0IGVuZCB1cCB3aXRoIGEgdXNlLWFmdGVyLWZyZWUgc2NlbmFyaW8gb3Igc2ltaWxhciBpc3N1ZXMgaWYgYGNhcmw5MTcwX3Jlc3RhcnRgIGRlY2lkZXMgdG8gZnJlZSBgYXJgLCBvciBpZiB3ZSBqdXN0IHBsYWluIGRvbid0IHdhbnQgdG8gY29udGludWUgdGhlIGNvbW1hbmQgcHJvY2Vzc2luZyBhZnRlciB0aGUgcmVzdGFydCBpcyB0cmlnZ2VyZWQuXG5cbkFoLCByaWdodCwgYGNhcmw5MTcwX3Jlc3RhcnRgIHNjaGVkdWxlcyB3b3JrIHRvIHJlc3RhcnQgdGhlIGRldmljZS4gSWYgd2UgKmRvbid0KiByZXR1cm4sIHdlJ2QgcHJvY2VlZCB0byBleGVjdXRlIGBzcGluX2xvY2soXHUwMDI2YXItXHUwMDNlY21kX2xvY2spO2AgYW5kIGBjb21wbGV0ZShcdTAwMjZhci1cdTAwM2VjbWRfd2FpdCk7YC4gU28gaXQgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZS4gR290IGl0LlxuXG5Ob3csIGxldCBtZSBqdXN0IHF1aWNrbHkgcHVsbCB1cCB0aGUgY29uZmlnIG9wdGlvbnMgYXNzb2NpYXRlZCB3aXRoIGBjYXJsOTE3MGAgdG8gbWFrZSBzdXJlIHRoaXMgZG9lc24ndCBpbnRyb2R1Y2UgYW55IHVuZm9yZXNlZW4gZGVwZW5kZW5jaWVzIG9yIGNvbmZsaWN0cy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzY3MiwiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1NiwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI0VDEwOjE0OjQ1LjQyODcxNzk3MloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDEzMTgxNjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIENBUkw5MTcwXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWc6Mjpjb25maWcgQ0FSTDkxNzBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJMaW51eCBDb21tdW5pdHkgQVI5MTcwIDgwMi4xMW4gVVNCIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZy0xNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZzoxNzpjb25maWcgQ0FSTDkxNzBfTEVEU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnLTE4LVxcdGJvb2wgXFxcIlNvZnRMRUQgU3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnLTI2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnOjI3OmNvbmZpZyBDQVJMOTE3MF9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWctMjgtXFx0Ym9vbCBcXFwiRGVidWdGUyBTdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWctMzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWc6MzY6Y29uZmlnIENBUkw5MTcwX1dQQ1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnLTM3LVxcdGJvb2xcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnLTQwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnOjQxOmNvbmZpZyBDQVJMOTE3MF9IV1JOR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnLTQyLVxcdGJvb2wgXFxcIlJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQxMDoxNDo0NS42MzAwNDE2NFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ1NTY1MTk1MjIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqUmVhY2hpbmcgdGhlIENBUkw5MTcwIERyaXZlciBmb3IgRnV6emluZyoqXG5cbk9rYXksIHNvIHRoZSB0YXJnZXQgY29uZmlnIGlzIGBDQVJMOTE3MGAuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBkZXRlcm1pbmUgcmVhY2hhYmlsaXR5LCBzcGVjaWZpY2FsbHkgaW4gdmlydHVhbGl6ZWQgc2V0dXBzIOKAkyBhIGNydWNpYWwgY29uc2lkZXJhdGlvbiBmb3IgZWZmaWNpZW50IGZ1enppbmcuIFNpbmNlIGBDQVJMOTE3MGAgaXMgYSBVU0IgZHJpdmVyLCB0aGUgXCJMaW51eCBDb21tdW5pdHkgQVI5MTcwIDgwMi4xMW4gVVNCIHN1cHBvcnRcIiBkcml2ZXIsIEkgaW1tZWRpYXRlbHkgdGhpbmsgb2YgaG93IFVTQiBkcml2ZXJzIGFyZSB0eXBpY2FsbHkgZnV6emVkLiBTeXprYWxsZXIsIHdpdGggaXRzIGBkdW1teV9oY2RgIG9yIGByYXctZ2FkZ2V0YCBvcHRpb25zLCBjb21lcyB0byBtaW5kLiBHaXZlbiB0aGF0IHRoZSBkcml2ZXIgaXMgYSBVU0IgZHJpdmVyLCBpdCBzaG91bGQgYmUgcmVhY2hhYmxlLlxuXG5Ob3csIGxldCdzIGlkZW50aWZ5IHJlbGV2YW50IGVudHJ5IHBvaW50cy4gSSBzaG91bGQgZm9jdXMgb24gdGhlIGNvbW1hbmQgaGFuZGxpbmcgYW5kIHJlc3BvbnNlIHJvdXRpbmVzLiBgY2FybDkxNzBfY21kX2NhbGxiYWNrYCBhbmQgYGNhcmw5MTcwX2hhbmRsZV9jb21tYW5kX3Jlc3BvbnNlYCBhcmUgdGhlIHByaW1lIHRhcmdldHMuIEEgcXVpY2sgZ2xhbmNlIHN1Z2dlc3RzIHRoYXQgYGNhcmw5MTcwX2hhbmRsZV9jb21tYW5kX3Jlc3BvbnNlYCBpcyBjYWxsZWQgZnJvbSBgY2FybDkxNzBfcnhgLiBHb29kLCB0aGF0IG1lYW5zIHRoZSBSWCBwYXRoIGNvdWxkIGxlYWQgdXMgZGlyZWN0bHkgdG8gdGhlIGNvbW1hbmQgcHJvY2Vzc2luZyBsb2dpYy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDU0NSwiT3V0cHV0VG9rZW5zIjo0NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQxMDoxNDo1MC4xODY1NjMwMTFaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2Njk2OTExOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjYXJsOTE3MF9oYW5kbGVfY29tbWFuZF9yZXNwb25zZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9jYXJsOTE3MC5oPTU3NT12b2lkIGNhcmw5MTcwX3J4KHN0cnVjdCBhcjkxNzAgKmFyLCB2b2lkICpidWYsIHVuc2lnbmVkIGludCBsZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9jYXJsOTE3MC5oOjU3Njp2b2lkIGNhcmw5MTcwX2hhbmRsZV9jb21tYW5kX3Jlc3BvbnNlKHN0cnVjdCBhcjkxNzAgKmFyLCB2b2lkICpidWYsIHUzMiBsZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9jYXJsOTE3MC5oLTU3Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jPTEyOT1zdGF0aWMgdm9pZCBjYXJsOTE3MF9jbWRfY2FsbGJhY2soc3RydWN0IGFyOTE3MCAqYXIsIHUzMiBsZW4sIHZvaWQgKmJ1ZmZlcilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jLTE2MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvcnguYzoxNjI6dm9pZCBjYXJsOTE3MF9oYW5kbGVfY29tbWFuZF9yZXNwb25zZShzdHJ1Y3QgYXI5MTcwICphciwgdm9pZCAqYnVmLCB1MzIgbGVuKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jLTE2My17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvcnguYz04MjY9c3RhdGljIHZvaWQgY2FybDkxNzBfcnhfdW50aWVfY21kcyhzdHJ1Y3QgYXI5MTcwICphciwgY29uc3QgdTggKnJlc3BidWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvcnguYy04NDEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL3J4LmM6ODQyOlxcdFxcdGNhcmw5MTcwX2hhbmRsZV9jb21tYW5kX3Jlc3BvbnNlKGFyLCBjbWQsIGNtZC1cXHUwMDNlaGRyLmxlbiArIDQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9yeC5jLTg0My1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvdXNiLmM9Mjc3PXN0YXRpYyB2b2lkIGNhcmw5MTcwX3VzYl9yeF9pcnFfY29tcGxldGUoc3RydWN0IHVyYiAqdXJiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL3VzYi5jLTMwNi1cXHQgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvdXNiLmM6MzA3OlxcdGNhcmw5MTcwX2hhbmRsZV9jb21tYW5kX3Jlc3BvbnNlKGFyLCB1cmItXFx1MDAzZXRyYW5zZmVyX2J1ZmZlcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvdXNiLmMtMzA4LVxcdFxcdFxcdFxcdFxcdCB1cmItXFx1MDAzZWFjdHVhbF9sZW5ndGgpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQxMDoxNDo1MC4zNTM1MzkxNTlaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDMxNzkzODMwNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiBQb3RlbnRpYWwgVVNCIEZ1enppbmcgVGFyZ2V0cyoqXG5cbk9rYXksIHNvIGBjYXJsOTE3MF91c2JfcnhfaXJxX2NvbXBsZXRlYCBpcyB0aGUgY29tcGxldGlvbiBoYW5kbGVyIGZvciBVUkJzLCB3aGljaCBtZWFucyBpdCdzIGEgZGlyZWN0IGVudHJ5IHBvaW50IGZyb20gVVNCIGludGVyYWN0aW9uLiBUaGF0J3MgaW1tZWRpYXRlbHkgaW50ZXJlc3RpbmcgZnJvbSBhIGZ1enppbmcgcGVyc3BlY3RpdmU7IGEgZGlyZWN0IHBhdGggdG8gdGhlIGNvZGUgaXMgd2hhdCBJJ20gbG9va2luZyBmb3IuIEdpdmVuIHRoYXQsIEkgbmVlZCB0byBmb2N1cyBteSBmdXp6aW5nIGVmZm9ydHMgb24gdGhpcyBmdW5jdGlvbiBhbmQgaXRzIGFzc29jaWF0ZWQgY2FsbCBzdGFjay4gSSBuZWVkIHRvIGNsb3NlbHkgZXhhbWluZSBgY2FybDkxNzBfY21kX2NhbGxiYWNrYCBhbmQgYGNhcmw5MTcwX2hhbmRsZV9jb21tYW5kX3Jlc3BvbnNlYCwgc2luY2UgdGhvc2UgYXJlIGxpa2VseSB3aGVyZSB0aGUgcHJvY2Vzc2luZyBoYXBwZW5zIHdoZW4gdGhhdCBjb21wbGV0aW9uIGhhbmRsZXIgaXMgaGl0LlxuXG5CZWZvcmUgSSBnbyBmdXJ0aGVyLCBsZXQncyBzZWUgd2hhdCBvdGhlciBkZXBlbmRlbmNpZXMgZXhpc3QuIEknbGwgbmVlZCB0byBjaGVjayB0aGUgY29uZmlnIG9wdGlvbnMuIEl0IGxvb2tzIGxpa2UgYENBUkw5MTcwYCBkZXBlbmRzIG9uIGJvdGggYFVTQmAgYW5kIGBNQUM4MDIxMWAsIHNvIHRoYXQgZ2l2ZXMgbWUgc29tZSBkaXJlY3Rpb24gYW5kIGNvbnRleHQgYWJvdXQgdGhlIGJ1aWxkIGFuZCBlbnZpcm9ubWVudC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTYxNiwiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yNFQxMDoxNDo1NC42NzE0NzkyNDNaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUyOTM0NDI5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRlcGVuZHMgb25cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWc9Mj1jb25maWcgQ0FSTDkxNzBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJMaW51eCBDb21tdW5pdHkgQVI5MTcwIDgwMi4xMW4gVVNCIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWc6NDpcXHRkZXBlbmRzIG9uIFVTQiBcXHUwMDI2XFx1MDAyNiBNQUM4MDIxMVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnLTUtXFx0c2VsZWN0IEFUSF9DT01NT05cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnPTE3PWNvbmZpZyBDQVJMOTE3MF9MRURTXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZy0xOS1cXHRkZWZhdWx0IHlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZzoyMDpcXHRkZXBlbmRzIG9uIENBUkw5MTcwXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWc6MjE6XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9MRURTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWctMjItXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWc9Mjc9Y29uZmlnIENBUkw5MTcwX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZy0yOC1cXHRib29sIFxcXCJEZWJ1Z0ZTIFN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWc6Mjk6XFx0ZGVwZW5kcyBvbiBDQVJMOTE3MCBcXHUwMDI2XFx1MDAyNiBERUJVR19GUyBcXHUwMDI2XFx1MDAyNiBNQUM4MDIxMV9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWctMzAtXFx0ZGVmYXVsdCBuXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZz0zNj1jb25maWcgQ0FSTDkxNzBfV1BDXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWctMzctXFx0Ym9vbFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnOjM4OlxcdGRlcGVuZHMgb24gQ0FSTDkxNzAgXFx1MDAyNlxcdTAwMjYgKElOUFVUID0geSB8fCBJTlBVVCA9IENBUkw5MTcwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9jYXJsOTE3MC9LY29uZmlnLTM5LVxcdGRlZmF1bHQgeVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWc9NDE9Y29uZmlnIENBUkw5MTcwX0hXUk5HXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWctNDItXFx0Ym9vbCBcXFwiUmFuZG9tIG51bWJlciBnZW5lcmF0b3JcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWc6NDM6XFx0ZGVwZW5kcyBvbiBDQVJMOTE3MCBcXHUwMDI2XFx1MDAyNiAoSFdfUkFORE9NID0geSB8fCBIV19SQU5ET00gPSBDQVJMOTE3MClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZy00NC1cXHRkZWZhdWx0IG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjRUMTA6MTQ6NTQuNzI0NDE4MTEyWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUwMzM5NzI0OTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBDQVJMOTE3MCBDb25maWd1cmF0aW9uIGFuZCBQb3RlbnRpYWwgRnV6emluZyBUYXJnZXRzKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBUaGUgY29yZSBjb25maWd1cmF0aW9uIGhlcmUgaXMgY2xlYXJseSBgQ0FSTDkxNzBgLiBUaGUgZml4IGl0c2VsZiBpcyBzaXR1YXRlZCB3aXRoaW4gdGhlIGBjYXJsOTE3MF9jbWRfY2FsbGJhY2tgIGZ1bmN0aW9uIOKAkyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhaW1lZCBhdCBhdmVydGluZyBhIHBvc3NpYmxlIGJ1ZyB3aGVuIGBjYXJsOTE3MF9yZXN0YXJ0YCBnZXRzIGNhbGxlZC4gVGhpcyBtZWFucyBpdCdzIGFib3V0IHJvYnVzdCBleGVjdXRpb24gYW5kIGVycm9yIGhhbmRsaW5nLCB3aGljaCBpcyBjcml0aWNhbC4gR2l2ZW4gdGhpcyB0YXJnZXRlZCBmaXgsIEknbSBhYnNvbHV0ZWx5IGdvaW5nIHRvIG1hcmsgdGhpcyBhcyBgV29ydGhGdXp6aW5nPXRydWVgLlxuXG5Ob3csIGZvciBmb2N1cyBzeW1ib2xzLCB0byByZWFsbHkgZGlnIGludG8gdGhlIGltcGxpY2F0aW9ucyBhbmQgcG9zc2libGUgdnVsbmVyYWJpbGl0aWVzLCBJJ2xsIGNvbmNlbnRyYXRlIG15IGF0dGVudGlvbiBvbiBgY2FybDkxNzBfY21kX2NhbGxiYWNrYCwgb2YgY291cnNlLCBidXQgYWxzbyBvbiBgY2FybDkxNzBfaGFuZGxlX2NvbW1hbmRfcmVzcG9uc2VgLCBhbmQgYGNhcmw5MTcwX3VzYl9yeF9pcnFfY29tcGxldGVgLiBUaGUgY29tbWFuZCByZXNwb25zZSBhbmQgdGhlIGludGVycnVwdCBjb21wbGV0aW9uIGFyZSBrZXkgdG8gdW5kZXJzdGFuZGluZyB0aGUgd29ya2Zsb3cuIE5hdHVyYWxseSwgdGhlIGBDQVJMOTE3MGAgY29uZmlnIHdpbGwgYmUgZW5hYmxlZCBmb3IgdGVzdGluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6NjY2NywiT3V0cHV0VG9rZW5zIjoxNTMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjRUMTA6MTQ6NTkuNzU4MzkyNTY3WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODU0Mzc4NDksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkNBUkw5MTcwXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiY2FybDkxNzBfY21kX2NhbGxiYWNrXCIsXG4gICAgXCJjYXJsOTE3MF9oYW5kbGVfY29tbWFuZF9yZXNwb25zZVwiLFxuICAgIFwiY2FybDkxNzBfdXNiX3J4X2lycV9jb21wbGV0ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBtaXNzaW5nIHJldHVybiBzdGF0ZW1lbnQgaW4gY2FybDkxNzBfY21kX2NhbGxiYWNrIGFmdGVyIGNhbGxpbmcgY2FybDkxNzBfcmVzdGFydCwgcHJldmVudGluZyBmdXJ0aGVyIGV4ZWN1dGlvbiBvZiB0aGUgZnVuY3Rpb24gd2hpY2ggd291bGQgb3RoZXJ3aXNlIGF0dGVtcHQgdG8gYWNxdWlyZSBhIHNwaW5sb2NrIGFuZCBjb21wbGV0ZSBhIHdhaXQgcXVldWUuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIFVTQiB3aXJlbGVzcyBkcml2ZXIgdGhhdCBjYW4gYmUgcmVhY2hlZCB2aWEgVVNCIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQ0FSTDkxNzBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjYXJsOTE3MF9jbWRfY2FsbGJhY2tcIixcbiAgICBcImNhcmw5MTcwX2hhbmRsZV9jb21tYW5kX3Jlc3BvbnNlXCIsXG4gICAgXCJjYXJsOTE3MF91c2JfcnhfaXJxX2NvbXBsZXRlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIG1pc3NpbmcgcmV0dXJuIHN0YXRlbWVudCBpbiBjYXJsOTE3MF9jbWRfY2FsbGJhY2sgYWZ0ZXIgY2FsbGluZyBjYXJsOTE3MF9yZXN0YXJ0LCBwcmV2ZW50aW5nIGZ1cnRoZXIgZXhlY3V0aW9uIG9mIHRoZSBmdW5jdGlvbiB3aGljaCB3b3VsZCBvdGhlcndpc2UgYXR0ZW1wdCB0byBhY3F1aXJlIGEgc3BpbmxvY2sgYW5kIGNvbXBsZXRlIGEgd2FpdCBxdWV1ZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgVVNCIHdpcmVsZXNzIGRyaXZlciB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBVU0IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflow8msvf[1] Phase: Succeeded StartedAt: 2026-06-24 10:15:12 +0000 UTC FinishedAt: 2026-06-24 10:15:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvf[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-06-24 10:15:12 +0000 UTC FinishedAt: 2026-06-24 10:15:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvf[2] Phase: Succeeded StartedAt: 2026-06-24 10:15:12 +0000 UTC FinishedAt: 2026-06-24 12:36:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["carl9170_cmd_callback","carl9170_handle_command_response","carl9170_usb_rx_irq_complete"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"ff1f0ea6-3a3d-441a-96e5-63f3b5d660b6","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-06-24 10:15:12 +0000 UTC FinishedAt: 2026-06-24 12:36:12 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["carl9170_cmd_callback","carl9170_handle_command_response","carl9170_usb_rx_irq_complete"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"ff1f0ea6-3a3d-441a-96e5-63f3b5d660b6","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflow8msvf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["carl9170_cmd_callback","carl9170_handle_command_response","carl9170_usb_rx_irq_complete"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"ff1f0ea6-3a3d-441a-96e5-63f3b5d660b6","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-06-24 10:15:12 +0000 UTC FinishedAt: 2026-06-24 10:15:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["carl9170_cmd_callback","carl9170_handle_command_response","carl9170_usb_rx_irq_complete"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"ff1f0ea6-3a3d-441a-96e5-63f3b5d660b6","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-06-24 10:15:12 +0000 UTC FinishedAt: 2026-06-24 10:15:17 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8msvf/series-workflow8msvf-convert-artifact-2128800463/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow8msvf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["carl9170_cmd_callback","carl9170_handle_command_response","carl9170_usb_rx_irq_complete"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"ff1f0ea6-3a3d-441a-96e5-63f3b5d660b6","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-06-24 10:15:22 +0000 UTC FinishedAt: 2026-06-24 10:53:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["carl9170_cmd_callback","carl9170_handle_command_response","carl9170_usb_rx_irq_complete"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"ff1f0ea6-3a3d-441a-96e5-63f3b5d660b6","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-06-24 10:15:22 +0000 UTC FinishedAt: 2026-06-24 10:53: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:*e17c76ab-5aaf-4d90-b664-8dbe88666c74,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-workflow8msvf/series-workflow8msvf-convert-artifact-2128800463/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": "9a8789b3-0e92-44c1-8f73-8d259cad14bc", "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-workflow8msvf/series-workflow8msvf-build-action-1080408597/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow8msvf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["carl9170_cmd_callback","carl9170_handle_command_response","carl9170_usb_rx_irq_complete"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"ff1f0ea6-3a3d-441a-96e5-63f3b5d660b6","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-06-24 10:15:22 +0000 UTC FinishedAt: 2026-06-24 10:52:27 +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:*e17c76ab-5aaf-4d90-b664-8dbe88666c74,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-workflow8msvf/series-workflow8msvf-convert-artifact-2128800463/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": "9a8789b3-0e92-44c1-8f73-8d259cad14bc", "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-workflow8msvf/series-workflow8msvf-build-action-1080408597/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow8msvf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["carl9170_cmd_callback","carl9170_handle_command_response","carl9170_usb_rx_irq_complete"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"ff1f0ea6-3a3d-441a-96e5-63f3b5d660b6","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-06-24 10:53:30 +0000 UTC FinishedAt: 2026-06-24 10:53:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["carl9170_cmd_callback","carl9170_handle_command_response","carl9170_usb_rx_irq_complete"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"ff1f0ea6-3a3d-441a-96e5-63f3b5d660b6","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-06-24 10:53:30 +0000 UTC FinishedAt: 2026-06-24 10:53:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["carl9170_cmd_callback","carl9170_handle_command_response","carl9170_usb_rx_irq_complete"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"ff1f0ea6-3a3d-441a-96e5-63f3b5d660b6","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-06-24 10:53:30 +0000 UTC FinishedAt: 2026-06-24 10:53:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["carl9170_cmd_callback","carl9170_handle_command_response","carl9170_usb_rx_irq_complete"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"ff1f0ea6-3a3d-441a-96e5-63f3b5d660b6","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-06-24 10:53:30 +0000 UTC FinishedAt: 2026-06-24 10:53:37 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"ff1f0ea6-3a3d-441a-96e5-63f3b5d660b6","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow8msvf/series-workflow8msvf-convert-artifact-753029918/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow8msvf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["carl9170_cmd_callback","carl9170_handle_command_response","carl9170_usb_rx_irq_complete"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"ff1f0ea6-3a3d-441a-96e5-63f3b5d660b6","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-06-24 10:53:40 +0000 UTC FinishedAt: 2026-06-24 10:55:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["carl9170_cmd_callback","carl9170_handle_command_response","carl9170_usb_rx_irq_complete"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"ff1f0ea6-3a3d-441a-96e5-63f3b5d660b6","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-06-24 10:53:40 +0000 UTC FinishedAt: 2026-06-24 10:55:44 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*9a8789b3-0e92-44c1-8f73-8d259cad14bc,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-workflow8msvf/series-workflow8msvf-build-action-1080408597/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-workflow8msvf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["carl9170_cmd_callback","carl9170_handle_command_response","carl9170_usb_rx_irq_complete"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"ff1f0ea6-3a3d-441a-96e5-63f3b5d660b6","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-06-24 10:55:54 +0000 UTC FinishedAt: 2026-06-24 10:55:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["carl9170_cmd_callback","carl9170_handle_command_response","carl9170_usb_rx_irq_complete"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"ff1f0ea6-3a3d-441a-96e5-63f3b5d660b6","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-06-24 10:55:54 +0000 UTC FinishedAt: 2026-06-24 10:55:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["carl9170_cmd_callback","carl9170_handle_command_response","carl9170_usb_rx_irq_complete"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"ff1f0ea6-3a3d-441a-96e5-63f3b5d660b6","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-06-24 10:55:54 +0000 UTC FinishedAt: 2026-06-24 11:37:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["carl9170_cmd_callback","carl9170_handle_command_response","carl9170_usb_rx_irq_complete"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"ff1f0ea6-3a3d-441a-96e5-63f3b5d660b6","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-06-24 10:55:54 +0000 UTC FinishedAt: 2026-06-24 11:37:09 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*e17c76ab-5aaf-4d90-b664-8dbe88666c74,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-workflow8msvf/series-workflow8msvf-convert-artifact-753029918/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": "319c37fe-a1f6-4fe8-ae9e-28b8e05de165", "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-workflow8msvf/series-workflow8msvf-build-action-886833394/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow8msvf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["carl9170_cmd_callback","carl9170_handle_command_response","carl9170_usb_rx_irq_complete"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"ff1f0ea6-3a3d-441a-96e5-63f3b5d660b6","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-06-24 10:55:54 +0000 UTC FinishedAt: 2026-06-24 11:35:00 +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:*e17c76ab-5aaf-4d90-b664-8dbe88666c74,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-workflow8msvf/series-workflow8msvf-convert-artifact-753029918/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": "319c37fe-a1f6-4fe8-ae9e-28b8e05de165", "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-workflow8msvf/series-workflow8msvf-build-action-886833394/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow8msvf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["carl9170_cmd_callback","carl9170_handle_command_response","carl9170_usb_rx_irq_complete"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"ff1f0ea6-3a3d-441a-96e5-63f3b5d660b6","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-06-24 11:37:09 +0000 UTC FinishedAt: 2026-06-24 11:37:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["carl9170_cmd_callback","carl9170_handle_command_response","carl9170_usb_rx_irq_complete"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"ff1f0ea6-3a3d-441a-96e5-63f3b5d660b6","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-06-24 11:37:09 +0000 UTC FinishedAt: 2026-06-24 11:37:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["carl9170_cmd_callback","carl9170_handle_command_response","carl9170_usb_rx_irq_complete"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"ff1f0ea6-3a3d-441a-96e5-63f3b5d660b6","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-06-24 11:37:09 +0000 UTC FinishedAt: 2026-06-24 11:39:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["carl9170_cmd_callback","carl9170_handle_command_response","carl9170_usb_rx_irq_complete"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"ff1f0ea6-3a3d-441a-96e5-63f3b5d660b6","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-06-24 11:37:09 +0000 UTC FinishedAt: 2026-06-24 11:39:13 +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:*319c37fe-a1f6-4fe8-ae9e-28b8e05de165,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-workflow8msvf/series-workflow8msvf-build-action-886833394/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-workflow8msvf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["carl9170_cmd_callback","carl9170_handle_command_response","carl9170_usb_rx_irq_complete"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"ff1f0ea6-3a3d-441a-96e5-63f3b5d660b6","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-06-24 11:39:23 +0000 UTC FinishedAt: 2026-06-24 12:36:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["carl9170_cmd_callback","carl9170_handle_command_response","carl9170_usb_rx_irq_complete"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"ff1f0ea6-3a3d-441a-96e5-63f3b5d660b6","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-06-24 11:39:23 +0000 UTC FinishedAt: 2026-06-24 12:36:12 +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":["carl9170_cmd_callback","carl9170_handle_command_response","carl9170_usb_rx_irq_complete"],"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:*9a8789b3-0e92-44c1-8f73-8d259cad14bc,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*319c37fe-a1f6-4fe8-ae9e-28b8e05de165,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-workflow8msvf/series-workflow8msvf-build-action-1080408597/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-workflow8msvf/series-workflow8msvf-build-action-886833394/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow8msvf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["carl9170_cmd_callback","carl9170_handle_command_response","carl9170_usb_rx_irq_complete"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"ff1f0ea6-3a3d-441a-96e5-63f3b5d660b6","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-06-24 11:39:23 +0000 UTC FinishedAt: 2026-06-24 11:39:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["carl9170_cmd_callback","carl9170_handle_command_response","carl9170_usb_rx_irq_complete"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"ff1f0ea6-3a3d-441a-96e5-63f3b5d660b6","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-06-24 11:39:23 +0000 UTC FinishedAt: 2026-06-24 11:39:29 +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":["carl9170_cmd_callback","carl9170_handle_command_response","carl9170_usb_rx_irq_complete"],"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-workflow8msvf/series-workflow8msvf-convert-artifact-4053452067/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow8msvf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["carl9170_cmd_callback","carl9170_handle_command_response","carl9170_usb_rx_irq_complete"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"ff1f0ea6-3a3d-441a-96e5-63f3b5d660b6","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-06-24 11:39:23 +0000 UTC FinishedAt: 2026-06-24 11:39:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["carl9170_cmd_callback","carl9170_handle_command_response","carl9170_usb_rx_irq_complete"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"ff1f0ea6-3a3d-441a-96e5-63f3b5d660b6","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-06-24 11:39:23 +0000 UTC FinishedAt: 2026-06-24 11:39:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["carl9170_cmd_callback","carl9170_handle_command_response","carl9170_usb_rx_irq_complete"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"ff1f0ea6-3a3d-441a-96e5-63f3b5d660b6","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-06-24 11:39:23 +0000 UTC FinishedAt: 2026-06-24 11:39:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["carl9170_cmd_callback","carl9170_handle_command_response","carl9170_usb_rx_irq_complete"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"ff1f0ea6-3a3d-441a-96e5-63f3b5d660b6","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-06-24 11:39:33 +0000 UTC FinishedAt: 2026-06-24 12:36:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8msvf[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["carl9170_cmd_callback","carl9170_handle_command_response","carl9170_usb_rx_irq_complete"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CARL9170"],"series_id":"ff1f0ea6-3a3d-441a-96e5-63f3b5d660b6","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-06-24 11:39:33 +0000 UTC FinishedAt: 2026-06-24 12:36:02 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*9a8789b3-0e92-44c1-8f73-8d259cad14bc,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*319c37fe-a1f6-4fe8-ae9e-28b8e05de165,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-workflow8msvf/series-workflow8msvf-build-action-1080408597/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-workflow8msvf/series-workflow8msvf-build-action-886833394/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-workflow8msvf/series-workflow8msvf-convert-artifact-4053452067/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,}