Name: series-workflowtjtq4 Phase: Succeeded StartedAt: 2026-06-28 16:58:03 +0000 UTC FinishedAt: 2026-06-28 18:53:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtjtq4[0] Phase: Succeeded StartedAt: 2026-06-28 16:58:03 +0000 UTC FinishedAt: 2026-06-28 17:07:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtjtq4[0].run-triage Phase: Succeeded StartedAt: 2026-06-28 16:58:03 +0000 UTC FinishedAt: 2026-06-28 17:07:39 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "805185b7c7a1069e407b6f7b3bc98e44d415f484", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "USB_RTL8150" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "805185b7c7a1069e407b6f7b3bc98e44d415f484", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "USB_RTL8150" ], "series_id": "f23d1887-abcd-435b-84fa-78d2af6da6ad" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "set_carrier", "rtl8150_open" ], "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+CgkJCTx0ZD4yMDI2LzA2LzI4IDE3OjA3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1VTQl9SVEw4MTUwJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c2V0X2NhcnJpZXImIzM0OywKICAgICYjMzQ7cnRsODE1MF9vcGVuJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgdXNlIGluIGBzZXRfY2FycmllcmAgYnkgY2hlY2tpbmcgdGhlIHJldHVybiB2YWx1ZSBvZiBgZ2V0X3JlZ2lzdGVyc2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIFVTQiBuZXR3b3JrIGRyaXZlciwgd2hpY2ggY2FuIGJlIGZ1enplZCB1c2luZyBkdW1teV9oY2Qgb3IgcmF3LWdhZGdldC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOCAxNzowNzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGRlMjUyMzJmM2QwODE3NmI3MmQ3NDhhOGM2ODY3MzFhYWIyYWM4ZTRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU3VuIEp1biAyOCAxNzowNjo1OSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jIGIvZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuY1xuaW5kZXggYzg4MGM5NWM0MWE1ZWMuLmQ1MWU0MzE3MGUwMzNhIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuY1xuQEAgLTczMiw3ICYjNDM7NzMyLDkgQEAgc3RhdGljIHZvaWQgc2V0X2NhcnJpZXIoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbiBcdHJ0bDgxNTBfdCAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbiBcdHNob3J0IHRtcDtcbiBcbi1cdGdldF9yZWdpc3RlcnMoZGV2LCBDU0NSLCAyLCBcdTAwMjZ0bXApO1xuJiM0MztcdGlmIChnZXRfcmVnaXN0ZXJzKGRldiwgQ1NDUiwgMiwgXHUwMDI2dG1wKSlcbiYjNDM7XHRcdHJldHVybjtcbiYjNDM7XG4gXHRpZiAodG1wIFx1MDAyNiBDU0NSX0xJTktfU1RBVFVTKVxuIFx0XHRuZXRpZl9jYXJyaWVyX29uKG5ldGRldik7XG4gXHRlbHNlXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMTc6MDc8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VVNCX1JUTDgxNTAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzZXRfY2FycmllciYjMzQ7LAogICAgJiMzNDtydGw4MTUwX29wZW4mIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgdW5pbml0aWFsaXplZCB2YXJpYWJsZSB1c2UgaW4gYHNldF9jYXJyaWVyYCBieSBjaGVja2luZyB0aGUgcmV0dXJuIHZhbHVlIG9mIGBnZXRfcmVnaXN0ZXJzYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgVVNCIG5ldHdvcmsgZHJpdmVyLCB3aGljaCBjYW4gYmUgZnV6emVkIHVzaW5nIGR1bW15X2hjZCBvciByYXctZ2FkZ2V0LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBkZTI1MjMyZjNkMDgxNzZiNzJkNzQ4YThjNjg2NzMxYWFiMmFjOGU0CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFN1biBKdW4gMjggMTc6MDY6NTkgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jIGIvZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYwppbmRleCBjODgwYzk1YzQxYTVlYy4uZDUxZTQzMTcwZTAzM2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYwpAQCAtNzMyLDcgJiM0Mzs3MzIsOSBAQCBzdGF0aWMgdm9pZCBzZXRfY2FycmllcihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KQogCXJ0bDgxNTBfdCAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTsKIAlzaG9ydCB0bXA7CiAKLQlnZXRfcmVnaXN0ZXJzKGRldiwgQ1NDUiwgMiwgJmFtcDt0bXApOwomIzQzOwlpZiAoZ2V0X3JlZ2lzdGVycyhkZXYsIENTQ1IsIDIsICZhbXA7dG1wKSkKJiM0MzsJCXJldHVybjsKJiM0MzsKIAlpZiAodG1wICZhbXA7IENTQ1JfTElOS19TVEFUVVMpCiAJCW5ldGlmX2NhcnJpZXJfb24obmV0ZGV2KTsKIAllbHNlCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI4IDE3OjA3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4NjMKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAxNTEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgTmV0d29yayBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC91c2IvcnRsODE1MC5jYC4gSXQgbG9va3MgbGlrZSBzb21lb25lJiMzOTtzIGFkZGVkIGFuIGVycm9yIGNoZWNrIGluIHRoZSBgc2V0X2NhcnJpZXIoKWAgZnVuY3Rpb24uIFNwZWNpZmljYWxseSwgdGhleSYjMzk7cmUgY2hlY2tpbmcgdGhlIHJldHVybiB2YWx1ZSBvZiBgZ2V0X3JlZ2lzdGVycyhkZXYsIENTQ1IsIDIsICZhbXA7dG1wKWAuIElmIGBnZXRfcmVnaXN0ZXJzYCB0aHJvd3MgYW4gZXJyb3IsIHRoZSBmdW5jdGlvbiBqdXN0IHJldHVybnMuIFNlZW1zIGxpa2UgYSBkZWZlbnNpdmUgYWRkaXRpb24sIGJ1dCBsZXQmIzM5O3MgZGlnIGRlZXBlci4KCkZpcnN0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dC4gVGhpcyBpcyBhIFVTQiBuZXR3b3JrIGRyaXZlciwgcmlnaHQ/IFNvLCBob3cgaXMgYHNldF9jYXJyaWVyKClgIGJlaW5nIHVzZWQsIGFuZCBpcyBpdCBldmVuICpyZWFjaGFibGUqPyBJIG5lZWQgdG8gZmluZCBpdHMgZGVmaW5pdGlvbiB3aXRoaW4gYHJ0bDgxNTAuY2AuIEZyb20gYSBmdXp6aW5nIHBlcnNwZWN0aXZlLCBVU0IgZHJpdmVycyBhcmUgaW50ZXJlc3RpbmcgdGFyZ2V0cy4gV2UgY2FuIHRlc3QgdGhlbSB1c2luZyB0b29scyBsaWtlIGBkdW1teV9oY2RgIG9yIGJ5IGludGVyYWN0aW5nIHdpdGggdGhlIHJhdyBnYWRnZXQuIAoKTGV0IG1lIHRyYWNrIGRvd24gYHNldF9jYXJyaWVyYCBpbiB0aGUgY29kZSBhbmQgdGhlbiBhc3Nlc3MgdGhlIHBvdGVudGlhbCBpbXBhY3Qgb2YgdGhpcyBwYXRjaCBpbiB0aGUgYnJvYWRlciBzY2hlbWUgb2YgdGhpbmdzLiBJcyBpdCBhIGNyaXRpY2FsIHBhdGgsIG9yIHNvbWV0aGluZyBtb3JlIG9ic2N1cmU/CgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMTc6MDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2V0X2NhcnJpZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC91c2IvcnRsODE1MC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM9NjgyPXN0YXRpYyBuZXRkZXZfdHhfdCBydGw4MTUwX3N0YXJ0X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jLTcyOS1cbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM6NzMwOnN0YXRpYyB2b2lkIHNldF9jYXJyaWVyKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jLTczMS17XG4tLVxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYz03NDQ9c3RhdGljIGludCBydGw4MTUwX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbi0tXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jLTc3NC1cdGVuYWJsZV9uZXRfdHJhZmZpYyhkZXYpO1xuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYzo3NzU6XHRzZXRfY2FycmllcihuZXRkZXYpO1xuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy03NzYtXHRuZXRpZl9zdGFydF9xdWV1ZShuZXRkZXYpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI4IDE3OjA3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI1NDQKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiA3MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFBvdGVudGlhbCBWdWxuZXJhYmlsaXR5IGluIHJ0bDgxNTAuYyoqCgpPa2F5LCBzbyBgc2V0X2NhcnJpZXJgIGlzIGJlaW5nIGNhbGxlZCBmcm9tIHdpdGhpbiBgcnRsODE1MF9vcGVuYC4gSW50ZXJlc3RpbmcuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYSBwcmV0dHkgc3RhbmRhcmQgZGVmZW5zaXZlIHByb2dyYW1taW5nIHRlY2huaXF1ZSB0byBhdm9pZCB1c2luZyBhbiB1bmluaXRpYWxpemVkIHZhbHVlIGluIGB0bXBgIGlmIHRoZSBgZ2V0X3JlZ2lzdGVyc2AgZnVuY3Rpb24gZmFpbHMuIEdvb2QgcHJhY3RpY2UsIGJ1dCBpdCYjMzk7cyBpbXBvcnRhbnQgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dC4KClNpbmNlIHRoaXMgaXMgYSBVU0IgZHJpdmVyLCB0aGUgYXR0YWNrIHN1cmZhY2UgZXhwYW5kcyBzaWduaWZpY2FudGx5LiBVU0IgZHJpdmVycyBhcmUgbm90b3Jpb3VzIHRhcmdldHMuIFRoaXMgbWVhbnMgaXQmIzM5O3MgZGVmaW5pdGVseSBmdXp6YWJsZSwgYW5kIGl0IGRlbWFuZHMgc2NydXRpbnkuCgpUaW1lIHRvIGRpdmUgaW50byB0aGUgY29uZmlndXJhdGlvbiBhbmQgY2hlY2sgb3V0IHRoZSBgcnRsODE1MC5jYCBmaWxlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgZGF0YSBmbG93IGFyb3VuZCBgZ2V0X3JlZ2lzdGVyc2AgYW5kIGBzZXRfY2FycmllcmAgdG8gc2VlIGlmIHRoaXMgaXMgYSBtaW5vciB0d2VhayBvciBpZiB0aGlzIHJldmVhbHMgYSBoaWRkZW4gZ2VtIGZvciBhdHRhY2tlcnMuIE15IGd1dCB0ZWxscyBtZSB0byBsb29rIGZvciByYWNlIGNvbmRpdGlvbnMsIGluY29ycmVjdCBlcnJvciBoYW5kbGluZywgYW5kIG1lbW9yeSBjb3JydXB0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI4IDE3OjA3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J0bDgxNTAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC91c2IvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC91c2IvS2NvbmZpZz04OD1jb25maWcgVVNCX1JUTDgxNTBcbi0tXG5kcml2ZXJzL25ldC91c2IvS2NvbmZpZy05Ni1cdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlXG5kcml2ZXJzL25ldC91c2IvS2NvbmZpZzo5NzpcdCAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIHJ0bDgxNTAuXG5kcml2ZXJzL25ldC91c2IvS2NvbmZpZy05OC1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOCAxNzowNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyOTUwCgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHByZXNlbnRlZCBhcyBteSBvd24gbWVudGFsIHByb2Nlc3MsIGdpdmVuIG15IGV4cGVydGlzZToKCioqQ2hlY2tpbmcgUlRMODE1MCBVU0IgRHJpdmVyIEVycm9yIEhhbmRsaW5nKioKCkFscmlnaHQsIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24gaXMgZm9jdXNlZCBvbiB0aGUgYFVTQl9SVEw4MTUwYCBkcml2ZXIuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBxdWlja2x5IHZlcmlmeSB0aGUgZXJyb3IgaGFuZGxpbmcgd2l0aGluIHRoZSBjb3JlIGxvZ2ljLiBTcGVjaWZpY2FsbHksIEkgbmVlZCB0byBjb25maXJtIGhvdyBgZ2V0X3JlZ2lzdGVyc2Agc2lnbmFscyBhbiBlcnJvciBjb25kaXRpb24uIEluIGNhc2VzIG9mIFVTQiBjb21tdW5pY2F0aW9uIGZhaWx1cmVzLCBvciBpZiB0aGUgaGFyZHdhcmUgZG9lc24mIzM5O3QgcmVzcG9uZCBhcyBleHBlY3RlZCwgYSBuZWdhdGl2ZSByZXR1cm4gdmFsdWUgaXMgYSBwcmV0dHkgc3RhbmRhcmQgY29udmVudGlvbiBmb3IgZnVuY3Rpb24gY2FsbHMuIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgdGhlIGRlZmluaXRpb24gb2YgdGhhdCBmdW5jdGlvbiB3aXRoaW4gdGhlIGNvbnRleHQgb2YgdGhpcyBkcml2ZXIgYW5kIGNvbmZpcm0gdGhpcyBpcyB0aGUgbWV0aG9kIG9mIHNpZ25hbGxpbmcgYSBmYWlsdXJlLiBJdCB3b3VsZCBtYWtlIGRlYnVnZ2luZyBlYXNpZXIgbGF0ZXIsIGFuZCBjb25maXJtcyB0aGUgb3ZlcmFsbCByZWxpYWJpbGl0eS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOCAxNzowNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtnZXRfcmVnaXN0ZXJzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC91c2IvcnRsODE1MC5jPTE1Mj1zdGF0aWMgY29uc3QgY2hhciBkcml2ZXJfbmFtZSBbXSA9IFwmIzM0O3J0bDgxNTBcJiMzNDs7XG4tLVxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy0xNTgtKi9cbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM6MTU5OnN0YXRpYyBpbnQgZ2V0X3JlZ2lzdGVycyhydGw4MTUwX3QgKiBkZXYsIHUxNiBpbmR4LCB1MTYgc2l6ZSwgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMtMTYwLXtcbi0tXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jPTIxOD1zdGF0aWMgaW50IHJlYWRfbWlpX3dvcmQocnRsODE1MF90ICogZGV2LCB1OCBwaHksIF9fdTggaW5keCwgdTE2ICogcmVnKVxuLS1cbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMtMjMwLVx0ZG8ge1xuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYzoyMzE6XHRcdGdldF9yZWdpc3RlcnMoZGV2LCBQSFlDTlQsIDEsIGRhdGEpO1xuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy0yMzItXHR9IHdoaWxlICgoZGF0YVswXSBcdTAwMjYgUEhZX0dPKSBcdTAwMjZcdTAwMjYgKGkmIzQzOyYjNDM7IFx1MDAzYyBNSUlfVElNRU9VVCkpO1xuLS1cbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMtMjM0LVx0aWYgKGkgXHUwMDNjPSBNSUlfVElNRU9VVCkge1xuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYzoyMzU6XHRcdGdldF9yZWdpc3RlcnMoZGV2LCBQSFlEQVQsIDIsIGRhdGEpO1xuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy0yMzYtXHRcdCpyZWcgPSBkYXRhWzBdIHwgKGRhdGFbMV0gXHUwMDNjXHUwMDNjIDgpO1xuLS1cbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM9MjQyPXN0YXRpYyBpbnQgd3JpdGVfbWlpX3dvcmQocnRsODE1MF90ICogZGV2LCB1OCBwaHksIF9fdTggaW5keCwgdTE2IHJlZylcbi0tXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jLTI1NS1cdGRvIHtcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM6MjU2Olx0XHRnZXRfcmVnaXN0ZXJzKGRldiwgUEhZQ05ULCAxLCBkYXRhKTtcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMtMjU3LVx0fSB3aGlsZSAoKGRhdGFbMF0gXHUwMDI2IFBIWV9HTykgXHUwMDI2XHUwMDI2IChpJiM0MzsmIzQzOyBcdTAwM2MgTUlJX1RJTUVPVVQpKTtcbi0tXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jPTI2NT1zdGF0aWMgdm9pZCBzZXRfZXRoZXJuZXRfYWRkcihydGw4MTUwX3QgKmRldilcbi0tXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jLTI2OS1cbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM6MjcwOlx0cmV0ID0gZ2V0X3JlZ2lzdGVycyhkZXYsIElEUiwgc2l6ZW9mKG5vZGVfaWQpLCBub2RlX2lkKTtcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMtMjcxLVxuLS1cbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM9MjgxPXN0YXRpYyBpbnQgcnRsODE1MF9zZXRfbWFjX2FkZHJlc3Moc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgdm9pZCAqcClcbi0tXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jLTI5Ny1cdC8qIEdldCB0aGUgQ1IgY29udGVudHMuICovXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jOjI5ODpcdGdldF9yZWdpc3RlcnMoZGV2LCBDUiwgMSwgXHUwMDI2Y3IpO1xuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy0yOTktXHQvKiBTZXQgdGhlIFdFUFJPTSBiaXQgKGVlcHJvbSB3cml0ZSBlbmFibGUpLiAqL1xuLS1cbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM9MzE2PXN0YXRpYyBpbnQgcnRsODE1MF9yZXNldChydGw4MTUwX3QgKiBkZXYpXG4tLVxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy0zMjItXHRkbyB7XG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jOjMyMzpcdFx0Z2V0X3JlZ2lzdGVycyhkZXYsIENSLCAxLCBcdTAwMjZkYXRhKTtcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMtMzI0LVx0fSB3aGlsZSAoKGRhdGEgXHUwMDI2IDB4MTApIFx1MDAyNlx1MDAyNiAtLWkpO1xuLS1cbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM9NjI0PXN0YXRpYyBpbnQgZW5hYmxlX25ldF90cmFmZmljKHJ0bDgxNTBfdCAqIGRldilcbi0tXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jLTYzOS1cdHNldF9yZWdpc3RlcnMoZGV2LCBDUiwgMSwgXHUwMDI2Y3IpO1xuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYzo2NDA6XHRnZXRfcmVnaXN0ZXJzKGRldiwgTVNSLCAxLCBcdTAwMjZtc3IpO1xuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy02NDEtXG4tLVxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYz02NDU9c3RhdGljIHZvaWQgZGlzYWJsZV9uZXRfdHJhZmZpYyhydGw4MTUwX3QgKiBkZXYpXG4tLVxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy02NDgtXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jOjY0OTpcdGdldF9yZWdpc3RlcnMoZGV2LCBDUiwgMSwgXHUwMDI2Y3IpO1xuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy02NTAtXHRjciBcdTAwMjY9IDB4ZjM7XG4tLVxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYz03MzA9c3RhdGljIHZvaWQgc2V0X2NhcnJpZXIoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbi0tXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jLTczNC1cbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM6NzM1Olx0aWYgKGdldF9yZWdpc3RlcnMoZGV2LCBDU0NSLCAyLCBcdTAwMjZ0bXApKVxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy03MzYtXHRcdHJldHVybjtcbi0tXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jPTgwMT1zdGF0aWMgaW50IHJ0bDgxNTBfZ2V0X2xpbmtfa3NldHRpbmdzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4tLVxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy04MTYtXHRlY21kLVx1MDAzZWJhc2UucGh5X2FkZHJlc3MgPSBkZXYtXHUwMDNlcGh5O1xuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYzo4MTc6XHRnZXRfcmVnaXN0ZXJzKGRldiwgQk1DUiwgMiwgXHUwMDI2Ym1jcik7XG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jOjgxODpcdGdldF9yZWdpc3RlcnMoZGV2LCBBTkxQLCAyLCBcdTAwMjZscGEpO1xuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy04MTktXHRpZiAoYm1jciBcdTAwMjYgQk1DUl9BTkVOQUJMRSkge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI4IDE3OjA3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ2NzUKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiAxNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzOgoKKipBbmFseXppbmcgdGhlIE91dHB1dCBvZiBgZ2V0X3JlZ2lzdGVyc2AqKgoKT2theSwgc28gYGdldF9yZWdpc3RlcnNgIGlzIGRlc2lnbmVkIHRvIHByb3ZpZGUgbWUgd2l0aCBhbiBpbnRlZ2VyIHZhbHVlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IHRoaXMgaW50ZWdlciByZXByZXNlbnRzLiBUaGUgaW1tZWRpYXRlIGZvY3VzIGlzIG9uIGludGVycHJldGluZyB0aGlzIHJldHVybmVkIHZhbHVlIOKAkyBpcyBpdCBhbiBpbmRleCwgYSBmbGFnLCBhIGNvdW50LCBvciBzb21ldGhpbmcgZWxzZSBlbnRpcmVseT8gVGhlIHR5cGUgaXRzZWxmIGRvZXNuJiMzOTt0IG9mZmVyIGVub3VnaCBjb250ZXh0LCBzbyB0aGUgbmV4dCBzdGVwIGlzIHRvIGV4YW1pbmUgdGhlIGZ1bmN0aW9uJiMzOTtzIGRvY3VtZW50YXRpb24sIHRoZSBzdXJyb3VuZGluZyBjb2RlLCBvciBldmVuIHRyeSBzb21lIHF1aWNrIGV4cGVyaW1lbnRhdGlvbiwgaWYgcG9zc2libGUsIHRvIGFzY2VydGFpbiBpdHMgcHJlY2lzZSBtZWFuaW5nIGFuZCB1c2FnZSB3aXRoaW4gdGhlIGxhcmdlciBzeXN0ZW0uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI4IDE3OjA3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDE1OSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgMTU5Olx0c3RhdGljIGludCBnZXRfcmVnaXN0ZXJzKHJ0bDgxNTBfdCAqIGRldiwgdTE2IGluZHgsIHUxNiBzaXplLCB2b2lkICpkYXRhKVxuIDE2MDpcdHtcbiAxNjE6XHRcdHJldHVybiB1c2JfY29udHJvbF9tc2dfcmVjdihkZXYtXHUwMDNldWRldiwgMCwgUlRMODE1MF9SRVFfR0VUX1JFR1MsXG4gMTYyOlx0XHRcdFx0XHQgICAgUlRMODE1MF9SRVFUX1JFQUQsIGluZHgsIDAsIGRhdGEsIHNpemUsXG4gMTYzOlx0XHRcdFx0XHQgICAgMTAwMCwgR0ZQX05PSU8pO1xuIDE2NDpcdH1cbiAxNjU6XHRcbiAxNjY6XHRzdGF0aWMgaW50IHNldF9yZWdpc3RlcnMocnRsODE1MF90ICogZGV2LCB1MTYgaW5keCwgdTE2IHNpemUsIGNvbnN0IHZvaWQgKmRhdGEpXG4gMTY3Olx0e1xuIDE2ODpcdFx0cmV0dXJuIHVzYl9jb250cm9sX21zZ19zZW5kKGRldi1cdTAwM2V1ZGV2LCAwLCBSVEw4MTUwX1JFUV9TRVRfUkVHUyxcbiAxNjk6XHRcdFx0XHRcdCAgICBSVEw4MTUwX1JFUVRfV1JJVEUsIGluZHgsIDAsIGRhdGEsIHNpemUsXG4gMTcwOlx0XHRcdFx0XHQgICAgMTAwMCwgR0ZQX05PSU8pO1xuIDE3MTpcdH1cbiAxNzI6XHRcbiAxNzM6XHRzdGF0aWMgdm9pZCBhc3luY19zZXRfcmVnX2NiKHN0cnVjdCB1cmIgKnVyYilcbiAxNzQ6XHR7XG4gMTc1Olx0XHRzdHJ1Y3QgYXN5bmNfcmVxICpyZXEgPSAoc3RydWN0IGFzeW5jX3JlcSAqKXVyYi1cdTAwM2Vjb250ZXh0O1xuIDE3NjpcdFx0aW50IHN0YXR1cyA9IHVyYi1cdTAwM2VzdGF0dXM7XG4gMTc3Olx0XG4gMTc4Olx0XHRpZiAoc3RhdHVzIFx1MDAzYyAwKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOCAxNzowNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MjUyCgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogMTQ5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZvY3Vzc2luZyBNeSBGdXp6aW5nIEVmZm9ydHMqKgoKT2theSwgc28gYHVzYl9jb250cm9sX21zZ19yZWN2YCByZXR1cm5zIDAgb24gc3VjY2VzcyBhbmQgYSBuZWdhdGl2ZSB2YWx1ZSBvbiBlcnJvci4gVGhhdCBtZWFucyB0aGUgZXJyb3IgaGFuZGxpbmcgaW4gYGlmIChnZXRfcmVnaXN0ZXJzKGRldiwgQ1NDUiwgMiwgJmFtcDt0bXApKWAgaXMgZXhhY3RseSByaWdodDsgdGhlIGNvbmRpdGlvbmFsIHdpbGwgY2F0Y2ggdGhlIGVycm9yIGNvcnJlY3RseS4gR29vZC4gTm93LCBJIG5lZWQgdG8gcGljayB3aGljaCBmdW5jdGlvbnMgdG8gdGFyZ2V0IGZvciBmdXp6aW5nLgoKSSYjMzk7dmUgZ290IGBzZXRfY2FycmllcmAsIGFuZCBJIGtub3cgaXQmIzM5O3MgZGVmaW5pdGVseSByZWFjaGFibGUgc2luY2UgaXQmIzM5O3MgY2FsbGVkIGZyb20gYm90aCBgcnRsODE1MF9vcGVuYCBhbmQgYHJ0bDgxNTBfdHhfdGltZW91dGAuIFRoYXQgbWFrZXMgaXQgYSBzdHJvbmcgY29udGVuZGVyLiBBbHNvLCBgcnRsODE1MF9vcGVuYCBpdHNlbGYgaXMgYSBwcmltZSBjYW5kaWRhdGUuIExldCYjMzk7cyBub3QgZm9yZ2V0IGBydGw4MTUwX3Byb2JlYCwgdGhhdCYjMzk7cyBhbm90aGVyIGZ1bmN0aW9uIEkgc2hvdWxkIGFkZCB0byBteSBsaXN0LgoKQWxyaWdodCwgbGV0JiMzOTtzIHN0YXJ0IGJ5IGRpZ2dpbmcgaW50byBgcnRsODE1MF9vcGVuYC4gSSYjMzk7bGwgc3RhcnQgdGhlcmUgYW5kIHNlZSB3aGF0IGludGVyZXN0aW5nIHRoaW5ncyBJIGNhbiBmaW5kLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOCAxNzowNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtydGw4MTUwX29wZW4mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC91c2IvcnRsODE1MC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM9NzMwPXN0YXRpYyB2b2lkIHNldF9jYXJyaWVyKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG4tLVxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy03NDMtXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jOjc0NDpzdGF0aWMgaW50IHJ0bDgxNTBfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy03NDUte1xuLS1cbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM9ODc2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgcnRsODE1MF9uZXRkZXZfb3BzID0ge1xuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYzo4Nzc6XHQubmRvX29wZW5cdFx0PSBydGw4MTUwX29wZW4sXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jLTg3OC1cdC5uZG9fc3RvcFx0XHQ9IHJ0bDgxNTBfY2xvc2UsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI4IDE3OjA3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU4OTAKCQkJCQkJCW91dHB1dDogMjgKCQkJCQkJCXRob3VnaHRzOiA0MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duOgoKKipBbmFseXppbmcgUG90ZW50aWFsIFVTQiBEcml2ZXIgQmVoYXZpb3IqKgoKQWxyaWdodCwgbGV0JiMzOTtzIHplcm8gaW4gb24gdGhpcy4gSSBzZWUgYHNldF9jYXJyaWVyYCBhbmQgYHJ0bDgxNTBfb3BlbmAgYXMgdGhlIGtleSBmdW5jdGlvbiBjYWxscyBoZXJlLiBUaGV5JiMzOTtyZSBteSBmb2N1cyBzeW1ib2xzLCBsaWtlbHkgdGhlIGhlYXJ0IG9mIHRoaXMgVVNCIG5ldHdvcmsgaW50ZXJmYWNlIGRyaXZlciwgdGhlIFJUTDgxNTAuIEdpdmVuIHRoZSBgVVNCX1JUTDgxNTBgIGNvbmZpZ3VyYXRpb24sIGl0JiMzOTtzIHByZXR0eSBjbGVhciB0aGlzIGlzIGFib3V0IGJyaW5naW5nIHVwIHRoZSBpbnRlcmZhY2UuIEJlZm9yZSBJIGdvIGZ1cnRoZXIgZG93biB0aGF0IHBhdGggSSB3YW50IHRvIG1ha2Ugc3VyZSBubyBvdGhlciBjb25maWd1cmF0aW9ucyBtaWdodCBhZmZlY3QgdGhpcyBkcml2ZXImIzM5O3MgaW5pdGlhbGl6YXRpb24gb3IgYmVoYXZpb3IuIEkgbmVlZCB0byBrbm93IHRoZSBlbnRpcmUgY29udGV4dC4gTGV0IG1lIHNjYW4gZm9yIGFueSByZWxhdGVkIGNvbmZpZyBvcHRpb25zIHRoYXQgY291bGQgaW5mbHVlbmNlIHRoaXMgcHJvY2Vzcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMTc6MDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7VVNCX1JUTDgxNTAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC9hcm0vY29uZmlncy9lcDkzeHhfZGVmY29uZmlnPTYxPUNPTkZJR19FUDkzWFhfRVRIPXlcbmFyY2gvYXJtL2NvbmZpZ3MvZXA5M3h4X2RlZmNvbmZpZzo2MjpDT05GSUdfVVNCX1JUTDgxNTA9eVxuYXJjaC9hcm0vY29uZmlncy9lcDkzeHhfZGVmY29uZmlnLTYzLSMgQ09ORklHX0lOUFVUIGlzIG5vdCBzZXRcbi0tXG5hcmNoL2FybS9jb25maWdzL2V4eW5vc19kZWZjb25maWc9MTA0PUNPTkZJR19TTVNDOTExWD15XG5hcmNoL2FybS9jb25maWdzL2V4eW5vc19kZWZjb25maWc6MTA1OkNPTkZJR19VU0JfUlRMODE1MD1tXG5hcmNoL2FybS9jb25maWdzL2V4eW5vc19kZWZjb25maWctMTA2LUNPTkZJR19VU0JfUlRMODE1Mj15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjZfdjdfZGVmY29uZmlnPTEzOT1DT05GSUdfVVNCX1BFR0FTVVM9bVxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjZfdjdfZGVmY29uZmlnOjE0MDpDT05GSUdfVVNCX1JUTDgxNTA9bVxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjZfdjdfZGVmY29uZmlnLTE0MS1DT05GSUdfVVNCX1JUTDgxNTI9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3Mvb21hcDFfZGVmY29uZmlnPTEwMz1DT05GSUdfVVNCX1BFR0FTVVM9eVxuYXJjaC9hcm0vY29uZmlncy9vbWFwMV9kZWZjb25maWc6MTA0OkNPTkZJR19VU0JfUlRMODE1MD15XG5hcmNoL2FybS9jb25maWdzL29tYXAxX2RlZmNvbmZpZy0xMDUtQ09ORklHX1VTQl9VU0JORVQ9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvcHhhX2RlZmNvbmZpZz0yMDM9Q09ORklHX1VTQl9QRUdBU1VTPW1cbmFyY2gvYXJtL2NvbmZpZ3MvcHhhX2RlZmNvbmZpZzoyMDQ6Q09ORklHX1VTQl9SVEw4MTUwPW1cbmFyY2gvYXJtL2NvbmZpZ3MvcHhhX2RlZmNvbmZpZy0yMDUtQ09ORklHX1VTQl9SVEw4MTUyPW1cbi0tXG5hcmNoL2FybS9jb25maWdzL3NwaXR6X2RlZmNvbmZpZz05Mj1DT05GSUdfVVNCX1BFR0FTVVM9bVxuYXJjaC9hcm0vY29uZmlncy9zcGl0el9kZWZjb25maWc6OTM6Q09ORklHX1VTQl9SVEw4MTUwPW1cbmFyY2gvYXJtL2NvbmZpZ3Mvc3BpdHpfZGVmY29uZmlnLTk0LUNPTkZJR19VU0JfVVNCTkVUPW1cbi0tXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnPTQ4OT1DT05GSUdfVVNCX1BFR0FTVVM9bVxuYXJjaC9hcm02NC9jb25maWdzL2RlZmNvbmZpZzo0OTA6Q09ORklHX1VTQl9SVEw4MTUwPW1cbmFyY2gvYXJtNjQvY29uZmlncy9kZWZjb25maWctNDkxLUNPTkZJR19VU0JfUlRMODE1Mj1tXG4tLVxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjMyX2RlZmNvbmZpZz02NDA9Q09ORklHX1BQUF9TWU5DX1RUWT1tXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnOjY0MTpDT05GSUdfVVNCX1JUTDgxNTA9bVxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjMyX2RlZmNvbmZpZy02NDItQ09ORklHX1VTQl9SVEw4MTUyPW1cbi0tXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnPTY1Nj1DT05GSUdfUFBQX1NZTkNfVFRZPW1cbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb242NF9kZWZjb25maWc6NjU3OkNPTkZJR19VU0JfUlRMODE1MD1tXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnLTY1OC1DT05GSUdfVVNCX1JUTDgxNTI9bVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL210eDFfZGVmY29uZmlnPTI5Mz1DT05GSUdfVVNCX1BFR0FTVVM9bVxuYXJjaC9taXBzL2NvbmZpZ3MvbXR4MV9kZWZjb25maWc6Mjk0OkNPTkZJR19VU0JfUlRMODE1MD1tXG5hcmNoL21pcHMvY29uZmlncy9tdHgxX2RlZmNvbmZpZy0yOTUtQ09ORklHX1VTQl9VU0JORVQ9bVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL3JtMjAwX2RlZmNvbmZpZz0yMzM9Q09ORklHX1VTQl9QRUdBU1VTPW1cbmFyY2gvbWlwcy9jb25maWdzL3JtMjAwX2RlZmNvbmZpZzoyMzQ6Q09ORklHX1VTQl9SVEw4MTUwPW1cbmFyY2gvbWlwcy9jb25maWdzL3JtMjAwX2RlZmNvbmZpZy0yMzUtQ09ORklHX1VTQl9VU0JORVQ9bVxuLS1cbmFyY2gvcG93ZXJwYy9jb25maWdzL2c1X2RlZmNvbmZpZz0xMDg9Q09ORklHX1VTQl9QRUdBU1VTPW1cbmFyY2gvcG93ZXJwYy9jb25maWdzL2c1X2RlZmNvbmZpZzoxMDk6Q09ORklHX1VTQl9SVEw4MTUwPW1cbmFyY2gvcG93ZXJwYy9jb25maWdzL2c1X2RlZmNvbmZpZy0xMTAtQ09ORklHX1VTQl9VU0JORVQ9bVxuLS1cbmFyY2gvcG93ZXJwYy9jb25maWdzL3BwYzZ4eF9kZWZjb25maWc9NDg1PUNPTkZJR19VU0JfUEVHQVNVUz1tXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2eHhfZGVmY29uZmlnOjQ4NjpDT05GSUdfVVNCX1JUTDgxNTA9bVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNnh4X2RlZmNvbmZpZy00ODctQ09ORklHX1VTQl9VU0JORVQ9bVxuLS1cbmFyY2gvc2gvY29uZmlncy9sYW5kaXNrX2RlZmNvbmZpZz00Nj1DT05GSUdfVVNCX1BFR0FTVVM9bVxuYXJjaC9zaC9jb25maWdzL2xhbmRpc2tfZGVmY29uZmlnOjQ3OkNPTkZJR19VU0JfUlRMODE1MD1tXG5hcmNoL3NoL2NvbmZpZ3MvbGFuZGlza19kZWZjb25maWctNDgtQ09ORklHX0lOUFVUX0ZGX01FTUxFU1M9bVxuLS1cbmFyY2gvc2gvY29uZmlncy90aXRhbl9kZWZjb25maWc9MTc2PUNPTkZJR19VU0JfUEVHQVNVUz1tXG5hcmNoL3NoL2NvbmZpZ3MvdGl0YW5fZGVmY29uZmlnOjE3NzpDT05GSUdfVVNCX1JUTDgxNTA9bVxuYXJjaC9zaC9jb25maWdzL3RpdGFuX2RlZmNvbmZpZy0xNzgtQ09ORklHX1VTQl9VU0JORVQ9bVxuLS1cbmRyaXZlcnMvbmV0L3VzYi9LY29uZmlnPTczPWNvbmZpZyBVU0JfUEVHQVNVU1xuLS1cbmRyaXZlcnMvbmV0L3VzYi9LY29uZmlnLTg3LVxuZHJpdmVycy9uZXQvdXNiL0tjb25maWc6ODg6Y29uZmlnIFVTQl9SVEw4MTUwXG5kcml2ZXJzL25ldC91c2IvS2NvbmZpZy04OS1cdHRyaXN0YXRlIFwmIzM0O1VTQiBSVEw4MTUwIGJhc2VkIGV0aGVybmV0IGRldmljZSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvdXNiL01ha2VmaWxlPTg9b2JqLSQoQ09ORklHX1VTQl9QRUdBU1VTKVx0JiM0Mzs9IHBlZ2FzdXMub1xuZHJpdmVycy9uZXQvdXNiL01ha2VmaWxlOjk6b2JqLSQoQ09ORklHX1VTQl9SVEw4MTUwKVx0JiM0Mzs9IHJ0bDgxNTAub1xuZHJpdmVycy9uZXQvdXNiL01ha2VmaWxlLTEwLW9iai0kKENPTkZJR19VU0JfUlRMODE1MilcdCYjNDM7PSByODE1Mi5vXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI4IDE3OjA3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDc2NDcKCQkJCQkJCW91dHB1dDogMTEwCgkJCQkJCQl0aG91Z2h0czogNjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aGlzIOKAkyBzdHJhaWdodCB0byB0aGUgcG9pbnQgYXMgYWx3YXlzOgoKKipVU0IgUlRMODE1MCBEcml2ZXIgRml4KioKClJpZ2h0LCBzbywgbG9va3MgbGlrZSB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGEgc2ltcGxlIG9uZSBoZXJlLiBUaGUgYFVTQl9SVEw4MTUwYCBjb25maWcgaXMgdGhlIG9ubHkga2V5IGNvbXBvbmVudCBuZWVkZWQsIG5vdGhpbmcgZWxzZSB0byBiZSBjb25jZXJuZWQgd2l0aCB0aGVyZS4gRnJvbSB3aGF0IEkgY2FuIGdhdGhlciwgdGhlIHBhdGNoIGFkZHJlc3NlcyBhbiB1bmluaXRpYWxpemVkIHZhcmlhYmxlIGJ1ZyBpbiB0aGUgYHNldF9jYXJyaWVyYCBmdW5jdGlvbi4gVGhlIGZpeCBpcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkOiBpdCYjMzk7cyBjaGVja2luZyB0aGUgcmV0dXJuIHZhbHVlIGZyb20gYGdldF9yZWdpc3RlcnNgIGJlZm9yZSBwcm9jZWVkaW5nLiBBIHBlcmZlY3RseSBmdW5jdGlvbmFsIGNoYW5nZSwgYXMgSSBzZWUgaXQuIE5vdGhpbmcgdG8gZ2V0IGZsdXN0ZXJlZCBhYm91dC4gV2Ugd2lsbCBjYWxsIHRoYXQgYHNldC1yZXN1bHRzYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMTc6MDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1VTQl9SVEw4MTUwJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c2V0X2NhcnJpZXImIzM0OywKICAgICYjMzQ7cnRsODE1MF9vcGVuJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgdXNlIGluIGBzZXRfY2FycmllcmAgYnkgY2hlY2tpbmcgdGhlIHJldHVybiB2YWx1ZSBvZiBgZ2V0X3JlZ2lzdGVyc2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIFVTQiBuZXR3b3JrIGRyaXZlciwgd2hpY2ggY2FuIGJlIGZ1enplZCB1c2luZyBkdW1teV9oY2Qgb3IgcmF3LWdhZGdldC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VVNCX1JUTDgxNTAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzZXRfY2FycmllciYjMzQ7LAogICAgJiMzNDtydGw4MTUwX29wZW4mIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgdW5pbml0aWFsaXplZCB2YXJpYWJsZSB1c2UgaW4gYHNldF9jYXJyaWVyYCBieSBjaGVja2luZyB0aGUgcmV0dXJuIHZhbHVlIG9mIGBnZXRfcmVnaXN0ZXJzYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgVVNCIG5ldHdvcmsgZHJpdmVyLCB3aGljaCBjYW4gYmUgZnV6emVkIHVzaW5nIGR1bW15X2hjZCBvciByYXctZ2FkZ2V0LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDYtMjhUMTc6MDc6MDAuOTk1ODU5MjNaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNzI5Mzc2Njk5OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJVU0JfUlRMODE1MFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInNldF9jYXJyaWVyXCIsXG4gICAgXCJydGw4MTUwX29wZW5cIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCB1bmluaXRpYWxpemVkIHZhcmlhYmxlIHVzZSBpbiBgc2V0X2NhcnJpZXJgIGJ5IGNoZWNraW5nIHRoZSByZXR1cm4gdmFsdWUgb2YgYGdldF9yZWdpc3RlcnNgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSBVU0IgbmV0d29yayBkcml2ZXIsIHdoaWNoIGNhbiBiZSBmdXp6ZWQgdXNpbmcgZHVtbXlfaGNkIG9yIHJhdy1nYWRnZXQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDE3OjA3OjAwLjk5NTg2OTFaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM3MjE3OTExMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGRlMjUyMzJmM2QwODE3NmI3MmQ3NDhhOGM2ODY3MzFhYWIyYWM4ZTRcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFN1biBKdW4gMjggMTc6MDY6NTkgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYyBiL2RyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmNcXG5pbmRleCBjODgwYzk1YzQxYTVlYy4uZDUxZTQzMTcwZTAzM2EgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmNcXG5AQCAtNzMyLDcgKzczMiw5IEBAIHN0YXRpYyB2b2lkIHNldF9jYXJyaWVyKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXFxuIFxcdHJ0bDgxNTBfdCAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG4gXFx0c2hvcnQgdG1wO1xcbiBcXG4tXFx0Z2V0X3JlZ2lzdGVycyhkZXYsIENTQ1IsIDIsIFxcdTAwMjZ0bXApO1xcbitcXHRpZiAoZ2V0X3JlZ2lzdGVycyhkZXYsIENTQ1IsIDIsIFxcdTAwMjZ0bXApKVxcbitcXHRcXHRyZXR1cm47XFxuK1xcbiBcXHRpZiAodG1wIFxcdTAwMjYgQ1NDUl9MSU5LX1NUQVRVUylcXG4gXFx0XFx0bmV0aWZfY2Fycmllcl9vbihuZXRkZXYpO1xcbiBcXHRlbHNlXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDE3OjA3OjAxLjM2ODc2NTkyM1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjY5MjA4NDgyMjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVVNCX1JUTDgxNTBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzZXRfY2FycmllclwiLFxuICAgIFwicnRsODE1MF9vcGVuXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgdW5pbml0aWFsaXplZCB2YXJpYWJsZSB1c2UgaW4gYHNldF9jYXJyaWVyYCBieSBjaGVja2luZyB0aGUgcmV0dXJuIHZhbHVlIG9mIGBnZXRfcmVnaXN0ZXJzYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgVVNCIG5ldHdvcmsgZHJpdmVyLCB3aGljaCBjYW4gYmUgZnV6emVkIHVzaW5nIGR1bW15X2hjZCBvciByYXctZ2FkZ2V0LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGRlMjUyMzJmM2QwODE3NmI3MmQ3NDhhOGM2ODY3MzFhYWIyYWM4ZTRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU3VuIEp1biAyOCAxNzowNjo1OSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMgYi9kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jXG5pbmRleCBjODgwYzk1YzQxYTVlYy4uZDUxZTQzMTcwZTAzM2EgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jXG4rKysgYi9kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jXG5AQCAtNzMyLDcgKzczMiw5IEBAIHN0YXRpYyB2b2lkIHNldF9jYXJyaWVyKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG4gXHRydGw4MTUwX3QgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XG4gXHRzaG9ydCB0bXA7XG4gXG4tXHRnZXRfcmVnaXN0ZXJzKGRldiwgQ1NDUiwgMiwgXHUwMDI2dG1wKTtcbitcdGlmIChnZXRfcmVnaXN0ZXJzKGRldiwgQ1NDUiwgMiwgXHUwMDI2dG1wKSlcbitcdFx0cmV0dXJuO1xuK1xuIFx0aWYgKHRtcCBcdTAwMjYgQ1NDUl9MSU5LX1NUQVRVUylcbiBcdFx0bmV0aWZfY2Fycmllcl9vbihuZXRkZXYpO1xuIFx0ZWxzZVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMTc6MDc6MDEuMzY4NzY4NzUzWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDYwNzA3OTUzMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBOZXR3b3JrIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC91c2IvcnRsODE1MC5jYC4gSXQgbG9va3MgbGlrZSBzb21lb25lJ3MgYWRkZWQgYW4gZXJyb3IgY2hlY2sgaW4gdGhlIGBzZXRfY2FycmllcigpYCBmdW5jdGlvbi4gU3BlY2lmaWNhbGx5LCB0aGV5J3JlIGNoZWNraW5nIHRoZSByZXR1cm4gdmFsdWUgb2YgYGdldF9yZWdpc3RlcnMoZGV2LCBDU0NSLCAyLCBcdTAwMjZ0bXApYC4gSWYgYGdldF9yZWdpc3RlcnNgIHRocm93cyBhbiBlcnJvciwgdGhlIGZ1bmN0aW9uIGp1c3QgcmV0dXJucy4gU2VlbXMgbGlrZSBhIGRlZmVuc2l2ZSBhZGRpdGlvbiwgYnV0IGxldCdzIGRpZyBkZWVwZXIuXG5cbkZpcnN0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dC4gVGhpcyBpcyBhIFVTQiBuZXR3b3JrIGRyaXZlciwgcmlnaHQ/IFNvLCBob3cgaXMgYHNldF9jYXJyaWVyKClgIGJlaW5nIHVzZWQsIGFuZCBpcyBpdCBldmVuICpyZWFjaGFibGUqPyBJIG5lZWQgdG8gZmluZCBpdHMgZGVmaW5pdGlvbiB3aXRoaW4gYHJ0bDgxNTAuY2AuIEZyb20gYSBmdXp6aW5nIHBlcnNwZWN0aXZlLCBVU0IgZHJpdmVycyBhcmUgaW50ZXJlc3RpbmcgdGFyZ2V0cy4gV2UgY2FuIHRlc3QgdGhlbSB1c2luZyB0b29scyBsaWtlIGBkdW1teV9oY2RgIG9yIGJ5IGludGVyYWN0aW5nIHdpdGggdGhlIHJhdyBnYWRnZXQuIFxuXG5MZXQgbWUgdHJhY2sgZG93biBgc2V0X2NhcnJpZXJgIGluIHRoZSBjb2RlIGFuZCB0aGVuIGFzc2VzcyB0aGUgcG90ZW50aWFsIGltcGFjdCBvZiB0aGlzIHBhdGNoIGluIHRoZSBicm9hZGVyIHNjaGVtZSBvZiB0aGluZ3MuIElzIGl0IGEgY3JpdGljYWwgcGF0aCwgb3Igc29tZXRoaW5nIG1vcmUgb2JzY3VyZT9cblxuXG4iLCJJbnB1dFRva2VucyI6MTg2MywiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1MSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDE3OjA3OjA1Ljk3NTg1MTI5NFoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MjIyNTIzNCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzZXRfY2FycmllclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC91c2IvcnRsODE1MC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM9NjgyPXN0YXRpYyBuZXRkZXZfdHhfdCBydGw4MTUwX3N0YXJ0X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMtNzI5LVxcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM6NzMwOnN0YXRpYyB2b2lkIHNldF9jYXJyaWVyKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy03MzEte1xcbi0tXFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYz03NDQ9c3RhdGljIGludCBydGw4MTUwX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMtNzc0LVxcdGVuYWJsZV9uZXRfdHJhZmZpYyhkZXYpO1xcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM6Nzc1OlxcdHNldF9jYXJyaWVyKG5ldGRldik7XFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy03NzYtXFx0bmV0aWZfc3RhcnRfcXVldWUobmV0ZGV2KTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMTc6MDc6MDYuMDM4MDkyMDM4WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQzMTA5Nzg2NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFBvdGVudGlhbCBWdWxuZXJhYmlsaXR5IGluIHJ0bDgxNTAuYyoqXG5cbk9rYXksIHNvIGBzZXRfY2FycmllcmAgaXMgYmVpbmcgY2FsbGVkIGZyb20gd2l0aGluIGBydGw4MTUwX29wZW5gLiBJbnRlcmVzdGluZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIHByZXR0eSBzdGFuZGFyZCBkZWZlbnNpdmUgcHJvZ3JhbW1pbmcgdGVjaG5pcXVlIHRvIGF2b2lkIHVzaW5nIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUgaW4gYHRtcGAgaWYgdGhlIGBnZXRfcmVnaXN0ZXJzYCBmdW5jdGlvbiBmYWlscy4gR29vZCBwcmFjdGljZSwgYnV0IGl0J3MgaW1wb3J0YW50IHRvIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQuXG5cblNpbmNlIHRoaXMgaXMgYSBVU0IgZHJpdmVyLCB0aGUgYXR0YWNrIHN1cmZhY2UgZXhwYW5kcyBzaWduaWZpY2FudGx5LiBVU0IgZHJpdmVycyBhcmUgbm90b3Jpb3VzIHRhcmdldHMuIFRoaXMgbWVhbnMgaXQncyBkZWZpbml0ZWx5IGZ1enphYmxlLCBhbmQgaXQgZGVtYW5kcyBzY3J1dGlueS5cblxuVGltZSB0byBkaXZlIGludG8gdGhlIGNvbmZpZ3VyYXRpb24gYW5kIGNoZWNrIG91dCB0aGUgYHJ0bDgxNTAuY2AgZmlsZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGRhdGEgZmxvdyBhcm91bmQgYGdldF9yZWdpc3RlcnNgIGFuZCBgc2V0X2NhcnJpZXJgIHRvIHNlZSBpZiB0aGlzIGlzIGEgbWlub3IgdHdlYWsgb3IgaWYgdGhpcyByZXZlYWxzIGEgaGlkZGVuIGdlbSBmb3IgYXR0YWNrZXJzLiBNeSBndXQgdGVsbHMgbWUgdG8gbG9vayBmb3IgcmFjZSBjb25kaXRpb25zLCBpbmNvcnJlY3QgZXJyb3IgaGFuZGxpbmcsIGFuZCBtZW1vcnkgY29ycnVwdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjU0NCwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjczLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDE3OjA3OjA5LjQ2OTE5NTI5M1oiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MjY2Nzg4NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydGw4MTUwXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3VzYi9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3VzYi9LY29uZmlnPTg4PWNvbmZpZyBVU0JfUlRMODE1MFxcbi0tXFxuZHJpdmVycy9uZXQvdXNiL0tjb25maWctOTYtXFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGVcXG5kcml2ZXJzL25ldC91c2IvS2NvbmZpZzo5NzpcXHQgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBydGw4MTUwLlxcbmRyaXZlcnMvbmV0L3VzYi9LY29uZmlnLTk4LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOFQxNzowNzowOS41MzE4NzE5MTdaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyOTA5MDM4NDc3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHByZXNlbnRlZCBhcyBteSBvd24gbWVudGFsIHByb2Nlc3MsIGdpdmVuIG15IGV4cGVydGlzZTpcblxuKipDaGVja2luZyBSVEw4MTUwIFVTQiBEcml2ZXIgRXJyb3IgSGFuZGxpbmcqKlxuXG5BbHJpZ2h0LCB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uIGlzIGZvY3VzZWQgb24gdGhlIGBVU0JfUlRMODE1MGAgZHJpdmVyLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gcXVpY2tseSB2ZXJpZnkgdGhlIGVycm9yIGhhbmRsaW5nIHdpdGhpbiB0aGUgY29yZSBsb2dpYy4gU3BlY2lmaWNhbGx5LCBJIG5lZWQgdG8gY29uZmlybSBob3cgYGdldF9yZWdpc3RlcnNgIHNpZ25hbHMgYW4gZXJyb3IgY29uZGl0aW9uLiBJbiBjYXNlcyBvZiBVU0IgY29tbXVuaWNhdGlvbiBmYWlsdXJlcywgb3IgaWYgdGhlIGhhcmR3YXJlIGRvZXNuJ3QgcmVzcG9uZCBhcyBleHBlY3RlZCwgYSBuZWdhdGl2ZSByZXR1cm4gdmFsdWUgaXMgYSBwcmV0dHkgc3RhbmRhcmQgY29udmVudGlvbiBmb3IgZnVuY3Rpb24gY2FsbHMuIEknbGwgbmVlZCB0byBjaGVjayB0aGUgZGVmaW5pdGlvbiBvZiB0aGF0IGZ1bmN0aW9uIHdpdGhpbiB0aGUgY29udGV4dCBvZiB0aGlzIGRyaXZlciBhbmQgY29uZmlybSB0aGlzIGlzIHRoZSBtZXRob2Qgb2Ygc2lnbmFsbGluZyBhIGZhaWx1cmUuIEl0IHdvdWxkIG1ha2UgZGVidWdnaW5nIGVhc2llciBsYXRlciwgYW5kIGNvbmZpcm1zIHRoZSBvdmVyYWxsIHJlbGlhYmlsaXR5LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyOTUwLCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMTc6MDc6MTIuNDQwOTEzMjgzWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYyNTIwMjIzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImdldF9yZWdpc3RlcnNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC91c2IvcnRsODE1MC5jPTE1Mj1zdGF0aWMgY29uc3QgY2hhciBkcml2ZXJfbmFtZSBbXSA9IFxcXCJydGw4MTUwXFxcIjtcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMtMTU4LSovXFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYzoxNTk6c3RhdGljIGludCBnZXRfcmVnaXN0ZXJzKHJ0bDgxNTBfdCAqIGRldiwgdTE2IGluZHgsIHUxNiBzaXplLCB2b2lkICpkYXRhKVxcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMtMTYwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM9MjE4PXN0YXRpYyBpbnQgcmVhZF9taWlfd29yZChydGw4MTUwX3QgKiBkZXYsIHU4IHBoeSwgX191OCBpbmR4LCB1MTYgKiByZWcpXFxuLS1cXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jLTIzMC1cXHRkbyB7XFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYzoyMzE6XFx0XFx0Z2V0X3JlZ2lzdGVycyhkZXYsIFBIWUNOVCwgMSwgZGF0YSk7XFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy0yMzItXFx0fSB3aGlsZSAoKGRhdGFbMF0gXFx1MDAyNiBQSFlfR08pIFxcdTAwMjZcXHUwMDI2IChpKysgXFx1MDAzYyBNSUlfVElNRU9VVCkpO1xcbi0tXFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy0yMzQtXFx0aWYgKGkgXFx1MDAzYz0gTUlJX1RJTUVPVVQpIHtcXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jOjIzNTpcXHRcXHRnZXRfcmVnaXN0ZXJzKGRldiwgUEhZREFULCAyLCBkYXRhKTtcXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jLTIzNi1cXHRcXHQqcmVnID0gZGF0YVswXSB8IChkYXRhWzFdIFxcdTAwM2NcXHUwMDNjIDgpO1xcbi0tXFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYz0yNDI9c3RhdGljIGludCB3cml0ZV9taWlfd29yZChydGw4MTUwX3QgKiBkZXYsIHU4IHBoeSwgX191OCBpbmR4LCB1MTYgcmVnKVxcbi0tXFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy0yNTUtXFx0ZG8ge1xcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM6MjU2OlxcdFxcdGdldF9yZWdpc3RlcnMoZGV2LCBQSFlDTlQsIDEsIGRhdGEpO1xcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMtMjU3LVxcdH0gd2hpbGUgKChkYXRhWzBdIFxcdTAwMjYgUEhZX0dPKSBcXHUwMDI2XFx1MDAyNiAoaSsrIFxcdTAwM2MgTUlJX1RJTUVPVVQpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM9MjY1PXN0YXRpYyB2b2lkIHNldF9ldGhlcm5ldF9hZGRyKHJ0bDgxNTBfdCAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy0yNjktXFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYzoyNzA6XFx0cmV0ID0gZ2V0X3JlZ2lzdGVycyhkZXYsIElEUiwgc2l6ZW9mKG5vZGVfaWQpLCBub2RlX2lkKTtcXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jLTI3MS1cXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM9MjgxPXN0YXRpYyBpbnQgcnRsODE1MF9zZXRfbWFjX2FkZHJlc3Moc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgdm9pZCAqcClcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMtMjk3LVxcdC8qIEdldCB0aGUgQ1IgY29udGVudHMuICovXFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYzoyOTg6XFx0Z2V0X3JlZ2lzdGVycyhkZXYsIENSLCAxLCBcXHUwMDI2Y3IpO1xcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMtMjk5LVxcdC8qIFNldCB0aGUgV0VQUk9NIGJpdCAoZWVwcm9tIHdyaXRlIGVuYWJsZSkuICovXFxuLS1cXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jPTMxNj1zdGF0aWMgaW50IHJ0bDgxNTBfcmVzZXQocnRsODE1MF90ICogZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy0zMjItXFx0ZG8ge1xcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM6MzIzOlxcdFxcdGdldF9yZWdpc3RlcnMoZGV2LCBDUiwgMSwgXFx1MDAyNmRhdGEpO1xcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMtMzI0LVxcdH0gd2hpbGUgKChkYXRhIFxcdTAwMjYgMHgxMCkgXFx1MDAyNlxcdTAwMjYgLS1pKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM9NjI0PXN0YXRpYyBpbnQgZW5hYmxlX25ldF90cmFmZmljKHJ0bDgxNTBfdCAqIGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMtNjM5LVxcdHNldF9yZWdpc3RlcnMoZGV2LCBDUiwgMSwgXFx1MDAyNmNyKTtcXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jOjY0MDpcXHRnZXRfcmVnaXN0ZXJzKGRldiwgTVNSLCAxLCBcXHUwMDI2bXNyKTtcXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jLTY0MS1cXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM9NjQ1PXN0YXRpYyB2b2lkIGRpc2FibGVfbmV0X3RyYWZmaWMocnRsODE1MF90ICogZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy02NDgtXFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYzo2NDk6XFx0Z2V0X3JlZ2lzdGVycyhkZXYsIENSLCAxLCBcXHUwMDI2Y3IpO1xcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMtNjUwLVxcdGNyIFxcdTAwMjY9IDB4ZjM7XFxuLS1cXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jPTczMD1zdGF0aWMgdm9pZCBzZXRfY2FycmllcihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy03MzQtXFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYzo3MzU6XFx0aWYgKGdldF9yZWdpc3RlcnMoZGV2LCBDU0NSLCAyLCBcXHUwMDI2dG1wKSlcXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jLTczNi1cXHRcXHRyZXR1cm47XFxuLS1cXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jPTgwMT1zdGF0aWMgaW50IHJ0bDgxNTBfZ2V0X2xpbmtfa3NldHRpbmdzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jLTgxNi1cXHRlY21kLVxcdTAwM2ViYXNlLnBoeV9hZGRyZXNzID0gZGV2LVxcdTAwM2VwaHk7XFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYzo4MTc6XFx0Z2V0X3JlZ2lzdGVycyhkZXYsIEJNQ1IsIDIsIFxcdTAwMjZibWNyKTtcXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jOjgxODpcXHRnZXRfcmVnaXN0ZXJzKGRldiwgQU5MUCwgMiwgXFx1MDAyNmxwYSk7XFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy04MTktXFx0aWYgKGJtY3IgXFx1MDAyNiBCTUNSX0FORU5BQkxFKSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDE3OjA3OjEyLjUwMzQ0MjczN1oiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5MTc5MDgzNTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzOlxuXG4qKkFuYWx5emluZyB0aGUgT3V0cHV0IG9mIGBnZXRfcmVnaXN0ZXJzYCoqXG5cbk9rYXksIHNvIGBnZXRfcmVnaXN0ZXJzYCBpcyBkZXNpZ25lZCB0byBwcm92aWRlIG1lIHdpdGggYW4gaW50ZWdlciB2YWx1ZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCB0aGlzIGludGVnZXIgcmVwcmVzZW50cy4gVGhlIGltbWVkaWF0ZSBmb2N1cyBpcyBvbiBpbnRlcnByZXRpbmcgdGhpcyByZXR1cm5lZCB2YWx1ZSDigJMgaXMgaXQgYW4gaW5kZXgsIGEgZmxhZywgYSBjb3VudCwgb3Igc29tZXRoaW5nIGVsc2UgZW50aXJlbHk/IFRoZSB0eXBlIGl0c2VsZiBkb2Vzbid0IG9mZmVyIGVub3VnaCBjb250ZXh0LCBzbyB0aGUgbmV4dCBzdGVwIGlzIHRvIGV4YW1pbmUgdGhlIGZ1bmN0aW9uJ3MgZG9jdW1lbnRhdGlvbiwgdGhlIHN1cnJvdW5kaW5nIGNvZGUsIG9yIGV2ZW4gdHJ5IHNvbWUgcXVpY2sgZXhwZXJpbWVudGF0aW9uLCBpZiBwb3NzaWJsZSwgdG8gYXNjZXJ0YWluIGl0cyBwcmVjaXNlIG1lYW5pbmcgYW5kIHVzYWdlIHdpdGhpbiB0aGUgbGFyZ2VyIHN5c3RlbS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDY3NSwiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDE3OjA3OjE1LjQyMTM1NDA2M1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTA0OTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAxNTksXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAxNTk6XFx0c3RhdGljIGludCBnZXRfcmVnaXN0ZXJzKHJ0bDgxNTBfdCAqIGRldiwgdTE2IGluZHgsIHUxNiBzaXplLCB2b2lkICpkYXRhKVxcbiAxNjA6XFx0e1xcbiAxNjE6XFx0XFx0cmV0dXJuIHVzYl9jb250cm9sX21zZ19yZWN2KGRldi1cXHUwMDNldWRldiwgMCwgUlRMODE1MF9SRVFfR0VUX1JFR1MsXFxuIDE2MjpcXHRcXHRcXHRcXHRcXHQgICAgUlRMODE1MF9SRVFUX1JFQUQsIGluZHgsIDAsIGRhdGEsIHNpemUsXFxuIDE2MzpcXHRcXHRcXHRcXHRcXHQgICAgMTAwMCwgR0ZQX05PSU8pO1xcbiAxNjQ6XFx0fVxcbiAxNjU6XFx0XFxuIDE2NjpcXHRzdGF0aWMgaW50IHNldF9yZWdpc3RlcnMocnRsODE1MF90ICogZGV2LCB1MTYgaW5keCwgdTE2IHNpemUsIGNvbnN0IHZvaWQgKmRhdGEpXFxuIDE2NzpcXHR7XFxuIDE2ODpcXHRcXHRyZXR1cm4gdXNiX2NvbnRyb2xfbXNnX3NlbmQoZGV2LVxcdTAwM2V1ZGV2LCAwLCBSVEw4MTUwX1JFUV9TRVRfUkVHUyxcXG4gMTY5OlxcdFxcdFxcdFxcdFxcdCAgICBSVEw4MTUwX1JFUVRfV1JJVEUsIGluZHgsIDAsIGRhdGEsIHNpemUsXFxuIDE3MDpcXHRcXHRcXHRcXHRcXHQgICAgMTAwMCwgR0ZQX05PSU8pO1xcbiAxNzE6XFx0fVxcbiAxNzI6XFx0XFxuIDE3MzpcXHRzdGF0aWMgdm9pZCBhc3luY19zZXRfcmVnX2NiKHN0cnVjdCB1cmIgKnVyYilcXG4gMTc0OlxcdHtcXG4gMTc1OlxcdFxcdHN0cnVjdCBhc3luY19yZXEgKnJlcSA9IChzdHJ1Y3QgYXN5bmNfcmVxICopdXJiLVxcdTAwM2Vjb250ZXh0O1xcbiAxNzY6XFx0XFx0aW50IHN0YXR1cyA9IHVyYi1cXHUwMDNlc3RhdHVzO1xcbiAxNzc6XFx0XFxuIDE3ODpcXHRcXHRpZiAoc3RhdHVzIFxcdTAwM2MgMClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMTc6MDc6MTUuNDIxNDY2NjgzWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyMjQ0OTQ1OTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRm9jdXNzaW5nIE15IEZ1enppbmcgRWZmb3J0cyoqXG5cbk9rYXksIHNvIGB1c2JfY29udHJvbF9tc2dfcmVjdmAgcmV0dXJucyAwIG9uIHN1Y2Nlc3MgYW5kIGEgbmVnYXRpdmUgdmFsdWUgb24gZXJyb3IuIFRoYXQgbWVhbnMgdGhlIGVycm9yIGhhbmRsaW5nIGluIGBpZiAoZ2V0X3JlZ2lzdGVycyhkZXYsIENTQ1IsIDIsIFx1MDAyNnRtcCkpYCBpcyBleGFjdGx5IHJpZ2h0OyB0aGUgY29uZGl0aW9uYWwgd2lsbCBjYXRjaCB0aGUgZXJyb3IgY29ycmVjdGx5LiBHb29kLiBOb3csIEkgbmVlZCB0byBwaWNrIHdoaWNoIGZ1bmN0aW9ucyB0byB0YXJnZXQgZm9yIGZ1enppbmcuXG5cbkkndmUgZ290IGBzZXRfY2FycmllcmAsIGFuZCBJIGtub3cgaXQncyBkZWZpbml0ZWx5IHJlYWNoYWJsZSBzaW5jZSBpdCdzIGNhbGxlZCBmcm9tIGJvdGggYHJ0bDgxNTBfb3BlbmAgYW5kIGBydGw4MTUwX3R4X3RpbWVvdXRgLiBUaGF0IG1ha2VzIGl0IGEgc3Ryb25nIGNvbnRlbmRlci4gQWxzbywgYHJ0bDgxNTBfb3BlbmAgaXRzZWxmIGlzIGEgcHJpbWUgY2FuZGlkYXRlLiBMZXQncyBub3QgZm9yZ2V0IGBydGw4MTUwX3Byb2JlYCwgdGhhdCdzIGFub3RoZXIgZnVuY3Rpb24gSSBzaG91bGQgYWRkIHRvIG15IGxpc3QuXG5cbkFscmlnaHQsIGxldCdzIHN0YXJ0IGJ5IGRpZ2dpbmcgaW50byBgcnRsODE1MF9vcGVuYC4gSSdsbCBzdGFydCB0aGVyZSBhbmQgc2VlIHdoYXQgaW50ZXJlc3RpbmcgdGhpbmdzIEkgY2FuIGZpbmQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUyNTIsIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDksIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yOFQxNzowNzoxOS42NDU5NjQ2MTFaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYzMDM2MzA0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ0bDgxNTBfb3BlblwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC91c2IvcnRsODE1MC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM9NzMwPXN0YXRpYyB2b2lkIHNldF9jYXJyaWVyKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jLTc0My1cXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jOjc0NDpzdGF0aWMgaW50IHJ0bDgxNTBfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMtNzQ1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM9ODc2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgcnRsODE1MF9uZXRkZXZfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM6ODc3OlxcdC5uZG9fb3BlblxcdFxcdD0gcnRsODE1MF9vcGVuLFxcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMtODc4LVxcdC5uZG9fc3RvcFxcdFxcdD0gcnRsODE1MF9jbG9zZSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMTc6MDc6MTkuNzA5MDE5MTg1WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI4NjI5MDk5ODEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duOlxuXG4qKkFuYWx5emluZyBQb3RlbnRpYWwgVVNCIERyaXZlciBCZWhhdmlvcioqXG5cbkFscmlnaHQsIGxldCdzIHplcm8gaW4gb24gdGhpcy4gSSBzZWUgYHNldF9jYXJyaWVyYCBhbmQgYHJ0bDgxNTBfb3BlbmAgYXMgdGhlIGtleSBmdW5jdGlvbiBjYWxscyBoZXJlLiBUaGV5J3JlIG15IGZvY3VzIHN5bWJvbHMsIGxpa2VseSB0aGUgaGVhcnQgb2YgdGhpcyBVU0IgbmV0d29yayBpbnRlcmZhY2UgZHJpdmVyLCB0aGUgUlRMODE1MC4gR2l2ZW4gdGhlIGBVU0JfUlRMODE1MGAgY29uZmlndXJhdGlvbiwgaXQncyBwcmV0dHkgY2xlYXIgdGhpcyBpcyBhYm91dCBicmluZ2luZyB1cCB0aGUgaW50ZXJmYWNlLiBCZWZvcmUgSSBnbyBmdXJ0aGVyIGRvd24gdGhhdCBwYXRoIEkgd2FudCB0byBtYWtlIHN1cmUgbm8gb3RoZXIgY29uZmlndXJhdGlvbnMgbWlnaHQgYWZmZWN0IHRoaXMgZHJpdmVyJ3MgaW5pdGlhbGl6YXRpb24gb3IgYmVoYXZpb3IuIEkgbmVlZCB0byBrbm93IHRoZSBlbnRpcmUgY29udGV4dC4gTGV0IG1lIHNjYW4gZm9yIGFueSByZWxhdGVkIGNvbmZpZyBvcHRpb25zIHRoYXQgY291bGQgaW5mbHVlbmNlIHRoaXMgcHJvY2Vzcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTg5MCwiT3V0cHV0VG9rZW5zIjoyOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDE3OjA3OjIyLjU3MTkzMjg1NVoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjI0MzAyMzc1MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJVU0JfUlRMODE1MFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9hcm0vY29uZmlncy9lcDkzeHhfZGVmY29uZmlnPTYxPUNPTkZJR19FUDkzWFhfRVRIPXlcXG5hcmNoL2FybS9jb25maWdzL2VwOTN4eF9kZWZjb25maWc6NjI6Q09ORklHX1VTQl9SVEw4MTUwPXlcXG5hcmNoL2FybS9jb25maWdzL2VwOTN4eF9kZWZjb25maWctNjMtIyBDT05GSUdfSU5QVVQgaXMgbm90IHNldFxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9leHlub3NfZGVmY29uZmlnPTEwND1DT05GSUdfU01TQzkxMVg9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvZXh5bm9zX2RlZmNvbmZpZzoxMDU6Q09ORklHX1VTQl9SVEw4MTUwPW1cXG5hcmNoL2FybS9jb25maWdzL2V4eW5vc19kZWZjb25maWctMTA2LUNPTkZJR19VU0JfUlRMODE1Mj15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL2lteF92Nl92N19kZWZjb25maWc9MTM5PUNPTkZJR19VU0JfUEVHQVNVUz1tXFxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjZfdjdfZGVmY29uZmlnOjE0MDpDT05GSUdfVVNCX1JUTDgxNTA9bVxcbmFyY2gvYXJtL2NvbmZpZ3MvaW14X3Y2X3Y3X2RlZmNvbmZpZy0xNDEtQ09ORklHX1VTQl9SVEw4MTUyPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3Mvb21hcDFfZGVmY29uZmlnPTEwMz1DT05GSUdfVVNCX1BFR0FTVVM9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvb21hcDFfZGVmY29uZmlnOjEwNDpDT05GSUdfVVNCX1JUTDgxNTA9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvb21hcDFfZGVmY29uZmlnLTEwNS1DT05GSUdfVVNCX1VTQk5FVD15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL3B4YV9kZWZjb25maWc9MjAzPUNPTkZJR19VU0JfUEVHQVNVUz1tXFxuYXJjaC9hcm0vY29uZmlncy9weGFfZGVmY29uZmlnOjIwNDpDT05GSUdfVVNCX1JUTDgxNTA9bVxcbmFyY2gvYXJtL2NvbmZpZ3MvcHhhX2RlZmNvbmZpZy0yMDUtQ09ORklHX1VTQl9SVEw4MTUyPW1cXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BpdHpfZGVmY29uZmlnPTkyPUNPTkZJR19VU0JfUEVHQVNVUz1tXFxuYXJjaC9hcm0vY29uZmlncy9zcGl0el9kZWZjb25maWc6OTM6Q09ORklHX1VTQl9SVEw4MTUwPW1cXG5hcmNoL2FybS9jb25maWdzL3NwaXR6X2RlZmNvbmZpZy05NC1DT05GSUdfVVNCX1VTQk5FVD1tXFxuLS1cXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnPTQ4OT1DT05GSUdfVVNCX1BFR0FTVVM9bVxcbmFyY2gvYXJtNjQvY29uZmlncy9kZWZjb25maWc6NDkwOkNPTkZJR19VU0JfUlRMODE1MD1tXFxuYXJjaC9hcm02NC9jb25maWdzL2RlZmNvbmZpZy00OTEtQ09ORklHX1VTQl9SVEw4MTUyPW1cXG4tLVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc9NjQwPUNPTkZJR19QUFBfU1lOQ19UVFk9bVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc6NjQxOkNPTkZJR19VU0JfUlRMODE1MD1tXFxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjMyX2RlZmNvbmZpZy02NDItQ09ORklHX1VTQl9SVEw4MTUyPW1cXG4tLVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb242NF9kZWZjb25maWc9NjU2PUNPTkZJR19QUFBfU1lOQ19UVFk9bVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb242NF9kZWZjb25maWc6NjU3OkNPTkZJR19VU0JfUlRMODE1MD1tXFxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjY0X2RlZmNvbmZpZy02NTgtQ09ORklHX1VTQl9SVEw4MTUyPW1cXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL210eDFfZGVmY29uZmlnPTI5Mz1DT05GSUdfVVNCX1BFR0FTVVM9bVxcbmFyY2gvbWlwcy9jb25maWdzL210eDFfZGVmY29uZmlnOjI5NDpDT05GSUdfVVNCX1JUTDgxNTA9bVxcbmFyY2gvbWlwcy9jb25maWdzL210eDFfZGVmY29uZmlnLTI5NS1DT05GSUdfVVNCX1VTQk5FVD1tXFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9ybTIwMF9kZWZjb25maWc9MjMzPUNPTkZJR19VU0JfUEVHQVNVUz1tXFxuYXJjaC9taXBzL2NvbmZpZ3Mvcm0yMDBfZGVmY29uZmlnOjIzNDpDT05GSUdfVVNCX1JUTDgxNTA9bVxcbmFyY2gvbWlwcy9jb25maWdzL3JtMjAwX2RlZmNvbmZpZy0yMzUtQ09ORklHX1VTQl9VU0JORVQ9bVxcbi0tXFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvZzVfZGVmY29uZmlnPTEwOD1DT05GSUdfVVNCX1BFR0FTVVM9bVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL2c1X2RlZmNvbmZpZzoxMDk6Q09ORklHX1VTQl9SVEw4MTUwPW1cXG5hcmNoL3Bvd2VycGMvY29uZmlncy9nNV9kZWZjb25maWctMTEwLUNPTkZJR19VU0JfVVNCTkVUPW1cXG4tLVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL3BwYzZ4eF9kZWZjb25maWc9NDg1PUNPTkZJR19VU0JfUEVHQVNVUz1tXFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNnh4X2RlZmNvbmZpZzo0ODY6Q09ORklHX1VTQl9SVEw4MTUwPW1cXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2eHhfZGVmY29uZmlnLTQ4Ny1DT05GSUdfVVNCX1VTQk5FVD1tXFxuLS1cXG5hcmNoL3NoL2NvbmZpZ3MvbGFuZGlza19kZWZjb25maWc9NDY9Q09ORklHX1VTQl9QRUdBU1VTPW1cXG5hcmNoL3NoL2NvbmZpZ3MvbGFuZGlza19kZWZjb25maWc6NDc6Q09ORklHX1VTQl9SVEw4MTUwPW1cXG5hcmNoL3NoL2NvbmZpZ3MvbGFuZGlza19kZWZjb25maWctNDgtQ09ORklHX0lOUFVUX0ZGX01FTUxFU1M9bVxcbi0tXFxuYXJjaC9zaC9jb25maWdzL3RpdGFuX2RlZmNvbmZpZz0xNzY9Q09ORklHX1VTQl9QRUdBU1VTPW1cXG5hcmNoL3NoL2NvbmZpZ3MvdGl0YW5fZGVmY29uZmlnOjE3NzpDT05GSUdfVVNCX1JUTDgxNTA9bVxcbmFyY2gvc2gvY29uZmlncy90aXRhbl9kZWZjb25maWctMTc4LUNPTkZJR19VU0JfVVNCTkVUPW1cXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9LY29uZmlnPTczPWNvbmZpZyBVU0JfUEVHQVNVU1xcbi0tXFxuZHJpdmVycy9uZXQvdXNiL0tjb25maWctODctXFxuZHJpdmVycy9uZXQvdXNiL0tjb25maWc6ODg6Y29uZmlnIFVTQl9SVEw4MTUwXFxuZHJpdmVycy9uZXQvdXNiL0tjb25maWctODktXFx0dHJpc3RhdGUgXFxcIlVTQiBSVEw4MTUwIGJhc2VkIGV0aGVybmV0IGRldmljZSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvdXNiL01ha2VmaWxlPTg9b2JqLSQoQ09ORklHX1VTQl9QRUdBU1VTKVxcdCs9IHBlZ2FzdXMub1xcbmRyaXZlcnMvbmV0L3VzYi9NYWtlZmlsZTo5Om9iai0kKENPTkZJR19VU0JfUlRMODE1MClcXHQrPSBydGw4MTUwLm9cXG5kcml2ZXJzL25ldC91c2IvTWFrZWZpbGUtMTAtb2JqLSQoQ09ORklHX1VTQl9SVEw4MTUyKVxcdCs9IHI4MTUyLm9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMTc6MDc6MjQuODE0OTY1MTU3WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMzOTM3MzAzNzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRoaXMg4oCTIHN0cmFpZ2h0IHRvIHRoZSBwb2ludCBhcyBhbHdheXM6XG5cbioqVVNCIFJUTDgxNTAgRHJpdmVyIEZpeCoqXG5cblJpZ2h0LCBzbywgbG9va3MgbGlrZSB3ZSdyZSBkZWFsaW5nIHdpdGggYSBzaW1wbGUgb25lIGhlcmUuIFRoZSBgVVNCX1JUTDgxNTBgIGNvbmZpZyBpcyB0aGUgb25seSBrZXkgY29tcG9uZW50IG5lZWRlZCwgbm90aGluZyBlbHNlIHRvIGJlIGNvbmNlcm5lZCB3aXRoIHRoZXJlLiBGcm9tIHdoYXQgSSBjYW4gZ2F0aGVyLCB0aGUgcGF0Y2ggYWRkcmVzc2VzIGFuIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgYnVnIGluIHRoZSBgc2V0X2NhcnJpZXJgIGZ1bmN0aW9uLiBUaGUgZml4IGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQ6IGl0J3MgY2hlY2tpbmcgdGhlIHJldHVybiB2YWx1ZSBmcm9tIGBnZXRfcmVnaXN0ZXJzYCBiZWZvcmUgcHJvY2VlZGluZy4gQSBwZXJmZWN0bHkgZnVuY3Rpb25hbCBjaGFuZ2UsIGFzIEkgc2VlIGl0LiBOb3RoaW5nIHRvIGdldCBmbHVzdGVyZWQgYWJvdXQuIFdlIHdpbGwgY2FsbCB0aGF0IGBzZXQtcmVzdWx0c2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjc2NDcsIk91dHB1dFRva2VucyI6MTEwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMTc6MDc6MjguMjA4Njk5MTU2WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODA5MTAwMzIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlVTQl9SVEw4MTUwXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic2V0X2NhcnJpZXJcIixcbiAgICBcInJ0bDgxNTBfb3BlblwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgdXNlIGluIGBzZXRfY2FycmllcmAgYnkgY2hlY2tpbmcgdGhlIHJldHVybiB2YWx1ZSBvZiBgZ2V0X3JlZ2lzdGVyc2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIFVTQiBuZXR3b3JrIGRyaXZlciwgd2hpY2ggY2FuIGJlIGZ1enplZCB1c2luZyBkdW1teV9oY2Qgb3IgcmF3LWdhZGdldC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJVU0JfUlRMODE1MFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInNldF9jYXJyaWVyXCIsXG4gICAgXCJydGw4MTUwX29wZW5cIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCB1bmluaXRpYWxpemVkIHZhcmlhYmxlIHVzZSBpbiBgc2V0X2NhcnJpZXJgIGJ5IGNoZWNraW5nIHRoZSByZXR1cm4gdmFsdWUgb2YgYGdldF9yZWdpc3RlcnNgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSBVU0IgbmV0d29yayBkcml2ZXIsIHdoaWNoIGNhbiBiZSBmdXp6ZWQgdXNpbmcgZHVtbXlfaGNkIG9yIHJhdy1nYWRnZXQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },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-workflowtjtq4[0].run-triage(0) Phase: Succeeded StartedAt: 2026-06-28 16:58:03 +0000 UTC FinishedAt: 2026-06-28 17:07:29 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "805185b7c7a1069e407b6f7b3bc98e44d415f484", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "USB_RTL8150" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "805185b7c7a1069e407b6f7b3bc98e44d415f484", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "USB_RTL8150" ], "series_id": "f23d1887-abcd-435b-84fa-78d2af6da6ad" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "set_carrier", "rtl8150_open" ], "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+CgkJCTx0ZD4yMDI2LzA2LzI4IDE3OjA3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1VTQl9SVEw4MTUwJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c2V0X2NhcnJpZXImIzM0OywKICAgICYjMzQ7cnRsODE1MF9vcGVuJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgdXNlIGluIGBzZXRfY2FycmllcmAgYnkgY2hlY2tpbmcgdGhlIHJldHVybiB2YWx1ZSBvZiBgZ2V0X3JlZ2lzdGVyc2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIFVTQiBuZXR3b3JrIGRyaXZlciwgd2hpY2ggY2FuIGJlIGZ1enplZCB1c2luZyBkdW1teV9oY2Qgb3IgcmF3LWdhZGdldC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOCAxNzowNzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGRlMjUyMzJmM2QwODE3NmI3MmQ3NDhhOGM2ODY3MzFhYWIyYWM4ZTRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU3VuIEp1biAyOCAxNzowNjo1OSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jIGIvZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuY1xuaW5kZXggYzg4MGM5NWM0MWE1ZWMuLmQ1MWU0MzE3MGUwMzNhIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuY1xuQEAgLTczMiw3ICYjNDM7NzMyLDkgQEAgc3RhdGljIHZvaWQgc2V0X2NhcnJpZXIoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbiBcdHJ0bDgxNTBfdCAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbiBcdHNob3J0IHRtcDtcbiBcbi1cdGdldF9yZWdpc3RlcnMoZGV2LCBDU0NSLCAyLCBcdTAwMjZ0bXApO1xuJiM0MztcdGlmIChnZXRfcmVnaXN0ZXJzKGRldiwgQ1NDUiwgMiwgXHUwMDI2dG1wKSlcbiYjNDM7XHRcdHJldHVybjtcbiYjNDM7XG4gXHRpZiAodG1wIFx1MDAyNiBDU0NSX0xJTktfU1RBVFVTKVxuIFx0XHRuZXRpZl9jYXJyaWVyX29uKG5ldGRldik7XG4gXHRlbHNlXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMTc6MDc8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VVNCX1JUTDgxNTAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzZXRfY2FycmllciYjMzQ7LAogICAgJiMzNDtydGw4MTUwX29wZW4mIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgdW5pbml0aWFsaXplZCB2YXJpYWJsZSB1c2UgaW4gYHNldF9jYXJyaWVyYCBieSBjaGVja2luZyB0aGUgcmV0dXJuIHZhbHVlIG9mIGBnZXRfcmVnaXN0ZXJzYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgVVNCIG5ldHdvcmsgZHJpdmVyLCB3aGljaCBjYW4gYmUgZnV6emVkIHVzaW5nIGR1bW15X2hjZCBvciByYXctZ2FkZ2V0LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBkZTI1MjMyZjNkMDgxNzZiNzJkNzQ4YThjNjg2NzMxYWFiMmFjOGU0CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFN1biBKdW4gMjggMTc6MDY6NTkgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jIGIvZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYwppbmRleCBjODgwYzk1YzQxYTVlYy4uZDUxZTQzMTcwZTAzM2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYwpAQCAtNzMyLDcgJiM0Mzs3MzIsOSBAQCBzdGF0aWMgdm9pZCBzZXRfY2FycmllcihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KQogCXJ0bDgxNTBfdCAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTsKIAlzaG9ydCB0bXA7CiAKLQlnZXRfcmVnaXN0ZXJzKGRldiwgQ1NDUiwgMiwgJmFtcDt0bXApOwomIzQzOwlpZiAoZ2V0X3JlZ2lzdGVycyhkZXYsIENTQ1IsIDIsICZhbXA7dG1wKSkKJiM0MzsJCXJldHVybjsKJiM0MzsKIAlpZiAodG1wICZhbXA7IENTQ1JfTElOS19TVEFUVVMpCiAJCW5ldGlmX2NhcnJpZXJfb24obmV0ZGV2KTsKIAllbHNlCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI4IDE3OjA3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4NjMKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAxNTEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgTmV0d29yayBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC91c2IvcnRsODE1MC5jYC4gSXQgbG9va3MgbGlrZSBzb21lb25lJiMzOTtzIGFkZGVkIGFuIGVycm9yIGNoZWNrIGluIHRoZSBgc2V0X2NhcnJpZXIoKWAgZnVuY3Rpb24uIFNwZWNpZmljYWxseSwgdGhleSYjMzk7cmUgY2hlY2tpbmcgdGhlIHJldHVybiB2YWx1ZSBvZiBgZ2V0X3JlZ2lzdGVycyhkZXYsIENTQ1IsIDIsICZhbXA7dG1wKWAuIElmIGBnZXRfcmVnaXN0ZXJzYCB0aHJvd3MgYW4gZXJyb3IsIHRoZSBmdW5jdGlvbiBqdXN0IHJldHVybnMuIFNlZW1zIGxpa2UgYSBkZWZlbnNpdmUgYWRkaXRpb24sIGJ1dCBsZXQmIzM5O3MgZGlnIGRlZXBlci4KCkZpcnN0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dC4gVGhpcyBpcyBhIFVTQiBuZXR3b3JrIGRyaXZlciwgcmlnaHQ/IFNvLCBob3cgaXMgYHNldF9jYXJyaWVyKClgIGJlaW5nIHVzZWQsIGFuZCBpcyBpdCBldmVuICpyZWFjaGFibGUqPyBJIG5lZWQgdG8gZmluZCBpdHMgZGVmaW5pdGlvbiB3aXRoaW4gYHJ0bDgxNTAuY2AuIEZyb20gYSBmdXp6aW5nIHBlcnNwZWN0aXZlLCBVU0IgZHJpdmVycyBhcmUgaW50ZXJlc3RpbmcgdGFyZ2V0cy4gV2UgY2FuIHRlc3QgdGhlbSB1c2luZyB0b29scyBsaWtlIGBkdW1teV9oY2RgIG9yIGJ5IGludGVyYWN0aW5nIHdpdGggdGhlIHJhdyBnYWRnZXQuIAoKTGV0IG1lIHRyYWNrIGRvd24gYHNldF9jYXJyaWVyYCBpbiB0aGUgY29kZSBhbmQgdGhlbiBhc3Nlc3MgdGhlIHBvdGVudGlhbCBpbXBhY3Qgb2YgdGhpcyBwYXRjaCBpbiB0aGUgYnJvYWRlciBzY2hlbWUgb2YgdGhpbmdzLiBJcyBpdCBhIGNyaXRpY2FsIHBhdGgsIG9yIHNvbWV0aGluZyBtb3JlIG9ic2N1cmU/CgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMTc6MDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2V0X2NhcnJpZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC91c2IvcnRsODE1MC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM9NjgyPXN0YXRpYyBuZXRkZXZfdHhfdCBydGw4MTUwX3N0YXJ0X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jLTcyOS1cbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM6NzMwOnN0YXRpYyB2b2lkIHNldF9jYXJyaWVyKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jLTczMS17XG4tLVxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYz03NDQ9c3RhdGljIGludCBydGw4MTUwX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbi0tXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jLTc3NC1cdGVuYWJsZV9uZXRfdHJhZmZpYyhkZXYpO1xuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYzo3NzU6XHRzZXRfY2FycmllcihuZXRkZXYpO1xuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy03NzYtXHRuZXRpZl9zdGFydF9xdWV1ZShuZXRkZXYpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI4IDE3OjA3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI1NDQKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiA3MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFBvdGVudGlhbCBWdWxuZXJhYmlsaXR5IGluIHJ0bDgxNTAuYyoqCgpPa2F5LCBzbyBgc2V0X2NhcnJpZXJgIGlzIGJlaW5nIGNhbGxlZCBmcm9tIHdpdGhpbiBgcnRsODE1MF9vcGVuYC4gSW50ZXJlc3RpbmcuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYSBwcmV0dHkgc3RhbmRhcmQgZGVmZW5zaXZlIHByb2dyYW1taW5nIHRlY2huaXF1ZSB0byBhdm9pZCB1c2luZyBhbiB1bmluaXRpYWxpemVkIHZhbHVlIGluIGB0bXBgIGlmIHRoZSBgZ2V0X3JlZ2lzdGVyc2AgZnVuY3Rpb24gZmFpbHMuIEdvb2QgcHJhY3RpY2UsIGJ1dCBpdCYjMzk7cyBpbXBvcnRhbnQgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dC4KClNpbmNlIHRoaXMgaXMgYSBVU0IgZHJpdmVyLCB0aGUgYXR0YWNrIHN1cmZhY2UgZXhwYW5kcyBzaWduaWZpY2FudGx5LiBVU0IgZHJpdmVycyBhcmUgbm90b3Jpb3VzIHRhcmdldHMuIFRoaXMgbWVhbnMgaXQmIzM5O3MgZGVmaW5pdGVseSBmdXp6YWJsZSwgYW5kIGl0IGRlbWFuZHMgc2NydXRpbnkuCgpUaW1lIHRvIGRpdmUgaW50byB0aGUgY29uZmlndXJhdGlvbiBhbmQgY2hlY2sgb3V0IHRoZSBgcnRsODE1MC5jYCBmaWxlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgZGF0YSBmbG93IGFyb3VuZCBgZ2V0X3JlZ2lzdGVyc2AgYW5kIGBzZXRfY2FycmllcmAgdG8gc2VlIGlmIHRoaXMgaXMgYSBtaW5vciB0d2VhayBvciBpZiB0aGlzIHJldmVhbHMgYSBoaWRkZW4gZ2VtIGZvciBhdHRhY2tlcnMuIE15IGd1dCB0ZWxscyBtZSB0byBsb29rIGZvciByYWNlIGNvbmRpdGlvbnMsIGluY29ycmVjdCBlcnJvciBoYW5kbGluZywgYW5kIG1lbW9yeSBjb3JydXB0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI4IDE3OjA3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J0bDgxNTAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC91c2IvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC91c2IvS2NvbmZpZz04OD1jb25maWcgVVNCX1JUTDgxNTBcbi0tXG5kcml2ZXJzL25ldC91c2IvS2NvbmZpZy05Ni1cdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlXG5kcml2ZXJzL25ldC91c2IvS2NvbmZpZzo5NzpcdCAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIHJ0bDgxNTAuXG5kcml2ZXJzL25ldC91c2IvS2NvbmZpZy05OC1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOCAxNzowNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyOTUwCgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHByZXNlbnRlZCBhcyBteSBvd24gbWVudGFsIHByb2Nlc3MsIGdpdmVuIG15IGV4cGVydGlzZToKCioqQ2hlY2tpbmcgUlRMODE1MCBVU0IgRHJpdmVyIEVycm9yIEhhbmRsaW5nKioKCkFscmlnaHQsIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24gaXMgZm9jdXNlZCBvbiB0aGUgYFVTQl9SVEw4MTUwYCBkcml2ZXIuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBxdWlja2x5IHZlcmlmeSB0aGUgZXJyb3IgaGFuZGxpbmcgd2l0aGluIHRoZSBjb3JlIGxvZ2ljLiBTcGVjaWZpY2FsbHksIEkgbmVlZCB0byBjb25maXJtIGhvdyBgZ2V0X3JlZ2lzdGVyc2Agc2lnbmFscyBhbiBlcnJvciBjb25kaXRpb24uIEluIGNhc2VzIG9mIFVTQiBjb21tdW5pY2F0aW9uIGZhaWx1cmVzLCBvciBpZiB0aGUgaGFyZHdhcmUgZG9lc24mIzM5O3QgcmVzcG9uZCBhcyBleHBlY3RlZCwgYSBuZWdhdGl2ZSByZXR1cm4gdmFsdWUgaXMgYSBwcmV0dHkgc3RhbmRhcmQgY29udmVudGlvbiBmb3IgZnVuY3Rpb24gY2FsbHMuIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgdGhlIGRlZmluaXRpb24gb2YgdGhhdCBmdW5jdGlvbiB3aXRoaW4gdGhlIGNvbnRleHQgb2YgdGhpcyBkcml2ZXIgYW5kIGNvbmZpcm0gdGhpcyBpcyB0aGUgbWV0aG9kIG9mIHNpZ25hbGxpbmcgYSBmYWlsdXJlLiBJdCB3b3VsZCBtYWtlIGRlYnVnZ2luZyBlYXNpZXIgbGF0ZXIsIGFuZCBjb25maXJtcyB0aGUgb3ZlcmFsbCByZWxpYWJpbGl0eS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOCAxNzowNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtnZXRfcmVnaXN0ZXJzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC91c2IvcnRsODE1MC5jPTE1Mj1zdGF0aWMgY29uc3QgY2hhciBkcml2ZXJfbmFtZSBbXSA9IFwmIzM0O3J0bDgxNTBcJiMzNDs7XG4tLVxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy0xNTgtKi9cbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM6MTU5OnN0YXRpYyBpbnQgZ2V0X3JlZ2lzdGVycyhydGw4MTUwX3QgKiBkZXYsIHUxNiBpbmR4LCB1MTYgc2l6ZSwgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMtMTYwLXtcbi0tXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jPTIxOD1zdGF0aWMgaW50IHJlYWRfbWlpX3dvcmQocnRsODE1MF90ICogZGV2LCB1OCBwaHksIF9fdTggaW5keCwgdTE2ICogcmVnKVxuLS1cbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMtMjMwLVx0ZG8ge1xuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYzoyMzE6XHRcdGdldF9yZWdpc3RlcnMoZGV2LCBQSFlDTlQsIDEsIGRhdGEpO1xuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy0yMzItXHR9IHdoaWxlICgoZGF0YVswXSBcdTAwMjYgUEhZX0dPKSBcdTAwMjZcdTAwMjYgKGkmIzQzOyYjNDM7IFx1MDAzYyBNSUlfVElNRU9VVCkpO1xuLS1cbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMtMjM0LVx0aWYgKGkgXHUwMDNjPSBNSUlfVElNRU9VVCkge1xuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYzoyMzU6XHRcdGdldF9yZWdpc3RlcnMoZGV2LCBQSFlEQVQsIDIsIGRhdGEpO1xuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy0yMzYtXHRcdCpyZWcgPSBkYXRhWzBdIHwgKGRhdGFbMV0gXHUwMDNjXHUwMDNjIDgpO1xuLS1cbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM9MjQyPXN0YXRpYyBpbnQgd3JpdGVfbWlpX3dvcmQocnRsODE1MF90ICogZGV2LCB1OCBwaHksIF9fdTggaW5keCwgdTE2IHJlZylcbi0tXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jLTI1NS1cdGRvIHtcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM6MjU2Olx0XHRnZXRfcmVnaXN0ZXJzKGRldiwgUEhZQ05ULCAxLCBkYXRhKTtcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMtMjU3LVx0fSB3aGlsZSAoKGRhdGFbMF0gXHUwMDI2IFBIWV9HTykgXHUwMDI2XHUwMDI2IChpJiM0MzsmIzQzOyBcdTAwM2MgTUlJX1RJTUVPVVQpKTtcbi0tXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jPTI2NT1zdGF0aWMgdm9pZCBzZXRfZXRoZXJuZXRfYWRkcihydGw4MTUwX3QgKmRldilcbi0tXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jLTI2OS1cbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM6MjcwOlx0cmV0ID0gZ2V0X3JlZ2lzdGVycyhkZXYsIElEUiwgc2l6ZW9mKG5vZGVfaWQpLCBub2RlX2lkKTtcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMtMjcxLVxuLS1cbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM9MjgxPXN0YXRpYyBpbnQgcnRsODE1MF9zZXRfbWFjX2FkZHJlc3Moc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgdm9pZCAqcClcbi0tXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jLTI5Ny1cdC8qIEdldCB0aGUgQ1IgY29udGVudHMuICovXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jOjI5ODpcdGdldF9yZWdpc3RlcnMoZGV2LCBDUiwgMSwgXHUwMDI2Y3IpO1xuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy0yOTktXHQvKiBTZXQgdGhlIFdFUFJPTSBiaXQgKGVlcHJvbSB3cml0ZSBlbmFibGUpLiAqL1xuLS1cbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM9MzE2PXN0YXRpYyBpbnQgcnRsODE1MF9yZXNldChydGw4MTUwX3QgKiBkZXYpXG4tLVxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy0zMjItXHRkbyB7XG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jOjMyMzpcdFx0Z2V0X3JlZ2lzdGVycyhkZXYsIENSLCAxLCBcdTAwMjZkYXRhKTtcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMtMzI0LVx0fSB3aGlsZSAoKGRhdGEgXHUwMDI2IDB4MTApIFx1MDAyNlx1MDAyNiAtLWkpO1xuLS1cbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM9NjI0PXN0YXRpYyBpbnQgZW5hYmxlX25ldF90cmFmZmljKHJ0bDgxNTBfdCAqIGRldilcbi0tXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jLTYzOS1cdHNldF9yZWdpc3RlcnMoZGV2LCBDUiwgMSwgXHUwMDI2Y3IpO1xuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYzo2NDA6XHRnZXRfcmVnaXN0ZXJzKGRldiwgTVNSLCAxLCBcdTAwMjZtc3IpO1xuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy02NDEtXG4tLVxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYz02NDU9c3RhdGljIHZvaWQgZGlzYWJsZV9uZXRfdHJhZmZpYyhydGw4MTUwX3QgKiBkZXYpXG4tLVxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy02NDgtXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jOjY0OTpcdGdldF9yZWdpc3RlcnMoZGV2LCBDUiwgMSwgXHUwMDI2Y3IpO1xuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy02NTAtXHRjciBcdTAwMjY9IDB4ZjM7XG4tLVxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYz03MzA9c3RhdGljIHZvaWQgc2V0X2NhcnJpZXIoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbi0tXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jLTczNC1cbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM6NzM1Olx0aWYgKGdldF9yZWdpc3RlcnMoZGV2LCBDU0NSLCAyLCBcdTAwMjZ0bXApKVxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy03MzYtXHRcdHJldHVybjtcbi0tXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jPTgwMT1zdGF0aWMgaW50IHJ0bDgxNTBfZ2V0X2xpbmtfa3NldHRpbmdzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4tLVxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy04MTYtXHRlY21kLVx1MDAzZWJhc2UucGh5X2FkZHJlc3MgPSBkZXYtXHUwMDNlcGh5O1xuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYzo4MTc6XHRnZXRfcmVnaXN0ZXJzKGRldiwgQk1DUiwgMiwgXHUwMDI2Ym1jcik7XG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jOjgxODpcdGdldF9yZWdpc3RlcnMoZGV2LCBBTkxQLCAyLCBcdTAwMjZscGEpO1xuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy04MTktXHRpZiAoYm1jciBcdTAwMjYgQk1DUl9BTkVOQUJMRSkge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI4IDE3OjA3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ2NzUKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiAxNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzOgoKKipBbmFseXppbmcgdGhlIE91dHB1dCBvZiBgZ2V0X3JlZ2lzdGVyc2AqKgoKT2theSwgc28gYGdldF9yZWdpc3RlcnNgIGlzIGRlc2lnbmVkIHRvIHByb3ZpZGUgbWUgd2l0aCBhbiBpbnRlZ2VyIHZhbHVlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IHRoaXMgaW50ZWdlciByZXByZXNlbnRzLiBUaGUgaW1tZWRpYXRlIGZvY3VzIGlzIG9uIGludGVycHJldGluZyB0aGlzIHJldHVybmVkIHZhbHVlIOKAkyBpcyBpdCBhbiBpbmRleCwgYSBmbGFnLCBhIGNvdW50LCBvciBzb21ldGhpbmcgZWxzZSBlbnRpcmVseT8gVGhlIHR5cGUgaXRzZWxmIGRvZXNuJiMzOTt0IG9mZmVyIGVub3VnaCBjb250ZXh0LCBzbyB0aGUgbmV4dCBzdGVwIGlzIHRvIGV4YW1pbmUgdGhlIGZ1bmN0aW9uJiMzOTtzIGRvY3VtZW50YXRpb24sIHRoZSBzdXJyb3VuZGluZyBjb2RlLCBvciBldmVuIHRyeSBzb21lIHF1aWNrIGV4cGVyaW1lbnRhdGlvbiwgaWYgcG9zc2libGUsIHRvIGFzY2VydGFpbiBpdHMgcHJlY2lzZSBtZWFuaW5nIGFuZCB1c2FnZSB3aXRoaW4gdGhlIGxhcmdlciBzeXN0ZW0uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI4IDE3OjA3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDE1OSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgMTU5Olx0c3RhdGljIGludCBnZXRfcmVnaXN0ZXJzKHJ0bDgxNTBfdCAqIGRldiwgdTE2IGluZHgsIHUxNiBzaXplLCB2b2lkICpkYXRhKVxuIDE2MDpcdHtcbiAxNjE6XHRcdHJldHVybiB1c2JfY29udHJvbF9tc2dfcmVjdihkZXYtXHUwMDNldWRldiwgMCwgUlRMODE1MF9SRVFfR0VUX1JFR1MsXG4gMTYyOlx0XHRcdFx0XHQgICAgUlRMODE1MF9SRVFUX1JFQUQsIGluZHgsIDAsIGRhdGEsIHNpemUsXG4gMTYzOlx0XHRcdFx0XHQgICAgMTAwMCwgR0ZQX05PSU8pO1xuIDE2NDpcdH1cbiAxNjU6XHRcbiAxNjY6XHRzdGF0aWMgaW50IHNldF9yZWdpc3RlcnMocnRsODE1MF90ICogZGV2LCB1MTYgaW5keCwgdTE2IHNpemUsIGNvbnN0IHZvaWQgKmRhdGEpXG4gMTY3Olx0e1xuIDE2ODpcdFx0cmV0dXJuIHVzYl9jb250cm9sX21zZ19zZW5kKGRldi1cdTAwM2V1ZGV2LCAwLCBSVEw4MTUwX1JFUV9TRVRfUkVHUyxcbiAxNjk6XHRcdFx0XHRcdCAgICBSVEw4MTUwX1JFUVRfV1JJVEUsIGluZHgsIDAsIGRhdGEsIHNpemUsXG4gMTcwOlx0XHRcdFx0XHQgICAgMTAwMCwgR0ZQX05PSU8pO1xuIDE3MTpcdH1cbiAxNzI6XHRcbiAxNzM6XHRzdGF0aWMgdm9pZCBhc3luY19zZXRfcmVnX2NiKHN0cnVjdCB1cmIgKnVyYilcbiAxNzQ6XHR7XG4gMTc1Olx0XHRzdHJ1Y3QgYXN5bmNfcmVxICpyZXEgPSAoc3RydWN0IGFzeW5jX3JlcSAqKXVyYi1cdTAwM2Vjb250ZXh0O1xuIDE3NjpcdFx0aW50IHN0YXR1cyA9IHVyYi1cdTAwM2VzdGF0dXM7XG4gMTc3Olx0XG4gMTc4Olx0XHRpZiAoc3RhdHVzIFx1MDAzYyAwKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOCAxNzowNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MjUyCgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogMTQ5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZvY3Vzc2luZyBNeSBGdXp6aW5nIEVmZm9ydHMqKgoKT2theSwgc28gYHVzYl9jb250cm9sX21zZ19yZWN2YCByZXR1cm5zIDAgb24gc3VjY2VzcyBhbmQgYSBuZWdhdGl2ZSB2YWx1ZSBvbiBlcnJvci4gVGhhdCBtZWFucyB0aGUgZXJyb3IgaGFuZGxpbmcgaW4gYGlmIChnZXRfcmVnaXN0ZXJzKGRldiwgQ1NDUiwgMiwgJmFtcDt0bXApKWAgaXMgZXhhY3RseSByaWdodDsgdGhlIGNvbmRpdGlvbmFsIHdpbGwgY2F0Y2ggdGhlIGVycm9yIGNvcnJlY3RseS4gR29vZC4gTm93LCBJIG5lZWQgdG8gcGljayB3aGljaCBmdW5jdGlvbnMgdG8gdGFyZ2V0IGZvciBmdXp6aW5nLgoKSSYjMzk7dmUgZ290IGBzZXRfY2FycmllcmAsIGFuZCBJIGtub3cgaXQmIzM5O3MgZGVmaW5pdGVseSByZWFjaGFibGUgc2luY2UgaXQmIzM5O3MgY2FsbGVkIGZyb20gYm90aCBgcnRsODE1MF9vcGVuYCBhbmQgYHJ0bDgxNTBfdHhfdGltZW91dGAuIFRoYXQgbWFrZXMgaXQgYSBzdHJvbmcgY29udGVuZGVyLiBBbHNvLCBgcnRsODE1MF9vcGVuYCBpdHNlbGYgaXMgYSBwcmltZSBjYW5kaWRhdGUuIExldCYjMzk7cyBub3QgZm9yZ2V0IGBydGw4MTUwX3Byb2JlYCwgdGhhdCYjMzk7cyBhbm90aGVyIGZ1bmN0aW9uIEkgc2hvdWxkIGFkZCB0byBteSBsaXN0LgoKQWxyaWdodCwgbGV0JiMzOTtzIHN0YXJ0IGJ5IGRpZ2dpbmcgaW50byBgcnRsODE1MF9vcGVuYC4gSSYjMzk7bGwgc3RhcnQgdGhlcmUgYW5kIHNlZSB3aGF0IGludGVyZXN0aW5nIHRoaW5ncyBJIGNhbiBmaW5kLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yOCAxNzowNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtydGw4MTUwX29wZW4mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC91c2IvcnRsODE1MC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM9NzMwPXN0YXRpYyB2b2lkIHNldF9jYXJyaWVyKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG4tLVxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy03NDMtXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jOjc0NDpzdGF0aWMgaW50IHJ0bDgxNTBfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy03NDUte1xuLS1cbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM9ODc2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgcnRsODE1MF9uZXRkZXZfb3BzID0ge1xuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYzo4Nzc6XHQubmRvX29wZW5cdFx0PSBydGw4MTUwX29wZW4sXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jLTg3OC1cdC5uZG9fc3RvcFx0XHQ9IHJ0bDgxNTBfY2xvc2UsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI4IDE3OjA3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU4OTAKCQkJCQkJCW91dHB1dDogMjgKCQkJCQkJCXRob3VnaHRzOiA0MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duOgoKKipBbmFseXppbmcgUG90ZW50aWFsIFVTQiBEcml2ZXIgQmVoYXZpb3IqKgoKQWxyaWdodCwgbGV0JiMzOTtzIHplcm8gaW4gb24gdGhpcy4gSSBzZWUgYHNldF9jYXJyaWVyYCBhbmQgYHJ0bDgxNTBfb3BlbmAgYXMgdGhlIGtleSBmdW5jdGlvbiBjYWxscyBoZXJlLiBUaGV5JiMzOTtyZSBteSBmb2N1cyBzeW1ib2xzLCBsaWtlbHkgdGhlIGhlYXJ0IG9mIHRoaXMgVVNCIG5ldHdvcmsgaW50ZXJmYWNlIGRyaXZlciwgdGhlIFJUTDgxNTAuIEdpdmVuIHRoZSBgVVNCX1JUTDgxNTBgIGNvbmZpZ3VyYXRpb24sIGl0JiMzOTtzIHByZXR0eSBjbGVhciB0aGlzIGlzIGFib3V0IGJyaW5naW5nIHVwIHRoZSBpbnRlcmZhY2UuIEJlZm9yZSBJIGdvIGZ1cnRoZXIgZG93biB0aGF0IHBhdGggSSB3YW50IHRvIG1ha2Ugc3VyZSBubyBvdGhlciBjb25maWd1cmF0aW9ucyBtaWdodCBhZmZlY3QgdGhpcyBkcml2ZXImIzM5O3MgaW5pdGlhbGl6YXRpb24gb3IgYmVoYXZpb3IuIEkgbmVlZCB0byBrbm93IHRoZSBlbnRpcmUgY29udGV4dC4gTGV0IG1lIHNjYW4gZm9yIGFueSByZWxhdGVkIGNvbmZpZyBvcHRpb25zIHRoYXQgY291bGQgaW5mbHVlbmNlIHRoaXMgcHJvY2Vzcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMTc6MDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7VVNCX1JUTDgxNTAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC9hcm0vY29uZmlncy9lcDkzeHhfZGVmY29uZmlnPTYxPUNPTkZJR19FUDkzWFhfRVRIPXlcbmFyY2gvYXJtL2NvbmZpZ3MvZXA5M3h4X2RlZmNvbmZpZzo2MjpDT05GSUdfVVNCX1JUTDgxNTA9eVxuYXJjaC9hcm0vY29uZmlncy9lcDkzeHhfZGVmY29uZmlnLTYzLSMgQ09ORklHX0lOUFVUIGlzIG5vdCBzZXRcbi0tXG5hcmNoL2FybS9jb25maWdzL2V4eW5vc19kZWZjb25maWc9MTA0PUNPTkZJR19TTVNDOTExWD15XG5hcmNoL2FybS9jb25maWdzL2V4eW5vc19kZWZjb25maWc6MTA1OkNPTkZJR19VU0JfUlRMODE1MD1tXG5hcmNoL2FybS9jb25maWdzL2V4eW5vc19kZWZjb25maWctMTA2LUNPTkZJR19VU0JfUlRMODE1Mj15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjZfdjdfZGVmY29uZmlnPTEzOT1DT05GSUdfVVNCX1BFR0FTVVM9bVxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjZfdjdfZGVmY29uZmlnOjE0MDpDT05GSUdfVVNCX1JUTDgxNTA9bVxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjZfdjdfZGVmY29uZmlnLTE0MS1DT05GSUdfVVNCX1JUTDgxNTI9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3Mvb21hcDFfZGVmY29uZmlnPTEwMz1DT05GSUdfVVNCX1BFR0FTVVM9eVxuYXJjaC9hcm0vY29uZmlncy9vbWFwMV9kZWZjb25maWc6MTA0OkNPTkZJR19VU0JfUlRMODE1MD15XG5hcmNoL2FybS9jb25maWdzL29tYXAxX2RlZmNvbmZpZy0xMDUtQ09ORklHX1VTQl9VU0JORVQ9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvcHhhX2RlZmNvbmZpZz0yMDM9Q09ORklHX1VTQl9QRUdBU1VTPW1cbmFyY2gvYXJtL2NvbmZpZ3MvcHhhX2RlZmNvbmZpZzoyMDQ6Q09ORklHX1VTQl9SVEw4MTUwPW1cbmFyY2gvYXJtL2NvbmZpZ3MvcHhhX2RlZmNvbmZpZy0yMDUtQ09ORklHX1VTQl9SVEw4MTUyPW1cbi0tXG5hcmNoL2FybS9jb25maWdzL3NwaXR6X2RlZmNvbmZpZz05Mj1DT05GSUdfVVNCX1BFR0FTVVM9bVxuYXJjaC9hcm0vY29uZmlncy9zcGl0el9kZWZjb25maWc6OTM6Q09ORklHX1VTQl9SVEw4MTUwPW1cbmFyY2gvYXJtL2NvbmZpZ3Mvc3BpdHpfZGVmY29uZmlnLTk0LUNPTkZJR19VU0JfVVNCTkVUPW1cbi0tXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnPTQ4OT1DT05GSUdfVVNCX1BFR0FTVVM9bVxuYXJjaC9hcm02NC9jb25maWdzL2RlZmNvbmZpZzo0OTA6Q09ORklHX1VTQl9SVEw4MTUwPW1cbmFyY2gvYXJtNjQvY29uZmlncy9kZWZjb25maWctNDkxLUNPTkZJR19VU0JfUlRMODE1Mj1tXG4tLVxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjMyX2RlZmNvbmZpZz02NDA9Q09ORklHX1BQUF9TWU5DX1RUWT1tXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnOjY0MTpDT05GSUdfVVNCX1JUTDgxNTA9bVxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjMyX2RlZmNvbmZpZy02NDItQ09ORklHX1VTQl9SVEw4MTUyPW1cbi0tXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnPTY1Nj1DT05GSUdfUFBQX1NZTkNfVFRZPW1cbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb242NF9kZWZjb25maWc6NjU3OkNPTkZJR19VU0JfUlRMODE1MD1tXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnLTY1OC1DT05GSUdfVVNCX1JUTDgxNTI9bVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL210eDFfZGVmY29uZmlnPTI5Mz1DT05GSUdfVVNCX1BFR0FTVVM9bVxuYXJjaC9taXBzL2NvbmZpZ3MvbXR4MV9kZWZjb25maWc6Mjk0OkNPTkZJR19VU0JfUlRMODE1MD1tXG5hcmNoL21pcHMvY29uZmlncy9tdHgxX2RlZmNvbmZpZy0yOTUtQ09ORklHX1VTQl9VU0JORVQ9bVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL3JtMjAwX2RlZmNvbmZpZz0yMzM9Q09ORklHX1VTQl9QRUdBU1VTPW1cbmFyY2gvbWlwcy9jb25maWdzL3JtMjAwX2RlZmNvbmZpZzoyMzQ6Q09ORklHX1VTQl9SVEw4MTUwPW1cbmFyY2gvbWlwcy9jb25maWdzL3JtMjAwX2RlZmNvbmZpZy0yMzUtQ09ORklHX1VTQl9VU0JORVQ9bVxuLS1cbmFyY2gvcG93ZXJwYy9jb25maWdzL2c1X2RlZmNvbmZpZz0xMDg9Q09ORklHX1VTQl9QRUdBU1VTPW1cbmFyY2gvcG93ZXJwYy9jb25maWdzL2c1X2RlZmNvbmZpZzoxMDk6Q09ORklHX1VTQl9SVEw4MTUwPW1cbmFyY2gvcG93ZXJwYy9jb25maWdzL2c1X2RlZmNvbmZpZy0xMTAtQ09ORklHX1VTQl9VU0JORVQ9bVxuLS1cbmFyY2gvcG93ZXJwYy9jb25maWdzL3BwYzZ4eF9kZWZjb25maWc9NDg1PUNPTkZJR19VU0JfUEVHQVNVUz1tXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2eHhfZGVmY29uZmlnOjQ4NjpDT05GSUdfVVNCX1JUTDgxNTA9bVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNnh4X2RlZmNvbmZpZy00ODctQ09ORklHX1VTQl9VU0JORVQ9bVxuLS1cbmFyY2gvc2gvY29uZmlncy9sYW5kaXNrX2RlZmNvbmZpZz00Nj1DT05GSUdfVVNCX1BFR0FTVVM9bVxuYXJjaC9zaC9jb25maWdzL2xhbmRpc2tfZGVmY29uZmlnOjQ3OkNPTkZJR19VU0JfUlRMODE1MD1tXG5hcmNoL3NoL2NvbmZpZ3MvbGFuZGlza19kZWZjb25maWctNDgtQ09ORklHX0lOUFVUX0ZGX01FTUxFU1M9bVxuLS1cbmFyY2gvc2gvY29uZmlncy90aXRhbl9kZWZjb25maWc9MTc2PUNPTkZJR19VU0JfUEVHQVNVUz1tXG5hcmNoL3NoL2NvbmZpZ3MvdGl0YW5fZGVmY29uZmlnOjE3NzpDT05GSUdfVVNCX1JUTDgxNTA9bVxuYXJjaC9zaC9jb25maWdzL3RpdGFuX2RlZmNvbmZpZy0xNzgtQ09ORklHX1VTQl9VU0JORVQ9bVxuLS1cbmRyaXZlcnMvbmV0L3VzYi9LY29uZmlnPTczPWNvbmZpZyBVU0JfUEVHQVNVU1xuLS1cbmRyaXZlcnMvbmV0L3VzYi9LY29uZmlnLTg3LVxuZHJpdmVycy9uZXQvdXNiL0tjb25maWc6ODg6Y29uZmlnIFVTQl9SVEw4MTUwXG5kcml2ZXJzL25ldC91c2IvS2NvbmZpZy04OS1cdHRyaXN0YXRlIFwmIzM0O1VTQiBSVEw4MTUwIGJhc2VkIGV0aGVybmV0IGRldmljZSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvdXNiL01ha2VmaWxlPTg9b2JqLSQoQ09ORklHX1VTQl9QRUdBU1VTKVx0JiM0Mzs9IHBlZ2FzdXMub1xuZHJpdmVycy9uZXQvdXNiL01ha2VmaWxlOjk6b2JqLSQoQ09ORklHX1VTQl9SVEw4MTUwKVx0JiM0Mzs9IHJ0bDgxNTAub1xuZHJpdmVycy9uZXQvdXNiL01ha2VmaWxlLTEwLW9iai0kKENPTkZJR19VU0JfUlRMODE1MilcdCYjNDM7PSByODE1Mi5vXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI4IDE3OjA3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDc2NDcKCQkJCQkJCW91dHB1dDogMTEwCgkJCQkJCQl0aG91Z2h0czogNjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aGlzIOKAkyBzdHJhaWdodCB0byB0aGUgcG9pbnQgYXMgYWx3YXlzOgoKKipVU0IgUlRMODE1MCBEcml2ZXIgRml4KioKClJpZ2h0LCBzbywgbG9va3MgbGlrZSB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGEgc2ltcGxlIG9uZSBoZXJlLiBUaGUgYFVTQl9SVEw4MTUwYCBjb25maWcgaXMgdGhlIG9ubHkga2V5IGNvbXBvbmVudCBuZWVkZWQsIG5vdGhpbmcgZWxzZSB0byBiZSBjb25jZXJuZWQgd2l0aCB0aGVyZS4gRnJvbSB3aGF0IEkgY2FuIGdhdGhlciwgdGhlIHBhdGNoIGFkZHJlc3NlcyBhbiB1bmluaXRpYWxpemVkIHZhcmlhYmxlIGJ1ZyBpbiB0aGUgYHNldF9jYXJyaWVyYCBmdW5jdGlvbi4gVGhlIGZpeCBpcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkOiBpdCYjMzk7cyBjaGVja2luZyB0aGUgcmV0dXJuIHZhbHVlIGZyb20gYGdldF9yZWdpc3RlcnNgIGJlZm9yZSBwcm9jZWVkaW5nLiBBIHBlcmZlY3RseSBmdW5jdGlvbmFsIGNoYW5nZSwgYXMgSSBzZWUgaXQuIE5vdGhpbmcgdG8gZ2V0IGZsdXN0ZXJlZCBhYm91dC4gV2Ugd2lsbCBjYWxsIHRoYXQgYHNldC1yZXN1bHRzYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjggMTc6MDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1VTQl9SVEw4MTUwJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c2V0X2NhcnJpZXImIzM0OywKICAgICYjMzQ7cnRsODE1MF9vcGVuJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgdXNlIGluIGBzZXRfY2FycmllcmAgYnkgY2hlY2tpbmcgdGhlIHJldHVybiB2YWx1ZSBvZiBgZ2V0X3JlZ2lzdGVyc2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIFVTQiBuZXR3b3JrIGRyaXZlciwgd2hpY2ggY2FuIGJlIGZ1enplZCB1c2luZyBkdW1teV9oY2Qgb3IgcmF3LWdhZGdldC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VVNCX1JUTDgxNTAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzZXRfY2FycmllciYjMzQ7LAogICAgJiMzNDtydGw4MTUwX29wZW4mIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgdW5pbml0aWFsaXplZCB2YXJpYWJsZSB1c2UgaW4gYHNldF9jYXJyaWVyYCBieSBjaGVja2luZyB0aGUgcmV0dXJuIHZhbHVlIG9mIGBnZXRfcmVnaXN0ZXJzYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgVVNCIG5ldHdvcmsgZHJpdmVyLCB3aGljaCBjYW4gYmUgZnV6emVkIHVzaW5nIGR1bW15X2hjZCBvciByYXctZ2FkZ2V0LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDYtMjhUMTc6MDc6MDAuOTk1ODU5MjNaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNzI5Mzc2Njk5OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJVU0JfUlRMODE1MFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInNldF9jYXJyaWVyXCIsXG4gICAgXCJydGw4MTUwX29wZW5cIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCB1bmluaXRpYWxpemVkIHZhcmlhYmxlIHVzZSBpbiBgc2V0X2NhcnJpZXJgIGJ5IGNoZWNraW5nIHRoZSByZXR1cm4gdmFsdWUgb2YgYGdldF9yZWdpc3RlcnNgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSBVU0IgbmV0d29yayBkcml2ZXIsIHdoaWNoIGNhbiBiZSBmdXp6ZWQgdXNpbmcgZHVtbXlfaGNkIG9yIHJhdy1nYWRnZXQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDE3OjA3OjAwLjk5NTg2OTFaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM3MjE3OTExMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGRlMjUyMzJmM2QwODE3NmI3MmQ3NDhhOGM2ODY3MzFhYWIyYWM4ZTRcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFN1biBKdW4gMjggMTc6MDY6NTkgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYyBiL2RyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmNcXG5pbmRleCBjODgwYzk1YzQxYTVlYy4uZDUxZTQzMTcwZTAzM2EgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmNcXG5AQCAtNzMyLDcgKzczMiw5IEBAIHN0YXRpYyB2b2lkIHNldF9jYXJyaWVyKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXFxuIFxcdHJ0bDgxNTBfdCAqZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG4gXFx0c2hvcnQgdG1wO1xcbiBcXG4tXFx0Z2V0X3JlZ2lzdGVycyhkZXYsIENTQ1IsIDIsIFxcdTAwMjZ0bXApO1xcbitcXHRpZiAoZ2V0X3JlZ2lzdGVycyhkZXYsIENTQ1IsIDIsIFxcdTAwMjZ0bXApKVxcbitcXHRcXHRyZXR1cm47XFxuK1xcbiBcXHRpZiAodG1wIFxcdTAwMjYgQ1NDUl9MSU5LX1NUQVRVUylcXG4gXFx0XFx0bmV0aWZfY2Fycmllcl9vbihuZXRkZXYpO1xcbiBcXHRlbHNlXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDE3OjA3OjAxLjM2ODc2NTkyM1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjY5MjA4NDgyMjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVVNCX1JUTDgxNTBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzZXRfY2FycmllclwiLFxuICAgIFwicnRsODE1MF9vcGVuXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgdW5pbml0aWFsaXplZCB2YXJpYWJsZSB1c2UgaW4gYHNldF9jYXJyaWVyYCBieSBjaGVja2luZyB0aGUgcmV0dXJuIHZhbHVlIG9mIGBnZXRfcmVnaXN0ZXJzYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgVVNCIG5ldHdvcmsgZHJpdmVyLCB3aGljaCBjYW4gYmUgZnV6emVkIHVzaW5nIGR1bW15X2hjZCBvciByYXctZ2FkZ2V0LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGRlMjUyMzJmM2QwODE3NmI3MmQ3NDhhOGM2ODY3MzFhYWIyYWM4ZTRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU3VuIEp1biAyOCAxNzowNjo1OSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMgYi9kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jXG5pbmRleCBjODgwYzk1YzQxYTVlYy4uZDUxZTQzMTcwZTAzM2EgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jXG4rKysgYi9kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jXG5AQCAtNzMyLDcgKzczMiw5IEBAIHN0YXRpYyB2b2lkIHNldF9jYXJyaWVyKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG4gXHRydGw4MTUwX3QgKmRldiA9IG5ldGRldl9wcml2KG5ldGRldik7XG4gXHRzaG9ydCB0bXA7XG4gXG4tXHRnZXRfcmVnaXN0ZXJzKGRldiwgQ1NDUiwgMiwgXHUwMDI2dG1wKTtcbitcdGlmIChnZXRfcmVnaXN0ZXJzKGRldiwgQ1NDUiwgMiwgXHUwMDI2dG1wKSlcbitcdFx0cmV0dXJuO1xuK1xuIFx0aWYgKHRtcCBcdTAwMjYgQ1NDUl9MSU5LX1NUQVRVUylcbiBcdFx0bmV0aWZfY2Fycmllcl9vbihuZXRkZXYpO1xuIFx0ZWxzZVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMTc6MDc6MDEuMzY4NzY4NzUzWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDYwNzA3OTUzMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBOZXR3b3JrIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC91c2IvcnRsODE1MC5jYC4gSXQgbG9va3MgbGlrZSBzb21lb25lJ3MgYWRkZWQgYW4gZXJyb3IgY2hlY2sgaW4gdGhlIGBzZXRfY2FycmllcigpYCBmdW5jdGlvbi4gU3BlY2lmaWNhbGx5LCB0aGV5J3JlIGNoZWNraW5nIHRoZSByZXR1cm4gdmFsdWUgb2YgYGdldF9yZWdpc3RlcnMoZGV2LCBDU0NSLCAyLCBcdTAwMjZ0bXApYC4gSWYgYGdldF9yZWdpc3RlcnNgIHRocm93cyBhbiBlcnJvciwgdGhlIGZ1bmN0aW9uIGp1c3QgcmV0dXJucy4gU2VlbXMgbGlrZSBhIGRlZmVuc2l2ZSBhZGRpdGlvbiwgYnV0IGxldCdzIGRpZyBkZWVwZXIuXG5cbkZpcnN0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dC4gVGhpcyBpcyBhIFVTQiBuZXR3b3JrIGRyaXZlciwgcmlnaHQ/IFNvLCBob3cgaXMgYHNldF9jYXJyaWVyKClgIGJlaW5nIHVzZWQsIGFuZCBpcyBpdCBldmVuICpyZWFjaGFibGUqPyBJIG5lZWQgdG8gZmluZCBpdHMgZGVmaW5pdGlvbiB3aXRoaW4gYHJ0bDgxNTAuY2AuIEZyb20gYSBmdXp6aW5nIHBlcnNwZWN0aXZlLCBVU0IgZHJpdmVycyBhcmUgaW50ZXJlc3RpbmcgdGFyZ2V0cy4gV2UgY2FuIHRlc3QgdGhlbSB1c2luZyB0b29scyBsaWtlIGBkdW1teV9oY2RgIG9yIGJ5IGludGVyYWN0aW5nIHdpdGggdGhlIHJhdyBnYWRnZXQuIFxuXG5MZXQgbWUgdHJhY2sgZG93biBgc2V0X2NhcnJpZXJgIGluIHRoZSBjb2RlIGFuZCB0aGVuIGFzc2VzcyB0aGUgcG90ZW50aWFsIGltcGFjdCBvZiB0aGlzIHBhdGNoIGluIHRoZSBicm9hZGVyIHNjaGVtZSBvZiB0aGluZ3MuIElzIGl0IGEgY3JpdGljYWwgcGF0aCwgb3Igc29tZXRoaW5nIG1vcmUgb2JzY3VyZT9cblxuXG4iLCJJbnB1dFRva2VucyI6MTg2MywiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1MSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDE3OjA3OjA1Ljk3NTg1MTI5NFoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MjIyNTIzNCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzZXRfY2FycmllclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC91c2IvcnRsODE1MC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM9NjgyPXN0YXRpYyBuZXRkZXZfdHhfdCBydGw4MTUwX3N0YXJ0X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMtNzI5LVxcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM6NzMwOnN0YXRpYyB2b2lkIHNldF9jYXJyaWVyKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy03MzEte1xcbi0tXFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYz03NDQ9c3RhdGljIGludCBydGw4MTUwX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMtNzc0LVxcdGVuYWJsZV9uZXRfdHJhZmZpYyhkZXYpO1xcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM6Nzc1OlxcdHNldF9jYXJyaWVyKG5ldGRldik7XFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy03NzYtXFx0bmV0aWZfc3RhcnRfcXVldWUobmV0ZGV2KTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMTc6MDc6MDYuMDM4MDkyMDM4WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQzMTA5Nzg2NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFBvdGVudGlhbCBWdWxuZXJhYmlsaXR5IGluIHJ0bDgxNTAuYyoqXG5cbk9rYXksIHNvIGBzZXRfY2FycmllcmAgaXMgYmVpbmcgY2FsbGVkIGZyb20gd2l0aGluIGBydGw4MTUwX29wZW5gLiBJbnRlcmVzdGluZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIHByZXR0eSBzdGFuZGFyZCBkZWZlbnNpdmUgcHJvZ3JhbW1pbmcgdGVjaG5pcXVlIHRvIGF2b2lkIHVzaW5nIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUgaW4gYHRtcGAgaWYgdGhlIGBnZXRfcmVnaXN0ZXJzYCBmdW5jdGlvbiBmYWlscy4gR29vZCBwcmFjdGljZSwgYnV0IGl0J3MgaW1wb3J0YW50IHRvIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQuXG5cblNpbmNlIHRoaXMgaXMgYSBVU0IgZHJpdmVyLCB0aGUgYXR0YWNrIHN1cmZhY2UgZXhwYW5kcyBzaWduaWZpY2FudGx5LiBVU0IgZHJpdmVycyBhcmUgbm90b3Jpb3VzIHRhcmdldHMuIFRoaXMgbWVhbnMgaXQncyBkZWZpbml0ZWx5IGZ1enphYmxlLCBhbmQgaXQgZGVtYW5kcyBzY3J1dGlueS5cblxuVGltZSB0byBkaXZlIGludG8gdGhlIGNvbmZpZ3VyYXRpb24gYW5kIGNoZWNrIG91dCB0aGUgYHJ0bDgxNTAuY2AgZmlsZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGRhdGEgZmxvdyBhcm91bmQgYGdldF9yZWdpc3RlcnNgIGFuZCBgc2V0X2NhcnJpZXJgIHRvIHNlZSBpZiB0aGlzIGlzIGEgbWlub3IgdHdlYWsgb3IgaWYgdGhpcyByZXZlYWxzIGEgaGlkZGVuIGdlbSBmb3IgYXR0YWNrZXJzLiBNeSBndXQgdGVsbHMgbWUgdG8gbG9vayBmb3IgcmFjZSBjb25kaXRpb25zLCBpbmNvcnJlY3QgZXJyb3IgaGFuZGxpbmcsIGFuZCBtZW1vcnkgY29ycnVwdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjU0NCwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjczLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDE3OjA3OjA5LjQ2OTE5NTI5M1oiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MjY2Nzg4NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydGw4MTUwXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3VzYi9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3VzYi9LY29uZmlnPTg4PWNvbmZpZyBVU0JfUlRMODE1MFxcbi0tXFxuZHJpdmVycy9uZXQvdXNiL0tjb25maWctOTYtXFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGVcXG5kcml2ZXJzL25ldC91c2IvS2NvbmZpZzo5NzpcXHQgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBydGw4MTUwLlxcbmRyaXZlcnMvbmV0L3VzYi9LY29uZmlnLTk4LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yOFQxNzowNzowOS41MzE4NzE5MTdaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyOTA5MDM4NDc3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHByZXNlbnRlZCBhcyBteSBvd24gbWVudGFsIHByb2Nlc3MsIGdpdmVuIG15IGV4cGVydGlzZTpcblxuKipDaGVja2luZyBSVEw4MTUwIFVTQiBEcml2ZXIgRXJyb3IgSGFuZGxpbmcqKlxuXG5BbHJpZ2h0LCB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uIGlzIGZvY3VzZWQgb24gdGhlIGBVU0JfUlRMODE1MGAgZHJpdmVyLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gcXVpY2tseSB2ZXJpZnkgdGhlIGVycm9yIGhhbmRsaW5nIHdpdGhpbiB0aGUgY29yZSBsb2dpYy4gU3BlY2lmaWNhbGx5LCBJIG5lZWQgdG8gY29uZmlybSBob3cgYGdldF9yZWdpc3RlcnNgIHNpZ25hbHMgYW4gZXJyb3IgY29uZGl0aW9uLiBJbiBjYXNlcyBvZiBVU0IgY29tbXVuaWNhdGlvbiBmYWlsdXJlcywgb3IgaWYgdGhlIGhhcmR3YXJlIGRvZXNuJ3QgcmVzcG9uZCBhcyBleHBlY3RlZCwgYSBuZWdhdGl2ZSByZXR1cm4gdmFsdWUgaXMgYSBwcmV0dHkgc3RhbmRhcmQgY29udmVudGlvbiBmb3IgZnVuY3Rpb24gY2FsbHMuIEknbGwgbmVlZCB0byBjaGVjayB0aGUgZGVmaW5pdGlvbiBvZiB0aGF0IGZ1bmN0aW9uIHdpdGhpbiB0aGUgY29udGV4dCBvZiB0aGlzIGRyaXZlciBhbmQgY29uZmlybSB0aGlzIGlzIHRoZSBtZXRob2Qgb2Ygc2lnbmFsbGluZyBhIGZhaWx1cmUuIEl0IHdvdWxkIG1ha2UgZGVidWdnaW5nIGVhc2llciBsYXRlciwgYW5kIGNvbmZpcm1zIHRoZSBvdmVyYWxsIHJlbGlhYmlsaXR5LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyOTUwLCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMTc6MDc6MTIuNDQwOTEzMjgzWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYyNTIwMjIzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImdldF9yZWdpc3RlcnNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC91c2IvcnRsODE1MC5jPTE1Mj1zdGF0aWMgY29uc3QgY2hhciBkcml2ZXJfbmFtZSBbXSA9IFxcXCJydGw4MTUwXFxcIjtcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMtMTU4LSovXFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYzoxNTk6c3RhdGljIGludCBnZXRfcmVnaXN0ZXJzKHJ0bDgxNTBfdCAqIGRldiwgdTE2IGluZHgsIHUxNiBzaXplLCB2b2lkICpkYXRhKVxcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMtMTYwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM9MjE4PXN0YXRpYyBpbnQgcmVhZF9taWlfd29yZChydGw4MTUwX3QgKiBkZXYsIHU4IHBoeSwgX191OCBpbmR4LCB1MTYgKiByZWcpXFxuLS1cXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jLTIzMC1cXHRkbyB7XFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYzoyMzE6XFx0XFx0Z2V0X3JlZ2lzdGVycyhkZXYsIFBIWUNOVCwgMSwgZGF0YSk7XFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy0yMzItXFx0fSB3aGlsZSAoKGRhdGFbMF0gXFx1MDAyNiBQSFlfR08pIFxcdTAwMjZcXHUwMDI2IChpKysgXFx1MDAzYyBNSUlfVElNRU9VVCkpO1xcbi0tXFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy0yMzQtXFx0aWYgKGkgXFx1MDAzYz0gTUlJX1RJTUVPVVQpIHtcXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jOjIzNTpcXHRcXHRnZXRfcmVnaXN0ZXJzKGRldiwgUEhZREFULCAyLCBkYXRhKTtcXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jLTIzNi1cXHRcXHQqcmVnID0gZGF0YVswXSB8IChkYXRhWzFdIFxcdTAwM2NcXHUwMDNjIDgpO1xcbi0tXFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYz0yNDI9c3RhdGljIGludCB3cml0ZV9taWlfd29yZChydGw4MTUwX3QgKiBkZXYsIHU4IHBoeSwgX191OCBpbmR4LCB1MTYgcmVnKVxcbi0tXFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy0yNTUtXFx0ZG8ge1xcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM6MjU2OlxcdFxcdGdldF9yZWdpc3RlcnMoZGV2LCBQSFlDTlQsIDEsIGRhdGEpO1xcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMtMjU3LVxcdH0gd2hpbGUgKChkYXRhWzBdIFxcdTAwMjYgUEhZX0dPKSBcXHUwMDI2XFx1MDAyNiAoaSsrIFxcdTAwM2MgTUlJX1RJTUVPVVQpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM9MjY1PXN0YXRpYyB2b2lkIHNldF9ldGhlcm5ldF9hZGRyKHJ0bDgxNTBfdCAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy0yNjktXFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYzoyNzA6XFx0cmV0ID0gZ2V0X3JlZ2lzdGVycyhkZXYsIElEUiwgc2l6ZW9mKG5vZGVfaWQpLCBub2RlX2lkKTtcXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jLTI3MS1cXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM9MjgxPXN0YXRpYyBpbnQgcnRsODE1MF9zZXRfbWFjX2FkZHJlc3Moc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgdm9pZCAqcClcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMtMjk3LVxcdC8qIEdldCB0aGUgQ1IgY29udGVudHMuICovXFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYzoyOTg6XFx0Z2V0X3JlZ2lzdGVycyhkZXYsIENSLCAxLCBcXHUwMDI2Y3IpO1xcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMtMjk5LVxcdC8qIFNldCB0aGUgV0VQUk9NIGJpdCAoZWVwcm9tIHdyaXRlIGVuYWJsZSkuICovXFxuLS1cXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jPTMxNj1zdGF0aWMgaW50IHJ0bDgxNTBfcmVzZXQocnRsODE1MF90ICogZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy0zMjItXFx0ZG8ge1xcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM6MzIzOlxcdFxcdGdldF9yZWdpc3RlcnMoZGV2LCBDUiwgMSwgXFx1MDAyNmRhdGEpO1xcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMtMzI0LVxcdH0gd2hpbGUgKChkYXRhIFxcdTAwMjYgMHgxMCkgXFx1MDAyNlxcdTAwMjYgLS1pKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM9NjI0PXN0YXRpYyBpbnQgZW5hYmxlX25ldF90cmFmZmljKHJ0bDgxNTBfdCAqIGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMtNjM5LVxcdHNldF9yZWdpc3RlcnMoZGV2LCBDUiwgMSwgXFx1MDAyNmNyKTtcXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jOjY0MDpcXHRnZXRfcmVnaXN0ZXJzKGRldiwgTVNSLCAxLCBcXHUwMDI2bXNyKTtcXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jLTY0MS1cXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM9NjQ1PXN0YXRpYyB2b2lkIGRpc2FibGVfbmV0X3RyYWZmaWMocnRsODE1MF90ICogZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy02NDgtXFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYzo2NDk6XFx0Z2V0X3JlZ2lzdGVycyhkZXYsIENSLCAxLCBcXHUwMDI2Y3IpO1xcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMtNjUwLVxcdGNyIFxcdTAwMjY9IDB4ZjM7XFxuLS1cXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jPTczMD1zdGF0aWMgdm9pZCBzZXRfY2FycmllcihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy03MzQtXFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYzo3MzU6XFx0aWYgKGdldF9yZWdpc3RlcnMoZGV2LCBDU0NSLCAyLCBcXHUwMDI2dG1wKSlcXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jLTczNi1cXHRcXHRyZXR1cm47XFxuLS1cXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jPTgwMT1zdGF0aWMgaW50IHJ0bDgxNTBfZ2V0X2xpbmtfa3NldHRpbmdzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jLTgxNi1cXHRlY21kLVxcdTAwM2ViYXNlLnBoeV9hZGRyZXNzID0gZGV2LVxcdTAwM2VwaHk7XFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYzo4MTc6XFx0Z2V0X3JlZ2lzdGVycyhkZXYsIEJNQ1IsIDIsIFxcdTAwMjZibWNyKTtcXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jOjgxODpcXHRnZXRfcmVnaXN0ZXJzKGRldiwgQU5MUCwgMiwgXFx1MDAyNmxwYSk7XFxuZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuYy04MTktXFx0aWYgKGJtY3IgXFx1MDAyNiBCTUNSX0FORU5BQkxFKSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDE3OjA3OjEyLjUwMzQ0MjczN1oiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5MTc5MDgzNTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzOlxuXG4qKkFuYWx5emluZyB0aGUgT3V0cHV0IG9mIGBnZXRfcmVnaXN0ZXJzYCoqXG5cbk9rYXksIHNvIGBnZXRfcmVnaXN0ZXJzYCBpcyBkZXNpZ25lZCB0byBwcm92aWRlIG1lIHdpdGggYW4gaW50ZWdlciB2YWx1ZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCB0aGlzIGludGVnZXIgcmVwcmVzZW50cy4gVGhlIGltbWVkaWF0ZSBmb2N1cyBpcyBvbiBpbnRlcnByZXRpbmcgdGhpcyByZXR1cm5lZCB2YWx1ZSDigJMgaXMgaXQgYW4gaW5kZXgsIGEgZmxhZywgYSBjb3VudCwgb3Igc29tZXRoaW5nIGVsc2UgZW50aXJlbHk/IFRoZSB0eXBlIGl0c2VsZiBkb2Vzbid0IG9mZmVyIGVub3VnaCBjb250ZXh0LCBzbyB0aGUgbmV4dCBzdGVwIGlzIHRvIGV4YW1pbmUgdGhlIGZ1bmN0aW9uJ3MgZG9jdW1lbnRhdGlvbiwgdGhlIHN1cnJvdW5kaW5nIGNvZGUsIG9yIGV2ZW4gdHJ5IHNvbWUgcXVpY2sgZXhwZXJpbWVudGF0aW9uLCBpZiBwb3NzaWJsZSwgdG8gYXNjZXJ0YWluIGl0cyBwcmVjaXNlIG1lYW5pbmcgYW5kIHVzYWdlIHdpdGhpbiB0aGUgbGFyZ2VyIHN5c3RlbS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDY3NSwiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDE3OjA3OjE1LjQyMTM1NDA2M1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTA0OTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvdXNiL3J0bDgxNTAuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAxNTksXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAxNTk6XFx0c3RhdGljIGludCBnZXRfcmVnaXN0ZXJzKHJ0bDgxNTBfdCAqIGRldiwgdTE2IGluZHgsIHUxNiBzaXplLCB2b2lkICpkYXRhKVxcbiAxNjA6XFx0e1xcbiAxNjE6XFx0XFx0cmV0dXJuIHVzYl9jb250cm9sX21zZ19yZWN2KGRldi1cXHUwMDNldWRldiwgMCwgUlRMODE1MF9SRVFfR0VUX1JFR1MsXFxuIDE2MjpcXHRcXHRcXHRcXHRcXHQgICAgUlRMODE1MF9SRVFUX1JFQUQsIGluZHgsIDAsIGRhdGEsIHNpemUsXFxuIDE2MzpcXHRcXHRcXHRcXHRcXHQgICAgMTAwMCwgR0ZQX05PSU8pO1xcbiAxNjQ6XFx0fVxcbiAxNjU6XFx0XFxuIDE2NjpcXHRzdGF0aWMgaW50IHNldF9yZWdpc3RlcnMocnRsODE1MF90ICogZGV2LCB1MTYgaW5keCwgdTE2IHNpemUsIGNvbnN0IHZvaWQgKmRhdGEpXFxuIDE2NzpcXHR7XFxuIDE2ODpcXHRcXHRyZXR1cm4gdXNiX2NvbnRyb2xfbXNnX3NlbmQoZGV2LVxcdTAwM2V1ZGV2LCAwLCBSVEw4MTUwX1JFUV9TRVRfUkVHUyxcXG4gMTY5OlxcdFxcdFxcdFxcdFxcdCAgICBSVEw4MTUwX1JFUVRfV1JJVEUsIGluZHgsIDAsIGRhdGEsIHNpemUsXFxuIDE3MDpcXHRcXHRcXHRcXHRcXHQgICAgMTAwMCwgR0ZQX05PSU8pO1xcbiAxNzE6XFx0fVxcbiAxNzI6XFx0XFxuIDE3MzpcXHRzdGF0aWMgdm9pZCBhc3luY19zZXRfcmVnX2NiKHN0cnVjdCB1cmIgKnVyYilcXG4gMTc0OlxcdHtcXG4gMTc1OlxcdFxcdHN0cnVjdCBhc3luY19yZXEgKnJlcSA9IChzdHJ1Y3QgYXN5bmNfcmVxICopdXJiLVxcdTAwM2Vjb250ZXh0O1xcbiAxNzY6XFx0XFx0aW50IHN0YXR1cyA9IHVyYi1cXHUwMDNlc3RhdHVzO1xcbiAxNzc6XFx0XFxuIDE3ODpcXHRcXHRpZiAoc3RhdHVzIFxcdTAwM2MgMClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMTc6MDc6MTUuNDIxNDY2NjgzWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyMjQ0OTQ1OTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRm9jdXNzaW5nIE15IEZ1enppbmcgRWZmb3J0cyoqXG5cbk9rYXksIHNvIGB1c2JfY29udHJvbF9tc2dfcmVjdmAgcmV0dXJucyAwIG9uIHN1Y2Nlc3MgYW5kIGEgbmVnYXRpdmUgdmFsdWUgb24gZXJyb3IuIFRoYXQgbWVhbnMgdGhlIGVycm9yIGhhbmRsaW5nIGluIGBpZiAoZ2V0X3JlZ2lzdGVycyhkZXYsIENTQ1IsIDIsIFx1MDAyNnRtcCkpYCBpcyBleGFjdGx5IHJpZ2h0OyB0aGUgY29uZGl0aW9uYWwgd2lsbCBjYXRjaCB0aGUgZXJyb3IgY29ycmVjdGx5LiBHb29kLiBOb3csIEkgbmVlZCB0byBwaWNrIHdoaWNoIGZ1bmN0aW9ucyB0byB0YXJnZXQgZm9yIGZ1enppbmcuXG5cbkkndmUgZ290IGBzZXRfY2FycmllcmAsIGFuZCBJIGtub3cgaXQncyBkZWZpbml0ZWx5IHJlYWNoYWJsZSBzaW5jZSBpdCdzIGNhbGxlZCBmcm9tIGJvdGggYHJ0bDgxNTBfb3BlbmAgYW5kIGBydGw4MTUwX3R4X3RpbWVvdXRgLiBUaGF0IG1ha2VzIGl0IGEgc3Ryb25nIGNvbnRlbmRlci4gQWxzbywgYHJ0bDgxNTBfb3BlbmAgaXRzZWxmIGlzIGEgcHJpbWUgY2FuZGlkYXRlLiBMZXQncyBub3QgZm9yZ2V0IGBydGw4MTUwX3Byb2JlYCwgdGhhdCdzIGFub3RoZXIgZnVuY3Rpb24gSSBzaG91bGQgYWRkIHRvIG15IGxpc3QuXG5cbkFscmlnaHQsIGxldCdzIHN0YXJ0IGJ5IGRpZ2dpbmcgaW50byBgcnRsODE1MF9vcGVuYC4gSSdsbCBzdGFydCB0aGVyZSBhbmQgc2VlIHdoYXQgaW50ZXJlc3RpbmcgdGhpbmdzIEkgY2FuIGZpbmQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUyNTIsIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDksIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yOFQxNzowNzoxOS42NDU5NjQ2MTFaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYzMDM2MzA0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ0bDgxNTBfb3BlblwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC91c2IvcnRsODE1MC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM9NzMwPXN0YXRpYyB2b2lkIHNldF9jYXJyaWVyKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jLTc0My1cXG5kcml2ZXJzL25ldC91c2IvcnRsODE1MC5jOjc0NDpzdGF0aWMgaW50IHJ0bDgxNTBfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMtNzQ1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM9ODc2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgcnRsODE1MF9uZXRkZXZfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmM6ODc3OlxcdC5uZG9fb3BlblxcdFxcdD0gcnRsODE1MF9vcGVuLFxcbmRyaXZlcnMvbmV0L3VzYi9ydGw4MTUwLmMtODc4LVxcdC5uZG9fc3RvcFxcdFxcdD0gcnRsODE1MF9jbG9zZSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMTc6MDc6MTkuNzA5MDE5MTg1WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI4NjI5MDk5ODEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duOlxuXG4qKkFuYWx5emluZyBQb3RlbnRpYWwgVVNCIERyaXZlciBCZWhhdmlvcioqXG5cbkFscmlnaHQsIGxldCdzIHplcm8gaW4gb24gdGhpcy4gSSBzZWUgYHNldF9jYXJyaWVyYCBhbmQgYHJ0bDgxNTBfb3BlbmAgYXMgdGhlIGtleSBmdW5jdGlvbiBjYWxscyBoZXJlLiBUaGV5J3JlIG15IGZvY3VzIHN5bWJvbHMsIGxpa2VseSB0aGUgaGVhcnQgb2YgdGhpcyBVU0IgbmV0d29yayBpbnRlcmZhY2UgZHJpdmVyLCB0aGUgUlRMODE1MC4gR2l2ZW4gdGhlIGBVU0JfUlRMODE1MGAgY29uZmlndXJhdGlvbiwgaXQncyBwcmV0dHkgY2xlYXIgdGhpcyBpcyBhYm91dCBicmluZ2luZyB1cCB0aGUgaW50ZXJmYWNlLiBCZWZvcmUgSSBnbyBmdXJ0aGVyIGRvd24gdGhhdCBwYXRoIEkgd2FudCB0byBtYWtlIHN1cmUgbm8gb3RoZXIgY29uZmlndXJhdGlvbnMgbWlnaHQgYWZmZWN0IHRoaXMgZHJpdmVyJ3MgaW5pdGlhbGl6YXRpb24gb3IgYmVoYXZpb3IuIEkgbmVlZCB0byBrbm93IHRoZSBlbnRpcmUgY29udGV4dC4gTGV0IG1lIHNjYW4gZm9yIGFueSByZWxhdGVkIGNvbmZpZyBvcHRpb25zIHRoYXQgY291bGQgaW5mbHVlbmNlIHRoaXMgcHJvY2Vzcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTg5MCwiT3V0cHV0VG9rZW5zIjoyOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI4VDE3OjA3OjIyLjU3MTkzMjg1NVoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjI0MzAyMzc1MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJVU0JfUlRMODE1MFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9hcm0vY29uZmlncy9lcDkzeHhfZGVmY29uZmlnPTYxPUNPTkZJR19FUDkzWFhfRVRIPXlcXG5hcmNoL2FybS9jb25maWdzL2VwOTN4eF9kZWZjb25maWc6NjI6Q09ORklHX1VTQl9SVEw4MTUwPXlcXG5hcmNoL2FybS9jb25maWdzL2VwOTN4eF9kZWZjb25maWctNjMtIyBDT05GSUdfSU5QVVQgaXMgbm90IHNldFxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9leHlub3NfZGVmY29uZmlnPTEwND1DT05GSUdfU01TQzkxMVg9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvZXh5bm9zX2RlZmNvbmZpZzoxMDU6Q09ORklHX1VTQl9SVEw4MTUwPW1cXG5hcmNoL2FybS9jb25maWdzL2V4eW5vc19kZWZjb25maWctMTA2LUNPTkZJR19VU0JfUlRMODE1Mj15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL2lteF92Nl92N19kZWZjb25maWc9MTM5PUNPTkZJR19VU0JfUEVHQVNVUz1tXFxuYXJjaC9hcm0vY29uZmlncy9pbXhfdjZfdjdfZGVmY29uZmlnOjE0MDpDT05GSUdfVVNCX1JUTDgxNTA9bVxcbmFyY2gvYXJtL2NvbmZpZ3MvaW14X3Y2X3Y3X2RlZmNvbmZpZy0xNDEtQ09ORklHX1VTQl9SVEw4MTUyPXlcXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3Mvb21hcDFfZGVmY29uZmlnPTEwMz1DT05GSUdfVVNCX1BFR0FTVVM9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvb21hcDFfZGVmY29uZmlnOjEwNDpDT05GSUdfVVNCX1JUTDgxNTA9eVxcbmFyY2gvYXJtL2NvbmZpZ3Mvb21hcDFfZGVmY29uZmlnLTEwNS1DT05GSUdfVVNCX1VTQk5FVD15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL3B4YV9kZWZjb25maWc9MjAzPUNPTkZJR19VU0JfUEVHQVNVUz1tXFxuYXJjaC9hcm0vY29uZmlncy9weGFfZGVmY29uZmlnOjIwNDpDT05GSUdfVVNCX1JUTDgxNTA9bVxcbmFyY2gvYXJtL2NvbmZpZ3MvcHhhX2RlZmNvbmZpZy0yMDUtQ09ORklHX1VTQl9SVEw4MTUyPW1cXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BpdHpfZGVmY29uZmlnPTkyPUNPTkZJR19VU0JfUEVHQVNVUz1tXFxuYXJjaC9hcm0vY29uZmlncy9zcGl0el9kZWZjb25maWc6OTM6Q09ORklHX1VTQl9SVEw4MTUwPW1cXG5hcmNoL2FybS9jb25maWdzL3NwaXR6X2RlZmNvbmZpZy05NC1DT05GSUdfVVNCX1VTQk5FVD1tXFxuLS1cXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnPTQ4OT1DT05GSUdfVVNCX1BFR0FTVVM9bVxcbmFyY2gvYXJtNjQvY29uZmlncy9kZWZjb25maWc6NDkwOkNPTkZJR19VU0JfUlRMODE1MD1tXFxuYXJjaC9hcm02NC9jb25maWdzL2RlZmNvbmZpZy00OTEtQ09ORklHX1VTQl9SVEw4MTUyPW1cXG4tLVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc9NjQwPUNPTkZJR19QUFBfU1lOQ19UVFk9bVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc6NjQxOkNPTkZJR19VU0JfUlRMODE1MD1tXFxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjMyX2RlZmNvbmZpZy02NDItQ09ORklHX1VTQl9SVEw4MTUyPW1cXG4tLVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb242NF9kZWZjb25maWc9NjU2PUNPTkZJR19QUFBfU1lOQ19UVFk9bVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb242NF9kZWZjb25maWc6NjU3OkNPTkZJR19VU0JfUlRMODE1MD1tXFxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjY0X2RlZmNvbmZpZy02NTgtQ09ORklHX1VTQl9SVEw4MTUyPW1cXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL210eDFfZGVmY29uZmlnPTI5Mz1DT05GSUdfVVNCX1BFR0FTVVM9bVxcbmFyY2gvbWlwcy9jb25maWdzL210eDFfZGVmY29uZmlnOjI5NDpDT05GSUdfVVNCX1JUTDgxNTA9bVxcbmFyY2gvbWlwcy9jb25maWdzL210eDFfZGVmY29uZmlnLTI5NS1DT05GSUdfVVNCX1VTQk5FVD1tXFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9ybTIwMF9kZWZjb25maWc9MjMzPUNPTkZJR19VU0JfUEVHQVNVUz1tXFxuYXJjaC9taXBzL2NvbmZpZ3Mvcm0yMDBfZGVmY29uZmlnOjIzNDpDT05GSUdfVVNCX1JUTDgxNTA9bVxcbmFyY2gvbWlwcy9jb25maWdzL3JtMjAwX2RlZmNvbmZpZy0yMzUtQ09ORklHX1VTQl9VU0JORVQ9bVxcbi0tXFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvZzVfZGVmY29uZmlnPTEwOD1DT05GSUdfVVNCX1BFR0FTVVM9bVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL2c1X2RlZmNvbmZpZzoxMDk6Q09ORklHX1VTQl9SVEw4MTUwPW1cXG5hcmNoL3Bvd2VycGMvY29uZmlncy9nNV9kZWZjb25maWctMTEwLUNPTkZJR19VU0JfVVNCTkVUPW1cXG4tLVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL3BwYzZ4eF9kZWZjb25maWc9NDg1PUNPTkZJR19VU0JfUEVHQVNVUz1tXFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNnh4X2RlZmNvbmZpZzo0ODY6Q09ORklHX1VTQl9SVEw4MTUwPW1cXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2eHhfZGVmY29uZmlnLTQ4Ny1DT05GSUdfVVNCX1VTQk5FVD1tXFxuLS1cXG5hcmNoL3NoL2NvbmZpZ3MvbGFuZGlza19kZWZjb25maWc9NDY9Q09ORklHX1VTQl9QRUdBU1VTPW1cXG5hcmNoL3NoL2NvbmZpZ3MvbGFuZGlza19kZWZjb25maWc6NDc6Q09ORklHX1VTQl9SVEw4MTUwPW1cXG5hcmNoL3NoL2NvbmZpZ3MvbGFuZGlza19kZWZjb25maWctNDgtQ09ORklHX0lOUFVUX0ZGX01FTUxFU1M9bVxcbi0tXFxuYXJjaC9zaC9jb25maWdzL3RpdGFuX2RlZmNvbmZpZz0xNzY9Q09ORklHX1VTQl9QRUdBU1VTPW1cXG5hcmNoL3NoL2NvbmZpZ3MvdGl0YW5fZGVmY29uZmlnOjE3NzpDT05GSUdfVVNCX1JUTDgxNTA9bVxcbmFyY2gvc2gvY29uZmlncy90aXRhbl9kZWZjb25maWctMTc4LUNPTkZJR19VU0JfVVNCTkVUPW1cXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9LY29uZmlnPTczPWNvbmZpZyBVU0JfUEVHQVNVU1xcbi0tXFxuZHJpdmVycy9uZXQvdXNiL0tjb25maWctODctXFxuZHJpdmVycy9uZXQvdXNiL0tjb25maWc6ODg6Y29uZmlnIFVTQl9SVEw4MTUwXFxuZHJpdmVycy9uZXQvdXNiL0tjb25maWctODktXFx0dHJpc3RhdGUgXFxcIlVTQiBSVEw4MTUwIGJhc2VkIGV0aGVybmV0IGRldmljZSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvdXNiL01ha2VmaWxlPTg9b2JqLSQoQ09ORklHX1VTQl9QRUdBU1VTKVxcdCs9IHBlZ2FzdXMub1xcbmRyaXZlcnMvbmV0L3VzYi9NYWtlZmlsZTo5Om9iai0kKENPTkZJR19VU0JfUlRMODE1MClcXHQrPSBydGw4MTUwLm9cXG5kcml2ZXJzL25ldC91c2IvTWFrZWZpbGUtMTAtb2JqLSQoQ09ORklHX1VTQl9SVEw4MTUyKVxcdCs9IHI4MTUyLm9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMTc6MDc6MjQuODE0OTY1MTU3WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMzOTM3MzAzNzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRoaXMg4oCTIHN0cmFpZ2h0IHRvIHRoZSBwb2ludCBhcyBhbHdheXM6XG5cbioqVVNCIFJUTDgxNTAgRHJpdmVyIEZpeCoqXG5cblJpZ2h0LCBzbywgbG9va3MgbGlrZSB3ZSdyZSBkZWFsaW5nIHdpdGggYSBzaW1wbGUgb25lIGhlcmUuIFRoZSBgVVNCX1JUTDgxNTBgIGNvbmZpZyBpcyB0aGUgb25seSBrZXkgY29tcG9uZW50IG5lZWRlZCwgbm90aGluZyBlbHNlIHRvIGJlIGNvbmNlcm5lZCB3aXRoIHRoZXJlLiBGcm9tIHdoYXQgSSBjYW4gZ2F0aGVyLCB0aGUgcGF0Y2ggYWRkcmVzc2VzIGFuIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgYnVnIGluIHRoZSBgc2V0X2NhcnJpZXJgIGZ1bmN0aW9uLiBUaGUgZml4IGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQ6IGl0J3MgY2hlY2tpbmcgdGhlIHJldHVybiB2YWx1ZSBmcm9tIGBnZXRfcmVnaXN0ZXJzYCBiZWZvcmUgcHJvY2VlZGluZy4gQSBwZXJmZWN0bHkgZnVuY3Rpb25hbCBjaGFuZ2UsIGFzIEkgc2VlIGl0LiBOb3RoaW5nIHRvIGdldCBmbHVzdGVyZWQgYWJvdXQuIFdlIHdpbGwgY2FsbCB0aGF0IGBzZXQtcmVzdWx0c2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjc2NDcsIk91dHB1dFRva2VucyI6MTEwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjhUMTc6MDc6MjguMjA4Njk5MTU2WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODA5MTAwMzIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlVTQl9SVEw4MTUwXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic2V0X2NhcnJpZXJcIixcbiAgICBcInJ0bDgxNTBfb3BlblwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgdXNlIGluIGBzZXRfY2FycmllcmAgYnkgY2hlY2tpbmcgdGhlIHJldHVybiB2YWx1ZSBvZiBgZ2V0X3JlZ2lzdGVyc2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIFVTQiBuZXR3b3JrIGRyaXZlciwgd2hpY2ggY2FuIGJlIGZ1enplZCB1c2luZyBkdW1teV9oY2Qgb3IgcmF3LWdhZGdldC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJVU0JfUlRMODE1MFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInNldF9jYXJyaWVyXCIsXG4gICAgXCJydGw4MTUwX29wZW5cIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCB1bmluaXRpYWxpemVkIHZhcmlhYmxlIHVzZSBpbiBgc2V0X2NhcnJpZXJgIGJ5IGNoZWNraW5nIHRoZSByZXR1cm4gdmFsdWUgb2YgYGdldF9yZWdpc3RlcnNgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSBVU0IgbmV0d29yayBkcml2ZXIsIHdoaWNoIGNhbiBiZSBmdXp6ZWQgdXNpbmcgZHVtbXlfaGNkIG9yIHJhdy1nYWRnZXQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },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-workflowtjtq4[1] Phase: Succeeded StartedAt: 2026-06-28 17:07:39 +0000 UTC FinishedAt: 2026-06-28 17:07:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtjtq4[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-06-28 17:07:39 +0000 UTC FinishedAt: 2026-06-28 17:07:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtjtq4[2] Phase: Succeeded StartedAt: 2026-06-28 17:07:39 +0000 UTC FinishedAt: 2026-06-28 18:53:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtjtq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["set_carrier","rtl8150_open"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"f23d1887-abcd-435b-84fa-78d2af6da6ad","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-06-28 17:07:39 +0000 UTC FinishedAt: 2026-06-28 18:53:55 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["set_carrier","rtl8150_open"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"f23d1887-abcd-435b-84fa-78d2af6da6ad","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowtjtq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["set_carrier","rtl8150_open"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"f23d1887-abcd-435b-84fa-78d2af6da6ad","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-06-28 17:07:39 +0000 UTC FinishedAt: 2026-06-28 17:07:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtjtq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["set_carrier","rtl8150_open"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"f23d1887-abcd-435b-84fa-78d2af6da6ad","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-06-28 17:07:39 +0000 UTC FinishedAt: 2026-06-28 17:07:45 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowtjtq4/series-workflowtjtq4-convert-artifact-1482298312/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowtjtq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["set_carrier","rtl8150_open"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"f23d1887-abcd-435b-84fa-78d2af6da6ad","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-06-28 17:07:49 +0000 UTC FinishedAt: 2026-06-28 17:30:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtjtq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["set_carrier","rtl8150_open"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"f23d1887-abcd-435b-84fa-78d2af6da6ad","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-06-28 17:07:49 +0000 UTC FinishedAt: 2026-06-28 17:30:56 +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:*84f53b70-5073-404d-9857-b8abefef8f73,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-workflowtjtq4/series-workflowtjtq4-convert-artifact-1482298312/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": "93e31bce-63f0-4cde-82da-c2be2f598bb1", "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-workflowtjtq4/series-workflowtjtq4-build-action-2906128446/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowtjtq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["set_carrier","rtl8150_open"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"f23d1887-abcd-435b-84fa-78d2af6da6ad","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-06-28 17:07:49 +0000 UTC FinishedAt: 2026-06-28 17:30:46 +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:*84f53b70-5073-404d-9857-b8abefef8f73,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-workflowtjtq4/series-workflowtjtq4-convert-artifact-1482298312/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": "93e31bce-63f0-4cde-82da-c2be2f598bb1", "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-workflowtjtq4/series-workflowtjtq4-build-action-2906128446/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowtjtq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["set_carrier","rtl8150_open"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"f23d1887-abcd-435b-84fa-78d2af6da6ad","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-06-28 17:30:56 +0000 UTC FinishedAt: 2026-06-28 17:30:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtjtq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["set_carrier","rtl8150_open"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"f23d1887-abcd-435b-84fa-78d2af6da6ad","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-06-28 17:30:56 +0000 UTC FinishedAt: 2026-06-28 17:30:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtjtq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["set_carrier","rtl8150_open"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"f23d1887-abcd-435b-84fa-78d2af6da6ad","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-06-28 17:30:56 +0000 UTC FinishedAt: 2026-06-28 17:31:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtjtq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["set_carrier","rtl8150_open"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"f23d1887-abcd-435b-84fa-78d2af6da6ad","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-06-28 17:30:56 +0000 UTC FinishedAt: 2026-06-28 17:31:05 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"f23d1887-abcd-435b-84fa-78d2af6da6ad","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowtjtq4/series-workflowtjtq4-convert-artifact-7467183/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowtjtq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["set_carrier","rtl8150_open"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"f23d1887-abcd-435b-84fa-78d2af6da6ad","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-06-28 17:31:16 +0000 UTC FinishedAt: 2026-06-28 17:33:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtjtq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["set_carrier","rtl8150_open"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"f23d1887-abcd-435b-84fa-78d2af6da6ad","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-06-28 17:31:16 +0000 UTC FinishedAt: 2026-06-28 17:33:49 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*93e31bce-63f0-4cde-82da-c2be2f598bb1,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-workflowtjtq4/series-workflowtjtq4-build-action-2906128446/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-workflowtjtq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["set_carrier","rtl8150_open"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"f23d1887-abcd-435b-84fa-78d2af6da6ad","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-06-28 17:33:59 +0000 UTC FinishedAt: 2026-06-28 17:33:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtjtq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["set_carrier","rtl8150_open"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"f23d1887-abcd-435b-84fa-78d2af6da6ad","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-06-28 17:33:59 +0000 UTC FinishedAt: 2026-06-28 17:33:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtjtq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["set_carrier","rtl8150_open"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"f23d1887-abcd-435b-84fa-78d2af6da6ad","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-06-28 17:33:59 +0000 UTC FinishedAt: 2026-06-28 17:55:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtjtq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["set_carrier","rtl8150_open"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"f23d1887-abcd-435b-84fa-78d2af6da6ad","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-06-28 17:33:59 +0000 UTC FinishedAt: 2026-06-28 17:55:59 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*84f53b70-5073-404d-9857-b8abefef8f73,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-workflowtjtq4/series-workflowtjtq4-convert-artifact-7467183/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": "91031383-a67f-4fec-a501-68916aa294df", "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-workflowtjtq4/series-workflowtjtq4-build-action-444709955/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowtjtq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["set_carrier","rtl8150_open"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"f23d1887-abcd-435b-84fa-78d2af6da6ad","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-06-28 17:33:59 +0000 UTC FinishedAt: 2026-06-28 17:55:49 +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:*84f53b70-5073-404d-9857-b8abefef8f73,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-workflowtjtq4/series-workflowtjtq4-convert-artifact-7467183/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": "91031383-a67f-4fec-a501-68916aa294df", "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-workflowtjtq4/series-workflowtjtq4-build-action-444709955/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowtjtq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["set_carrier","rtl8150_open"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"f23d1887-abcd-435b-84fa-78d2af6da6ad","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-06-28 17:55:59 +0000 UTC FinishedAt: 2026-06-28 17:55:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtjtq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["set_carrier","rtl8150_open"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"f23d1887-abcd-435b-84fa-78d2af6da6ad","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-06-28 17:55:59 +0000 UTC FinishedAt: 2026-06-28 17:55:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtjtq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["set_carrier","rtl8150_open"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"f23d1887-abcd-435b-84fa-78d2af6da6ad","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-06-28 17:55:59 +0000 UTC FinishedAt: 2026-06-28 17:58:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtjtq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["set_carrier","rtl8150_open"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"f23d1887-abcd-435b-84fa-78d2af6da6ad","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-06-28 17:55:59 +0000 UTC FinishedAt: 2026-06-28 17:58:24 +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:*91031383-a67f-4fec-a501-68916aa294df,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-workflowtjtq4/series-workflowtjtq4-build-action-444709955/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-workflowtjtq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["set_carrier","rtl8150_open"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"f23d1887-abcd-435b-84fa-78d2af6da6ad","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-06-28 17:58:34 +0000 UTC FinishedAt: 2026-06-28 18:53:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtjtq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["set_carrier","rtl8150_open"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"f23d1887-abcd-435b-84fa-78d2af6da6ad","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-06-28 17:58:34 +0000 UTC FinishedAt: 2026-06-28 18:53:55 +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":["set_carrier","rtl8150_open"],"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:*93e31bce-63f0-4cde-82da-c2be2f598bb1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*91031383-a67f-4fec-a501-68916aa294df,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-workflowtjtq4/series-workflowtjtq4-build-action-2906128446/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-workflowtjtq4/series-workflowtjtq4-build-action-444709955/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowtjtq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["set_carrier","rtl8150_open"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"f23d1887-abcd-435b-84fa-78d2af6da6ad","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-06-28 17:58:34 +0000 UTC FinishedAt: 2026-06-28 17:58:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtjtq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["set_carrier","rtl8150_open"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"f23d1887-abcd-435b-84fa-78d2af6da6ad","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-06-28 17:58:34 +0000 UTC FinishedAt: 2026-06-28 17:58:41 +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":["set_carrier","rtl8150_open"],"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-workflowtjtq4/series-workflowtjtq4-convert-artifact-1077006184/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowtjtq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["set_carrier","rtl8150_open"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"f23d1887-abcd-435b-84fa-78d2af6da6ad","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-06-28 17:58:34 +0000 UTC FinishedAt: 2026-06-28 17:58:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtjtq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["set_carrier","rtl8150_open"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"f23d1887-abcd-435b-84fa-78d2af6da6ad","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-06-28 17:58:34 +0000 UTC FinishedAt: 2026-06-28 17:58:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtjtq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["set_carrier","rtl8150_open"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"f23d1887-abcd-435b-84fa-78d2af6da6ad","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-06-28 17:58:34 +0000 UTC FinishedAt: 2026-06-28 17:58:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtjtq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["set_carrier","rtl8150_open"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"f23d1887-abcd-435b-84fa-78d2af6da6ad","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-06-28 17:58:44 +0000 UTC FinishedAt: 2026-06-28 18:53:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtjtq4[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["set_carrier","rtl8150_open"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"805185b7c7a1069e407b6f7b3bc98e44d415f484","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_RTL8150"],"series_id":"f23d1887-abcd-435b-84fa-78d2af6da6ad","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-06-28 17:58:44 +0000 UTC FinishedAt: 2026-06-28 18:53:45 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*93e31bce-63f0-4cde-82da-c2be2f598bb1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*91031383-a67f-4fec-a501-68916aa294df,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-workflowtjtq4/series-workflowtjtq4-build-action-2906128446/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-workflowtjtq4/series-workflowtjtq4-build-action-444709955/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-workflowtjtq4/series-workflowtjtq4-convert-artifact-1077006184/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,}