Name: series-workflowzbwjm Phase: Succeeded StartedAt: 2026-08-04 20:21:32 +0000 UTC FinishedAt: 2026-08-04 22:43:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbwjm[0] Phase: Succeeded StartedAt: 2026-08-04 20:21:32 +0000 UTC FinishedAt: 2026-08-04 21:10:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbwjm[0].run-triage Phase: Succeeded StartedAt: 2026-08-04 20:21:32 +0000 UTC FinishedAt: 2026-08-04 21:10:55 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "a347304b2ca1a5377d5bd2d8a72e4b4f12afe648", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NF_TABLES", "NF_TABLES_NETDEV", "NF_DUP_NETDEV", "NFT_DUP_NETDEV", "NFT_FWD_NETDEV" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "a347304b2ca1a5377d5bd2d8a72e4b4f12afe648", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NF_TABLES", "NF_TABLES_NETDEV", "NF_DUP_NETDEV", "NFT_DUP_NETDEV", "NFT_FWD_NETDEV" ], "series_id": "32ee6d01-01d7-4544-8638-64e4eb5bd263" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "nf_dup_netdev_egress" ], "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+CgkJCTx0ZD4yMDI2LzA4LzA0IDIxOjEwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05GX1RBQkxFUyYjMzQ7LAogICAgJiMzNDtORl9UQUJMRVNfTkVUREVWJiMzNDssCiAgICAmIzM0O05GX0RVUF9ORVRERVYmIzM0OywKICAgICYjMzQ7TkZUX0RVUF9ORVRERVYmIzM0OywKICAgICYjMzQ7TkZUX0ZXRF9ORVRERVYmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtuZl9kdXBfbmV0ZGV2X2VncmVzcyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBgbmZfZHVwX25ldGRldl9lZ3Jlc3NgIHRvIGNhbGwgYHNrYl9zY3J1Yl9wYWNrZXRgIGJlZm9yZSBgbmZfZG9fbmV0ZGV2X2VncmVzc2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbmV0ZmlsdGVyIHBhY2tldCBkdXBsaWNhdGlvbiBsb2dpYywgd2hpY2ggaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBuZl90YWJsZXMgbmV0bGluayBBUEkuIEZ1enppbmcgdGhpcyBmdW5jdGlvbiBjYW4gaGVscCBlbnN1cmUgdGhhdCB0aGUgcGFja2V0IHNjcnViYmluZyBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IHJlZ3Jlc3Npb25zIG9yIG1lbW9yeSBpc3N1ZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMjE6MTA8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAwZTBlOThkODk1M2YzZjRjOTU3YjQyZjU1YWY2NjgzZDA5YTI2YjA3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBBdWcgNCAyMToxMDoxNSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvbmV0ZmlsdGVyL25mX2R1cF9uZXRkZXYuYyBiL25ldC9uZXRmaWx0ZXIvbmZfZHVwX25ldGRldi5jXG5pbmRleCBjNmJkNWMyOWJlZDY2Li4wZjQ3YTIxMzU5NTVlIDEwMDY0NFxuLS0tIGEvbmV0L25ldGZpbHRlci9uZl9kdXBfbmV0ZGV2LmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC9uZXRmaWx0ZXIvbmZfZHVwX25ldGRldi5jXG5AQCAtNjMsOCAmIzQzOzYzLDEwIEBAIHZvaWQgbmZfZHVwX25ldGRldl9lZ3Jlc3MoY29uc3Qgc3RydWN0IG5mdF9wa3RpbmZvICpwa3QsIGludCBvaWYpXG4gXHRcdHJldHVybjtcbiBcbiBcdHNrYiA9IHNrYl9jbG9uZShwa3QtXHUwMDNlc2tiLCBHRlBfQVRPTUlDKTtcbi1cdGlmIChza2IpXG4mIzQzO1x0aWYgKHNrYikge1xuJiM0MztcdFx0c2tiX3NjcnViX3BhY2tldChza2IsIGZhbHNlKTtcbiBcdFx0bmZfZG9fbmV0ZGV2X2VncmVzcyhza2IsIGRldiwgbmZ0X2hvb2socGt0KSk7XG4mIzQzO1x0fVxuIH1cbiBFWFBPUlRfU1lNQk9MX0dQTChuZl9kdXBfbmV0ZGV2X2VncmVzcyk7XG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMjE6MTA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05GX1RBQkxFUyYjMzQ7LAogICAgJiMzNDtORl9UQUJMRVNfTkVUREVWJiMzNDssCiAgICAmIzM0O05GX0RVUF9ORVRERVYmIzM0OywKICAgICYjMzQ7TkZUX0RVUF9ORVRERVYmIzM0OywKICAgICYjMzQ7TkZUX0ZXRF9ORVRERVYmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtuZl9kdXBfbmV0ZGV2X2VncmVzcyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBgbmZfZHVwX25ldGRldl9lZ3Jlc3NgIHRvIGNhbGwgYHNrYl9zY3J1Yl9wYWNrZXRgIGJlZm9yZSBgbmZfZG9fbmV0ZGV2X2VncmVzc2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbmV0ZmlsdGVyIHBhY2tldCBkdXBsaWNhdGlvbiBsb2dpYywgd2hpY2ggaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBuZl90YWJsZXMgbmV0bGluayBBUEkuIEZ1enppbmcgdGhpcyBmdW5jdGlvbiBjYW4gaGVscCBlbnN1cmUgdGhhdCB0aGUgcGFja2V0IHNjcnViYmluZyBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IHJlZ3Jlc3Npb25zIG9yIG1lbW9yeSBpc3N1ZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAwZTBlOThkODk1M2YzZjRjOTU3YjQyZjU1YWY2NjgzZDA5YTI2YjA3CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBBdWcgNCAyMToxMDoxNSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC9uZXRmaWx0ZXIvbmZfZHVwX25ldGRldi5jIGIvbmV0L25ldGZpbHRlci9uZl9kdXBfbmV0ZGV2LmMKaW5kZXggYzZiZDVjMjliZWQ2Ni4uMGY0N2EyMTM1OTU1ZSAxMDA2NDQKLS0tIGEvbmV0L25ldGZpbHRlci9uZl9kdXBfbmV0ZGV2LmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L25ldGZpbHRlci9uZl9kdXBfbmV0ZGV2LmMKQEAgLTYzLDggJiM0Mzs2MywxMCBAQCB2b2lkIG5mX2R1cF9uZXRkZXZfZWdyZXNzKGNvbnN0IHN0cnVjdCBuZnRfcGt0aW5mbyAqcGt0LCBpbnQgb2lmKQogCQlyZXR1cm47CiAKIAlza2IgPSBza2JfY2xvbmUocGt0LSZndDtza2IsIEdGUF9BVE9NSUMpOwotCWlmIChza2IpCiYjNDM7CWlmIChza2IpIHsKJiM0MzsJCXNrYl9zY3J1Yl9wYWNrZXQoc2tiLCBmYWxzZSk7CiAJCW5mX2RvX25ldGRldl9lZ3Jlc3Moc2tiLCBkZXYsIG5mdF9ob29rKHBrdCkpOwomIzQzOwl9CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChuZl9kdXBfbmV0ZGV2X2VncmVzcyk7CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMjE6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjA5OQoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDEwNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE5ldGZpbHRlciBFZ3Jlc3MgTW9kaWZpY2F0aW9uKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgYG5mX2R1cF9uZXRkZXZfZWdyZXNzYCB3aXRoaW4gYG5ldC9uZXRmaWx0ZXIvbmZfZHVwX25ldGRldi5jYC4gUmlnaHQgb2ZmIHRoZSBiYXQsIEkgc2VlIHRoZXkmIzM5O3JlIGludHJvZHVjaW5nIGEgYHNrYl9zY3J1Yl9wYWNrZXQoc2tiLCBmYWxzZSk7YCBjYWxsIGJlZm9yZSB0aGUgYG5mX2RvX25ldGRldl9lZ3Jlc3Moc2tiLCBkZXYsIG5mdF9ob29rKHBrdCkpO2AgZXhlY3V0aW9uLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGEgcHJldHR5IGNsZWFyIG1vZGlmaWNhdGlvbiB0byB0aGUgbmV0ZmlsdGVyIGJlaGF2aW9yLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgJiMzNDtXaGF0IGFyZSB0aGUgaW1wbGljYXRpb25zPyYjMzQ7CgpJIG5lZWQgdG8gZGl2ZSBpbnRvIGBuZl9kdXBfbmV0ZGV2X2VncmVzc2AgaXRzZWxmLCB1bmRlcnN0YW5kIGl0cyBleGFjdCBmdW5jdGlvbiBhbmQgb3BlcmF0aW9uLiBUaGVuLCBJJiMzOTtsbCBuZWVkIHRvIG1ldGljdWxvdXNseSBnbyB0aHJvdWdoIHRoZSBjb25maWd1cmF0aW9uIGRlcGVuZGVuY2llcy4gV2hhdCBvdGhlciBjb21wb25lbnRzIHJlbHkgb24gdGhpcyBmdW5jdGlvbj8gSG93IG1pZ2h0IHRoaXMgYHNrYl9zY3J1Yl9wYWNrZXRgIGNhbGwgaW1wYWN0IGV4aXN0aW5nIGNvbmZpZ3VyYXRpb25zIG9yIGludHJvZHVjZSBzdWJ0bGUgYmVoYXZpb3JhbCBzaGlmdHMgSSBuZWVkIHRvIGJlIGF3YXJlIG9mPyBBcmUgdGhlcmUgYW55IHBvdGVudGlhbCBwZXJmb3JtYW5jZSBpbXBsaWNhdGlvbnMsIGVpdGhlciBwb3NpdGl2ZSBvciBuZWdhdGl2ZSwgZnJvbSB0aGlzIHNjcnViIG9wZXJhdGlvbj8gSeKAmWxsIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgbnVhbmNlcyBvZiB0aGlzIGNoYW5nZSB0byBlbnN1cmUgY29tcGF0aWJpbGl0eSBhbmQgcHJldmVudCB1bmV4cGVjdGVkIHNpZGUgZWZmZWN0cyBkb3duc3RyZWFtLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDIxOjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O25mX2R1cF9uZXRkZXZfZWdyZXNzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L25ldGZpbHRlci8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L25ldGZpbHRlci9uZl9kdXBfbmV0ZGV2LmM9NTQ9RVhQT1JUX1NZTUJPTF9HUEwobmZfZndkX25ldGRldl9lZ3Jlc3MpO1xubmV0L25ldGZpbHRlci9uZl9kdXBfbmV0ZGV2LmMtNTUtXG5uZXQvbmV0ZmlsdGVyL25mX2R1cF9uZXRkZXYuYzo1Njp2b2lkIG5mX2R1cF9uZXRkZXZfZWdyZXNzKGNvbnN0IHN0cnVjdCBuZnRfcGt0aW5mbyAqcGt0LCBpbnQgb2lmKVxubmV0L25ldGZpbHRlci9uZl9kdXBfbmV0ZGV2LmMtNTcte1xuLS1cbm5ldC9uZXRmaWx0ZXIvbmZfZHVwX25ldGRldi5jLTcwLX1cbm5ldC9uZXRmaWx0ZXIvbmZfZHVwX25ldGRldi5jOjcxOkVYUE9SVF9TWU1CT0xfR1BMKG5mX2R1cF9uZXRkZXZfZWdyZXNzKTtcbm5ldC9uZXRmaWx0ZXIvbmZfZHVwX25ldGRldi5jLTcyLVxuLS1cbm5ldC9uZXRmaWx0ZXIvbmZ0X2R1cF9uZXRkZXYuYz0yMD1zdGF0aWMgdm9pZCBuZnRfZHVwX25ldGRldl9ldmFsKGNvbnN0IHN0cnVjdCBuZnRfZXhwciAqZXhwcixcbi0tXG5uZXQvbmV0ZmlsdGVyL25mdF9kdXBfbmV0ZGV2LmMtMjYtXG5uZXQvbmV0ZmlsdGVyL25mdF9kdXBfbmV0ZGV2LmM6Mjc6XHRuZl9kdXBfbmV0ZGV2X2VncmVzcyhwa3QsIG9pZik7XG5uZXQvbmV0ZmlsdGVyL25mdF9kdXBfbmV0ZGV2LmMtMjgtfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDIxOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI3OTEKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiA2MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duIHJlYXNvbmluZzoKCioqQW5hbHl6aW5nIHRoZSBOZXRmaWx0ZXIgRHVwbGljYXRpb24gTW9kdWxlKioKClJpZ2h0LCBsZXQmIzM5O3Mgc2VlLCB0aGUgYG5mX2R1cF9uZXRkZXZfZWdyZXNzYCBmdW5jdGlvbi4uLnRoYXQmIzM5O3MgZXhwb3J0ZWQsIHNvIGl0JiMzOTtzIGEga2V5IHBpZWNlIG9mIHRoZSBwdXp6bGUuIEkga25vdyBpdCYjMzk7cyB1c2VkIGluIGBuZXQvbmV0ZmlsdGVyL25mdF9kdXBfbmV0ZGV2LmNgLiBNYWtlcyBzZW5zZSwgdGhlIE5ldHdvcmsgRmlsdGVyIFRhYmxlIChORlQpIGZyYW1ld29yayB3b3VsZCBsaWtlbHkgYmUgbGV2ZXJhZ2luZyBzb21lIGxvd2VyLWxldmVsIGZ1bmN0aW9uYWxpdHkuCgpOb3csIGlmIEkmIzM5O20gdHJ5aW5nIHRvIGZ1bGx5IHVuZGVyc3RhbmQgaG93IHRoaXMgZHVwbGljYXRpb24gcHJvY2VzcyB3b3JrcyB3aXRoaW4gdGhlIE5ldGZpbHRlciBjb250ZXh0LCB0aGUgKmZpcnN0KiB0aGluZyBJIHdhbnQgdG8gZG8gaXMgY2hlY2sgdGhlIEtjb25maWcgZmlsZXMgZm9yIGJvdGggYG5mX2R1cF9uZXRkZXYuY2AgYW5kIGBuZnRfZHVwX25ldGRldi5jYC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCBkZXBlbmRlbmNpZXMgYW5kIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgaW4gcGxheS4gQXJlIHRoZXJlIHNwZWNpZmljIG1vZHVsZXMgdGhhdCBuZWVkIHRvIGJlIGVuYWJsZWQgZm9yIHRoaXMgZHVwbGljYXRpb24gZnVuY3Rpb25hbGl0eSB0byB3b3JrPyBXaGF0IGxldmVsIG9mIGNvbmZpZ3VyYWJpbGl0eSBkbyB3ZSBoYXZlIGhlcmU/IFRoaXMgd2lsbCBnaXZlIG1lIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIHByZWNvbmRpdGlvbnMgZm9yIHRoaXMgZmVhdHVyZSwgYW5kIGhvdyBpdCBpcyBlbmFibGVkLCBvciBkaXNhYmxlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAyMToxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtuZl9kdXBfbmV0ZGV2JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L25ldGZpbHRlci9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbmV0ZmlsdGVyL01ha2VmaWxlPTgxPW9iai0kKENPTkZJR19ORVRGSUxURVJfQ09OTkNPVU5UKSAmIzQzOz0gbmZfY29ubmNvdW50Lm9cbi0tXG5uZXQvbmV0ZmlsdGVyL01ha2VmaWxlLTgzLSMgZ2VuZXJpYyBwYWNrZXQgZHVwbGljYXRpb24gZnJvbSBuZXRkZXYgZmFtaWx5XG5uZXQvbmV0ZmlsdGVyL01ha2VmaWxlOjg0Om9iai0kKENPTkZJR19ORl9EVVBfTkVUREVWKVx0JiM0Mzs9IG5mX2R1cF9uZXRkZXYub1xubmV0L25ldGZpbHRlci9NYWtlZmlsZS04NS1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAyMToxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMjIzCgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogMzQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqSW52ZXN0aWdhdGluZyB0aGUgYENPTkZJR19ORl9EVVBfTkVUREVWYCBEZXBlbmRlbmN5KioKCkFscmlnaHQsIHNvIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgYENPTkZJR19ORl9EVVBfTkVUREVWYCDigJMgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIHJvbGUuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBmaWd1cmUgb3V0IHRoZSB1cHN0cmVhbSBkZXBlbmRlbmNpZXM7IHdoYXQgKnNlbGVjdHMqIGl0LCB3aGF0ICpkZXBlbmRzKiBvbiBpdC4gSSBuZWVkIHRvIGtub3cgd2hhdCBmZWF0dXJlcyBvciBtb2R1bGVzIGluIHRoZSBrZXJuZWwgY29uZmlndXJhdGlvbiByZWx5IG9uIHRoaXMgc3BlY2lmaWMgb3B0aW9uLiBUaGlzIGlzIHRoZSBjcml0aWNhbCBmaXJzdCBzdGVwIHRvIHVuZGVyc3RhbmQgd2hlcmUgdGhpcyBmaXRzIGludG8gdGhlIHdob2xlIHBpY3R1cmUsIHdoZXJlIGl0IG1pZ2h0IGludHJvZHVjZSBjb25mbGljdHMsIG9yIGlmIGl0IG1pZ2h0IHByZXNlbnQgYW4gb3Bwb3J0dW5pdHkgZm9yIG9wdGltaXphdGlvbiwgb3IgbWF5YmUgaXMgYSBibG9ja2VyIGZvciBzb21ldGhpbmcgSSAqZG8qIG5lZWQuIEl0JiMzOTtzIGEgZnVuZGFtZW50YWwgcGFydCBvZiB0aGUgY29uZmlndXJhdGlvbiBtYW5hZ2VtZW50IHByb2Nlc3MsIGFuZCB3aGVyZSBJIGJlZ2luIGFueSBpbi1kZXB0aCBleHBsb3JhdGlvbiBvZiBrZXJuZWwgb3B0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAyMToxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtORl9EVVBfTkVUREVWJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L25ldGZpbHRlci9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9uZXRmaWx0ZXIvS2NvbmZpZz02NjA9aWYgTkZfVEFCTEVTX05FVERFVlxubmV0L25ldGZpbHRlci9LY29uZmlnLTY2MS1cbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzo2NjI6Y29uZmlnIE5GX0RVUF9ORVRERVZcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy02NjMtXHR0cmlzdGF0ZSBcJiMzNDtOZXRmaWx0ZXIgcGFja2V0IGR1cGxpY2F0aW9uIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc9NjY4PWNvbmZpZyBORlRfRFVQX05FVERFVlxubmV0L25ldGZpbHRlci9LY29uZmlnLTY2OS1cdHRyaXN0YXRlIFwmIzM0O05ldGZpbHRlciBuZl90YWJsZXMgbmV0ZGV2IHBhY2tldCBkdXBsaWNhdGlvbiBzdXBwb3J0XCYjMzQ7XG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6NjcwOlx0c2VsZWN0IE5GX0RVUF9ORVRERVZcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy02NzEtXHRoZWxwXG4tLVxubmV0L25ldGZpbHRlci9LY29uZmlnPTY3ND1jb25maWcgTkZUX0ZXRF9ORVRERVZcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy02NzUtXHR0cmlzdGF0ZSBcJiMzNDtOZXRmaWx0ZXIgbmZfdGFibGVzIG5ldGRldiBwYWNrZXQgZm9yd2FyZGluZyBzdXBwb3J0XCYjMzQ7XG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6Njc2Olx0c2VsZWN0IE5GX0RVUF9ORVRERVZcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy02NzctXHRoZWxwXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMjE6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzczMAoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDk1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKktlcm5lbCBDb25maWd1cmF0aW9uIERlcGVuZGVuY2llcyoqCgpPa2F5LCBzbyBJJiMzOTttIGRpZ2dpbmcgaW50byB0aGlzIGtlcm5lbCBjb25maWd1cmF0aW9uIHNwYWNlIGFuZCBuZWVkIHRvIG1ha2Ugc3VyZSBJJiMzOTt2ZSBnb3QgdGhlIGRlcGVuZGVuY2llcyByaWdodC4gSXQgbG9va3MgbGlrZSBgQ09ORklHX05GX0RVUF9ORVRERVZgIGlzIGJyb3VnaHQgaW4gYnkgYm90aCBgTkZUX0RVUF9ORVRERVZgIGFuZCBgTkZUX0ZXRF9ORVRERVZgLiBUaGVyZWZvcmUsIHRvIGVuYWJsZSB0aGUgZnVuY3Rpb25hbGl0eSBJJiMzOTttIGludGVyZXN0ZWQgaW4sIEkgc2hvdWxkIGRlZmluaXRlbHkgaW5jbHVkZSBgTkZfRFVQX05FVERFVmAsIGBORlRfRFVQX05FVERFVmAsIGFuZCBgTkZUX0ZXRF9ORVRERVZgIGluIG15IGNvbmZpZ3VyYXRpb24uIFRoaW5raW5nIGFib3V0IGl0IEkgc2hvdWxkIGFsc28gaW5jbHVkZSBgTkZfVEFCTEVTX05FVERFVmAsIGFzIHRoYXQgc2VlbXMgbGlrZSBhIHJlbGF0ZWQgaXRlbS4gV2FpdCBhIHNlY29uZCwgaXMgYE5GX1RBQkxFU19ORVRERVZgIGEgYm9vbGVhbiBvciBhIHRyaXN0YXRlPyBJIG5lZWQgdG8gY2hlY2sgdGhlIEtjb25maWcgdG8gYmUgc3VyZSwgYmVmb3JlIEkgZ28gYW55IGZ1cnRoZXIsIGFzIHRoYXQgY291bGQgY2hhbmdlIHRoaW5ncy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMjE6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TkZfVEFCTEVTX05FVERFViYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9uZXRmaWx0ZXIvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbmV0ZmlsdGVyL0tjb25maWc9NDcyPWNvbmZpZyBORl9UQUJMRVNfSU5FVFxuLS1cbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy00NzktXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6NDgwOmNvbmZpZyBORl9UQUJMRVNfTkVUREVWXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctNDgxLVx0Ym9vbCBcJiMzNDtOZXRmaWx0ZXIgbmZfdGFibGVzIG5ldGRldiB0YWJsZXMgc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZz02NDk9Y29uZmlnIE5GVF9TWU5QUk9YWVxuLS1cbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy02NTktXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6NjYwOmlmIE5GX1RBQkxFU19ORVRERVZcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy02NjEtXG4tLVxubmV0L25ldGZpbHRlci9LY29uZmlnPTY4OT1jb25maWcgTkZUX1JFSkVDVF9ORVRERVZcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctNjk4LVxubmV0L25ldGZpbHRlci9LY29uZmlnOjY5OTplbmRpZiAjIE5GX1RBQkxFU19ORVRERVZcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy03MDAtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDIxOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQyNzcKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiAxMDUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQ29uZmlndXJhdGlvbiBQbGFuKioKCkFscmlnaHQsIGxldCYjMzk7cyBzb2xpZGlmeSB0aGlzLiBJJiMzOTt2ZSBjb25maXJtZWQgdGhhdCBgTkZfVEFCTEVTX05FVERFVmAgaXMgaW5kZWVkIGEgYm9vbGVhbiBjb25maWd1cmF0aW9uIG9wdGlvbi4gTXkgaW1tZWRpYXRlIHRhc2sgaW52b2x2ZXMgZW5hYmxpbmcgdGhlIGZ1bmN0aW9uIGBuZl9kdXBfbmV0ZGV2X2VncmVzc2AuIFRvIGRvIHRoaXMgcHJvcGVybHksIEkmIzM5O20gZ29pbmcgdG8gYWRkIHRoZSBmb2xsb3dpbmcgb3B0aW9ucyB0byBgRW5hYmxlQ29uZmlnc2A6IGBORl9EVVBfTkVUREVWYCwgYE5GVF9EVVBfTkVUREVWYCwgYE5GVF9GV0RfTkVUREVWYCwgYE5GX1RBQkxFU19ORVRERVZgLCBhbmQgYE5GX1RBQkxFU2AuIAoKSG93ZXZlciwgYmVmb3JlIEkgaW1wbGVtZW50IGFueXRoaW5nLCBpdCYjMzk7cyBlc3NlbnRpYWwgdG8gcGVyZm9ybSBhIHRob3JvdWdoIGNoZWNrIGZvciBhbnkgb3RoZXIgZGVwZW5kZW5jaWVzIG9yIHJlbGF0ZWQgY29uZmlndXJhdGlvbnMgdGhhdCBtaWdodCBhZmZlY3QgdGhpcy4gR290dGEgbWFrZSBzdXJlIEkgZG9uJiMzOTt0IG92ZXJsb29rIGFueXRoaW5nIHRoYXQgY291bGQgbGVhZCB0byB1bmV4cGVjdGVkIGJlaGF2aW9yIGxhdGVyIG9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAyMToxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtORlRfRFVQX05FVERFViYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9uZXRmaWx0ZXIvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbmV0ZmlsdGVyL0tjb25maWc9NjYyPWNvbmZpZyBORl9EVVBfTkVUREVWXG4tLVxubmV0L25ldGZpbHRlci9LY29uZmlnLTY2Ny1cbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzo2Njg6Y29uZmlnIE5GVF9EVVBfTkVUREVWXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctNjY5LVx0dHJpc3RhdGUgXCYjMzQ7TmV0ZmlsdGVyIG5mX3RhYmxlcyBuZXRkZXYgcGFja2V0IGR1cGxpY2F0aW9uIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMjE6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDY3MwoJCQkJCQkJb3V0cHV0OiAxNzEKCQkJCQkJCXRob3VnaHRzOiAyNTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb24qKgoKT2theSwgc28gSSYjMzk7dmUgcGlucG9pbnRlZCBhIHNwZWNpZmljIGZ1bmN0aW9uLCBgbmZfZHVwX25ldGRldl9lZ3Jlc3NgLiBJcyB0aGVyZSAqYW55dGhpbmcqIGVsc2UgY2hhbmdlZCBieSB0aGlzIHBhdGNoPyBOb3BlLCBqdXN0IHRoaXMgb25lLiBUaGF0IG1ha2VzIGl0IGEgcHJpbWUgY2FuZGlkYXRlIGZvciBmdXp6aW5nLgoKTGV0JiMzOTtzIGRvIGEgcXVpY2sgcmVhY2hhYmlsaXR5IGNoZWNrLiBBbHJpZ2h0LCBgbmZfZHVwX25ldGRldl9lZ3Jlc3NgIGlzIGNhbGxlZCBmcm9tIGBuZnRfZHVwX25ldGRldl9ldmFsYCwgd2hpY2ggaXMgdGhlIGV2YWx1YXRpb24gY2FsbGJhY2sgZm9yIGBuZnRfZHVwX25ldGRldl90eXBlYC4gRXhjZWxsZW50LCBtZWFuaW5nIHRoaXMgaXMgdXNlci1hY2Nlc3NpYmxlIHZpYSBuZXRsaW5rIGFuZCBuZl90YWJsZXMsIHdoaWNoIGlzIGV4YWN0bHkgd2hhdCBJIHdhcyBob3BpbmcgZm9yLgoKQmFzZWQgb24gdGhlIGVuYWJsZWQgY29uZmlndXJhdGlvbnMgKE5GX1RBQkxFUywgTkZfVEFCTEVTX05FVERFViwgTkZfRFVQX05FVERFViwgTkZUX0RVUF9ORVRERVYsIE5GVF9GV0RfTkVUREVWKSwgdGhlIGZ1bmN0aW9uYWxpdHkgdG8gdGFyZ2V0IGlzIGRlZmluaXRlbHkgcHJlc2VudCBpbiB0aGlzIGJ1aWxkLgoKVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSByZXZvbHZlcyBhcm91bmQgYG5mX2R1cF9uZXRkZXZfZWdyZXNzYCBub3cgY2FsbGluZyBgc2tiX3NjcnViX3BhY2tldGAgKmJlZm9yZSogYG5mX2RvX25ldGRldl9lZ3Jlc3NgLiBUaGF0JiMzOTtzIGEgZnVuY3Rpb25hbCBtb2RpZmljYXRpb24gd2l0aGluIHRoZSBuZXRmaWx0ZXIgcGFja2V0IGR1cGxpY2F0aW9uIGxvZ2ljLiBNeSBwcmltYXJ5IGNvbmNlcm4gaXMgZW5zdXJpbmcgdGhpcyBwYWNrZXQgc2NydWJiaW5nIGRvZXNuJiMzOTt0IGludHJvZHVjZSByZWdyZXNzaW9ucyBvciBhbnkgbWVtb3J5IGNvcnJ1cHRpb24gaXNzdWVzLCBzbyBJIHdpbGwgc3RhcnQgZnV6emluZyB0aGlzIGZ1bmN0aW9uIGRpcmVjdGx5LiBUaGlzIHNlZW1zIGxpa2UgYSBzb2xpZCB0YXJnZXQgZm9yIHNvbWUgZm9jdXNzZWQgZnV6emluZyBlZmZvcnRzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAyMToxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkZfVEFCTEVTJiMzNDssCiAgICAmIzM0O05GX1RBQkxFU19ORVRERVYmIzM0OywKICAgICYjMzQ7TkZfRFVQX05FVERFViYjMzQ7LAogICAgJiMzNDtORlRfRFVQX05FVERFViYjMzQ7LAogICAgJiMzNDtORlRfRldEX05FVERFViYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O25mX2R1cF9uZXRkZXZfZWdyZXNzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGBuZl9kdXBfbmV0ZGV2X2VncmVzc2AgdG8gY2FsbCBgc2tiX3NjcnViX3BhY2tldGAgYmVmb3JlIGBuZl9kb19uZXRkZXZfZWdyZXNzYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBuZXRmaWx0ZXIgcGFja2V0IGR1cGxpY2F0aW9uIGxvZ2ljLCB3aGljaCBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIG5mX3RhYmxlcyBuZXRsaW5rIEFQSS4gRnV6emluZyB0aGlzIGZ1bmN0aW9uIGNhbiBoZWxwIGVuc3VyZSB0aGF0IHRoZSBwYWNrZXQgc2NydWJiaW5nIGRvZXMgbm90IGludHJvZHVjZSBhbnkgcmVncmVzc2lvbnMgb3IgbWVtb3J5IGlzc3Vlcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkZfVEFCTEVTJiMzNDssCiAgICAmIzM0O05GX1RBQkxFU19ORVRERVYmIzM0OywKICAgICYjMzQ7TkZfRFVQX05FVERFViYjMzQ7LAogICAgJiMzNDtORlRfRFVQX05FVERFViYjMzQ7LAogICAgJiMzNDtORlRfRldEX05FVERFViYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O25mX2R1cF9uZXRkZXZfZWdyZXNzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGBuZl9kdXBfbmV0ZGV2X2VncmVzc2AgdG8gY2FsbCBgc2tiX3NjcnViX3BhY2tldGAgYmVmb3JlIGBuZl9kb19uZXRkZXZfZWdyZXNzYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBuZXRmaWx0ZXIgcGFja2V0IGR1cGxpY2F0aW9uIGxvZ2ljLCB3aGljaCBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIG5mX3RhYmxlcyBuZXRsaW5rIEFQSS4gRnV6emluZyB0aGlzIGZ1bmN0aW9uIGNhbiBoZWxwIGVuc3VyZSB0aGF0IHRoZSBwYWNrZXQgc2NydWJiaW5nIGRvZXMgbm90IGludHJvZHVjZSBhbnkgcmVncmVzc2lvbnMgb3IgbWVtb3J5IGlzc3Vlcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDIxOjEwOjE2LjY4NjMxMDc2M1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI2ODc3ODgzNzMzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk5GX1RBQkxFU1wiLFxuICAgIFwiTkZfVEFCTEVTX05FVERFVlwiLFxuICAgIFwiTkZfRFVQX05FVERFVlwiLFxuICAgIFwiTkZUX0RVUF9ORVRERVZcIixcbiAgICBcIk5GVF9GV0RfTkVUREVWXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibmZfZHVwX25ldGRldl9lZ3Jlc3NcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBgbmZfZHVwX25ldGRldl9lZ3Jlc3NgIHRvIGNhbGwgYHNrYl9zY3J1Yl9wYWNrZXRgIGJlZm9yZSBgbmZfZG9fbmV0ZGV2X2VncmVzc2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbmV0ZmlsdGVyIHBhY2tldCBkdXBsaWNhdGlvbiBsb2dpYywgd2hpY2ggaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBuZl90YWJsZXMgbmV0bGluayBBUEkuIEZ1enppbmcgdGhpcyBmdW5jdGlvbiBjYW4gaGVscCBlbnN1cmUgdGhhdCB0aGUgcGFja2V0IHNjcnViYmluZyBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IHJlZ3Jlc3Npb25zIG9yIG1lbW9yeSBpc3N1ZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDIxOjEwOjE2LjY4NjMxNjgxM1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTIzNjU3Mzc3NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDBlMGU5OGQ4OTUzZjNmNGM5NTdiNDJmNTVhZjY2ODNkMDlhMjZiMDdcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBBdWcgNCAyMToxMDoxNSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9uZXQvbmV0ZmlsdGVyL25mX2R1cF9uZXRkZXYuYyBiL25ldC9uZXRmaWx0ZXIvbmZfZHVwX25ldGRldi5jXFxuaW5kZXggYzZiZDVjMjliZWQ2Ni4uMGY0N2EyMTM1OTU1ZSAxMDA2NDRcXG4tLS0gYS9uZXQvbmV0ZmlsdGVyL25mX2R1cF9uZXRkZXYuY1xcbisrKyBiL25ldC9uZXRmaWx0ZXIvbmZfZHVwX25ldGRldi5jXFxuQEAgLTYzLDggKzYzLDEwIEBAIHZvaWQgbmZfZHVwX25ldGRldl9lZ3Jlc3MoY29uc3Qgc3RydWN0IG5mdF9wa3RpbmZvICpwa3QsIGludCBvaWYpXFxuIFxcdFxcdHJldHVybjtcXG4gXFxuIFxcdHNrYiA9IHNrYl9jbG9uZShwa3QtXFx1MDAzZXNrYiwgR0ZQX0FUT01JQyk7XFxuLVxcdGlmIChza2IpXFxuK1xcdGlmIChza2IpIHtcXG4rXFx0XFx0c2tiX3NjcnViX3BhY2tldChza2IsIGZhbHNlKTtcXG4gXFx0XFx0bmZfZG9fbmV0ZGV2X2VncmVzcyhza2IsIGRldiwgbmZ0X2hvb2socGt0KSk7XFxuK1xcdH1cXG4gfVxcbiBFWFBPUlRfU1lNQk9MX0dQTChuZl9kdXBfbmV0ZGV2X2VncmVzcyk7XFxuIFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQyMToxMDoxNy45MjM2MDA0NloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjI1NjQwNTg0ODI2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk5GX1RBQkxFU1wiLFxuICAgIFwiTkZfVEFCTEVTX05FVERFVlwiLFxuICAgIFwiTkZfRFVQX05FVERFVlwiLFxuICAgIFwiTkZUX0RVUF9ORVRERVZcIixcbiAgICBcIk5GVF9GV0RfTkVUREVWXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibmZfZHVwX25ldGRldl9lZ3Jlc3NcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBgbmZfZHVwX25ldGRldl9lZ3Jlc3NgIHRvIGNhbGwgYHNrYl9zY3J1Yl9wYWNrZXRgIGJlZm9yZSBgbmZfZG9fbmV0ZGV2X2VncmVzc2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbmV0ZmlsdGVyIHBhY2tldCBkdXBsaWNhdGlvbiBsb2dpYywgd2hpY2ggaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBuZl90YWJsZXMgbmV0bGluayBBUEkuIEZ1enppbmcgdGhpcyBmdW5jdGlvbiBjYW4gaGVscCBlbnN1cmUgdGhhdCB0aGUgcGFja2V0IHNjcnViYmluZyBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IHJlZ3Jlc3Npb25zIG9yIG1lbW9yeSBpc3N1ZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDBlMGU5OGQ4OTUzZjNmNGM5NTdiNDJmNTVhZjY2ODNkMDlhMjZiMDdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEF1ZyA0IDIxOjEwOjE1IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L25ldGZpbHRlci9uZl9kdXBfbmV0ZGV2LmMgYi9uZXQvbmV0ZmlsdGVyL25mX2R1cF9uZXRkZXYuY1xuaW5kZXggYzZiZDVjMjliZWQ2Ni4uMGY0N2EyMTM1OTU1ZSAxMDA2NDRcbi0tLSBhL25ldC9uZXRmaWx0ZXIvbmZfZHVwX25ldGRldi5jXG4rKysgYi9uZXQvbmV0ZmlsdGVyL25mX2R1cF9uZXRkZXYuY1xuQEAgLTYzLDggKzYzLDEwIEBAIHZvaWQgbmZfZHVwX25ldGRldl9lZ3Jlc3MoY29uc3Qgc3RydWN0IG5mdF9wa3RpbmZvICpwa3QsIGludCBvaWYpXG4gXHRcdHJldHVybjtcbiBcbiBcdHNrYiA9IHNrYl9jbG9uZShwa3QtXHUwMDNlc2tiLCBHRlBfQVRPTUlDKTtcbi1cdGlmIChza2IpXG4rXHRpZiAoc2tiKSB7XG4rXHRcdHNrYl9zY3J1Yl9wYWNrZXQoc2tiLCBmYWxzZSk7XG4gXHRcdG5mX2RvX25ldGRldl9lZ3Jlc3Moc2tiLCBkZXYsIG5mdF9ob29rKHBrdCkpO1xuK1x0fVxuIH1cbiBFWFBPUlRfU1lNQk9MX0dQTChuZl9kdXBfbmV0ZGV2X2VncmVzcyk7XG4gXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQyMToxMDoxNy45MjM2MDE2M1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwOTM1ODkyNzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBOZXRmaWx0ZXIgRWdyZXNzIE1vZGlmaWNhdGlvbioqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgYG5mX2R1cF9uZXRkZXZfZWdyZXNzYCB3aXRoaW4gYG5ldC9uZXRmaWx0ZXIvbmZfZHVwX25ldGRldi5jYC4gUmlnaHQgb2ZmIHRoZSBiYXQsIEkgc2VlIHRoZXkncmUgaW50cm9kdWNpbmcgYSBgc2tiX3NjcnViX3BhY2tldChza2IsIGZhbHNlKTtgIGNhbGwgYmVmb3JlIHRoZSBgbmZfZG9fbmV0ZGV2X2VncmVzcyhza2IsIGRldiwgbmZ0X2hvb2socGt0KSk7YCBleGVjdXRpb24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYSBwcmV0dHkgY2xlYXIgbW9kaWZpY2F0aW9uIHRvIHRoZSBuZXRmaWx0ZXIgYmVoYXZpb3IuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcIldoYXQgYXJlIHRoZSBpbXBsaWNhdGlvbnM/XCJcblxuSSBuZWVkIHRvIGRpdmUgaW50byBgbmZfZHVwX25ldGRldl9lZ3Jlc3NgIGl0c2VsZiwgdW5kZXJzdGFuZCBpdHMgZXhhY3QgZnVuY3Rpb24gYW5kIG9wZXJhdGlvbi4gVGhlbiwgSSdsbCBuZWVkIHRvIG1ldGljdWxvdXNseSBnbyB0aHJvdWdoIHRoZSBjb25maWd1cmF0aW9uIGRlcGVuZGVuY2llcy4gV2hhdCBvdGhlciBjb21wb25lbnRzIHJlbHkgb24gdGhpcyBmdW5jdGlvbj8gSG93IG1pZ2h0IHRoaXMgYHNrYl9zY3J1Yl9wYWNrZXRgIGNhbGwgaW1wYWN0IGV4aXN0aW5nIGNvbmZpZ3VyYXRpb25zIG9yIGludHJvZHVjZSBzdWJ0bGUgYmVoYXZpb3JhbCBzaGlmdHMgSSBuZWVkIHRvIGJlIGF3YXJlIG9mPyBBcmUgdGhlcmUgYW55IHBvdGVudGlhbCBwZXJmb3JtYW5jZSBpbXBsaWNhdGlvbnMsIGVpdGhlciBwb3NpdGl2ZSBvciBuZWdhdGl2ZSwgZnJvbSB0aGlzIHNjcnViIG9wZXJhdGlvbj8gSeKAmWxsIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgbnVhbmNlcyBvZiB0aGlzIGNoYW5nZSB0byBlbnN1cmUgY29tcGF0aWJpbGl0eSBhbmQgcHJldmVudCB1bmV4cGVjdGVkIHNpZGUgZWZmZWN0cyBkb3duc3RyZWFtLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDk5LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTA3LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMjE6MTA6MjIuMDE3MTk0MTk3WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ2MjA4Mjc3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm5mX2R1cF9uZXRkZXZfZWdyZXNzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9uZXRmaWx0ZXIvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9uZXRmaWx0ZXIvbmZfZHVwX25ldGRldi5jPTU0PUVYUE9SVF9TWU1CT0xfR1BMKG5mX2Z3ZF9uZXRkZXZfZWdyZXNzKTtcXG5uZXQvbmV0ZmlsdGVyL25mX2R1cF9uZXRkZXYuYy01NS1cXG5uZXQvbmV0ZmlsdGVyL25mX2R1cF9uZXRkZXYuYzo1Njp2b2lkIG5mX2R1cF9uZXRkZXZfZWdyZXNzKGNvbnN0IHN0cnVjdCBuZnRfcGt0aW5mbyAqcGt0LCBpbnQgb2lmKVxcbm5ldC9uZXRmaWx0ZXIvbmZfZHVwX25ldGRldi5jLTU3LXtcXG4tLVxcbm5ldC9uZXRmaWx0ZXIvbmZfZHVwX25ldGRldi5jLTcwLX1cXG5uZXQvbmV0ZmlsdGVyL25mX2R1cF9uZXRkZXYuYzo3MTpFWFBPUlRfU1lNQk9MX0dQTChuZl9kdXBfbmV0ZGV2X2VncmVzcyk7XFxubmV0L25ldGZpbHRlci9uZl9kdXBfbmV0ZGV2LmMtNzItXFxuLS1cXG5uZXQvbmV0ZmlsdGVyL25mdF9kdXBfbmV0ZGV2LmM9MjA9c3RhdGljIHZvaWQgbmZ0X2R1cF9uZXRkZXZfZXZhbChjb25zdCBzdHJ1Y3QgbmZ0X2V4cHIgKmV4cHIsXFxuLS1cXG5uZXQvbmV0ZmlsdGVyL25mdF9kdXBfbmV0ZGV2LmMtMjYtXFxubmV0L25ldGZpbHRlci9uZnRfZHVwX25ldGRldi5jOjI3OlxcdG5mX2R1cF9uZXRkZXZfZWdyZXNzKHBrdCwgb2lmKTtcXG5uZXQvbmV0ZmlsdGVyL25mdF9kdXBfbmV0ZGV2LmMtMjgtfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQyMToxMDoyMi4wNjM0MDcwMTRaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozODM1NjExODc0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIG15IG93biByZWFzb25pbmc6XG5cbioqQW5hbHl6aW5nIHRoZSBOZXRmaWx0ZXIgRHVwbGljYXRpb24gTW9kdWxlKipcblxuUmlnaHQsIGxldCdzIHNlZSwgdGhlIGBuZl9kdXBfbmV0ZGV2X2VncmVzc2AgZnVuY3Rpb24uLi50aGF0J3MgZXhwb3J0ZWQsIHNvIGl0J3MgYSBrZXkgcGllY2Ugb2YgdGhlIHB1enpsZS4gSSBrbm93IGl0J3MgdXNlZCBpbiBgbmV0L25ldGZpbHRlci9uZnRfZHVwX25ldGRldi5jYC4gTWFrZXMgc2Vuc2UsIHRoZSBOZXR3b3JrIEZpbHRlciBUYWJsZSAoTkZUKSBmcmFtZXdvcmsgd291bGQgbGlrZWx5IGJlIGxldmVyYWdpbmcgc29tZSBsb3dlci1sZXZlbCBmdW5jdGlvbmFsaXR5LlxuXG5Ob3csIGlmIEknbSB0cnlpbmcgdG8gZnVsbHkgdW5kZXJzdGFuZCBob3cgdGhpcyBkdXBsaWNhdGlvbiBwcm9jZXNzIHdvcmtzIHdpdGhpbiB0aGUgTmV0ZmlsdGVyIGNvbnRleHQsIHRoZSAqZmlyc3QqIHRoaW5nIEkgd2FudCB0byBkbyBpcyBjaGVjayB0aGUgS2NvbmZpZyBmaWxlcyBmb3IgYm90aCBgbmZfZHVwX25ldGRldi5jYCBhbmQgYG5mdF9kdXBfbmV0ZGV2LmNgLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0IGRlcGVuZGVuY2llcyBhbmQgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSBpbiBwbGF5LiBBcmUgdGhlcmUgc3BlY2lmaWMgbW9kdWxlcyB0aGF0IG5lZWQgdG8gYmUgZW5hYmxlZCBmb3IgdGhpcyBkdXBsaWNhdGlvbiBmdW5jdGlvbmFsaXR5IHRvIHdvcms/IFdoYXQgbGV2ZWwgb2YgY29uZmlndXJhYmlsaXR5IGRvIHdlIGhhdmUgaGVyZT8gVGhpcyB3aWxsIGdpdmUgbWUgYSBiZXR0ZXIgdW5kZXJzdGFuZGluZyBvZiB0aGUgcHJlY29uZGl0aW9ucyBmb3IgdGhpcyBmZWF0dXJlLCBhbmQgaG93IGl0IGlzIGVuYWJsZWQsIG9yIGRpc2FibGVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNzkxLCJPdXRwdXRUb2tlbnMiOjMyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMjE6MTA6MjUuODk5MDIwOTI3WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ4NzM3MDM3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm5mX2R1cF9uZXRkZXZcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L25ldGZpbHRlci9NYWtlZmlsZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbmV0ZmlsdGVyL01ha2VmaWxlPTgxPW9iai0kKENPTkZJR19ORVRGSUxURVJfQ09OTkNPVU5UKSArPSBuZl9jb25uY291bnQub1xcbi0tXFxubmV0L25ldGZpbHRlci9NYWtlZmlsZS04My0jIGdlbmVyaWMgcGFja2V0IGR1cGxpY2F0aW9uIGZyb20gbmV0ZGV2IGZhbWlseVxcbm5ldC9uZXRmaWx0ZXIvTWFrZWZpbGU6ODQ6b2JqLSQoQ09ORklHX05GX0RVUF9ORVRERVYpXFx0Kz0gbmZfZHVwX25ldGRldi5vXFxubmV0L25ldGZpbHRlci9NYWtlZmlsZS04NS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMjE6MTA6MjUuOTQ3NzY1MzI0WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzcxMjk1NDI0MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgYENPTkZJR19ORl9EVVBfTkVUREVWYCBEZXBlbmRlbmN5KipcblxuQWxyaWdodCwgc28gSSdtIHRoaW5raW5nIGFib3V0IGBDT05GSUdfTkZfRFVQX05FVERFVmAg4oCTIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyByb2xlLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZmlndXJlIG91dCB0aGUgdXBzdHJlYW0gZGVwZW5kZW5jaWVzOyB3aGF0ICpzZWxlY3RzKiBpdCwgd2hhdCAqZGVwZW5kcyogb24gaXQuIEkgbmVlZCB0byBrbm93IHdoYXQgZmVhdHVyZXMgb3IgbW9kdWxlcyBpbiB0aGUga2VybmVsIGNvbmZpZ3VyYXRpb24gcmVseSBvbiB0aGlzIHNwZWNpZmljIG9wdGlvbi4gVGhpcyBpcyB0aGUgY3JpdGljYWwgZmlyc3Qgc3RlcCB0byB1bmRlcnN0YW5kIHdoZXJlIHRoaXMgZml0cyBpbnRvIHRoZSB3aG9sZSBwaWN0dXJlLCB3aGVyZSBpdCBtaWdodCBpbnRyb2R1Y2UgY29uZmxpY3RzLCBvciBpZiBpdCBtaWdodCBwcmVzZW50IGFuIG9wcG9ydHVuaXR5IGZvciBvcHRpbWl6YXRpb24sIG9yIG1heWJlIGlzIGEgYmxvY2tlciBmb3Igc29tZXRoaW5nIEkgKmRvKiBuZWVkLiBJdCdzIGEgZnVuZGFtZW50YWwgcGFydCBvZiB0aGUgY29uZmlndXJhdGlvbiBtYW5hZ2VtZW50IHByb2Nlc3MsIGFuZCB3aGVyZSBJIGJlZ2luIGFueSBpbi1kZXB0aCBleHBsb3JhdGlvbiBvZiBrZXJuZWwgb3B0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzIyMywiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDIxOjEwOjI5LjY2MDcyMTUxNloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MzE1MjU1NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJORl9EVVBfTkVUREVWXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9uZXRmaWx0ZXIvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbmV0ZmlsdGVyL0tjb25maWc9NjYwPWlmIE5GX1RBQkxFU19ORVRERVZcXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctNjYxLVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzo2NjI6Y29uZmlnIE5GX0RVUF9ORVRERVZcXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctNjYzLVxcdHRyaXN0YXRlIFxcXCJOZXRmaWx0ZXIgcGFja2V0IGR1cGxpY2F0aW9uIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc9NjY4PWNvbmZpZyBORlRfRFVQX05FVERFVlxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy02NjktXFx0dHJpc3RhdGUgXFxcIk5ldGZpbHRlciBuZl90YWJsZXMgbmV0ZGV2IHBhY2tldCBkdXBsaWNhdGlvbiBzdXBwb3J0XFxcIlxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzo2NzA6XFx0c2VsZWN0IE5GX0RVUF9ORVRERVZcXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctNjcxLVxcdGhlbHBcXG4tLVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZz02NzQ9Y29uZmlnIE5GVF9GV0RfTkVUREVWXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTY3NS1cXHR0cmlzdGF0ZSBcXFwiTmV0ZmlsdGVyIG5mX3RhYmxlcyBuZXRkZXYgcGFja2V0IGZvcndhcmRpbmcgc3VwcG9ydFxcXCJcXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6Njc2OlxcdHNlbGVjdCBORl9EVVBfTkVUREVWXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTY3Ny1cXHRoZWxwXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDIxOjEwOjI5LjcwMzg3ODk2M1oiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0MTEwOTY0MTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqS2VybmVsIENvbmZpZ3VyYXRpb24gRGVwZW5kZW5jaWVzKipcblxuT2theSwgc28gSSdtIGRpZ2dpbmcgaW50byB0aGlzIGtlcm5lbCBjb25maWd1cmF0aW9uIHNwYWNlIGFuZCBuZWVkIHRvIG1ha2Ugc3VyZSBJJ3ZlIGdvdCB0aGUgZGVwZW5kZW5jaWVzIHJpZ2h0LiBJdCBsb29rcyBsaWtlIGBDT05GSUdfTkZfRFVQX05FVERFVmAgaXMgYnJvdWdodCBpbiBieSBib3RoIGBORlRfRFVQX05FVERFVmAgYW5kIGBORlRfRldEX05FVERFVmAuIFRoZXJlZm9yZSwgdG8gZW5hYmxlIHRoZSBmdW5jdGlvbmFsaXR5IEknbSBpbnRlcmVzdGVkIGluLCBJIHNob3VsZCBkZWZpbml0ZWx5IGluY2x1ZGUgYE5GX0RVUF9ORVRERVZgLCBgTkZUX0RVUF9ORVRERVZgLCBhbmQgYE5GVF9GV0RfTkVUREVWYCBpbiBteSBjb25maWd1cmF0aW9uLiBUaGlua2luZyBhYm91dCBpdCBJIHNob3VsZCBhbHNvIGluY2x1ZGUgYE5GX1RBQkxFU19ORVRERVZgLCBhcyB0aGF0IHNlZW1zIGxpa2UgYSByZWxhdGVkIGl0ZW0uIFdhaXQgYSBzZWNvbmQsIGlzIGBORl9UQUJMRVNfTkVUREVWYCBhIGJvb2xlYW4gb3IgYSB0cmlzdGF0ZT8gSSBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIHRvIGJlIHN1cmUsIGJlZm9yZSBJIGdvIGFueSBmdXJ0aGVyLCBhcyB0aGF0IGNvdWxkIGNoYW5nZSB0aGluZ3MuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM3MzAsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQyMToxMDozMy4xMTQ5Nzc1NTVaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzMDY3MzA3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIk5GX1RBQkxFU19ORVRERVZcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L25ldGZpbHRlci9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9uZXRmaWx0ZXIvS2NvbmZpZz00NzI9Y29uZmlnIE5GX1RBQkxFU19JTkVUXFxuLS1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctNDc5LVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzo0ODA6Y29uZmlnIE5GX1RBQkxFU19ORVRERVZcXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctNDgxLVxcdGJvb2wgXFxcIk5ldGZpbHRlciBuZl90YWJsZXMgbmV0ZGV2IHRhYmxlcyBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L25ldGZpbHRlci9LY29uZmlnPTY0OT1jb25maWcgTkZUX1NZTlBST1hZXFxuLS1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctNjU5LVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzo2NjA6aWYgTkZfVEFCTEVTX05FVERFVlxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy02NjEtXFxuLS1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc9Njg5PWNvbmZpZyBORlRfUkVKRUNUX05FVERFVlxcbi0tXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTY5OC1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6Njk5OmVuZGlmICMgTkZfVEFCTEVTX05FVERFVlxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy03MDAtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDIxOjEwOjMzLjE1ODA0OTA2MloiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDM3OTIyMjgwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IENvbmZpZ3VyYXRpb24gUGxhbioqXG5cbkFscmlnaHQsIGxldCdzIHNvbGlkaWZ5IHRoaXMuIEkndmUgY29uZmlybWVkIHRoYXQgYE5GX1RBQkxFU19ORVRERVZgIGlzIGluZGVlZCBhIGJvb2xlYW4gY29uZmlndXJhdGlvbiBvcHRpb24uIE15IGltbWVkaWF0ZSB0YXNrIGludm9sdmVzIGVuYWJsaW5nIHRoZSBmdW5jdGlvbiBgbmZfZHVwX25ldGRldl9lZ3Jlc3NgLiBUbyBkbyB0aGlzIHByb3Blcmx5LCBJJ20gZ29pbmcgdG8gYWRkIHRoZSBmb2xsb3dpbmcgb3B0aW9ucyB0byBgRW5hYmxlQ29uZmlnc2A6IGBORl9EVVBfTkVUREVWYCwgYE5GVF9EVVBfTkVUREVWYCwgYE5GVF9GV0RfTkVUREVWYCwgYE5GX1RBQkxFU19ORVRERVZgLCBhbmQgYE5GX1RBQkxFU2AuIFxuXG5Ib3dldmVyLCBiZWZvcmUgSSBpbXBsZW1lbnQgYW55dGhpbmcsIGl0J3MgZXNzZW50aWFsIHRvIHBlcmZvcm0gYSB0aG9yb3VnaCBjaGVjayBmb3IgYW55IG90aGVyIGRlcGVuZGVuY2llcyBvciByZWxhdGVkIGNvbmZpZ3VyYXRpb25zIHRoYXQgbWlnaHQgYWZmZWN0IHRoaXMuIEdvdHRhIG1ha2Ugc3VyZSBJIGRvbid0IG92ZXJsb29rIGFueXRoaW5nIHRoYXQgY291bGQgbGVhZCB0byB1bmV4cGVjdGVkIGJlaGF2aW9yIGxhdGVyIG9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0Mjc3LCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTA1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDIxOjEwOjM3LjE5NTk3MzE3MloiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDgzNjA3NDcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiTkZUX0RVUF9ORVRERVZcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L25ldGZpbHRlci9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9uZXRmaWx0ZXIvS2NvbmZpZz02NjI9Y29uZmlnIE5GX0RVUF9ORVRERVZcXG4tLVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy02NjctXFxubmV0L25ldGZpbHRlci9LY29uZmlnOjY2ODpjb25maWcgTkZUX0RVUF9ORVRERVZcXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctNjY5LVxcdHRyaXN0YXRlIFxcXCJOZXRmaWx0ZXIgbmZfdGFibGVzIG5ldGRldiBwYWNrZXQgZHVwbGljYXRpb24gc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMjE6MTA6MzcuMjQ0MzM4NDI5WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYyMzQyNzMzNDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ3ZlIHBpbnBvaW50ZWQgYSBzcGVjaWZpYyBmdW5jdGlvbiwgYG5mX2R1cF9uZXRkZXZfZWdyZXNzYC4gSXMgdGhlcmUgKmFueXRoaW5nKiBlbHNlIGNoYW5nZWQgYnkgdGhpcyBwYXRjaD8gTm9wZSwganVzdCB0aGlzIG9uZS4gVGhhdCBtYWtlcyBpdCBhIHByaW1lIGNhbmRpZGF0ZSBmb3IgZnV6emluZy5cblxuTGV0J3MgZG8gYSBxdWljayByZWFjaGFiaWxpdHkgY2hlY2suIEFscmlnaHQsIGBuZl9kdXBfbmV0ZGV2X2VncmVzc2AgaXMgY2FsbGVkIGZyb20gYG5mdF9kdXBfbmV0ZGV2X2V2YWxgLCB3aGljaCBpcyB0aGUgZXZhbHVhdGlvbiBjYWxsYmFjayBmb3IgYG5mdF9kdXBfbmV0ZGV2X3R5cGVgLiBFeGNlbGxlbnQsIG1lYW5pbmcgdGhpcyBpcyB1c2VyLWFjY2Vzc2libGUgdmlhIG5ldGxpbmsgYW5kIG5mX3RhYmxlcywgd2hpY2ggaXMgZXhhY3RseSB3aGF0IEkgd2FzIGhvcGluZyBmb3IuXG5cbkJhc2VkIG9uIHRoZSBlbmFibGVkIGNvbmZpZ3VyYXRpb25zIChORl9UQUJMRVMsIE5GX1RBQkxFU19ORVRERVYsIE5GX0RVUF9ORVRERVYsIE5GVF9EVVBfTkVUREVWLCBORlRfRldEX05FVERFViksIHRoZSBmdW5jdGlvbmFsaXR5IHRvIHRhcmdldCBpcyBkZWZpbml0ZWx5IHByZXNlbnQgaW4gdGhpcyBidWlsZC5cblxuVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSByZXZvbHZlcyBhcm91bmQgYG5mX2R1cF9uZXRkZXZfZWdyZXNzYCBub3cgY2FsbGluZyBgc2tiX3NjcnViX3BhY2tldGAgKmJlZm9yZSogYG5mX2RvX25ldGRldl9lZ3Jlc3NgLiBUaGF0J3MgYSBmdW5jdGlvbmFsIG1vZGlmaWNhdGlvbiB3aXRoaW4gdGhlIG5ldGZpbHRlciBwYWNrZXQgZHVwbGljYXRpb24gbG9naWMuIE15IHByaW1hcnkgY29uY2VybiBpcyBlbnN1cmluZyB0aGlzIHBhY2tldCBzY3J1YmJpbmcgZG9lc24ndCBpbnRyb2R1Y2UgcmVncmVzc2lvbnMgb3IgYW55IG1lbW9yeSBjb3JydXB0aW9uIGlzc3Vlcywgc28gSSB3aWxsIHN0YXJ0IGZ1enppbmcgdGhpcyBmdW5jdGlvbiBkaXJlY3RseS4gVGhpcyBzZWVtcyBsaWtlIGEgc29saWQgdGFyZ2V0IGZvciBzb21lIGZvY3Vzc2VkIGZ1enppbmcgZWZmb3J0cy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDY3MywiT3V0cHV0VG9rZW5zIjoxNzEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNTcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMjE6MTA6NDMuNDc4NjE1MTUyWiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODU1Njc3MDQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk5GX1RBQkxFU1wiLFxuICAgIFwiTkZfVEFCTEVTX05FVERFVlwiLFxuICAgIFwiTkZfRFVQX05FVERFVlwiLFxuICAgIFwiTkZUX0RVUF9ORVRERVZcIixcbiAgICBcIk5GVF9GV0RfTkVUREVWXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibmZfZHVwX25ldGRldl9lZ3Jlc3NcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBgbmZfZHVwX25ldGRldl9lZ3Jlc3NgIHRvIGNhbGwgYHNrYl9zY3J1Yl9wYWNrZXRgIGJlZm9yZSBgbmZfZG9fbmV0ZGV2X2VncmVzc2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbmV0ZmlsdGVyIHBhY2tldCBkdXBsaWNhdGlvbiBsb2dpYywgd2hpY2ggaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBuZl90YWJsZXMgbmV0bGluayBBUEkuIEZ1enppbmcgdGhpcyBmdW5jdGlvbiBjYW4gaGVscCBlbnN1cmUgdGhhdCB0aGUgcGFja2V0IHNjcnViYmluZyBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IHJlZ3Jlc3Npb25zIG9yIG1lbW9yeSBpc3N1ZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTkZfVEFCTEVTXCIsXG4gICAgXCJORl9UQUJMRVNfTkVUREVWXCIsXG4gICAgXCJORl9EVVBfTkVUREVWXCIsXG4gICAgXCJORlRfRFVQX05FVERFVlwiLFxuICAgIFwiTkZUX0ZXRF9ORVRERVZcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJuZl9kdXBfbmV0ZGV2X2VncmVzc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGBuZl9kdXBfbmV0ZGV2X2VncmVzc2AgdG8gY2FsbCBgc2tiX3NjcnViX3BhY2tldGAgYmVmb3JlIGBuZl9kb19uZXRkZXZfZWdyZXNzYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBuZXRmaWx0ZXIgcGFja2V0IGR1cGxpY2F0aW9uIGxvZ2ljLCB3aGljaCBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIG5mX3RhYmxlcyBuZXRsaW5rIEFQSS4gRnV6emluZyB0aGlzIGZ1bmN0aW9uIGNhbiBoZWxwIGVuc3VyZSB0aGF0IHRoZSBwYWNrZXQgc2NydWJiaW5nIGRvZXMgbm90IGludHJvZHVjZSBhbnkgcmVncmVzc2lvbnMgb3IgbWVtb3J5IGlzc3Vlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowzbwjm[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-04 20:21:32 +0000 UTC FinishedAt: 2026-08-04 21:10:45 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "a347304b2ca1a5377d5bd2d8a72e4b4f12afe648", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NF_TABLES", "NF_TABLES_NETDEV", "NF_DUP_NETDEV", "NFT_DUP_NETDEV", "NFT_FWD_NETDEV" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "a347304b2ca1a5377d5bd2d8a72e4b4f12afe648", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NF_TABLES", "NF_TABLES_NETDEV", "NF_DUP_NETDEV", "NFT_DUP_NETDEV", "NFT_FWD_NETDEV" ], "series_id": "32ee6d01-01d7-4544-8638-64e4eb5bd263" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "nf_dup_netdev_egress" ], "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+CgkJCTx0ZD4yMDI2LzA4LzA0IDIxOjEwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05GX1RBQkxFUyYjMzQ7LAogICAgJiMzNDtORl9UQUJMRVNfTkVUREVWJiMzNDssCiAgICAmIzM0O05GX0RVUF9ORVRERVYmIzM0OywKICAgICYjMzQ7TkZUX0RVUF9ORVRERVYmIzM0OywKICAgICYjMzQ7TkZUX0ZXRF9ORVRERVYmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtuZl9kdXBfbmV0ZGV2X2VncmVzcyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBgbmZfZHVwX25ldGRldl9lZ3Jlc3NgIHRvIGNhbGwgYHNrYl9zY3J1Yl9wYWNrZXRgIGJlZm9yZSBgbmZfZG9fbmV0ZGV2X2VncmVzc2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbmV0ZmlsdGVyIHBhY2tldCBkdXBsaWNhdGlvbiBsb2dpYywgd2hpY2ggaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBuZl90YWJsZXMgbmV0bGluayBBUEkuIEZ1enppbmcgdGhpcyBmdW5jdGlvbiBjYW4gaGVscCBlbnN1cmUgdGhhdCB0aGUgcGFja2V0IHNjcnViYmluZyBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IHJlZ3Jlc3Npb25zIG9yIG1lbW9yeSBpc3N1ZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMjE6MTA8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAwZTBlOThkODk1M2YzZjRjOTU3YjQyZjU1YWY2NjgzZDA5YTI2YjA3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBBdWcgNCAyMToxMDoxNSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvbmV0ZmlsdGVyL25mX2R1cF9uZXRkZXYuYyBiL25ldC9uZXRmaWx0ZXIvbmZfZHVwX25ldGRldi5jXG5pbmRleCBjNmJkNWMyOWJlZDY2Li4wZjQ3YTIxMzU5NTVlIDEwMDY0NFxuLS0tIGEvbmV0L25ldGZpbHRlci9uZl9kdXBfbmV0ZGV2LmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC9uZXRmaWx0ZXIvbmZfZHVwX25ldGRldi5jXG5AQCAtNjMsOCAmIzQzOzYzLDEwIEBAIHZvaWQgbmZfZHVwX25ldGRldl9lZ3Jlc3MoY29uc3Qgc3RydWN0IG5mdF9wa3RpbmZvICpwa3QsIGludCBvaWYpXG4gXHRcdHJldHVybjtcbiBcbiBcdHNrYiA9IHNrYl9jbG9uZShwa3QtXHUwMDNlc2tiLCBHRlBfQVRPTUlDKTtcbi1cdGlmIChza2IpXG4mIzQzO1x0aWYgKHNrYikge1xuJiM0MztcdFx0c2tiX3NjcnViX3BhY2tldChza2IsIGZhbHNlKTtcbiBcdFx0bmZfZG9fbmV0ZGV2X2VncmVzcyhza2IsIGRldiwgbmZ0X2hvb2socGt0KSk7XG4mIzQzO1x0fVxuIH1cbiBFWFBPUlRfU1lNQk9MX0dQTChuZl9kdXBfbmV0ZGV2X2VncmVzcyk7XG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMjE6MTA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05GX1RBQkxFUyYjMzQ7LAogICAgJiMzNDtORl9UQUJMRVNfTkVUREVWJiMzNDssCiAgICAmIzM0O05GX0RVUF9ORVRERVYmIzM0OywKICAgICYjMzQ7TkZUX0RVUF9ORVRERVYmIzM0OywKICAgICYjMzQ7TkZUX0ZXRF9ORVRERVYmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtuZl9kdXBfbmV0ZGV2X2VncmVzcyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBgbmZfZHVwX25ldGRldl9lZ3Jlc3NgIHRvIGNhbGwgYHNrYl9zY3J1Yl9wYWNrZXRgIGJlZm9yZSBgbmZfZG9fbmV0ZGV2X2VncmVzc2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbmV0ZmlsdGVyIHBhY2tldCBkdXBsaWNhdGlvbiBsb2dpYywgd2hpY2ggaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBuZl90YWJsZXMgbmV0bGluayBBUEkuIEZ1enppbmcgdGhpcyBmdW5jdGlvbiBjYW4gaGVscCBlbnN1cmUgdGhhdCB0aGUgcGFja2V0IHNjcnViYmluZyBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IHJlZ3Jlc3Npb25zIG9yIG1lbW9yeSBpc3N1ZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAwZTBlOThkODk1M2YzZjRjOTU3YjQyZjU1YWY2NjgzZDA5YTI2YjA3CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBBdWcgNCAyMToxMDoxNSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC9uZXRmaWx0ZXIvbmZfZHVwX25ldGRldi5jIGIvbmV0L25ldGZpbHRlci9uZl9kdXBfbmV0ZGV2LmMKaW5kZXggYzZiZDVjMjliZWQ2Ni4uMGY0N2EyMTM1OTU1ZSAxMDA2NDQKLS0tIGEvbmV0L25ldGZpbHRlci9uZl9kdXBfbmV0ZGV2LmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L25ldGZpbHRlci9uZl9kdXBfbmV0ZGV2LmMKQEAgLTYzLDggJiM0Mzs2MywxMCBAQCB2b2lkIG5mX2R1cF9uZXRkZXZfZWdyZXNzKGNvbnN0IHN0cnVjdCBuZnRfcGt0aW5mbyAqcGt0LCBpbnQgb2lmKQogCQlyZXR1cm47CiAKIAlza2IgPSBza2JfY2xvbmUocGt0LSZndDtza2IsIEdGUF9BVE9NSUMpOwotCWlmIChza2IpCiYjNDM7CWlmIChza2IpIHsKJiM0MzsJCXNrYl9zY3J1Yl9wYWNrZXQoc2tiLCBmYWxzZSk7CiAJCW5mX2RvX25ldGRldl9lZ3Jlc3Moc2tiLCBkZXYsIG5mdF9ob29rKHBrdCkpOwomIzQzOwl9CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChuZl9kdXBfbmV0ZGV2X2VncmVzcyk7CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMjE6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjA5OQoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDEwNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE5ldGZpbHRlciBFZ3Jlc3MgTW9kaWZpY2F0aW9uKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgYG5mX2R1cF9uZXRkZXZfZWdyZXNzYCB3aXRoaW4gYG5ldC9uZXRmaWx0ZXIvbmZfZHVwX25ldGRldi5jYC4gUmlnaHQgb2ZmIHRoZSBiYXQsIEkgc2VlIHRoZXkmIzM5O3JlIGludHJvZHVjaW5nIGEgYHNrYl9zY3J1Yl9wYWNrZXQoc2tiLCBmYWxzZSk7YCBjYWxsIGJlZm9yZSB0aGUgYG5mX2RvX25ldGRldl9lZ3Jlc3Moc2tiLCBkZXYsIG5mdF9ob29rKHBrdCkpO2AgZXhlY3V0aW9uLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGEgcHJldHR5IGNsZWFyIG1vZGlmaWNhdGlvbiB0byB0aGUgbmV0ZmlsdGVyIGJlaGF2aW9yLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgJiMzNDtXaGF0IGFyZSB0aGUgaW1wbGljYXRpb25zPyYjMzQ7CgpJIG5lZWQgdG8gZGl2ZSBpbnRvIGBuZl9kdXBfbmV0ZGV2X2VncmVzc2AgaXRzZWxmLCB1bmRlcnN0YW5kIGl0cyBleGFjdCBmdW5jdGlvbiBhbmQgb3BlcmF0aW9uLiBUaGVuLCBJJiMzOTtsbCBuZWVkIHRvIG1ldGljdWxvdXNseSBnbyB0aHJvdWdoIHRoZSBjb25maWd1cmF0aW9uIGRlcGVuZGVuY2llcy4gV2hhdCBvdGhlciBjb21wb25lbnRzIHJlbHkgb24gdGhpcyBmdW5jdGlvbj8gSG93IG1pZ2h0IHRoaXMgYHNrYl9zY3J1Yl9wYWNrZXRgIGNhbGwgaW1wYWN0IGV4aXN0aW5nIGNvbmZpZ3VyYXRpb25zIG9yIGludHJvZHVjZSBzdWJ0bGUgYmVoYXZpb3JhbCBzaGlmdHMgSSBuZWVkIHRvIGJlIGF3YXJlIG9mPyBBcmUgdGhlcmUgYW55IHBvdGVudGlhbCBwZXJmb3JtYW5jZSBpbXBsaWNhdGlvbnMsIGVpdGhlciBwb3NpdGl2ZSBvciBuZWdhdGl2ZSwgZnJvbSB0aGlzIHNjcnViIG9wZXJhdGlvbj8gSeKAmWxsIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgbnVhbmNlcyBvZiB0aGlzIGNoYW5nZSB0byBlbnN1cmUgY29tcGF0aWJpbGl0eSBhbmQgcHJldmVudCB1bmV4cGVjdGVkIHNpZGUgZWZmZWN0cyBkb3duc3RyZWFtLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDIxOjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O25mX2R1cF9uZXRkZXZfZWdyZXNzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L25ldGZpbHRlci8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L25ldGZpbHRlci9uZl9kdXBfbmV0ZGV2LmM9NTQ9RVhQT1JUX1NZTUJPTF9HUEwobmZfZndkX25ldGRldl9lZ3Jlc3MpO1xubmV0L25ldGZpbHRlci9uZl9kdXBfbmV0ZGV2LmMtNTUtXG5uZXQvbmV0ZmlsdGVyL25mX2R1cF9uZXRkZXYuYzo1Njp2b2lkIG5mX2R1cF9uZXRkZXZfZWdyZXNzKGNvbnN0IHN0cnVjdCBuZnRfcGt0aW5mbyAqcGt0LCBpbnQgb2lmKVxubmV0L25ldGZpbHRlci9uZl9kdXBfbmV0ZGV2LmMtNTcte1xuLS1cbm5ldC9uZXRmaWx0ZXIvbmZfZHVwX25ldGRldi5jLTcwLX1cbm5ldC9uZXRmaWx0ZXIvbmZfZHVwX25ldGRldi5jOjcxOkVYUE9SVF9TWU1CT0xfR1BMKG5mX2R1cF9uZXRkZXZfZWdyZXNzKTtcbm5ldC9uZXRmaWx0ZXIvbmZfZHVwX25ldGRldi5jLTcyLVxuLS1cbm5ldC9uZXRmaWx0ZXIvbmZ0X2R1cF9uZXRkZXYuYz0yMD1zdGF0aWMgdm9pZCBuZnRfZHVwX25ldGRldl9ldmFsKGNvbnN0IHN0cnVjdCBuZnRfZXhwciAqZXhwcixcbi0tXG5uZXQvbmV0ZmlsdGVyL25mdF9kdXBfbmV0ZGV2LmMtMjYtXG5uZXQvbmV0ZmlsdGVyL25mdF9kdXBfbmV0ZGV2LmM6Mjc6XHRuZl9kdXBfbmV0ZGV2X2VncmVzcyhwa3QsIG9pZik7XG5uZXQvbmV0ZmlsdGVyL25mdF9kdXBfbmV0ZGV2LmMtMjgtfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDIxOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI3OTEKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiA2MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duIHJlYXNvbmluZzoKCioqQW5hbHl6aW5nIHRoZSBOZXRmaWx0ZXIgRHVwbGljYXRpb24gTW9kdWxlKioKClJpZ2h0LCBsZXQmIzM5O3Mgc2VlLCB0aGUgYG5mX2R1cF9uZXRkZXZfZWdyZXNzYCBmdW5jdGlvbi4uLnRoYXQmIzM5O3MgZXhwb3J0ZWQsIHNvIGl0JiMzOTtzIGEga2V5IHBpZWNlIG9mIHRoZSBwdXp6bGUuIEkga25vdyBpdCYjMzk7cyB1c2VkIGluIGBuZXQvbmV0ZmlsdGVyL25mdF9kdXBfbmV0ZGV2LmNgLiBNYWtlcyBzZW5zZSwgdGhlIE5ldHdvcmsgRmlsdGVyIFRhYmxlIChORlQpIGZyYW1ld29yayB3b3VsZCBsaWtlbHkgYmUgbGV2ZXJhZ2luZyBzb21lIGxvd2VyLWxldmVsIGZ1bmN0aW9uYWxpdHkuCgpOb3csIGlmIEkmIzM5O20gdHJ5aW5nIHRvIGZ1bGx5IHVuZGVyc3RhbmQgaG93IHRoaXMgZHVwbGljYXRpb24gcHJvY2VzcyB3b3JrcyB3aXRoaW4gdGhlIE5ldGZpbHRlciBjb250ZXh0LCB0aGUgKmZpcnN0KiB0aGluZyBJIHdhbnQgdG8gZG8gaXMgY2hlY2sgdGhlIEtjb25maWcgZmlsZXMgZm9yIGJvdGggYG5mX2R1cF9uZXRkZXYuY2AgYW5kIGBuZnRfZHVwX25ldGRldi5jYC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCBkZXBlbmRlbmNpZXMgYW5kIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgaW4gcGxheS4gQXJlIHRoZXJlIHNwZWNpZmljIG1vZHVsZXMgdGhhdCBuZWVkIHRvIGJlIGVuYWJsZWQgZm9yIHRoaXMgZHVwbGljYXRpb24gZnVuY3Rpb25hbGl0eSB0byB3b3JrPyBXaGF0IGxldmVsIG9mIGNvbmZpZ3VyYWJpbGl0eSBkbyB3ZSBoYXZlIGhlcmU/IFRoaXMgd2lsbCBnaXZlIG1lIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIHByZWNvbmRpdGlvbnMgZm9yIHRoaXMgZmVhdHVyZSwgYW5kIGhvdyBpdCBpcyBlbmFibGVkLCBvciBkaXNhYmxlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAyMToxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtuZl9kdXBfbmV0ZGV2JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L25ldGZpbHRlci9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbmV0ZmlsdGVyL01ha2VmaWxlPTgxPW9iai0kKENPTkZJR19ORVRGSUxURVJfQ09OTkNPVU5UKSAmIzQzOz0gbmZfY29ubmNvdW50Lm9cbi0tXG5uZXQvbmV0ZmlsdGVyL01ha2VmaWxlLTgzLSMgZ2VuZXJpYyBwYWNrZXQgZHVwbGljYXRpb24gZnJvbSBuZXRkZXYgZmFtaWx5XG5uZXQvbmV0ZmlsdGVyL01ha2VmaWxlOjg0Om9iai0kKENPTkZJR19ORl9EVVBfTkVUREVWKVx0JiM0Mzs9IG5mX2R1cF9uZXRkZXYub1xubmV0L25ldGZpbHRlci9NYWtlZmlsZS04NS1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAyMToxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMjIzCgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogMzQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqSW52ZXN0aWdhdGluZyB0aGUgYENPTkZJR19ORl9EVVBfTkVUREVWYCBEZXBlbmRlbmN5KioKCkFscmlnaHQsIHNvIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgYENPTkZJR19ORl9EVVBfTkVUREVWYCDigJMgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIHJvbGUuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBmaWd1cmUgb3V0IHRoZSB1cHN0cmVhbSBkZXBlbmRlbmNpZXM7IHdoYXQgKnNlbGVjdHMqIGl0LCB3aGF0ICpkZXBlbmRzKiBvbiBpdC4gSSBuZWVkIHRvIGtub3cgd2hhdCBmZWF0dXJlcyBvciBtb2R1bGVzIGluIHRoZSBrZXJuZWwgY29uZmlndXJhdGlvbiByZWx5IG9uIHRoaXMgc3BlY2lmaWMgb3B0aW9uLiBUaGlzIGlzIHRoZSBjcml0aWNhbCBmaXJzdCBzdGVwIHRvIHVuZGVyc3RhbmQgd2hlcmUgdGhpcyBmaXRzIGludG8gdGhlIHdob2xlIHBpY3R1cmUsIHdoZXJlIGl0IG1pZ2h0IGludHJvZHVjZSBjb25mbGljdHMsIG9yIGlmIGl0IG1pZ2h0IHByZXNlbnQgYW4gb3Bwb3J0dW5pdHkgZm9yIG9wdGltaXphdGlvbiwgb3IgbWF5YmUgaXMgYSBibG9ja2VyIGZvciBzb21ldGhpbmcgSSAqZG8qIG5lZWQuIEl0JiMzOTtzIGEgZnVuZGFtZW50YWwgcGFydCBvZiB0aGUgY29uZmlndXJhdGlvbiBtYW5hZ2VtZW50IHByb2Nlc3MsIGFuZCB3aGVyZSBJIGJlZ2luIGFueSBpbi1kZXB0aCBleHBsb3JhdGlvbiBvZiBrZXJuZWwgb3B0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAyMToxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtORl9EVVBfTkVUREVWJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L25ldGZpbHRlci9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9uZXRmaWx0ZXIvS2NvbmZpZz02NjA9aWYgTkZfVEFCTEVTX05FVERFVlxubmV0L25ldGZpbHRlci9LY29uZmlnLTY2MS1cbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzo2NjI6Y29uZmlnIE5GX0RVUF9ORVRERVZcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy02NjMtXHR0cmlzdGF0ZSBcJiMzNDtOZXRmaWx0ZXIgcGFja2V0IGR1cGxpY2F0aW9uIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc9NjY4PWNvbmZpZyBORlRfRFVQX05FVERFVlxubmV0L25ldGZpbHRlci9LY29uZmlnLTY2OS1cdHRyaXN0YXRlIFwmIzM0O05ldGZpbHRlciBuZl90YWJsZXMgbmV0ZGV2IHBhY2tldCBkdXBsaWNhdGlvbiBzdXBwb3J0XCYjMzQ7XG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6NjcwOlx0c2VsZWN0IE5GX0RVUF9ORVRERVZcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy02NzEtXHRoZWxwXG4tLVxubmV0L25ldGZpbHRlci9LY29uZmlnPTY3ND1jb25maWcgTkZUX0ZXRF9ORVRERVZcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy02NzUtXHR0cmlzdGF0ZSBcJiMzNDtOZXRmaWx0ZXIgbmZfdGFibGVzIG5ldGRldiBwYWNrZXQgZm9yd2FyZGluZyBzdXBwb3J0XCYjMzQ7XG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6Njc2Olx0c2VsZWN0IE5GX0RVUF9ORVRERVZcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy02NzctXHRoZWxwXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMjE6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzczMAoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDk1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKktlcm5lbCBDb25maWd1cmF0aW9uIERlcGVuZGVuY2llcyoqCgpPa2F5LCBzbyBJJiMzOTttIGRpZ2dpbmcgaW50byB0aGlzIGtlcm5lbCBjb25maWd1cmF0aW9uIHNwYWNlIGFuZCBuZWVkIHRvIG1ha2Ugc3VyZSBJJiMzOTt2ZSBnb3QgdGhlIGRlcGVuZGVuY2llcyByaWdodC4gSXQgbG9va3MgbGlrZSBgQ09ORklHX05GX0RVUF9ORVRERVZgIGlzIGJyb3VnaHQgaW4gYnkgYm90aCBgTkZUX0RVUF9ORVRERVZgIGFuZCBgTkZUX0ZXRF9ORVRERVZgLiBUaGVyZWZvcmUsIHRvIGVuYWJsZSB0aGUgZnVuY3Rpb25hbGl0eSBJJiMzOTttIGludGVyZXN0ZWQgaW4sIEkgc2hvdWxkIGRlZmluaXRlbHkgaW5jbHVkZSBgTkZfRFVQX05FVERFVmAsIGBORlRfRFVQX05FVERFVmAsIGFuZCBgTkZUX0ZXRF9ORVRERVZgIGluIG15IGNvbmZpZ3VyYXRpb24uIFRoaW5raW5nIGFib3V0IGl0IEkgc2hvdWxkIGFsc28gaW5jbHVkZSBgTkZfVEFCTEVTX05FVERFVmAsIGFzIHRoYXQgc2VlbXMgbGlrZSBhIHJlbGF0ZWQgaXRlbS4gV2FpdCBhIHNlY29uZCwgaXMgYE5GX1RBQkxFU19ORVRERVZgIGEgYm9vbGVhbiBvciBhIHRyaXN0YXRlPyBJIG5lZWQgdG8gY2hlY2sgdGhlIEtjb25maWcgdG8gYmUgc3VyZSwgYmVmb3JlIEkgZ28gYW55IGZ1cnRoZXIsIGFzIHRoYXQgY291bGQgY2hhbmdlIHRoaW5ncy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMjE6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TkZfVEFCTEVTX05FVERFViYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9uZXRmaWx0ZXIvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbmV0ZmlsdGVyL0tjb25maWc9NDcyPWNvbmZpZyBORl9UQUJMRVNfSU5FVFxuLS1cbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy00NzktXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6NDgwOmNvbmZpZyBORl9UQUJMRVNfTkVUREVWXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctNDgxLVx0Ym9vbCBcJiMzNDtOZXRmaWx0ZXIgbmZfdGFibGVzIG5ldGRldiB0YWJsZXMgc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZz02NDk9Y29uZmlnIE5GVF9TWU5QUk9YWVxuLS1cbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy02NTktXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6NjYwOmlmIE5GX1RBQkxFU19ORVRERVZcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy02NjEtXG4tLVxubmV0L25ldGZpbHRlci9LY29uZmlnPTY4OT1jb25maWcgTkZUX1JFSkVDVF9ORVRERVZcbi0tXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctNjk4LVxubmV0L25ldGZpbHRlci9LY29uZmlnOjY5OTplbmRpZiAjIE5GX1RBQkxFU19ORVRERVZcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy03MDAtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDIxOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQyNzcKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiAxMDUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQ29uZmlndXJhdGlvbiBQbGFuKioKCkFscmlnaHQsIGxldCYjMzk7cyBzb2xpZGlmeSB0aGlzLiBJJiMzOTt2ZSBjb25maXJtZWQgdGhhdCBgTkZfVEFCTEVTX05FVERFVmAgaXMgaW5kZWVkIGEgYm9vbGVhbiBjb25maWd1cmF0aW9uIG9wdGlvbi4gTXkgaW1tZWRpYXRlIHRhc2sgaW52b2x2ZXMgZW5hYmxpbmcgdGhlIGZ1bmN0aW9uIGBuZl9kdXBfbmV0ZGV2X2VncmVzc2AuIFRvIGRvIHRoaXMgcHJvcGVybHksIEkmIzM5O20gZ29pbmcgdG8gYWRkIHRoZSBmb2xsb3dpbmcgb3B0aW9ucyB0byBgRW5hYmxlQ29uZmlnc2A6IGBORl9EVVBfTkVUREVWYCwgYE5GVF9EVVBfTkVUREVWYCwgYE5GVF9GV0RfTkVUREVWYCwgYE5GX1RBQkxFU19ORVRERVZgLCBhbmQgYE5GX1RBQkxFU2AuIAoKSG93ZXZlciwgYmVmb3JlIEkgaW1wbGVtZW50IGFueXRoaW5nLCBpdCYjMzk7cyBlc3NlbnRpYWwgdG8gcGVyZm9ybSBhIHRob3JvdWdoIGNoZWNrIGZvciBhbnkgb3RoZXIgZGVwZW5kZW5jaWVzIG9yIHJlbGF0ZWQgY29uZmlndXJhdGlvbnMgdGhhdCBtaWdodCBhZmZlY3QgdGhpcy4gR290dGEgbWFrZSBzdXJlIEkgZG9uJiMzOTt0IG92ZXJsb29rIGFueXRoaW5nIHRoYXQgY291bGQgbGVhZCB0byB1bmV4cGVjdGVkIGJlaGF2aW9yIGxhdGVyIG9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAyMToxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtORlRfRFVQX05FVERFViYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9uZXRmaWx0ZXIvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbmV0ZmlsdGVyL0tjb25maWc9NjYyPWNvbmZpZyBORl9EVVBfTkVUREVWXG4tLVxubmV0L25ldGZpbHRlci9LY29uZmlnLTY2Ny1cbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzo2Njg6Y29uZmlnIE5GVF9EVVBfTkVUREVWXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctNjY5LVx0dHJpc3RhdGUgXCYjMzQ7TmV0ZmlsdGVyIG5mX3RhYmxlcyBuZXRkZXYgcGFja2V0IGR1cGxpY2F0aW9uIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMjE6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDY3MwoJCQkJCQkJb3V0cHV0OiAxNzEKCQkJCQkJCXRob3VnaHRzOiAyNTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb24qKgoKT2theSwgc28gSSYjMzk7dmUgcGlucG9pbnRlZCBhIHNwZWNpZmljIGZ1bmN0aW9uLCBgbmZfZHVwX25ldGRldl9lZ3Jlc3NgLiBJcyB0aGVyZSAqYW55dGhpbmcqIGVsc2UgY2hhbmdlZCBieSB0aGlzIHBhdGNoPyBOb3BlLCBqdXN0IHRoaXMgb25lLiBUaGF0IG1ha2VzIGl0IGEgcHJpbWUgY2FuZGlkYXRlIGZvciBmdXp6aW5nLgoKTGV0JiMzOTtzIGRvIGEgcXVpY2sgcmVhY2hhYmlsaXR5IGNoZWNrLiBBbHJpZ2h0LCBgbmZfZHVwX25ldGRldl9lZ3Jlc3NgIGlzIGNhbGxlZCBmcm9tIGBuZnRfZHVwX25ldGRldl9ldmFsYCwgd2hpY2ggaXMgdGhlIGV2YWx1YXRpb24gY2FsbGJhY2sgZm9yIGBuZnRfZHVwX25ldGRldl90eXBlYC4gRXhjZWxsZW50LCBtZWFuaW5nIHRoaXMgaXMgdXNlci1hY2Nlc3NpYmxlIHZpYSBuZXRsaW5rIGFuZCBuZl90YWJsZXMsIHdoaWNoIGlzIGV4YWN0bHkgd2hhdCBJIHdhcyBob3BpbmcgZm9yLgoKQmFzZWQgb24gdGhlIGVuYWJsZWQgY29uZmlndXJhdGlvbnMgKE5GX1RBQkxFUywgTkZfVEFCTEVTX05FVERFViwgTkZfRFVQX05FVERFViwgTkZUX0RVUF9ORVRERVYsIE5GVF9GV0RfTkVUREVWKSwgdGhlIGZ1bmN0aW9uYWxpdHkgdG8gdGFyZ2V0IGlzIGRlZmluaXRlbHkgcHJlc2VudCBpbiB0aGlzIGJ1aWxkLgoKVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSByZXZvbHZlcyBhcm91bmQgYG5mX2R1cF9uZXRkZXZfZWdyZXNzYCBub3cgY2FsbGluZyBgc2tiX3NjcnViX3BhY2tldGAgKmJlZm9yZSogYG5mX2RvX25ldGRldl9lZ3Jlc3NgLiBUaGF0JiMzOTtzIGEgZnVuY3Rpb25hbCBtb2RpZmljYXRpb24gd2l0aGluIHRoZSBuZXRmaWx0ZXIgcGFja2V0IGR1cGxpY2F0aW9uIGxvZ2ljLiBNeSBwcmltYXJ5IGNvbmNlcm4gaXMgZW5zdXJpbmcgdGhpcyBwYWNrZXQgc2NydWJiaW5nIGRvZXNuJiMzOTt0IGludHJvZHVjZSByZWdyZXNzaW9ucyBvciBhbnkgbWVtb3J5IGNvcnJ1cHRpb24gaXNzdWVzLCBzbyBJIHdpbGwgc3RhcnQgZnV6emluZyB0aGlzIGZ1bmN0aW9uIGRpcmVjdGx5LiBUaGlzIHNlZW1zIGxpa2UgYSBzb2xpZCB0YXJnZXQgZm9yIHNvbWUgZm9jdXNzZWQgZnV6emluZyBlZmZvcnRzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAyMToxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkZfVEFCTEVTJiMzNDssCiAgICAmIzM0O05GX1RBQkxFU19ORVRERVYmIzM0OywKICAgICYjMzQ7TkZfRFVQX05FVERFViYjMzQ7LAogICAgJiMzNDtORlRfRFVQX05FVERFViYjMzQ7LAogICAgJiMzNDtORlRfRldEX05FVERFViYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O25mX2R1cF9uZXRkZXZfZWdyZXNzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGBuZl9kdXBfbmV0ZGV2X2VncmVzc2AgdG8gY2FsbCBgc2tiX3NjcnViX3BhY2tldGAgYmVmb3JlIGBuZl9kb19uZXRkZXZfZWdyZXNzYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBuZXRmaWx0ZXIgcGFja2V0IGR1cGxpY2F0aW9uIGxvZ2ljLCB3aGljaCBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIG5mX3RhYmxlcyBuZXRsaW5rIEFQSS4gRnV6emluZyB0aGlzIGZ1bmN0aW9uIGNhbiBoZWxwIGVuc3VyZSB0aGF0IHRoZSBwYWNrZXQgc2NydWJiaW5nIGRvZXMgbm90IGludHJvZHVjZSBhbnkgcmVncmVzc2lvbnMgb3IgbWVtb3J5IGlzc3Vlcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkZfVEFCTEVTJiMzNDssCiAgICAmIzM0O05GX1RBQkxFU19ORVRERVYmIzM0OywKICAgICYjMzQ7TkZfRFVQX05FVERFViYjMzQ7LAogICAgJiMzNDtORlRfRFVQX05FVERFViYjMzQ7LAogICAgJiMzNDtORlRfRldEX05FVERFViYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O25mX2R1cF9uZXRkZXZfZWdyZXNzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGBuZl9kdXBfbmV0ZGV2X2VncmVzc2AgdG8gY2FsbCBgc2tiX3NjcnViX3BhY2tldGAgYmVmb3JlIGBuZl9kb19uZXRkZXZfZWdyZXNzYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBuZXRmaWx0ZXIgcGFja2V0IGR1cGxpY2F0aW9uIGxvZ2ljLCB3aGljaCBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIG5mX3RhYmxlcyBuZXRsaW5rIEFQSS4gRnV6emluZyB0aGlzIGZ1bmN0aW9uIGNhbiBoZWxwIGVuc3VyZSB0aGF0IHRoZSBwYWNrZXQgc2NydWJiaW5nIGRvZXMgbm90IGludHJvZHVjZSBhbnkgcmVncmVzc2lvbnMgb3IgbWVtb3J5IGlzc3Vlcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDIxOjEwOjE2LjY4NjMxMDc2M1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI2ODc3ODgzNzMzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk5GX1RBQkxFU1wiLFxuICAgIFwiTkZfVEFCTEVTX05FVERFVlwiLFxuICAgIFwiTkZfRFVQX05FVERFVlwiLFxuICAgIFwiTkZUX0RVUF9ORVRERVZcIixcbiAgICBcIk5GVF9GV0RfTkVUREVWXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibmZfZHVwX25ldGRldl9lZ3Jlc3NcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBgbmZfZHVwX25ldGRldl9lZ3Jlc3NgIHRvIGNhbGwgYHNrYl9zY3J1Yl9wYWNrZXRgIGJlZm9yZSBgbmZfZG9fbmV0ZGV2X2VncmVzc2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbmV0ZmlsdGVyIHBhY2tldCBkdXBsaWNhdGlvbiBsb2dpYywgd2hpY2ggaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBuZl90YWJsZXMgbmV0bGluayBBUEkuIEZ1enppbmcgdGhpcyBmdW5jdGlvbiBjYW4gaGVscCBlbnN1cmUgdGhhdCB0aGUgcGFja2V0IHNjcnViYmluZyBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IHJlZ3Jlc3Npb25zIG9yIG1lbW9yeSBpc3N1ZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDIxOjEwOjE2LjY4NjMxNjgxM1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTIzNjU3Mzc3NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDBlMGU5OGQ4OTUzZjNmNGM5NTdiNDJmNTVhZjY2ODNkMDlhMjZiMDdcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBBdWcgNCAyMToxMDoxNSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9uZXQvbmV0ZmlsdGVyL25mX2R1cF9uZXRkZXYuYyBiL25ldC9uZXRmaWx0ZXIvbmZfZHVwX25ldGRldi5jXFxuaW5kZXggYzZiZDVjMjliZWQ2Ni4uMGY0N2EyMTM1OTU1ZSAxMDA2NDRcXG4tLS0gYS9uZXQvbmV0ZmlsdGVyL25mX2R1cF9uZXRkZXYuY1xcbisrKyBiL25ldC9uZXRmaWx0ZXIvbmZfZHVwX25ldGRldi5jXFxuQEAgLTYzLDggKzYzLDEwIEBAIHZvaWQgbmZfZHVwX25ldGRldl9lZ3Jlc3MoY29uc3Qgc3RydWN0IG5mdF9wa3RpbmZvICpwa3QsIGludCBvaWYpXFxuIFxcdFxcdHJldHVybjtcXG4gXFxuIFxcdHNrYiA9IHNrYl9jbG9uZShwa3QtXFx1MDAzZXNrYiwgR0ZQX0FUT01JQyk7XFxuLVxcdGlmIChza2IpXFxuK1xcdGlmIChza2IpIHtcXG4rXFx0XFx0c2tiX3NjcnViX3BhY2tldChza2IsIGZhbHNlKTtcXG4gXFx0XFx0bmZfZG9fbmV0ZGV2X2VncmVzcyhza2IsIGRldiwgbmZ0X2hvb2socGt0KSk7XFxuK1xcdH1cXG4gfVxcbiBFWFBPUlRfU1lNQk9MX0dQTChuZl9kdXBfbmV0ZGV2X2VncmVzcyk7XFxuIFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQyMToxMDoxNy45MjM2MDA0NloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjI1NjQwNTg0ODI2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk5GX1RBQkxFU1wiLFxuICAgIFwiTkZfVEFCTEVTX05FVERFVlwiLFxuICAgIFwiTkZfRFVQX05FVERFVlwiLFxuICAgIFwiTkZUX0RVUF9ORVRERVZcIixcbiAgICBcIk5GVF9GV0RfTkVUREVWXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibmZfZHVwX25ldGRldl9lZ3Jlc3NcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBgbmZfZHVwX25ldGRldl9lZ3Jlc3NgIHRvIGNhbGwgYHNrYl9zY3J1Yl9wYWNrZXRgIGJlZm9yZSBgbmZfZG9fbmV0ZGV2X2VncmVzc2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbmV0ZmlsdGVyIHBhY2tldCBkdXBsaWNhdGlvbiBsb2dpYywgd2hpY2ggaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBuZl90YWJsZXMgbmV0bGluayBBUEkuIEZ1enppbmcgdGhpcyBmdW5jdGlvbiBjYW4gaGVscCBlbnN1cmUgdGhhdCB0aGUgcGFja2V0IHNjcnViYmluZyBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IHJlZ3Jlc3Npb25zIG9yIG1lbW9yeSBpc3N1ZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDBlMGU5OGQ4OTUzZjNmNGM5NTdiNDJmNTVhZjY2ODNkMDlhMjZiMDdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEF1ZyA0IDIxOjEwOjE1IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L25ldGZpbHRlci9uZl9kdXBfbmV0ZGV2LmMgYi9uZXQvbmV0ZmlsdGVyL25mX2R1cF9uZXRkZXYuY1xuaW5kZXggYzZiZDVjMjliZWQ2Ni4uMGY0N2EyMTM1OTU1ZSAxMDA2NDRcbi0tLSBhL25ldC9uZXRmaWx0ZXIvbmZfZHVwX25ldGRldi5jXG4rKysgYi9uZXQvbmV0ZmlsdGVyL25mX2R1cF9uZXRkZXYuY1xuQEAgLTYzLDggKzYzLDEwIEBAIHZvaWQgbmZfZHVwX25ldGRldl9lZ3Jlc3MoY29uc3Qgc3RydWN0IG5mdF9wa3RpbmZvICpwa3QsIGludCBvaWYpXG4gXHRcdHJldHVybjtcbiBcbiBcdHNrYiA9IHNrYl9jbG9uZShwa3QtXHUwMDNlc2tiLCBHRlBfQVRPTUlDKTtcbi1cdGlmIChza2IpXG4rXHRpZiAoc2tiKSB7XG4rXHRcdHNrYl9zY3J1Yl9wYWNrZXQoc2tiLCBmYWxzZSk7XG4gXHRcdG5mX2RvX25ldGRldl9lZ3Jlc3Moc2tiLCBkZXYsIG5mdF9ob29rKHBrdCkpO1xuK1x0fVxuIH1cbiBFWFBPUlRfU1lNQk9MX0dQTChuZl9kdXBfbmV0ZGV2X2VncmVzcyk7XG4gXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQyMToxMDoxNy45MjM2MDE2M1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwOTM1ODkyNzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBOZXRmaWx0ZXIgRWdyZXNzIE1vZGlmaWNhdGlvbioqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgYG5mX2R1cF9uZXRkZXZfZWdyZXNzYCB3aXRoaW4gYG5ldC9uZXRmaWx0ZXIvbmZfZHVwX25ldGRldi5jYC4gUmlnaHQgb2ZmIHRoZSBiYXQsIEkgc2VlIHRoZXkncmUgaW50cm9kdWNpbmcgYSBgc2tiX3NjcnViX3BhY2tldChza2IsIGZhbHNlKTtgIGNhbGwgYmVmb3JlIHRoZSBgbmZfZG9fbmV0ZGV2X2VncmVzcyhza2IsIGRldiwgbmZ0X2hvb2socGt0KSk7YCBleGVjdXRpb24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYSBwcmV0dHkgY2xlYXIgbW9kaWZpY2F0aW9uIHRvIHRoZSBuZXRmaWx0ZXIgYmVoYXZpb3IuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcIldoYXQgYXJlIHRoZSBpbXBsaWNhdGlvbnM/XCJcblxuSSBuZWVkIHRvIGRpdmUgaW50byBgbmZfZHVwX25ldGRldl9lZ3Jlc3NgIGl0c2VsZiwgdW5kZXJzdGFuZCBpdHMgZXhhY3QgZnVuY3Rpb24gYW5kIG9wZXJhdGlvbi4gVGhlbiwgSSdsbCBuZWVkIHRvIG1ldGljdWxvdXNseSBnbyB0aHJvdWdoIHRoZSBjb25maWd1cmF0aW9uIGRlcGVuZGVuY2llcy4gV2hhdCBvdGhlciBjb21wb25lbnRzIHJlbHkgb24gdGhpcyBmdW5jdGlvbj8gSG93IG1pZ2h0IHRoaXMgYHNrYl9zY3J1Yl9wYWNrZXRgIGNhbGwgaW1wYWN0IGV4aXN0aW5nIGNvbmZpZ3VyYXRpb25zIG9yIGludHJvZHVjZSBzdWJ0bGUgYmVoYXZpb3JhbCBzaGlmdHMgSSBuZWVkIHRvIGJlIGF3YXJlIG9mPyBBcmUgdGhlcmUgYW55IHBvdGVudGlhbCBwZXJmb3JtYW5jZSBpbXBsaWNhdGlvbnMsIGVpdGhlciBwb3NpdGl2ZSBvciBuZWdhdGl2ZSwgZnJvbSB0aGlzIHNjcnViIG9wZXJhdGlvbj8gSeKAmWxsIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgbnVhbmNlcyBvZiB0aGlzIGNoYW5nZSB0byBlbnN1cmUgY29tcGF0aWJpbGl0eSBhbmQgcHJldmVudCB1bmV4cGVjdGVkIHNpZGUgZWZmZWN0cyBkb3duc3RyZWFtLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDk5LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTA3LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMjE6MTA6MjIuMDE3MTk0MTk3WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ2MjA4Mjc3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm5mX2R1cF9uZXRkZXZfZWdyZXNzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9uZXRmaWx0ZXIvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9uZXRmaWx0ZXIvbmZfZHVwX25ldGRldi5jPTU0PUVYUE9SVF9TWU1CT0xfR1BMKG5mX2Z3ZF9uZXRkZXZfZWdyZXNzKTtcXG5uZXQvbmV0ZmlsdGVyL25mX2R1cF9uZXRkZXYuYy01NS1cXG5uZXQvbmV0ZmlsdGVyL25mX2R1cF9uZXRkZXYuYzo1Njp2b2lkIG5mX2R1cF9uZXRkZXZfZWdyZXNzKGNvbnN0IHN0cnVjdCBuZnRfcGt0aW5mbyAqcGt0LCBpbnQgb2lmKVxcbm5ldC9uZXRmaWx0ZXIvbmZfZHVwX25ldGRldi5jLTU3LXtcXG4tLVxcbm5ldC9uZXRmaWx0ZXIvbmZfZHVwX25ldGRldi5jLTcwLX1cXG5uZXQvbmV0ZmlsdGVyL25mX2R1cF9uZXRkZXYuYzo3MTpFWFBPUlRfU1lNQk9MX0dQTChuZl9kdXBfbmV0ZGV2X2VncmVzcyk7XFxubmV0L25ldGZpbHRlci9uZl9kdXBfbmV0ZGV2LmMtNzItXFxuLS1cXG5uZXQvbmV0ZmlsdGVyL25mdF9kdXBfbmV0ZGV2LmM9MjA9c3RhdGljIHZvaWQgbmZ0X2R1cF9uZXRkZXZfZXZhbChjb25zdCBzdHJ1Y3QgbmZ0X2V4cHIgKmV4cHIsXFxuLS1cXG5uZXQvbmV0ZmlsdGVyL25mdF9kdXBfbmV0ZGV2LmMtMjYtXFxubmV0L25ldGZpbHRlci9uZnRfZHVwX25ldGRldi5jOjI3OlxcdG5mX2R1cF9uZXRkZXZfZWdyZXNzKHBrdCwgb2lmKTtcXG5uZXQvbmV0ZmlsdGVyL25mdF9kdXBfbmV0ZGV2LmMtMjgtfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQyMToxMDoyMi4wNjM0MDcwMTRaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozODM1NjExODc0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIG15IG93biByZWFzb25pbmc6XG5cbioqQW5hbHl6aW5nIHRoZSBOZXRmaWx0ZXIgRHVwbGljYXRpb24gTW9kdWxlKipcblxuUmlnaHQsIGxldCdzIHNlZSwgdGhlIGBuZl9kdXBfbmV0ZGV2X2VncmVzc2AgZnVuY3Rpb24uLi50aGF0J3MgZXhwb3J0ZWQsIHNvIGl0J3MgYSBrZXkgcGllY2Ugb2YgdGhlIHB1enpsZS4gSSBrbm93IGl0J3MgdXNlZCBpbiBgbmV0L25ldGZpbHRlci9uZnRfZHVwX25ldGRldi5jYC4gTWFrZXMgc2Vuc2UsIHRoZSBOZXR3b3JrIEZpbHRlciBUYWJsZSAoTkZUKSBmcmFtZXdvcmsgd291bGQgbGlrZWx5IGJlIGxldmVyYWdpbmcgc29tZSBsb3dlci1sZXZlbCBmdW5jdGlvbmFsaXR5LlxuXG5Ob3csIGlmIEknbSB0cnlpbmcgdG8gZnVsbHkgdW5kZXJzdGFuZCBob3cgdGhpcyBkdXBsaWNhdGlvbiBwcm9jZXNzIHdvcmtzIHdpdGhpbiB0aGUgTmV0ZmlsdGVyIGNvbnRleHQsIHRoZSAqZmlyc3QqIHRoaW5nIEkgd2FudCB0byBkbyBpcyBjaGVjayB0aGUgS2NvbmZpZyBmaWxlcyBmb3IgYm90aCBgbmZfZHVwX25ldGRldi5jYCBhbmQgYG5mdF9kdXBfbmV0ZGV2LmNgLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0IGRlcGVuZGVuY2llcyBhbmQgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSBpbiBwbGF5LiBBcmUgdGhlcmUgc3BlY2lmaWMgbW9kdWxlcyB0aGF0IG5lZWQgdG8gYmUgZW5hYmxlZCBmb3IgdGhpcyBkdXBsaWNhdGlvbiBmdW5jdGlvbmFsaXR5IHRvIHdvcms/IFdoYXQgbGV2ZWwgb2YgY29uZmlndXJhYmlsaXR5IGRvIHdlIGhhdmUgaGVyZT8gVGhpcyB3aWxsIGdpdmUgbWUgYSBiZXR0ZXIgdW5kZXJzdGFuZGluZyBvZiB0aGUgcHJlY29uZGl0aW9ucyBmb3IgdGhpcyBmZWF0dXJlLCBhbmQgaG93IGl0IGlzIGVuYWJsZWQsIG9yIGRpc2FibGVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNzkxLCJPdXRwdXRUb2tlbnMiOjMyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMjE6MTA6MjUuODk5MDIwOTI3WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ4NzM3MDM3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm5mX2R1cF9uZXRkZXZcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L25ldGZpbHRlci9NYWtlZmlsZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbmV0ZmlsdGVyL01ha2VmaWxlPTgxPW9iai0kKENPTkZJR19ORVRGSUxURVJfQ09OTkNPVU5UKSArPSBuZl9jb25uY291bnQub1xcbi0tXFxubmV0L25ldGZpbHRlci9NYWtlZmlsZS04My0jIGdlbmVyaWMgcGFja2V0IGR1cGxpY2F0aW9uIGZyb20gbmV0ZGV2IGZhbWlseVxcbm5ldC9uZXRmaWx0ZXIvTWFrZWZpbGU6ODQ6b2JqLSQoQ09ORklHX05GX0RVUF9ORVRERVYpXFx0Kz0gbmZfZHVwX25ldGRldi5vXFxubmV0L25ldGZpbHRlci9NYWtlZmlsZS04NS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMjE6MTA6MjUuOTQ3NzY1MzI0WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzcxMjk1NDI0MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgYENPTkZJR19ORl9EVVBfTkVUREVWYCBEZXBlbmRlbmN5KipcblxuQWxyaWdodCwgc28gSSdtIHRoaW5raW5nIGFib3V0IGBDT05GSUdfTkZfRFVQX05FVERFVmAg4oCTIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyByb2xlLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZmlndXJlIG91dCB0aGUgdXBzdHJlYW0gZGVwZW5kZW5jaWVzOyB3aGF0ICpzZWxlY3RzKiBpdCwgd2hhdCAqZGVwZW5kcyogb24gaXQuIEkgbmVlZCB0byBrbm93IHdoYXQgZmVhdHVyZXMgb3IgbW9kdWxlcyBpbiB0aGUga2VybmVsIGNvbmZpZ3VyYXRpb24gcmVseSBvbiB0aGlzIHNwZWNpZmljIG9wdGlvbi4gVGhpcyBpcyB0aGUgY3JpdGljYWwgZmlyc3Qgc3RlcCB0byB1bmRlcnN0YW5kIHdoZXJlIHRoaXMgZml0cyBpbnRvIHRoZSB3aG9sZSBwaWN0dXJlLCB3aGVyZSBpdCBtaWdodCBpbnRyb2R1Y2UgY29uZmxpY3RzLCBvciBpZiBpdCBtaWdodCBwcmVzZW50IGFuIG9wcG9ydHVuaXR5IGZvciBvcHRpbWl6YXRpb24sIG9yIG1heWJlIGlzIGEgYmxvY2tlciBmb3Igc29tZXRoaW5nIEkgKmRvKiBuZWVkLiBJdCdzIGEgZnVuZGFtZW50YWwgcGFydCBvZiB0aGUgY29uZmlndXJhdGlvbiBtYW5hZ2VtZW50IHByb2Nlc3MsIGFuZCB3aGVyZSBJIGJlZ2luIGFueSBpbi1kZXB0aCBleHBsb3JhdGlvbiBvZiBrZXJuZWwgb3B0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzIyMywiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDIxOjEwOjI5LjY2MDcyMTUxNloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MzE1MjU1NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJORl9EVVBfTkVUREVWXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9uZXRmaWx0ZXIvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbmV0ZmlsdGVyL0tjb25maWc9NjYwPWlmIE5GX1RBQkxFU19ORVRERVZcXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctNjYxLVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzo2NjI6Y29uZmlnIE5GX0RVUF9ORVRERVZcXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctNjYzLVxcdHRyaXN0YXRlIFxcXCJOZXRmaWx0ZXIgcGFja2V0IGR1cGxpY2F0aW9uIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc9NjY4PWNvbmZpZyBORlRfRFVQX05FVERFVlxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy02NjktXFx0dHJpc3RhdGUgXFxcIk5ldGZpbHRlciBuZl90YWJsZXMgbmV0ZGV2IHBhY2tldCBkdXBsaWNhdGlvbiBzdXBwb3J0XFxcIlxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzo2NzA6XFx0c2VsZWN0IE5GX0RVUF9ORVRERVZcXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctNjcxLVxcdGhlbHBcXG4tLVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZz02NzQ9Y29uZmlnIE5GVF9GV0RfTkVUREVWXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTY3NS1cXHR0cmlzdGF0ZSBcXFwiTmV0ZmlsdGVyIG5mX3RhYmxlcyBuZXRkZXYgcGFja2V0IGZvcndhcmRpbmcgc3VwcG9ydFxcXCJcXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6Njc2OlxcdHNlbGVjdCBORl9EVVBfTkVUREVWXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTY3Ny1cXHRoZWxwXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDIxOjEwOjI5LjcwMzg3ODk2M1oiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0MTEwOTY0MTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqS2VybmVsIENvbmZpZ3VyYXRpb24gRGVwZW5kZW5jaWVzKipcblxuT2theSwgc28gSSdtIGRpZ2dpbmcgaW50byB0aGlzIGtlcm5lbCBjb25maWd1cmF0aW9uIHNwYWNlIGFuZCBuZWVkIHRvIG1ha2Ugc3VyZSBJJ3ZlIGdvdCB0aGUgZGVwZW5kZW5jaWVzIHJpZ2h0LiBJdCBsb29rcyBsaWtlIGBDT05GSUdfTkZfRFVQX05FVERFVmAgaXMgYnJvdWdodCBpbiBieSBib3RoIGBORlRfRFVQX05FVERFVmAgYW5kIGBORlRfRldEX05FVERFVmAuIFRoZXJlZm9yZSwgdG8gZW5hYmxlIHRoZSBmdW5jdGlvbmFsaXR5IEknbSBpbnRlcmVzdGVkIGluLCBJIHNob3VsZCBkZWZpbml0ZWx5IGluY2x1ZGUgYE5GX0RVUF9ORVRERVZgLCBgTkZUX0RVUF9ORVRERVZgLCBhbmQgYE5GVF9GV0RfTkVUREVWYCBpbiBteSBjb25maWd1cmF0aW9uLiBUaGlua2luZyBhYm91dCBpdCBJIHNob3VsZCBhbHNvIGluY2x1ZGUgYE5GX1RBQkxFU19ORVRERVZgLCBhcyB0aGF0IHNlZW1zIGxpa2UgYSByZWxhdGVkIGl0ZW0uIFdhaXQgYSBzZWNvbmQsIGlzIGBORl9UQUJMRVNfTkVUREVWYCBhIGJvb2xlYW4gb3IgYSB0cmlzdGF0ZT8gSSBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIHRvIGJlIHN1cmUsIGJlZm9yZSBJIGdvIGFueSBmdXJ0aGVyLCBhcyB0aGF0IGNvdWxkIGNoYW5nZSB0aGluZ3MuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM3MzAsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQyMToxMDozMy4xMTQ5Nzc1NTVaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzMDY3MzA3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIk5GX1RBQkxFU19ORVRERVZcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L25ldGZpbHRlci9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9uZXRmaWx0ZXIvS2NvbmZpZz00NzI9Y29uZmlnIE5GX1RBQkxFU19JTkVUXFxuLS1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctNDc5LVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzo0ODA6Y29uZmlnIE5GX1RBQkxFU19ORVRERVZcXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctNDgxLVxcdGJvb2wgXFxcIk5ldGZpbHRlciBuZl90YWJsZXMgbmV0ZGV2IHRhYmxlcyBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L25ldGZpbHRlci9LY29uZmlnPTY0OT1jb25maWcgTkZUX1NZTlBST1hZXFxuLS1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctNjU5LVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZzo2NjA6aWYgTkZfVEFCTEVTX05FVERFVlxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy02NjEtXFxuLS1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc9Njg5PWNvbmZpZyBORlRfUkVKRUNUX05FVERFVlxcbi0tXFxubmV0L25ldGZpbHRlci9LY29uZmlnLTY5OC1cXG5uZXQvbmV0ZmlsdGVyL0tjb25maWc6Njk5OmVuZGlmICMgTkZfVEFCTEVTX05FVERFVlxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy03MDAtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDIxOjEwOjMzLjE1ODA0OTA2MloiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDM3OTIyMjgwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IENvbmZpZ3VyYXRpb24gUGxhbioqXG5cbkFscmlnaHQsIGxldCdzIHNvbGlkaWZ5IHRoaXMuIEkndmUgY29uZmlybWVkIHRoYXQgYE5GX1RBQkxFU19ORVRERVZgIGlzIGluZGVlZCBhIGJvb2xlYW4gY29uZmlndXJhdGlvbiBvcHRpb24uIE15IGltbWVkaWF0ZSB0YXNrIGludm9sdmVzIGVuYWJsaW5nIHRoZSBmdW5jdGlvbiBgbmZfZHVwX25ldGRldl9lZ3Jlc3NgLiBUbyBkbyB0aGlzIHByb3Blcmx5LCBJJ20gZ29pbmcgdG8gYWRkIHRoZSBmb2xsb3dpbmcgb3B0aW9ucyB0byBgRW5hYmxlQ29uZmlnc2A6IGBORl9EVVBfTkVUREVWYCwgYE5GVF9EVVBfTkVUREVWYCwgYE5GVF9GV0RfTkVUREVWYCwgYE5GX1RBQkxFU19ORVRERVZgLCBhbmQgYE5GX1RBQkxFU2AuIFxuXG5Ib3dldmVyLCBiZWZvcmUgSSBpbXBsZW1lbnQgYW55dGhpbmcsIGl0J3MgZXNzZW50aWFsIHRvIHBlcmZvcm0gYSB0aG9yb3VnaCBjaGVjayBmb3IgYW55IG90aGVyIGRlcGVuZGVuY2llcyBvciByZWxhdGVkIGNvbmZpZ3VyYXRpb25zIHRoYXQgbWlnaHQgYWZmZWN0IHRoaXMuIEdvdHRhIG1ha2Ugc3VyZSBJIGRvbid0IG92ZXJsb29rIGFueXRoaW5nIHRoYXQgY291bGQgbGVhZCB0byB1bmV4cGVjdGVkIGJlaGF2aW9yIGxhdGVyIG9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0Mjc3LCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTA1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDIxOjEwOjM3LjE5NTk3MzE3MloiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDgzNjA3NDcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiTkZUX0RVUF9ORVRERVZcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L25ldGZpbHRlci9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9uZXRmaWx0ZXIvS2NvbmZpZz02NjI9Y29uZmlnIE5GX0RVUF9ORVRERVZcXG4tLVxcbm5ldC9uZXRmaWx0ZXIvS2NvbmZpZy02NjctXFxubmV0L25ldGZpbHRlci9LY29uZmlnOjY2ODpjb25maWcgTkZUX0RVUF9ORVRERVZcXG5uZXQvbmV0ZmlsdGVyL0tjb25maWctNjY5LVxcdHRyaXN0YXRlIFxcXCJOZXRmaWx0ZXIgbmZfdGFibGVzIG5ldGRldiBwYWNrZXQgZHVwbGljYXRpb24gc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMjE6MTA6MzcuMjQ0MzM4NDI5WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYyMzQyNzMzNDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ3ZlIHBpbnBvaW50ZWQgYSBzcGVjaWZpYyBmdW5jdGlvbiwgYG5mX2R1cF9uZXRkZXZfZWdyZXNzYC4gSXMgdGhlcmUgKmFueXRoaW5nKiBlbHNlIGNoYW5nZWQgYnkgdGhpcyBwYXRjaD8gTm9wZSwganVzdCB0aGlzIG9uZS4gVGhhdCBtYWtlcyBpdCBhIHByaW1lIGNhbmRpZGF0ZSBmb3IgZnV6emluZy5cblxuTGV0J3MgZG8gYSBxdWljayByZWFjaGFiaWxpdHkgY2hlY2suIEFscmlnaHQsIGBuZl9kdXBfbmV0ZGV2X2VncmVzc2AgaXMgY2FsbGVkIGZyb20gYG5mdF9kdXBfbmV0ZGV2X2V2YWxgLCB3aGljaCBpcyB0aGUgZXZhbHVhdGlvbiBjYWxsYmFjayBmb3IgYG5mdF9kdXBfbmV0ZGV2X3R5cGVgLiBFeGNlbGxlbnQsIG1lYW5pbmcgdGhpcyBpcyB1c2VyLWFjY2Vzc2libGUgdmlhIG5ldGxpbmsgYW5kIG5mX3RhYmxlcywgd2hpY2ggaXMgZXhhY3RseSB3aGF0IEkgd2FzIGhvcGluZyBmb3IuXG5cbkJhc2VkIG9uIHRoZSBlbmFibGVkIGNvbmZpZ3VyYXRpb25zIChORl9UQUJMRVMsIE5GX1RBQkxFU19ORVRERVYsIE5GX0RVUF9ORVRERVYsIE5GVF9EVVBfTkVUREVWLCBORlRfRldEX05FVERFViksIHRoZSBmdW5jdGlvbmFsaXR5IHRvIHRhcmdldCBpcyBkZWZpbml0ZWx5IHByZXNlbnQgaW4gdGhpcyBidWlsZC5cblxuVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSByZXZvbHZlcyBhcm91bmQgYG5mX2R1cF9uZXRkZXZfZWdyZXNzYCBub3cgY2FsbGluZyBgc2tiX3NjcnViX3BhY2tldGAgKmJlZm9yZSogYG5mX2RvX25ldGRldl9lZ3Jlc3NgLiBUaGF0J3MgYSBmdW5jdGlvbmFsIG1vZGlmaWNhdGlvbiB3aXRoaW4gdGhlIG5ldGZpbHRlciBwYWNrZXQgZHVwbGljYXRpb24gbG9naWMuIE15IHByaW1hcnkgY29uY2VybiBpcyBlbnN1cmluZyB0aGlzIHBhY2tldCBzY3J1YmJpbmcgZG9lc24ndCBpbnRyb2R1Y2UgcmVncmVzc2lvbnMgb3IgYW55IG1lbW9yeSBjb3JydXB0aW9uIGlzc3Vlcywgc28gSSB3aWxsIHN0YXJ0IGZ1enppbmcgdGhpcyBmdW5jdGlvbiBkaXJlY3RseS4gVGhpcyBzZWVtcyBsaWtlIGEgc29saWQgdGFyZ2V0IGZvciBzb21lIGZvY3Vzc2VkIGZ1enppbmcgZWZmb3J0cy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDY3MywiT3V0cHV0VG9rZW5zIjoxNzEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNTcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMjE6MTA6NDMuNDc4NjE1MTUyWiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODU1Njc3MDQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk5GX1RBQkxFU1wiLFxuICAgIFwiTkZfVEFCTEVTX05FVERFVlwiLFxuICAgIFwiTkZfRFVQX05FVERFVlwiLFxuICAgIFwiTkZUX0RVUF9ORVRERVZcIixcbiAgICBcIk5GVF9GV0RfTkVUREVWXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibmZfZHVwX25ldGRldl9lZ3Jlc3NcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBgbmZfZHVwX25ldGRldl9lZ3Jlc3NgIHRvIGNhbGwgYHNrYl9zY3J1Yl9wYWNrZXRgIGJlZm9yZSBgbmZfZG9fbmV0ZGV2X2VncmVzc2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbmV0ZmlsdGVyIHBhY2tldCBkdXBsaWNhdGlvbiBsb2dpYywgd2hpY2ggaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBuZl90YWJsZXMgbmV0bGluayBBUEkuIEZ1enppbmcgdGhpcyBmdW5jdGlvbiBjYW4gaGVscCBlbnN1cmUgdGhhdCB0aGUgcGFja2V0IHNjcnViYmluZyBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IHJlZ3Jlc3Npb25zIG9yIG1lbW9yeSBpc3N1ZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTkZfVEFCTEVTXCIsXG4gICAgXCJORl9UQUJMRVNfTkVUREVWXCIsXG4gICAgXCJORl9EVVBfTkVUREVWXCIsXG4gICAgXCJORlRfRFVQX05FVERFVlwiLFxuICAgIFwiTkZUX0ZXRF9ORVRERVZcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJuZl9kdXBfbmV0ZGV2X2VncmVzc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGBuZl9kdXBfbmV0ZGV2X2VncmVzc2AgdG8gY2FsbCBgc2tiX3NjcnViX3BhY2tldGAgYmVmb3JlIGBuZl9kb19uZXRkZXZfZWdyZXNzYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBuZXRmaWx0ZXIgcGFja2V0IGR1cGxpY2F0aW9uIGxvZ2ljLCB3aGljaCBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIG5mX3RhYmxlcyBuZXRsaW5rIEFQSS4gRnV6emluZyB0aGlzIGZ1bmN0aW9uIGNhbiBoZWxwIGVuc3VyZSB0aGF0IHRoZSBwYWNrZXQgc2NydWJiaW5nIGRvZXMgbm90IGludHJvZHVjZSBhbnkgcmVncmVzc2lvbnMgb3IgbWVtb3J5IGlzc3Vlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowzbwjm[1] Phase: Succeeded StartedAt: 2026-08-04 21:10:55 +0000 UTC FinishedAt: 2026-08-04 21:10:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbwjm[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-04 21:10:55 +0000 UTC FinishedAt: 2026-08-04 21:10:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbwjm[2] Phase: Succeeded StartedAt: 2026-08-04 21:10:55 +0000 UTC FinishedAt: 2026-08-04 22:43:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbwjm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_dup_netdev_egress"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"32ee6d01-01d7-4544-8638-64e4eb5bd263","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-08-04 21:10:55 +0000 UTC FinishedAt: 2026-08-04 22:43:54 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_dup_netdev_egress"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"32ee6d01-01d7-4544-8638-64e4eb5bd263","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowzbwjm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_dup_netdev_egress"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"32ee6d01-01d7-4544-8638-64e4eb5bd263","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-04 21:10:55 +0000 UTC FinishedAt: 2026-08-04 21:11:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbwjm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_dup_netdev_egress"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"32ee6d01-01d7-4544-8638-64e4eb5bd263","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-04 21:10:55 +0000 UTC FinishedAt: 2026-08-04 21:11:00 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.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-workflowzbwjm/series-workflowzbwjm-convert-artifact-3093982954/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzbwjm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_dup_netdev_egress"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"32ee6d01-01d7-4544-8638-64e4eb5bd263","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-04 21:11:06 +0000 UTC FinishedAt: 2026-08-04 21:27:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbwjm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_dup_netdev_egress"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"32ee6d01-01d7-4544-8638-64e4eb5bd263","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-04 21:11:06 +0000 UTC FinishedAt: 2026-08-04 21:27:03 +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:*34661b6a-b4cf-479a-ab08-b4b72dbe83c7,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-workflowzbwjm/series-workflowzbwjm-convert-artifact-3093982954/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": "06703928-c811-47aa-a48f-e73ef115e99d", "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-workflowzbwjm/series-workflowzbwjm-build-action-1804150104/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzbwjm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_dup_netdev_egress"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"32ee6d01-01d7-4544-8638-64e4eb5bd263","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-04 21:11:06 +0000 UTC FinishedAt: 2026-08-04 21:26:53 +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:*34661b6a-b4cf-479a-ab08-b4b72dbe83c7,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-workflowzbwjm/series-workflowzbwjm-convert-artifact-3093982954/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": "06703928-c811-47aa-a48f-e73ef115e99d", "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-workflowzbwjm/series-workflowzbwjm-build-action-1804150104/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzbwjm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_dup_netdev_egress"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"32ee6d01-01d7-4544-8638-64e4eb5bd263","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-04 21:27:03 +0000 UTC FinishedAt: 2026-08-04 21:27:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbwjm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_dup_netdev_egress"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"32ee6d01-01d7-4544-8638-64e4eb5bd263","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-04 21:27:03 +0000 UTC FinishedAt: 2026-08-04 21:27:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbwjm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_dup_netdev_egress"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"32ee6d01-01d7-4544-8638-64e4eb5bd263","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-04 21:27:03 +0000 UTC FinishedAt: 2026-08-04 21:27:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbwjm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_dup_netdev_egress"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"32ee6d01-01d7-4544-8638-64e4eb5bd263","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-04 21:27:03 +0000 UTC FinishedAt: 2026-08-04 21:27:08 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"32ee6d01-01d7-4544-8638-64e4eb5bd263","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.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-workflowzbwjm/series-workflowzbwjm-convert-artifact-1988776709/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzbwjm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_dup_netdev_egress"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"32ee6d01-01d7-4544-8638-64e4eb5bd263","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-04 21:27:13 +0000 UTC FinishedAt: 2026-08-04 21:29:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbwjm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_dup_netdev_egress"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"32ee6d01-01d7-4544-8638-64e4eb5bd263","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-04 21:27:13 +0000 UTC FinishedAt: 2026-08-04 21:29:15 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*06703928-c811-47aa-a48f-e73ef115e99d,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-workflowzbwjm/series-workflowzbwjm-build-action-1804150104/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-workflowzbwjm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_dup_netdev_egress"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"32ee6d01-01d7-4544-8638-64e4eb5bd263","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-04 21:29:25 +0000 UTC FinishedAt: 2026-08-04 21:29:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbwjm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_dup_netdev_egress"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"32ee6d01-01d7-4544-8638-64e4eb5bd263","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-04 21:29:25 +0000 UTC FinishedAt: 2026-08-04 21:29:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbwjm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_dup_netdev_egress"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"32ee6d01-01d7-4544-8638-64e4eb5bd263","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-04 21:29:25 +0000 UTC FinishedAt: 2026-08-04 21:45:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbwjm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_dup_netdev_egress"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"32ee6d01-01d7-4544-8638-64e4eb5bd263","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-04 21:29:25 +0000 UTC FinishedAt: 2026-08-04 21:45:30 +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:*34661b6a-b4cf-479a-ab08-b4b72dbe83c7,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-workflowzbwjm/series-workflowzbwjm-convert-artifact-1988776709/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": "f77feb4a-ec58-41c6-b310-8adcc69fce9e", "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-workflowzbwjm/series-workflowzbwjm-build-action-3350656593/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzbwjm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_dup_netdev_egress"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"32ee6d01-01d7-4544-8638-64e4eb5bd263","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-04 21:29:25 +0000 UTC FinishedAt: 2026-08-04 21:45:20 +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:*34661b6a-b4cf-479a-ab08-b4b72dbe83c7,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-workflowzbwjm/series-workflowzbwjm-convert-artifact-1988776709/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": "f77feb4a-ec58-41c6-b310-8adcc69fce9e", "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-workflowzbwjm/series-workflowzbwjm-build-action-3350656593/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzbwjm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_dup_netdev_egress"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"32ee6d01-01d7-4544-8638-64e4eb5bd263","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-04 21:45:30 +0000 UTC FinishedAt: 2026-08-04 21:45:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbwjm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_dup_netdev_egress"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"32ee6d01-01d7-4544-8638-64e4eb5bd263","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-04 21:45:30 +0000 UTC FinishedAt: 2026-08-04 21:45:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbwjm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_dup_netdev_egress"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"32ee6d01-01d7-4544-8638-64e4eb5bd263","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-08-04 21:45:30 +0000 UTC FinishedAt: 2026-08-04 21:47:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbwjm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_dup_netdev_egress"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"32ee6d01-01d7-4544-8638-64e4eb5bd263","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-08-04 21:45:30 +0000 UTC FinishedAt: 2026-08-04 21:47:11 +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:*f77feb4a-ec58-41c6-b310-8adcc69fce9e,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-workflowzbwjm/series-workflowzbwjm-build-action-3350656593/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-workflowzbwjm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_dup_netdev_egress"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"32ee6d01-01d7-4544-8638-64e4eb5bd263","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-08-04 21:47:21 +0000 UTC FinishedAt: 2026-08-04 22:43:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbwjm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_dup_netdev_egress"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"32ee6d01-01d7-4544-8638-64e4eb5bd263","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-08-04 21:47:21 +0000 UTC FinishedAt: 2026-08-04 22:43:54 +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":["nf_dup_netdev_egress"],"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:*06703928-c811-47aa-a48f-e73ef115e99d,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*f77feb4a-ec58-41c6-b310-8adcc69fce9e,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-workflowzbwjm/series-workflowzbwjm-build-action-1804150104/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-workflowzbwjm/series-workflowzbwjm-build-action-3350656593/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowzbwjm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_dup_netdev_egress"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"32ee6d01-01d7-4544-8638-64e4eb5bd263","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-08-04 21:47:21 +0000 UTC FinishedAt: 2026-08-04 21:47:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbwjm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_dup_netdev_egress"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"32ee6d01-01d7-4544-8638-64e4eb5bd263","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-08-04 21:47:21 +0000 UTC FinishedAt: 2026-08-04 21:47:26 +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":["nf_dup_netdev_egress"],"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-workflowzbwjm/series-workflowzbwjm-convert-artifact-721443210/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzbwjm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_dup_netdev_egress"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"32ee6d01-01d7-4544-8638-64e4eb5bd263","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-08-04 21:47:21 +0000 UTC FinishedAt: 2026-08-04 21:47:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbwjm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_dup_netdev_egress"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"32ee6d01-01d7-4544-8638-64e4eb5bd263","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-08-04 21:47:21 +0000 UTC FinishedAt: 2026-08-04 21:47:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbwjm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_dup_netdev_egress"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"32ee6d01-01d7-4544-8638-64e4eb5bd263","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-08-04 21:47:21 +0000 UTC FinishedAt: 2026-08-04 21:47:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbwjm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_dup_netdev_egress"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"32ee6d01-01d7-4544-8638-64e4eb5bd263","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-08-04 21:47:31 +0000 UTC FinishedAt: 2026-08-04 22:43:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbwjm[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["nf_dup_netdev_egress"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a347304b2ca1a5377d5bd2d8a72e4b4f12afe648","config_name":"upstream-apparmor-kasan.config","enable_configs":["NF_TABLES","NF_TABLES_NETDEV","NF_DUP_NETDEV","NFT_DUP_NETDEV","NFT_FWD_NETDEV"],"series_id":"32ee6d01-01d7-4544-8638-64e4eb5bd263","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-08-04 21:47:31 +0000 UTC FinishedAt: 2026-08-04 22:43:44 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*06703928-c811-47aa-a48f-e73ef115e99d,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*f77feb4a-ec58-41c6-b310-8adcc69fce9e,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-workflowzbwjm/series-workflowzbwjm-build-action-1804150104/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-workflowzbwjm/series-workflowzbwjm-build-action-3350656593/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-workflowzbwjm/series-workflowzbwjm-convert-artifact-721443210/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,}