Name: series-workflowcrw4z Phase: Succeeded StartedAt: 2026-08-06 02:35:00 +0000 UTC FinishedAt: 2026-08-06 06:49:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcrw4z[0] Phase: Succeeded StartedAt: 2026-08-06 02:35:00 +0000 UTC FinishedAt: 2026-08-06 03:04:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcrw4z[0].run-triage Phase: Succeeded StartedAt: 2026-08-06 02:35:00 +0000 UTC FinishedAt: 2026-08-06 03:04:33 +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": "aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "GTP" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "GTP" ], "series_id": "b97a46bc-ec45-4e50-a6b8-1c4d7f44560c" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "gtp_genl_del_pdp" ], "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+CgkJCTx0ZD4yMDI2LzA4LzA2IDAzOjA0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0dUUCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2d0cF9nZW5sX2RlbF9wZHAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBsb2NraW5nIGlzc3VlIGluIHRoZSBHVFAgZHJpdmVyJiMzOTtzIG5ldGxpbmsgaW50ZXJmYWNlIGZvciBkZWxldGluZyBQRFAgY29udGV4dHMuIEl0IGFkZHMgcnRubF9sb2NrKCkgYXJvdW5kIHRoZSBkZWxldGlvbiBsb2dpYyBpbiBndHBfZ2VubF9kZWxfcGRwKCksIHdoaWNoIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgcmVhY2hhYmxlIHZpYSBuZXRsaW5rLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDAzOjA0PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNzk4YmRjZDExMWJlZjNhM2YyYzNkZGEyNjNhZmIxMDJhOGM3ZTZhY1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgQXVnIDYgMDM6MDQ6MDIgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZ3RwLmMgYi9kcml2ZXJzL25ldC9ndHAuY1xuaW5kZXggOWExMmNjNTNkYTAwMi4uZGNkMGM4YjQ4ZWU3ZiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2d0cC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ndHAuY1xuQEAgLTIxMzQsNiAmIzQzOzIxMzQsOCBAQCBzdGF0aWMgaW50IGd0cF9nZW5sX2RlbF9wZHAoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbiBcdGlmICghaW5mby1cdTAwM2VhdHRyc1tHVFBBX1ZFUlNJT05dKVxuIFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcbiYjNDM7XHRydG5sX2xvY2soKTtcbiYjNDM7XG4gXHRyY3VfcmVhZF9sb2NrKCk7XG4gXG4gXHRwY3R4ID0gZ3RwX2ZpbmRfcGRwKHNvY2tfbmV0KHNrYi1cdTAwM2VzayksIGluZm8tXHUwMDNlYXR0cnMpO1xuQEAgLTIxNTQsNiAmIzQzOzIxNTYsNyBAQCBzdGF0aWMgaW50IGd0cF9nZW5sX2RlbF9wZHAoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbiBcbiBvdXRfdW5sb2NrOlxuIFx0cmN1X3JlYWRfdW5sb2NrKCk7XG4mIzQzO1x0cnRubF91bmxvY2soKTtcbiBcdHJldHVybiBlcnI7XG4gfVxuIFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDAzOjA0PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtHVFAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtndHBfZ2VubF9kZWxfcGRwJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgbG9ja2luZyBpc3N1ZSBpbiB0aGUgR1RQIGRyaXZlciYjMzk7cyBuZXRsaW5rIGludGVyZmFjZSBmb3IgZGVsZXRpbmcgUERQIGNvbnRleHRzLiBJdCBhZGRzIHJ0bmxfbG9jaygpIGFyb3VuZCB0aGUgZGVsZXRpb24gbG9naWMgaW4gZ3RwX2dlbmxfZGVsX3BkcCgpLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHJlYWNoYWJsZSB2aWEgbmV0bGluay4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDc5OGJkY2QxMTFiZWYzYTNmMmMzZGRhMjYzYWZiMTAyYThjN2U2YWMKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVGh1IEF1ZyA2IDAzOjA0OjAyIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZ3RwLmMgYi9kcml2ZXJzL25ldC9ndHAuYwppbmRleCA5YTEyY2M1M2RhMDAyLi5kY2QwYzhiNDhlZTdmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ndHAuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ndHAuYwpAQCAtMjEzNCw2ICYjNDM7MjEzNCw4IEBAIHN0YXRpYyBpbnQgZ3RwX2dlbmxfZGVsX3BkcChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKQogCWlmICghaW5mby0mZ3Q7YXR0cnNbR1RQQV9WRVJTSU9OXSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKJiM0MzsJcnRubF9sb2NrKCk7CiYjNDM7CiAJcmN1X3JlYWRfbG9jaygpOwogCiAJcGN0eCA9IGd0cF9maW5kX3BkcChzb2NrX25ldChza2ItJmd0O3NrKSwgaW5mby0mZ3Q7YXR0cnMpOwpAQCAtMjE1NCw2ICYjNDM7MjE1Niw3IEBAIHN0YXRpYyBpbnQgZ3RwX2dlbmxfZGVsX3BkcChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKQogCiBvdXRfdW5sb2NrOgogCXJjdV9yZWFkX3VubG9jaygpOwomIzQzOwlydG5sX3VubG9jaygpOwogCXJldHVybiBlcnI7CiB9CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMDM6MDQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjEyMgoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDEzNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEdUUCBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7dmUgZ290IHRoaXMgcGF0Y2ggYWZmZWN0aW5nIGBkcml2ZXJzL25ldC9ndHAuY2AuIE15IGluaXRpYWwgcmVhZCBpbmRpY2F0ZXMgYSBmdW5jdGlvbmFsIGNoYW5nZSDigJMgdGhlIGFkZGl0aW9uIG9mIGBydG5sX2xvY2soKWAgYW5kIGBydG5sX3VubG9jaygpYCB0byBgZ3RwX2dlbmxfZGVsX3BkcCgpYC4gVGhpcyBzdHJvbmdseSBzdWdnZXN0cyBhIGxvY2tpbmcgaXNzdWUgZml4IHdpdGhpbiB0aGUgR1RQIGRyaXZlciBpdHNlbGYuIE15IGd1dCBzYXlzIHRoaXMgaXMgYWJvdXQgcHJvdGVjdGluZyBkYXRhIHN0cnVjdHVyZXMgZHVyaW5nIHRoZSBkZWxldGlvbiBvZiBhIFBEUCBjb250ZXh0LCB3aGljaCBtYWtlcyBwZXJmZWN0IHNlbnNlLgoKTXkgbmV4dCBzdGVwIGlzIHRvIGRpdmUgZGVlcGVyLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dC4gSSYjMzk7bSBnb2luZyB0byBxdWlja2x5IHZlcmlmeSB0aGUgZnVuY3Rpb25hbGl0eSBpbiBgZ3RwX2dlbmxfZGVsX3BkcGAgZGlyZWN0bHkgYW5kIHRoZW4gZXhwYW5kIG15IGZvY3VzIHRvIHRoZSBHVFAgZHJpdmVyIGFzIGEgd2hvbGUuIEdUUCBpcywgb2YgY291cnNlLCB0aGUgR1BSUyBUdW5uZWxpbmcgUHJvdG9jb2wuCgpOb3csIGxldCYjMzk7cyB0cmFjayBkb3duIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIGBDT05GSUdfR1RQYCBpcyB3aGF0IEkmIzM5O20gbG9va2luZyBmb3IgaW4gYEtjb25maWdgLiBJJiMzOTtsbCBydW4gYSBxdWljayBzZWFyY2ggdGhyb3VnaCB0aGUgY29kZSB0byBjb25maXJtIHRoZSBjb25maWd1cmF0aW9uIHNldHRpbmdzIGFyb3VuZCBgZ3RwX2dlbmxfZGVsX3BkcGAgYW5kIHRoZSBHVFAgbW9kdWxlLiBUaGlzIHNob3VsZCBwcm92aWRlIHRoZSBicm9hZGVyIHBpY3R1cmUgdG8gZXZhbHVhdGUgdGhlIGltcGFjdCBvZiB0aGlzIGxvY2tpbmcgZml4LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDAzOjA0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2d0cF9nZW5sX2RlbF9wZHAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ndHAuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ndHAuYz0yMTE0PXN0YXRpYyBzdHJ1Y3QgcGRwX2N0eCAqZ3RwX2ZpbmRfcGRwKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IG5sYXR0ciAqbmxhW10pXG4tLVxuZHJpdmVycy9uZXQvZ3RwLmMtMjEyOC1cbmRyaXZlcnMvbmV0L2d0cC5jOjIxMjk6c3RhdGljIGludCBndHBfZ2VubF9kZWxfcGRwKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL25ldC9ndHAuYy0yMTMwLXtcbi0tXG5kcml2ZXJzL25ldC9ndHAuYz0yNDM2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2VubF9zbWFsbF9vcHMgZ3RwX2dlbmxfb3BzW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZ3RwLmMtMjQ0NS1cdFx0LnZhbGlkYXRlID0gR0VOTF9ET05UX1ZBTElEQVRFX1NUUklDVCB8IEdFTkxfRE9OVF9WQUxJREFURV9EVU1QLFxuZHJpdmVycy9uZXQvZ3RwLmM6MjQ0NjpcdFx0LmRvaXQgPSBndHBfZ2VubF9kZWxfcGRwLFxuZHJpdmVycy9uZXQvZ3RwLmMtMjQ0Ny1cdFx0LmZsYWdzID0gR0VOTF9BRE1JTl9QRVJNLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDAzOjA0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI4MDcKCQkJCQkJCW91dHB1dDogMjgKCQkJCQkJCXRob3VnaHRzOiA0MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0JiMzOTtzIGludGVybmFsIG1vbm9sb2d1ZToKCioqSW52ZXN0aWdhdGluZyB0aGUgYGd0cF9nZW5sX2RlbF9wZHBgIEZ1bmN0aW9uKioKClJpZ2h0LCBzbyBgZ3RwX2dlbmxfZGVsX3BkcGAgaXMgZmxhZ2dlZCBhcyBhIGdlbmwgY2FsbGJhY2suIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyByb2xlLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gY3Jvc3MtcmVmZXJlbmNlIGl0IHdpdGggdGhlIGtlcm5lbCBjb25maWd1cmF0aW9uLiBJIHNob3VsZCBiZSBhYmxlIHRvIGdldCBhIHF1aWNrIG92ZXJ2aWV3IG9mIHdoYXQgb3B0aW9ucyB3aWxsIGVuYWJsZSB0aGlzIGZ1bmN0aW9uLiBMZXQmIzM5O3Mgc3RhcnQgYnkgZGlnZ2luZyBpbnRvIGBDT05GSUdfR1RQYCBpbiB0aGUgYGRyaXZlcnMvbmV0L0tjb25maWdgIGZpbGUuIFRoYXQmIzM5O3MgdGhlIGxvZ2ljYWwgc3RhcnRpbmcgcG9pbnQgdG8gc2VlIHdoYXQmIzM5O3MgY29uZGl0aW9uYWwsIHdoYXQgbW9kdWxlcyBkZXBlbmQgb24gaXQsIGFuZCB3aGF0IGl0IHJlbGF0ZXMgdG8gaW4gdGhlIHdpZGVyIEdUUCBjb250ZXh0LiBGcm9tIHRoZXJlLCBJJiMzOTtsbCBiZSBiZXR0ZXIgZXF1aXBwZWQgdG8gZGV0ZXJtaW5lIHRoZSBmdW5jdGlvbiYjMzk7cyBzY29wZSBhbmQgcHVycG9zZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAwMzowNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgR1RQJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9LY29uZmlnPTI2MD1jb25maWcgQkFSRVVEUFxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWctMjcxLVxuZHJpdmVycy9uZXQvS2NvbmZpZzoyNzI6Y29uZmlnIEdUUFxuZHJpdmVycy9uZXQvS2NvbmZpZy0yNzMtXHR0cmlzdGF0ZSBcJiMzNDtHUFJTIFR1bm5lbGluZyBQcm90b2NvbCBkYXRhcGF0aCAoR1RQLVUpXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMDM6MDQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzEzOAoJCQkJCQkJb3V0cHV0OiAyNgoJCQkJCQkJdGhvdWdodHM6IDY5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIEdUUCBGdW5jdGlvbmFsaXR5IGZvciBGdXp6aW5nKioKCk9rYXksIHNvIHRoZSBjb25maWcgaW5kaWNhdGVzIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYEdUUGAuIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIGxvb2sgYXQgdGhlIGBndHBfZ2VubF9kZWxfcGRwYCBmdW5jdGlvbi4gVGhlIGZpcnN0IHF1ZXN0aW9uIGlzIGFsd2F5czogZnV6emluZyB0YXJnZXQgd29ydGh5PyBBYnNvbHV0ZWx5LiBJdOKAmXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoaW4gYSBuZXR3b3JrIGRyaXZlciwgYW5kIHdlIGtub3cgaXQmIzM5O3MgYWNjZXNzaWJsZSB2aWEgbmV0bGluay4gVGhhdCYjMzk7cyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIEkgY2FuIHBvdGVudGlhbGx5IHRyaWdnZXIgaXQgcmVtb3RlbHkuCgpOb3csIGJlZm9yZSBJIGRpZyB0b28gZGVlcCBpbnRvIGZ1enppbmcgdGhhdCBzcGVjaWZpYyBmdW5jdGlvbiwgSSBzaG91bGQgcXVpY2tseSBjaGVjayBmb3IgYW55IG90aGVyIGRlcGVuZGVuY2llcyByZWxhdGVkIHRvIGBHVFBgLiBXZSBjYW4mIzM5O3QgYWZmb3JkIGFueSBibGluZCBzcG90cy4gQXJlIHRoZXJlIGFueSBvdGhlciBjb25maWcgb3B0aW9ucyBvciByZWxhdGVkIGZ1bmN0aW9ucyB0aGF0IHRoaXMgZGVwZW5kcyBvbj8gSSB3YW50IHRvIG1ha2Ugc3VyZSBJIHVuZGVyc3RhbmQgdGhlIGZ1bGwgYXR0YWNrIHN1cmZhY2UgYmVmb3JlIEkgc3RhcnQgY3JhZnRpbmcgYW55IGZ1enppbmcgaGFybmVzc2VzIG9yIG11dGF0aW9ucy4gVW5kZXJzdGFuZGluZyB0aGUgZGVwZW5kZW5jaWVzIGlzIGVzc2VudGlhbC4gSXQmIzM5O3MgdGltZSB0byBtYXAgdGhlIHN5c3RlbS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAwMzowNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgR1RQJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L0tjb25maWc9MjYwPWNvbmZpZyBCQVJFVURQXG4tLVxuZHJpdmVycy9uZXQvS2NvbmZpZy0yNzEtXG5kcml2ZXJzL25ldC9LY29uZmlnOjI3Mjpjb25maWcgR1RQXG5kcml2ZXJzL25ldC9LY29uZmlnLTI3My1cdHRyaXN0YXRlIFwmIzM0O0dQUlMgVHVubmVsaW5nIFByb3RvY29sIGRhdGFwYXRoIChHVFAtVSlcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAwMzowNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNTEwCgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMTEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqR1RQIEtjb25maWcgSW52ZXN0aWdhdGlvbioqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZGl2ZSBpbi4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gY2hlY2sgdGhlIEtjb25maWcgZW50cnkgZm9yIEdUUC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgZGVwZW5kZW5jaWVzLCBhbmQgYW55IHJlbGV2YW50IGRlZmF1bHQgdmFsdWVzLiBLbm93aW5nIHRoZSBLY29uZmlnIGlzIGZ1bmRhbWVudGFsIGZvciBncmFzcGluZyBob3cgR1RQIGlzIGVuYWJsZWQsIGRpc2FibGVkLCBhbmQgY3VzdG9taXplZCB3aXRoaW4gdGhlIGJ1aWxkIHN5c3RlbS4gSSYjMzk7bGwgbmVlZCB0byBsb29rIGZvciBhbnkgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gZmxhZ3Mgb3IgZGVwZW5kZW5jaWVzIG9uIG90aGVyIGZlYXR1cmVzIHRoYXQgbWlnaHQgYWZmZWN0IEdUUCYjMzk7cyBiZWhhdmlvci4gSSYjMzk7bSB0aGlua2luZyBhYm91dCB0aGUgaW1wbGljYXRpb25zIGZvciBidWlsZCBjb25maWd1cmF0aW9ucyBhbmQgaG93IHRoaXMgaW1wYWN0cyB0aGUgb3ZlcmFsbCBzeXN0ZW0uIFRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5IGFuZCBleGFtaW5lIHRoYXQgS2NvbmZpZyBmaWxlLiBMZXQmIzM5O3Mgc2VlIHdoYXQgZ2VtcyBhcmUgaGlkZGVuIGluIHRoZXJlIQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAwMzowNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAyNzIsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDI3MjpcdGNvbmZpZyBHVFBcbiAyNzM6XHRcdHRyaXN0YXRlIFwmIzM0O0dQUlMgVHVubmVsaW5nIFByb3RvY29sIGRhdGFwYXRoIChHVFAtVSlcJiMzNDtcbiAyNzQ6XHRcdGRlcGVuZHMgb24gSU5FVFxuIDI3NTpcdFx0c2VsZWN0IE5FVF9VRFBfVFVOTkVMXG4gMjc2Olx0XHRoZWxwXG4gMjc3Olx0XHQgIFRoaXMgYWxsb3dzIG9uZSB0byBjcmVhdGUgZ3RwIHZpcnR1YWwgaW50ZXJmYWNlcyB0aGF0IHByb3ZpZGVcbiAyNzg6XHRcdCAgdGhlIEdQUlMgVHVubmVsaW5nIFByb3RvY29sIGRhdGFwYXRoIChHVFAtVSkuIFRoaXMgdHVubmVsaW5nIHByb3RvY29sXG4gMjc5Olx0XHQgIGlzIHVzZWQgdG8gcHJldmVudCBzdWJzY3JpYmVycyBmcm9tIGFjY2Vzc2luZyBtb2JpbGUgY2FycmllciBjb3JlXG4gMjgwOlx0XHQgIG5ldHdvcmsgaW5mcmFzdHJ1Y3R1cmUuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIGEgdXNlcnNwYWNlIHNvZnR3YXJlIHRoYXRcbiAyODE6XHRcdCAgaW1wbGVtZW50cyB0aGUgc2lnbmFsaW5nIHByb3RvY29sIChHVFAtQykgdG8gdXBkYXRlIGl0cyBQRFAgY29udGV4dFxuIDI4MjpcdFx0ICBiYXNlLCBzdWNoIGFzIE9wZW5HR1NOIFx1MDAzY2h0dHA6Ly9naXQub3Ntb2NvbS5vcmcvb3Blbmdnc24vKS4gVGhpc1xuIDI4MzpcdFx0ICB0dW5uZWxpbmcgcHJvdG9jb2wgaXMgaW1wbGVtZW50ZWQgYWNjb3JkaW5nIHRvIHRoZSBHU00gVFMgMDkuNjAgYW5kXG4gMjg0Olx0XHQgIDNHUFAgVFMgMjkuMDYwIHN0YW5kYXJkcy5cbiAyODU6XHRcbiAyODY6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlcnMgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGVcbiAyODc6XHRcdCAgd2lsbCBiZSBjYWxsZWQgZ3RwLlxuIDI4ODpcdFxuIDI4OTpcdGNvbmZpZyBQRkNQXG4gMjkwOlx0XHR0cmlzdGF0ZSBcJiMzNDtQYWNrZXQgRm9yd2FyZGluZyBDb250cm9sIFByb3RvY29sIChQRkNQKVwmIzM0O1xuIDI5MTpcdFx0ZGVwZW5kcyBvbiBJTkVUXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDAzOjA0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQwNTkKCQkJCQkJCW91dHB1dDogMTAwCgkJCQkJCQl0aG91Z2h0czogNDQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIG15IG93biBtZW50YWwgcHJvY2VzcywgZ2l2ZW4gdGhhdCB0aGUgY29uZmlnIGlzIEdUUCBhbmQgdGhlIGZ1bmN0aW9uIGlzIGBndHBfZ2VubF9kZWxfcGRwYDoKCioqTXkgRnV6emluZyBTdHJhdGVneTogR1RQL2d0cF9nZW5sX2RlbF9wZHAqKgoKQWxyaWdodCwgbG9va2luZyBhdCB0aGlzLCB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGEgYEdUUGAgY29uZmlndXJhdGlvbiwgYW5kIHRoZSB0YXJnZXQgZnVuY3Rpb24gaXMgYGd0cF9nZW5sX2RlbF9wZHBgLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIG1hcmsgdGhpcyBmb3IgZnV6emluZy4gR2l2ZW4gd2hhdCBJIGtub3cgYWJvdXQgR1RQIGFuZCB0aGUgaW1wbGljYXRpb25zIG9mIGRlbGV0aW5nIFBEUCBjb250ZXh0cywgdGhlcmUmIzM5O3MgYSBnb29kIGNoYW5jZSB0aGlzIGZ1bmN0aW9uIGlzIGEgcG90ZW50aWFsIHBvaW50IG9mIHZ1bG5lcmFiaWxpdHkuIFNwZWNpZmljYWxseSwgYW55IGltcHJvcGVyIGhhbmRsaW5nIG9mIFBETiBjb25uZWN0aW9uIHRlYXIgZG93biwgb3IgY29udHJvbCBtZXNzYWdlIGludGVyYWN0aW9uLiBBIHdlbGwtY3JhZnRlZCBtYWxmb3JtZWQgbWVzc2FnZSBjb3VsZCBwb3RlbnRpYWxseSBsZWFkIHRvIHNlcmlvdXMgaXNzdWVzLCBzbyBJJiMzOTttIHNldHRpbmcgYFdvcnRoRnV6emluZz10cnVlYC4KCk5vdywgdGhlIG5leHQgbG9naWNhbCBzdGVwIGlzIHRvIGNhbGwgYHNldC1yZXN1bHRzYC4gSSB3YW50IHRvIGltbWVkaWF0ZWx5IHJlY29yZCB0aGlzIGZpbmRpbmcgYW5kIGZsYWcgdGhlIGZ1bmN0aW9uIGZvciBmdXJ0aGVyIGFuYWx5c2lzIGFuZCBmdXp6aW5nIHJ1bnMuIFRoZSBzb29uZXIgd2UgaGF2ZSB0aGlzIHRhZ2dlZCBpbiBvdXIgc3lzdGVtLCB0aGUgYmV0dGVyLiBJdCBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIGxpc3Qgb2YgZnV6emluZyB0YXJnZXRzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAwMzowNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7R1RQJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Z3RwX2dlbmxfZGVsX3BkcCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIGxvY2tpbmcgaXNzdWUgaW4gdGhlIEdUUCBkcml2ZXImIzM5O3MgbmV0bGluayBpbnRlcmZhY2UgZm9yIGRlbGV0aW5nIFBEUCBjb250ZXh0cy4gSXQgYWRkcyBydG5sX2xvY2soKSBhcm91bmQgdGhlIGRlbGV0aW9uIGxvZ2ljIGluIGd0cF9nZW5sX2RlbF9wZHAoKSwgd2hpY2ggaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSByZWFjaGFibGUgdmlhIG5ldGxpbmsuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0dUUCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2d0cF9nZW5sX2RlbF9wZHAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBsb2NraW5nIGlzc3VlIGluIHRoZSBHVFAgZHJpdmVyJiMzOTtzIG5ldGxpbmsgaW50ZXJmYWNlIGZvciBkZWxldGluZyBQRFAgY29udGV4dHMuIEl0IGFkZHMgcnRubF9sb2NrKCkgYXJvdW5kIHRoZSBkZWxldGlvbiBsb2dpYyBpbiBndHBfZ2VubF9kZWxfcGRwKCksIHdoaWNoIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgcmVhY2hhYmxlIHZpYSBuZXRsaW5rLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDM6MDQ6MDMuNDQzMzI5OTQzWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTgwMDk4Mzg3NjAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiR1RQXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZ3RwX2dlbmxfZGVsX3BkcFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgbG9ja2luZyBpc3N1ZSBpbiB0aGUgR1RQIGRyaXZlcidzIG5ldGxpbmsgaW50ZXJmYWNlIGZvciBkZWxldGluZyBQRFAgY29udGV4dHMuIEl0IGFkZHMgcnRubF9sb2NrKCkgYXJvdW5kIHRoZSBkZWxldGlvbiBsb2dpYyBpbiBndHBfZ2VubF9kZWxfcGRwKCksIHdoaWNoIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgcmVhY2hhYmxlIHZpYSBuZXRsaW5rLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQwMzowNDowMy40NDMzMzcxMTNaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUyNjE1MTA5MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDc5OGJkY2QxMTFiZWYzYTNmMmMzZGRhMjYzYWZiMTAyYThjN2U2YWNcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBBdWcgNiAwMzowNDowMiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ndHAuYyBiL2RyaXZlcnMvbmV0L2d0cC5jXFxuaW5kZXggOWExMmNjNTNkYTAwMi4uZGNkMGM4YjQ4ZWU3ZiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ndHAuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2d0cC5jXFxuQEAgLTIxMzQsNiArMjEzNCw4IEBAIHN0YXRpYyBpbnQgZ3RwX2dlbmxfZGVsX3BkcChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbiBcXHRpZiAoIWluZm8tXFx1MDAzZWF0dHJzW0dUUEFfVkVSU0lPTl0pXFxuIFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbiBcXG4rXFx0cnRubF9sb2NrKCk7XFxuK1xcbiBcXHRyY3VfcmVhZF9sb2NrKCk7XFxuIFxcbiBcXHRwY3R4ID0gZ3RwX2ZpbmRfcGRwKHNvY2tfbmV0KHNrYi1cXHUwMDNlc2spLCBpbmZvLVxcdTAwM2VhdHRycyk7XFxuQEAgLTIxNTQsNiArMjE1Niw3IEBAIHN0YXRpYyBpbnQgZ3RwX2dlbmxfZGVsX3BkcChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbiBcXG4gb3V0X3VubG9jazpcXG4gXFx0cmN1X3JlYWRfdW5sb2NrKCk7XFxuK1xcdHJ0bmxfdW5sb2NrKCk7XFxuIFxcdHJldHVybiBlcnI7XFxuIH1cXG4gXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDAzOjA0OjAzLjk3MDQ1NzEyNloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjE3NDgyNjk3MTk3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkdUUFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImd0cF9nZW5sX2RlbF9wZHBcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIGxvY2tpbmcgaXNzdWUgaW4gdGhlIEdUUCBkcml2ZXIncyBuZXRsaW5rIGludGVyZmFjZSBmb3IgZGVsZXRpbmcgUERQIGNvbnRleHRzLiBJdCBhZGRzIHJ0bmxfbG9jaygpIGFyb3VuZCB0aGUgZGVsZXRpb24gbG9naWMgaW4gZ3RwX2dlbmxfZGVsX3BkcCgpLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHJlYWNoYWJsZSB2aWEgbmV0bGluay5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNzk4YmRjZDExMWJlZjNhM2YyYzNkZGEyNjNhZmIxMDJhOGM3ZTZhY1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgQXVnIDYgMDM6MDQ6MDIgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ndHAuYyBiL2RyaXZlcnMvbmV0L2d0cC5jXG5pbmRleCA5YTEyY2M1M2RhMDAyLi5kY2QwYzhiNDhlZTdmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZ3RwLmNcbisrKyBiL2RyaXZlcnMvbmV0L2d0cC5jXG5AQCAtMjEzNCw2ICsyMTM0LDggQEAgc3RhdGljIGludCBndHBfZ2VubF9kZWxfcGRwKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG4gXHRpZiAoIWluZm8tXHUwMDNlYXR0cnNbR1RQQV9WRVJTSU9OXSlcbiBcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXG4rXHRydG5sX2xvY2soKTtcbitcbiBcdHJjdV9yZWFkX2xvY2soKTtcbiBcbiBcdHBjdHggPSBndHBfZmluZF9wZHAoc29ja19uZXQoc2tiLVx1MDAzZXNrKSwgaW5mby1cdTAwM2VhdHRycyk7XG5AQCAtMjE1NCw2ICsyMTU2LDcgQEAgc3RhdGljIGludCBndHBfZ2VubF9kZWxfcGRwKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG4gXG4gb3V0X3VubG9jazpcbiBcdHJjdV9yZWFkX3VubG9jaygpO1xuK1x0cnRubF91bmxvY2soKTtcbiBcdHJldHVybiBlcnI7XG4gfVxuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDM6MDQ6MDMuOTcwNDU5MjI2WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzc5NDM4ODk0MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEdUUCBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCB0aGlzIHBhdGNoIGFmZmVjdGluZyBgZHJpdmVycy9uZXQvZ3RwLmNgLiBNeSBpbml0aWFsIHJlYWQgaW5kaWNhdGVzIGEgZnVuY3Rpb25hbCBjaGFuZ2Ug4oCTIHRoZSBhZGRpdGlvbiBvZiBgcnRubF9sb2NrKClgIGFuZCBgcnRubF91bmxvY2soKWAgdG8gYGd0cF9nZW5sX2RlbF9wZHAoKWAuIFRoaXMgc3Ryb25nbHkgc3VnZ2VzdHMgYSBsb2NraW5nIGlzc3VlIGZpeCB3aXRoaW4gdGhlIEdUUCBkcml2ZXIgaXRzZWxmLiBNeSBndXQgc2F5cyB0aGlzIGlzIGFib3V0IHByb3RlY3RpbmcgZGF0YSBzdHJ1Y3R1cmVzIGR1cmluZyB0aGUgZGVsZXRpb24gb2YgYSBQRFAgY29udGV4dCwgd2hpY2ggbWFrZXMgcGVyZmVjdCBzZW5zZS5cblxuTXkgbmV4dCBzdGVwIGlzIHRvIGRpdmUgZGVlcGVyLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dC4gSSdtIGdvaW5nIHRvIHF1aWNrbHkgdmVyaWZ5IHRoZSBmdW5jdGlvbmFsaXR5IGluIGBndHBfZ2VubF9kZWxfcGRwYCBkaXJlY3RseSBhbmQgdGhlbiBleHBhbmQgbXkgZm9jdXMgdG8gdGhlIEdUUCBkcml2ZXIgYXMgYSB3aG9sZS4gR1RQIGlzLCBvZiBjb3Vyc2UsIHRoZSBHUFJTIFR1bm5lbGluZyBQcm90b2NvbC5cblxuTm93LCBsZXQncyB0cmFjayBkb3duIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIGBDT05GSUdfR1RQYCBpcyB3aGF0IEknbSBsb29raW5nIGZvciBpbiBgS2NvbmZpZ2AuIEknbGwgcnVuIGEgcXVpY2sgc2VhcmNoIHRocm91Z2ggdGhlIGNvZGUgdG8gY29uZmlybSB0aGUgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBhcm91bmQgYGd0cF9nZW5sX2RlbF9wZHBgIGFuZCB0aGUgR1RQIG1vZHVsZS4gVGhpcyBzaG91bGQgcHJvdmlkZSB0aGUgYnJvYWRlciBwaWN0dXJlIHRvIGV2YWx1YXRlIHRoZSBpbXBhY3Qgb2YgdGhpcyBsb2NraW5nIGZpeC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjEyMiwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzNCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDAzOjA0OjA3Ljc2NDg1MTg3OFoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MDIwMTg2OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJndHBfZ2VubF9kZWxfcGRwXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2d0cC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2d0cC5jPTIxMTQ9c3RhdGljIHN0cnVjdCBwZHBfY3R4ICpndHBfZmluZF9wZHAoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgbmxhdHRyICpubGFbXSlcXG4tLVxcbmRyaXZlcnMvbmV0L2d0cC5jLTIxMjgtXFxuZHJpdmVycy9uZXQvZ3RwLmM6MjEyOTpzdGF0aWMgaW50IGd0cF9nZW5sX2RlbF9wZHAoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5kcml2ZXJzL25ldC9ndHAuYy0yMTMwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2d0cC5jPTI0MzY9c3RhdGljIGNvbnN0IHN0cnVjdCBnZW5sX3NtYWxsX29wcyBndHBfZ2VubF9vcHNbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2d0cC5jLTI0NDUtXFx0XFx0LnZhbGlkYXRlID0gR0VOTF9ET05UX1ZBTElEQVRFX1NUUklDVCB8IEdFTkxfRE9OVF9WQUxJREFURV9EVU1QLFxcbmRyaXZlcnMvbmV0L2d0cC5jOjI0NDY6XFx0XFx0LmRvaXQgPSBndHBfZ2VubF9kZWxfcGRwLFxcbmRyaXZlcnMvbmV0L2d0cC5jLTI0NDctXFx0XFx0LmZsYWdzID0gR0VOTF9BRE1JTl9QRVJNLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQwMzowNDowNy44MjUwNTk2OTZaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMDA2Nzk1NjU3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCdzIGludGVybmFsIG1vbm9sb2d1ZTpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBgZ3RwX2dlbmxfZGVsX3BkcGAgRnVuY3Rpb24qKlxuXG5SaWdodCwgc28gYGd0cF9nZW5sX2RlbF9wZHBgIGlzIGZsYWdnZWQgYXMgYSBnZW5sIGNhbGxiYWNrLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgcm9sZS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGNyb3NzLXJlZmVyZW5jZSBpdCB3aXRoIHRoZSBrZXJuZWwgY29uZmlndXJhdGlvbi4gSSBzaG91bGQgYmUgYWJsZSB0byBnZXQgYSBxdWljayBvdmVydmlldyBvZiB3aGF0IG9wdGlvbnMgd2lsbCBlbmFibGUgdGhpcyBmdW5jdGlvbi4gTGV0J3Mgc3RhcnQgYnkgZGlnZ2luZyBpbnRvIGBDT05GSUdfR1RQYCBpbiB0aGUgYGRyaXZlcnMvbmV0L0tjb25maWdgIGZpbGUuIFRoYXQncyB0aGUgbG9naWNhbCBzdGFydGluZyBwb2ludCB0byBzZWUgd2hhdCdzIGNvbmRpdGlvbmFsLCB3aGF0IG1vZHVsZXMgZGVwZW5kIG9uIGl0LCBhbmQgd2hhdCBpdCByZWxhdGVzIHRvIGluIHRoZSB3aWRlciBHVFAgY29udGV4dC4gRnJvbSB0aGVyZSwgSSdsbCBiZSBiZXR0ZXIgZXF1aXBwZWQgdG8gZGV0ZXJtaW5lIHRoZSBmdW5jdGlvbidzIHNjb3BlIGFuZCBwdXJwb3NlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyODA3LCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDM6MDQ6MTAuODMxODU4MTMzWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg4OTg4MzM3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBHVFBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9LY29uZmlnPTI2MD1jb25maWcgQkFSRVVEUFxcbi0tXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0yNzEtXFxuZHJpdmVycy9uZXQvS2NvbmZpZzoyNzI6Y29uZmlnIEdUUFxcbmRyaXZlcnMvbmV0L0tjb25maWctMjczLVxcdHRyaXN0YXRlIFxcXCJHUFJTIFR1bm5lbGluZyBQcm90b2NvbCBkYXRhcGF0aCAoR1RQLVUpXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQwMzowNDoxMC45MjA4NTIxNjFaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDkwMjIyNDMyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIEdUUCBGdW5jdGlvbmFsaXR5IGZvciBGdXp6aW5nKipcblxuT2theSwgc28gdGhlIGNvbmZpZyBpbmRpY2F0ZXMgd2UncmUgZGVhbGluZyB3aXRoIGBHVFBgLiBTcGVjaWZpY2FsbHksIEkgbmVlZCB0byBsb29rIGF0IHRoZSBgZ3RwX2dlbmxfZGVsX3BkcGAgZnVuY3Rpb24uIFRoZSBmaXJzdCBxdWVzdGlvbiBpcyBhbHdheXM6IGZ1enppbmcgdGFyZ2V0IHdvcnRoeT8gQWJzb2x1dGVseS4gSXTigJlzIGEgZnVuY3Rpb25hbCBjaGFuZ2Ugd2l0aGluIGEgbmV0d29yayBkcml2ZXIsIGFuZCB3ZSBrbm93IGl0J3MgYWNjZXNzaWJsZSB2aWEgbmV0bGluay4gVGhhdCdzIGEgZ29vZCBzdGFydGluZyBwb2ludC4gSSBjYW4gcG90ZW50aWFsbHkgdHJpZ2dlciBpdCByZW1vdGVseS5cblxuTm93LCBiZWZvcmUgSSBkaWcgdG9vIGRlZXAgaW50byBmdXp6aW5nIHRoYXQgc3BlY2lmaWMgZnVuY3Rpb24sIEkgc2hvdWxkIHF1aWNrbHkgY2hlY2sgZm9yIGFueSBvdGhlciBkZXBlbmRlbmNpZXMgcmVsYXRlZCB0byBgR1RQYC4gV2UgY2FuJ3QgYWZmb3JkIGFueSBibGluZCBzcG90cy4gQXJlIHRoZXJlIGFueSBvdGhlciBjb25maWcgb3B0aW9ucyBvciByZWxhdGVkIGZ1bmN0aW9ucyB0aGF0IHRoaXMgZGVwZW5kcyBvbj8gSSB3YW50IHRvIG1ha2Ugc3VyZSBJIHVuZGVyc3RhbmQgdGhlIGZ1bGwgYXR0YWNrIHN1cmZhY2UgYmVmb3JlIEkgc3RhcnQgY3JhZnRpbmcgYW55IGZ1enppbmcgaGFybmVzc2VzIG9yIG11dGF0aW9ucy4gVW5kZXJzdGFuZGluZyB0aGUgZGVwZW5kZW5jaWVzIGlzIGVzc2VudGlhbC4gSXQncyB0aW1lIHRvIG1hcCB0aGUgc3lzdGVtLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMTM4LCJPdXRwdXRUb2tlbnMiOjI2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDM6MDQ6MTQuNDExMDc3MjEyWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI4NDg0MDA5MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgR1RQXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9LY29uZmlnPTI2MD1jb25maWcgQkFSRVVEUFxcbi0tXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0yNzEtXFxuZHJpdmVycy9uZXQvS2NvbmZpZzoyNzI6Y29uZmlnIEdUUFxcbmRyaXZlcnMvbmV0L0tjb25maWctMjczLVxcdHRyaXN0YXRlIFxcXCJHUFJTIFR1bm5lbGluZyBQcm90b2NvbCBkYXRhcGF0aCAoR1RQLVUpXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQwMzowNDoxNC42OTU5MzU0MDNaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMDc5NTU0MDI0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipHVFAgS2NvbmZpZyBJbnZlc3RpZ2F0aW9uKipcblxuQWxyaWdodCwgbGV0J3MgZGl2ZSBpbi4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gY2hlY2sgdGhlIEtjb25maWcgZW50cnkgZm9yIEdUUC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgZGVwZW5kZW5jaWVzLCBhbmQgYW55IHJlbGV2YW50IGRlZmF1bHQgdmFsdWVzLiBLbm93aW5nIHRoZSBLY29uZmlnIGlzIGZ1bmRhbWVudGFsIGZvciBncmFzcGluZyBob3cgR1RQIGlzIGVuYWJsZWQsIGRpc2FibGVkLCBhbmQgY3VzdG9taXplZCB3aXRoaW4gdGhlIGJ1aWxkIHN5c3RlbS4gSSdsbCBuZWVkIHRvIGxvb2sgZm9yIGFueSBjb25kaXRpb25hbCBjb21waWxhdGlvbiBmbGFncyBvciBkZXBlbmRlbmNpZXMgb24gb3RoZXIgZmVhdHVyZXMgdGhhdCBtaWdodCBhZmZlY3QgR1RQJ3MgYmVoYXZpb3IuIEknbSB0aGlua2luZyBhYm91dCB0aGUgaW1wbGljYXRpb25zIGZvciBidWlsZCBjb25maWd1cmF0aW9ucyBhbmQgaG93IHRoaXMgaW1wYWN0cyB0aGUgb3ZlcmFsbCBzeXN0ZW0uIFRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5IGFuZCBleGFtaW5lIHRoYXQgS2NvbmZpZyBmaWxlLiBMZXQncyBzZWUgd2hhdCBnZW1zIGFyZSBoaWRkZW4gaW4gdGhlcmUhXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM1MTAsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQwMzowNDoxNy43NzU0OTIzMTdaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI0Njc5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMjcyLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgMjcyOlxcdGNvbmZpZyBHVFBcXG4gMjczOlxcdFxcdHRyaXN0YXRlIFxcXCJHUFJTIFR1bm5lbGluZyBQcm90b2NvbCBkYXRhcGF0aCAoR1RQLVUpXFxcIlxcbiAyNzQ6XFx0XFx0ZGVwZW5kcyBvbiBJTkVUXFxuIDI3NTpcXHRcXHRzZWxlY3QgTkVUX1VEUF9UVU5ORUxcXG4gMjc2OlxcdFxcdGhlbHBcXG4gMjc3OlxcdFxcdCAgVGhpcyBhbGxvd3Mgb25lIHRvIGNyZWF0ZSBndHAgdmlydHVhbCBpbnRlcmZhY2VzIHRoYXQgcHJvdmlkZVxcbiAyNzg6XFx0XFx0ICB0aGUgR1BSUyBUdW5uZWxpbmcgUHJvdG9jb2wgZGF0YXBhdGggKEdUUC1VKS4gVGhpcyB0dW5uZWxpbmcgcHJvdG9jb2xcXG4gMjc5OlxcdFxcdCAgaXMgdXNlZCB0byBwcmV2ZW50IHN1YnNjcmliZXJzIGZyb20gYWNjZXNzaW5nIG1vYmlsZSBjYXJyaWVyIGNvcmVcXG4gMjgwOlxcdFxcdCAgbmV0d29yayBpbmZyYXN0cnVjdHVyZS4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgYSB1c2Vyc3BhY2Ugc29mdHdhcmUgdGhhdFxcbiAyODE6XFx0XFx0ICBpbXBsZW1lbnRzIHRoZSBzaWduYWxpbmcgcHJvdG9jb2wgKEdUUC1DKSB0byB1cGRhdGUgaXRzIFBEUCBjb250ZXh0XFxuIDI4MjpcXHRcXHQgIGJhc2UsIHN1Y2ggYXMgT3BlbkdHU04gXFx1MDAzY2h0dHA6Ly9naXQub3Ntb2NvbS5vcmcvb3Blbmdnc24vKS4gVGhpc1xcbiAyODM6XFx0XFx0ICB0dW5uZWxpbmcgcHJvdG9jb2wgaXMgaW1wbGVtZW50ZWQgYWNjb3JkaW5nIHRvIHRoZSBHU00gVFMgMDkuNjAgYW5kXFxuIDI4NDpcXHRcXHQgIDNHUFAgVFMgMjkuMDYwIHN0YW5kYXJkcy5cXG4gMjg1OlxcdFxcbiAyODY6XFx0XFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVycyBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZVxcbiAyODc6XFx0XFx0ICB3aWxsIGJlIGNhbGxlZCBndHAuXFxuIDI4ODpcXHRcXG4gMjg5OlxcdGNvbmZpZyBQRkNQXFxuIDI5MDpcXHRcXHR0cmlzdGF0ZSBcXFwiUGFja2V0IEZvcndhcmRpbmcgQ29udHJvbCBQcm90b2NvbCAoUEZDUClcXFwiXFxuIDI5MTpcXHRcXHRkZXBlbmRzIG9uIElORVRcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDM6MDQ6MTcuNzc1NjIwNDY3WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1Mzk0Njg0OTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duIG1lbnRhbCBwcm9jZXNzLCBnaXZlbiB0aGF0IHRoZSBjb25maWcgaXMgR1RQIGFuZCB0aGUgZnVuY3Rpb24gaXMgYGd0cF9nZW5sX2RlbF9wZHBgOlxuXG4qKk15IEZ1enppbmcgU3RyYXRlZ3k6IEdUUC9ndHBfZ2VubF9kZWxfcGRwKipcblxuQWxyaWdodCwgbG9va2luZyBhdCB0aGlzLCB3ZSdyZSBkZWFsaW5nIHdpdGggYSBgR1RQYCBjb25maWd1cmF0aW9uLCBhbmQgdGhlIHRhcmdldCBmdW5jdGlvbiBpcyBgZ3RwX2dlbmxfZGVsX3BkcGAuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gbWFyayB0aGlzIGZvciBmdXp6aW5nLiBHaXZlbiB3aGF0IEkga25vdyBhYm91dCBHVFAgYW5kIHRoZSBpbXBsaWNhdGlvbnMgb2YgZGVsZXRpbmcgUERQIGNvbnRleHRzLCB0aGVyZSdzIGEgZ29vZCBjaGFuY2UgdGhpcyBmdW5jdGlvbiBpcyBhIHBvdGVudGlhbCBwb2ludCBvZiB2dWxuZXJhYmlsaXR5LiBTcGVjaWZpY2FsbHksIGFueSBpbXByb3BlciBoYW5kbGluZyBvZiBQRE4gY29ubmVjdGlvbiB0ZWFyIGRvd24sIG9yIGNvbnRyb2wgbWVzc2FnZSBpbnRlcmFjdGlvbi4gQSB3ZWxsLWNyYWZ0ZWQgbWFsZm9ybWVkIG1lc3NhZ2UgY291bGQgcG90ZW50aWFsbHkgbGVhZCB0byBzZXJpb3VzIGlzc3Vlcywgc28gSSdtIHNldHRpbmcgYFdvcnRoRnV6emluZz10cnVlYC5cblxuTm93LCB0aGUgbmV4dCBsb2dpY2FsIHN0ZXAgaXMgdG8gY2FsbCBgc2V0LXJlc3VsdHNgLiBJIHdhbnQgdG8gaW1tZWRpYXRlbHkgcmVjb3JkIHRoaXMgZmluZGluZyBhbmQgZmxhZyB0aGUgZnVuY3Rpb24gZm9yIGZ1cnRoZXIgYW5hbHlzaXMgYW5kIGZ1enppbmcgcnVucy4gVGhlIHNvb25lciB3ZSBoYXZlIHRoaXMgdGFnZ2VkIGluIG91ciBzeXN0ZW0sIHRoZSBiZXR0ZXIuIEl0IHNob3VsZCBiZSBhZGRlZCB0byB0aGUgbGlzdCBvZiBmdXp6aW5nIHRhcmdldHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQwNTksIk91dHB1dFRva2VucyI6MTAwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDQsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQwMzowNDoyMS4zMTUwOTE5MTdaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzgwNTczODYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkdUUFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImd0cF9nZW5sX2RlbF9wZHBcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIGxvY2tpbmcgaXNzdWUgaW4gdGhlIEdUUCBkcml2ZXIncyBuZXRsaW5rIGludGVyZmFjZSBmb3IgZGVsZXRpbmcgUERQIGNvbnRleHRzLiBJdCBhZGRzIHJ0bmxfbG9jaygpIGFyb3VuZCB0aGUgZGVsZXRpb24gbG9naWMgaW4gZ3RwX2dlbmxfZGVsX3BkcCgpLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHJlYWNoYWJsZSB2aWEgbmV0bGluay5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJHVFBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJndHBfZ2VubF9kZWxfcGRwXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBsb2NraW5nIGlzc3VlIGluIHRoZSBHVFAgZHJpdmVyJ3MgbmV0bGluayBpbnRlcmZhY2UgZm9yIGRlbGV0aW5nIFBEUCBjb250ZXh0cy4gSXQgYWRkcyBydG5sX2xvY2soKSBhcm91bmQgdGhlIGRlbGV0aW9uIGxvZ2ljIGluIGd0cF9nZW5sX2RlbF9wZHAoKSwgd2hpY2ggaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSByZWFjaGFibGUgdmlhIG5ldGxpbmsuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowcrw4z[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-06 02:35:00 +0000 UTC FinishedAt: 2026-08-06 03:04:23 +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": "aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "GTP" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "GTP" ], "series_id": "b97a46bc-ec45-4e50-a6b8-1c4d7f44560c" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "gtp_genl_del_pdp" ], "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+CgkJCTx0ZD4yMDI2LzA4LzA2IDAzOjA0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0dUUCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2d0cF9nZW5sX2RlbF9wZHAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBsb2NraW5nIGlzc3VlIGluIHRoZSBHVFAgZHJpdmVyJiMzOTtzIG5ldGxpbmsgaW50ZXJmYWNlIGZvciBkZWxldGluZyBQRFAgY29udGV4dHMuIEl0IGFkZHMgcnRubF9sb2NrKCkgYXJvdW5kIHRoZSBkZWxldGlvbiBsb2dpYyBpbiBndHBfZ2VubF9kZWxfcGRwKCksIHdoaWNoIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgcmVhY2hhYmxlIHZpYSBuZXRsaW5rLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDAzOjA0PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNzk4YmRjZDExMWJlZjNhM2YyYzNkZGEyNjNhZmIxMDJhOGM3ZTZhY1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgQXVnIDYgMDM6MDQ6MDIgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZ3RwLmMgYi9kcml2ZXJzL25ldC9ndHAuY1xuaW5kZXggOWExMmNjNTNkYTAwMi4uZGNkMGM4YjQ4ZWU3ZiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2d0cC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ndHAuY1xuQEAgLTIxMzQsNiAmIzQzOzIxMzQsOCBAQCBzdGF0aWMgaW50IGd0cF9nZW5sX2RlbF9wZHAoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbiBcdGlmICghaW5mby1cdTAwM2VhdHRyc1tHVFBBX1ZFUlNJT05dKVxuIFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcbiYjNDM7XHRydG5sX2xvY2soKTtcbiYjNDM7XG4gXHRyY3VfcmVhZF9sb2NrKCk7XG4gXG4gXHRwY3R4ID0gZ3RwX2ZpbmRfcGRwKHNvY2tfbmV0KHNrYi1cdTAwM2VzayksIGluZm8tXHUwMDNlYXR0cnMpO1xuQEAgLTIxNTQsNiAmIzQzOzIxNTYsNyBAQCBzdGF0aWMgaW50IGd0cF9nZW5sX2RlbF9wZHAoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcbiBcbiBvdXRfdW5sb2NrOlxuIFx0cmN1X3JlYWRfdW5sb2NrKCk7XG4mIzQzO1x0cnRubF91bmxvY2soKTtcbiBcdHJldHVybiBlcnI7XG4gfVxuIFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDAzOjA0PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtHVFAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtndHBfZ2VubF9kZWxfcGRwJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgbG9ja2luZyBpc3N1ZSBpbiB0aGUgR1RQIGRyaXZlciYjMzk7cyBuZXRsaW5rIGludGVyZmFjZSBmb3IgZGVsZXRpbmcgUERQIGNvbnRleHRzLiBJdCBhZGRzIHJ0bmxfbG9jaygpIGFyb3VuZCB0aGUgZGVsZXRpb24gbG9naWMgaW4gZ3RwX2dlbmxfZGVsX3BkcCgpLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHJlYWNoYWJsZSB2aWEgbmV0bGluay4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDc5OGJkY2QxMTFiZWYzYTNmMmMzZGRhMjYzYWZiMTAyYThjN2U2YWMKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVGh1IEF1ZyA2IDAzOjA0OjAyIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZ3RwLmMgYi9kcml2ZXJzL25ldC9ndHAuYwppbmRleCA5YTEyY2M1M2RhMDAyLi5kY2QwYzhiNDhlZTdmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ndHAuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ndHAuYwpAQCAtMjEzNCw2ICYjNDM7MjEzNCw4IEBAIHN0YXRpYyBpbnQgZ3RwX2dlbmxfZGVsX3BkcChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKQogCWlmICghaW5mby0mZ3Q7YXR0cnNbR1RQQV9WRVJTSU9OXSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKJiM0MzsJcnRubF9sb2NrKCk7CiYjNDM7CiAJcmN1X3JlYWRfbG9jaygpOwogCiAJcGN0eCA9IGd0cF9maW5kX3BkcChzb2NrX25ldChza2ItJmd0O3NrKSwgaW5mby0mZ3Q7YXR0cnMpOwpAQCAtMjE1NCw2ICYjNDM7MjE1Niw3IEBAIHN0YXRpYyBpbnQgZ3RwX2dlbmxfZGVsX3BkcChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKQogCiBvdXRfdW5sb2NrOgogCXJjdV9yZWFkX3VubG9jaygpOwomIzQzOwlydG5sX3VubG9jaygpOwogCXJldHVybiBlcnI7CiB9CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMDM6MDQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjEyMgoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDEzNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEdUUCBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7dmUgZ290IHRoaXMgcGF0Y2ggYWZmZWN0aW5nIGBkcml2ZXJzL25ldC9ndHAuY2AuIE15IGluaXRpYWwgcmVhZCBpbmRpY2F0ZXMgYSBmdW5jdGlvbmFsIGNoYW5nZSDigJMgdGhlIGFkZGl0aW9uIG9mIGBydG5sX2xvY2soKWAgYW5kIGBydG5sX3VubG9jaygpYCB0byBgZ3RwX2dlbmxfZGVsX3BkcCgpYC4gVGhpcyBzdHJvbmdseSBzdWdnZXN0cyBhIGxvY2tpbmcgaXNzdWUgZml4IHdpdGhpbiB0aGUgR1RQIGRyaXZlciBpdHNlbGYuIE15IGd1dCBzYXlzIHRoaXMgaXMgYWJvdXQgcHJvdGVjdGluZyBkYXRhIHN0cnVjdHVyZXMgZHVyaW5nIHRoZSBkZWxldGlvbiBvZiBhIFBEUCBjb250ZXh0LCB3aGljaCBtYWtlcyBwZXJmZWN0IHNlbnNlLgoKTXkgbmV4dCBzdGVwIGlzIHRvIGRpdmUgZGVlcGVyLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dC4gSSYjMzk7bSBnb2luZyB0byBxdWlja2x5IHZlcmlmeSB0aGUgZnVuY3Rpb25hbGl0eSBpbiBgZ3RwX2dlbmxfZGVsX3BkcGAgZGlyZWN0bHkgYW5kIHRoZW4gZXhwYW5kIG15IGZvY3VzIHRvIHRoZSBHVFAgZHJpdmVyIGFzIGEgd2hvbGUuIEdUUCBpcywgb2YgY291cnNlLCB0aGUgR1BSUyBUdW5uZWxpbmcgUHJvdG9jb2wuCgpOb3csIGxldCYjMzk7cyB0cmFjayBkb3duIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIGBDT05GSUdfR1RQYCBpcyB3aGF0IEkmIzM5O20gbG9va2luZyBmb3IgaW4gYEtjb25maWdgLiBJJiMzOTtsbCBydW4gYSBxdWljayBzZWFyY2ggdGhyb3VnaCB0aGUgY29kZSB0byBjb25maXJtIHRoZSBjb25maWd1cmF0aW9uIHNldHRpbmdzIGFyb3VuZCBgZ3RwX2dlbmxfZGVsX3BkcGAgYW5kIHRoZSBHVFAgbW9kdWxlLiBUaGlzIHNob3VsZCBwcm92aWRlIHRoZSBicm9hZGVyIHBpY3R1cmUgdG8gZXZhbHVhdGUgdGhlIGltcGFjdCBvZiB0aGlzIGxvY2tpbmcgZml4LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDAzOjA0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2d0cF9nZW5sX2RlbF9wZHAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ndHAuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ndHAuYz0yMTE0PXN0YXRpYyBzdHJ1Y3QgcGRwX2N0eCAqZ3RwX2ZpbmRfcGRwKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IG5sYXR0ciAqbmxhW10pXG4tLVxuZHJpdmVycy9uZXQvZ3RwLmMtMjEyOC1cbmRyaXZlcnMvbmV0L2d0cC5jOjIxMjk6c3RhdGljIGludCBndHBfZ2VubF9kZWxfcGRwKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG5kcml2ZXJzL25ldC9ndHAuYy0yMTMwLXtcbi0tXG5kcml2ZXJzL25ldC9ndHAuYz0yNDM2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2VubF9zbWFsbF9vcHMgZ3RwX2dlbmxfb3BzW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZ3RwLmMtMjQ0NS1cdFx0LnZhbGlkYXRlID0gR0VOTF9ET05UX1ZBTElEQVRFX1NUUklDVCB8IEdFTkxfRE9OVF9WQUxJREFURV9EVU1QLFxuZHJpdmVycy9uZXQvZ3RwLmM6MjQ0NjpcdFx0LmRvaXQgPSBndHBfZ2VubF9kZWxfcGRwLFxuZHJpdmVycy9uZXQvZ3RwLmMtMjQ0Ny1cdFx0LmZsYWdzID0gR0VOTF9BRE1JTl9QRVJNLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDAzOjA0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI4MDcKCQkJCQkJCW91dHB1dDogMjgKCQkJCQkJCXRob3VnaHRzOiA0MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0JiMzOTtzIGludGVybmFsIG1vbm9sb2d1ZToKCioqSW52ZXN0aWdhdGluZyB0aGUgYGd0cF9nZW5sX2RlbF9wZHBgIEZ1bmN0aW9uKioKClJpZ2h0LCBzbyBgZ3RwX2dlbmxfZGVsX3BkcGAgaXMgZmxhZ2dlZCBhcyBhIGdlbmwgY2FsbGJhY2suIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyByb2xlLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gY3Jvc3MtcmVmZXJlbmNlIGl0IHdpdGggdGhlIGtlcm5lbCBjb25maWd1cmF0aW9uLiBJIHNob3VsZCBiZSBhYmxlIHRvIGdldCBhIHF1aWNrIG92ZXJ2aWV3IG9mIHdoYXQgb3B0aW9ucyB3aWxsIGVuYWJsZSB0aGlzIGZ1bmN0aW9uLiBMZXQmIzM5O3Mgc3RhcnQgYnkgZGlnZ2luZyBpbnRvIGBDT05GSUdfR1RQYCBpbiB0aGUgYGRyaXZlcnMvbmV0L0tjb25maWdgIGZpbGUuIFRoYXQmIzM5O3MgdGhlIGxvZ2ljYWwgc3RhcnRpbmcgcG9pbnQgdG8gc2VlIHdoYXQmIzM5O3MgY29uZGl0aW9uYWwsIHdoYXQgbW9kdWxlcyBkZXBlbmQgb24gaXQsIGFuZCB3aGF0IGl0IHJlbGF0ZXMgdG8gaW4gdGhlIHdpZGVyIEdUUCBjb250ZXh0LiBGcm9tIHRoZXJlLCBJJiMzOTtsbCBiZSBiZXR0ZXIgZXF1aXBwZWQgdG8gZGV0ZXJtaW5lIHRoZSBmdW5jdGlvbiYjMzk7cyBzY29wZSBhbmQgcHVycG9zZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAwMzowNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgR1RQJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9LY29uZmlnPTI2MD1jb25maWcgQkFSRVVEUFxuLS1cbmRyaXZlcnMvbmV0L0tjb25maWctMjcxLVxuZHJpdmVycy9uZXQvS2NvbmZpZzoyNzI6Y29uZmlnIEdUUFxuZHJpdmVycy9uZXQvS2NvbmZpZy0yNzMtXHR0cmlzdGF0ZSBcJiMzNDtHUFJTIFR1bm5lbGluZyBQcm90b2NvbCBkYXRhcGF0aCAoR1RQLVUpXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMDM6MDQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzEzOAoJCQkJCQkJb3V0cHV0OiAyNgoJCQkJCQkJdGhvdWdodHM6IDY5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIEdUUCBGdW5jdGlvbmFsaXR5IGZvciBGdXp6aW5nKioKCk9rYXksIHNvIHRoZSBjb25maWcgaW5kaWNhdGVzIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYEdUUGAuIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIGxvb2sgYXQgdGhlIGBndHBfZ2VubF9kZWxfcGRwYCBmdW5jdGlvbi4gVGhlIGZpcnN0IHF1ZXN0aW9uIGlzIGFsd2F5czogZnV6emluZyB0YXJnZXQgd29ydGh5PyBBYnNvbHV0ZWx5LiBJdOKAmXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoaW4gYSBuZXR3b3JrIGRyaXZlciwgYW5kIHdlIGtub3cgaXQmIzM5O3MgYWNjZXNzaWJsZSB2aWEgbmV0bGluay4gVGhhdCYjMzk7cyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIEkgY2FuIHBvdGVudGlhbGx5IHRyaWdnZXIgaXQgcmVtb3RlbHkuCgpOb3csIGJlZm9yZSBJIGRpZyB0b28gZGVlcCBpbnRvIGZ1enppbmcgdGhhdCBzcGVjaWZpYyBmdW5jdGlvbiwgSSBzaG91bGQgcXVpY2tseSBjaGVjayBmb3IgYW55IG90aGVyIGRlcGVuZGVuY2llcyByZWxhdGVkIHRvIGBHVFBgLiBXZSBjYW4mIzM5O3QgYWZmb3JkIGFueSBibGluZCBzcG90cy4gQXJlIHRoZXJlIGFueSBvdGhlciBjb25maWcgb3B0aW9ucyBvciByZWxhdGVkIGZ1bmN0aW9ucyB0aGF0IHRoaXMgZGVwZW5kcyBvbj8gSSB3YW50IHRvIG1ha2Ugc3VyZSBJIHVuZGVyc3RhbmQgdGhlIGZ1bGwgYXR0YWNrIHN1cmZhY2UgYmVmb3JlIEkgc3RhcnQgY3JhZnRpbmcgYW55IGZ1enppbmcgaGFybmVzc2VzIG9yIG11dGF0aW9ucy4gVW5kZXJzdGFuZGluZyB0aGUgZGVwZW5kZW5jaWVzIGlzIGVzc2VudGlhbC4gSXQmIzM5O3MgdGltZSB0byBtYXAgdGhlIHN5c3RlbS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAwMzowNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgR1RQJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L0tjb25maWc9MjYwPWNvbmZpZyBCQVJFVURQXG4tLVxuZHJpdmVycy9uZXQvS2NvbmZpZy0yNzEtXG5kcml2ZXJzL25ldC9LY29uZmlnOjI3Mjpjb25maWcgR1RQXG5kcml2ZXJzL25ldC9LY29uZmlnLTI3My1cdHRyaXN0YXRlIFwmIzM0O0dQUlMgVHVubmVsaW5nIFByb3RvY29sIGRhdGFwYXRoIChHVFAtVSlcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAwMzowNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNTEwCgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMTEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqR1RQIEtjb25maWcgSW52ZXN0aWdhdGlvbioqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZGl2ZSBpbi4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gY2hlY2sgdGhlIEtjb25maWcgZW50cnkgZm9yIEdUUC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgZGVwZW5kZW5jaWVzLCBhbmQgYW55IHJlbGV2YW50IGRlZmF1bHQgdmFsdWVzLiBLbm93aW5nIHRoZSBLY29uZmlnIGlzIGZ1bmRhbWVudGFsIGZvciBncmFzcGluZyBob3cgR1RQIGlzIGVuYWJsZWQsIGRpc2FibGVkLCBhbmQgY3VzdG9taXplZCB3aXRoaW4gdGhlIGJ1aWxkIHN5c3RlbS4gSSYjMzk7bGwgbmVlZCB0byBsb29rIGZvciBhbnkgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gZmxhZ3Mgb3IgZGVwZW5kZW5jaWVzIG9uIG90aGVyIGZlYXR1cmVzIHRoYXQgbWlnaHQgYWZmZWN0IEdUUCYjMzk7cyBiZWhhdmlvci4gSSYjMzk7bSB0aGlua2luZyBhYm91dCB0aGUgaW1wbGljYXRpb25zIGZvciBidWlsZCBjb25maWd1cmF0aW9ucyBhbmQgaG93IHRoaXMgaW1wYWN0cyB0aGUgb3ZlcmFsbCBzeXN0ZW0uIFRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5IGFuZCBleGFtaW5lIHRoYXQgS2NvbmZpZyBmaWxlLiBMZXQmIzM5O3Mgc2VlIHdoYXQgZ2VtcyBhcmUgaGlkZGVuIGluIHRoZXJlIQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAwMzowNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAyNzIsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDI3MjpcdGNvbmZpZyBHVFBcbiAyNzM6XHRcdHRyaXN0YXRlIFwmIzM0O0dQUlMgVHVubmVsaW5nIFByb3RvY29sIGRhdGFwYXRoIChHVFAtVSlcJiMzNDtcbiAyNzQ6XHRcdGRlcGVuZHMgb24gSU5FVFxuIDI3NTpcdFx0c2VsZWN0IE5FVF9VRFBfVFVOTkVMXG4gMjc2Olx0XHRoZWxwXG4gMjc3Olx0XHQgIFRoaXMgYWxsb3dzIG9uZSB0byBjcmVhdGUgZ3RwIHZpcnR1YWwgaW50ZXJmYWNlcyB0aGF0IHByb3ZpZGVcbiAyNzg6XHRcdCAgdGhlIEdQUlMgVHVubmVsaW5nIFByb3RvY29sIGRhdGFwYXRoIChHVFAtVSkuIFRoaXMgdHVubmVsaW5nIHByb3RvY29sXG4gMjc5Olx0XHQgIGlzIHVzZWQgdG8gcHJldmVudCBzdWJzY3JpYmVycyBmcm9tIGFjY2Vzc2luZyBtb2JpbGUgY2FycmllciBjb3JlXG4gMjgwOlx0XHQgIG5ldHdvcmsgaW5mcmFzdHJ1Y3R1cmUuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIGEgdXNlcnNwYWNlIHNvZnR3YXJlIHRoYXRcbiAyODE6XHRcdCAgaW1wbGVtZW50cyB0aGUgc2lnbmFsaW5nIHByb3RvY29sIChHVFAtQykgdG8gdXBkYXRlIGl0cyBQRFAgY29udGV4dFxuIDI4MjpcdFx0ICBiYXNlLCBzdWNoIGFzIE9wZW5HR1NOIFx1MDAzY2h0dHA6Ly9naXQub3Ntb2NvbS5vcmcvb3Blbmdnc24vKS4gVGhpc1xuIDI4MzpcdFx0ICB0dW5uZWxpbmcgcHJvdG9jb2wgaXMgaW1wbGVtZW50ZWQgYWNjb3JkaW5nIHRvIHRoZSBHU00gVFMgMDkuNjAgYW5kXG4gMjg0Olx0XHQgIDNHUFAgVFMgMjkuMDYwIHN0YW5kYXJkcy5cbiAyODU6XHRcbiAyODY6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlcnMgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGVcbiAyODc6XHRcdCAgd2lsbCBiZSBjYWxsZWQgZ3RwLlxuIDI4ODpcdFxuIDI4OTpcdGNvbmZpZyBQRkNQXG4gMjkwOlx0XHR0cmlzdGF0ZSBcJiMzNDtQYWNrZXQgRm9yd2FyZGluZyBDb250cm9sIFByb3RvY29sIChQRkNQKVwmIzM0O1xuIDI5MTpcdFx0ZGVwZW5kcyBvbiBJTkVUXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDAzOjA0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQwNTkKCQkJCQkJCW91dHB1dDogMTAwCgkJCQkJCQl0aG91Z2h0czogNDQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIG15IG93biBtZW50YWwgcHJvY2VzcywgZ2l2ZW4gdGhhdCB0aGUgY29uZmlnIGlzIEdUUCBhbmQgdGhlIGZ1bmN0aW9uIGlzIGBndHBfZ2VubF9kZWxfcGRwYDoKCioqTXkgRnV6emluZyBTdHJhdGVneTogR1RQL2d0cF9nZW5sX2RlbF9wZHAqKgoKQWxyaWdodCwgbG9va2luZyBhdCB0aGlzLCB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGEgYEdUUGAgY29uZmlndXJhdGlvbiwgYW5kIHRoZSB0YXJnZXQgZnVuY3Rpb24gaXMgYGd0cF9nZW5sX2RlbF9wZHBgLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIG1hcmsgdGhpcyBmb3IgZnV6emluZy4gR2l2ZW4gd2hhdCBJIGtub3cgYWJvdXQgR1RQIGFuZCB0aGUgaW1wbGljYXRpb25zIG9mIGRlbGV0aW5nIFBEUCBjb250ZXh0cywgdGhlcmUmIzM5O3MgYSBnb29kIGNoYW5jZSB0aGlzIGZ1bmN0aW9uIGlzIGEgcG90ZW50aWFsIHBvaW50IG9mIHZ1bG5lcmFiaWxpdHkuIFNwZWNpZmljYWxseSwgYW55IGltcHJvcGVyIGhhbmRsaW5nIG9mIFBETiBjb25uZWN0aW9uIHRlYXIgZG93biwgb3IgY29udHJvbCBtZXNzYWdlIGludGVyYWN0aW9uLiBBIHdlbGwtY3JhZnRlZCBtYWxmb3JtZWQgbWVzc2FnZSBjb3VsZCBwb3RlbnRpYWxseSBsZWFkIHRvIHNlcmlvdXMgaXNzdWVzLCBzbyBJJiMzOTttIHNldHRpbmcgYFdvcnRoRnV6emluZz10cnVlYC4KCk5vdywgdGhlIG5leHQgbG9naWNhbCBzdGVwIGlzIHRvIGNhbGwgYHNldC1yZXN1bHRzYC4gSSB3YW50IHRvIGltbWVkaWF0ZWx5IHJlY29yZCB0aGlzIGZpbmRpbmcgYW5kIGZsYWcgdGhlIGZ1bmN0aW9uIGZvciBmdXJ0aGVyIGFuYWx5c2lzIGFuZCBmdXp6aW5nIHJ1bnMuIFRoZSBzb29uZXIgd2UgaGF2ZSB0aGlzIHRhZ2dlZCBpbiBvdXIgc3lzdGVtLCB0aGUgYmV0dGVyLiBJdCBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIGxpc3Qgb2YgZnV6emluZyB0YXJnZXRzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAwMzowNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7R1RQJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Z3RwX2dlbmxfZGVsX3BkcCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIGxvY2tpbmcgaXNzdWUgaW4gdGhlIEdUUCBkcml2ZXImIzM5O3MgbmV0bGluayBpbnRlcmZhY2UgZm9yIGRlbGV0aW5nIFBEUCBjb250ZXh0cy4gSXQgYWRkcyBydG5sX2xvY2soKSBhcm91bmQgdGhlIGRlbGV0aW9uIGxvZ2ljIGluIGd0cF9nZW5sX2RlbF9wZHAoKSwgd2hpY2ggaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSByZWFjaGFibGUgdmlhIG5ldGxpbmsuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0dUUCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2d0cF9nZW5sX2RlbF9wZHAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBsb2NraW5nIGlzc3VlIGluIHRoZSBHVFAgZHJpdmVyJiMzOTtzIG5ldGxpbmsgaW50ZXJmYWNlIGZvciBkZWxldGluZyBQRFAgY29udGV4dHMuIEl0IGFkZHMgcnRubF9sb2NrKCkgYXJvdW5kIHRoZSBkZWxldGlvbiBsb2dpYyBpbiBndHBfZ2VubF9kZWxfcGRwKCksIHdoaWNoIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgcmVhY2hhYmxlIHZpYSBuZXRsaW5rLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDM6MDQ6MDMuNDQzMzI5OTQzWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTgwMDk4Mzg3NjAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiR1RQXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZ3RwX2dlbmxfZGVsX3BkcFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgbG9ja2luZyBpc3N1ZSBpbiB0aGUgR1RQIGRyaXZlcidzIG5ldGxpbmsgaW50ZXJmYWNlIGZvciBkZWxldGluZyBQRFAgY29udGV4dHMuIEl0IGFkZHMgcnRubF9sb2NrKCkgYXJvdW5kIHRoZSBkZWxldGlvbiBsb2dpYyBpbiBndHBfZ2VubF9kZWxfcGRwKCksIHdoaWNoIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgcmVhY2hhYmxlIHZpYSBuZXRsaW5rLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQwMzowNDowMy40NDMzMzcxMTNaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUyNjE1MTA5MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDc5OGJkY2QxMTFiZWYzYTNmMmMzZGRhMjYzYWZiMTAyYThjN2U2YWNcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBBdWcgNiAwMzowNDowMiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ndHAuYyBiL2RyaXZlcnMvbmV0L2d0cC5jXFxuaW5kZXggOWExMmNjNTNkYTAwMi4uZGNkMGM4YjQ4ZWU3ZiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ndHAuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2d0cC5jXFxuQEAgLTIxMzQsNiArMjEzNCw4IEBAIHN0YXRpYyBpbnQgZ3RwX2dlbmxfZGVsX3BkcChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbiBcXHRpZiAoIWluZm8tXFx1MDAzZWF0dHJzW0dUUEFfVkVSU0lPTl0pXFxuIFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbiBcXG4rXFx0cnRubF9sb2NrKCk7XFxuK1xcbiBcXHRyY3VfcmVhZF9sb2NrKCk7XFxuIFxcbiBcXHRwY3R4ID0gZ3RwX2ZpbmRfcGRwKHNvY2tfbmV0KHNrYi1cXHUwMDNlc2spLCBpbmZvLVxcdTAwM2VhdHRycyk7XFxuQEAgLTIxNTQsNiArMjE1Niw3IEBAIHN0YXRpYyBpbnQgZ3RwX2dlbmxfZGVsX3BkcChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKVxcbiBcXG4gb3V0X3VubG9jazpcXG4gXFx0cmN1X3JlYWRfdW5sb2NrKCk7XFxuK1xcdHJ0bmxfdW5sb2NrKCk7XFxuIFxcdHJldHVybiBlcnI7XFxuIH1cXG4gXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDAzOjA0OjAzLjk3MDQ1NzEyNloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjE3NDgyNjk3MTk3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkdUUFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImd0cF9nZW5sX2RlbF9wZHBcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIGxvY2tpbmcgaXNzdWUgaW4gdGhlIEdUUCBkcml2ZXIncyBuZXRsaW5rIGludGVyZmFjZSBmb3IgZGVsZXRpbmcgUERQIGNvbnRleHRzLiBJdCBhZGRzIHJ0bmxfbG9jaygpIGFyb3VuZCB0aGUgZGVsZXRpb24gbG9naWMgaW4gZ3RwX2dlbmxfZGVsX3BkcCgpLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHJlYWNoYWJsZSB2aWEgbmV0bGluay5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNzk4YmRjZDExMWJlZjNhM2YyYzNkZGEyNjNhZmIxMDJhOGM3ZTZhY1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgQXVnIDYgMDM6MDQ6MDIgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ndHAuYyBiL2RyaXZlcnMvbmV0L2d0cC5jXG5pbmRleCA5YTEyY2M1M2RhMDAyLi5kY2QwYzhiNDhlZTdmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZ3RwLmNcbisrKyBiL2RyaXZlcnMvbmV0L2d0cC5jXG5AQCAtMjEzNCw2ICsyMTM0LDggQEAgc3RhdGljIGludCBndHBfZ2VubF9kZWxfcGRwKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG4gXHRpZiAoIWluZm8tXHUwMDNlYXR0cnNbR1RQQV9WRVJTSU9OXSlcbiBcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXG4rXHRydG5sX2xvY2soKTtcbitcbiBcdHJjdV9yZWFkX2xvY2soKTtcbiBcbiBcdHBjdHggPSBndHBfZmluZF9wZHAoc29ja19uZXQoc2tiLVx1MDAzZXNrKSwgaW5mby1cdTAwM2VhdHRycyk7XG5AQCAtMjE1NCw2ICsyMTU2LDcgQEAgc3RhdGljIGludCBndHBfZ2VubF9kZWxfcGRwKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG4gXG4gb3V0X3VubG9jazpcbiBcdHJjdV9yZWFkX3VubG9jaygpO1xuK1x0cnRubF91bmxvY2soKTtcbiBcdHJldHVybiBlcnI7XG4gfVxuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDM6MDQ6MDMuOTcwNDU5MjI2WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzc5NDM4ODk0MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEdUUCBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCB0aGlzIHBhdGNoIGFmZmVjdGluZyBgZHJpdmVycy9uZXQvZ3RwLmNgLiBNeSBpbml0aWFsIHJlYWQgaW5kaWNhdGVzIGEgZnVuY3Rpb25hbCBjaGFuZ2Ug4oCTIHRoZSBhZGRpdGlvbiBvZiBgcnRubF9sb2NrKClgIGFuZCBgcnRubF91bmxvY2soKWAgdG8gYGd0cF9nZW5sX2RlbF9wZHAoKWAuIFRoaXMgc3Ryb25nbHkgc3VnZ2VzdHMgYSBsb2NraW5nIGlzc3VlIGZpeCB3aXRoaW4gdGhlIEdUUCBkcml2ZXIgaXRzZWxmLiBNeSBndXQgc2F5cyB0aGlzIGlzIGFib3V0IHByb3RlY3RpbmcgZGF0YSBzdHJ1Y3R1cmVzIGR1cmluZyB0aGUgZGVsZXRpb24gb2YgYSBQRFAgY29udGV4dCwgd2hpY2ggbWFrZXMgcGVyZmVjdCBzZW5zZS5cblxuTXkgbmV4dCBzdGVwIGlzIHRvIGRpdmUgZGVlcGVyLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dC4gSSdtIGdvaW5nIHRvIHF1aWNrbHkgdmVyaWZ5IHRoZSBmdW5jdGlvbmFsaXR5IGluIGBndHBfZ2VubF9kZWxfcGRwYCBkaXJlY3RseSBhbmQgdGhlbiBleHBhbmQgbXkgZm9jdXMgdG8gdGhlIEdUUCBkcml2ZXIgYXMgYSB3aG9sZS4gR1RQIGlzLCBvZiBjb3Vyc2UsIHRoZSBHUFJTIFR1bm5lbGluZyBQcm90b2NvbC5cblxuTm93LCBsZXQncyB0cmFjayBkb3duIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIGBDT05GSUdfR1RQYCBpcyB3aGF0IEknbSBsb29raW5nIGZvciBpbiBgS2NvbmZpZ2AuIEknbGwgcnVuIGEgcXVpY2sgc2VhcmNoIHRocm91Z2ggdGhlIGNvZGUgdG8gY29uZmlybSB0aGUgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBhcm91bmQgYGd0cF9nZW5sX2RlbF9wZHBgIGFuZCB0aGUgR1RQIG1vZHVsZS4gVGhpcyBzaG91bGQgcHJvdmlkZSB0aGUgYnJvYWRlciBwaWN0dXJlIHRvIGV2YWx1YXRlIHRoZSBpbXBhY3Qgb2YgdGhpcyBsb2NraW5nIGZpeC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjEyMiwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzNCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDAzOjA0OjA3Ljc2NDg1MTg3OFoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MDIwMTg2OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJndHBfZ2VubF9kZWxfcGRwXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2d0cC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2d0cC5jPTIxMTQ9c3RhdGljIHN0cnVjdCBwZHBfY3R4ICpndHBfZmluZF9wZHAoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgbmxhdHRyICpubGFbXSlcXG4tLVxcbmRyaXZlcnMvbmV0L2d0cC5jLTIxMjgtXFxuZHJpdmVycy9uZXQvZ3RwLmM6MjEyOTpzdGF0aWMgaW50IGd0cF9nZW5sX2RlbF9wZHAoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG5kcml2ZXJzL25ldC9ndHAuYy0yMTMwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2d0cC5jPTI0MzY9c3RhdGljIGNvbnN0IHN0cnVjdCBnZW5sX3NtYWxsX29wcyBndHBfZ2VubF9vcHNbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2d0cC5jLTI0NDUtXFx0XFx0LnZhbGlkYXRlID0gR0VOTF9ET05UX1ZBTElEQVRFX1NUUklDVCB8IEdFTkxfRE9OVF9WQUxJREFURV9EVU1QLFxcbmRyaXZlcnMvbmV0L2d0cC5jOjI0NDY6XFx0XFx0LmRvaXQgPSBndHBfZ2VubF9kZWxfcGRwLFxcbmRyaXZlcnMvbmV0L2d0cC5jLTI0NDctXFx0XFx0LmZsYWdzID0gR0VOTF9BRE1JTl9QRVJNLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQwMzowNDowNy44MjUwNTk2OTZaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMDA2Nzk1NjU3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCdzIGludGVybmFsIG1vbm9sb2d1ZTpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBgZ3RwX2dlbmxfZGVsX3BkcGAgRnVuY3Rpb24qKlxuXG5SaWdodCwgc28gYGd0cF9nZW5sX2RlbF9wZHBgIGlzIGZsYWdnZWQgYXMgYSBnZW5sIGNhbGxiYWNrLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgcm9sZS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGNyb3NzLXJlZmVyZW5jZSBpdCB3aXRoIHRoZSBrZXJuZWwgY29uZmlndXJhdGlvbi4gSSBzaG91bGQgYmUgYWJsZSB0byBnZXQgYSBxdWljayBvdmVydmlldyBvZiB3aGF0IG9wdGlvbnMgd2lsbCBlbmFibGUgdGhpcyBmdW5jdGlvbi4gTGV0J3Mgc3RhcnQgYnkgZGlnZ2luZyBpbnRvIGBDT05GSUdfR1RQYCBpbiB0aGUgYGRyaXZlcnMvbmV0L0tjb25maWdgIGZpbGUuIFRoYXQncyB0aGUgbG9naWNhbCBzdGFydGluZyBwb2ludCB0byBzZWUgd2hhdCdzIGNvbmRpdGlvbmFsLCB3aGF0IG1vZHVsZXMgZGVwZW5kIG9uIGl0LCBhbmQgd2hhdCBpdCByZWxhdGVzIHRvIGluIHRoZSB3aWRlciBHVFAgY29udGV4dC4gRnJvbSB0aGVyZSwgSSdsbCBiZSBiZXR0ZXIgZXF1aXBwZWQgdG8gZGV0ZXJtaW5lIHRoZSBmdW5jdGlvbidzIHNjb3BlIGFuZCBwdXJwb3NlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyODA3LCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDM6MDQ6MTAuODMxODU4MTMzWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg4OTg4MzM3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBHVFBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9LY29uZmlnPTI2MD1jb25maWcgQkFSRVVEUFxcbi0tXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0yNzEtXFxuZHJpdmVycy9uZXQvS2NvbmZpZzoyNzI6Y29uZmlnIEdUUFxcbmRyaXZlcnMvbmV0L0tjb25maWctMjczLVxcdHRyaXN0YXRlIFxcXCJHUFJTIFR1bm5lbGluZyBQcm90b2NvbCBkYXRhcGF0aCAoR1RQLVUpXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQwMzowNDoxMC45MjA4NTIxNjFaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDkwMjIyNDMyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIEdUUCBGdW5jdGlvbmFsaXR5IGZvciBGdXp6aW5nKipcblxuT2theSwgc28gdGhlIGNvbmZpZyBpbmRpY2F0ZXMgd2UncmUgZGVhbGluZyB3aXRoIGBHVFBgLiBTcGVjaWZpY2FsbHksIEkgbmVlZCB0byBsb29rIGF0IHRoZSBgZ3RwX2dlbmxfZGVsX3BkcGAgZnVuY3Rpb24uIFRoZSBmaXJzdCBxdWVzdGlvbiBpcyBhbHdheXM6IGZ1enppbmcgdGFyZ2V0IHdvcnRoeT8gQWJzb2x1dGVseS4gSXTigJlzIGEgZnVuY3Rpb25hbCBjaGFuZ2Ugd2l0aGluIGEgbmV0d29yayBkcml2ZXIsIGFuZCB3ZSBrbm93IGl0J3MgYWNjZXNzaWJsZSB2aWEgbmV0bGluay4gVGhhdCdzIGEgZ29vZCBzdGFydGluZyBwb2ludC4gSSBjYW4gcG90ZW50aWFsbHkgdHJpZ2dlciBpdCByZW1vdGVseS5cblxuTm93LCBiZWZvcmUgSSBkaWcgdG9vIGRlZXAgaW50byBmdXp6aW5nIHRoYXQgc3BlY2lmaWMgZnVuY3Rpb24sIEkgc2hvdWxkIHF1aWNrbHkgY2hlY2sgZm9yIGFueSBvdGhlciBkZXBlbmRlbmNpZXMgcmVsYXRlZCB0byBgR1RQYC4gV2UgY2FuJ3QgYWZmb3JkIGFueSBibGluZCBzcG90cy4gQXJlIHRoZXJlIGFueSBvdGhlciBjb25maWcgb3B0aW9ucyBvciByZWxhdGVkIGZ1bmN0aW9ucyB0aGF0IHRoaXMgZGVwZW5kcyBvbj8gSSB3YW50IHRvIG1ha2Ugc3VyZSBJIHVuZGVyc3RhbmQgdGhlIGZ1bGwgYXR0YWNrIHN1cmZhY2UgYmVmb3JlIEkgc3RhcnQgY3JhZnRpbmcgYW55IGZ1enppbmcgaGFybmVzc2VzIG9yIG11dGF0aW9ucy4gVW5kZXJzdGFuZGluZyB0aGUgZGVwZW5kZW5jaWVzIGlzIGVzc2VudGlhbC4gSXQncyB0aW1lIHRvIG1hcCB0aGUgc3lzdGVtLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMTM4LCJPdXRwdXRUb2tlbnMiOjI2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDM6MDQ6MTQuNDExMDc3MjEyWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI4NDg0MDA5MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgR1RQXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9LY29uZmlnPTI2MD1jb25maWcgQkFSRVVEUFxcbi0tXFxuZHJpdmVycy9uZXQvS2NvbmZpZy0yNzEtXFxuZHJpdmVycy9uZXQvS2NvbmZpZzoyNzI6Y29uZmlnIEdUUFxcbmRyaXZlcnMvbmV0L0tjb25maWctMjczLVxcdHRyaXN0YXRlIFxcXCJHUFJTIFR1bm5lbGluZyBQcm90b2NvbCBkYXRhcGF0aCAoR1RQLVUpXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQwMzowNDoxNC42OTU5MzU0MDNaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMDc5NTU0MDI0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipHVFAgS2NvbmZpZyBJbnZlc3RpZ2F0aW9uKipcblxuQWxyaWdodCwgbGV0J3MgZGl2ZSBpbi4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gY2hlY2sgdGhlIEtjb25maWcgZW50cnkgZm9yIEdUUC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgZGVwZW5kZW5jaWVzLCBhbmQgYW55IHJlbGV2YW50IGRlZmF1bHQgdmFsdWVzLiBLbm93aW5nIHRoZSBLY29uZmlnIGlzIGZ1bmRhbWVudGFsIGZvciBncmFzcGluZyBob3cgR1RQIGlzIGVuYWJsZWQsIGRpc2FibGVkLCBhbmQgY3VzdG9taXplZCB3aXRoaW4gdGhlIGJ1aWxkIHN5c3RlbS4gSSdsbCBuZWVkIHRvIGxvb2sgZm9yIGFueSBjb25kaXRpb25hbCBjb21waWxhdGlvbiBmbGFncyBvciBkZXBlbmRlbmNpZXMgb24gb3RoZXIgZmVhdHVyZXMgdGhhdCBtaWdodCBhZmZlY3QgR1RQJ3MgYmVoYXZpb3IuIEknbSB0aGlua2luZyBhYm91dCB0aGUgaW1wbGljYXRpb25zIGZvciBidWlsZCBjb25maWd1cmF0aW9ucyBhbmQgaG93IHRoaXMgaW1wYWN0cyB0aGUgb3ZlcmFsbCBzeXN0ZW0uIFRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5IGFuZCBleGFtaW5lIHRoYXQgS2NvbmZpZyBmaWxlLiBMZXQncyBzZWUgd2hhdCBnZW1zIGFyZSBoaWRkZW4gaW4gdGhlcmUhXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM1MTAsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQwMzowNDoxNy43NzU0OTIzMTdaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI0Njc5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMjcyLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgMjcyOlxcdGNvbmZpZyBHVFBcXG4gMjczOlxcdFxcdHRyaXN0YXRlIFxcXCJHUFJTIFR1bm5lbGluZyBQcm90b2NvbCBkYXRhcGF0aCAoR1RQLVUpXFxcIlxcbiAyNzQ6XFx0XFx0ZGVwZW5kcyBvbiBJTkVUXFxuIDI3NTpcXHRcXHRzZWxlY3QgTkVUX1VEUF9UVU5ORUxcXG4gMjc2OlxcdFxcdGhlbHBcXG4gMjc3OlxcdFxcdCAgVGhpcyBhbGxvd3Mgb25lIHRvIGNyZWF0ZSBndHAgdmlydHVhbCBpbnRlcmZhY2VzIHRoYXQgcHJvdmlkZVxcbiAyNzg6XFx0XFx0ICB0aGUgR1BSUyBUdW5uZWxpbmcgUHJvdG9jb2wgZGF0YXBhdGggKEdUUC1VKS4gVGhpcyB0dW5uZWxpbmcgcHJvdG9jb2xcXG4gMjc5OlxcdFxcdCAgaXMgdXNlZCB0byBwcmV2ZW50IHN1YnNjcmliZXJzIGZyb20gYWNjZXNzaW5nIG1vYmlsZSBjYXJyaWVyIGNvcmVcXG4gMjgwOlxcdFxcdCAgbmV0d29yayBpbmZyYXN0cnVjdHVyZS4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgYSB1c2Vyc3BhY2Ugc29mdHdhcmUgdGhhdFxcbiAyODE6XFx0XFx0ICBpbXBsZW1lbnRzIHRoZSBzaWduYWxpbmcgcHJvdG9jb2wgKEdUUC1DKSB0byB1cGRhdGUgaXRzIFBEUCBjb250ZXh0XFxuIDI4MjpcXHRcXHQgIGJhc2UsIHN1Y2ggYXMgT3BlbkdHU04gXFx1MDAzY2h0dHA6Ly9naXQub3Ntb2NvbS5vcmcvb3Blbmdnc24vKS4gVGhpc1xcbiAyODM6XFx0XFx0ICB0dW5uZWxpbmcgcHJvdG9jb2wgaXMgaW1wbGVtZW50ZWQgYWNjb3JkaW5nIHRvIHRoZSBHU00gVFMgMDkuNjAgYW5kXFxuIDI4NDpcXHRcXHQgIDNHUFAgVFMgMjkuMDYwIHN0YW5kYXJkcy5cXG4gMjg1OlxcdFxcbiAyODY6XFx0XFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVycyBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZVxcbiAyODc6XFx0XFx0ICB3aWxsIGJlIGNhbGxlZCBndHAuXFxuIDI4ODpcXHRcXG4gMjg5OlxcdGNvbmZpZyBQRkNQXFxuIDI5MDpcXHRcXHR0cmlzdGF0ZSBcXFwiUGFja2V0IEZvcndhcmRpbmcgQ29udHJvbCBQcm90b2NvbCAoUEZDUClcXFwiXFxuIDI5MTpcXHRcXHRkZXBlbmRzIG9uIElORVRcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDM6MDQ6MTcuNzc1NjIwNDY3WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1Mzk0Njg0OTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duIG1lbnRhbCBwcm9jZXNzLCBnaXZlbiB0aGF0IHRoZSBjb25maWcgaXMgR1RQIGFuZCB0aGUgZnVuY3Rpb24gaXMgYGd0cF9nZW5sX2RlbF9wZHBgOlxuXG4qKk15IEZ1enppbmcgU3RyYXRlZ3k6IEdUUC9ndHBfZ2VubF9kZWxfcGRwKipcblxuQWxyaWdodCwgbG9va2luZyBhdCB0aGlzLCB3ZSdyZSBkZWFsaW5nIHdpdGggYSBgR1RQYCBjb25maWd1cmF0aW9uLCBhbmQgdGhlIHRhcmdldCBmdW5jdGlvbiBpcyBgZ3RwX2dlbmxfZGVsX3BkcGAuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gbWFyayB0aGlzIGZvciBmdXp6aW5nLiBHaXZlbiB3aGF0IEkga25vdyBhYm91dCBHVFAgYW5kIHRoZSBpbXBsaWNhdGlvbnMgb2YgZGVsZXRpbmcgUERQIGNvbnRleHRzLCB0aGVyZSdzIGEgZ29vZCBjaGFuY2UgdGhpcyBmdW5jdGlvbiBpcyBhIHBvdGVudGlhbCBwb2ludCBvZiB2dWxuZXJhYmlsaXR5LiBTcGVjaWZpY2FsbHksIGFueSBpbXByb3BlciBoYW5kbGluZyBvZiBQRE4gY29ubmVjdGlvbiB0ZWFyIGRvd24sIG9yIGNvbnRyb2wgbWVzc2FnZSBpbnRlcmFjdGlvbi4gQSB3ZWxsLWNyYWZ0ZWQgbWFsZm9ybWVkIG1lc3NhZ2UgY291bGQgcG90ZW50aWFsbHkgbGVhZCB0byBzZXJpb3VzIGlzc3Vlcywgc28gSSdtIHNldHRpbmcgYFdvcnRoRnV6emluZz10cnVlYC5cblxuTm93LCB0aGUgbmV4dCBsb2dpY2FsIHN0ZXAgaXMgdG8gY2FsbCBgc2V0LXJlc3VsdHNgLiBJIHdhbnQgdG8gaW1tZWRpYXRlbHkgcmVjb3JkIHRoaXMgZmluZGluZyBhbmQgZmxhZyB0aGUgZnVuY3Rpb24gZm9yIGZ1cnRoZXIgYW5hbHlzaXMgYW5kIGZ1enppbmcgcnVucy4gVGhlIHNvb25lciB3ZSBoYXZlIHRoaXMgdGFnZ2VkIGluIG91ciBzeXN0ZW0sIHRoZSBiZXR0ZXIuIEl0IHNob3VsZCBiZSBhZGRlZCB0byB0aGUgbGlzdCBvZiBmdXp6aW5nIHRhcmdldHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQwNTksIk91dHB1dFRva2VucyI6MTAwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDQsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQwMzowNDoyMS4zMTUwOTE5MTdaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzgwNTczODYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkdUUFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImd0cF9nZW5sX2RlbF9wZHBcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIGxvY2tpbmcgaXNzdWUgaW4gdGhlIEdUUCBkcml2ZXIncyBuZXRsaW5rIGludGVyZmFjZSBmb3IgZGVsZXRpbmcgUERQIGNvbnRleHRzLiBJdCBhZGRzIHJ0bmxfbG9jaygpIGFyb3VuZCB0aGUgZGVsZXRpb24gbG9naWMgaW4gZ3RwX2dlbmxfZGVsX3BkcCgpLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHJlYWNoYWJsZSB2aWEgbmV0bGluay5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJHVFBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJndHBfZ2VubF9kZWxfcGRwXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBsb2NraW5nIGlzc3VlIGluIHRoZSBHVFAgZHJpdmVyJ3MgbmV0bGluayBpbnRlcmZhY2UgZm9yIGRlbGV0aW5nIFBEUCBjb250ZXh0cy4gSXQgYWRkcyBydG5sX2xvY2soKSBhcm91bmQgdGhlIGRlbGV0aW9uIGxvZ2ljIGluIGd0cF9nZW5sX2RlbF9wZHAoKSwgd2hpY2ggaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSByZWFjaGFibGUgdmlhIG5ldGxpbmsuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowcrw4z[1] Phase: Succeeded StartedAt: 2026-08-06 03:04:33 +0000 UTC FinishedAt: 2026-08-06 03:04:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcrw4z[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-06 03:04:33 +0000 UTC FinishedAt: 2026-08-06 03:04:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcrw4z[2] Phase: Succeeded StartedAt: 2026-08-06 03:04:33 +0000 UTC FinishedAt: 2026-08-06 06:49:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcrw4z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"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":["gtp_genl_del_pdp"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"series_id":"b97a46bc-ec45-4e50-a6b8-1c4d7f44560c","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-06 03:04:33 +0000 UTC FinishedAt: 2026-08-06 06:49:51 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"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":["gtp_genl_del_pdp"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"series_id":"b97a46bc-ec45-4e50-a6b8-1c4d7f44560c","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-workflowcrw4z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"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":["gtp_genl_del_pdp"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"series_id":"b97a46bc-ec45-4e50-a6b8-1c4d7f44560c","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-06 03:04:33 +0000 UTC FinishedAt: 2026-08-06 03:04:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcrw4z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"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":["gtp_genl_del_pdp"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"series_id":"b97a46bc-ec45-4e50-a6b8-1c4d7f44560c","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-06 03:04:33 +0000 UTC FinishedAt: 2026-08-06 03:04:38 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"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-workflowcrw4z/series-workflowcrw4z-convert-artifact-2434872425/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowcrw4z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"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":["gtp_genl_del_pdp"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"series_id":"b97a46bc-ec45-4e50-a6b8-1c4d7f44560c","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-06 03:04:43 +0000 UTC FinishedAt: 2026-08-06 03:21:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcrw4z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"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":["gtp_genl_del_pdp"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"series_id":"b97a46bc-ec45-4e50-a6b8-1c4d7f44560c","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-06 03:04:43 +0000 UTC FinishedAt: 2026-08-06 03:21:27 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*df0e9d72-e68b-4484-9def-07af71c0caf2,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-workflowcrw4z/series-workflowcrw4z-convert-artifact-2434872425/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": "0ab28961-08ab-4be6-947e-2fced35d5a31", "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-workflowcrw4z/series-workflowcrw4z-build-action-839190471/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowcrw4z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"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":["gtp_genl_del_pdp"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"series_id":"b97a46bc-ec45-4e50-a6b8-1c4d7f44560c","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-06 03:04:43 +0000 UTC FinishedAt: 2026-08-06 03:21:17 +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:*df0e9d72-e68b-4484-9def-07af71c0caf2,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-workflowcrw4z/series-workflowcrw4z-convert-artifact-2434872425/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": "0ab28961-08ab-4be6-947e-2fced35d5a31", "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-workflowcrw4z/series-workflowcrw4z-build-action-839190471/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowcrw4z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"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":["gtp_genl_del_pdp"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"series_id":"b97a46bc-ec45-4e50-a6b8-1c4d7f44560c","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-06 03:21:27 +0000 UTC FinishedAt: 2026-08-06 03:21:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcrw4z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"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":["gtp_genl_del_pdp"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"series_id":"b97a46bc-ec45-4e50-a6b8-1c4d7f44560c","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-06 03:21:27 +0000 UTC FinishedAt: 2026-08-06 03:21:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcrw4z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"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":["gtp_genl_del_pdp"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"series_id":"b97a46bc-ec45-4e50-a6b8-1c4d7f44560c","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-06 03:21:27 +0000 UTC FinishedAt: 2026-08-06 03:21:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcrw4z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"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":["gtp_genl_del_pdp"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"series_id":"b97a46bc-ec45-4e50-a6b8-1c4d7f44560c","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-06 03:21:27 +0000 UTC FinishedAt: 2026-08-06 03:21:30 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"series_id":"b97a46bc-ec45-4e50-a6b8-1c4d7f44560c","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-workflowcrw4z/series-workflowcrw4z-convert-artifact-3188392444/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowcrw4z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"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":["gtp_genl_del_pdp"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"series_id":"b97a46bc-ec45-4e50-a6b8-1c4d7f44560c","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-06 03:21:37 +0000 UTC FinishedAt: 2026-08-06 03:23:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcrw4z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"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":["gtp_genl_del_pdp"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"series_id":"b97a46bc-ec45-4e50-a6b8-1c4d7f44560c","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-06 03:21:37 +0000 UTC FinishedAt: 2026-08-06 03:23:25 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*0ab28961-08ab-4be6-947e-2fced35d5a31,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-workflowcrw4z/series-workflowcrw4z-build-action-839190471/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-workflowcrw4z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"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":["gtp_genl_del_pdp"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"series_id":"b97a46bc-ec45-4e50-a6b8-1c4d7f44560c","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-06 03:23:35 +0000 UTC FinishedAt: 2026-08-06 03:23:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcrw4z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"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":["gtp_genl_del_pdp"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"series_id":"b97a46bc-ec45-4e50-a6b8-1c4d7f44560c","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-06 03:23:35 +0000 UTC FinishedAt: 2026-08-06 03:23:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcrw4z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"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":["gtp_genl_del_pdp"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"series_id":"b97a46bc-ec45-4e50-a6b8-1c4d7f44560c","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-06 03:23:35 +0000 UTC FinishedAt: 2026-08-06 03:45:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcrw4z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"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":["gtp_genl_del_pdp"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"series_id":"b97a46bc-ec45-4e50-a6b8-1c4d7f44560c","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-06 03:23:35 +0000 UTC FinishedAt: 2026-08-06 03:45:07 +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:*df0e9d72-e68b-4484-9def-07af71c0caf2,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-workflowcrw4z/series-workflowcrw4z-convert-artifact-3188392444/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": "d8695ec7-b353-45d1-9e59-adf31f565f3f", "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-workflowcrw4z/series-workflowcrw4z-build-action-202473048/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowcrw4z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"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":["gtp_genl_del_pdp"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"series_id":"b97a46bc-ec45-4e50-a6b8-1c4d7f44560c","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-06 03:23:35 +0000 UTC FinishedAt: 2026-08-06 03:44:21 +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:*df0e9d72-e68b-4484-9def-07af71c0caf2,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-workflowcrw4z/series-workflowcrw4z-convert-artifact-3188392444/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": "d8695ec7-b353-45d1-9e59-adf31f565f3f", "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-workflowcrw4z/series-workflowcrw4z-build-action-202473048/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowcrw4z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"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":["gtp_genl_del_pdp"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"series_id":"b97a46bc-ec45-4e50-a6b8-1c4d7f44560c","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-06 03:45:07 +0000 UTC FinishedAt: 2026-08-06 03:45:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcrw4z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"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":["gtp_genl_del_pdp"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"series_id":"b97a46bc-ec45-4e50-a6b8-1c4d7f44560c","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-06 03:45:07 +0000 UTC FinishedAt: 2026-08-06 03:45:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcrw4z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"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":["gtp_genl_del_pdp"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"series_id":"b97a46bc-ec45-4e50-a6b8-1c4d7f44560c","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-06 03:45:07 +0000 UTC FinishedAt: 2026-08-06 03:47:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcrw4z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"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":["gtp_genl_del_pdp"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"series_id":"b97a46bc-ec45-4e50-a6b8-1c4d7f44560c","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-06 03:45:07 +0000 UTC FinishedAt: 2026-08-06 03:46:52 +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:*d8695ec7-b353-45d1-9e59-adf31f565f3f,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-workflowcrw4z/series-workflowcrw4z-build-action-202473048/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-workflowcrw4z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"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":["gtp_genl_del_pdp"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"series_id":"b97a46bc-ec45-4e50-a6b8-1c4d7f44560c","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-06 03:47:02 +0000 UTC FinishedAt: 2026-08-06 06:49:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcrw4z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"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":["gtp_genl_del_pdp"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"series_id":"b97a46bc-ec45-4e50-a6b8-1c4d7f44560c","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-06 03:47:02 +0000 UTC FinishedAt: 2026-08-06 06:49:51 +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":["gtp_genl_del_pdp"],"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:*0ab28961-08ab-4be6-947e-2fced35d5a31,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*d8695ec7-b353-45d1-9e59-adf31f565f3f,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-workflowcrw4z/series-workflowcrw4z-build-action-839190471/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-workflowcrw4z/series-workflowcrw4z-build-action-202473048/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowcrw4z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"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":["gtp_genl_del_pdp"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"series_id":"b97a46bc-ec45-4e50-a6b8-1c4d7f44560c","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-06 03:47:02 +0000 UTC FinishedAt: 2026-08-06 03:47:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcrw4z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"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":["gtp_genl_del_pdp"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"series_id":"b97a46bc-ec45-4e50-a6b8-1c4d7f44560c","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-06 03:47:02 +0000 UTC FinishedAt: 2026-08-06 03:47:07 +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":["gtp_genl_del_pdp"],"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-workflowcrw4z/series-workflowcrw4z-convert-artifact-922124485/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowcrw4z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"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":["gtp_genl_del_pdp"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"series_id":"b97a46bc-ec45-4e50-a6b8-1c4d7f44560c","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-06 03:47:02 +0000 UTC FinishedAt: 2026-08-06 03:47:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcrw4z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"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":["gtp_genl_del_pdp"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"series_id":"b97a46bc-ec45-4e50-a6b8-1c4d7f44560c","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-06 03:47:02 +0000 UTC FinishedAt: 2026-08-06 03:47:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcrw4z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"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":["gtp_genl_del_pdp"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"series_id":"b97a46bc-ec45-4e50-a6b8-1c4d7f44560c","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-06 03:47:02 +0000 UTC FinishedAt: 2026-08-06 03:47:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcrw4z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"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":["gtp_genl_del_pdp"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"series_id":"b97a46bc-ec45-4e50-a6b8-1c4d7f44560c","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-06 03:47:12 +0000 UTC FinishedAt: 2026-08-06 06:49:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcrw4z[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"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":["gtp_genl_del_pdp"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"aa2e13ae8d3cbe2c15ef4f7e971b2de0832794aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["GTP"],"series_id":"b97a46bc-ec45-4e50-a6b8-1c4d7f44560c","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-06 03:47:12 +0000 UTC FinishedAt: 2026-08-06 06:49:41 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*0ab28961-08ab-4be6-947e-2fced35d5a31,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*d8695ec7-b353-45d1-9e59-adf31f565f3f,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-workflowcrw4z/series-workflowcrw4z-build-action-839190471/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-workflowcrw4z/series-workflowcrw4z-build-action-202473048/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-workflowcrw4z/series-workflowcrw4z-convert-artifact-922124485/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,}