Name: series-workflow2qrhk Phase: Succeeded StartedAt: 2026-08-03 09:15:58 +0000 UTC FinishedAt: 2026-08-03 14:02:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2qrhk[0] Phase: Succeeded StartedAt: 2026-08-03 09:15:58 +0000 UTC FinishedAt: 2026-08-03 09:31:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2qrhk[0].run-triage Phase: Succeeded StartedAt: 2026-08-03 09:15:58 +0000 UTC FinishedAt: 2026-08-03 09:31: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": "69963a0678a347d57c4ac8b16939dba216eb95ce", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MACVLAN" ], "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": "69963a0678a347d57c4ac8b16939dba216eb95ce", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MACVLAN" ], "series_id": "0297fed0-e38f-47fc-a3c9-32712eb80256" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "macvlan_init_module" ], "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+CgkJCTx0ZD4yMDI2LzA4LzAzIDA5OjMwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01BQ1ZMQU4mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttYWN2bGFuX2luaXRfbW9kdWxlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgZXJyb3IgaGFuZGxpbmcgdG8gdGhlIG1vZHVsZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiBvZiB0aGUgbWFjdmxhbiBkcml2ZXIuIFdoaWxlIGl0IG9ubHkgZXhlY3V0ZXMgZHVyaW5nIG1vZHVsZSBsb2FkIG9yIGJvb3QsIGl0IGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGtlcm5lbCBjb2RlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDA5OjMwPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgMGIxZTk4NTg0MjcwMzk2YzY5YmRkNTU5YTg5MzIyNDZlZWI3NmE2MVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gQXVnIDMgMDk6MzA6NTcgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbWFjdmxhbi5jIGIvZHJpdmVycy9uZXQvbWFjdmxhbi5jXG5pbmRleCA5YTRiYzk5ZGJmNTNiLi40Mjk0YjQzMzgzOGFlIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvbWFjdmxhbi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9tYWN2bGFuLmNcbkBAIC0xOTA2LDcgJiM0MzsxOTA2LDkgQEAgc3RhdGljIGludCBfX2luaXQgbWFjdmxhbl9pbml0X21vZHVsZSh2b2lkKVxuIHtcbiBcdGludCBlcnI7XG4gXG4tXHRyZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2bWFjdmxhbl9ub3RpZmllcl9ibG9jayk7XG4mIzQzO1x0ZXJyID0gcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFx1MDAyNm1hY3ZsYW5fbm90aWZpZXJfYmxvY2spO1xuJiM0MztcdGlmIChlcnIpXG4mIzQzO1x0XHRyZXR1cm4gZXJyO1xuIFxuIFx0ZXJyID0gbWFjdmxhbl9saW5rX3JlZ2lzdGVyKFx1MDAyNm1hY3ZsYW5fbGlua19vcHMpO1xuIFx0aWYgKGVyciBcdTAwM2MgMClcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAwOTozMDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TUFDVkxBTiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O21hY3ZsYW5faW5pdF9tb2R1bGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBlcnJvciBoYW5kbGluZyB0byB0aGUgbW9kdWxlIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIG9mIHRoZSBtYWN2bGFuIGRyaXZlci4gV2hpbGUgaXQgb25seSBleGVjdXRlcyBkdXJpbmcgbW9kdWxlIGxvYWQgb3IgYm9vdCwgaXQgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUga2VybmVsIGNvZGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAwYjFlOTg1ODQyNzAzOTZjNjliZGQ1NTlhODkzMjI0NmVlYjc2YTYxCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIE1vbiBBdWcgMyAwOTozMDo1NyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L21hY3ZsYW4uYyBiL2RyaXZlcnMvbmV0L21hY3ZsYW4uYwppbmRleCA5YTRiYzk5ZGJmNTNiLi40Mjk0YjQzMzgzOGFlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9tYWN2bGFuLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvbWFjdmxhbi5jCkBAIC0xOTA2LDcgJiM0MzsxOTA2LDkgQEAgc3RhdGljIGludCBfX2luaXQgbWFjdmxhbl9pbml0X21vZHVsZSh2b2lkKQogewogCWludCBlcnI7CiAKLQlyZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoJmFtcDttYWN2bGFuX25vdGlmaWVyX2Jsb2NrKTsKJiM0MzsJZXJyID0gcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKCZhbXA7bWFjdmxhbl9ub3RpZmllcl9ibG9jayk7CiYjNDM7CWlmIChlcnIpCiYjNDM7CQlyZXR1cm4gZXJyOwogCiAJZXJyID0gbWFjdmxhbl9saW5rX3JlZ2lzdGVyKCZhbXA7bWFjdmxhbl9saW5rX29wcyk7CiAJaWYgKGVyciAmbHQ7IDApCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDA5OjMwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIwNTcKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiAxMDE5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFBhdGNoOiBtYWN2bGFuLmMgTW9kdWxlIEluaXRpYWxpemF0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgbW9kaWZpZXMgYGRyaXZlcnMvbmV0L21hY3ZsYW4uY2AuIFRoZSBjb3JlIGNoYW5nZSBpcyBpbiBgbWFjdmxhbl9pbml0X21vZHVsZWAsIHdoZXJlIHRoZXkmIzM5O3JlIG5vdyBjaGVja2luZyB0aGUgcmV0dXJuIHZhbHVlIG9mIGByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXJgLiAgVGhpcyBpcyBhIG1vZHVsZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiwgd2hpY2ggaW1tZWRpYXRlbHkgbWFrZXMgbWUgdGhpbmsgYWJvdXQgZnV6emluZyBwb3RlbnRpYWwuIEl0JiMzOTtzIGFuIGVycm9yIGhhbmRsaW5nIGZpeCwgc3BlY2lmaWNhbGx5IGZvciBpbml0aWFsaXphdGlvbi4gIE15IGluaXRpYWwgcmVhY3Rpb24gaXMgdGhhdCBmdXp6aW5nIG1vZHVsZSBpbml0aWFsaXphdGlvbiByb3V0aW5lcyBpc24mIzM5O3QgdXN1YWxseSB0aGUgbW9zdCBwcm9kdWN0aXZlIGF2ZW51ZSBiZWNhdXNlIHRoZXkgcnVuIG9uY2UsIGVpdGhlciBhdCBib290IG9yIG1vZHVsZSBsb2FkLiAgRnVydGhlcm1vcmUsIHRoZSBgcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyYCBjYWxsIGlzIHVubGlrZWx5IHRvIGZhaWwgdW5sZXNzIHRoZXJlJiMzOTtzIGEgbWVtb3J5IGFsbG9jYXRpb24gaXNzdWUg4oCTIGEgdmVyeSBkaWZmaWN1bHQgdGhpbmcgdG8gdGFyZ2V0IHNwZWNpZmljYWxseSBmb3IgKnRoaXMqIG1vZHVsZS4KCkFscmlnaHQsIHNvIHRoZSBwYXRjaCAqb25seSogbW9kaWZpZXMgdGhlIG1vZHVsZSBpbml0IGZ1bmN0aW9uLCBgbWFjdmxhbl9pbml0X21vZHVsZWAuIExldCBtZSBkb3VibGUtY2hlY2suLi4geWVwLCB0aGF0JiMzOTtzIGl0LiBObyBvdGhlciBjb2RlIGhhcyBiZWVuIHRvdWNoZWQuICBOb3csIHRoZSBxdWVzdGlvbiBpczogaXMgdGhpcyB3b3J0aCBmdXp6aW5nPyAgV2hpbGUgdGhlc2UgaW5pdCBlcnJvciBwYXRocyAqYXJlKiBmdW5jdGlvbmFsbHkgaW1wb3J0YW50LCB0aGVpciBzaW5nbGUtZXhlY3V0aW9uIG5hdHVyZSBtYWtlcyB0aGVtIGxlc3MgYXBwZWFsaW5nIGZvciBmdXp6aW5nLiBIb3dldmVyLCB0aGVyZSAqaXMqIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaGVyZS4KCkkgbmVlZCB0byBkZWNpZGUgd2hldGhlciB0byBtYXJrIHRoaXMgYXMgV29ydGhGdXp6aW5nPWZhbHNlIGJlY2F1c2UgaXQmIzM5O3MganVzdCBhbiBpbml0IGZ1bmN0aW9uLCBvciBnbyB3aXRoIFdvcnRoRnV6emluZz10cnVlLiBJIGNoZWNrZWQgdGhlIGd1aWRlbGluZXMsIGFuZCB3aGlsZSB0aGV5IGRvbiYjMzk7dCBleHBsaWNpdGx5IHNheSAmIzM0O21vZHVsZSBpbml0IGVycm9yIHBhdGhzID0gZmFsc2UmIzM0OywgdGhlIGNoYW5nZSBpcyBtaW5vci4gQnV0IGl0IGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UuCgpUaGUgY2F0Y2ggaXMsIGBtYWN2bGFuX2luaXRfbW9kdWxlYCBpcyBtYXJrZWQgYF9faW5pdGAuICBJZiB0aGUgbW9kdWxlIGlzIGJ1aWx0LWluLCB0aGUgZnVuY3Rpb24gZ2V0cyBmcmVlZCBhZnRlciB0aGUga2VybmVsIGZpbmlzaGVzIGJvb3RpbmcuIFN5emthbGxlciBkb2VzbiYjMzk7dCBmb2N1cyBvbiBib290IGNvZGUgaW4gdGhlIHN0YW5kYXJkIGNvbmZpZ3VyYXRpb24uIElmIGl0JiMzOTtzIGEgbW9kdWxlLCB0aGVuIGl0IHJ1bnMgb24gbW9kdWxlIGxvYWQuIFN5emthbGxlciAqY2FuKiBsb2FkIG1vZHVsZXMsIGJ1dCB0eXBpY2FsbHkgZG9lc24mIzM5O3QgZGlyZWN0bHkgdGFyZ2V0IG1vZHVsZSBsb2FkaW5nLgoKU28sIEkgY291bGQgc2V0IFdvcnRoRnV6emluZz10cnVlIGFuZCBGb2N1c1N5bWJvbHM9WyYjMzQ7bWFjdmxhbl9pbml0X21vZHVsZSYjMzQ7XS4uLiBidXQgdGhlIHN5bWJvbCBuYW1lIGlzIGNvcnJlY3QuIEJ1dCBpdCBpcyBleGVjdXRlZCBvbmx5IG9uY2UuIExldCBtZSBjaGVjayB0aGUgY29uZmlnOiBgQ09ORklHX01BQ1ZMQU5gIGNhbiBiZSBgbWAgb3IgYHlgLiBJZiBpdCBpcyBidWlsdC1pbiAoYHlgKSwgdGhlIGZ1bmN0aW9uIHdpbGwgYmUgZnJlZWQgYW5kIG5vdCBhdmFpbGFibGUgYWZ0ZXIgdGhlIGJvb3QuIElmIGl0JiMzOTtzIGEgbW9kdWxlIChgbWApLCB0aGVuIHN5emthbGxlciBjYW4gbG9hZCBpdC4KCkFscmlnaHQsIEkmIzM5O20gZ29pbmcgdG8gc2V0IGBXb3J0aEZ1enppbmc9dHJ1ZSwgRm9jdXNTeW1ib2xzPVsmIzM0O21hY3ZsYW5faW5pdF9tb2R1bGUmIzM0O10sIEVuYWJsZUNvbmZpZ3M9WyYjMzQ7TUFDVkxBTiYjMzQ7XWAuIFRoZSBrZXkgaXMgdG8gY2hlY2sgaWYgYG1hY3ZsYW5faW5pdF9tb2R1bGVgIGlzIHRoZSBlbnRyeXBvaW50IHRvIHRoZSBtb2R1bGUsIGV2ZW4gaWYgaXQgaXMgYSBgc3RhdGljYCBvbmUuIFllcywgaXQmIzM5O3Mgbm90IGlubGluZWQsIGl0JiMzOTtzIHBhc3NlZCB0byBgbW9kdWxlX2luaXQoKWAuIFRpbWUgdG8gZ28gd2l0aCB0aGlzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDA5OjMxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21vZHVsZV9pbml0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvbWFjdmxhbi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L21hY3ZsYW4uYz0xOTIyPXN0YXRpYyB2b2lkIF9fZXhpdCBtYWN2bGFuX2NsZWFudXBfbW9kdWxlKHZvaWQpXG4tLVxuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTE5MjctXG5kcml2ZXJzL25ldC9tYWN2bGFuLmM6MTkyODptb2R1bGVfaW5pdChtYWN2bGFuX2luaXRfbW9kdWxlKTtcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYy0xOTI5LW1vZHVsZV9leGl0KG1hY3ZsYW5fY2xlYW51cF9tb2R1bGUpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDA5OjMxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4MzYKCQkJCQkJCW91dHB1dDogMjgKCQkJCQkJCXRob3VnaHRzOiAyODMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBEZWNpc2lvbiBmb3IgbWFjdmxhbl9pbml0X21vZHVsZSoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYG1hY3ZsYW5faW5pdF9tb2R1bGVgLiBUaGF0JiMzOTtzIHRoZSBtb2R1bGUgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24uIEl0JiMzOTtzIG9ubHkgZXhlY3V0ZWQgb25jZSwgd2hpY2ggbWFrZXMgbWUgaW5pdGlhbGx5IHF1ZXN0aW9uIHdoZXRoZXIgaXQmIzM5O3MgZXZlbiB3b3J0aCBmdXp6aW5nLiBUaGUgZ3VpZGFuY2Ugc2F5cyB0byBza2lwIGlmIGl0JiMzOTtzIGp1c3QgdGVhcmRvd24gbGlrZSBgLnJlbW92ZWAsIGAuc2h1dGRvd25gLCBvciBgcGNpX3VucmVnaXN0ZXJfZHJpdmVyYCBjYWxsYmFja3MgdGhhdCBmaXJlIGR1cmluZyBob3QtdW5wbHVnIG9yIHVuYmluZCBvcGVyYXRpb25zLiBNb2R1bGUgaW5pdCBpc24mIzM5O3QgKmV4YWN0bHkqIHRoZSBzYW1lLCBzaW5jZSBpdCYjMzk7cyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBidXQgdGhlIG9uZS10aW1lIGV4ZWN1dGlvbiBkb2VzIGdpdmUgbWUgcGF1c2UuCgpIb3dldmVyLCB0aGlzICppcyogYSBmdW5jdGlvbmFsIGNoYW5nZSwgYW5kIHRoZSBtb2RpZmllZCBmdW5jdGlvbiBpcyBgbWFjdmxhbl9pbml0X21vZHVsZWAuIExldCYjMzk7cyBhc3N1bWUgaXQmIzM5O3Mgd29ydGggZnV6emluZyBhbmQgc2V0IGBXb3J0aEZ1enppbmc9dHJ1ZWAuCgpOb3csIGZvciB0aGUgYEZvY3VzU3ltYm9sc2AuIGBtYWN2bGFuX2luaXRfbW9kdWxlYCBzZWVtcyBsaWtlIHRoZSBvYnZpb3VzIGNob2ljZSBzaW5jZSBpdCYjMzk7cyB0aGUgb25seSBmdW5jdGlvbiBiZWluZyB0b3VjaGVkLiBCdXQgd2FpdCwgaXQmIzM5O3MgZGVjbGFyZWQgYHN0YXRpY2AuIFRoYXQgKmNvdWxkKiBiZSBhIHByb2JsZW0uIFN0YXRpYyBmdW5jdGlvbnMgKm1pZ2h0KiBiZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciwgb3IgdGhleSBtaWdodCBub3QgaGF2ZSBhIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzLiBCdXQgYG1hY3ZsYW5faW5pdF9tb2R1bGVgIGlzIGJlaW5nIHBhc3NlZCB0byBgbW9kdWxlX2luaXRgLCBzbyBpdHMgYWRkcmVzcyBpcyBkZWZpbml0ZWx5IGJlaW5nIHRha2VuIGFuZCBpbmxpbmluZyBpcyBub3QgYW4gaXNzdWUuIEl0JiMzOTtzIHRoZSBvbmx5IGZ1bmN0aW9uLCBzbyBsZXQmIzM5O3Mgc3RpY2sgd2l0aCBpdCwgYEZvY3VzU3ltYm9scz1bJiMzNDttYWN2bGFuX2luaXRfbW9kdWxlJiMzNDtdYC4KCkkmIzM5O2xsIGFsc28gZW5hYmxlIHRoZSBgTUFDVkxBTmAgY29uZmlnIHdpdGggYEVuYWJsZUNvbmZpZ3M9WyYjMzQ7TUFDVkxBTiYjMzQ7XWAuIEkmIzM5O2xsIGp1c3QgZG91YmxlLWNoZWNrIHRvIGJlIHN1cmUgdGhhdCYjMzk7cyB0aGUgY29ycmVjdCBvbmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMDk6MzE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1BQ1ZMQU4mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvS2NvbmZpZz0xNjM9c291cmNlIFwmIzM0O2RyaXZlcnMvbmV0L3RlYW0vS2NvbmZpZ1wmIzM0O1xuZHJpdmVycy9uZXQvS2NvbmZpZy0xNjQtXG5kcml2ZXJzL25ldC9LY29uZmlnOjE2NTpjb25maWcgTUFDVkxBTlxuZHJpdmVycy9uZXQvS2NvbmZpZy0xNjYtXHR0cmlzdGF0ZSBcJiMzNDtNQUMtVkxBTiBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMDk6MzE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDU4NgoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDg3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk1BQ1ZMQU46IEEgRm9jdXNlZCBQYXRjaCBBc3Nlc3NtZW50KioKCk9rYXksIHllcywgZGVmaW5pdGVseSwgdGhpcyBwYXRjaCBmb2N1c2VzIG9uIGBNQUNWTEFOYC4gSSYjMzk7bSBnb2luZyB0byBzZXQgYFdvcnRoRnV6emluZ2AgdG8gYHRydWVgLiBUaGlzIGlzIGJlY2F1c2UgdGhlIHBhdGNoIG1ha2VzIGEgZnVuY3Rpb25hbCBjaGFuZ2Ugd2l0aGluIHJlYWNoYWJsZSBrZXJuZWwgY29kZSwgc3BlY2lmaWNhbGx5IGVycm9yIGhhbmRsaW5nIGluIHRoZSBtb2R1bGUgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24gb2YgdGhlIG1hY3ZsYW4gZHJpdmVyLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgZG9uJiMzOTt0IG1pc3MgYW55dGhpbmcuCgpTbywgSSB3aWxsIGZvY3VzIG9uIHRoZSBgbWFjdmxhbl9pbml0X21vZHVsZWAgZnVuY3Rpb24gYW5kIHRoZSByZWxhdGVkIGNvZGUsIHRoYXQmIzM5O3MgZGVmaW5pdGVseSBhIGtleSBhcmVhIHRvIHRhcmdldCB3aXRoIGZ1enplci4gYEZvY3VzU3ltYm9sc2Agd2lsbCBiZSBgWyYjMzQ7bWFjdmxhbl9pbml0X21vZHVsZSYjMzQ7XWAgYW5kIGVuYWJsZSB0aGUgYE1BQ1ZMQU5gIGNvbmZpZ3VyYXRpb24uCgpOb3csIGxldCBtZSBqdXN0IGRvdWJsZS1jaGVjayBpZiB0aGVyZSBhcmUgYW55IG90aGVyIGNvbmZpZ3MgdGhhdCBtaWdodCBiZSByZWxldmFudC4uLiBJIHdhbnQgdG8gYmUgdGhvcm91Z2guCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMDk6MzE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvS2NvbmZpZz02PW1lbnVjb25maWcgTkVUREVWSUNFU1xuZHJpdmVycy9uZXQvS2NvbmZpZy03LVx0ZGVmYXVsdCB5IGlmIFVNTFxuZHJpdmVycy9uZXQvS2NvbmZpZzo4Olx0ZGVwZW5kcyBvbiBORVRcbmRyaXZlcnMvbmV0L0tjb25maWctOS1cdGJvb2wgXCYjMzQ7TmV0d29yayBkZXZpY2Ugc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L0tjb25maWc9NDE9Y29uZmlnIEJPTkRJTkdcbmRyaXZlcnMvbmV0L0tjb25maWctNDItXHR0cmlzdGF0ZSBcJiMzNDtCb25kaW5nIGRyaXZlciBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC9LY29uZmlnOjQzOlx0ZGVwZW5kcyBvbiBJTkVUXG5kcml2ZXJzL25ldC9LY29uZmlnOjQ0Olx0ZGVwZW5kcyBvbiBUTFMgfHwgVExTX0RFVklDRT1uXG5kcml2ZXJzL25ldC9LY29uZmlnLTQ1LVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWc9NzQ9Y29uZmlnIFdJUkVHVUFSRFxuZHJpdmVycy9uZXQvS2NvbmZpZy03NS1cdHRyaXN0YXRlIFwmIzM0O1dpcmVHdWFyZCBzZWN1cmUgbmV0d29yayB0dW5uZWxcJiMzNDtcbmRyaXZlcnMvbmV0L0tjb25maWc6NzY6XHRkZXBlbmRzIG9uIE5FVCBcdTAwMjZcdTAwMjYgSU5FVFxuZHJpdmVycy9uZXQvS2NvbmZpZy03Ny1cdHNlbGVjdCBORVRfVURQX1RVTk5FTFxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWc9OTI9Y29uZmlnIFdJUkVHVUFSRF9ERUJVR1xuZHJpdmVycy9uZXQvS2NvbmZpZy05My1cdGJvb2wgXCYjMzQ7RGVidWdnaW5nIGNoZWNrcyBhbmQgdmVyYm9zZSBtZXNzYWdlc1wmIzM0O1xuZHJpdmVycy9uZXQvS2NvbmZpZzo5NDpcdGRlcGVuZHMgb24gV0lSRUdVQVJEXG5kcml2ZXJzL25ldC9LY29uZmlnLTk1LVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWc9MTAzPWNvbmZpZyBPVlBOXG5kcml2ZXJzL25ldC9LY29uZmlnLTEwNC1cdHRyaXN0YXRlIFwmIzM0O09wZW5WUE4gZGF0YSBjaGFubmVsIG9mZmxvYWRcJiMzNDtcbmRyaXZlcnMvbmV0L0tjb25maWc6MTA1Olx0ZGVwZW5kcyBvbiBORVQgXHUwMDI2XHUwMDI2IElORVRcbmRyaXZlcnMvbmV0L0tjb25maWctMTA2LVx0c2VsZWN0IERTVF9DQUNIRVxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWc9MTM2PWNvbmZpZyBORVRfRkNcbmRyaXZlcnMvbmV0L0tjb25maWctMTM3LVx0Ym9vbCBcJiMzNDtGaWJyZSBDaGFubmVsIGRyaXZlciBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC9LY29uZmlnOjEzODpcdGRlcGVuZHMgb24gU0NTSSBcdTAwMjZcdTAwMjYgUENJXG5kcml2ZXJzL25ldC9LY29uZmlnLTEzOS1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC9LY29uZmlnPTE0OT1jb25maWcgSUZCXG5kcml2ZXJzL25ldC9LY29uZmlnLTE1MC1cdHRyaXN0YXRlIFwmIzM0O0ludGVybWVkaWF0ZSBGdW5jdGlvbmFsIEJsb2NrIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L0tjb25maWc6MTUxOlx0ZGVwZW5kcyBvbiBORVRfQUNUX01JUlJFRCB8fCBORlRfRldEX05FVERFVlxuZHJpdmVycy9uZXQvS2NvbmZpZy0xNTItXHRzZWxlY3QgTkVUX1JFRElSRUNUXG4tLVxuZHJpdmVycy9uZXQvS2NvbmZpZz0xNzk9Y29uZmlnIE1BQ1ZUQVBcbmRyaXZlcnMvbmV0L0tjb25maWctMTgwLVx0dHJpc3RhdGUgXCYjMzQ7TUFDLVZMQU4gYmFzZWQgdGFwIGRyaXZlclwmIzM0O1xuZHJpdmVycy9uZXQvS2NvbmZpZzoxODE6XHRkZXBlbmRzIG9uIE1BQ1ZMQU5cbmRyaXZlcnMvbmV0L0tjb25maWc6MTgyOlx0ZGVwZW5kcyBvbiBJTkVUXG5kcml2ZXJzL25ldC9LY29uZmlnLTE4My1cdHNlbGVjdCBUQVBcbi0tXG5kcml2ZXJzL25ldC9LY29uZmlnPTE5Mz1jb25maWcgSVBWTEFOX0wzU1xuZHJpdmVycy9uZXQvS2NvbmZpZzoxOTQ6XHRkZXBlbmRzIG9uIE5FVEZJTFRFUlxuZHJpdmVycy9uZXQvS2NvbmZpZzoxOTU6XHRkZXBlbmRzIG9uIElQVkxBTlxuZHJpdmVycy9uZXQvS2NvbmZpZy0xOTYtXHRkZWZfYm9vbCB5XG4tLVxuZHJpdmVycy9uZXQvS2NvbmZpZz0xOTk9Y29uZmlnIElQVkxBTlxuZHJpdmVycy9uZXQvS2NvbmZpZy0yMDAtXHR0cmlzdGF0ZSBcJiMzNDtJUC1WTEFOIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L0tjb25maWc6MjAxOlx0ZGVwZW5kcyBvbiBJTkVUXG5kcml2ZXJzL25ldC9LY29uZmlnLTIwMi1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC9LY29uZmlnPTIxNj1jb25maWcgSVBWVEFQXG5kcml2ZXJzL25ldC9LY29uZmlnLTIxNy1cdHRyaXN0YXRlIFwmIzM0O0lQLVZMQU4gYmFzZWQgdGFwIGRyaXZlclwmIzM0O1xuZHJpdmVycy9uZXQvS2NvbmZpZzoyMTg6XHRkZXBlbmRzIG9uIElQVkxBTlxuZHJpdmVycy9uZXQvS2NvbmZpZzoyMTk6XHRkZXBlbmRzIG9uIElORVRcbmRyaXZlcnMvbmV0L0tjb25maWctMjIwLVx0c2VsZWN0IFRBUFxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWc9MjMwPWNvbmZpZyBWWExBTlxuZHJpdmVycy9uZXQvS2NvbmZpZy0yMzEtXHR0cmlzdGF0ZSBcJiMzNDtWaXJ0dWFsIGVYdGVuc2libGUgTG9jYWwgQXJlYSBOZXR3b3JrIChWWExBTilcJiMzNDtcbmRyaXZlcnMvbmV0L0tjb25maWc6MjMyOlx0ZGVwZW5kcyBvbiBJTkVUXG5kcml2ZXJzL25ldC9LY29uZmlnLTIzMy1cdHNlbGVjdCBORVRfVURQX1RVTk5FTFxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWc9MjQ1PWNvbmZpZyBHRU5FVkVcbmRyaXZlcnMvbmV0L0tjb25maWctMjQ2LVx0dHJpc3RhdGUgXCYjMzQ7R2VuZXJpYyBOZXR3b3JrIFZpcnR1YWxpemF0aW9uIEVuY2Fwc3VsYXRpb25cJiMzNDtcbmRyaXZlcnMvbmV0L0tjb25maWc6MjQ3Olx0ZGVwZW5kcyBvbiBJTkVUXG5kcml2ZXJzL25ldC9LY29uZmlnLTI0OC1cdHNlbGVjdCBORVRfVURQX1RVTk5FTFxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWc9MjYwPWNvbmZpZyBCQVJFVURQXG5kcml2ZXJzL25ldC9LY29uZmlnLTI2MS1cdHRyaXN0YXRlIFwmIzM0O0JhcmUgVURQIEVuY2Fwc3VsYXRpb25cJiMzNDtcbmRyaXZlcnMvbmV0L0tjb25maWc6MjYyOlx0ZGVwZW5kcyBvbiBJTkVUXG5kcml2ZXJzL25ldC9LY29uZmlnLTI2My1cdHNlbGVjdCBORVRfVURQX1RVTk5FTFxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWc9MjcyPWNvbmZpZyBHVFBcbmRyaXZlcnMvbmV0L0tjb25maWctMjczLVx0dHJpc3RhdGUgXCYjMzQ7R1BSUyBUdW5uZWxpbmcgUHJvdG9jb2wgZGF0YXBhdGggKEdUUC1VKVwmIzM0O1xuZHJpdmVycy9uZXQvS2NvbmZpZzoyNzQ6XHRkZXBlbmRzIG9uIElORVRcbmRyaXZlcnMvbmV0L0tjb25maWctMjc1LVx0c2VsZWN0IE5FVF9VRFBfVFVOTkVMXG4tLVxuZHJpdmVycy9uZXQvS2NvbmZpZz0yODk9Y29uZmlnIFBGQ1BcbmRyaXZlcnMvbmV0L0tjb25maWctMjkwLVx0dHJpc3RhdGUgXCYjMzQ7UGFja2V0IEZvcndhcmRpbmcgQ29udHJvbCBQcm90b2NvbCAoUEZDUClcJiMzNDtcbmRyaXZlcnMvbmV0L0tjb25maWc6MjkxOlx0ZGVwZW5kcyBvbiBJTkVUXG5kcml2ZXJzL25ldC9LY29uZmlnLTI5Mi1cdHNlbGVjdCBORVRfVURQX1RVTk5FTFxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWc9MzAyPWNvbmZpZyBBTVRcbmRyaXZlcnMvbmV0L0tjb25maWctMzAzLVx0dHJpc3RhdGUgXCYjMzQ7QXV0b21hdGljIE11bHRpY2FzdCBUdW5uZWxpbmcgKEFNVClcJiMzNDtcbmRyaXZlcnMvbmV0L0tjb25maWc6MzA0Olx0ZGVwZW5kcyBvbiBJTkVUIFx1MDAyNlx1MDAyNiBJUF9NVUxUSUNBU1RcbmRyaXZlcnMvbmV0L0tjb25maWctMzA1LVx0c2VsZWN0IE5FVF9VRFBfVFVOTkVMXG4tLVxuZHJpdmVycy9uZXQvS2NvbmZpZz0zMjc9Y29uZmlnIE5FVENPTlNPTEVcbmRyaXZlcnMvbmV0L0tjb25maWctMzI4LVx0dHJpc3RhdGUgXCYjMzQ7TmV0d29yayBjb25zb2xlIGxvZ2dpbmcgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvS2NvbmZpZzozMjk6XHRkZXBlbmRzIG9uIFBSSU5US1xuZHJpdmVycy9uZXQvS2NvbmZpZy0zMzAtXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvS2NvbmZpZz0zMzQ9Y29uZmlnIE5FVENPTlNPTEVfRFlOQU1JQ1xuZHJpdmVycy9uZXQvS2NvbmZpZy0zMzUtXHRib29sIFwmIzM0O0R5bmFtaWMgcmVjb25maWd1cmF0aW9uIG9mIGxvZ2dpbmcgdGFyZ2V0c1wmIzM0O1xuZHJpdmVycy9uZXQvS2NvbmZpZzozMzY6XHRkZXBlbmRzIG9uIE5FVENPTlNPTEUgXHUwMDI2XHUwMDI2IFNZU0ZTIFx1MDAyNlx1MDAyNiBDT05GSUdGU19GUyBcdTAwMjZcdTAwMjYgXFxcbmRyaXZlcnMvbmV0L0tjb25maWctMzM3LVx0XHRcdCEoTkVUQ09OU09MRT15IFx1MDAyNlx1MDAyNiBDT05GSUdGU19GUz1tKVxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWc9MzQ1PWNvbmZpZyBORVRDT05TT0xFX0VYVEVOREVEX0xPR1xuZHJpdmVycy9uZXQvS2NvbmZpZy0zNDYtXHRib29sIFwmIzM0O1NldCBrZXJuZWwgZXh0ZW5kZWQgbWVzc2FnZSBieSBkZWZhdWx0XCYjMzQ7XG5kcml2ZXJzL25ldC9LY29uZmlnOjM0NzpcdGRlcGVuZHMgb24gTkVUQ09OU09MRVxuZHJpdmVycy9uZXQvS2NvbmZpZy0zNDgtXHRkZWZhdWx0IG5cbi0tXG5kcml2ZXJzL25ldC9LY29uZmlnPTM1NT1jb25maWcgTkVUQ09OU09MRV9QUkVQRU5EX1JFTEVBU0VcbmRyaXZlcnMvbmV0L0tjb25maWctMzU2LVx0Ym9vbCBcJiMzNDtQcmVwZW5kIGtlcm5lbCByZWxlYXNlIHZlcnNpb24gaW4gdGhlIG1lc3NhZ2UgYnkgZGVmYXVsdFwmIzM0O1xuZHJpdmVycy9uZXQvS2NvbmZpZzozNTc6XHRkZXBlbmRzIG9uIE5FVENPTlNPTEVfRVhURU5ERURfTE9HXG5kcml2ZXJzL25ldC9LY29uZmlnLTM1OC1cdGRlZmF1bHQgblxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWc9MzczPWNvbmZpZyBOVEJfTkVUREVWXG5kcml2ZXJzL25ldC9LY29uZmlnLTM3NC1cdHRyaXN0YXRlIFwmIzM0O1ZpcnR1YWwgRXRoZXJuZXQgb3ZlciBOVEIgVHJhbnNwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC9LY29uZmlnOjM3NTpcdGRlcGVuZHMgb24gTlRCX1RSQU5TUE9SVFxuZHJpdmVycy9uZXQvS2NvbmZpZy0zNzYtXG5kcml2ZXJzL25ldC9LY29uZmlnPTM3Nz1jb25maWcgUklPTkVUXG5kcml2ZXJzL25ldC9LY29uZmlnLTM3OC1cdHRyaXN0YXRlIFwmIzM0O1JhcGlkSU8gRXRoZXJuZXQgb3ZlciBtZXNzYWdpbmcgZHJpdmVyIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L0tjb25maWc6Mzc5Olx0ZGVwZW5kcyBvbiBSQVBJRElPXG5kcml2ZXJzL25ldC9LY29uZmlnLTM4MC1cbmRyaXZlcnMvbmV0L0tjb25maWc9MzgxPWNvbmZpZyBSSU9ORVRfVFhfU0laRVxuZHJpdmVycy9uZXQvS2NvbmZpZy0zODItXHRpbnQgXCYjMzQ7TnVtYmVyIG9mIG91dGJvdW5kIHF1ZXVlIGVudHJpZXNcJiMzNDtcbmRyaXZlcnMvbmV0L0tjb25maWc6MzgzOlx0ZGVwZW5kcyBvbiBSSU9ORVRcbmRyaXZlcnMvbmV0L0tjb25maWctMzg0LVx0ZGVmYXVsdCBcJiMzNDsxMjhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9LY29uZmlnPTM4Nj1jb25maWcgUklPTkVUX1JYX1NJWkVcbmRyaXZlcnMvbmV0L0tjb25maWctMzg3LVx0aW50IFwmIzM0O051bWJlciBvZiBpbmJvdW5kIHF1ZXVlIGVudHJpZXNcJiMzNDtcbmRyaXZlcnMvbmV0L0tjb25maWc6Mzg4Olx0ZGVwZW5kcyBvbiBSSU9ORVRcbmRyaXZlcnMvbmV0L0tjb25maWctMzg5LVx0ZGVmYXVsdCBcJiMzNDsxMjhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9LY29uZmlnPTM5MT1jb25maWcgVFVOXG5kcml2ZXJzL25ldC9LY29uZmlnLTM5Mi1cdHRyaXN0YXRlIFwmIzM0O1VuaXZlcnNhbCBUVU4vVEFQIGRldmljZSBkcml2ZXIgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvS2NvbmZpZzozOTM6XHRkZXBlbmRzIG9uIElORVRcbmRyaXZlcnMvbmV0L0tjb25maWctMzk0LVx0c2VsZWN0IENSQzMyXG4tLVxuZHJpdmVycy9uZXQvS2NvbmZpZz00NDM9Y29uZmlnIFZJUlRJT19ORVRcbmRyaXZlcnMvbmV0L0tjb25maWctNDQ0LVx0dHJpc3RhdGUgXCYjMzQ7VmlydGlvIG5ldHdvcmsgZHJpdmVyXCYjMzQ7XG5kcml2ZXJzL25ldC9LY29uZmlnOjQ0NTpcdGRlcGVuZHMgb24gVklSVElPXG5kcml2ZXJzL25ldC9LY29uZmlnLTQ0Ni1cdHNlbGVjdCBORVRfRkFJTE9WRVJcbi0tXG5kcml2ZXJzL25ldC9LY29uZmlnPTQ2Mz1jb25maWcgTkVUS0lUXG5kcml2ZXJzL25ldC9LY29uZmlnLTQ2NC1cdGJvb2wgXCYjMzQ7QlBGLXByb2dyYW1tYWJsZSBuZXR3b3JrIGRldmljZVwmIzM0O1xuZHJpdmVycy9uZXQvS2NvbmZpZzo0NjU6XHRkZXBlbmRzIG9uIEJQRl9TWVNDQUxMXG5kcml2ZXJzL25ldC9LY29uZmlnLTQ2Ni1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC9LY29uZmlnPTQ3Mj1jb25maWcgTkVUX1ZSRlxuZHJpdmVycy9uZXQvS2NvbmZpZy00NzMtXHR0cmlzdGF0ZSBcJiMzNDtWaXJ0dWFsIFJvdXRpbmcgYW5kIEZvcndhcmRpbmcgKExpdGUpXCYjMzQ7XG5kcml2ZXJzL25ldC9LY29uZmlnOjQ3NDpcdGRlcGVuZHMgb24gSVBfTVVMVElQTEVfVEFCTEVTXG5kcml2ZXJzL25ldC9LY29uZmlnOjQ3NTpcdGRlcGVuZHMgb24gTkVUX0wzX01BU1RFUl9ERVZcbmRyaXZlcnMvbmV0L0tjb25maWc6NDc2Olx0ZGVwZW5kcyBvbiBJUFY2X01VTFRJUExFX1RBQkxFUyB8fCBJUFY2PW5cbmRyaXZlcnMvbmV0L0tjb25maWctNDc3LVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWc9NDgxPWNvbmZpZyBWU09DS01PTlxuZHJpdmVycy9uZXQvS2NvbmZpZy00ODItXHR0cmlzdGF0ZSBcJiMzNDtWaXJ0dWFsIHZzb2NrIG1vbml0b3JpbmcgZGV2aWNlXCYjMzQ7XG5kcml2ZXJzL25ldC9LY29uZmlnOjQ4MzpcdGRlcGVuZHMgb24gVkhPU1RfVlNPQ0tcbmRyaXZlcnMvbmV0L0tjb25maWctNDg0LVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWc9NDg5PWNvbmZpZyBNSElfTkVUXG5kcml2ZXJzL25ldC9LY29uZmlnLTQ5MC1cdHRyaXN0YXRlIFwmIzM0O01ISSBuZXR3b3JrIGRyaXZlclwmIzM0O1xuZHJpdmVycy9uZXQvS2NvbmZpZzo0OTE6XHRkZXBlbmRzIG9uIE1ISV9CVVNcbmRyaXZlcnMvbmV0L0tjb25maWctNDkyLVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWc9NTQ0PWNvbmZpZyBYRU5fTkVUREVWX0ZST05URU5EXG5kcml2ZXJzL25ldC9LY29uZmlnLTU0NS1cdHRyaXN0YXRlIFwmIzM0O1hlbiBuZXR3b3JrIGRldmljZSBmcm9udGVuZCBkcml2ZXJcJiMzNDtcbmRyaXZlcnMvbmV0L0tjb25maWc6NTQ2Olx0ZGVwZW5kcyBvbiBYRU5cbmRyaXZlcnMvbmV0L0tjb25maWctNTQ3LVx0c2VsZWN0IFhFTl9YRU5CVVNfRlJPTlRFTkRcbi0tXG5kcml2ZXJzL25ldC9LY29uZmlnPTU2Mj1jb25maWcgWEVOX05FVERFVl9CQUNLRU5EXG5kcml2ZXJzL25ldC9LY29uZmlnLTU2My1cdHRyaXN0YXRlIFwmIzM0O1hlbiBiYWNrZW5kIG5ldHdvcmsgZGV2aWNlXCYjMzQ7XG5kcml2ZXJzL25ldC9LY29uZmlnOjU2NDpcdGRlcGVuZHMgb24gWEVOX0JBQ0tFTkRcbmRyaXZlcnMvbmV0L0tjb25maWctNTY1LVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWc9NTg0PWNvbmZpZyBWTVhORVQzXG5kcml2ZXJzL25ldC9LY29uZmlnLTU4NS1cdHRyaXN0YXRlIFwmIzM0O1ZNd2FyZSBWTVhORVQzIGV0aGVybmV0IGRyaXZlclwmIzM0O1xuZHJpdmVycy9uZXQvS2NvbmZpZzo1ODY6XHRkZXBlbmRzIG9uIFBDSSBcdTAwMjZcdTAwMjYgSU5FVFxuZHJpdmVycy9uZXQvS2NvbmZpZzo1ODc6XHRkZXBlbmRzIG9uIFBBR0VfU0laRV9MRVNTX1RIQU5fNjRLQlxuZHJpdmVycy9uZXQvS2NvbmZpZy01ODgtXHRzZWxlY3QgUEFHRV9QT09MXG4tLVxuZHJpdmVycy9uZXQvS2NvbmZpZz01OTQ9Y29uZmlnIEZVSklUU1VfRVNcbmRyaXZlcnMvbmV0L0tjb25maWctNTk1LVx0dHJpc3RhdGUgXCYjMzQ7RlVKSVRTVSBFeHRlbmRlZCBTb2NrZXQgTmV0d29yayBEZXZpY2UgZHJpdmVyXCYjMzQ7XG5kcml2ZXJzL25ldC9LY29uZmlnOjU5NjpcdGRlcGVuZHMgb24gQUNQSVxuZHJpdmVycy9uZXQvS2NvbmZpZy01OTctXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvS2NvbmZpZz02MDQ9Y29uZmlnIE5FVERFVlNJTVxuZHJpdmVycy9uZXQvS2NvbmZpZy02MDUtXHR0cmlzdGF0ZSBcJiMzNDtTaW11bGF0ZWQgbmV0d29ya2luZyBkZXZpY2VcJiMzNDtcbmRyaXZlcnMvbmV0L0tjb25maWc6NjA2Olx0ZGVwZW5kcyBvbiBERUJVR19GU1xuZHJpdmVycy9uZXQvS2NvbmZpZzo2MDc6XHRkZXBlbmRzIG9uIElORVRcbmRyaXZlcnMvbmV0L0tjb25maWc6NjA4Olx0ZGVwZW5kcyBvbiBQU0FNUExFIHx8IFBTQU1QTEU9blxuZHJpdmVycy9uZXQvS2NvbmZpZzo2MDk6XHRkZXBlbmRzIG9uIFBUUF8xNTg4X0NMT0NLX01PQ0sgfHwgUFRQXzE1ODhfQ0xPQ0tfTU9DSz1uXG5kcml2ZXJzL25ldC9LY29uZmlnLTYxMC1cdHNlbGVjdCBORVRfREVWTElOS1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDA5OjMxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDc4ODQKCQkJCQkJCW91dHB1dDogODIKCQkJCQkJCXRob3VnaHRzOiAxODQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTUFDVkxBTiBGdXp6aW5nIERlY2lzaW9uKioKCk9rYXksIHNvIHRoZXJlIGFyZSBubyBkZXBlbmRlbmNpZXMgdG8gd29ycnkgYWJvdXQgZm9yIHRoaXMgTUFDVkxBTiBjaGFuZ2UuIFRoZSBxdWVzdGlvbiBub3cgaXMsIGlzIGl0IGV2ZW4gKndvcnRoKiBmdXp6aW5nPyBJIG5lZWQgdG8gY29uc2lkZXIgdGhhdCBjcml0ZXJpYTogaXQgc2F5cyB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAgaWYgdGhlIHBhdGNoICpvbmx5KiB0b3VjaGVzIHRlYXJkb3duIGNhbGxiYWNrcyBsaWtlIGAucmVtb3ZlYCwgYC5zaHV0ZG93bmAsIG9yIGBwY2lfdW5yZWdpc3Rlcl9kcml2ZXJgIHRoYXQgcnVuIG9uIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIHVuYmluZC4gVGhhdCYjMzk7cyBub3QgdGhlIGNhc2UgaGVyZSwgdGhhbmtmdWxseS4KCkkgdGhpbmsgdGhpcyBvbmUgaXMgd29ydGggYSBmdXp6aW5nIGF0dGVtcHQuIEV2ZW4gdGhvdWdoIHRoZSBtb2R1bGUgaW5pdCBlcnJvciBwYXRocyBhcmUgb25seSByZWxldmFudCBkdXJpbmcgbW9kdWxlIGxvYWQgZmFpbHVyZSwgaXQgc3RpbGwgcmVwcmVzZW50cyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBldmVuIGlmIGEgbWlub3Igb25lLiBNeSBndXQgc2F5cyBgV29ydGhGdXp6aW5nPXRydWVgLiBJIG5lZWQgdG8gYmUgbW9yZSBzcGVjaWZpYy4gYEZvY3VzU3ltYm9scz1bJiMzNDttYWN2bGFuX2luaXRfbW9kdWxlJiMzNDtdYCBhbmQgYEVuYWJsZUNvbmZpZ3M9WyYjMzQ7TUFDVkxBTiYjMzQ7XWAuIAoKV2FpdCBhIHNlY29uZC4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGFtIG5vdCBtaXNzaW5nIGFueSBzdWJ0bGUgaW50ZXJhY3Rpb25zLiBJIHdpbGwgcmV2aWV3IGFuZCBjb25maXJtIHRoYXQgYG1hY3ZsYW5faW5pdF9tb2R1bGVgIGlzIHRoZSBvbmx5IGZ1bmN0aW9uIGJlaW5nIG1vZGlmaWVkLiBPa2F5LCBubywgbm90aGluZyBlbHNlIGhhcyBiZWVuIHRvdWNoZWQuCgpZZXMsIGdpdmVuIHRoaXMsIEkgd2lsbCBqdXN0IHJldHVybiBgV29ydGhGdXp6aW5nPXRydWVgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAwOTozMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TUFDVkxBTiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O21hY3ZsYW5faW5pdF9tb2R1bGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBlcnJvciBoYW5kbGluZyB0byB0aGUgbW9kdWxlIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIG9mIHRoZSBtYWN2bGFuIGRyaXZlci4gV2hpbGUgaXQgb25seSBleGVjdXRlcyBkdXJpbmcgbW9kdWxlIGxvYWQgb3IgYm9vdCwgaXQgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUga2VybmVsIGNvZGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01BQ1ZMQU4mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttYWN2bGFuX2luaXRfbW9kdWxlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgZXJyb3IgaGFuZGxpbmcgdG8gdGhlIG1vZHVsZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiBvZiB0aGUgbWFjdmxhbiBkcml2ZXIuIFdoaWxlIGl0IG9ubHkgZXhlY3V0ZXMgZHVyaW5nIG1vZHVsZSBsb2FkIG9yIGJvb3QsIGl0IGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGtlcm5lbCBjb2RlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDNUMDk6MzA6NTguMDYzMjIwMTg0WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mjg5NjQyMjI5NjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTUFDVkxBTlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm1hY3ZsYW5faW5pdF9tb2R1bGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGVycm9yIGhhbmRsaW5nIHRvIHRoZSBtb2R1bGUgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24gb2YgdGhlIG1hY3ZsYW4gZHJpdmVyLiBXaGlsZSBpdCBvbmx5IGV4ZWN1dGVzIGR1cmluZyBtb2R1bGUgbG9hZCBvciBib290LCBpdCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBrZXJuZWwgY29kZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMDk6MzA6NTguMDYzMjI4MDQ0WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MDU5MDk0MTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAwYjFlOTg1ODQyNzAzOTZjNjliZGQ1NTlhODkzMjI0NmVlYjc2YTYxXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gQXVnIDMgMDk6MzA6NTcgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbWFjdmxhbi5jIGIvZHJpdmVycy9uZXQvbWFjdmxhbi5jXFxuaW5kZXggOWE0YmM5OWRiZjUzYi4uNDI5NGI0MzM4MzhhZSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9tYWN2bGFuLmNcXG4rKysgYi9kcml2ZXJzL25ldC9tYWN2bGFuLmNcXG5AQCAtMTkwNiw3ICsxOTA2LDkgQEAgc3RhdGljIGludCBfX2luaXQgbWFjdmxhbl9pbml0X21vZHVsZSh2b2lkKVxcbiB7XFxuIFxcdGludCBlcnI7XFxuIFxcbi1cXHRyZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXFx1MDAyNm1hY3ZsYW5fbm90aWZpZXJfYmxvY2spO1xcbitcXHRlcnIgPSByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXFx1MDAyNm1hY3ZsYW5fbm90aWZpZXJfYmxvY2spO1xcbitcXHRpZiAoZXJyKVxcbitcXHRcXHRyZXR1cm4gZXJyO1xcbiBcXG4gXFx0ZXJyID0gbWFjdmxhbl9saW5rX3JlZ2lzdGVyKFxcdTAwMjZtYWN2bGFuX2xpbmtfb3BzKTtcXG4gXFx0aWYgKGVyciBcXHUwMDNjIDApXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDA5OjMwOjU4LjQ3MDEwMjQ3OFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjI4NTU3MzI1ODkxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1BQ1ZMQU5cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJtYWN2bGFuX2luaXRfbW9kdWxlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBlcnJvciBoYW5kbGluZyB0byB0aGUgbW9kdWxlIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIG9mIHRoZSBtYWN2bGFuIGRyaXZlci4gV2hpbGUgaXQgb25seSBleGVjdXRlcyBkdXJpbmcgbW9kdWxlIGxvYWQgb3IgYm9vdCwgaXQgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUga2VybmVsIGNvZGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDBiMWU5ODU4NDI3MDM5NmM2OWJkZDU1OWE4OTMyMjQ2ZWViNzZhNjFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAzIDA5OjMwOjU3IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbWFjdmxhbi5jIGIvZHJpdmVycy9uZXQvbWFjdmxhbi5jXG5pbmRleCA5YTRiYzk5ZGJmNTNiLi40Mjk0YjQzMzgzOGFlIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvbWFjdmxhbi5jXG4rKysgYi9kcml2ZXJzL25ldC9tYWN2bGFuLmNcbkBAIC0xOTA2LDcgKzE5MDYsOSBAQCBzdGF0aWMgaW50IF9faW5pdCBtYWN2bGFuX2luaXRfbW9kdWxlKHZvaWQpXG4ge1xuIFx0aW50IGVycjtcbiBcbi1cdHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcdTAwMjZtYWN2bGFuX25vdGlmaWVyX2Jsb2NrKTtcbitcdGVyciA9IHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcdTAwMjZtYWN2bGFuX25vdGlmaWVyX2Jsb2NrKTtcbitcdGlmIChlcnIpXG4rXHRcdHJldHVybiBlcnI7XG4gXG4gXHRlcnIgPSBtYWN2bGFuX2xpbmtfcmVnaXN0ZXIoXHUwMDI2bWFjdmxhbl9saW5rX29wcyk7XG4gXHRpZiAoZXJyIFx1MDAzYyAwKVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMDk6MzA6NTguNDcwMTA0ODU4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTMxNTEwODA1MjIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgUGF0Y2g6IG1hY3ZsYW4uYyBNb2R1bGUgSW5pdGlhbGl6YXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgbW9kaWZpZXMgYGRyaXZlcnMvbmV0L21hY3ZsYW4uY2AuIFRoZSBjb3JlIGNoYW5nZSBpcyBpbiBgbWFjdmxhbl9pbml0X21vZHVsZWAsIHdoZXJlIHRoZXkncmUgbm93IGNoZWNraW5nIHRoZSByZXR1cm4gdmFsdWUgb2YgYHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcmAuICBUaGlzIGlzIGEgbW9kdWxlIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uLCB3aGljaCBpbW1lZGlhdGVseSBtYWtlcyBtZSB0aGluayBhYm91dCBmdXp6aW5nIHBvdGVudGlhbC4gSXQncyBhbiBlcnJvciBoYW5kbGluZyBmaXgsIHNwZWNpZmljYWxseSBmb3IgaW5pdGlhbGl6YXRpb24uICBNeSBpbml0aWFsIHJlYWN0aW9uIGlzIHRoYXQgZnV6emluZyBtb2R1bGUgaW5pdGlhbGl6YXRpb24gcm91dGluZXMgaXNuJ3QgdXN1YWxseSB0aGUgbW9zdCBwcm9kdWN0aXZlIGF2ZW51ZSBiZWNhdXNlIHRoZXkgcnVuIG9uY2UsIGVpdGhlciBhdCBib290IG9yIG1vZHVsZSBsb2FkLiAgRnVydGhlcm1vcmUsIHRoZSBgcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyYCBjYWxsIGlzIHVubGlrZWx5IHRvIGZhaWwgdW5sZXNzIHRoZXJlJ3MgYSBtZW1vcnkgYWxsb2NhdGlvbiBpc3N1ZSDigJMgYSB2ZXJ5IGRpZmZpY3VsdCB0aGluZyB0byB0YXJnZXQgc3BlY2lmaWNhbGx5IGZvciAqdGhpcyogbW9kdWxlLlxuXG5BbHJpZ2h0LCBzbyB0aGUgcGF0Y2ggKm9ubHkqIG1vZGlmaWVzIHRoZSBtb2R1bGUgaW5pdCBmdW5jdGlvbiwgYG1hY3ZsYW5faW5pdF9tb2R1bGVgLiBMZXQgbWUgZG91YmxlLWNoZWNrLi4uIHllcCwgdGhhdCdzIGl0LiBObyBvdGhlciBjb2RlIGhhcyBiZWVuIHRvdWNoZWQuICBOb3csIHRoZSBxdWVzdGlvbiBpczogaXMgdGhpcyB3b3J0aCBmdXp6aW5nPyAgV2hpbGUgdGhlc2UgaW5pdCBlcnJvciBwYXRocyAqYXJlKiBmdW5jdGlvbmFsbHkgaW1wb3J0YW50LCB0aGVpciBzaW5nbGUtZXhlY3V0aW9uIG5hdHVyZSBtYWtlcyB0aGVtIGxlc3MgYXBwZWFsaW5nIGZvciBmdXp6aW5nLiBIb3dldmVyLCB0aGVyZSAqaXMqIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaGVyZS5cblxuSSBuZWVkIHRvIGRlY2lkZSB3aGV0aGVyIHRvIG1hcmsgdGhpcyBhcyBXb3J0aEZ1enppbmc9ZmFsc2UgYmVjYXVzZSBpdCdzIGp1c3QgYW4gaW5pdCBmdW5jdGlvbiwgb3IgZ28gd2l0aCBXb3J0aEZ1enppbmc9dHJ1ZS4gSSBjaGVja2VkIHRoZSBndWlkZWxpbmVzLCBhbmQgd2hpbGUgdGhleSBkb24ndCBleHBsaWNpdGx5IHNheSBcIm1vZHVsZSBpbml0IGVycm9yIHBhdGhzID0gZmFsc2VcIiwgdGhlIGNoYW5nZSBpcyBtaW5vci4gQnV0IGl0IGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UuXG5cblRoZSBjYXRjaCBpcywgYG1hY3ZsYW5faW5pdF9tb2R1bGVgIGlzIG1hcmtlZCBgX19pbml0YC4gIElmIHRoZSBtb2R1bGUgaXMgYnVpbHQtaW4sIHRoZSBmdW5jdGlvbiBnZXRzIGZyZWVkIGFmdGVyIHRoZSBrZXJuZWwgZmluaXNoZXMgYm9vdGluZy4gU3l6a2FsbGVyIGRvZXNuJ3QgZm9jdXMgb24gYm9vdCBjb2RlIGluIHRoZSBzdGFuZGFyZCBjb25maWd1cmF0aW9uLiBJZiBpdCdzIGEgbW9kdWxlLCB0aGVuIGl0IHJ1bnMgb24gbW9kdWxlIGxvYWQuIFN5emthbGxlciAqY2FuKiBsb2FkIG1vZHVsZXMsIGJ1dCB0eXBpY2FsbHkgZG9lc24ndCBkaXJlY3RseSB0YXJnZXQgbW9kdWxlIGxvYWRpbmcuXG5cblNvLCBJIGNvdWxkIHNldCBXb3J0aEZ1enppbmc9dHJ1ZSBhbmQgRm9jdXNTeW1ib2xzPVtcIm1hY3ZsYW5faW5pdF9tb2R1bGVcIl0uLi4gYnV0IHRoZSBzeW1ib2wgbmFtZSBpcyBjb3JyZWN0LiBCdXQgaXQgaXMgZXhlY3V0ZWQgb25seSBvbmNlLiBMZXQgbWUgY2hlY2sgdGhlIGNvbmZpZzogYENPTkZJR19NQUNWTEFOYCBjYW4gYmUgYG1gIG9yIGB5YC4gSWYgaXQgaXMgYnVpbHQtaW4gKGB5YCksIHRoZSBmdW5jdGlvbiB3aWxsIGJlIGZyZWVkIGFuZCBub3QgYXZhaWxhYmxlIGFmdGVyIHRoZSBib290LiBJZiBpdCdzIGEgbW9kdWxlIChgbWApLCB0aGVuIHN5emthbGxlciBjYW4gbG9hZCBpdC5cblxuQWxyaWdodCwgSSdtIGdvaW5nIHRvIHNldCBgV29ydGhGdXp6aW5nPXRydWUsIEZvY3VzU3ltYm9scz1bXCJtYWN2bGFuX2luaXRfbW9kdWxlXCJdLCBFbmFibGVDb25maWdzPVtcIk1BQ1ZMQU5cIl1gLiBUaGUga2V5IGlzIHRvIGNoZWNrIGlmIGBtYWN2bGFuX2luaXRfbW9kdWxlYCBpcyB0aGUgZW50cnlwb2ludCB0byB0aGUgbW9kdWxlLCBldmVuIGlmIGl0IGlzIGEgYHN0YXRpY2Agb25lLiBZZXMsIGl0J3Mgbm90IGlubGluZWQsIGl0J3MgcGFzc2VkIHRvIGBtb2R1bGVfaW5pdCgpYC4gVGltZSB0byBnbyB3aXRoIHRoaXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwNTcsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDE5LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMDk6MzE6MTEuNjIxMTg4NTNaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzE4NTUxMjksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibW9kdWxlX2luaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvbWFjdmxhbi5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L21hY3ZsYW4uYz0xOTIyPXN0YXRpYyB2b2lkIF9fZXhpdCBtYWN2bGFuX2NsZWFudXBfbW9kdWxlKHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC9tYWN2bGFuLmMtMTkyNy1cXG5kcml2ZXJzL25ldC9tYWN2bGFuLmM6MTkyODptb2R1bGVfaW5pdChtYWN2bGFuX2luaXRfbW9kdWxlKTtcXG5kcml2ZXJzL25ldC9tYWN2bGFuLmMtMTkyOS1tb2R1bGVfZXhpdChtYWN2bGFuX2NsZWFudXBfbW9kdWxlKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMDk6MzE6MTEuNjkzMDQ4MjQ5WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTU0NDIzODk3NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIERlY2lzaW9uIGZvciBtYWN2bGFuX2luaXRfbW9kdWxlKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYG1hY3ZsYW5faW5pdF9tb2R1bGVgLiBUaGF0J3MgdGhlIG1vZHVsZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbi4gSXQncyBvbmx5IGV4ZWN1dGVkIG9uY2UsIHdoaWNoIG1ha2VzIG1lIGluaXRpYWxseSBxdWVzdGlvbiB3aGV0aGVyIGl0J3MgZXZlbiB3b3J0aCBmdXp6aW5nLiBUaGUgZ3VpZGFuY2Ugc2F5cyB0byBza2lwIGlmIGl0J3MganVzdCB0ZWFyZG93biBsaWtlIGAucmVtb3ZlYCwgYC5zaHV0ZG93bmAsIG9yIGBwY2lfdW5yZWdpc3Rlcl9kcml2ZXJgIGNhbGxiYWNrcyB0aGF0IGZpcmUgZHVyaW5nIGhvdC11bnBsdWcgb3IgdW5iaW5kIG9wZXJhdGlvbnMuIE1vZHVsZSBpbml0IGlzbid0ICpleGFjdGx5KiB0aGUgc2FtZSwgc2luY2UgaXQncyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBidXQgdGhlIG9uZS10aW1lIGV4ZWN1dGlvbiBkb2VzIGdpdmUgbWUgcGF1c2UuXG5cbkhvd2V2ZXIsIHRoaXMgKmlzKiBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhbmQgdGhlIG1vZGlmaWVkIGZ1bmN0aW9uIGlzIGBtYWN2bGFuX2luaXRfbW9kdWxlYC4gTGV0J3MgYXNzdW1lIGl0J3Mgd29ydGggZnV6emluZyBhbmQgc2V0IGBXb3J0aEZ1enppbmc9dHJ1ZWAuXG5cbk5vdywgZm9yIHRoZSBgRm9jdXNTeW1ib2xzYC4gYG1hY3ZsYW5faW5pdF9tb2R1bGVgIHNlZW1zIGxpa2UgdGhlIG9idmlvdXMgY2hvaWNlIHNpbmNlIGl0J3MgdGhlIG9ubHkgZnVuY3Rpb24gYmVpbmcgdG91Y2hlZC4gQnV0IHdhaXQsIGl0J3MgZGVjbGFyZWQgYHN0YXRpY2AuIFRoYXQgKmNvdWxkKiBiZSBhIHByb2JsZW0uIFN0YXRpYyBmdW5jdGlvbnMgKm1pZ2h0KiBiZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciwgb3IgdGhleSBtaWdodCBub3QgaGF2ZSBhIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzLiBCdXQgYG1hY3ZsYW5faW5pdF9tb2R1bGVgIGlzIGJlaW5nIHBhc3NlZCB0byBgbW9kdWxlX2luaXRgLCBzbyBpdHMgYWRkcmVzcyBpcyBkZWZpbml0ZWx5IGJlaW5nIHRha2VuIGFuZCBpbmxpbmluZyBpcyBub3QgYW4gaXNzdWUuIEl0J3MgdGhlIG9ubHkgZnVuY3Rpb24sIHNvIGxldCdzIHN0aWNrIHdpdGggaXQsIGBGb2N1c1N5bWJvbHM9W1wibWFjdmxhbl9pbml0X21vZHVsZVwiXWAuXG5cbkknbGwgYWxzbyBlbmFibGUgdGhlIGBNQUNWTEFOYCBjb25maWcgd2l0aCBgRW5hYmxlQ29uZmlncz1bXCJNQUNWTEFOXCJdYC4gSSdsbCBqdXN0IGRvdWJsZS1jaGVjayB0byBiZSBzdXJlIHRoYXQncyB0aGUgY29ycmVjdCBvbmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM4MzYsIk91dHB1dFRva2VucyI6MjgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyODMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMDk6MzE6MTcuMjM3MjkwMjM2WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxODE2NTY3NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgTUFDVkxBTlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvS2NvbmZpZz0xNjM9c291cmNlIFxcXCJkcml2ZXJzL25ldC90ZWFtL0tjb25maWdcXFwiXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0xNjQtXFxuZHJpdmVycy9uZXQvS2NvbmZpZzoxNjU6Y29uZmlnIE1BQ1ZMQU5cXG5kcml2ZXJzL25ldC9LY29uZmlnLTE2Ni1cXHR0cmlzdGF0ZSBcXFwiTUFDLVZMQU4gc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMDk6MzE6MTcuNDU1NDYxODUzWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzkyNTkxNjczMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNQUNWTEFOOiBBIEZvY3VzZWQgUGF0Y2ggQXNzZXNzbWVudCoqXG5cbk9rYXksIHllcywgZGVmaW5pdGVseSwgdGhpcyBwYXRjaCBmb2N1c2VzIG9uIGBNQUNWTEFOYC4gSSdtIGdvaW5nIHRvIHNldCBgV29ydGhGdXp6aW5nYCB0byBgdHJ1ZWAuIFRoaXMgaXMgYmVjYXVzZSB0aGUgcGF0Y2ggbWFrZXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoaW4gcmVhY2hhYmxlIGtlcm5lbCBjb2RlLCBzcGVjaWZpY2FsbHkgZXJyb3IgaGFuZGxpbmcgaW4gdGhlIG1vZHVsZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiBvZiB0aGUgbWFjdmxhbiBkcml2ZXIuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBkb24ndCBtaXNzIGFueXRoaW5nLlxuXG5TbywgSSB3aWxsIGZvY3VzIG9uIHRoZSBgbWFjdmxhbl9pbml0X21vZHVsZWAgZnVuY3Rpb24gYW5kIHRoZSByZWxhdGVkIGNvZGUsIHRoYXQncyBkZWZpbml0ZWx5IGEga2V5IGFyZWEgdG8gdGFyZ2V0IHdpdGggZnV6emVyLiBgRm9jdXNTeW1ib2xzYCB3aWxsIGJlIGBbXCJtYWN2bGFuX2luaXRfbW9kdWxlXCJdYCBhbmQgZW5hYmxlIHRoZSBgTUFDVkxBTmAgY29uZmlndXJhdGlvbi5cblxuTm93LCBsZXQgbWUganVzdCBkb3VibGUtY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBvdGhlciBjb25maWdzIHRoYXQgbWlnaHQgYmUgcmVsZXZhbnQuLi4gSSB3YW50IHRvIGJlIHRob3JvdWdoLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NTg2LCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMDk6MzE6MjEuMzgxMzgxODM0WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNzc0ODk5OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkZXBlbmRzIG9uXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvS2NvbmZpZz02PW1lbnVjb25maWcgTkVUREVWSUNFU1xcbmRyaXZlcnMvbmV0L0tjb25maWctNy1cXHRkZWZhdWx0IHkgaWYgVU1MXFxuZHJpdmVycy9uZXQvS2NvbmZpZzo4OlxcdGRlcGVuZHMgb24gTkVUXFxuZHJpdmVycy9uZXQvS2NvbmZpZy05LVxcdGJvb2wgXFxcIk5ldHdvcmsgZGV2aWNlIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9LY29uZmlnPTQxPWNvbmZpZyBCT05ESU5HXFxuZHJpdmVycy9uZXQvS2NvbmZpZy00Mi1cXHR0cmlzdGF0ZSBcXFwiQm9uZGluZyBkcml2ZXIgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC9LY29uZmlnOjQzOlxcdGRlcGVuZHMgb24gSU5FVFxcbmRyaXZlcnMvbmV0L0tjb25maWc6NDQ6XFx0ZGVwZW5kcyBvbiBUTFMgfHwgVExTX0RFVklDRT1uXFxuZHJpdmVycy9uZXQvS2NvbmZpZy00NS1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC9LY29uZmlnPTc0PWNvbmZpZyBXSVJFR1VBUkRcXG5kcml2ZXJzL25ldC9LY29uZmlnLTc1LVxcdHRyaXN0YXRlIFxcXCJXaXJlR3VhcmQgc2VjdXJlIG5ldHdvcmsgdHVubmVsXFxcIlxcbmRyaXZlcnMvbmV0L0tjb25maWc6NzY6XFx0ZGVwZW5kcyBvbiBORVQgXFx1MDAyNlxcdTAwMjYgSU5FVFxcbmRyaXZlcnMvbmV0L0tjb25maWctNzctXFx0c2VsZWN0IE5FVF9VRFBfVFVOTkVMXFxuLS1cXG5kcml2ZXJzL25ldC9LY29uZmlnPTkyPWNvbmZpZyBXSVJFR1VBUkRfREVCVUdcXG5kcml2ZXJzL25ldC9LY29uZmlnLTkzLVxcdGJvb2wgXFxcIkRlYnVnZ2luZyBjaGVja3MgYW5kIHZlcmJvc2UgbWVzc2FnZXNcXFwiXFxuZHJpdmVycy9uZXQvS2NvbmZpZzo5NDpcXHRkZXBlbmRzIG9uIFdJUkVHVUFSRFxcbmRyaXZlcnMvbmV0L0tjb25maWctOTUtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvS2NvbmZpZz0xMDM9Y29uZmlnIE9WUE5cXG5kcml2ZXJzL25ldC9LY29uZmlnLTEwNC1cXHR0cmlzdGF0ZSBcXFwiT3BlblZQTiBkYXRhIGNoYW5uZWwgb2ZmbG9hZFxcXCJcXG5kcml2ZXJzL25ldC9LY29uZmlnOjEwNTpcXHRkZXBlbmRzIG9uIE5FVCBcXHUwMDI2XFx1MDAyNiBJTkVUXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0xMDYtXFx0c2VsZWN0IERTVF9DQUNIRVxcbi0tXFxuZHJpdmVycy9uZXQvS2NvbmZpZz0xMzY9Y29uZmlnIE5FVF9GQ1xcbmRyaXZlcnMvbmV0L0tjb25maWctMTM3LVxcdGJvb2wgXFxcIkZpYnJlIENoYW5uZWwgZHJpdmVyIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvS2NvbmZpZzoxMzg6XFx0ZGVwZW5kcyBvbiBTQ1NJIFxcdTAwMjZcXHUwMDI2IFBDSVxcbmRyaXZlcnMvbmV0L0tjb25maWctMTM5LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L0tjb25maWc9MTQ5PWNvbmZpZyBJRkJcXG5kcml2ZXJzL25ldC9LY29uZmlnLTE1MC1cXHR0cmlzdGF0ZSBcXFwiSW50ZXJtZWRpYXRlIEZ1bmN0aW9uYWwgQmxvY2sgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC9LY29uZmlnOjE1MTpcXHRkZXBlbmRzIG9uIE5FVF9BQ1RfTUlSUkVEIHx8IE5GVF9GV0RfTkVUREVWXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0xNTItXFx0c2VsZWN0IE5FVF9SRURJUkVDVFxcbi0tXFxuZHJpdmVycy9uZXQvS2NvbmZpZz0xNzk9Y29uZmlnIE1BQ1ZUQVBcXG5kcml2ZXJzL25ldC9LY29uZmlnLTE4MC1cXHR0cmlzdGF0ZSBcXFwiTUFDLVZMQU4gYmFzZWQgdGFwIGRyaXZlclxcXCJcXG5kcml2ZXJzL25ldC9LY29uZmlnOjE4MTpcXHRkZXBlbmRzIG9uIE1BQ1ZMQU5cXG5kcml2ZXJzL25ldC9LY29uZmlnOjE4MjpcXHRkZXBlbmRzIG9uIElORVRcXG5kcml2ZXJzL25ldC9LY29uZmlnLTE4My1cXHRzZWxlY3QgVEFQXFxuLS1cXG5kcml2ZXJzL25ldC9LY29uZmlnPTE5Mz1jb25maWcgSVBWTEFOX0wzU1xcbmRyaXZlcnMvbmV0L0tjb25maWc6MTk0OlxcdGRlcGVuZHMgb24gTkVURklMVEVSXFxuZHJpdmVycy9uZXQvS2NvbmZpZzoxOTU6XFx0ZGVwZW5kcyBvbiBJUFZMQU5cXG5kcml2ZXJzL25ldC9LY29uZmlnLTE5Ni1cXHRkZWZfYm9vbCB5XFxuLS1cXG5kcml2ZXJzL25ldC9LY29uZmlnPTE5OT1jb25maWcgSVBWTEFOXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0yMDAtXFx0dHJpc3RhdGUgXFxcIklQLVZMQU4gc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC9LY29uZmlnOjIwMTpcXHRkZXBlbmRzIG9uIElORVRcXG5kcml2ZXJzL25ldC9LY29uZmlnLTIwMi1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC9LY29uZmlnPTIxNj1jb25maWcgSVBWVEFQXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0yMTctXFx0dHJpc3RhdGUgXFxcIklQLVZMQU4gYmFzZWQgdGFwIGRyaXZlclxcXCJcXG5kcml2ZXJzL25ldC9LY29uZmlnOjIxODpcXHRkZXBlbmRzIG9uIElQVkxBTlxcbmRyaXZlcnMvbmV0L0tjb25maWc6MjE5OlxcdGRlcGVuZHMgb24gSU5FVFxcbmRyaXZlcnMvbmV0L0tjb25maWctMjIwLVxcdHNlbGVjdCBUQVBcXG4tLVxcbmRyaXZlcnMvbmV0L0tjb25maWc9MjMwPWNvbmZpZyBWWExBTlxcbmRyaXZlcnMvbmV0L0tjb25maWctMjMxLVxcdHRyaXN0YXRlIFxcXCJWaXJ0dWFsIGVYdGVuc2libGUgTG9jYWwgQXJlYSBOZXR3b3JrIChWWExBTilcXFwiXFxuZHJpdmVycy9uZXQvS2NvbmZpZzoyMzI6XFx0ZGVwZW5kcyBvbiBJTkVUXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0yMzMtXFx0c2VsZWN0IE5FVF9VRFBfVFVOTkVMXFxuLS1cXG5kcml2ZXJzL25ldC9LY29uZmlnPTI0NT1jb25maWcgR0VORVZFXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0yNDYtXFx0dHJpc3RhdGUgXFxcIkdlbmVyaWMgTmV0d29yayBWaXJ0dWFsaXphdGlvbiBFbmNhcHN1bGF0aW9uXFxcIlxcbmRyaXZlcnMvbmV0L0tjb25maWc6MjQ3OlxcdGRlcGVuZHMgb24gSU5FVFxcbmRyaXZlcnMvbmV0L0tjb25maWctMjQ4LVxcdHNlbGVjdCBORVRfVURQX1RVTk5FTFxcbi0tXFxuZHJpdmVycy9uZXQvS2NvbmZpZz0yNjA9Y29uZmlnIEJBUkVVRFBcXG5kcml2ZXJzL25ldC9LY29uZmlnLTI2MS1cXHR0cmlzdGF0ZSBcXFwiQmFyZSBVRFAgRW5jYXBzdWxhdGlvblxcXCJcXG5kcml2ZXJzL25ldC9LY29uZmlnOjI2MjpcXHRkZXBlbmRzIG9uIElORVRcXG5kcml2ZXJzL25ldC9LY29uZmlnLTI2My1cXHRzZWxlY3QgTkVUX1VEUF9UVU5ORUxcXG4tLVxcbmRyaXZlcnMvbmV0L0tjb25maWc9MjcyPWNvbmZpZyBHVFBcXG5kcml2ZXJzL25ldC9LY29uZmlnLTI3My1cXHR0cmlzdGF0ZSBcXFwiR1BSUyBUdW5uZWxpbmcgUHJvdG9jb2wgZGF0YXBhdGggKEdUUC1VKVxcXCJcXG5kcml2ZXJzL25ldC9LY29uZmlnOjI3NDpcXHRkZXBlbmRzIG9uIElORVRcXG5kcml2ZXJzL25ldC9LY29uZmlnLTI3NS1cXHRzZWxlY3QgTkVUX1VEUF9UVU5ORUxcXG4tLVxcbmRyaXZlcnMvbmV0L0tjb25maWc9Mjg5PWNvbmZpZyBQRkNQXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0yOTAtXFx0dHJpc3RhdGUgXFxcIlBhY2tldCBGb3J3YXJkaW5nIENvbnRyb2wgUHJvdG9jb2wgKFBGQ1ApXFxcIlxcbmRyaXZlcnMvbmV0L0tjb25maWc6MjkxOlxcdGRlcGVuZHMgb24gSU5FVFxcbmRyaXZlcnMvbmV0L0tjb25maWctMjkyLVxcdHNlbGVjdCBORVRfVURQX1RVTk5FTFxcbi0tXFxuZHJpdmVycy9uZXQvS2NvbmZpZz0zMDI9Y29uZmlnIEFNVFxcbmRyaXZlcnMvbmV0L0tjb25maWctMzAzLVxcdHRyaXN0YXRlIFxcXCJBdXRvbWF0aWMgTXVsdGljYXN0IFR1bm5lbGluZyAoQU1UKVxcXCJcXG5kcml2ZXJzL25ldC9LY29uZmlnOjMwNDpcXHRkZXBlbmRzIG9uIElORVQgXFx1MDAyNlxcdTAwMjYgSVBfTVVMVElDQVNUXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0zMDUtXFx0c2VsZWN0IE5FVF9VRFBfVFVOTkVMXFxuLS1cXG5kcml2ZXJzL25ldC9LY29uZmlnPTMyNz1jb25maWcgTkVUQ09OU09MRVxcbmRyaXZlcnMvbmV0L0tjb25maWctMzI4LVxcdHRyaXN0YXRlIFxcXCJOZXR3b3JrIGNvbnNvbGUgbG9nZ2luZyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L0tjb25maWc6MzI5OlxcdGRlcGVuZHMgb24gUFJJTlRLXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0zMzAtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvS2NvbmZpZz0zMzQ9Y29uZmlnIE5FVENPTlNPTEVfRFlOQU1JQ1xcbmRyaXZlcnMvbmV0L0tjb25maWctMzM1LVxcdGJvb2wgXFxcIkR5bmFtaWMgcmVjb25maWd1cmF0aW9uIG9mIGxvZ2dpbmcgdGFyZ2V0c1xcXCJcXG5kcml2ZXJzL25ldC9LY29uZmlnOjMzNjpcXHRkZXBlbmRzIG9uIE5FVENPTlNPTEUgXFx1MDAyNlxcdTAwMjYgU1lTRlMgXFx1MDAyNlxcdTAwMjYgQ09ORklHRlNfRlMgXFx1MDAyNlxcdTAwMjYgXFxcXFxcbmRyaXZlcnMvbmV0L0tjb25maWctMzM3LVxcdFxcdFxcdCEoTkVUQ09OU09MRT15IFxcdTAwMjZcXHUwMDI2IENPTkZJR0ZTX0ZTPW0pXFxuLS1cXG5kcml2ZXJzL25ldC9LY29uZmlnPTM0NT1jb25maWcgTkVUQ09OU09MRV9FWFRFTkRFRF9MT0dcXG5kcml2ZXJzL25ldC9LY29uZmlnLTM0Ni1cXHRib29sIFxcXCJTZXQga2VybmVsIGV4dGVuZGVkIG1lc3NhZ2UgYnkgZGVmYXVsdFxcXCJcXG5kcml2ZXJzL25ldC9LY29uZmlnOjM0NzpcXHRkZXBlbmRzIG9uIE5FVENPTlNPTEVcXG5kcml2ZXJzL25ldC9LY29uZmlnLTM0OC1cXHRkZWZhdWx0IG5cXG4tLVxcbmRyaXZlcnMvbmV0L0tjb25maWc9MzU1PWNvbmZpZyBORVRDT05TT0xFX1BSRVBFTkRfUkVMRUFTRVxcbmRyaXZlcnMvbmV0L0tjb25maWctMzU2LVxcdGJvb2wgXFxcIlByZXBlbmQga2VybmVsIHJlbGVhc2UgdmVyc2lvbiBpbiB0aGUgbWVzc2FnZSBieSBkZWZhdWx0XFxcIlxcbmRyaXZlcnMvbmV0L0tjb25maWc6MzU3OlxcdGRlcGVuZHMgb24gTkVUQ09OU09MRV9FWFRFTkRFRF9MT0dcXG5kcml2ZXJzL25ldC9LY29uZmlnLTM1OC1cXHRkZWZhdWx0IG5cXG4tLVxcbmRyaXZlcnMvbmV0L0tjb25maWc9MzczPWNvbmZpZyBOVEJfTkVUREVWXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0zNzQtXFx0dHJpc3RhdGUgXFxcIlZpcnR1YWwgRXRoZXJuZXQgb3ZlciBOVEIgVHJhbnNwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L0tjb25maWc6Mzc1OlxcdGRlcGVuZHMgb24gTlRCX1RSQU5TUE9SVFxcbmRyaXZlcnMvbmV0L0tjb25maWctMzc2LVxcbmRyaXZlcnMvbmV0L0tjb25maWc9Mzc3PWNvbmZpZyBSSU9ORVRcXG5kcml2ZXJzL25ldC9LY29uZmlnLTM3OC1cXHR0cmlzdGF0ZSBcXFwiUmFwaWRJTyBFdGhlcm5ldCBvdmVyIG1lc3NhZ2luZyBkcml2ZXIgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC9LY29uZmlnOjM3OTpcXHRkZXBlbmRzIG9uIFJBUElESU9cXG5kcml2ZXJzL25ldC9LY29uZmlnLTM4MC1cXG5kcml2ZXJzL25ldC9LY29uZmlnPTM4MT1jb25maWcgUklPTkVUX1RYX1NJWkVcXG5kcml2ZXJzL25ldC9LY29uZmlnLTM4Mi1cXHRpbnQgXFxcIk51bWJlciBvZiBvdXRib3VuZCBxdWV1ZSBlbnRyaWVzXFxcIlxcbmRyaXZlcnMvbmV0L0tjb25maWc6MzgzOlxcdGRlcGVuZHMgb24gUklPTkVUXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0zODQtXFx0ZGVmYXVsdCBcXFwiMTI4XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvS2NvbmZpZz0zODY9Y29uZmlnIFJJT05FVF9SWF9TSVpFXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0zODctXFx0aW50IFxcXCJOdW1iZXIgb2YgaW5ib3VuZCBxdWV1ZSBlbnRyaWVzXFxcIlxcbmRyaXZlcnMvbmV0L0tjb25maWc6Mzg4OlxcdGRlcGVuZHMgb24gUklPTkVUXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0zODktXFx0ZGVmYXVsdCBcXFwiMTI4XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvS2NvbmZpZz0zOTE9Y29uZmlnIFRVTlxcbmRyaXZlcnMvbmV0L0tjb25maWctMzkyLVxcdHRyaXN0YXRlIFxcXCJVbml2ZXJzYWwgVFVOL1RBUCBkZXZpY2UgZHJpdmVyIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvS2NvbmZpZzozOTM6XFx0ZGVwZW5kcyBvbiBJTkVUXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0zOTQtXFx0c2VsZWN0IENSQzMyXFxuLS1cXG5kcml2ZXJzL25ldC9LY29uZmlnPTQ0Mz1jb25maWcgVklSVElPX05FVFxcbmRyaXZlcnMvbmV0L0tjb25maWctNDQ0LVxcdHRyaXN0YXRlIFxcXCJWaXJ0aW8gbmV0d29yayBkcml2ZXJcXFwiXFxuZHJpdmVycy9uZXQvS2NvbmZpZzo0NDU6XFx0ZGVwZW5kcyBvbiBWSVJUSU9cXG5kcml2ZXJzL25ldC9LY29uZmlnLTQ0Ni1cXHRzZWxlY3QgTkVUX0ZBSUxPVkVSXFxuLS1cXG5kcml2ZXJzL25ldC9LY29uZmlnPTQ2Mz1jb25maWcgTkVUS0lUXFxuZHJpdmVycy9uZXQvS2NvbmZpZy00NjQtXFx0Ym9vbCBcXFwiQlBGLXByb2dyYW1tYWJsZSBuZXR3b3JrIGRldmljZVxcXCJcXG5kcml2ZXJzL25ldC9LY29uZmlnOjQ2NTpcXHRkZXBlbmRzIG9uIEJQRl9TWVNDQUxMXFxuZHJpdmVycy9uZXQvS2NvbmZpZy00NjYtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvS2NvbmZpZz00NzI9Y29uZmlnIE5FVF9WUkZcXG5kcml2ZXJzL25ldC9LY29uZmlnLTQ3My1cXHR0cmlzdGF0ZSBcXFwiVmlydHVhbCBSb3V0aW5nIGFuZCBGb3J3YXJkaW5nIChMaXRlKVxcXCJcXG5kcml2ZXJzL25ldC9LY29uZmlnOjQ3NDpcXHRkZXBlbmRzIG9uIElQX01VTFRJUExFX1RBQkxFU1xcbmRyaXZlcnMvbmV0L0tjb25maWc6NDc1OlxcdGRlcGVuZHMgb24gTkVUX0wzX01BU1RFUl9ERVZcXG5kcml2ZXJzL25ldC9LY29uZmlnOjQ3NjpcXHRkZXBlbmRzIG9uIElQVjZfTVVMVElQTEVfVEFCTEVTIHx8IElQVjY9blxcbmRyaXZlcnMvbmV0L0tjb25maWctNDc3LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L0tjb25maWc9NDgxPWNvbmZpZyBWU09DS01PTlxcbmRyaXZlcnMvbmV0L0tjb25maWctNDgyLVxcdHRyaXN0YXRlIFxcXCJWaXJ0dWFsIHZzb2NrIG1vbml0b3JpbmcgZGV2aWNlXFxcIlxcbmRyaXZlcnMvbmV0L0tjb25maWc6NDgzOlxcdGRlcGVuZHMgb24gVkhPU1RfVlNPQ0tcXG5kcml2ZXJzL25ldC9LY29uZmlnLTQ4NC1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC9LY29uZmlnPTQ4OT1jb25maWcgTUhJX05FVFxcbmRyaXZlcnMvbmV0L0tjb25maWctNDkwLVxcdHRyaXN0YXRlIFxcXCJNSEkgbmV0d29yayBkcml2ZXJcXFwiXFxuZHJpdmVycy9uZXQvS2NvbmZpZzo0OTE6XFx0ZGVwZW5kcyBvbiBNSElfQlVTXFxuZHJpdmVycy9uZXQvS2NvbmZpZy00OTItXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvS2NvbmZpZz01NDQ9Y29uZmlnIFhFTl9ORVRERVZfRlJPTlRFTkRcXG5kcml2ZXJzL25ldC9LY29uZmlnLTU0NS1cXHR0cmlzdGF0ZSBcXFwiWGVuIG5ldHdvcmsgZGV2aWNlIGZyb250ZW5kIGRyaXZlclxcXCJcXG5kcml2ZXJzL25ldC9LY29uZmlnOjU0NjpcXHRkZXBlbmRzIG9uIFhFTlxcbmRyaXZlcnMvbmV0L0tjb25maWctNTQ3LVxcdHNlbGVjdCBYRU5fWEVOQlVTX0ZST05URU5EXFxuLS1cXG5kcml2ZXJzL25ldC9LY29uZmlnPTU2Mj1jb25maWcgWEVOX05FVERFVl9CQUNLRU5EXFxuZHJpdmVycy9uZXQvS2NvbmZpZy01NjMtXFx0dHJpc3RhdGUgXFxcIlhlbiBiYWNrZW5kIG5ldHdvcmsgZGV2aWNlXFxcIlxcbmRyaXZlcnMvbmV0L0tjb25maWc6NTY0OlxcdGRlcGVuZHMgb24gWEVOX0JBQ0tFTkRcXG5kcml2ZXJzL25ldC9LY29uZmlnLTU2NS1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC9LY29uZmlnPTU4ND1jb25maWcgVk1YTkVUM1xcbmRyaXZlcnMvbmV0L0tjb25maWctNTg1LVxcdHRyaXN0YXRlIFxcXCJWTXdhcmUgVk1YTkVUMyBldGhlcm5ldCBkcml2ZXJcXFwiXFxuZHJpdmVycy9uZXQvS2NvbmZpZzo1ODY6XFx0ZGVwZW5kcyBvbiBQQ0kgXFx1MDAyNlxcdTAwMjYgSU5FVFxcbmRyaXZlcnMvbmV0L0tjb25maWc6NTg3OlxcdGRlcGVuZHMgb24gUEFHRV9TSVpFX0xFU1NfVEhBTl82NEtCXFxuZHJpdmVycy9uZXQvS2NvbmZpZy01ODgtXFx0c2VsZWN0IFBBR0VfUE9PTFxcbi0tXFxuZHJpdmVycy9uZXQvS2NvbmZpZz01OTQ9Y29uZmlnIEZVSklUU1VfRVNcXG5kcml2ZXJzL25ldC9LY29uZmlnLTU5NS1cXHR0cmlzdGF0ZSBcXFwiRlVKSVRTVSBFeHRlbmRlZCBTb2NrZXQgTmV0d29yayBEZXZpY2UgZHJpdmVyXFxcIlxcbmRyaXZlcnMvbmV0L0tjb25maWc6NTk2OlxcdGRlcGVuZHMgb24gQUNQSVxcbmRyaXZlcnMvbmV0L0tjb25maWctNTk3LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L0tjb25maWc9NjA0PWNvbmZpZyBORVRERVZTSU1cXG5kcml2ZXJzL25ldC9LY29uZmlnLTYwNS1cXHR0cmlzdGF0ZSBcXFwiU2ltdWxhdGVkIG5ldHdvcmtpbmcgZGV2aWNlXFxcIlxcbmRyaXZlcnMvbmV0L0tjb25maWc6NjA2OlxcdGRlcGVuZHMgb24gREVCVUdfRlNcXG5kcml2ZXJzL25ldC9LY29uZmlnOjYwNzpcXHRkZXBlbmRzIG9uIElORVRcXG5kcml2ZXJzL25ldC9LY29uZmlnOjYwODpcXHRkZXBlbmRzIG9uIFBTQU1QTEUgfHwgUFNBTVBMRT1uXFxuZHJpdmVycy9uZXQvS2NvbmZpZzo2MDk6XFx0ZGVwZW5kcyBvbiBQVFBfMTU4OF9DTE9DS19NT0NLIHx8IFBUUF8xNTg4X0NMT0NLX01PQ0s9blxcbmRyaXZlcnMvbmV0L0tjb25maWctNjEwLVxcdHNlbGVjdCBORVRfREVWTElOS1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QwOTozMToyMS40ODkxMzU3NTJaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MzkzODM1ODA5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk1BQ1ZMQU4gRnV6emluZyBEZWNpc2lvbioqXG5cbk9rYXksIHNvIHRoZXJlIGFyZSBubyBkZXBlbmRlbmNpZXMgdG8gd29ycnkgYWJvdXQgZm9yIHRoaXMgTUFDVkxBTiBjaGFuZ2UuIFRoZSBxdWVzdGlvbiBub3cgaXMsIGlzIGl0IGV2ZW4gKndvcnRoKiBmdXp6aW5nPyBJIG5lZWQgdG8gY29uc2lkZXIgdGhhdCBjcml0ZXJpYTogaXQgc2F5cyB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAgaWYgdGhlIHBhdGNoICpvbmx5KiB0b3VjaGVzIHRlYXJkb3duIGNhbGxiYWNrcyBsaWtlIGAucmVtb3ZlYCwgYC5zaHV0ZG93bmAsIG9yIGBwY2lfdW5yZWdpc3Rlcl9kcml2ZXJgIHRoYXQgcnVuIG9uIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIHVuYmluZC4gVGhhdCdzIG5vdCB0aGUgY2FzZSBoZXJlLCB0aGFua2Z1bGx5LlxuXG5JIHRoaW5rIHRoaXMgb25lIGlzIHdvcnRoIGEgZnV6emluZyBhdHRlbXB0LiBFdmVuIHRob3VnaCB0aGUgbW9kdWxlIGluaXQgZXJyb3IgcGF0aHMgYXJlIG9ubHkgcmVsZXZhbnQgZHVyaW5nIG1vZHVsZSBsb2FkIGZhaWx1cmUsIGl0IHN0aWxsIHJlcHJlc2VudHMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgZXZlbiBpZiBhIG1pbm9yIG9uZS4gTXkgZ3V0IHNheXMgYFdvcnRoRnV6emluZz10cnVlYC4gSSBuZWVkIHRvIGJlIG1vcmUgc3BlY2lmaWMuIGBGb2N1c1N5bWJvbHM9W1wibWFjdmxhbl9pbml0X21vZHVsZVwiXWAgYW5kIGBFbmFibGVDb25maWdzPVtcIk1BQ1ZMQU5cIl1gLiBcblxuV2FpdCBhIHNlY29uZC4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGFtIG5vdCBtaXNzaW5nIGFueSBzdWJ0bGUgaW50ZXJhY3Rpb25zLiBJIHdpbGwgcmV2aWV3IGFuZCBjb25maXJtIHRoYXQgYG1hY3ZsYW5faW5pdF9tb2R1bGVgIGlzIHRoZSBvbmx5IGZ1bmN0aW9uIGJlaW5nIG1vZGlmaWVkLiBPa2F5LCBubywgbm90aGluZyBlbHNlIGhhcyBiZWVuIHRvdWNoZWQuXG5cblllcywgZ2l2ZW4gdGhpcywgSSB3aWxsIGp1c3QgcmV0dXJuIGBXb3J0aEZ1enppbmc9dHJ1ZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjc4ODQsIk91dHB1dFRva2VucyI6ODIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxODQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMDk6MzE6MjYuODgyOTczNTgxWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQ0NDQ5MjY4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNQUNWTEFOXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibWFjdmxhbl9pbml0X21vZHVsZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgZXJyb3IgaGFuZGxpbmcgdG8gdGhlIG1vZHVsZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiBvZiB0aGUgbWFjdmxhbiBkcml2ZXIuIFdoaWxlIGl0IG9ubHkgZXhlY3V0ZXMgZHVyaW5nIG1vZHVsZSBsb2FkIG9yIGJvb3QsIGl0IGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGtlcm5lbCBjb2RlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1BQ1ZMQU5cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJtYWN2bGFuX2luaXRfbW9kdWxlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBlcnJvciBoYW5kbGluZyB0byB0aGUgbW9kdWxlIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIG9mIHRoZSBtYWN2bGFuIGRyaXZlci4gV2hpbGUgaXQgb25seSBleGVjdXRlcyBkdXJpbmcgbW9kdWxlIGxvYWQgb3IgYm9vdCwgaXQgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUga2VybmVsIGNvZGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflow2qrhk[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-03 09:15:58 +0000 UTC FinishedAt: 2026-08-03 09:31: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": "69963a0678a347d57c4ac8b16939dba216eb95ce", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MACVLAN" ], "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": "69963a0678a347d57c4ac8b16939dba216eb95ce", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MACVLAN" ], "series_id": "0297fed0-e38f-47fc-a3c9-32712eb80256" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "macvlan_init_module" ], "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+CgkJCTx0ZD4yMDI2LzA4LzAzIDA5OjMwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01BQ1ZMQU4mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttYWN2bGFuX2luaXRfbW9kdWxlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgZXJyb3IgaGFuZGxpbmcgdG8gdGhlIG1vZHVsZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiBvZiB0aGUgbWFjdmxhbiBkcml2ZXIuIFdoaWxlIGl0IG9ubHkgZXhlY3V0ZXMgZHVyaW5nIG1vZHVsZSBsb2FkIG9yIGJvb3QsIGl0IGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGtlcm5lbCBjb2RlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDA5OjMwPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgMGIxZTk4NTg0MjcwMzk2YzY5YmRkNTU5YTg5MzIyNDZlZWI3NmE2MVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gQXVnIDMgMDk6MzA6NTcgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbWFjdmxhbi5jIGIvZHJpdmVycy9uZXQvbWFjdmxhbi5jXG5pbmRleCA5YTRiYzk5ZGJmNTNiLi40Mjk0YjQzMzgzOGFlIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvbWFjdmxhbi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9tYWN2bGFuLmNcbkBAIC0xOTA2LDcgJiM0MzsxOTA2LDkgQEAgc3RhdGljIGludCBfX2luaXQgbWFjdmxhbl9pbml0X21vZHVsZSh2b2lkKVxuIHtcbiBcdGludCBlcnI7XG4gXG4tXHRyZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2bWFjdmxhbl9ub3RpZmllcl9ibG9jayk7XG4mIzQzO1x0ZXJyID0gcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFx1MDAyNm1hY3ZsYW5fbm90aWZpZXJfYmxvY2spO1xuJiM0MztcdGlmIChlcnIpXG4mIzQzO1x0XHRyZXR1cm4gZXJyO1xuIFxuIFx0ZXJyID0gbWFjdmxhbl9saW5rX3JlZ2lzdGVyKFx1MDAyNm1hY3ZsYW5fbGlua19vcHMpO1xuIFx0aWYgKGVyciBcdTAwM2MgMClcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAwOTozMDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TUFDVkxBTiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O21hY3ZsYW5faW5pdF9tb2R1bGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBlcnJvciBoYW5kbGluZyB0byB0aGUgbW9kdWxlIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIG9mIHRoZSBtYWN2bGFuIGRyaXZlci4gV2hpbGUgaXQgb25seSBleGVjdXRlcyBkdXJpbmcgbW9kdWxlIGxvYWQgb3IgYm9vdCwgaXQgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUga2VybmVsIGNvZGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAwYjFlOTg1ODQyNzAzOTZjNjliZGQ1NTlhODkzMjI0NmVlYjc2YTYxCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIE1vbiBBdWcgMyAwOTozMDo1NyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L21hY3ZsYW4uYyBiL2RyaXZlcnMvbmV0L21hY3ZsYW4uYwppbmRleCA5YTRiYzk5ZGJmNTNiLi40Mjk0YjQzMzgzOGFlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9tYWN2bGFuLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvbWFjdmxhbi5jCkBAIC0xOTA2LDcgJiM0MzsxOTA2LDkgQEAgc3RhdGljIGludCBfX2luaXQgbWFjdmxhbl9pbml0X21vZHVsZSh2b2lkKQogewogCWludCBlcnI7CiAKLQlyZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoJmFtcDttYWN2bGFuX25vdGlmaWVyX2Jsb2NrKTsKJiM0MzsJZXJyID0gcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKCZhbXA7bWFjdmxhbl9ub3RpZmllcl9ibG9jayk7CiYjNDM7CWlmIChlcnIpCiYjNDM7CQlyZXR1cm4gZXJyOwogCiAJZXJyID0gbWFjdmxhbl9saW5rX3JlZ2lzdGVyKCZhbXA7bWFjdmxhbl9saW5rX29wcyk7CiAJaWYgKGVyciAmbHQ7IDApCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDA5OjMwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIwNTcKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiAxMDE5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFBhdGNoOiBtYWN2bGFuLmMgTW9kdWxlIEluaXRpYWxpemF0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgbW9kaWZpZXMgYGRyaXZlcnMvbmV0L21hY3ZsYW4uY2AuIFRoZSBjb3JlIGNoYW5nZSBpcyBpbiBgbWFjdmxhbl9pbml0X21vZHVsZWAsIHdoZXJlIHRoZXkmIzM5O3JlIG5vdyBjaGVja2luZyB0aGUgcmV0dXJuIHZhbHVlIG9mIGByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXJgLiAgVGhpcyBpcyBhIG1vZHVsZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiwgd2hpY2ggaW1tZWRpYXRlbHkgbWFrZXMgbWUgdGhpbmsgYWJvdXQgZnV6emluZyBwb3RlbnRpYWwuIEl0JiMzOTtzIGFuIGVycm9yIGhhbmRsaW5nIGZpeCwgc3BlY2lmaWNhbGx5IGZvciBpbml0aWFsaXphdGlvbi4gIE15IGluaXRpYWwgcmVhY3Rpb24gaXMgdGhhdCBmdXp6aW5nIG1vZHVsZSBpbml0aWFsaXphdGlvbiByb3V0aW5lcyBpc24mIzM5O3QgdXN1YWxseSB0aGUgbW9zdCBwcm9kdWN0aXZlIGF2ZW51ZSBiZWNhdXNlIHRoZXkgcnVuIG9uY2UsIGVpdGhlciBhdCBib290IG9yIG1vZHVsZSBsb2FkLiAgRnVydGhlcm1vcmUsIHRoZSBgcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyYCBjYWxsIGlzIHVubGlrZWx5IHRvIGZhaWwgdW5sZXNzIHRoZXJlJiMzOTtzIGEgbWVtb3J5IGFsbG9jYXRpb24gaXNzdWUg4oCTIGEgdmVyeSBkaWZmaWN1bHQgdGhpbmcgdG8gdGFyZ2V0IHNwZWNpZmljYWxseSBmb3IgKnRoaXMqIG1vZHVsZS4KCkFscmlnaHQsIHNvIHRoZSBwYXRjaCAqb25seSogbW9kaWZpZXMgdGhlIG1vZHVsZSBpbml0IGZ1bmN0aW9uLCBgbWFjdmxhbl9pbml0X21vZHVsZWAuIExldCBtZSBkb3VibGUtY2hlY2suLi4geWVwLCB0aGF0JiMzOTtzIGl0LiBObyBvdGhlciBjb2RlIGhhcyBiZWVuIHRvdWNoZWQuICBOb3csIHRoZSBxdWVzdGlvbiBpczogaXMgdGhpcyB3b3J0aCBmdXp6aW5nPyAgV2hpbGUgdGhlc2UgaW5pdCBlcnJvciBwYXRocyAqYXJlKiBmdW5jdGlvbmFsbHkgaW1wb3J0YW50LCB0aGVpciBzaW5nbGUtZXhlY3V0aW9uIG5hdHVyZSBtYWtlcyB0aGVtIGxlc3MgYXBwZWFsaW5nIGZvciBmdXp6aW5nLiBIb3dldmVyLCB0aGVyZSAqaXMqIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaGVyZS4KCkkgbmVlZCB0byBkZWNpZGUgd2hldGhlciB0byBtYXJrIHRoaXMgYXMgV29ydGhGdXp6aW5nPWZhbHNlIGJlY2F1c2UgaXQmIzM5O3MganVzdCBhbiBpbml0IGZ1bmN0aW9uLCBvciBnbyB3aXRoIFdvcnRoRnV6emluZz10cnVlLiBJIGNoZWNrZWQgdGhlIGd1aWRlbGluZXMsIGFuZCB3aGlsZSB0aGV5IGRvbiYjMzk7dCBleHBsaWNpdGx5IHNheSAmIzM0O21vZHVsZSBpbml0IGVycm9yIHBhdGhzID0gZmFsc2UmIzM0OywgdGhlIGNoYW5nZSBpcyBtaW5vci4gQnV0IGl0IGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UuCgpUaGUgY2F0Y2ggaXMsIGBtYWN2bGFuX2luaXRfbW9kdWxlYCBpcyBtYXJrZWQgYF9faW5pdGAuICBJZiB0aGUgbW9kdWxlIGlzIGJ1aWx0LWluLCB0aGUgZnVuY3Rpb24gZ2V0cyBmcmVlZCBhZnRlciB0aGUga2VybmVsIGZpbmlzaGVzIGJvb3RpbmcuIFN5emthbGxlciBkb2VzbiYjMzk7dCBmb2N1cyBvbiBib290IGNvZGUgaW4gdGhlIHN0YW5kYXJkIGNvbmZpZ3VyYXRpb24uIElmIGl0JiMzOTtzIGEgbW9kdWxlLCB0aGVuIGl0IHJ1bnMgb24gbW9kdWxlIGxvYWQuIFN5emthbGxlciAqY2FuKiBsb2FkIG1vZHVsZXMsIGJ1dCB0eXBpY2FsbHkgZG9lc24mIzM5O3QgZGlyZWN0bHkgdGFyZ2V0IG1vZHVsZSBsb2FkaW5nLgoKU28sIEkgY291bGQgc2V0IFdvcnRoRnV6emluZz10cnVlIGFuZCBGb2N1c1N5bWJvbHM9WyYjMzQ7bWFjdmxhbl9pbml0X21vZHVsZSYjMzQ7XS4uLiBidXQgdGhlIHN5bWJvbCBuYW1lIGlzIGNvcnJlY3QuIEJ1dCBpdCBpcyBleGVjdXRlZCBvbmx5IG9uY2UuIExldCBtZSBjaGVjayB0aGUgY29uZmlnOiBgQ09ORklHX01BQ1ZMQU5gIGNhbiBiZSBgbWAgb3IgYHlgLiBJZiBpdCBpcyBidWlsdC1pbiAoYHlgKSwgdGhlIGZ1bmN0aW9uIHdpbGwgYmUgZnJlZWQgYW5kIG5vdCBhdmFpbGFibGUgYWZ0ZXIgdGhlIGJvb3QuIElmIGl0JiMzOTtzIGEgbW9kdWxlIChgbWApLCB0aGVuIHN5emthbGxlciBjYW4gbG9hZCBpdC4KCkFscmlnaHQsIEkmIzM5O20gZ29pbmcgdG8gc2V0IGBXb3J0aEZ1enppbmc9dHJ1ZSwgRm9jdXNTeW1ib2xzPVsmIzM0O21hY3ZsYW5faW5pdF9tb2R1bGUmIzM0O10sIEVuYWJsZUNvbmZpZ3M9WyYjMzQ7TUFDVkxBTiYjMzQ7XWAuIFRoZSBrZXkgaXMgdG8gY2hlY2sgaWYgYG1hY3ZsYW5faW5pdF9tb2R1bGVgIGlzIHRoZSBlbnRyeXBvaW50IHRvIHRoZSBtb2R1bGUsIGV2ZW4gaWYgaXQgaXMgYSBgc3RhdGljYCBvbmUuIFllcywgaXQmIzM5O3Mgbm90IGlubGluZWQsIGl0JiMzOTtzIHBhc3NlZCB0byBgbW9kdWxlX2luaXQoKWAuIFRpbWUgdG8gZ28gd2l0aCB0aGlzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDA5OjMxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21vZHVsZV9pbml0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvbWFjdmxhbi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L21hY3ZsYW4uYz0xOTIyPXN0YXRpYyB2b2lkIF9fZXhpdCBtYWN2bGFuX2NsZWFudXBfbW9kdWxlKHZvaWQpXG4tLVxuZHJpdmVycy9uZXQvbWFjdmxhbi5jLTE5MjctXG5kcml2ZXJzL25ldC9tYWN2bGFuLmM6MTkyODptb2R1bGVfaW5pdChtYWN2bGFuX2luaXRfbW9kdWxlKTtcbmRyaXZlcnMvbmV0L21hY3ZsYW4uYy0xOTI5LW1vZHVsZV9leGl0KG1hY3ZsYW5fY2xlYW51cF9tb2R1bGUpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDA5OjMxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4MzYKCQkJCQkJCW91dHB1dDogMjgKCQkJCQkJCXRob3VnaHRzOiAyODMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBEZWNpc2lvbiBmb3IgbWFjdmxhbl9pbml0X21vZHVsZSoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYG1hY3ZsYW5faW5pdF9tb2R1bGVgLiBUaGF0JiMzOTtzIHRoZSBtb2R1bGUgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24uIEl0JiMzOTtzIG9ubHkgZXhlY3V0ZWQgb25jZSwgd2hpY2ggbWFrZXMgbWUgaW5pdGlhbGx5IHF1ZXN0aW9uIHdoZXRoZXIgaXQmIzM5O3MgZXZlbiB3b3J0aCBmdXp6aW5nLiBUaGUgZ3VpZGFuY2Ugc2F5cyB0byBza2lwIGlmIGl0JiMzOTtzIGp1c3QgdGVhcmRvd24gbGlrZSBgLnJlbW92ZWAsIGAuc2h1dGRvd25gLCBvciBgcGNpX3VucmVnaXN0ZXJfZHJpdmVyYCBjYWxsYmFja3MgdGhhdCBmaXJlIGR1cmluZyBob3QtdW5wbHVnIG9yIHVuYmluZCBvcGVyYXRpb25zLiBNb2R1bGUgaW5pdCBpc24mIzM5O3QgKmV4YWN0bHkqIHRoZSBzYW1lLCBzaW5jZSBpdCYjMzk7cyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBidXQgdGhlIG9uZS10aW1lIGV4ZWN1dGlvbiBkb2VzIGdpdmUgbWUgcGF1c2UuCgpIb3dldmVyLCB0aGlzICppcyogYSBmdW5jdGlvbmFsIGNoYW5nZSwgYW5kIHRoZSBtb2RpZmllZCBmdW5jdGlvbiBpcyBgbWFjdmxhbl9pbml0X21vZHVsZWAuIExldCYjMzk7cyBhc3N1bWUgaXQmIzM5O3Mgd29ydGggZnV6emluZyBhbmQgc2V0IGBXb3J0aEZ1enppbmc9dHJ1ZWAuCgpOb3csIGZvciB0aGUgYEZvY3VzU3ltYm9sc2AuIGBtYWN2bGFuX2luaXRfbW9kdWxlYCBzZWVtcyBsaWtlIHRoZSBvYnZpb3VzIGNob2ljZSBzaW5jZSBpdCYjMzk7cyB0aGUgb25seSBmdW5jdGlvbiBiZWluZyB0b3VjaGVkLiBCdXQgd2FpdCwgaXQmIzM5O3MgZGVjbGFyZWQgYHN0YXRpY2AuIFRoYXQgKmNvdWxkKiBiZSBhIHByb2JsZW0uIFN0YXRpYyBmdW5jdGlvbnMgKm1pZ2h0KiBiZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciwgb3IgdGhleSBtaWdodCBub3QgaGF2ZSBhIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzLiBCdXQgYG1hY3ZsYW5faW5pdF9tb2R1bGVgIGlzIGJlaW5nIHBhc3NlZCB0byBgbW9kdWxlX2luaXRgLCBzbyBpdHMgYWRkcmVzcyBpcyBkZWZpbml0ZWx5IGJlaW5nIHRha2VuIGFuZCBpbmxpbmluZyBpcyBub3QgYW4gaXNzdWUuIEl0JiMzOTtzIHRoZSBvbmx5IGZ1bmN0aW9uLCBzbyBsZXQmIzM5O3Mgc3RpY2sgd2l0aCBpdCwgYEZvY3VzU3ltYm9scz1bJiMzNDttYWN2bGFuX2luaXRfbW9kdWxlJiMzNDtdYC4KCkkmIzM5O2xsIGFsc28gZW5hYmxlIHRoZSBgTUFDVkxBTmAgY29uZmlnIHdpdGggYEVuYWJsZUNvbmZpZ3M9WyYjMzQ7TUFDVkxBTiYjMzQ7XWAuIEkmIzM5O2xsIGp1c3QgZG91YmxlLWNoZWNrIHRvIGJlIHN1cmUgdGhhdCYjMzk7cyB0aGUgY29ycmVjdCBvbmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMDk6MzE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1BQ1ZMQU4mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvS2NvbmZpZz0xNjM9c291cmNlIFwmIzM0O2RyaXZlcnMvbmV0L3RlYW0vS2NvbmZpZ1wmIzM0O1xuZHJpdmVycy9uZXQvS2NvbmZpZy0xNjQtXG5kcml2ZXJzL25ldC9LY29uZmlnOjE2NTpjb25maWcgTUFDVkxBTlxuZHJpdmVycy9uZXQvS2NvbmZpZy0xNjYtXHR0cmlzdGF0ZSBcJiMzNDtNQUMtVkxBTiBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMDk6MzE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDU4NgoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDg3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk1BQ1ZMQU46IEEgRm9jdXNlZCBQYXRjaCBBc3Nlc3NtZW50KioKCk9rYXksIHllcywgZGVmaW5pdGVseSwgdGhpcyBwYXRjaCBmb2N1c2VzIG9uIGBNQUNWTEFOYC4gSSYjMzk7bSBnb2luZyB0byBzZXQgYFdvcnRoRnV6emluZ2AgdG8gYHRydWVgLiBUaGlzIGlzIGJlY2F1c2UgdGhlIHBhdGNoIG1ha2VzIGEgZnVuY3Rpb25hbCBjaGFuZ2Ugd2l0aGluIHJlYWNoYWJsZSBrZXJuZWwgY29kZSwgc3BlY2lmaWNhbGx5IGVycm9yIGhhbmRsaW5nIGluIHRoZSBtb2R1bGUgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24gb2YgdGhlIG1hY3ZsYW4gZHJpdmVyLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgZG9uJiMzOTt0IG1pc3MgYW55dGhpbmcuCgpTbywgSSB3aWxsIGZvY3VzIG9uIHRoZSBgbWFjdmxhbl9pbml0X21vZHVsZWAgZnVuY3Rpb24gYW5kIHRoZSByZWxhdGVkIGNvZGUsIHRoYXQmIzM5O3MgZGVmaW5pdGVseSBhIGtleSBhcmVhIHRvIHRhcmdldCB3aXRoIGZ1enplci4gYEZvY3VzU3ltYm9sc2Agd2lsbCBiZSBgWyYjMzQ7bWFjdmxhbl9pbml0X21vZHVsZSYjMzQ7XWAgYW5kIGVuYWJsZSB0aGUgYE1BQ1ZMQU5gIGNvbmZpZ3VyYXRpb24uCgpOb3csIGxldCBtZSBqdXN0IGRvdWJsZS1jaGVjayBpZiB0aGVyZSBhcmUgYW55IG90aGVyIGNvbmZpZ3MgdGhhdCBtaWdodCBiZSByZWxldmFudC4uLiBJIHdhbnQgdG8gYmUgdGhvcm91Z2guCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMDk6MzE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvS2NvbmZpZz02PW1lbnVjb25maWcgTkVUREVWSUNFU1xuZHJpdmVycy9uZXQvS2NvbmZpZy03LVx0ZGVmYXVsdCB5IGlmIFVNTFxuZHJpdmVycy9uZXQvS2NvbmZpZzo4Olx0ZGVwZW5kcyBvbiBORVRcbmRyaXZlcnMvbmV0L0tjb25maWctOS1cdGJvb2wgXCYjMzQ7TmV0d29yayBkZXZpY2Ugc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L0tjb25maWc9NDE9Y29uZmlnIEJPTkRJTkdcbmRyaXZlcnMvbmV0L0tjb25maWctNDItXHR0cmlzdGF0ZSBcJiMzNDtCb25kaW5nIGRyaXZlciBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC9LY29uZmlnOjQzOlx0ZGVwZW5kcyBvbiBJTkVUXG5kcml2ZXJzL25ldC9LY29uZmlnOjQ0Olx0ZGVwZW5kcyBvbiBUTFMgfHwgVExTX0RFVklDRT1uXG5kcml2ZXJzL25ldC9LY29uZmlnLTQ1LVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWc9NzQ9Y29uZmlnIFdJUkVHVUFSRFxuZHJpdmVycy9uZXQvS2NvbmZpZy03NS1cdHRyaXN0YXRlIFwmIzM0O1dpcmVHdWFyZCBzZWN1cmUgbmV0d29yayB0dW5uZWxcJiMzNDtcbmRyaXZlcnMvbmV0L0tjb25maWc6NzY6XHRkZXBlbmRzIG9uIE5FVCBcdTAwMjZcdTAwMjYgSU5FVFxuZHJpdmVycy9uZXQvS2NvbmZpZy03Ny1cdHNlbGVjdCBORVRfVURQX1RVTk5FTFxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWc9OTI9Y29uZmlnIFdJUkVHVUFSRF9ERUJVR1xuZHJpdmVycy9uZXQvS2NvbmZpZy05My1cdGJvb2wgXCYjMzQ7RGVidWdnaW5nIGNoZWNrcyBhbmQgdmVyYm9zZSBtZXNzYWdlc1wmIzM0O1xuZHJpdmVycy9uZXQvS2NvbmZpZzo5NDpcdGRlcGVuZHMgb24gV0lSRUdVQVJEXG5kcml2ZXJzL25ldC9LY29uZmlnLTk1LVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWc9MTAzPWNvbmZpZyBPVlBOXG5kcml2ZXJzL25ldC9LY29uZmlnLTEwNC1cdHRyaXN0YXRlIFwmIzM0O09wZW5WUE4gZGF0YSBjaGFubmVsIG9mZmxvYWRcJiMzNDtcbmRyaXZlcnMvbmV0L0tjb25maWc6MTA1Olx0ZGVwZW5kcyBvbiBORVQgXHUwMDI2XHUwMDI2IElORVRcbmRyaXZlcnMvbmV0L0tjb25maWctMTA2LVx0c2VsZWN0IERTVF9DQUNIRVxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWc9MTM2PWNvbmZpZyBORVRfRkNcbmRyaXZlcnMvbmV0L0tjb25maWctMTM3LVx0Ym9vbCBcJiMzNDtGaWJyZSBDaGFubmVsIGRyaXZlciBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC9LY29uZmlnOjEzODpcdGRlcGVuZHMgb24gU0NTSSBcdTAwMjZcdTAwMjYgUENJXG5kcml2ZXJzL25ldC9LY29uZmlnLTEzOS1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC9LY29uZmlnPTE0OT1jb25maWcgSUZCXG5kcml2ZXJzL25ldC9LY29uZmlnLTE1MC1cdHRyaXN0YXRlIFwmIzM0O0ludGVybWVkaWF0ZSBGdW5jdGlvbmFsIEJsb2NrIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L0tjb25maWc6MTUxOlx0ZGVwZW5kcyBvbiBORVRfQUNUX01JUlJFRCB8fCBORlRfRldEX05FVERFVlxuZHJpdmVycy9uZXQvS2NvbmZpZy0xNTItXHRzZWxlY3QgTkVUX1JFRElSRUNUXG4tLVxuZHJpdmVycy9uZXQvS2NvbmZpZz0xNzk9Y29uZmlnIE1BQ1ZUQVBcbmRyaXZlcnMvbmV0L0tjb25maWctMTgwLVx0dHJpc3RhdGUgXCYjMzQ7TUFDLVZMQU4gYmFzZWQgdGFwIGRyaXZlclwmIzM0O1xuZHJpdmVycy9uZXQvS2NvbmZpZzoxODE6XHRkZXBlbmRzIG9uIE1BQ1ZMQU5cbmRyaXZlcnMvbmV0L0tjb25maWc6MTgyOlx0ZGVwZW5kcyBvbiBJTkVUXG5kcml2ZXJzL25ldC9LY29uZmlnLTE4My1cdHNlbGVjdCBUQVBcbi0tXG5kcml2ZXJzL25ldC9LY29uZmlnPTE5Mz1jb25maWcgSVBWTEFOX0wzU1xuZHJpdmVycy9uZXQvS2NvbmZpZzoxOTQ6XHRkZXBlbmRzIG9uIE5FVEZJTFRFUlxuZHJpdmVycy9uZXQvS2NvbmZpZzoxOTU6XHRkZXBlbmRzIG9uIElQVkxBTlxuZHJpdmVycy9uZXQvS2NvbmZpZy0xOTYtXHRkZWZfYm9vbCB5XG4tLVxuZHJpdmVycy9uZXQvS2NvbmZpZz0xOTk9Y29uZmlnIElQVkxBTlxuZHJpdmVycy9uZXQvS2NvbmZpZy0yMDAtXHR0cmlzdGF0ZSBcJiMzNDtJUC1WTEFOIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L0tjb25maWc6MjAxOlx0ZGVwZW5kcyBvbiBJTkVUXG5kcml2ZXJzL25ldC9LY29uZmlnLTIwMi1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC9LY29uZmlnPTIxNj1jb25maWcgSVBWVEFQXG5kcml2ZXJzL25ldC9LY29uZmlnLTIxNy1cdHRyaXN0YXRlIFwmIzM0O0lQLVZMQU4gYmFzZWQgdGFwIGRyaXZlclwmIzM0O1xuZHJpdmVycy9uZXQvS2NvbmZpZzoyMTg6XHRkZXBlbmRzIG9uIElQVkxBTlxuZHJpdmVycy9uZXQvS2NvbmZpZzoyMTk6XHRkZXBlbmRzIG9uIElORVRcbmRyaXZlcnMvbmV0L0tjb25maWctMjIwLVx0c2VsZWN0IFRBUFxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWc9MjMwPWNvbmZpZyBWWExBTlxuZHJpdmVycy9uZXQvS2NvbmZpZy0yMzEtXHR0cmlzdGF0ZSBcJiMzNDtWaXJ0dWFsIGVYdGVuc2libGUgTG9jYWwgQXJlYSBOZXR3b3JrIChWWExBTilcJiMzNDtcbmRyaXZlcnMvbmV0L0tjb25maWc6MjMyOlx0ZGVwZW5kcyBvbiBJTkVUXG5kcml2ZXJzL25ldC9LY29uZmlnLTIzMy1cdHNlbGVjdCBORVRfVURQX1RVTk5FTFxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWc9MjQ1PWNvbmZpZyBHRU5FVkVcbmRyaXZlcnMvbmV0L0tjb25maWctMjQ2LVx0dHJpc3RhdGUgXCYjMzQ7R2VuZXJpYyBOZXR3b3JrIFZpcnR1YWxpemF0aW9uIEVuY2Fwc3VsYXRpb25cJiMzNDtcbmRyaXZlcnMvbmV0L0tjb25maWc6MjQ3Olx0ZGVwZW5kcyBvbiBJTkVUXG5kcml2ZXJzL25ldC9LY29uZmlnLTI0OC1cdHNlbGVjdCBORVRfVURQX1RVTk5FTFxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWc9MjYwPWNvbmZpZyBCQVJFVURQXG5kcml2ZXJzL25ldC9LY29uZmlnLTI2MS1cdHRyaXN0YXRlIFwmIzM0O0JhcmUgVURQIEVuY2Fwc3VsYXRpb25cJiMzNDtcbmRyaXZlcnMvbmV0L0tjb25maWc6MjYyOlx0ZGVwZW5kcyBvbiBJTkVUXG5kcml2ZXJzL25ldC9LY29uZmlnLTI2My1cdHNlbGVjdCBORVRfVURQX1RVTk5FTFxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWc9MjcyPWNvbmZpZyBHVFBcbmRyaXZlcnMvbmV0L0tjb25maWctMjczLVx0dHJpc3RhdGUgXCYjMzQ7R1BSUyBUdW5uZWxpbmcgUHJvdG9jb2wgZGF0YXBhdGggKEdUUC1VKVwmIzM0O1xuZHJpdmVycy9uZXQvS2NvbmZpZzoyNzQ6XHRkZXBlbmRzIG9uIElORVRcbmRyaXZlcnMvbmV0L0tjb25maWctMjc1LVx0c2VsZWN0IE5FVF9VRFBfVFVOTkVMXG4tLVxuZHJpdmVycy9uZXQvS2NvbmZpZz0yODk9Y29uZmlnIFBGQ1BcbmRyaXZlcnMvbmV0L0tjb25maWctMjkwLVx0dHJpc3RhdGUgXCYjMzQ7UGFja2V0IEZvcndhcmRpbmcgQ29udHJvbCBQcm90b2NvbCAoUEZDUClcJiMzNDtcbmRyaXZlcnMvbmV0L0tjb25maWc6MjkxOlx0ZGVwZW5kcyBvbiBJTkVUXG5kcml2ZXJzL25ldC9LY29uZmlnLTI5Mi1cdHNlbGVjdCBORVRfVURQX1RVTk5FTFxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWc9MzAyPWNvbmZpZyBBTVRcbmRyaXZlcnMvbmV0L0tjb25maWctMzAzLVx0dHJpc3RhdGUgXCYjMzQ7QXV0b21hdGljIE11bHRpY2FzdCBUdW5uZWxpbmcgKEFNVClcJiMzNDtcbmRyaXZlcnMvbmV0L0tjb25maWc6MzA0Olx0ZGVwZW5kcyBvbiBJTkVUIFx1MDAyNlx1MDAyNiBJUF9NVUxUSUNBU1RcbmRyaXZlcnMvbmV0L0tjb25maWctMzA1LVx0c2VsZWN0IE5FVF9VRFBfVFVOTkVMXG4tLVxuZHJpdmVycy9uZXQvS2NvbmZpZz0zMjc9Y29uZmlnIE5FVENPTlNPTEVcbmRyaXZlcnMvbmV0L0tjb25maWctMzI4LVx0dHJpc3RhdGUgXCYjMzQ7TmV0d29yayBjb25zb2xlIGxvZ2dpbmcgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvS2NvbmZpZzozMjk6XHRkZXBlbmRzIG9uIFBSSU5US1xuZHJpdmVycy9uZXQvS2NvbmZpZy0zMzAtXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvS2NvbmZpZz0zMzQ9Y29uZmlnIE5FVENPTlNPTEVfRFlOQU1JQ1xuZHJpdmVycy9uZXQvS2NvbmZpZy0zMzUtXHRib29sIFwmIzM0O0R5bmFtaWMgcmVjb25maWd1cmF0aW9uIG9mIGxvZ2dpbmcgdGFyZ2V0c1wmIzM0O1xuZHJpdmVycy9uZXQvS2NvbmZpZzozMzY6XHRkZXBlbmRzIG9uIE5FVENPTlNPTEUgXHUwMDI2XHUwMDI2IFNZU0ZTIFx1MDAyNlx1MDAyNiBDT05GSUdGU19GUyBcdTAwMjZcdTAwMjYgXFxcbmRyaXZlcnMvbmV0L0tjb25maWctMzM3LVx0XHRcdCEoTkVUQ09OU09MRT15IFx1MDAyNlx1MDAyNiBDT05GSUdGU19GUz1tKVxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWc9MzQ1PWNvbmZpZyBORVRDT05TT0xFX0VYVEVOREVEX0xPR1xuZHJpdmVycy9uZXQvS2NvbmZpZy0zNDYtXHRib29sIFwmIzM0O1NldCBrZXJuZWwgZXh0ZW5kZWQgbWVzc2FnZSBieSBkZWZhdWx0XCYjMzQ7XG5kcml2ZXJzL25ldC9LY29uZmlnOjM0NzpcdGRlcGVuZHMgb24gTkVUQ09OU09MRVxuZHJpdmVycy9uZXQvS2NvbmZpZy0zNDgtXHRkZWZhdWx0IG5cbi0tXG5kcml2ZXJzL25ldC9LY29uZmlnPTM1NT1jb25maWcgTkVUQ09OU09MRV9QUkVQRU5EX1JFTEVBU0VcbmRyaXZlcnMvbmV0L0tjb25maWctMzU2LVx0Ym9vbCBcJiMzNDtQcmVwZW5kIGtlcm5lbCByZWxlYXNlIHZlcnNpb24gaW4gdGhlIG1lc3NhZ2UgYnkgZGVmYXVsdFwmIzM0O1xuZHJpdmVycy9uZXQvS2NvbmZpZzozNTc6XHRkZXBlbmRzIG9uIE5FVENPTlNPTEVfRVhURU5ERURfTE9HXG5kcml2ZXJzL25ldC9LY29uZmlnLTM1OC1cdGRlZmF1bHQgblxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWc9MzczPWNvbmZpZyBOVEJfTkVUREVWXG5kcml2ZXJzL25ldC9LY29uZmlnLTM3NC1cdHRyaXN0YXRlIFwmIzM0O1ZpcnR1YWwgRXRoZXJuZXQgb3ZlciBOVEIgVHJhbnNwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC9LY29uZmlnOjM3NTpcdGRlcGVuZHMgb24gTlRCX1RSQU5TUE9SVFxuZHJpdmVycy9uZXQvS2NvbmZpZy0zNzYtXG5kcml2ZXJzL25ldC9LY29uZmlnPTM3Nz1jb25maWcgUklPTkVUXG5kcml2ZXJzL25ldC9LY29uZmlnLTM3OC1cdHRyaXN0YXRlIFwmIzM0O1JhcGlkSU8gRXRoZXJuZXQgb3ZlciBtZXNzYWdpbmcgZHJpdmVyIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L0tjb25maWc6Mzc5Olx0ZGVwZW5kcyBvbiBSQVBJRElPXG5kcml2ZXJzL25ldC9LY29uZmlnLTM4MC1cbmRyaXZlcnMvbmV0L0tjb25maWc9MzgxPWNvbmZpZyBSSU9ORVRfVFhfU0laRVxuZHJpdmVycy9uZXQvS2NvbmZpZy0zODItXHRpbnQgXCYjMzQ7TnVtYmVyIG9mIG91dGJvdW5kIHF1ZXVlIGVudHJpZXNcJiMzNDtcbmRyaXZlcnMvbmV0L0tjb25maWc6MzgzOlx0ZGVwZW5kcyBvbiBSSU9ORVRcbmRyaXZlcnMvbmV0L0tjb25maWctMzg0LVx0ZGVmYXVsdCBcJiMzNDsxMjhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9LY29uZmlnPTM4Nj1jb25maWcgUklPTkVUX1JYX1NJWkVcbmRyaXZlcnMvbmV0L0tjb25maWctMzg3LVx0aW50IFwmIzM0O051bWJlciBvZiBpbmJvdW5kIHF1ZXVlIGVudHJpZXNcJiMzNDtcbmRyaXZlcnMvbmV0L0tjb25maWc6Mzg4Olx0ZGVwZW5kcyBvbiBSSU9ORVRcbmRyaXZlcnMvbmV0L0tjb25maWctMzg5LVx0ZGVmYXVsdCBcJiMzNDsxMjhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9LY29uZmlnPTM5MT1jb25maWcgVFVOXG5kcml2ZXJzL25ldC9LY29uZmlnLTM5Mi1cdHRyaXN0YXRlIFwmIzM0O1VuaXZlcnNhbCBUVU4vVEFQIGRldmljZSBkcml2ZXIgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvS2NvbmZpZzozOTM6XHRkZXBlbmRzIG9uIElORVRcbmRyaXZlcnMvbmV0L0tjb25maWctMzk0LVx0c2VsZWN0IENSQzMyXG4tLVxuZHJpdmVycy9uZXQvS2NvbmZpZz00NDM9Y29uZmlnIFZJUlRJT19ORVRcbmRyaXZlcnMvbmV0L0tjb25maWctNDQ0LVx0dHJpc3RhdGUgXCYjMzQ7VmlydGlvIG5ldHdvcmsgZHJpdmVyXCYjMzQ7XG5kcml2ZXJzL25ldC9LY29uZmlnOjQ0NTpcdGRlcGVuZHMgb24gVklSVElPXG5kcml2ZXJzL25ldC9LY29uZmlnLTQ0Ni1cdHNlbGVjdCBORVRfRkFJTE9WRVJcbi0tXG5kcml2ZXJzL25ldC9LY29uZmlnPTQ2Mz1jb25maWcgTkVUS0lUXG5kcml2ZXJzL25ldC9LY29uZmlnLTQ2NC1cdGJvb2wgXCYjMzQ7QlBGLXByb2dyYW1tYWJsZSBuZXR3b3JrIGRldmljZVwmIzM0O1xuZHJpdmVycy9uZXQvS2NvbmZpZzo0NjU6XHRkZXBlbmRzIG9uIEJQRl9TWVNDQUxMXG5kcml2ZXJzL25ldC9LY29uZmlnLTQ2Ni1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC9LY29uZmlnPTQ3Mj1jb25maWcgTkVUX1ZSRlxuZHJpdmVycy9uZXQvS2NvbmZpZy00NzMtXHR0cmlzdGF0ZSBcJiMzNDtWaXJ0dWFsIFJvdXRpbmcgYW5kIEZvcndhcmRpbmcgKExpdGUpXCYjMzQ7XG5kcml2ZXJzL25ldC9LY29uZmlnOjQ3NDpcdGRlcGVuZHMgb24gSVBfTVVMVElQTEVfVEFCTEVTXG5kcml2ZXJzL25ldC9LY29uZmlnOjQ3NTpcdGRlcGVuZHMgb24gTkVUX0wzX01BU1RFUl9ERVZcbmRyaXZlcnMvbmV0L0tjb25maWc6NDc2Olx0ZGVwZW5kcyBvbiBJUFY2X01VTFRJUExFX1RBQkxFUyB8fCBJUFY2PW5cbmRyaXZlcnMvbmV0L0tjb25maWctNDc3LVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWc9NDgxPWNvbmZpZyBWU09DS01PTlxuZHJpdmVycy9uZXQvS2NvbmZpZy00ODItXHR0cmlzdGF0ZSBcJiMzNDtWaXJ0dWFsIHZzb2NrIG1vbml0b3JpbmcgZGV2aWNlXCYjMzQ7XG5kcml2ZXJzL25ldC9LY29uZmlnOjQ4MzpcdGRlcGVuZHMgb24gVkhPU1RfVlNPQ0tcbmRyaXZlcnMvbmV0L0tjb25maWctNDg0LVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWc9NDg5PWNvbmZpZyBNSElfTkVUXG5kcml2ZXJzL25ldC9LY29uZmlnLTQ5MC1cdHRyaXN0YXRlIFwmIzM0O01ISSBuZXR3b3JrIGRyaXZlclwmIzM0O1xuZHJpdmVycy9uZXQvS2NvbmZpZzo0OTE6XHRkZXBlbmRzIG9uIE1ISV9CVVNcbmRyaXZlcnMvbmV0L0tjb25maWctNDkyLVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWc9NTQ0PWNvbmZpZyBYRU5fTkVUREVWX0ZST05URU5EXG5kcml2ZXJzL25ldC9LY29uZmlnLTU0NS1cdHRyaXN0YXRlIFwmIzM0O1hlbiBuZXR3b3JrIGRldmljZSBmcm9udGVuZCBkcml2ZXJcJiMzNDtcbmRyaXZlcnMvbmV0L0tjb25maWc6NTQ2Olx0ZGVwZW5kcyBvbiBYRU5cbmRyaXZlcnMvbmV0L0tjb25maWctNTQ3LVx0c2VsZWN0IFhFTl9YRU5CVVNfRlJPTlRFTkRcbi0tXG5kcml2ZXJzL25ldC9LY29uZmlnPTU2Mj1jb25maWcgWEVOX05FVERFVl9CQUNLRU5EXG5kcml2ZXJzL25ldC9LY29uZmlnLTU2My1cdHRyaXN0YXRlIFwmIzM0O1hlbiBiYWNrZW5kIG5ldHdvcmsgZGV2aWNlXCYjMzQ7XG5kcml2ZXJzL25ldC9LY29uZmlnOjU2NDpcdGRlcGVuZHMgb24gWEVOX0JBQ0tFTkRcbmRyaXZlcnMvbmV0L0tjb25maWctNTY1LVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWc9NTg0PWNvbmZpZyBWTVhORVQzXG5kcml2ZXJzL25ldC9LY29uZmlnLTU4NS1cdHRyaXN0YXRlIFwmIzM0O1ZNd2FyZSBWTVhORVQzIGV0aGVybmV0IGRyaXZlclwmIzM0O1xuZHJpdmVycy9uZXQvS2NvbmZpZzo1ODY6XHRkZXBlbmRzIG9uIFBDSSBcdTAwMjZcdTAwMjYgSU5FVFxuZHJpdmVycy9uZXQvS2NvbmZpZzo1ODc6XHRkZXBlbmRzIG9uIFBBR0VfU0laRV9MRVNTX1RIQU5fNjRLQlxuZHJpdmVycy9uZXQvS2NvbmZpZy01ODgtXHRzZWxlY3QgUEFHRV9QT09MXG4tLVxuZHJpdmVycy9uZXQvS2NvbmZpZz01OTQ9Y29uZmlnIEZVSklUU1VfRVNcbmRyaXZlcnMvbmV0L0tjb25maWctNTk1LVx0dHJpc3RhdGUgXCYjMzQ7RlVKSVRTVSBFeHRlbmRlZCBTb2NrZXQgTmV0d29yayBEZXZpY2UgZHJpdmVyXCYjMzQ7XG5kcml2ZXJzL25ldC9LY29uZmlnOjU5NjpcdGRlcGVuZHMgb24gQUNQSVxuZHJpdmVycy9uZXQvS2NvbmZpZy01OTctXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvS2NvbmZpZz02MDQ9Y29uZmlnIE5FVERFVlNJTVxuZHJpdmVycy9uZXQvS2NvbmZpZy02MDUtXHR0cmlzdGF0ZSBcJiMzNDtTaW11bGF0ZWQgbmV0d29ya2luZyBkZXZpY2VcJiMzNDtcbmRyaXZlcnMvbmV0L0tjb25maWc6NjA2Olx0ZGVwZW5kcyBvbiBERUJVR19GU1xuZHJpdmVycy9uZXQvS2NvbmZpZzo2MDc6XHRkZXBlbmRzIG9uIElORVRcbmRyaXZlcnMvbmV0L0tjb25maWc6NjA4Olx0ZGVwZW5kcyBvbiBQU0FNUExFIHx8IFBTQU1QTEU9blxuZHJpdmVycy9uZXQvS2NvbmZpZzo2MDk6XHRkZXBlbmRzIG9uIFBUUF8xNTg4X0NMT0NLX01PQ0sgfHwgUFRQXzE1ODhfQ0xPQ0tfTU9DSz1uXG5kcml2ZXJzL25ldC9LY29uZmlnLTYxMC1cdHNlbGVjdCBORVRfREVWTElOS1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDA5OjMxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDc4ODQKCQkJCQkJCW91dHB1dDogODIKCQkJCQkJCXRob3VnaHRzOiAxODQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTUFDVkxBTiBGdXp6aW5nIERlY2lzaW9uKioKCk9rYXksIHNvIHRoZXJlIGFyZSBubyBkZXBlbmRlbmNpZXMgdG8gd29ycnkgYWJvdXQgZm9yIHRoaXMgTUFDVkxBTiBjaGFuZ2UuIFRoZSBxdWVzdGlvbiBub3cgaXMsIGlzIGl0IGV2ZW4gKndvcnRoKiBmdXp6aW5nPyBJIG5lZWQgdG8gY29uc2lkZXIgdGhhdCBjcml0ZXJpYTogaXQgc2F5cyB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAgaWYgdGhlIHBhdGNoICpvbmx5KiB0b3VjaGVzIHRlYXJkb3duIGNhbGxiYWNrcyBsaWtlIGAucmVtb3ZlYCwgYC5zaHV0ZG93bmAsIG9yIGBwY2lfdW5yZWdpc3Rlcl9kcml2ZXJgIHRoYXQgcnVuIG9uIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIHVuYmluZC4gVGhhdCYjMzk7cyBub3QgdGhlIGNhc2UgaGVyZSwgdGhhbmtmdWxseS4KCkkgdGhpbmsgdGhpcyBvbmUgaXMgd29ydGggYSBmdXp6aW5nIGF0dGVtcHQuIEV2ZW4gdGhvdWdoIHRoZSBtb2R1bGUgaW5pdCBlcnJvciBwYXRocyBhcmUgb25seSByZWxldmFudCBkdXJpbmcgbW9kdWxlIGxvYWQgZmFpbHVyZSwgaXQgc3RpbGwgcmVwcmVzZW50cyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBldmVuIGlmIGEgbWlub3Igb25lLiBNeSBndXQgc2F5cyBgV29ydGhGdXp6aW5nPXRydWVgLiBJIG5lZWQgdG8gYmUgbW9yZSBzcGVjaWZpYy4gYEZvY3VzU3ltYm9scz1bJiMzNDttYWN2bGFuX2luaXRfbW9kdWxlJiMzNDtdYCBhbmQgYEVuYWJsZUNvbmZpZ3M9WyYjMzQ7TUFDVkxBTiYjMzQ7XWAuIAoKV2FpdCBhIHNlY29uZC4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGFtIG5vdCBtaXNzaW5nIGFueSBzdWJ0bGUgaW50ZXJhY3Rpb25zLiBJIHdpbGwgcmV2aWV3IGFuZCBjb25maXJtIHRoYXQgYG1hY3ZsYW5faW5pdF9tb2R1bGVgIGlzIHRoZSBvbmx5IGZ1bmN0aW9uIGJlaW5nIG1vZGlmaWVkLiBPa2F5LCBubywgbm90aGluZyBlbHNlIGhhcyBiZWVuIHRvdWNoZWQuCgpZZXMsIGdpdmVuIHRoaXMsIEkgd2lsbCBqdXN0IHJldHVybiBgV29ydGhGdXp6aW5nPXRydWVgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAwOTozMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TUFDVkxBTiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O21hY3ZsYW5faW5pdF9tb2R1bGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBlcnJvciBoYW5kbGluZyB0byB0aGUgbW9kdWxlIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIG9mIHRoZSBtYWN2bGFuIGRyaXZlci4gV2hpbGUgaXQgb25seSBleGVjdXRlcyBkdXJpbmcgbW9kdWxlIGxvYWQgb3IgYm9vdCwgaXQgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUga2VybmVsIGNvZGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01BQ1ZMQU4mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttYWN2bGFuX2luaXRfbW9kdWxlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgZXJyb3IgaGFuZGxpbmcgdG8gdGhlIG1vZHVsZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiBvZiB0aGUgbWFjdmxhbiBkcml2ZXIuIFdoaWxlIGl0IG9ubHkgZXhlY3V0ZXMgZHVyaW5nIG1vZHVsZSBsb2FkIG9yIGJvb3QsIGl0IGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGtlcm5lbCBjb2RlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDNUMDk6MzA6NTguMDYzMjIwMTg0WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mjg5NjQyMjI5NjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTUFDVkxBTlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm1hY3ZsYW5faW5pdF9tb2R1bGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGVycm9yIGhhbmRsaW5nIHRvIHRoZSBtb2R1bGUgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24gb2YgdGhlIG1hY3ZsYW4gZHJpdmVyLiBXaGlsZSBpdCBvbmx5IGV4ZWN1dGVzIGR1cmluZyBtb2R1bGUgbG9hZCBvciBib290LCBpdCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBrZXJuZWwgY29kZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMDk6MzA6NTguMDYzMjI4MDQ0WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MDU5MDk0MTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAwYjFlOTg1ODQyNzAzOTZjNjliZGQ1NTlhODkzMjI0NmVlYjc2YTYxXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gQXVnIDMgMDk6MzA6NTcgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbWFjdmxhbi5jIGIvZHJpdmVycy9uZXQvbWFjdmxhbi5jXFxuaW5kZXggOWE0YmM5OWRiZjUzYi4uNDI5NGI0MzM4MzhhZSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9tYWN2bGFuLmNcXG4rKysgYi9kcml2ZXJzL25ldC9tYWN2bGFuLmNcXG5AQCAtMTkwNiw3ICsxOTA2LDkgQEAgc3RhdGljIGludCBfX2luaXQgbWFjdmxhbl9pbml0X21vZHVsZSh2b2lkKVxcbiB7XFxuIFxcdGludCBlcnI7XFxuIFxcbi1cXHRyZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXFx1MDAyNm1hY3ZsYW5fbm90aWZpZXJfYmxvY2spO1xcbitcXHRlcnIgPSByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXFx1MDAyNm1hY3ZsYW5fbm90aWZpZXJfYmxvY2spO1xcbitcXHRpZiAoZXJyKVxcbitcXHRcXHRyZXR1cm4gZXJyO1xcbiBcXG4gXFx0ZXJyID0gbWFjdmxhbl9saW5rX3JlZ2lzdGVyKFxcdTAwMjZtYWN2bGFuX2xpbmtfb3BzKTtcXG4gXFx0aWYgKGVyciBcXHUwMDNjIDApXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDA5OjMwOjU4LjQ3MDEwMjQ3OFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjI4NTU3MzI1ODkxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1BQ1ZMQU5cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJtYWN2bGFuX2luaXRfbW9kdWxlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBlcnJvciBoYW5kbGluZyB0byB0aGUgbW9kdWxlIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIG9mIHRoZSBtYWN2bGFuIGRyaXZlci4gV2hpbGUgaXQgb25seSBleGVjdXRlcyBkdXJpbmcgbW9kdWxlIGxvYWQgb3IgYm9vdCwgaXQgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUga2VybmVsIGNvZGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDBiMWU5ODU4NDI3MDM5NmM2OWJkZDU1OWE4OTMyMjQ2ZWViNzZhNjFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAzIDA5OjMwOjU3IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbWFjdmxhbi5jIGIvZHJpdmVycy9uZXQvbWFjdmxhbi5jXG5pbmRleCA5YTRiYzk5ZGJmNTNiLi40Mjk0YjQzMzgzOGFlIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvbWFjdmxhbi5jXG4rKysgYi9kcml2ZXJzL25ldC9tYWN2bGFuLmNcbkBAIC0xOTA2LDcgKzE5MDYsOSBAQCBzdGF0aWMgaW50IF9faW5pdCBtYWN2bGFuX2luaXRfbW9kdWxlKHZvaWQpXG4ge1xuIFx0aW50IGVycjtcbiBcbi1cdHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcdTAwMjZtYWN2bGFuX25vdGlmaWVyX2Jsb2NrKTtcbitcdGVyciA9IHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcihcdTAwMjZtYWN2bGFuX25vdGlmaWVyX2Jsb2NrKTtcbitcdGlmIChlcnIpXG4rXHRcdHJldHVybiBlcnI7XG4gXG4gXHRlcnIgPSBtYWN2bGFuX2xpbmtfcmVnaXN0ZXIoXHUwMDI2bWFjdmxhbl9saW5rX29wcyk7XG4gXHRpZiAoZXJyIFx1MDAzYyAwKVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMDk6MzA6NTguNDcwMTA0ODU4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTMxNTEwODA1MjIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgUGF0Y2g6IG1hY3ZsYW4uYyBNb2R1bGUgSW5pdGlhbGl6YXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgbW9kaWZpZXMgYGRyaXZlcnMvbmV0L21hY3ZsYW4uY2AuIFRoZSBjb3JlIGNoYW5nZSBpcyBpbiBgbWFjdmxhbl9pbml0X21vZHVsZWAsIHdoZXJlIHRoZXkncmUgbm93IGNoZWNraW5nIHRoZSByZXR1cm4gdmFsdWUgb2YgYHJlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllcmAuICBUaGlzIGlzIGEgbW9kdWxlIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uLCB3aGljaCBpbW1lZGlhdGVseSBtYWtlcyBtZSB0aGluayBhYm91dCBmdXp6aW5nIHBvdGVudGlhbC4gSXQncyBhbiBlcnJvciBoYW5kbGluZyBmaXgsIHNwZWNpZmljYWxseSBmb3IgaW5pdGlhbGl6YXRpb24uICBNeSBpbml0aWFsIHJlYWN0aW9uIGlzIHRoYXQgZnV6emluZyBtb2R1bGUgaW5pdGlhbGl6YXRpb24gcm91dGluZXMgaXNuJ3QgdXN1YWxseSB0aGUgbW9zdCBwcm9kdWN0aXZlIGF2ZW51ZSBiZWNhdXNlIHRoZXkgcnVuIG9uY2UsIGVpdGhlciBhdCBib290IG9yIG1vZHVsZSBsb2FkLiAgRnVydGhlcm1vcmUsIHRoZSBgcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyYCBjYWxsIGlzIHVubGlrZWx5IHRvIGZhaWwgdW5sZXNzIHRoZXJlJ3MgYSBtZW1vcnkgYWxsb2NhdGlvbiBpc3N1ZSDigJMgYSB2ZXJ5IGRpZmZpY3VsdCB0aGluZyB0byB0YXJnZXQgc3BlY2lmaWNhbGx5IGZvciAqdGhpcyogbW9kdWxlLlxuXG5BbHJpZ2h0LCBzbyB0aGUgcGF0Y2ggKm9ubHkqIG1vZGlmaWVzIHRoZSBtb2R1bGUgaW5pdCBmdW5jdGlvbiwgYG1hY3ZsYW5faW5pdF9tb2R1bGVgLiBMZXQgbWUgZG91YmxlLWNoZWNrLi4uIHllcCwgdGhhdCdzIGl0LiBObyBvdGhlciBjb2RlIGhhcyBiZWVuIHRvdWNoZWQuICBOb3csIHRoZSBxdWVzdGlvbiBpczogaXMgdGhpcyB3b3J0aCBmdXp6aW5nPyAgV2hpbGUgdGhlc2UgaW5pdCBlcnJvciBwYXRocyAqYXJlKiBmdW5jdGlvbmFsbHkgaW1wb3J0YW50LCB0aGVpciBzaW5nbGUtZXhlY3V0aW9uIG5hdHVyZSBtYWtlcyB0aGVtIGxlc3MgYXBwZWFsaW5nIGZvciBmdXp6aW5nLiBIb3dldmVyLCB0aGVyZSAqaXMqIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaGVyZS5cblxuSSBuZWVkIHRvIGRlY2lkZSB3aGV0aGVyIHRvIG1hcmsgdGhpcyBhcyBXb3J0aEZ1enppbmc9ZmFsc2UgYmVjYXVzZSBpdCdzIGp1c3QgYW4gaW5pdCBmdW5jdGlvbiwgb3IgZ28gd2l0aCBXb3J0aEZ1enppbmc9dHJ1ZS4gSSBjaGVja2VkIHRoZSBndWlkZWxpbmVzLCBhbmQgd2hpbGUgdGhleSBkb24ndCBleHBsaWNpdGx5IHNheSBcIm1vZHVsZSBpbml0IGVycm9yIHBhdGhzID0gZmFsc2VcIiwgdGhlIGNoYW5nZSBpcyBtaW5vci4gQnV0IGl0IGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UuXG5cblRoZSBjYXRjaCBpcywgYG1hY3ZsYW5faW5pdF9tb2R1bGVgIGlzIG1hcmtlZCBgX19pbml0YC4gIElmIHRoZSBtb2R1bGUgaXMgYnVpbHQtaW4sIHRoZSBmdW5jdGlvbiBnZXRzIGZyZWVkIGFmdGVyIHRoZSBrZXJuZWwgZmluaXNoZXMgYm9vdGluZy4gU3l6a2FsbGVyIGRvZXNuJ3QgZm9jdXMgb24gYm9vdCBjb2RlIGluIHRoZSBzdGFuZGFyZCBjb25maWd1cmF0aW9uLiBJZiBpdCdzIGEgbW9kdWxlLCB0aGVuIGl0IHJ1bnMgb24gbW9kdWxlIGxvYWQuIFN5emthbGxlciAqY2FuKiBsb2FkIG1vZHVsZXMsIGJ1dCB0eXBpY2FsbHkgZG9lc24ndCBkaXJlY3RseSB0YXJnZXQgbW9kdWxlIGxvYWRpbmcuXG5cblNvLCBJIGNvdWxkIHNldCBXb3J0aEZ1enppbmc9dHJ1ZSBhbmQgRm9jdXNTeW1ib2xzPVtcIm1hY3ZsYW5faW5pdF9tb2R1bGVcIl0uLi4gYnV0IHRoZSBzeW1ib2wgbmFtZSBpcyBjb3JyZWN0LiBCdXQgaXQgaXMgZXhlY3V0ZWQgb25seSBvbmNlLiBMZXQgbWUgY2hlY2sgdGhlIGNvbmZpZzogYENPTkZJR19NQUNWTEFOYCBjYW4gYmUgYG1gIG9yIGB5YC4gSWYgaXQgaXMgYnVpbHQtaW4gKGB5YCksIHRoZSBmdW5jdGlvbiB3aWxsIGJlIGZyZWVkIGFuZCBub3QgYXZhaWxhYmxlIGFmdGVyIHRoZSBib290LiBJZiBpdCdzIGEgbW9kdWxlIChgbWApLCB0aGVuIHN5emthbGxlciBjYW4gbG9hZCBpdC5cblxuQWxyaWdodCwgSSdtIGdvaW5nIHRvIHNldCBgV29ydGhGdXp6aW5nPXRydWUsIEZvY3VzU3ltYm9scz1bXCJtYWN2bGFuX2luaXRfbW9kdWxlXCJdLCBFbmFibGVDb25maWdzPVtcIk1BQ1ZMQU5cIl1gLiBUaGUga2V5IGlzIHRvIGNoZWNrIGlmIGBtYWN2bGFuX2luaXRfbW9kdWxlYCBpcyB0aGUgZW50cnlwb2ludCB0byB0aGUgbW9kdWxlLCBldmVuIGlmIGl0IGlzIGEgYHN0YXRpY2Agb25lLiBZZXMsIGl0J3Mgbm90IGlubGluZWQsIGl0J3MgcGFzc2VkIHRvIGBtb2R1bGVfaW5pdCgpYC4gVGltZSB0byBnbyB3aXRoIHRoaXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwNTcsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDE5LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMDk6MzE6MTEuNjIxMTg4NTNaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzE4NTUxMjksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibW9kdWxlX2luaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvbWFjdmxhbi5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L21hY3ZsYW4uYz0xOTIyPXN0YXRpYyB2b2lkIF9fZXhpdCBtYWN2bGFuX2NsZWFudXBfbW9kdWxlKHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC9tYWN2bGFuLmMtMTkyNy1cXG5kcml2ZXJzL25ldC9tYWN2bGFuLmM6MTkyODptb2R1bGVfaW5pdChtYWN2bGFuX2luaXRfbW9kdWxlKTtcXG5kcml2ZXJzL25ldC9tYWN2bGFuLmMtMTkyOS1tb2R1bGVfZXhpdChtYWN2bGFuX2NsZWFudXBfbW9kdWxlKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMDk6MzE6MTEuNjkzMDQ4MjQ5WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTU0NDIzODk3NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIERlY2lzaW9uIGZvciBtYWN2bGFuX2luaXRfbW9kdWxlKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYG1hY3ZsYW5faW5pdF9tb2R1bGVgLiBUaGF0J3MgdGhlIG1vZHVsZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbi4gSXQncyBvbmx5IGV4ZWN1dGVkIG9uY2UsIHdoaWNoIG1ha2VzIG1lIGluaXRpYWxseSBxdWVzdGlvbiB3aGV0aGVyIGl0J3MgZXZlbiB3b3J0aCBmdXp6aW5nLiBUaGUgZ3VpZGFuY2Ugc2F5cyB0byBza2lwIGlmIGl0J3MganVzdCB0ZWFyZG93biBsaWtlIGAucmVtb3ZlYCwgYC5zaHV0ZG93bmAsIG9yIGBwY2lfdW5yZWdpc3Rlcl9kcml2ZXJgIGNhbGxiYWNrcyB0aGF0IGZpcmUgZHVyaW5nIGhvdC11bnBsdWcgb3IgdW5iaW5kIG9wZXJhdGlvbnMuIE1vZHVsZSBpbml0IGlzbid0ICpleGFjdGx5KiB0aGUgc2FtZSwgc2luY2UgaXQncyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBidXQgdGhlIG9uZS10aW1lIGV4ZWN1dGlvbiBkb2VzIGdpdmUgbWUgcGF1c2UuXG5cbkhvd2V2ZXIsIHRoaXMgKmlzKiBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhbmQgdGhlIG1vZGlmaWVkIGZ1bmN0aW9uIGlzIGBtYWN2bGFuX2luaXRfbW9kdWxlYC4gTGV0J3MgYXNzdW1lIGl0J3Mgd29ydGggZnV6emluZyBhbmQgc2V0IGBXb3J0aEZ1enppbmc9dHJ1ZWAuXG5cbk5vdywgZm9yIHRoZSBgRm9jdXNTeW1ib2xzYC4gYG1hY3ZsYW5faW5pdF9tb2R1bGVgIHNlZW1zIGxpa2UgdGhlIG9idmlvdXMgY2hvaWNlIHNpbmNlIGl0J3MgdGhlIG9ubHkgZnVuY3Rpb24gYmVpbmcgdG91Y2hlZC4gQnV0IHdhaXQsIGl0J3MgZGVjbGFyZWQgYHN0YXRpY2AuIFRoYXQgKmNvdWxkKiBiZSBhIHByb2JsZW0uIFN0YXRpYyBmdW5jdGlvbnMgKm1pZ2h0KiBiZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciwgb3IgdGhleSBtaWdodCBub3QgaGF2ZSBhIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzLiBCdXQgYG1hY3ZsYW5faW5pdF9tb2R1bGVgIGlzIGJlaW5nIHBhc3NlZCB0byBgbW9kdWxlX2luaXRgLCBzbyBpdHMgYWRkcmVzcyBpcyBkZWZpbml0ZWx5IGJlaW5nIHRha2VuIGFuZCBpbmxpbmluZyBpcyBub3QgYW4gaXNzdWUuIEl0J3MgdGhlIG9ubHkgZnVuY3Rpb24sIHNvIGxldCdzIHN0aWNrIHdpdGggaXQsIGBGb2N1c1N5bWJvbHM9W1wibWFjdmxhbl9pbml0X21vZHVsZVwiXWAuXG5cbkknbGwgYWxzbyBlbmFibGUgdGhlIGBNQUNWTEFOYCBjb25maWcgd2l0aCBgRW5hYmxlQ29uZmlncz1bXCJNQUNWTEFOXCJdYC4gSSdsbCBqdXN0IGRvdWJsZS1jaGVjayB0byBiZSBzdXJlIHRoYXQncyB0aGUgY29ycmVjdCBvbmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM4MzYsIk91dHB1dFRva2VucyI6MjgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyODMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMDk6MzE6MTcuMjM3MjkwMjM2WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxODE2NTY3NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgTUFDVkxBTlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvS2NvbmZpZz0xNjM9c291cmNlIFxcXCJkcml2ZXJzL25ldC90ZWFtL0tjb25maWdcXFwiXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0xNjQtXFxuZHJpdmVycy9uZXQvS2NvbmZpZzoxNjU6Y29uZmlnIE1BQ1ZMQU5cXG5kcml2ZXJzL25ldC9LY29uZmlnLTE2Ni1cXHR0cmlzdGF0ZSBcXFwiTUFDLVZMQU4gc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMDk6MzE6MTcuNDU1NDYxODUzWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzkyNTkxNjczMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNQUNWTEFOOiBBIEZvY3VzZWQgUGF0Y2ggQXNzZXNzbWVudCoqXG5cbk9rYXksIHllcywgZGVmaW5pdGVseSwgdGhpcyBwYXRjaCBmb2N1c2VzIG9uIGBNQUNWTEFOYC4gSSdtIGdvaW5nIHRvIHNldCBgV29ydGhGdXp6aW5nYCB0byBgdHJ1ZWAuIFRoaXMgaXMgYmVjYXVzZSB0aGUgcGF0Y2ggbWFrZXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoaW4gcmVhY2hhYmxlIGtlcm5lbCBjb2RlLCBzcGVjaWZpY2FsbHkgZXJyb3IgaGFuZGxpbmcgaW4gdGhlIG1vZHVsZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiBvZiB0aGUgbWFjdmxhbiBkcml2ZXIuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBkb24ndCBtaXNzIGFueXRoaW5nLlxuXG5TbywgSSB3aWxsIGZvY3VzIG9uIHRoZSBgbWFjdmxhbl9pbml0X21vZHVsZWAgZnVuY3Rpb24gYW5kIHRoZSByZWxhdGVkIGNvZGUsIHRoYXQncyBkZWZpbml0ZWx5IGEga2V5IGFyZWEgdG8gdGFyZ2V0IHdpdGggZnV6emVyLiBgRm9jdXNTeW1ib2xzYCB3aWxsIGJlIGBbXCJtYWN2bGFuX2luaXRfbW9kdWxlXCJdYCBhbmQgZW5hYmxlIHRoZSBgTUFDVkxBTmAgY29uZmlndXJhdGlvbi5cblxuTm93LCBsZXQgbWUganVzdCBkb3VibGUtY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBvdGhlciBjb25maWdzIHRoYXQgbWlnaHQgYmUgcmVsZXZhbnQuLi4gSSB3YW50IHRvIGJlIHRob3JvdWdoLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NTg2LCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMDk6MzE6MjEuMzgxMzgxODM0WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNzc0ODk5OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkZXBlbmRzIG9uXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvS2NvbmZpZz02PW1lbnVjb25maWcgTkVUREVWSUNFU1xcbmRyaXZlcnMvbmV0L0tjb25maWctNy1cXHRkZWZhdWx0IHkgaWYgVU1MXFxuZHJpdmVycy9uZXQvS2NvbmZpZzo4OlxcdGRlcGVuZHMgb24gTkVUXFxuZHJpdmVycy9uZXQvS2NvbmZpZy05LVxcdGJvb2wgXFxcIk5ldHdvcmsgZGV2aWNlIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9LY29uZmlnPTQxPWNvbmZpZyBCT05ESU5HXFxuZHJpdmVycy9uZXQvS2NvbmZpZy00Mi1cXHR0cmlzdGF0ZSBcXFwiQm9uZGluZyBkcml2ZXIgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC9LY29uZmlnOjQzOlxcdGRlcGVuZHMgb24gSU5FVFxcbmRyaXZlcnMvbmV0L0tjb25maWc6NDQ6XFx0ZGVwZW5kcyBvbiBUTFMgfHwgVExTX0RFVklDRT1uXFxuZHJpdmVycy9uZXQvS2NvbmZpZy00NS1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC9LY29uZmlnPTc0PWNvbmZpZyBXSVJFR1VBUkRcXG5kcml2ZXJzL25ldC9LY29uZmlnLTc1LVxcdHRyaXN0YXRlIFxcXCJXaXJlR3VhcmQgc2VjdXJlIG5ldHdvcmsgdHVubmVsXFxcIlxcbmRyaXZlcnMvbmV0L0tjb25maWc6NzY6XFx0ZGVwZW5kcyBvbiBORVQgXFx1MDAyNlxcdTAwMjYgSU5FVFxcbmRyaXZlcnMvbmV0L0tjb25maWctNzctXFx0c2VsZWN0IE5FVF9VRFBfVFVOTkVMXFxuLS1cXG5kcml2ZXJzL25ldC9LY29uZmlnPTkyPWNvbmZpZyBXSVJFR1VBUkRfREVCVUdcXG5kcml2ZXJzL25ldC9LY29uZmlnLTkzLVxcdGJvb2wgXFxcIkRlYnVnZ2luZyBjaGVja3MgYW5kIHZlcmJvc2UgbWVzc2FnZXNcXFwiXFxuZHJpdmVycy9uZXQvS2NvbmZpZzo5NDpcXHRkZXBlbmRzIG9uIFdJUkVHVUFSRFxcbmRyaXZlcnMvbmV0L0tjb25maWctOTUtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvS2NvbmZpZz0xMDM9Y29uZmlnIE9WUE5cXG5kcml2ZXJzL25ldC9LY29uZmlnLTEwNC1cXHR0cmlzdGF0ZSBcXFwiT3BlblZQTiBkYXRhIGNoYW5uZWwgb2ZmbG9hZFxcXCJcXG5kcml2ZXJzL25ldC9LY29uZmlnOjEwNTpcXHRkZXBlbmRzIG9uIE5FVCBcXHUwMDI2XFx1MDAyNiBJTkVUXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0xMDYtXFx0c2VsZWN0IERTVF9DQUNIRVxcbi0tXFxuZHJpdmVycy9uZXQvS2NvbmZpZz0xMzY9Y29uZmlnIE5FVF9GQ1xcbmRyaXZlcnMvbmV0L0tjb25maWctMTM3LVxcdGJvb2wgXFxcIkZpYnJlIENoYW5uZWwgZHJpdmVyIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvS2NvbmZpZzoxMzg6XFx0ZGVwZW5kcyBvbiBTQ1NJIFxcdTAwMjZcXHUwMDI2IFBDSVxcbmRyaXZlcnMvbmV0L0tjb25maWctMTM5LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L0tjb25maWc9MTQ5PWNvbmZpZyBJRkJcXG5kcml2ZXJzL25ldC9LY29uZmlnLTE1MC1cXHR0cmlzdGF0ZSBcXFwiSW50ZXJtZWRpYXRlIEZ1bmN0aW9uYWwgQmxvY2sgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC9LY29uZmlnOjE1MTpcXHRkZXBlbmRzIG9uIE5FVF9BQ1RfTUlSUkVEIHx8IE5GVF9GV0RfTkVUREVWXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0xNTItXFx0c2VsZWN0IE5FVF9SRURJUkVDVFxcbi0tXFxuZHJpdmVycy9uZXQvS2NvbmZpZz0xNzk9Y29uZmlnIE1BQ1ZUQVBcXG5kcml2ZXJzL25ldC9LY29uZmlnLTE4MC1cXHR0cmlzdGF0ZSBcXFwiTUFDLVZMQU4gYmFzZWQgdGFwIGRyaXZlclxcXCJcXG5kcml2ZXJzL25ldC9LY29uZmlnOjE4MTpcXHRkZXBlbmRzIG9uIE1BQ1ZMQU5cXG5kcml2ZXJzL25ldC9LY29uZmlnOjE4MjpcXHRkZXBlbmRzIG9uIElORVRcXG5kcml2ZXJzL25ldC9LY29uZmlnLTE4My1cXHRzZWxlY3QgVEFQXFxuLS1cXG5kcml2ZXJzL25ldC9LY29uZmlnPTE5Mz1jb25maWcgSVBWTEFOX0wzU1xcbmRyaXZlcnMvbmV0L0tjb25maWc6MTk0OlxcdGRlcGVuZHMgb24gTkVURklMVEVSXFxuZHJpdmVycy9uZXQvS2NvbmZpZzoxOTU6XFx0ZGVwZW5kcyBvbiBJUFZMQU5cXG5kcml2ZXJzL25ldC9LY29uZmlnLTE5Ni1cXHRkZWZfYm9vbCB5XFxuLS1cXG5kcml2ZXJzL25ldC9LY29uZmlnPTE5OT1jb25maWcgSVBWTEFOXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0yMDAtXFx0dHJpc3RhdGUgXFxcIklQLVZMQU4gc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC9LY29uZmlnOjIwMTpcXHRkZXBlbmRzIG9uIElORVRcXG5kcml2ZXJzL25ldC9LY29uZmlnLTIwMi1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC9LY29uZmlnPTIxNj1jb25maWcgSVBWVEFQXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0yMTctXFx0dHJpc3RhdGUgXFxcIklQLVZMQU4gYmFzZWQgdGFwIGRyaXZlclxcXCJcXG5kcml2ZXJzL25ldC9LY29uZmlnOjIxODpcXHRkZXBlbmRzIG9uIElQVkxBTlxcbmRyaXZlcnMvbmV0L0tjb25maWc6MjE5OlxcdGRlcGVuZHMgb24gSU5FVFxcbmRyaXZlcnMvbmV0L0tjb25maWctMjIwLVxcdHNlbGVjdCBUQVBcXG4tLVxcbmRyaXZlcnMvbmV0L0tjb25maWc9MjMwPWNvbmZpZyBWWExBTlxcbmRyaXZlcnMvbmV0L0tjb25maWctMjMxLVxcdHRyaXN0YXRlIFxcXCJWaXJ0dWFsIGVYdGVuc2libGUgTG9jYWwgQXJlYSBOZXR3b3JrIChWWExBTilcXFwiXFxuZHJpdmVycy9uZXQvS2NvbmZpZzoyMzI6XFx0ZGVwZW5kcyBvbiBJTkVUXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0yMzMtXFx0c2VsZWN0IE5FVF9VRFBfVFVOTkVMXFxuLS1cXG5kcml2ZXJzL25ldC9LY29uZmlnPTI0NT1jb25maWcgR0VORVZFXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0yNDYtXFx0dHJpc3RhdGUgXFxcIkdlbmVyaWMgTmV0d29yayBWaXJ0dWFsaXphdGlvbiBFbmNhcHN1bGF0aW9uXFxcIlxcbmRyaXZlcnMvbmV0L0tjb25maWc6MjQ3OlxcdGRlcGVuZHMgb24gSU5FVFxcbmRyaXZlcnMvbmV0L0tjb25maWctMjQ4LVxcdHNlbGVjdCBORVRfVURQX1RVTk5FTFxcbi0tXFxuZHJpdmVycy9uZXQvS2NvbmZpZz0yNjA9Y29uZmlnIEJBUkVVRFBcXG5kcml2ZXJzL25ldC9LY29uZmlnLTI2MS1cXHR0cmlzdGF0ZSBcXFwiQmFyZSBVRFAgRW5jYXBzdWxhdGlvblxcXCJcXG5kcml2ZXJzL25ldC9LY29uZmlnOjI2MjpcXHRkZXBlbmRzIG9uIElORVRcXG5kcml2ZXJzL25ldC9LY29uZmlnLTI2My1cXHRzZWxlY3QgTkVUX1VEUF9UVU5ORUxcXG4tLVxcbmRyaXZlcnMvbmV0L0tjb25maWc9MjcyPWNvbmZpZyBHVFBcXG5kcml2ZXJzL25ldC9LY29uZmlnLTI3My1cXHR0cmlzdGF0ZSBcXFwiR1BSUyBUdW5uZWxpbmcgUHJvdG9jb2wgZGF0YXBhdGggKEdUUC1VKVxcXCJcXG5kcml2ZXJzL25ldC9LY29uZmlnOjI3NDpcXHRkZXBlbmRzIG9uIElORVRcXG5kcml2ZXJzL25ldC9LY29uZmlnLTI3NS1cXHRzZWxlY3QgTkVUX1VEUF9UVU5ORUxcXG4tLVxcbmRyaXZlcnMvbmV0L0tjb25maWc9Mjg5PWNvbmZpZyBQRkNQXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0yOTAtXFx0dHJpc3RhdGUgXFxcIlBhY2tldCBGb3J3YXJkaW5nIENvbnRyb2wgUHJvdG9jb2wgKFBGQ1ApXFxcIlxcbmRyaXZlcnMvbmV0L0tjb25maWc6MjkxOlxcdGRlcGVuZHMgb24gSU5FVFxcbmRyaXZlcnMvbmV0L0tjb25maWctMjkyLVxcdHNlbGVjdCBORVRfVURQX1RVTk5FTFxcbi0tXFxuZHJpdmVycy9uZXQvS2NvbmZpZz0zMDI9Y29uZmlnIEFNVFxcbmRyaXZlcnMvbmV0L0tjb25maWctMzAzLVxcdHRyaXN0YXRlIFxcXCJBdXRvbWF0aWMgTXVsdGljYXN0IFR1bm5lbGluZyAoQU1UKVxcXCJcXG5kcml2ZXJzL25ldC9LY29uZmlnOjMwNDpcXHRkZXBlbmRzIG9uIElORVQgXFx1MDAyNlxcdTAwMjYgSVBfTVVMVElDQVNUXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0zMDUtXFx0c2VsZWN0IE5FVF9VRFBfVFVOTkVMXFxuLS1cXG5kcml2ZXJzL25ldC9LY29uZmlnPTMyNz1jb25maWcgTkVUQ09OU09MRVxcbmRyaXZlcnMvbmV0L0tjb25maWctMzI4LVxcdHRyaXN0YXRlIFxcXCJOZXR3b3JrIGNvbnNvbGUgbG9nZ2luZyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L0tjb25maWc6MzI5OlxcdGRlcGVuZHMgb24gUFJJTlRLXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0zMzAtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvS2NvbmZpZz0zMzQ9Y29uZmlnIE5FVENPTlNPTEVfRFlOQU1JQ1xcbmRyaXZlcnMvbmV0L0tjb25maWctMzM1LVxcdGJvb2wgXFxcIkR5bmFtaWMgcmVjb25maWd1cmF0aW9uIG9mIGxvZ2dpbmcgdGFyZ2V0c1xcXCJcXG5kcml2ZXJzL25ldC9LY29uZmlnOjMzNjpcXHRkZXBlbmRzIG9uIE5FVENPTlNPTEUgXFx1MDAyNlxcdTAwMjYgU1lTRlMgXFx1MDAyNlxcdTAwMjYgQ09ORklHRlNfRlMgXFx1MDAyNlxcdTAwMjYgXFxcXFxcbmRyaXZlcnMvbmV0L0tjb25maWctMzM3LVxcdFxcdFxcdCEoTkVUQ09OU09MRT15IFxcdTAwMjZcXHUwMDI2IENPTkZJR0ZTX0ZTPW0pXFxuLS1cXG5kcml2ZXJzL25ldC9LY29uZmlnPTM0NT1jb25maWcgTkVUQ09OU09MRV9FWFRFTkRFRF9MT0dcXG5kcml2ZXJzL25ldC9LY29uZmlnLTM0Ni1cXHRib29sIFxcXCJTZXQga2VybmVsIGV4dGVuZGVkIG1lc3NhZ2UgYnkgZGVmYXVsdFxcXCJcXG5kcml2ZXJzL25ldC9LY29uZmlnOjM0NzpcXHRkZXBlbmRzIG9uIE5FVENPTlNPTEVcXG5kcml2ZXJzL25ldC9LY29uZmlnLTM0OC1cXHRkZWZhdWx0IG5cXG4tLVxcbmRyaXZlcnMvbmV0L0tjb25maWc9MzU1PWNvbmZpZyBORVRDT05TT0xFX1BSRVBFTkRfUkVMRUFTRVxcbmRyaXZlcnMvbmV0L0tjb25maWctMzU2LVxcdGJvb2wgXFxcIlByZXBlbmQga2VybmVsIHJlbGVhc2UgdmVyc2lvbiBpbiB0aGUgbWVzc2FnZSBieSBkZWZhdWx0XFxcIlxcbmRyaXZlcnMvbmV0L0tjb25maWc6MzU3OlxcdGRlcGVuZHMgb24gTkVUQ09OU09MRV9FWFRFTkRFRF9MT0dcXG5kcml2ZXJzL25ldC9LY29uZmlnLTM1OC1cXHRkZWZhdWx0IG5cXG4tLVxcbmRyaXZlcnMvbmV0L0tjb25maWc9MzczPWNvbmZpZyBOVEJfTkVUREVWXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0zNzQtXFx0dHJpc3RhdGUgXFxcIlZpcnR1YWwgRXRoZXJuZXQgb3ZlciBOVEIgVHJhbnNwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L0tjb25maWc6Mzc1OlxcdGRlcGVuZHMgb24gTlRCX1RSQU5TUE9SVFxcbmRyaXZlcnMvbmV0L0tjb25maWctMzc2LVxcbmRyaXZlcnMvbmV0L0tjb25maWc9Mzc3PWNvbmZpZyBSSU9ORVRcXG5kcml2ZXJzL25ldC9LY29uZmlnLTM3OC1cXHR0cmlzdGF0ZSBcXFwiUmFwaWRJTyBFdGhlcm5ldCBvdmVyIG1lc3NhZ2luZyBkcml2ZXIgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC9LY29uZmlnOjM3OTpcXHRkZXBlbmRzIG9uIFJBUElESU9cXG5kcml2ZXJzL25ldC9LY29uZmlnLTM4MC1cXG5kcml2ZXJzL25ldC9LY29uZmlnPTM4MT1jb25maWcgUklPTkVUX1RYX1NJWkVcXG5kcml2ZXJzL25ldC9LY29uZmlnLTM4Mi1cXHRpbnQgXFxcIk51bWJlciBvZiBvdXRib3VuZCBxdWV1ZSBlbnRyaWVzXFxcIlxcbmRyaXZlcnMvbmV0L0tjb25maWc6MzgzOlxcdGRlcGVuZHMgb24gUklPTkVUXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0zODQtXFx0ZGVmYXVsdCBcXFwiMTI4XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvS2NvbmZpZz0zODY9Y29uZmlnIFJJT05FVF9SWF9TSVpFXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0zODctXFx0aW50IFxcXCJOdW1iZXIgb2YgaW5ib3VuZCBxdWV1ZSBlbnRyaWVzXFxcIlxcbmRyaXZlcnMvbmV0L0tjb25maWc6Mzg4OlxcdGRlcGVuZHMgb24gUklPTkVUXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0zODktXFx0ZGVmYXVsdCBcXFwiMTI4XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvS2NvbmZpZz0zOTE9Y29uZmlnIFRVTlxcbmRyaXZlcnMvbmV0L0tjb25maWctMzkyLVxcdHRyaXN0YXRlIFxcXCJVbml2ZXJzYWwgVFVOL1RBUCBkZXZpY2UgZHJpdmVyIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvS2NvbmZpZzozOTM6XFx0ZGVwZW5kcyBvbiBJTkVUXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0zOTQtXFx0c2VsZWN0IENSQzMyXFxuLS1cXG5kcml2ZXJzL25ldC9LY29uZmlnPTQ0Mz1jb25maWcgVklSVElPX05FVFxcbmRyaXZlcnMvbmV0L0tjb25maWctNDQ0LVxcdHRyaXN0YXRlIFxcXCJWaXJ0aW8gbmV0d29yayBkcml2ZXJcXFwiXFxuZHJpdmVycy9uZXQvS2NvbmZpZzo0NDU6XFx0ZGVwZW5kcyBvbiBWSVJUSU9cXG5kcml2ZXJzL25ldC9LY29uZmlnLTQ0Ni1cXHRzZWxlY3QgTkVUX0ZBSUxPVkVSXFxuLS1cXG5kcml2ZXJzL25ldC9LY29uZmlnPTQ2Mz1jb25maWcgTkVUS0lUXFxuZHJpdmVycy9uZXQvS2NvbmZpZy00NjQtXFx0Ym9vbCBcXFwiQlBGLXByb2dyYW1tYWJsZSBuZXR3b3JrIGRldmljZVxcXCJcXG5kcml2ZXJzL25ldC9LY29uZmlnOjQ2NTpcXHRkZXBlbmRzIG9uIEJQRl9TWVNDQUxMXFxuZHJpdmVycy9uZXQvS2NvbmZpZy00NjYtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvS2NvbmZpZz00NzI9Y29uZmlnIE5FVF9WUkZcXG5kcml2ZXJzL25ldC9LY29uZmlnLTQ3My1cXHR0cmlzdGF0ZSBcXFwiVmlydHVhbCBSb3V0aW5nIGFuZCBGb3J3YXJkaW5nIChMaXRlKVxcXCJcXG5kcml2ZXJzL25ldC9LY29uZmlnOjQ3NDpcXHRkZXBlbmRzIG9uIElQX01VTFRJUExFX1RBQkxFU1xcbmRyaXZlcnMvbmV0L0tjb25maWc6NDc1OlxcdGRlcGVuZHMgb24gTkVUX0wzX01BU1RFUl9ERVZcXG5kcml2ZXJzL25ldC9LY29uZmlnOjQ3NjpcXHRkZXBlbmRzIG9uIElQVjZfTVVMVElQTEVfVEFCTEVTIHx8IElQVjY9blxcbmRyaXZlcnMvbmV0L0tjb25maWctNDc3LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L0tjb25maWc9NDgxPWNvbmZpZyBWU09DS01PTlxcbmRyaXZlcnMvbmV0L0tjb25maWctNDgyLVxcdHRyaXN0YXRlIFxcXCJWaXJ0dWFsIHZzb2NrIG1vbml0b3JpbmcgZGV2aWNlXFxcIlxcbmRyaXZlcnMvbmV0L0tjb25maWc6NDgzOlxcdGRlcGVuZHMgb24gVkhPU1RfVlNPQ0tcXG5kcml2ZXJzL25ldC9LY29uZmlnLTQ4NC1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC9LY29uZmlnPTQ4OT1jb25maWcgTUhJX05FVFxcbmRyaXZlcnMvbmV0L0tjb25maWctNDkwLVxcdHRyaXN0YXRlIFxcXCJNSEkgbmV0d29yayBkcml2ZXJcXFwiXFxuZHJpdmVycy9uZXQvS2NvbmZpZzo0OTE6XFx0ZGVwZW5kcyBvbiBNSElfQlVTXFxuZHJpdmVycy9uZXQvS2NvbmZpZy00OTItXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvS2NvbmZpZz01NDQ9Y29uZmlnIFhFTl9ORVRERVZfRlJPTlRFTkRcXG5kcml2ZXJzL25ldC9LY29uZmlnLTU0NS1cXHR0cmlzdGF0ZSBcXFwiWGVuIG5ldHdvcmsgZGV2aWNlIGZyb250ZW5kIGRyaXZlclxcXCJcXG5kcml2ZXJzL25ldC9LY29uZmlnOjU0NjpcXHRkZXBlbmRzIG9uIFhFTlxcbmRyaXZlcnMvbmV0L0tjb25maWctNTQ3LVxcdHNlbGVjdCBYRU5fWEVOQlVTX0ZST05URU5EXFxuLS1cXG5kcml2ZXJzL25ldC9LY29uZmlnPTU2Mj1jb25maWcgWEVOX05FVERFVl9CQUNLRU5EXFxuZHJpdmVycy9uZXQvS2NvbmZpZy01NjMtXFx0dHJpc3RhdGUgXFxcIlhlbiBiYWNrZW5kIG5ldHdvcmsgZGV2aWNlXFxcIlxcbmRyaXZlcnMvbmV0L0tjb25maWc6NTY0OlxcdGRlcGVuZHMgb24gWEVOX0JBQ0tFTkRcXG5kcml2ZXJzL25ldC9LY29uZmlnLTU2NS1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC9LY29uZmlnPTU4ND1jb25maWcgVk1YTkVUM1xcbmRyaXZlcnMvbmV0L0tjb25maWctNTg1LVxcdHRyaXN0YXRlIFxcXCJWTXdhcmUgVk1YTkVUMyBldGhlcm5ldCBkcml2ZXJcXFwiXFxuZHJpdmVycy9uZXQvS2NvbmZpZzo1ODY6XFx0ZGVwZW5kcyBvbiBQQ0kgXFx1MDAyNlxcdTAwMjYgSU5FVFxcbmRyaXZlcnMvbmV0L0tjb25maWc6NTg3OlxcdGRlcGVuZHMgb24gUEFHRV9TSVpFX0xFU1NfVEhBTl82NEtCXFxuZHJpdmVycy9uZXQvS2NvbmZpZy01ODgtXFx0c2VsZWN0IFBBR0VfUE9PTFxcbi0tXFxuZHJpdmVycy9uZXQvS2NvbmZpZz01OTQ9Y29uZmlnIEZVSklUU1VfRVNcXG5kcml2ZXJzL25ldC9LY29uZmlnLTU5NS1cXHR0cmlzdGF0ZSBcXFwiRlVKSVRTVSBFeHRlbmRlZCBTb2NrZXQgTmV0d29yayBEZXZpY2UgZHJpdmVyXFxcIlxcbmRyaXZlcnMvbmV0L0tjb25maWc6NTk2OlxcdGRlcGVuZHMgb24gQUNQSVxcbmRyaXZlcnMvbmV0L0tjb25maWctNTk3LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L0tjb25maWc9NjA0PWNvbmZpZyBORVRERVZTSU1cXG5kcml2ZXJzL25ldC9LY29uZmlnLTYwNS1cXHR0cmlzdGF0ZSBcXFwiU2ltdWxhdGVkIG5ldHdvcmtpbmcgZGV2aWNlXFxcIlxcbmRyaXZlcnMvbmV0L0tjb25maWc6NjA2OlxcdGRlcGVuZHMgb24gREVCVUdfRlNcXG5kcml2ZXJzL25ldC9LY29uZmlnOjYwNzpcXHRkZXBlbmRzIG9uIElORVRcXG5kcml2ZXJzL25ldC9LY29uZmlnOjYwODpcXHRkZXBlbmRzIG9uIFBTQU1QTEUgfHwgUFNBTVBMRT1uXFxuZHJpdmVycy9uZXQvS2NvbmZpZzo2MDk6XFx0ZGVwZW5kcyBvbiBQVFBfMTU4OF9DTE9DS19NT0NLIHx8IFBUUF8xNTg4X0NMT0NLX01PQ0s9blxcbmRyaXZlcnMvbmV0L0tjb25maWctNjEwLVxcdHNlbGVjdCBORVRfREVWTElOS1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QwOTozMToyMS40ODkxMzU3NTJaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MzkzODM1ODA5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk1BQ1ZMQU4gRnV6emluZyBEZWNpc2lvbioqXG5cbk9rYXksIHNvIHRoZXJlIGFyZSBubyBkZXBlbmRlbmNpZXMgdG8gd29ycnkgYWJvdXQgZm9yIHRoaXMgTUFDVkxBTiBjaGFuZ2UuIFRoZSBxdWVzdGlvbiBub3cgaXMsIGlzIGl0IGV2ZW4gKndvcnRoKiBmdXp6aW5nPyBJIG5lZWQgdG8gY29uc2lkZXIgdGhhdCBjcml0ZXJpYTogaXQgc2F5cyB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAgaWYgdGhlIHBhdGNoICpvbmx5KiB0b3VjaGVzIHRlYXJkb3duIGNhbGxiYWNrcyBsaWtlIGAucmVtb3ZlYCwgYC5zaHV0ZG93bmAsIG9yIGBwY2lfdW5yZWdpc3Rlcl9kcml2ZXJgIHRoYXQgcnVuIG9uIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIHVuYmluZC4gVGhhdCdzIG5vdCB0aGUgY2FzZSBoZXJlLCB0aGFua2Z1bGx5LlxuXG5JIHRoaW5rIHRoaXMgb25lIGlzIHdvcnRoIGEgZnV6emluZyBhdHRlbXB0LiBFdmVuIHRob3VnaCB0aGUgbW9kdWxlIGluaXQgZXJyb3IgcGF0aHMgYXJlIG9ubHkgcmVsZXZhbnQgZHVyaW5nIG1vZHVsZSBsb2FkIGZhaWx1cmUsIGl0IHN0aWxsIHJlcHJlc2VudHMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgZXZlbiBpZiBhIG1pbm9yIG9uZS4gTXkgZ3V0IHNheXMgYFdvcnRoRnV6emluZz10cnVlYC4gSSBuZWVkIHRvIGJlIG1vcmUgc3BlY2lmaWMuIGBGb2N1c1N5bWJvbHM9W1wibWFjdmxhbl9pbml0X21vZHVsZVwiXWAgYW5kIGBFbmFibGVDb25maWdzPVtcIk1BQ1ZMQU5cIl1gLiBcblxuV2FpdCBhIHNlY29uZC4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGFtIG5vdCBtaXNzaW5nIGFueSBzdWJ0bGUgaW50ZXJhY3Rpb25zLiBJIHdpbGwgcmV2aWV3IGFuZCBjb25maXJtIHRoYXQgYG1hY3ZsYW5faW5pdF9tb2R1bGVgIGlzIHRoZSBvbmx5IGZ1bmN0aW9uIGJlaW5nIG1vZGlmaWVkLiBPa2F5LCBubywgbm90aGluZyBlbHNlIGhhcyBiZWVuIHRvdWNoZWQuXG5cblllcywgZ2l2ZW4gdGhpcywgSSB3aWxsIGp1c3QgcmV0dXJuIGBXb3J0aEZ1enppbmc9dHJ1ZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjc4ODQsIk91dHB1dFRva2VucyI6ODIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxODQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMDk6MzE6MjYuODgyOTczNTgxWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQ0NDQ5MjY4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNQUNWTEFOXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibWFjdmxhbl9pbml0X21vZHVsZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgZXJyb3IgaGFuZGxpbmcgdG8gdGhlIG1vZHVsZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiBvZiB0aGUgbWFjdmxhbiBkcml2ZXIuIFdoaWxlIGl0IG9ubHkgZXhlY3V0ZXMgZHVyaW5nIG1vZHVsZSBsb2FkIG9yIGJvb3QsIGl0IGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGtlcm5lbCBjb2RlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1BQ1ZMQU5cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJtYWN2bGFuX2luaXRfbW9kdWxlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBlcnJvciBoYW5kbGluZyB0byB0aGUgbW9kdWxlIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIG9mIHRoZSBtYWN2bGFuIGRyaXZlci4gV2hpbGUgaXQgb25seSBleGVjdXRlcyBkdXJpbmcgbW9kdWxlIGxvYWQgb3IgYm9vdCwgaXQgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUga2VybmVsIGNvZGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflow2qrhk[1] Phase: Succeeded StartedAt: 2026-08-03 09:31:39 +0000 UTC FinishedAt: 2026-08-03 09:31:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2qrhk[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-03 09:31:39 +0000 UTC FinishedAt: 2026-08-03 09:31:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2qrhk[2] Phase: Succeeded StartedAt: 2026-08-03 09:31:39 +0000 UTC FinishedAt: 2026-08-03 14:02:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2qrhk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"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":["macvlan_init_module"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"0297fed0-e38f-47fc-a3c9-32712eb80256","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-08-03 09:31:39 +0000 UTC FinishedAt: 2026-08-03 14:02:08 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"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":["macvlan_init_module"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"0297fed0-e38f-47fc-a3c9-32712eb80256","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-workflow2qrhk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"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":["macvlan_init_module"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"0297fed0-e38f-47fc-a3c9-32712eb80256","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-08-03 09:31:39 +0000 UTC FinishedAt: 2026-08-03 09:31:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2qrhk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"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":["macvlan_init_module"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"0297fed0-e38f-47fc-a3c9-32712eb80256","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-08-03 09:31:39 +0000 UTC FinishedAt: 2026-08-03 09:31:46 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"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-workflow2qrhk/series-workflow2qrhk-convert-artifact-2578817925/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2qrhk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"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":["macvlan_init_module"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"0297fed0-e38f-47fc-a3c9-32712eb80256","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-08-03 09:31:49 +0000 UTC FinishedAt: 2026-08-03 10:22:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2qrhk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"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":["macvlan_init_module"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"0297fed0-e38f-47fc-a3c9-32712eb80256","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-08-03 09:31:49 +0000 UTC FinishedAt: 2026-08-03 10:22:45 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*e5337a2c-11bc-4ac7-bc83-7bdd1c788260,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-workflow2qrhk/series-workflow2qrhk-convert-artifact-2578817925/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": "f3f7dc1b-8ad2-42ff-ac58-d93f8146eb41", "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-workflow2qrhk/series-workflow2qrhk-build-action-2322882347/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2qrhk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"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":["macvlan_init_module"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"0297fed0-e38f-47fc-a3c9-32712eb80256","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-08-03 09:31:49 +0000 UTC FinishedAt: 2026-08-03 10:22:34 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*e5337a2c-11bc-4ac7-bc83-7bdd1c788260,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-workflow2qrhk/series-workflow2qrhk-convert-artifact-2578817925/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": "f3f7dc1b-8ad2-42ff-ac58-d93f8146eb41", "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-workflow2qrhk/series-workflow2qrhk-build-action-2322882347/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2qrhk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"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":["macvlan_init_module"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"0297fed0-e38f-47fc-a3c9-32712eb80256","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-08-03 10:22:45 +0000 UTC FinishedAt: 2026-08-03 10:22:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2qrhk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"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":["macvlan_init_module"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"0297fed0-e38f-47fc-a3c9-32712eb80256","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-08-03 10:22:45 +0000 UTC FinishedAt: 2026-08-03 10:22:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2qrhk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"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":["macvlan_init_module"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"0297fed0-e38f-47fc-a3c9-32712eb80256","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-08-03 10:22:45 +0000 UTC FinishedAt: 2026-08-03 10:23:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2qrhk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"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":["macvlan_init_module"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"0297fed0-e38f-47fc-a3c9-32712eb80256","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-08-03 10:22:45 +0000 UTC FinishedAt: 2026-08-03 10:22:56 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"0297fed0-e38f-47fc-a3c9-32712eb80256","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-workflow2qrhk/series-workflow2qrhk-convert-artifact-87521376/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2qrhk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"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":["macvlan_init_module"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"0297fed0-e38f-47fc-a3c9-32712eb80256","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-08-03 10:23:08 +0000 UTC FinishedAt: 2026-08-03 10:25:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2qrhk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"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":["macvlan_init_module"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"0297fed0-e38f-47fc-a3c9-32712eb80256","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-08-03 10:23:08 +0000 UTC FinishedAt: 2026-08-03 10:24:53 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*f3f7dc1b-8ad2-42ff-ac58-d93f8146eb41,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-workflow2qrhk/series-workflow2qrhk-build-action-2322882347/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-workflow2qrhk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"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":["macvlan_init_module"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"0297fed0-e38f-47fc-a3c9-32712eb80256","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-08-03 10:25:03 +0000 UTC FinishedAt: 2026-08-03 10:25:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2qrhk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"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":["macvlan_init_module"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"0297fed0-e38f-47fc-a3c9-32712eb80256","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-08-03 10:25:03 +0000 UTC FinishedAt: 2026-08-03 10:25:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2qrhk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"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":["macvlan_init_module"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"0297fed0-e38f-47fc-a3c9-32712eb80256","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-08-03 10:25:03 +0000 UTC FinishedAt: 2026-08-03 10:57:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2qrhk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"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":["macvlan_init_module"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"0297fed0-e38f-47fc-a3c9-32712eb80256","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-08-03 10:25:03 +0000 UTC FinishedAt: 2026-08-03 10:57:23 +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:*e5337a2c-11bc-4ac7-bc83-7bdd1c788260,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-workflow2qrhk/series-workflow2qrhk-convert-artifact-87521376/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": "462f9a4c-07b8-4e5f-8b4b-fa2907740654", "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-workflow2qrhk/series-workflow2qrhk-build-action-1604969756/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2qrhk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"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":["macvlan_init_module"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"0297fed0-e38f-47fc-a3c9-32712eb80256","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-08-03 10:25:04 +0000 UTC FinishedAt: 2026-08-03 10:57:13 +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:*e5337a2c-11bc-4ac7-bc83-7bdd1c788260,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-workflow2qrhk/series-workflow2qrhk-convert-artifact-87521376/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": "462f9a4c-07b8-4e5f-8b4b-fa2907740654", "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-workflow2qrhk/series-workflow2qrhk-build-action-1604969756/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2qrhk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"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":["macvlan_init_module"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"0297fed0-e38f-47fc-a3c9-32712eb80256","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-08-03 10:57:23 +0000 UTC FinishedAt: 2026-08-03 10:57:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2qrhk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"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":["macvlan_init_module"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"0297fed0-e38f-47fc-a3c9-32712eb80256","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-08-03 10:57:24 +0000 UTC FinishedAt: 2026-08-03 10:57:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2qrhk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"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":["macvlan_init_module"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"0297fed0-e38f-47fc-a3c9-32712eb80256","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-08-03 10:57:24 +0000 UTC FinishedAt: 2026-08-03 10:59:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2qrhk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"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":["macvlan_init_module"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"0297fed0-e38f-47fc-a3c9-32712eb80256","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-08-03 10:57:24 +0000 UTC FinishedAt: 2026-08-03 10:59:19 +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:*462f9a4c-07b8-4e5f-8b4b-fa2907740654,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-workflow2qrhk/series-workflow2qrhk-build-action-1604969756/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-workflow2qrhk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"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":["macvlan_init_module"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"0297fed0-e38f-47fc-a3c9-32712eb80256","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-08-03 10:59:29 +0000 UTC FinishedAt: 2026-08-03 14:02:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2qrhk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"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":["macvlan_init_module"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"0297fed0-e38f-47fc-a3c9-32712eb80256","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-08-03 10:59:29 +0000 UTC FinishedAt: 2026-08-03 14:02:08 +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":["macvlan_init_module"],"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:*f3f7dc1b-8ad2-42ff-ac58-d93f8146eb41,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*462f9a4c-07b8-4e5f-8b4b-fa2907740654,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-workflow2qrhk/series-workflow2qrhk-build-action-2322882347/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-workflow2qrhk/series-workflow2qrhk-build-action-1604969756/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow2qrhk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"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":["macvlan_init_module"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"0297fed0-e38f-47fc-a3c9-32712eb80256","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-08-03 10:59:29 +0000 UTC FinishedAt: 2026-08-03 10:59:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2qrhk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"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":["macvlan_init_module"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"0297fed0-e38f-47fc-a3c9-32712eb80256","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-08-03 10:59:29 +0000 UTC FinishedAt: 2026-08-03 10:59:33 +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":["macvlan_init_module"],"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-workflow2qrhk/series-workflow2qrhk-convert-artifact-1662971577/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow2qrhk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"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":["macvlan_init_module"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"0297fed0-e38f-47fc-a3c9-32712eb80256","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-08-03 10:59:29 +0000 UTC FinishedAt: 2026-08-03 10:59:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2qrhk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"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":["macvlan_init_module"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"0297fed0-e38f-47fc-a3c9-32712eb80256","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-08-03 10:59:29 +0000 UTC FinishedAt: 2026-08-03 10:59:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2qrhk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"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":["macvlan_init_module"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"0297fed0-e38f-47fc-a3c9-32712eb80256","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-08-03 10:59:29 +0000 UTC FinishedAt: 2026-08-03 10:59:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2qrhk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"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":["macvlan_init_module"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"0297fed0-e38f-47fc-a3c9-32712eb80256","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-08-03 10:59:39 +0000 UTC FinishedAt: 2026-08-03 14:02:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2qrhk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"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":["macvlan_init_module"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"69963a0678a347d57c4ac8b16939dba216eb95ce","config_name":"upstream-apparmor-kasan.config","enable_configs":["MACVLAN"],"series_id":"0297fed0-e38f-47fc-a3c9-32712eb80256","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-08-03 10:59:39 +0000 UTC FinishedAt: 2026-08-03 14:01:58 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*f3f7dc1b-8ad2-42ff-ac58-d93f8146eb41,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*462f9a4c-07b8-4e5f-8b4b-fa2907740654,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-workflow2qrhk/series-workflow2qrhk-build-action-2322882347/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-workflow2qrhk/series-workflow2qrhk-build-action-1604969756/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-workflow2qrhk/series-workflow2qrhk-convert-artifact-1662971577/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,}