Name: series-workflow4dhwg Phase: Succeeded StartedAt: 2026-07-11 05:38:51 +0000 UTC FinishedAt: 2026-07-11 08:13:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4dhwg[0] Phase: Succeeded StartedAt: 2026-07-11 05:38:51 +0000 UTC FinishedAt: 2026-07-11 05:57:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4dhwg[0].run-triage Phase: Succeeded StartedAt: 2026-07-11 05:38:51 +0000 UTC FinishedAt: 2026-07-11 05:57: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": "1cd23ca80784223fa2204e16203f754da4e821f8", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BNA", "HIBMCGE", "HINIC3" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "1cd23ca80784223fa2204e16203f754da4e821f8", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BNA", "HIBMCGE", "HINIC3" ], "series_id": "38b16fc0-885d-4c08-a75c-85c6705642a6" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [], "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+CgkJCTx0ZD4yMDI2LzA3LzExIDA1OjU0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JOQSYjMzQ7LAogICAgJiMzNDtISUJNQ0dFJiMzNDssCiAgICAmIzM0O0hJTklDMyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBza2IgbGlmZWN5Y2xlIGlzc3VlcyAocG90ZW50aWFsIFVBRiBvciBkb3VibGUgZnJlZSkgaW4gdGhlIFRYIGVycm9yIHBhdGhzIChETUEgbWFwcGluZyBmYWlsdXJlcykgb2YgdGhlIEJOQSwgSElCTUNHRSwgYW5kIEhJTklDMyBuZXR3b3JrIGRyaXZlcnMuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcmVhY2hhYmxlIGRyaXZlciBjb2RlLiBUaGUgbW9kaWZpZWQgZnVuY3Rpb25zIGFyZSBpbiB0aGUgcGFja2V0IHRyYW5zbWlzc2lvbiBob3QgcGF0aCAobmRvX3N0YXJ0X3htaXQpLCBzbyB0aGV5IGFyZSBvbWl0dGVkIGZyb20gRm9jdXNTeW1ib2xzIHRvIGF2b2lkIHNrZXdpbmcgdGVzdCBkaXN0cmlidXRpb25zLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDA1OjU0PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgODAxYzI0NmM4ZjlhOGI0NTY1ZjIyZDg5N2M5ZmZkYTFkNWFkNDY1N1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgSnVsIDExIDA1OjU0OjU3IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2NhZGUvYm5hL2JuYWQuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2NhZGUvYm5hL2JuYWQuY1xuaW5kZXggOGUxOWFkZDc2NGRiMjguLjhiNzUwMDRiYTdjOWQ0IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvY2FkZS9ibmEvYm5hZC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9jYWRlL2JuYS9ibmFkLmNcbkBAIC0zMDA2LDcgJiM0MzszMDA2LDYgQEAgYm5hZF9zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG4gXHR0eHFlbnQtXHUwMDNlaGRyLndpLnJlc2VydmVkID0gMDtcbiBcdHR4cWVudC1cdTAwM2VoZHIud2kubnVtX3ZlY3RvcnMgPSB2ZWN0b3JzO1xuIFxuLVx0aGVhZF91bm1hcC1cdTAwM2Vza2IgPSBza2I7XG4gXHRoZWFkX3VubWFwLVx1MDAzZW52ZWNzID0gMDtcbiBcbiBcdC8qIFByb2dyYW0gdGhlIHZlY3RvcnMgKi9cbkBAIC0zMDE4LDYgJiM0MzszMDE3LDcgQEAgYm5hZF9zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG4gXHRcdEJOQURfVVBEQVRFX0NUUihibmFkLCB0eF9za2JfbWFwX2ZhaWxlZCk7XG4gXHRcdHJldHVybiBORVRERVZfVFhfT0s7XG4gXHR9XG4mIzQzO1x0aGVhZF91bm1hcC1cdTAwM2Vza2IgPSBza2I7XG4gXHRCTkFfU0VUX0RNQV9BRERSKGRtYV9hZGRyLCBcdTAwMjZ0eHFlbnQtXHUwMDNldmVjdG9yWzBdLmhvc3RfYWRkcik7XG4gXHR0eHFlbnQtXHUwMDNldmVjdG9yWzBdLmxlbmd0aCA9IGh0b25zKGxlbik7XG4gXHRkbWFfdW5tYXBfYWRkcl9zZXQoXHUwMDI2dW5tYXAtXHUwMDNldmVjdG9yc1swXSwgZG1hX2FkZHIsIGRtYV9hZGRyKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGlibWNnZS9oYmdfdHhyeC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX3R4cnguY1xuaW5kZXggMGFlMzE0OTk0Njc2OTMuLjQzODJhZjkzN2UyZTc0IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX3R4cnguY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX3R4cnguY1xuQEAgLTE1NSw2ICYjNDM7MTU1LDcgQEAgbmV0ZGV2X3R4X3QgaGJnX25ldF9zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG4gXHRidWZmZXItXHUwMDNlc2tiID0gc2tiO1xuIFx0YnVmZmVyLVx1MDAzZXNrYl9sZW4gPSBza2ItXHUwMDNlbGVuO1xuIFx0aWYgKHVubGlrZWx5KGhiZ19kbWFfbWFwKGJ1ZmZlcikpKSB7XG4mIzQzO1x0XHRidWZmZXItXHUwMDNlc2tiID0gTlVMTDtcbiBcdFx0ZGV2X2tmcmVlX3NrYl9hbnkoc2tiKTtcbiBcdFx0cmV0dXJuIE5FVERFVl9UWF9PSztcbiBcdH1cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM190eC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguY1xuaW5kZXggOTMwNmJmMDAyMGNhZmUuLjU3MzllY2IwOGQwZDM3IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguY1xuQEAgLTU3OCw4ICYjNDM7NTc4LDYgQEAgc3RhdGljIG5ldGRldl90eF90IGhpbmljM19zZW5kX29uZV9za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYixcbiBcdFx0KndxZV9jb21iby50YXNrID0gdGFzaztcbiBcbiBcdHR4X2luZm8gPSBcdTAwMjZ0eHEtXHUwMDNldHhfaW5mb1twaV07XG4tXHR0eF9pbmZvLVx1MDAzZXNrYiA9IHNrYjtcbi1cdHR4X2luZm8tXHUwMDNld3FlYmJfY250ID0gd3FlYmJfY250O1xuIFxuIFx0ZXJyID0gaGluaWMzX3R4X21hcF9za2IobmV0ZGV2LCBza2IsIHR4cSwgdHhfaW5mbywgXHUwMDI2d3FlX2NvbWJvKTtcbiBcdGlmIChlcnIpIHtcbkBAIC01ODksNiAmIzQzOzU4Nyw5IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBoaW5pYzNfc2VuZF9vbmVfc2tiKHN0cnVjdCBza19idWZmICpza2IsXG4gXHRcdGdvdG8gZXJyX2Ryb3BfcGt0O1xuIFx0fVxuIFxuJiM0MztcdHR4X2luZm8tXHUwMDNlc2tiID0gc2tiO1xuJiM0MztcdHR4X2luZm8tXHUwMDNld3FlYmJfY250ID0gd3FlYmJfY250O1xuJiM0MztcbiBcdG5ldGlmX3N1YnF1ZXVlX3NlbnQobmV0ZGV2LCB0eHEtXHUwMDNlc3EtXHUwMDNlcV9pZCwgc2tiLVx1MDAzZWxlbik7XG4gXHRuZXRpZl9zdWJxdWV1ZV9tYXliZV9zdG9wKG5ldGRldiwgdHhxLVx1MDAzZXNxLVx1MDAzZXFfaWQsXG4gXHRcdFx0XHQgIGhpbmljM193cV9mcmVlX3dxZWJicyhcdTAwMjZ0eHEtXHUwMDNlc3EtXHUwMDNld3EpLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDA1OjU0PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjJtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JOQSYjMzQ7LAogICAgJiMzNDtISUJNQ0dFJiMzNDssCiAgICAmIzM0O0hJTklDMyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBza2IgbGlmZWN5Y2xlIGlzc3VlcyAocG90ZW50aWFsIFVBRiBvciBkb3VibGUgZnJlZSkgaW4gdGhlIFRYIGVycm9yIHBhdGhzIChETUEgbWFwcGluZyBmYWlsdXJlcykgb2YgdGhlIEJOQSwgSElCTUNHRSwgYW5kIEhJTklDMyBuZXR3b3JrIGRyaXZlcnMuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcmVhY2hhYmxlIGRyaXZlciBjb2RlLiBUaGUgbW9kaWZpZWQgZnVuY3Rpb25zIGFyZSBpbiB0aGUgcGFja2V0IHRyYW5zbWlzc2lvbiBob3QgcGF0aCAobmRvX3N0YXJ0X3htaXQpLCBzbyB0aGV5IGFyZSBvbWl0dGVkIGZyb20gRm9jdXNTeW1ib2xzIHRvIGF2b2lkIHNrZXdpbmcgdGVzdCBkaXN0cmlidXRpb25zLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA4MDFjMjQ2YzhmOWE4YjQ1NjVmMjJkODk3YzlmZmRhMWQ1YWQ0NjU3CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFNhdCBKdWwgMTEgMDU6NTQ6NTcgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9jYWRlL2JuYS9ibmFkLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9jYWRlL2JuYS9ibmFkLmMKaW5kZXggOGUxOWFkZDc2NGRiMjguLjhiNzUwMDRiYTdjOWQ0IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9jYWRlL2JuYS9ibmFkLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvY2FkZS9ibmEvYm5hZC5jCkBAIC0zMDA2LDcgJiM0MzszMDA2LDYgQEAgYm5hZF9zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpCiAJdHhxZW50LSZndDtoZHIud2kucmVzZXJ2ZWQgPSAwOwogCXR4cWVudC0mZ3Q7aGRyLndpLm51bV92ZWN0b3JzID0gdmVjdG9yczsKIAotCWhlYWRfdW5tYXAtJmd0O3NrYiA9IHNrYjsKIAloZWFkX3VubWFwLSZndDtudmVjcyA9IDA7CiAKIAkvKiBQcm9ncmFtIHRoZSB2ZWN0b3JzICovCkBAIC0zMDE4LDYgJiM0MzszMDE3LDcgQEAgYm5hZF9zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpCiAJCUJOQURfVVBEQVRFX0NUUihibmFkLCB0eF9za2JfbWFwX2ZhaWxlZCk7CiAJCXJldHVybiBORVRERVZfVFhfT0s7CiAJfQomIzQzOwloZWFkX3VubWFwLSZndDtza2IgPSBza2I7CiAJQk5BX1NFVF9ETUFfQUREUihkbWFfYWRkciwgJmFtcDt0eHFlbnQtJmd0O3ZlY3RvclswXS5ob3N0X2FkZHIpOwogCXR4cWVudC0mZ3Q7dmVjdG9yWzBdLmxlbmd0aCA9IGh0b25zKGxlbik7CiAJZG1hX3VubWFwX2FkZHJfc2V0KCZhbXA7dW5tYXAtJmd0O3ZlY3RvcnNbMF0sIGRtYV9hZGRyLCBkbWFfYWRkcik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGlibWNnZS9oYmdfdHhyeC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX3R4cnguYwppbmRleCAwYWUzMTQ5OTQ2NzY5My4uNDM4MmFmOTM3ZTJlNzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9oaWJtY2dlL2hiZ190eHJ4LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX3R4cnguYwpAQCAtMTU1LDYgJiM0MzsxNTUsNyBAQCBuZXRkZXZfdHhfdCBoYmdfbmV0X3N0YXJ0X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldikKIAlidWZmZXItJmd0O3NrYiA9IHNrYjsKIAlidWZmZXItJmd0O3NrYl9sZW4gPSBza2ItJmd0O2xlbjsKIAlpZiAodW5saWtlbHkoaGJnX2RtYV9tYXAoYnVmZmVyKSkpIHsKJiM0MzsJCWJ1ZmZlci0mZ3Q7c2tiID0gTlVMTDsKIAkJZGV2X2tmcmVlX3NrYl9hbnkoc2tiKTsKIAkJcmV0dXJuIE5FVERFVl9UWF9PSzsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM190eC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguYwppbmRleCA5MzA2YmYwMDIwY2FmZS4uNTczOWVjYjA4ZDBkMzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX3R4LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguYwpAQCAtNTc4LDggJiM0Mzs1NzgsNiBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgaGluaWMzX3NlbmRfb25lX3NrYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkqd3FlX2NvbWJvLnRhc2sgPSB0YXNrOwogCiAJdHhfaW5mbyA9ICZhbXA7dHhxLSZndDt0eF9pbmZvW3BpXTsKLQl0eF9pbmZvLSZndDtza2IgPSBza2I7Ci0JdHhfaW5mby0mZ3Q7d3FlYmJfY250ID0gd3FlYmJfY250OwogCiAJZXJyID0gaGluaWMzX3R4X21hcF9za2IobmV0ZGV2LCBza2IsIHR4cSwgdHhfaW5mbywgJmFtcDt3cWVfY29tYm8pOwogCWlmIChlcnIpIHsKQEAgLTU4OSw2ICYjNDM7NTg3LDkgQEAgc3RhdGljIG5ldGRldl90eF90IGhpbmljM19zZW5kX29uZV9za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJZ290byBlcnJfZHJvcF9wa3Q7CiAJfQogCiYjNDM7CXR4X2luZm8tJmd0O3NrYiA9IHNrYjsKJiM0MzsJdHhfaW5mby0mZ3Q7d3FlYmJfY250ID0gd3FlYmJfY250OwomIzQzOwogCW5ldGlmX3N1YnF1ZXVlX3NlbnQobmV0ZGV2LCB0eHEtJmd0O3NxLSZndDtxX2lkLCBza2ItJmd0O2xlbik7CiAJbmV0aWZfc3VicXVldWVfbWF5YmVfc3RvcChuZXRkZXYsIHR4cS0mZ3Q7c3EtJmd0O3FfaWQsCiAJCQkJICBoaW5pYzNfd3FfZnJlZV93cWViYnMoJmFtcDt0eHEtJmd0O3NxLSZndDt3cSksCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDA1OjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI3NTAKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAyOTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBFdGhlcm5ldCBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSBoYXZlIGEgcGF0Y2ggaGVyZSB0aGF0JiMzOTtzIHRvdWNoaW5nIHRocmVlIEV0aGVybmV0IGRyaXZlcnM6IGBibmFkLmNgIChCcm9jYWRlKSwgYGhiZ190eHJ4LmNgIChIaVNpbGljb24pLCBhbmQgYGhpbmljM190eC5jYCAoSHVhd2VpKS4gVGhlIGNvcmUgb2YgdGhlIGZpeCBzZWVtcyB0byBiZSBhYm91dCBETUEgbWFwcGluZyBhbmQgZW5zdXJpbmcgdGhlIGBza2JgIChzb2NrZXQgYnVmZmVyKSBwb2ludGVyIGlzIGhhbmRsZWQgY29ycmVjdGx5IHRvIHByZXZlbnQgdXNlLWFmdGVyLWZyZWUgb3IgZG91YmxlLWZyZWUgc2NlbmFyaW9zLiBFc3NlbnRpYWxseSwgdGhleSYjMzk7cmUgbWFraW5nIHN1cmUgYHNrYmAgaXMgb25seSB2YWxpZCBhZnRlciB0aGUgRE1BIG1hcHBpbmcgc3VjY2VlZHMsIG9yIGNsZWFyZWQgb24gZmFpbHVyZS4gU29saWQgcHJhY3RpY2UsIGJ1dCB0aGUgcmVhbCBxdWVzdGlvbiBpcyBob3cgd2UgdmFsaWRhdGUgdGhpcyBmaXggZWZmZWN0aXZlbHkuCgpNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgY2FuIHdlIGZ1enogdGhlc2UgZHJpdmVycyB0byByZWFsbHkgc3RyZXNzLXRlc3QgdGhlIGNoYW5nZXM/IFRoZSBjYXRjaCB3aXRoIHRoZXNlIHNwZWNpZmljIGhhcmR3YXJlIGRyaXZlcnMgaXMgdGhhdCBmdXp6aW5nIGRpcmVjdGx5IGluIHRoZWlyICYjMzQ7bmF0aXZlJiMzNDsgZW52aXJvbm1lbnQgaXMgdG91Z2guIFR5cGljYWxseSwgeW91JiMzOTtkIG5lZWQgc29mdHdhcmUgZW11bGF0aW9uIG9yIGEgdmlydHVhbCBzZXR1cCB3aXRoIHRvb2xzIGxpa2UgYHZldGhgLCBgdHVuYCwgb3IgYHRhcGAuIEhvd2V2ZXIsIHRoZXNlIGFyZSBzcGVjaWFsaXplZCBoYXJkd2FyZSBhbmQgYXJlIG5vdCBlYXNpbHkgZnV6emVkLgoKV2FpdCBhIG1pbnV0ZS4uLnN5emthbGxlciEgU3l6a2FsbGVyIGlzIHByZXR0eSBnb29kIHdpdGggbmV0d29yayBkcml2ZXJzLCBlc3BlY2lhbGx5IGlmIHRoZXkgYXJlIFBDSSBkZXZpY2VzLiBJdCB1c2VzIFBDSSBmdXp6aW5nIHZpYSBgc3l6X3BjaV9kZXZpY2VgLiBCdXQsIEkgbmVlZCB0byBjb25maXJtIHdoZXRoZXIgdGhlc2UgYXJlIFBDSSBkcml2ZXJzIG9yIHBsYXRmb3JtIGRyaXZlcnMuIEJyb2NhZGUgQk5BLCBJIHJlbWVtYmVyIHRoYXQgb25lIGlzIGRlZmluaXRlbHkgUENJLiBOb3csIHdoYXQgYWJvdXQgSGlTaWxpY29uJiMzOTtzIGhpYm1jZ2U/IEFuZCwgaXMgSHVhd2VpIGhpbmljMyBhIFBDSSBkZXZpY2UsIHRvbz8KClJpZ2h0LCB0aGUgbmV4dCBzdGVwIGlzIHRvIGRpdmUgaW50byB0aGUgS2NvbmZpZyBmaWxlcy4gVGhhdCYjMzk7bGwgcXVpY2tseSB0ZWxsIG1lIHRoZSBkcml2ZXIgdHlwZSBhbmQgaG93IHRoZXNlIGFyZSBidWlsdCBhbmQgZXhwb3NlZCB0byB0aGUgc3lzdGVtLiBUaGF0JiMzOTtzIHdoZXJlIEkgbmVlZCB0byBzdGFydC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAwNTo1NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgQk5BJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvY2FkZS9ibmEvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9jYWRlL2JuYS9LY29uZmlnLTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9jYWRlL2JuYS9LY29uZmlnOjY6Y29uZmlnIEJOQVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvY2FkZS9ibmEvS2NvbmZpZy03LVx0dHJpc3RhdGUgXCYjMzQ7UUxvZ2ljIEJSLXNlcmllcyAxMDEwLzEwMjAvMTg2MCAxMEdiIEV0aGVybmV0IERyaXZlciBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMDU6NTU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzU0OAoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDE1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKktjb25maWcgRGl2ZSBmb3IgaGlibWNnZSBhbmQgaGluaWMzKioKCkFscmlnaHQsIHRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5LiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZGl2ZSBzdHJhaWdodCBpbnRvIEtjb25maWcuIEkgbmVlZCB0byBxdWlja2x5IGFzY2VydGFpbiB0aGUgc3RhdHVzIG9mIGBoaWJtY2dlYCBhbmQgYGhpbmljM2AuIFRoaXMgaXNuJiMzOTt0IGp1c3QgYWJvdXQgcHJlc2VuY2Ugb3IgYWJzZW5jZTsgSSYjMzk7bSBsb29raW5nIGZvciB0aGUgd2hvbGUgcGljdHVyZS4gSSYjMzk7bSB0aGlua2luZyBhYm91dDoKCiogICAqKkRlcGVuZGVuY2llczoqKiBXaGF0IG90aGVyIGNvbmZpZ3VyYXRpb25zIG5lZWQgdG8gYmUgc2V0IG9yIGFyZSBhZmZlY3RlZCBpZiBlaXRoZXIgb2YgdGhlc2UgYXJlIGVuYWJsZWQ/IEFyZSB0aGVyZSBhbnkgb2J2aW91cyBjb25mbGljdHMgSSBuZWVkIHRvIGJlIGF3YXJlIG9mPyBBcmUgdGhlcmUgc3BlY2lmaWMgaGFyZHdhcmUgZmVhdHVyZXMgSSBzaG91bGQgbG9vayBvdXQgZm9yPwoqICAgKipEZWZhdWx0IFZhbHVlczoqKiBXaGF0IGFyZSB0aGUgZGVmYXVsdCB2YWx1ZXMsIGFuZCBkbyB0aGV5IG1ha2Ugc2Vuc2UgZ2l2ZW4gdGhlIGN1cnJlbnQgYXJjaGl0ZWN0dXJlIGFuZCBpbnRlbmRlZCB1c2UgY2FzZXM/IEFueSBvYnZpb3VzIHJlZ3Jlc3Npb25zIGhlcmU/CiogICAqKkRvY3VtZW50YXRpb24gTGlua3M6KiogRG9lcyB0aGUgS2NvbmZpZyBlbnRyeSBwb2ludCB0byBjbGVhciBkb2N1bWVudGF0aW9uLCBvciBzaG91bGQgSSBzdGFydCBwdXR0aW5nIHRoZSBwaWVjZXMgdG9nZXRoZXIgbXlzZWxmPyBBbnkgY29tbWVudHMgdGhhdCBwcm92aWRlIGtleSBoaW50cz8KKiAgICoqQnVpbGQtVGltZSBCZWhhdmlvcjoqKiBBcmUgdGhlcmUgY29uZGl0aW9uYWwgYnVpbGQgb3B0aW9ucz8gV2hhdCBhcmUgdGhlIGltcGxpY2F0aW9ucyBvZiBkaWZmZXJlbnQgY29uZmlndXJhdGlvbiBzZXR0aW5ncz8gSG93IGRvZXMgdGhpcyBpbXBhY3QgdGhlIGJ1aWxkIGVudmlyb25tZW50PwoqICAgKipMb2NhdGlvbjoqKiBXaGVyZSBhcmUgdGhlc2UgY29uZmlndXJhdGlvbnMgZGVmaW5lZCBpbiB0aGUgb3ZlcmFsbCBidWlsZCBzdHJ1Y3R1cmU/IElzIGl0IGVhc3kgdG8gZmluZCB0aGVtPyBBcmUgdGhleSBpbiBhIGxvZ2ljYWwgcGxhY2U/CiogICAqKkhpc3Rvcnk6KiogSXMgdGhlcmUgYW55IGhpc3Rvcnkgb2YgdGhlc2UgY29uZmlndXJhdGlvbnM/IFdoYXQgd2VyZSB0aGUgcHJldmlvdXMgY29uZmlndXJhdGlvbnM/IEhhdmUgdGhlcmUgYmVlbiBhbnkgcmVwb3J0ZWQgaXNzdWVzIHRoYXQgd291bGQgcHJvdmlkZSBjb250ZXh0PwoKQmFzaWNhbGx5LCBJIG5lZWQgYSBjb21wcmVoZW5zaXZlIG92ZXJ2aWV3IHRvIHVuZGVyc3RhbmQgaG93IHRoZXNlIG1vZHVsZXMgYXJlIGludGVncmF0ZWQuIFRoaXMgd2lsbCBhbGxvdyBtZSB0byBhc3Nlc3MgdGhlIGN1cnJlbnQgc3RhdGUgYW5kIHByb3ZpZGUgcmVsaWFibGUgcmVjb21tZW5kYXRpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDA1OjU1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEhJQk1DR0UmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGlibWNnZS9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAwNTo1NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNjQxCgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAwNTo1NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgSElOSUMzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvS2NvbmZpZy01LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9LY29uZmlnOjY6Y29uZmlnIEhJTklDM1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9LY29uZmlnLTctXHR0cmlzdGF0ZSBcJiMzNDtIdWF3ZWkgM3JkIGdlbmVyYXRpb24gbmV0d29yayBhZGFwdGVycyAoSElOSUMzKSBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMDU6NTU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzc3OQoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDE4OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBQYXRjaDogTmV0d29yayBEcml2ZXIgTWVtb3J5IE1hbmFnZW1lbnQqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGl0IHNlZW1zIHRvIHRhcmdldCBzb21lIGNyaXRpY2FsIG1lbW9yeSBtYW5hZ2VtZW50IGlzc3VlcyBhY3Jvc3MgYSBmZXcgbmV0d29yayBkcml2ZXJzLiBTcGVjaWZpY2FsbHksIGl0JiMzOTtzIHRvdWNoaW5nIHRocmVlIGZpbGVzOiBgYm5hZC5jYCAodGhhdCYjMzk7cyB0aGUgQnJvY2FkZSBkcml2ZXIsIHJpZ2h0PyksIGBoYmdfdHhyeC5jYCBmb3IgdGhlIGhpc2lsaWNvbiwgYW5kIGBoaW5pYzNfdHguY2AsIHRoZSBIdWF3ZWkgaGluaWMzIGRyaXZlci4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsICYjMzQ7QWgsIHNvdW5kcyBsaWtlIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggdGhlIGNsYXNzaWMgJiMzOTt1c2UtYWZ0ZXItZnJlZSYjMzk7IHNjZW5hcmlvIG9yIHBvdGVudGlhbGx5IG1lbW9yeSBsZWFrcyYjMzQ7LgoKVGhlIGNvcmUgb2YgdGhlIHByb2JsZW0gaXMgY2xlYXI6IGFuIGBza2JgIChzb2NrZXQgYnVmZmVyKSBpcyBiZWluZyBhc3NpZ25lZCB0byBhIGRhdGEgc3RydWN0dXJlICpiZWZvcmUqIHRoZSBETUEgbWFwcGluZyBvcGVyYXRpb24uIElmIHRoYXQgRE1BIG1hcHBpbmcgZmFpbHMsIHRoZSBgc2tiYCBnZXRzIGZyZWVkLCBhcyBpdCBzaG91bGQsIGJ1dCB0aGUgcG9pbnRlciB3aXRoaW4gdGhlIGRhdGEgc3RydWN0dXJlIHJlbWFpbnMgZGFuZ2xpbmcuIFRoYXQmIzM5O3MganVzdCBhc2tpbmcgZm9yIHRyb3VibGUgZG93biB0aGUgbGluZS4gV2UgYWxsIGtub3cgaG93IHVucHJlZGljdGFibGUgdGhvc2UgZGFuZ2xpbmcgcG9pbnRlcnMgY2FuIGJlLiBUaGUgZml4IGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQsIHRoYW5rZnVsbHksIGVpdGhlciByZS1hcnJhbmdpbmcgdGhlIHNlcXVlbmNlLCBvciBjbGVhciB0aGUgZGFuZ2xpbmcgcG9pbnRlciBpbiBjYXNlIG9mIERNQSBmYWlsdXJlcy4KCk5vdywgSSYjMzk7bSB0aGlua2luZywgbGV0JiMzOTtzIGp1c3QgbWFrZSBzdXJlIHRoZXJlIGFyZSBubyBjb25maWcgY2hhbmdlcyBmb3IgaGlibWNnZS4uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAwNTo1NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgSElCTUNHRSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9LY29uZmlnPTE0NT1lbmRpZiAjIEFSTSB8fCBBUk02NCB8fCBDT01QSUxFX1RFU1RcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9LY29uZmlnLTE0Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9LY29uZmlnOjE0Nzpjb25maWcgSElCTUNHRVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL0tjb25maWctMTQ4LVx0dHJpc3RhdGUgXCYjMzQ7SGlzaWxpY29uIEJNQyBHaWdhYml0IEV0aGVybmV0IERldmljZSBTdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDA1OjU2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ2OTUKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAyODcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBSZWFjaGFiaWxpdHkgb2YgSGFyZHdhcmUgRHJpdmVycyBmb3IgRnV6emluZyoqCgpPa2F5LCBzbyB0aGVzZSBhcmUgZGVmaW5pdGVseSBoYXJkd2FyZSBkcml2ZXJzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBTeXprYWxsZXIgdXN1YWxseSBkb2VzbiYjMzk7dCB0YXJnZXQgdGhlc2UgZGlyZWN0bHkgdW5sZXNzIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYSBzcGVjaWFsaXplZCBQQ0kgb3IgcGxhdGZvcm0gZGV2aWNlIGZ1enppbmcgc2V0dXAuIEJ1dCB0aGUgcHJvbXB0IHNwZWNpZmljYWxseSBtZW50aW9ucyBjb2RlIHBhdGhzIHRoYXQgYXJlIGluYWNjZXNzaWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aXRoIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlLgoKU2luY2UgdGhlc2UgZHJpdmVycyDigJMgQnJvY2FkZSwgSGlTaWxpY29uIEJNQywgSHVhd2VpIEhJTklDMyDigJMgYXJlIGFsbCBwaHlzaWNhbCBoYXJkd2FyZSwgdGhleSYjMzk7cmUgZ2VuZXJhbGx5IG91dCBvZiByZWFjaCBpbiBRRU1VL0dDRSB1bmxlc3MgYSBkZWRpY2F0ZWQgZW11bGF0b3IgZXhpc3RzLiBBbmQgdGhlcmUmIzM5O3Mgbm8gc3RhbmRhcmQgZW11bGF0b3IgZm9yICp0aGVzZSogcGFydGljdWxhciBOSUNzIGluIFFFTVUsIGFzIGZhciBhcyBJIGtub3cuCgpXYWl0LCBTeXprYWxsZXIgKmRvZXMqIGhhdmUgYSBQQ0kgZnV6emVyIHRoYXQgY2FuIGVtdWxhdGUgUENJIGRldmljZXMuLi4gZG9lcyBpdCBoYW5kbGUgdGhlc2Ugc3BlY2lmaWMgb25lcz8gV2VsbCwgU3l6a2FsbGVyJiMzOTtzIFBDSSBmdXp6ZXIgKmNhbiogaW5qZWN0IGFyYml0cmFyeSBQQ0kgZGV2aWNlcywgYnV0IGl0JiMzOTtzIGltcG9ydGFudCB0byByZW1lbWJlciBpdCBkb2VzbiYjMzk7dCBkbyBhIGZ1bGwgaGFyZHdhcmUgZW11bGF0aW9uLCBpdCBqdXN0IHByb3ZpZGVzIHRoZSBNTUlPL1BJTy9ETUEgcmVzcG9uc2VzLiBTdGlsbCwgdGhhdCYjMzk7cyBzb21ldGhpbmcuCgpIb3dldmVyLCBteSB1c3VhbCBhc3N1bXB0aW9uIGlzIHRoYXQgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVycyBsaWtlIHRoZXNlLCBldGhlcm5ldC9icm9jYWRlLCBldGhlcm5ldC9oaXNpbGljb24sIGV0aGVybmV0L2h1YXdlaSwgYXJlIG9mZiBsaW1pdHMgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHVubGVzcyB0aGVyZSYjMzk7cyBlaXRoZXIgYSBrbm93biBlbXVsYXRvciBvciB0aGV5IHVzZSB2aXJ0dWFsIG9yIFVTQiBkZXZpY2VzLgoKTGV0JiMzOTtzIHF1aWNrbHkgY29uZmlybSB3aGV0aGVyIHRoZXNlIGFyZSBQQ0kgb3IgcGxhdGZvcm0gZGV2aWNlcy4gQk5BLi4uIGlzIGRlZmluaXRlbHkgUENJLiBISU5JQzMgaXMgYWxzbyBQQ0kuIEhJQk1DR0UuLi4gSSAqdGhpbmsqIHRoYXQmIzM5O3MgcGxhdGZvcm0sIGJ1dCBJIHNob3VsZCBkb3VibGUtY2hlY2sgdGhhdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMDU6NTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttb2R1bGVfcGxhdGZvcm1fZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMDU6NTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTM3NwoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDA1OjU2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cGxhdGZvcm1fZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMDU6NTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDY0MwoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDA1OjU2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3BjaV9kcml2ZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGlibWNnZS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX2Vyci5jPTE4ND1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9lcnJvcl9oYW5kbGVycyBoYmdfcGNpX2Vycl9oYW5kbGVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9oaWJtY2dlL2hiZ19lcnIuYy0xOTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGlibWNnZS9oYmdfZXJyLmM6MTkxOnZvaWQgaGJnX3NldF9wY2lfZXJyX2hhbmRsZXIoc3RydWN0IHBjaV9kcml2ZXIgKnBkcnYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGlibWNnZS9oYmdfZXJyLmMtMTkyLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGlibWNnZS9oYmdfZXJyLmgtOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9oaWJtY2dlL2hiZ19lcnIuaDo5OnZvaWQgaGJnX3NldF9wY2lfZXJyX2hhbmRsZXIoc3RydWN0IHBjaV9kcml2ZXIgKnBkcnYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX2Vyci5oLTEwLWludCBoYmdfcmVzZXQoc3RydWN0IGhiZ19wcml2ICpwcml2KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGlibWNnZS9oYmdfbWFpbi5jPTQ5OD1NT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgaGJnX3BjaV90YmwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX21haW4uYy00OTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGlibWNnZS9oYmdfbWFpbi5jOjUwMDpzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgaGJnX2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9oaWJtY2dlL2hiZ19tYWluLmMtNTAxLVx0Lm5hbWVcdFx0PSBcJiMzNDtoaWJtY2dlXCYjMzQ7LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAwNTo1NjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MTA5CgkJCQkJCQlvdXRwdXQ6IDEzMQoJCQkJCQkJdGhvdWdodHM6IDEyNzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHlzaXMgb2YgTmV0d29yayBEcml2ZXIgUGF0Y2ggZm9yIEZ1enppbmcqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyBtb2RpZnlpbmcgdGhyZWUgbmV0d29yayBkcml2ZXJzOiBgYm5hZC5jYCAoQnJvY2FkZSksIGBoYmdfdHhyeC5jYCAoSGlzaWxpY29uKSwgYW5kIGBoaW5pYzNfdHguY2AgKEh1YXdlaSkuIFRoZSBjb3JlIG9mIHRoZSBjaGFuZ2UgcmV2b2x2ZXMgYXJvdW5kIGZpeGluZyBhIHVzZS1hZnRlci1mcmVlIG9yIG1lbW9yeSBsZWFrIGluIHRoZSB0cmFuc21pdCBwYXRoLiBFc3NlbnRpYWxseSwgdGhleSYjMzk7cmUgZGVsYXlpbmcgdGhlIGFzc2lnbm1lbnQgb2YgdGhlIGBza2JgIHRvIGludGVybmFsIHRyYWNraW5nIHN0cnVjdHVyZXMgdW50aWwgKmFmdGVyKiB0aGUgRE1BIG1hcHBpbmcgaXMgc3VjY2Vzc2Z1bCwgb3IgY2xlYXJpbmcgaXQgaWYgdGhlIG1hcHBpbmcgZmFpbHMuIFRoaXMgcHJldmVudHMgZG91YmxlIGZyZWVzIG9yIGFjY2Vzc2VzIHRvIGZyZWVkIG1lbW9yeSBpbiBlcnJvciBjb25kaXRpb25zLCBzcGVjaWZpY2FsbHkgZHVyaW5nIERNQSBmYWlsdXJlcy4KClRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgd2l0aGluIHRoZSBjcml0aWNhbCBUWCBwYXRoIG9mIHRoZXNlIG5ldHdvcmsgZHJpdmVycy4gU2luY2UgdGhleSBhcmUgUENJIG5ldHdvcmsgZHJpdmVycywgdGhleSBhcmUgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cywgbGlrZSBRRU1VLCB0aHJvdWdoIFBDSSBlbXVsYXRpb24gb3IgZnV6emluZyB0ZWNobmlxdWVzIHVzaW5nIHN5emthbGxlciwgc3BlY2lmaWNhbGx5IGBzeXpfcGNpX2RldmljZV9hZGRgLiBUaGUga2V5IGNvbmZpZ3MgdG8gZW5hYmxlIGhlcmUgYXJlIGBDT05GSUdfQk5BYCwgYENPTkZJR19ISUJNQ0dFYCwgYW5kIGBDT05GSUdfSElOSUMzYCwgd2hpY2ggYXJlIGFsbCB2ZXJpZmllZCBhcyB0aGUgY29ycmVjdCBjb25maWd1cmF0aW9ucyBiYXNlZCBvbiB0aGVpciByZXNwZWN0aXZlIEtjb25maWcgZmlsZXMuCgpOb3csIHRoZSBpbnRlcmVzdGluZyBwYXJ0IGlzIHRoZSBgRm9jdXNTeW1ib2xzYC4gVGhlIHByb21wdCBzcGVjaWZpY2FsbHkgYWR2aXNlcyBhZ2FpbnN0IGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gYXZvaWQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4gTXkgZmlyc3QgaW5zdGluY3Qgd2FzIHRvIGluY2x1ZGUgdGhlIG1vZGlmaWVkIGZ1bmN0aW9uczogYGJuYWRfc3RhcnRfeG1pdGAsIGBoYmdfbmV0X3N0YXJ0X3htaXRgLCBhbmQgYGhpbmljM19zZW5kX29uZV9za2JgLiBCdXQsIGBibmFkX3N0YXJ0X3htaXRgIGFuZCBgaGJnX25ldF9zdGFydF94bWl0YCBhcmUgYWN0dWFsbHkgdGhlIGBuZG9fc3RhcnRfeG1pdGAgZnVuY3Rpb25zLCB3aGljaCBpcyAqdGhlKiBob3QgcGF0aCBmb3IgbmV0d29yayBkcml2ZXJzLiBTaW5jZSB0aGUgcGF0Y2ggKm9ubHkqIG1vZGlmaWVzIHRoaXMgZnVuY3Rpb24gKG9yIGZ1bmN0aW9ucyBjYWxsZWQgYnkgaXQpLCBsaXN0aW5nIHRoZXNlIHdvdWxkIGVmZmVjdGl2ZWx5IGp1c3QgZm9jdXMgb24gdGhlIGNvcmUgcGFja2V0IHRyYW5zbWl0IG1lY2hhbmlzbSwgd2hpY2ggaXMgYWxyZWFkeSBoZWF2aWx5IGZ1enplZCBpbiBhbnkgbmV0d29yayBzZXR1cC4gV2hpbGUgdGhlIGJ1ZyBpcyBpbiB0aGUgRE1BIGVycm9yIHBhdGgsIGZ1enppbmcgYG5kb19zdGFydF94bWl0YCBkaXJlY3RseSBtYXkgbm90IGVmZmVjdGl2ZWx5IHRhcmdldCB0aGUgc3BlY2lmaWMgZXJyb3IgY29uZGl0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoaXMgcGF0Y2guIEFuZCBzaW5jZSBgaGluaWMzX3NlbmRfb25lX3NrYmAgaXMgY2FsbGVkIGJ5IHRoZSBob3QgcGF0aCBgaGluaWMzX3htaXRfZnJhbWVgLCB3aGljaCBpcyBgbmRvX3N0YXJ0X3htaXRgLCB0aGUgc2FtZSBsb2dpYyBhcHBsaWVzLgoKU28sIGV2ZW4gdGhvdWdoIHRoZSBwYXRjaCAqZG9lcyogbW9kaWZ5IHRoZXNlIHNwZWNpZmljIGZ1bmN0aW9ucywgSSYjMzk7bSBnb2luZyB0byBmb2xsb3cgdGhlIHByb21wdCYjMzk7cyByZWNvbW1lbmRhdGlvbiBhbmQgbGVhdmUgYEZvY3VzU3ltYm9sc2AgZW1wdHkuIFRoaXMgaXMgbGlrZWx5IHRoZSBiZXR0ZXIgY2hvaWNlLCB0byBhdm9pZCBiaWFzaW5nIHRoZSBmdXp6aW5nIHRvd2FyZHMgYSBnZW5lcmljIGhvdC1wYXRoLCBldmVuIGlmIHRoYXQmIzM5O3Mgd2hlcmUgdGhlIGNvZGUgbW9kaWZpY2F0aW9uIGlzLiBCeSBsZWF2aW5nIGl0IGVtcHR5LCB3ZSBob3BlIHRoZSBmdXp6ZXIgd2lsbCBiZSBtb3JlIGZvY3VzZWQgb24gZXJyb3IgcGF0aHMuCgpUaGVyZSYjMzk7cyBubyByZWFzb24gKm5vdCogdG8gZnV6eiB0aGlzLiBJdCYjMzk7cyBhIGZ1bmN0aW9uYWwgZml4IGZvciBhIHBvdGVudGlhbCBtZW1vcnkgc2FmZXR5IGlzc3VlIGR1cmluZyBETUEgbWFwcGluZyBmYWlsdXJlcywgd2hpY2ggY291bGQgaW50cm9kdWNlIGNyaXRpY2FsIGJ1Z3MuCgpUaGVyZWZvcmUsIEkmIzM5O20gc2V0dGluZzoKCiogICBgV29ydGhGdXp6aW5nYDogYHRydWVgCiogICBgRW5hYmxlQ29uZmlnc2A6IGBbJiMzNDtCTkEmIzM0OywgJiMzNDtISUJNQ0dFJiMzNDssICYjMzQ7SElOSUMzJiMzNDtdYAoqICAgYEZvY3VzU3ltYm9sc2A6IGBbXWAKClJlYXNvbmluZzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgc2tiIGxpZmVjeWNsZSBpc3N1ZXMgKHBvdGVudGlhbCBVQUYgb3IgZG91YmxlIGZyZWUpIGluIHRoZSBUWCBlcnJvciBwYXRocyAoRE1BIG1hcHBpbmcgZmFpbHVyZXMpIG9mIHRoZSBCTkEsIEhJQk1DR0UsIGFuZCBISU5JQzMgbmV0d29yayBkcml2ZXJzLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHJlYWNoYWJsZSBkcml2ZXIgY29kZS4gU3BlY2lmaWNhbGx5LCBhdm9pZGluZyB0aGUgbGlzdGluZyBvZiBob3QtcGF0aCBmdW5jdGlvbnMsIGFzIHRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIGhvdC1wYXRoIGZ1bmN0aW9ucyBvciB0aG9zZSBjYWxsZWQgYnkgdGhlbS4mIzM0OwoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAwNTo1NzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7Qk5BJiMzNDssCiAgICAmIzM0O0hJQk1DR0UmIzM0OywKICAgICYjMzQ7SElOSUMzJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIHNrYiBsaWZlY3ljbGUgaXNzdWVzIChwb3RlbnRpYWwgVUFGIG9yIGRvdWJsZSBmcmVlKSBpbiB0aGUgVFggZXJyb3IgcGF0aHMgKERNQSBtYXBwaW5nIGZhaWx1cmVzKSBvZiB0aGUgQk5BLCBISUJNQ0dFLCBhbmQgSElOSUMzIG5ldHdvcmsgZHJpdmVycy4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiByZWFjaGFibGUgZHJpdmVyIGNvZGUuIFRoZSBtb2RpZmllZCBmdW5jdGlvbnMgYXJlIGluIHRoZSBwYWNrZXQgdHJhbnNtaXNzaW9uIGhvdCBwYXRoIChuZG9fc3RhcnRfeG1pdCksIHNvIHRoZXkgYXJlIG9taXR0ZWQgZnJvbSBGb2N1c1N5bWJvbHMgdG8gYXZvaWQgc2tld2luZyB0ZXN0IGRpc3RyaWJ1dGlvbnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JOQSYjMzQ7LAogICAgJiMzNDtISUJNQ0dFJiMzNDssCiAgICAmIzM0O0hJTklDMyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBza2IgbGlmZWN5Y2xlIGlzc3VlcyAocG90ZW50aWFsIFVBRiBvciBkb3VibGUgZnJlZSkgaW4gdGhlIFRYIGVycm9yIHBhdGhzIChETUEgbWFwcGluZyBmYWlsdXJlcykgb2YgdGhlIEJOQSwgSElCTUNHRSwgYW5kIEhJTklDMyBuZXR3b3JrIGRyaXZlcnMuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcmVhY2hhYmxlIGRyaXZlciBjb2RlLiBUaGUgbW9kaWZpZWQgZnVuY3Rpb25zIGFyZSBpbiB0aGUgcGFja2V0IHRyYW5zbWlzc2lvbiBob3QgcGF0aCAobmRvX3N0YXJ0X3htaXQpLCBzbyB0aGV5IGFyZSBvbWl0dGVkIGZyb20gRm9jdXNTeW1ib2xzIHRvIGF2b2lkIHNrZXdpbmcgdGVzdCBkaXN0cmlidXRpb25zLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMTFUMDU6NTQ6NTguNjk0Njg1OTk4WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTMxOTMyNjkyMzkxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJOQVwiLFxuICAgIFwiSElCTUNHRVwiLFxuICAgIFwiSElOSUMzXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIHNrYiBsaWZlY3ljbGUgaXNzdWVzIChwb3RlbnRpYWwgVUFGIG9yIGRvdWJsZSBmcmVlKSBpbiB0aGUgVFggZXJyb3IgcGF0aHMgKERNQSBtYXBwaW5nIGZhaWx1cmVzKSBvZiB0aGUgQk5BLCBISUJNQ0dFLCBhbmQgSElOSUMzIG5ldHdvcmsgZHJpdmVycy4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiByZWFjaGFibGUgZHJpdmVyIGNvZGUuIFRoZSBtb2RpZmllZCBmdW5jdGlvbnMgYXJlIGluIHRoZSBwYWNrZXQgdHJhbnNtaXNzaW9uIGhvdCBwYXRoIChuZG9fc3RhcnRfeG1pdCksIHNvIHRoZXkgYXJlIG9taXR0ZWQgZnJvbSBGb2N1c1N5bWJvbHMgdG8gYXZvaWQgc2tld2luZyB0ZXN0IGRpc3RyaWJ1dGlvbnMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDA1OjU0OjU4LjY5NDY5Mjg0OFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTg2NDgwMDg3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgODAxYzI0NmM4ZjlhOGI0NTY1ZjIyZDg5N2M5ZmZkYTFkNWFkNDY1N1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU2F0IEp1bCAxMSAwNTo1NDo1NyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9jYWRlL2JuYS9ibmFkLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9jYWRlL2JuYS9ibmFkLmNcXG5pbmRleCA4ZTE5YWRkNzY0ZGIyOC4uOGI3NTAwNGJhN2M5ZDQgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvY2FkZS9ibmEvYm5hZC5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvY2FkZS9ibmEvYm5hZC5jXFxuQEAgLTMwMDYsNyArMzAwNiw2IEBAIGJuYWRfc3RhcnRfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbiBcXHR0eHFlbnQtXFx1MDAzZWhkci53aS5yZXNlcnZlZCA9IDA7XFxuIFxcdHR4cWVudC1cXHUwMDNlaGRyLndpLm51bV92ZWN0b3JzID0gdmVjdG9ycztcXG4gXFxuLVxcdGhlYWRfdW5tYXAtXFx1MDAzZXNrYiA9IHNrYjtcXG4gXFx0aGVhZF91bm1hcC1cXHUwMDNlbnZlY3MgPSAwO1xcbiBcXG4gXFx0LyogUHJvZ3JhbSB0aGUgdmVjdG9ycyAqL1xcbkBAIC0zMDE4LDYgKzMwMTcsNyBAQCBibmFkX3N0YXJ0X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG4gXFx0XFx0Qk5BRF9VUERBVEVfQ1RSKGJuYWQsIHR4X3NrYl9tYXBfZmFpbGVkKTtcXG4gXFx0XFx0cmV0dXJuIE5FVERFVl9UWF9PSztcXG4gXFx0fVxcbitcXHRoZWFkX3VubWFwLVxcdTAwM2Vza2IgPSBza2I7XFxuIFxcdEJOQV9TRVRfRE1BX0FERFIoZG1hX2FkZHIsIFxcdTAwMjZ0eHFlbnQtXFx1MDAzZXZlY3RvclswXS5ob3N0X2FkZHIpO1xcbiBcXHR0eHFlbnQtXFx1MDAzZXZlY3RvclswXS5sZW5ndGggPSBodG9ucyhsZW4pO1xcbiBcXHRkbWFfdW5tYXBfYWRkcl9zZXQoXFx1MDAyNnVubWFwLVxcdTAwM2V2ZWN0b3JzWzBdLCBkbWFfYWRkciwgZG1hX2FkZHIpO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGlibWNnZS9oYmdfdHhyeC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX3R4cnguY1xcbmluZGV4IDBhZTMxNDk5NDY3NjkzLi40MzgyYWY5MzdlMmU3NCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGlibWNnZS9oYmdfdHhyeC5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX3R4cnguY1xcbkBAIC0xNTUsNiArMTU1LDcgQEAgbmV0ZGV2X3R4X3QgaGJnX25ldF9zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXFxuIFxcdGJ1ZmZlci1cXHUwMDNlc2tiID0gc2tiO1xcbiBcXHRidWZmZXItXFx1MDAzZXNrYl9sZW4gPSBza2ItXFx1MDAzZWxlbjtcXG4gXFx0aWYgKHVubGlrZWx5KGhiZ19kbWFfbWFwKGJ1ZmZlcikpKSB7XFxuK1xcdFxcdGJ1ZmZlci1cXHUwMDNlc2tiID0gTlVMTDtcXG4gXFx0XFx0ZGV2X2tmcmVlX3NrYl9hbnkoc2tiKTtcXG4gXFx0XFx0cmV0dXJuIE5FVERFVl9UWF9PSztcXG4gXFx0fVxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM190eC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguY1xcbmluZGV4IDkzMDZiZjAwMjBjYWZlLi41NzM5ZWNiMDhkMGQzNyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM190eC5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguY1xcbkBAIC01NzgsOCArNTc4LDYgQEAgc3RhdGljIG5ldGRldl90eF90IGhpbmljM19zZW5kX29uZV9za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4gXFx0XFx0KndxZV9jb21iby50YXNrID0gdGFzaztcXG4gXFxuIFxcdHR4X2luZm8gPSBcXHUwMDI2dHhxLVxcdTAwM2V0eF9pbmZvW3BpXTtcXG4tXFx0dHhfaW5mby1cXHUwMDNlc2tiID0gc2tiO1xcbi1cXHR0eF9pbmZvLVxcdTAwM2V3cWViYl9jbnQgPSB3cWViYl9jbnQ7XFxuIFxcbiBcXHRlcnIgPSBoaW5pYzNfdHhfbWFwX3NrYihuZXRkZXYsIHNrYiwgdHhxLCB0eF9pbmZvLCBcXHUwMDI2d3FlX2NvbWJvKTtcXG4gXFx0aWYgKGVycikge1xcbkBAIC01ODksNiArNTg3LDkgQEAgc3RhdGljIG5ldGRldl90eF90IGhpbmljM19zZW5kX29uZV9za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4gXFx0XFx0Z290byBlcnJfZHJvcF9wa3Q7XFxuIFxcdH1cXG4gXFxuK1xcdHR4X2luZm8tXFx1MDAzZXNrYiA9IHNrYjtcXG4rXFx0dHhfaW5mby1cXHUwMDNld3FlYmJfY250ID0gd3FlYmJfY250O1xcbitcXG4gXFx0bmV0aWZfc3VicXVldWVfc2VudChuZXRkZXYsIHR4cS1cXHUwMDNlc3EtXFx1MDAzZXFfaWQsIHNrYi1cXHUwMDNlbGVuKTtcXG4gXFx0bmV0aWZfc3VicXVldWVfbWF5YmVfc3RvcChuZXRkZXYsIHR4cS1cXHUwMDNlc3EtXFx1MDAzZXFfaWQsXFxuIFxcdFxcdFxcdFxcdCAgaGluaWMzX3dxX2ZyZWVfd3FlYmJzKFxcdTAwMjZ0eHEtXFx1MDAzZXNxLVxcdTAwM2V3cSksXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDA1OjU0OjU5LjI4MTg2OTcwNloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTMxMzQ1NTAwMTgzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJOQVwiLFxuICAgIFwiSElCTUNHRVwiLFxuICAgIFwiSElOSUMzXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIHNrYiBsaWZlY3ljbGUgaXNzdWVzIChwb3RlbnRpYWwgVUFGIG9yIGRvdWJsZSBmcmVlKSBpbiB0aGUgVFggZXJyb3IgcGF0aHMgKERNQSBtYXBwaW5nIGZhaWx1cmVzKSBvZiB0aGUgQk5BLCBISUJNQ0dFLCBhbmQgSElOSUMzIG5ldHdvcmsgZHJpdmVycy4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiByZWFjaGFibGUgZHJpdmVyIGNvZGUuIFRoZSBtb2RpZmllZCBmdW5jdGlvbnMgYXJlIGluIHRoZSBwYWNrZXQgdHJhbnNtaXNzaW9uIGhvdCBwYXRoIChuZG9fc3RhcnRfeG1pdCksIHNvIHRoZXkgYXJlIG9taXR0ZWQgZnJvbSBGb2N1c1N5bWJvbHMgdG8gYXZvaWQgc2tld2luZyB0ZXN0IGRpc3RyaWJ1dGlvbnMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgODAxYzI0NmM4ZjlhOGI0NTY1ZjIyZDg5N2M5ZmZkYTFkNWFkNDY1N1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgSnVsIDExIDA1OjU0OjU3IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvY2FkZS9ibmEvYm5hZC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvY2FkZS9ibmEvYm5hZC5jXG5pbmRleCA4ZTE5YWRkNzY0ZGIyOC4uOGI3NTAwNGJhN2M5ZDQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9jYWRlL2JuYS9ibmFkLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2NhZGUvYm5hL2JuYWQuY1xuQEAgLTMwMDYsNyArMzAwNiw2IEBAIGJuYWRfc3RhcnRfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuIFx0dHhxZW50LVx1MDAzZWhkci53aS5yZXNlcnZlZCA9IDA7XG4gXHR0eHFlbnQtXHUwMDNlaGRyLndpLm51bV92ZWN0b3JzID0gdmVjdG9ycztcbiBcbi1cdGhlYWRfdW5tYXAtXHUwMDNlc2tiID0gc2tiO1xuIFx0aGVhZF91bm1hcC1cdTAwM2VudmVjcyA9IDA7XG4gXG4gXHQvKiBQcm9ncmFtIHRoZSB2ZWN0b3JzICovXG5AQCAtMzAxOCw2ICszMDE3LDcgQEAgYm5hZF9zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG4gXHRcdEJOQURfVVBEQVRFX0NUUihibmFkLCB0eF9za2JfbWFwX2ZhaWxlZCk7XG4gXHRcdHJldHVybiBORVRERVZfVFhfT0s7XG4gXHR9XG4rXHRoZWFkX3VubWFwLVx1MDAzZXNrYiA9IHNrYjtcbiBcdEJOQV9TRVRfRE1BX0FERFIoZG1hX2FkZHIsIFx1MDAyNnR4cWVudC1cdTAwM2V2ZWN0b3JbMF0uaG9zdF9hZGRyKTtcbiBcdHR4cWVudC1cdTAwM2V2ZWN0b3JbMF0ubGVuZ3RoID0gaHRvbnMobGVuKTtcbiBcdGRtYV91bm1hcF9hZGRyX3NldChcdTAwMjZ1bm1hcC1cdTAwM2V2ZWN0b3JzWzBdLCBkbWFfYWRkciwgZG1hX2FkZHIpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9oaWJtY2dlL2hiZ190eHJ4LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGlibWNnZS9oYmdfdHhyeC5jXG5pbmRleCAwYWUzMTQ5OTQ2NzY5My4uNDM4MmFmOTM3ZTJlNzQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGlibWNnZS9oYmdfdHhyeC5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGlibWNnZS9oYmdfdHhyeC5jXG5AQCAtMTU1LDYgKzE1NSw3IEBAIG5ldGRldl90eF90IGhiZ19uZXRfc3RhcnRfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuIFx0YnVmZmVyLVx1MDAzZXNrYiA9IHNrYjtcbiBcdGJ1ZmZlci1cdTAwM2Vza2JfbGVuID0gc2tiLVx1MDAzZWxlbjtcbiBcdGlmICh1bmxpa2VseShoYmdfZG1hX21hcChidWZmZXIpKSkge1xuK1x0XHRidWZmZXItXHUwMDNlc2tiID0gTlVMTDtcbiBcdFx0ZGV2X2tmcmVlX3NrYl9hbnkoc2tiKTtcbiBcdFx0cmV0dXJuIE5FVERFVl9UWF9PSztcbiBcdH1cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM190eC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguY1xuaW5kZXggOTMwNmJmMDAyMGNhZmUuLjU3MzllY2IwOGQwZDM3IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguY1xuQEAgLTU3OCw4ICs1NzgsNiBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgaGluaWMzX3NlbmRfb25lX3NrYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0XHQqd3FlX2NvbWJvLnRhc2sgPSB0YXNrO1xuIFxuIFx0dHhfaW5mbyA9IFx1MDAyNnR4cS1cdTAwM2V0eF9pbmZvW3BpXTtcbi1cdHR4X2luZm8tXHUwMDNlc2tiID0gc2tiO1xuLVx0dHhfaW5mby1cdTAwM2V3cWViYl9jbnQgPSB3cWViYl9jbnQ7XG4gXG4gXHRlcnIgPSBoaW5pYzNfdHhfbWFwX3NrYihuZXRkZXYsIHNrYiwgdHhxLCB0eF9pbmZvLCBcdTAwMjZ3cWVfY29tYm8pO1xuIFx0aWYgKGVycikge1xuQEAgLTU4OSw2ICs1ODcsOSBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgaGluaWMzX3NlbmRfb25lX3NrYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0XHRnb3RvIGVycl9kcm9wX3BrdDtcbiBcdH1cbiBcbitcdHR4X2luZm8tXHUwMDNlc2tiID0gc2tiO1xuK1x0dHhfaW5mby1cdTAwM2V3cWViYl9jbnQgPSB3cWViYl9jbnQ7XG4rXG4gXHRuZXRpZl9zdWJxdWV1ZV9zZW50KG5ldGRldiwgdHhxLVx1MDAzZXNxLVx1MDAzZXFfaWQsIHNrYi1cdTAwM2VsZW4pO1xuIFx0bmV0aWZfc3VicXVldWVfbWF5YmVfc3RvcChuZXRkZXYsIHR4cS1cdTAwM2VzcS1cdTAwM2VxX2lkLFxuIFx0XHRcdFx0ICBoaW5pYzNfd3FfZnJlZV93cWViYnMoXHUwMDI2dHhxLVx1MDAzZXNxLVx1MDAzZXdxKSxcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDA1OjU0OjU5LjI4MTg3MTMyNloiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE0MjMxNTk5NDA2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgRXRoZXJuZXQgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSBoYXZlIGEgcGF0Y2ggaGVyZSB0aGF0J3MgdG91Y2hpbmcgdGhyZWUgRXRoZXJuZXQgZHJpdmVyczogYGJuYWQuY2AgKEJyb2NhZGUpLCBgaGJnX3R4cnguY2AgKEhpU2lsaWNvbiksIGFuZCBgaGluaWMzX3R4LmNgIChIdWF3ZWkpLiBUaGUgY29yZSBvZiB0aGUgZml4IHNlZW1zIHRvIGJlIGFib3V0IERNQSBtYXBwaW5nIGFuZCBlbnN1cmluZyB0aGUgYHNrYmAgKHNvY2tldCBidWZmZXIpIHBvaW50ZXIgaXMgaGFuZGxlZCBjb3JyZWN0bHkgdG8gcHJldmVudCB1c2UtYWZ0ZXItZnJlZSBvciBkb3VibGUtZnJlZSBzY2VuYXJpb3MuIEVzc2VudGlhbGx5LCB0aGV5J3JlIG1ha2luZyBzdXJlIGBza2JgIGlzIG9ubHkgdmFsaWQgYWZ0ZXIgdGhlIERNQSBtYXBwaW5nIHN1Y2NlZWRzLCBvciBjbGVhcmVkIG9uIGZhaWx1cmUuIFNvbGlkIHByYWN0aWNlLCBidXQgdGhlIHJlYWwgcXVlc3Rpb24gaXMgaG93IHdlIHZhbGlkYXRlIHRoaXMgZml4IGVmZmVjdGl2ZWx5LlxuXG5NeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgY2FuIHdlIGZ1enogdGhlc2UgZHJpdmVycyB0byByZWFsbHkgc3RyZXNzLXRlc3QgdGhlIGNoYW5nZXM/IFRoZSBjYXRjaCB3aXRoIHRoZXNlIHNwZWNpZmljIGhhcmR3YXJlIGRyaXZlcnMgaXMgdGhhdCBmdXp6aW5nIGRpcmVjdGx5IGluIHRoZWlyIFwibmF0aXZlXCIgZW52aXJvbm1lbnQgaXMgdG91Z2guIFR5cGljYWxseSwgeW91J2QgbmVlZCBzb2Z0d2FyZSBlbXVsYXRpb24gb3IgYSB2aXJ0dWFsIHNldHVwIHdpdGggdG9vbHMgbGlrZSBgdmV0aGAsIGB0dW5gLCBvciBgdGFwYC4gSG93ZXZlciwgdGhlc2UgYXJlIHNwZWNpYWxpemVkIGhhcmR3YXJlIGFuZCBhcmUgbm90IGVhc2lseSBmdXp6ZWQuXG5cbldhaXQgYSBtaW51dGUuLi5zeXprYWxsZXIhIFN5emthbGxlciBpcyBwcmV0dHkgZ29vZCB3aXRoIG5ldHdvcmsgZHJpdmVycywgZXNwZWNpYWxseSBpZiB0aGV5IGFyZSBQQ0kgZGV2aWNlcy4gSXQgdXNlcyBQQ0kgZnV6emluZyB2aWEgYHN5el9wY2lfZGV2aWNlYC4gQnV0LCBJIG5lZWQgdG8gY29uZmlybSB3aGV0aGVyIHRoZXNlIGFyZSBQQ0kgZHJpdmVycyBvciBwbGF0Zm9ybSBkcml2ZXJzLiBCcm9jYWRlIEJOQSwgSSByZW1lbWJlciB0aGF0IG9uZSBpcyBkZWZpbml0ZWx5IFBDSS4gTm93LCB3aGF0IGFib3V0IEhpU2lsaWNvbidzIGhpYm1jZ2U/IEFuZCwgaXMgSHVhd2VpIGhpbmljMyBhIFBDSSBkZXZpY2UsIHRvbz9cblxuUmlnaHQsIHRoZSBuZXh0IHN0ZXAgaXMgdG8gZGl2ZSBpbnRvIHRoZSBLY29uZmlnIGZpbGVzLiBUaGF0J2xsIHF1aWNrbHkgdGVsbCBtZSB0aGUgZHJpdmVyIHR5cGUgYW5kIGhvdyB0aGVzZSBhcmUgYnVpbHQgYW5kIGV4cG9zZWQgdG8gdGhlIHN5c3RlbS4gVGhhdCdzIHdoZXJlIEkgbmVlZCB0byBzdGFydC5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjc1MCwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI5NiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDA1OjU1OjEzLjUxMzQ3MzEwMVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNTMwOTk4NzMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEJOQVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9jYWRlL2JuYS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2NhZGUvYm5hL0tjb25maWctNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9jYWRlL2JuYS9LY29uZmlnOjY6Y29uZmlnIEJOQVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2NhZGUvYm5hL0tjb25maWctNy1cXHR0cmlzdGF0ZSBcXFwiUUxvZ2ljIEJSLXNlcmllcyAxMDEwLzEwMjAvMTg2MCAxMEdiIEV0aGVybmV0IERyaXZlciBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQwNTo1NToxMy44NjY2MDg1OTRaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDkxMjgxNTg4NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqS2NvbmZpZyBEaXZlIGZvciBoaWJtY2dlIGFuZCBoaW5pYzMqKlxuXG5BbHJpZ2h0LCB0aW1lIHRvIGdldCBteSBoYW5kcyBkaXJ0eS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGRpdmUgc3RyYWlnaHQgaW50byBLY29uZmlnLiBJIG5lZWQgdG8gcXVpY2tseSBhc2NlcnRhaW4gdGhlIHN0YXR1cyBvZiBgaGlibWNnZWAgYW5kIGBoaW5pYzNgLiBUaGlzIGlzbid0IGp1c3QgYWJvdXQgcHJlc2VuY2Ugb3IgYWJzZW5jZTsgSSdtIGxvb2tpbmcgZm9yIHRoZSB3aG9sZSBwaWN0dXJlLiBJJ20gdGhpbmtpbmcgYWJvdXQ6XG5cbiogICAqKkRlcGVuZGVuY2llczoqKiBXaGF0IG90aGVyIGNvbmZpZ3VyYXRpb25zIG5lZWQgdG8gYmUgc2V0IG9yIGFyZSBhZmZlY3RlZCBpZiBlaXRoZXIgb2YgdGhlc2UgYXJlIGVuYWJsZWQ/IEFyZSB0aGVyZSBhbnkgb2J2aW91cyBjb25mbGljdHMgSSBuZWVkIHRvIGJlIGF3YXJlIG9mPyBBcmUgdGhlcmUgc3BlY2lmaWMgaGFyZHdhcmUgZmVhdHVyZXMgSSBzaG91bGQgbG9vayBvdXQgZm9yP1xuKiAgICoqRGVmYXVsdCBWYWx1ZXM6KiogV2hhdCBhcmUgdGhlIGRlZmF1bHQgdmFsdWVzLCBhbmQgZG8gdGhleSBtYWtlIHNlbnNlIGdpdmVuIHRoZSBjdXJyZW50IGFyY2hpdGVjdHVyZSBhbmQgaW50ZW5kZWQgdXNlIGNhc2VzPyBBbnkgb2J2aW91cyByZWdyZXNzaW9ucyBoZXJlP1xuKiAgICoqRG9jdW1lbnRhdGlvbiBMaW5rczoqKiBEb2VzIHRoZSBLY29uZmlnIGVudHJ5IHBvaW50IHRvIGNsZWFyIGRvY3VtZW50YXRpb24sIG9yIHNob3VsZCBJIHN0YXJ0IHB1dHRpbmcgdGhlIHBpZWNlcyB0b2dldGhlciBteXNlbGY/IEFueSBjb21tZW50cyB0aGF0IHByb3ZpZGUga2V5IGhpbnRzP1xuKiAgICoqQnVpbGQtVGltZSBCZWhhdmlvcjoqKiBBcmUgdGhlcmUgY29uZGl0aW9uYWwgYnVpbGQgb3B0aW9ucz8gV2hhdCBhcmUgdGhlIGltcGxpY2F0aW9ucyBvZiBkaWZmZXJlbnQgY29uZmlndXJhdGlvbiBzZXR0aW5ncz8gSG93IGRvZXMgdGhpcyBpbXBhY3QgdGhlIGJ1aWxkIGVudmlyb25tZW50P1xuKiAgICoqTG9jYXRpb246KiogV2hlcmUgYXJlIHRoZXNlIGNvbmZpZ3VyYXRpb25zIGRlZmluZWQgaW4gdGhlIG92ZXJhbGwgYnVpbGQgc3RydWN0dXJlPyBJcyBpdCBlYXN5IHRvIGZpbmQgdGhlbT8gQXJlIHRoZXkgaW4gYSBsb2dpY2FsIHBsYWNlP1xuKiAgICoqSGlzdG9yeToqKiBJcyB0aGVyZSBhbnkgaGlzdG9yeSBvZiB0aGVzZSBjb25maWd1cmF0aW9ucz8gV2hhdCB3ZXJlIHRoZSBwcmV2aW91cyBjb25maWd1cmF0aW9ucz8gSGF2ZSB0aGVyZSBiZWVuIGFueSByZXBvcnRlZCBpc3N1ZXMgdGhhdCB3b3VsZCBwcm92aWRlIGNvbnRleHQ/XG5cbkJhc2ljYWxseSwgSSBuZWVkIGEgY29tcHJlaGVuc2l2ZSBvdmVydmlldyB0byB1bmRlcnN0YW5kIGhvdyB0aGVzZSBtb2R1bGVzIGFyZSBpbnRlZ3JhdGVkLiBUaGlzIHdpbGwgYWxsb3cgbWUgdG8gYXNzZXNzIHRoZSBjdXJyZW50IHN0YXRlIGFuZCBwcm92aWRlIHJlbGlhYmxlIHJlY29tbWVuZGF0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzU0OCwiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDA1OjU1OjI0Ljc3OTQyNjQzMVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDI4MjQyMjcsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBISUJNQ0dFXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9oaWJtY2dlL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDA1OjU1OjI0LjkyMjI1OTcxOFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE2MDI5NDkzODc3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MzY0MSwiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTFUMDU6NTU6NDAuOTUxNzU2NDg1WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMzMzM5ODM0MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgSElOSUMzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL0tjb25maWctNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL0tjb25maWc6Njpjb25maWcgSElOSUMzXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9LY29uZmlnLTctXFx0dHJpc3RhdGUgXFxcIkh1YXdlaSAzcmQgZ2VuZXJhdGlvbiBuZXR3b3JrIGFkYXB0ZXJzIChISU5JQzMpIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDA1OjU1OjQxLjI4NTE2MDQ0OFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE5Njc5NjY4OTQwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFBhdGNoOiBOZXR3b3JrIERyaXZlciBNZW1vcnkgTWFuYWdlbWVudCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGl0IHNlZW1zIHRvIHRhcmdldCBzb21lIGNyaXRpY2FsIG1lbW9yeSBtYW5hZ2VtZW50IGlzc3VlcyBhY3Jvc3MgYSBmZXcgbmV0d29yayBkcml2ZXJzLiBTcGVjaWZpY2FsbHksIGl0J3MgdG91Y2hpbmcgdGhyZWUgZmlsZXM6IGBibmFkLmNgICh0aGF0J3MgdGhlIEJyb2NhZGUgZHJpdmVyLCByaWdodD8pLCBgaGJnX3R4cnguY2AgZm9yIHRoZSBoaXNpbGljb24sIGFuZCBgaGluaWMzX3R4LmNgLCB0aGUgSHVhd2VpIGhpbmljMyBkcml2ZXIuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcIkFoLCBzb3VuZHMgbGlrZSB3ZSdyZSBkZWFsaW5nIHdpdGggdGhlIGNsYXNzaWMgJ3VzZS1hZnRlci1mcmVlJyBzY2VuYXJpbyBvciBwb3RlbnRpYWxseSBtZW1vcnkgbGVha3NcIi5cblxuVGhlIGNvcmUgb2YgdGhlIHByb2JsZW0gaXMgY2xlYXI6IGFuIGBza2JgIChzb2NrZXQgYnVmZmVyKSBpcyBiZWluZyBhc3NpZ25lZCB0byBhIGRhdGEgc3RydWN0dXJlICpiZWZvcmUqIHRoZSBETUEgbWFwcGluZyBvcGVyYXRpb24uIElmIHRoYXQgRE1BIG1hcHBpbmcgZmFpbHMsIHRoZSBgc2tiYCBnZXRzIGZyZWVkLCBhcyBpdCBzaG91bGQsIGJ1dCB0aGUgcG9pbnRlciB3aXRoaW4gdGhlIGRhdGEgc3RydWN0dXJlIHJlbWFpbnMgZGFuZ2xpbmcuIFRoYXQncyBqdXN0IGFza2luZyBmb3IgdHJvdWJsZSBkb3duIHRoZSBsaW5lLiBXZSBhbGwga25vdyBob3cgdW5wcmVkaWN0YWJsZSB0aG9zZSBkYW5nbGluZyBwb2ludGVycyBjYW4gYmUuIFRoZSBmaXggaXMgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZCwgdGhhbmtmdWxseSwgZWl0aGVyIHJlLWFycmFuZ2luZyB0aGUgc2VxdWVuY2UsIG9yIGNsZWFyIHRoZSBkYW5nbGluZyBwb2ludGVyIGluIGNhc2Ugb2YgRE1BIGZhaWx1cmVzLlxuXG5Ob3csIEknbSB0aGlua2luZywgbGV0J3MganVzdCBtYWtlIHN1cmUgdGhlcmUgYXJlIG5vIGNvbmZpZyBjaGFuZ2VzIGZvciBoaWJtY2dlLi4uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM3NzksIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxODgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTFUMDU6NTY6MDAuOTY0ODMxMzE3WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzY2OTcwMzIyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBISUJNQ0dFXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9LY29uZmlnPTE0NT1lbmRpZiAjIEFSTSB8fCBBUk02NCB8fCBDT01QSUxFX1RFU1RcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vS2NvbmZpZy0xNDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL0tjb25maWc6MTQ3OmNvbmZpZyBISUJNQ0dFXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL0tjb25maWctMTQ4LVxcdHRyaXN0YXRlIFxcXCJIaXNpbGljb24gQk1DIEdpZ2FiaXQgRXRoZXJuZXQgRGV2aWNlIFN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDA1OjU2OjAyLjczMTgwNzkzWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg0NDU0MjEwMTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBSZWFjaGFiaWxpdHkgb2YgSGFyZHdhcmUgRHJpdmVycyBmb3IgRnV6emluZyoqXG5cbk9rYXksIHNvIHRoZXNlIGFyZSBkZWZpbml0ZWx5IGhhcmR3YXJlIGRyaXZlcnMuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IFN5emthbGxlciB1c3VhbGx5IGRvZXNuJ3QgdGFyZ2V0IHRoZXNlIGRpcmVjdGx5IHVubGVzcyB3ZSdyZSBkZWFsaW5nIHdpdGggYSBzcGVjaWFsaXplZCBQQ0kgb3IgcGxhdGZvcm0gZGV2aWNlIGZ1enppbmcgc2V0dXAuIEJ1dCB0aGUgcHJvbXB0IHNwZWNpZmljYWxseSBtZW50aW9ucyBjb2RlIHBhdGhzIHRoYXQgYXJlIGluYWNjZXNzaWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aXRoIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlLlxuXG5TaW5jZSB0aGVzZSBkcml2ZXJzIOKAkyBCcm9jYWRlLCBIaVNpbGljb24gQk1DLCBIdWF3ZWkgSElOSUMzIOKAkyBhcmUgYWxsIHBoeXNpY2FsIGhhcmR3YXJlLCB0aGV5J3JlIGdlbmVyYWxseSBvdXQgb2YgcmVhY2ggaW4gUUVNVS9HQ0UgdW5sZXNzIGEgZGVkaWNhdGVkIGVtdWxhdG9yIGV4aXN0cy4gQW5kIHRoZXJlJ3Mgbm8gc3RhbmRhcmQgZW11bGF0b3IgZm9yICp0aGVzZSogcGFydGljdWxhciBOSUNzIGluIFFFTVUsIGFzIGZhciBhcyBJIGtub3cuXG5cbldhaXQsIFN5emthbGxlciAqZG9lcyogaGF2ZSBhIFBDSSBmdXp6ZXIgdGhhdCBjYW4gZW11bGF0ZSBQQ0kgZGV2aWNlcy4uLiBkb2VzIGl0IGhhbmRsZSB0aGVzZSBzcGVjaWZpYyBvbmVzPyBXZWxsLCBTeXprYWxsZXIncyBQQ0kgZnV6emVyICpjYW4qIGluamVjdCBhcmJpdHJhcnkgUENJIGRldmljZXMsIGJ1dCBpdCdzIGltcG9ydGFudCB0byByZW1lbWJlciBpdCBkb2Vzbid0IGRvIGEgZnVsbCBoYXJkd2FyZSBlbXVsYXRpb24sIGl0IGp1c3QgcHJvdmlkZXMgdGhlIE1NSU8vUElPL0RNQSByZXNwb25zZXMuIFN0aWxsLCB0aGF0J3Mgc29tZXRoaW5nLlxuXG5Ib3dldmVyLCBteSB1c3VhbCBhc3N1bXB0aW9uIGlzIHRoYXQgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVycyBsaWtlIHRoZXNlLCBldGhlcm5ldC9icm9jYWRlLCBldGhlcm5ldC9oaXNpbGljb24sIGV0aGVybmV0L2h1YXdlaSwgYXJlIG9mZiBsaW1pdHMgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHVubGVzcyB0aGVyZSdzIGVpdGhlciBhIGtub3duIGVtdWxhdG9yIG9yIHRoZXkgdXNlIHZpcnR1YWwgb3IgVVNCIGRldmljZXMuXG5cbkxldCdzIHF1aWNrbHkgY29uZmlybSB3aGV0aGVyIHRoZXNlIGFyZSBQQ0kgb3IgcGxhdGZvcm0gZGV2aWNlcy4gQk5BLi4uIGlzIGRlZmluaXRlbHkgUENJLiBISU5JQzMgaXMgYWxzbyBQQ0kuIEhJQk1DR0UuLi4gSSAqdGhpbmsqIHRoYXQncyBwbGF0Zm9ybSwgYnV0IEkgc2hvdWxkIGRvdWJsZS1jaGVjayB0aGF0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0Njk1LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mjg3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDA1OjU2OjExLjE3NzIzMDk0OVoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDM3MjMwMDkxLCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtb2R1bGVfcGxhdGZvcm1fZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9oaWJtY2dlL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTFUMDU6NTY6MTEuNjE0NDY4NjNaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODUzODkzMjYwOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjUzNzcsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDA1OjU2OjIwLjE1MzQwMzg1OFoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzU3MDIyMzIyLCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwbGF0Zm9ybV9kcml2ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQwNTo1NjoyMC41MTA0MzUwMVoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNTU1NjkwODAwNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjQ2NDMsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDA1OjU2OjQ2LjA2NzM0NjEwNFoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDM4ODA4MDAwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInBjaV9kcml2ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9oaWJtY2dlL2hiZ19lcnIuYz0xODQ9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZXJyb3JfaGFuZGxlcnMgaGJnX3BjaV9lcnJfaGFuZGxlciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9oaWJtY2dlL2hiZ19lcnIuYy0xOTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX2Vyci5jOjE5MTp2b2lkIGhiZ19zZXRfcGNpX2Vycl9oYW5kbGVyKHN0cnVjdCBwY2lfZHJpdmVyICpwZHJ2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9oaWJtY2dlL2hiZ19lcnIuYy0xOTIte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX2Vyci5oLTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX2Vyci5oOjk6dm9pZCBoYmdfc2V0X3BjaV9lcnJfaGFuZGxlcihzdHJ1Y3QgcGNpX2RyaXZlciAqcGRydik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX2Vyci5oLTEwLWludCBoYmdfcmVzZXQoc3RydWN0IGhiZ19wcml2ICpwcml2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9oaWJtY2dlL2hiZ19tYWluLmM9NDk4PU1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBoYmdfcGNpX3RibCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX21haW4uYy00OTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX21haW4uYzo1MDA6c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGhiZ19kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX21haW4uYy01MDEtXFx0Lm5hbWVcXHRcXHQ9IFxcXCJoaWJtY2dlXFxcIixcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTFUMDU6NTY6NDYuNTA2MTYwNzM1WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjIzNzc3ODc2MjkyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5c2lzIG9mIE5ldHdvcmsgRHJpdmVyIFBhdGNoIGZvciBGdXp6aW5nKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyBtb2RpZnlpbmcgdGhyZWUgbmV0d29yayBkcml2ZXJzOiBgYm5hZC5jYCAoQnJvY2FkZSksIGBoYmdfdHhyeC5jYCAoSGlzaWxpY29uKSwgYW5kIGBoaW5pYzNfdHguY2AgKEh1YXdlaSkuIFRoZSBjb3JlIG9mIHRoZSBjaGFuZ2UgcmV2b2x2ZXMgYXJvdW5kIGZpeGluZyBhIHVzZS1hZnRlci1mcmVlIG9yIG1lbW9yeSBsZWFrIGluIHRoZSB0cmFuc21pdCBwYXRoLiBFc3NlbnRpYWxseSwgdGhleSdyZSBkZWxheWluZyB0aGUgYXNzaWdubWVudCBvZiB0aGUgYHNrYmAgdG8gaW50ZXJuYWwgdHJhY2tpbmcgc3RydWN0dXJlcyB1bnRpbCAqYWZ0ZXIqIHRoZSBETUEgbWFwcGluZyBpcyBzdWNjZXNzZnVsLCBvciBjbGVhcmluZyBpdCBpZiB0aGUgbWFwcGluZyBmYWlscy4gVGhpcyBwcmV2ZW50cyBkb3VibGUgZnJlZXMgb3IgYWNjZXNzZXMgdG8gZnJlZWQgbWVtb3J5IGluIGVycm9yIGNvbmRpdGlvbnMsIHNwZWNpZmljYWxseSBkdXJpbmcgRE1BIGZhaWx1cmVzLlxuXG5UaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIHdpdGhpbiB0aGUgY3JpdGljYWwgVFggcGF0aCBvZiB0aGVzZSBuZXR3b3JrIGRyaXZlcnMuIFNpbmNlIHRoZXkgYXJlIFBDSSBuZXR3b3JrIGRyaXZlcnMsIHRoZXkgYXJlIHJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMsIGxpa2UgUUVNVSwgdGhyb3VnaCBQQ0kgZW11bGF0aW9uIG9yIGZ1enppbmcgdGVjaG5pcXVlcyB1c2luZyBzeXprYWxsZXIsIHNwZWNpZmljYWxseSBgc3l6X3BjaV9kZXZpY2VfYWRkYC4gVGhlIGtleSBjb25maWdzIHRvIGVuYWJsZSBoZXJlIGFyZSBgQ09ORklHX0JOQWAsIGBDT05GSUdfSElCTUNHRWAsIGFuZCBgQ09ORklHX0hJTklDM2AsIHdoaWNoIGFyZSBhbGwgdmVyaWZpZWQgYXMgdGhlIGNvcnJlY3QgY29uZmlndXJhdGlvbnMgYmFzZWQgb24gdGhlaXIgcmVzcGVjdGl2ZSBLY29uZmlnIGZpbGVzLlxuXG5Ob3csIHRoZSBpbnRlcmVzdGluZyBwYXJ0IGlzIHRoZSBgRm9jdXNTeW1ib2xzYC4gVGhlIHByb21wdCBzcGVjaWZpY2FsbHkgYWR2aXNlcyBhZ2FpbnN0IGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gYXZvaWQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4gTXkgZmlyc3QgaW5zdGluY3Qgd2FzIHRvIGluY2x1ZGUgdGhlIG1vZGlmaWVkIGZ1bmN0aW9uczogYGJuYWRfc3RhcnRfeG1pdGAsIGBoYmdfbmV0X3N0YXJ0X3htaXRgLCBhbmQgYGhpbmljM19zZW5kX29uZV9za2JgLiBCdXQsIGBibmFkX3N0YXJ0X3htaXRgIGFuZCBgaGJnX25ldF9zdGFydF94bWl0YCBhcmUgYWN0dWFsbHkgdGhlIGBuZG9fc3RhcnRfeG1pdGAgZnVuY3Rpb25zLCB3aGljaCBpcyAqdGhlKiBob3QgcGF0aCBmb3IgbmV0d29yayBkcml2ZXJzLiBTaW5jZSB0aGUgcGF0Y2ggKm9ubHkqIG1vZGlmaWVzIHRoaXMgZnVuY3Rpb24gKG9yIGZ1bmN0aW9ucyBjYWxsZWQgYnkgaXQpLCBsaXN0aW5nIHRoZXNlIHdvdWxkIGVmZmVjdGl2ZWx5IGp1c3QgZm9jdXMgb24gdGhlIGNvcmUgcGFja2V0IHRyYW5zbWl0IG1lY2hhbmlzbSwgd2hpY2ggaXMgYWxyZWFkeSBoZWF2aWx5IGZ1enplZCBpbiBhbnkgbmV0d29yayBzZXR1cC4gV2hpbGUgdGhlIGJ1ZyBpcyBpbiB0aGUgRE1BIGVycm9yIHBhdGgsIGZ1enppbmcgYG5kb19zdGFydF94bWl0YCBkaXJlY3RseSBtYXkgbm90IGVmZmVjdGl2ZWx5IHRhcmdldCB0aGUgc3BlY2lmaWMgZXJyb3IgY29uZGl0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoaXMgcGF0Y2guIEFuZCBzaW5jZSBgaGluaWMzX3NlbmRfb25lX3NrYmAgaXMgY2FsbGVkIGJ5IHRoZSBob3QgcGF0aCBgaGluaWMzX3htaXRfZnJhbWVgLCB3aGljaCBpcyBgbmRvX3N0YXJ0X3htaXRgLCB0aGUgc2FtZSBsb2dpYyBhcHBsaWVzLlxuXG5TbywgZXZlbiB0aG91Z2ggdGhlIHBhdGNoICpkb2VzKiBtb2RpZnkgdGhlc2Ugc3BlY2lmaWMgZnVuY3Rpb25zLCBJJ20gZ29pbmcgdG8gZm9sbG93IHRoZSBwcm9tcHQncyByZWNvbW1lbmRhdGlvbiBhbmQgbGVhdmUgYEZvY3VzU3ltYm9sc2AgZW1wdHkuIFRoaXMgaXMgbGlrZWx5IHRoZSBiZXR0ZXIgY2hvaWNlLCB0byBhdm9pZCBiaWFzaW5nIHRoZSBmdXp6aW5nIHRvd2FyZHMgYSBnZW5lcmljIGhvdC1wYXRoLCBldmVuIGlmIHRoYXQncyB3aGVyZSB0aGUgY29kZSBtb2RpZmljYXRpb24gaXMuIEJ5IGxlYXZpbmcgaXQgZW1wdHksIHdlIGhvcGUgdGhlIGZ1enplciB3aWxsIGJlIG1vcmUgZm9jdXNlZCBvbiBlcnJvciBwYXRocy5cblxuVGhlcmUncyBubyByZWFzb24gKm5vdCogdG8gZnV6eiB0aGlzLiBJdCdzIGEgZnVuY3Rpb25hbCBmaXggZm9yIGEgcG90ZW50aWFsIG1lbW9yeSBzYWZldHkgaXNzdWUgZHVyaW5nIERNQSBtYXBwaW5nIGZhaWx1cmVzLCB3aGljaCBjb3VsZCBpbnRyb2R1Y2UgY3JpdGljYWwgYnVncy5cblxuVGhlcmVmb3JlLCBJJ20gc2V0dGluZzpcblxuKiAgIGBXb3J0aEZ1enppbmdgOiBgdHJ1ZWBcbiogICBgRW5hYmxlQ29uZmlnc2A6IGBbXCJCTkFcIiwgXCJISUJNQ0dFXCIsIFwiSElOSUMzXCJdYFxuKiAgIGBGb2N1c1N5bWJvbHNgOiBgW11gXG5cblJlYXNvbmluZzogXCJUaGUgcGF0Y2ggZml4ZXMgc2tiIGxpZmVjeWNsZSBpc3N1ZXMgKHBvdGVudGlhbCBVQUYgb3IgZG91YmxlIGZyZWUpIGluIHRoZSBUWCBlcnJvciBwYXRocyAoRE1BIG1hcHBpbmcgZmFpbHVyZXMpIG9mIHRoZSBCTkEsIEhJQk1DR0UsIGFuZCBISU5JQzMgbmV0d29yayBkcml2ZXJzLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHJlYWNoYWJsZSBkcml2ZXIgY29kZS4gU3BlY2lmaWNhbGx5LCBhdm9pZGluZyB0aGUgbGlzdGluZyBvZiBob3QtcGF0aCBmdW5jdGlvbnMsIGFzIHRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIGhvdC1wYXRoIGZ1bmN0aW9ucyBvciB0aG9zZSBjYWxsZWQgYnkgdGhlbS5cIlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MTA5LCJPdXRwdXRUb2tlbnMiOjEzMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyNzYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTFUMDU6NTc6MTAuMjg0MDM5OTA2WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzQzMzI0MTUzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCTkFcIixcbiAgICBcIkhJQk1DR0VcIixcbiAgICBcIkhJTklDM1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBza2IgbGlmZWN5Y2xlIGlzc3VlcyAocG90ZW50aWFsIFVBRiBvciBkb3VibGUgZnJlZSkgaW4gdGhlIFRYIGVycm9yIHBhdGhzIChETUEgbWFwcGluZyBmYWlsdXJlcykgb2YgdGhlIEJOQSwgSElCTUNHRSwgYW5kIEhJTklDMyBuZXR3b3JrIGRyaXZlcnMuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcmVhY2hhYmxlIGRyaXZlciBjb2RlLiBUaGUgbW9kaWZpZWQgZnVuY3Rpb25zIGFyZSBpbiB0aGUgcGFja2V0IHRyYW5zbWlzc2lvbiBob3QgcGF0aCAobmRvX3N0YXJ0X3htaXQpLCBzbyB0aGV5IGFyZSBvbWl0dGVkIGZyb20gRm9jdXNTeW1ib2xzIHRvIGF2b2lkIHNrZXdpbmcgdGVzdCBkaXN0cmlidXRpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJOQVwiLFxuICAgIFwiSElCTUNHRVwiLFxuICAgIFwiSElOSUMzXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIHNrYiBsaWZlY3ljbGUgaXNzdWVzIChwb3RlbnRpYWwgVUFGIG9yIGRvdWJsZSBmcmVlKSBpbiB0aGUgVFggZXJyb3IgcGF0aHMgKERNQSBtYXBwaW5nIGZhaWx1cmVzKSBvZiB0aGUgQk5BLCBISUJNQ0dFLCBhbmQgSElOSUMzIG5ldHdvcmsgZHJpdmVycy4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiByZWFjaGFibGUgZHJpdmVyIGNvZGUuIFRoZSBtb2RpZmllZCBmdW5jdGlvbnMgYXJlIGluIHRoZSBwYWNrZXQgdHJhbnNtaXNzaW9uIGhvdCBwYXRoIChuZG9fc3RhcnRfeG1pdCksIHNvIHRoZXkgYXJlIG9taXR0ZWQgZnJvbSBGb2N1c1N5bWJvbHMgdG8gYXZvaWQgc2tld2luZyB0ZXN0IGRpc3RyaWJ1dGlvbnMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflow4dhwg[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-11 05:38:51 +0000 UTC FinishedAt: 2026-07-11 05:57:12 +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": "1cd23ca80784223fa2204e16203f754da4e821f8", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BNA", "HIBMCGE", "HINIC3" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "1cd23ca80784223fa2204e16203f754da4e821f8", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BNA", "HIBMCGE", "HINIC3" ], "series_id": "38b16fc0-885d-4c08-a75c-85c6705642a6" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [], "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+CgkJCTx0ZD4yMDI2LzA3LzExIDA1OjU0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JOQSYjMzQ7LAogICAgJiMzNDtISUJNQ0dFJiMzNDssCiAgICAmIzM0O0hJTklDMyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBza2IgbGlmZWN5Y2xlIGlzc3VlcyAocG90ZW50aWFsIFVBRiBvciBkb3VibGUgZnJlZSkgaW4gdGhlIFRYIGVycm9yIHBhdGhzIChETUEgbWFwcGluZyBmYWlsdXJlcykgb2YgdGhlIEJOQSwgSElCTUNHRSwgYW5kIEhJTklDMyBuZXR3b3JrIGRyaXZlcnMuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcmVhY2hhYmxlIGRyaXZlciBjb2RlLiBUaGUgbW9kaWZpZWQgZnVuY3Rpb25zIGFyZSBpbiB0aGUgcGFja2V0IHRyYW5zbWlzc2lvbiBob3QgcGF0aCAobmRvX3N0YXJ0X3htaXQpLCBzbyB0aGV5IGFyZSBvbWl0dGVkIGZyb20gRm9jdXNTeW1ib2xzIHRvIGF2b2lkIHNrZXdpbmcgdGVzdCBkaXN0cmlidXRpb25zLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDA1OjU0PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgODAxYzI0NmM4ZjlhOGI0NTY1ZjIyZDg5N2M5ZmZkYTFkNWFkNDY1N1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgSnVsIDExIDA1OjU0OjU3IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2NhZGUvYm5hL2JuYWQuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2NhZGUvYm5hL2JuYWQuY1xuaW5kZXggOGUxOWFkZDc2NGRiMjguLjhiNzUwMDRiYTdjOWQ0IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvY2FkZS9ibmEvYm5hZC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9jYWRlL2JuYS9ibmFkLmNcbkBAIC0zMDA2LDcgJiM0MzszMDA2LDYgQEAgYm5hZF9zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG4gXHR0eHFlbnQtXHUwMDNlaGRyLndpLnJlc2VydmVkID0gMDtcbiBcdHR4cWVudC1cdTAwM2VoZHIud2kubnVtX3ZlY3RvcnMgPSB2ZWN0b3JzO1xuIFxuLVx0aGVhZF91bm1hcC1cdTAwM2Vza2IgPSBza2I7XG4gXHRoZWFkX3VubWFwLVx1MDAzZW52ZWNzID0gMDtcbiBcbiBcdC8qIFByb2dyYW0gdGhlIHZlY3RvcnMgKi9cbkBAIC0zMDE4LDYgJiM0MzszMDE3LDcgQEAgYm5hZF9zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG4gXHRcdEJOQURfVVBEQVRFX0NUUihibmFkLCB0eF9za2JfbWFwX2ZhaWxlZCk7XG4gXHRcdHJldHVybiBORVRERVZfVFhfT0s7XG4gXHR9XG4mIzQzO1x0aGVhZF91bm1hcC1cdTAwM2Vza2IgPSBza2I7XG4gXHRCTkFfU0VUX0RNQV9BRERSKGRtYV9hZGRyLCBcdTAwMjZ0eHFlbnQtXHUwMDNldmVjdG9yWzBdLmhvc3RfYWRkcik7XG4gXHR0eHFlbnQtXHUwMDNldmVjdG9yWzBdLmxlbmd0aCA9IGh0b25zKGxlbik7XG4gXHRkbWFfdW5tYXBfYWRkcl9zZXQoXHUwMDI2dW5tYXAtXHUwMDNldmVjdG9yc1swXSwgZG1hX2FkZHIsIGRtYV9hZGRyKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGlibWNnZS9oYmdfdHhyeC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX3R4cnguY1xuaW5kZXggMGFlMzE0OTk0Njc2OTMuLjQzODJhZjkzN2UyZTc0IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX3R4cnguY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX3R4cnguY1xuQEAgLTE1NSw2ICYjNDM7MTU1LDcgQEAgbmV0ZGV2X3R4X3QgaGJnX25ldF9zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG4gXHRidWZmZXItXHUwMDNlc2tiID0gc2tiO1xuIFx0YnVmZmVyLVx1MDAzZXNrYl9sZW4gPSBza2ItXHUwMDNlbGVuO1xuIFx0aWYgKHVubGlrZWx5KGhiZ19kbWFfbWFwKGJ1ZmZlcikpKSB7XG4mIzQzO1x0XHRidWZmZXItXHUwMDNlc2tiID0gTlVMTDtcbiBcdFx0ZGV2X2tmcmVlX3NrYl9hbnkoc2tiKTtcbiBcdFx0cmV0dXJuIE5FVERFVl9UWF9PSztcbiBcdH1cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM190eC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguY1xuaW5kZXggOTMwNmJmMDAyMGNhZmUuLjU3MzllY2IwOGQwZDM3IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguY1xuQEAgLTU3OCw4ICYjNDM7NTc4LDYgQEAgc3RhdGljIG5ldGRldl90eF90IGhpbmljM19zZW5kX29uZV9za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYixcbiBcdFx0KndxZV9jb21iby50YXNrID0gdGFzaztcbiBcbiBcdHR4X2luZm8gPSBcdTAwMjZ0eHEtXHUwMDNldHhfaW5mb1twaV07XG4tXHR0eF9pbmZvLVx1MDAzZXNrYiA9IHNrYjtcbi1cdHR4X2luZm8tXHUwMDNld3FlYmJfY250ID0gd3FlYmJfY250O1xuIFxuIFx0ZXJyID0gaGluaWMzX3R4X21hcF9za2IobmV0ZGV2LCBza2IsIHR4cSwgdHhfaW5mbywgXHUwMDI2d3FlX2NvbWJvKTtcbiBcdGlmIChlcnIpIHtcbkBAIC01ODksNiAmIzQzOzU4Nyw5IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBoaW5pYzNfc2VuZF9vbmVfc2tiKHN0cnVjdCBza19idWZmICpza2IsXG4gXHRcdGdvdG8gZXJyX2Ryb3BfcGt0O1xuIFx0fVxuIFxuJiM0MztcdHR4X2luZm8tXHUwMDNlc2tiID0gc2tiO1xuJiM0MztcdHR4X2luZm8tXHUwMDNld3FlYmJfY250ID0gd3FlYmJfY250O1xuJiM0MztcbiBcdG5ldGlmX3N1YnF1ZXVlX3NlbnQobmV0ZGV2LCB0eHEtXHUwMDNlc3EtXHUwMDNlcV9pZCwgc2tiLVx1MDAzZWxlbik7XG4gXHRuZXRpZl9zdWJxdWV1ZV9tYXliZV9zdG9wKG5ldGRldiwgdHhxLVx1MDAzZXNxLVx1MDAzZXFfaWQsXG4gXHRcdFx0XHQgIGhpbmljM193cV9mcmVlX3dxZWJicyhcdTAwMjZ0eHEtXHUwMDNlc3EtXHUwMDNld3EpLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDA1OjU0PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjJtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JOQSYjMzQ7LAogICAgJiMzNDtISUJNQ0dFJiMzNDssCiAgICAmIzM0O0hJTklDMyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBza2IgbGlmZWN5Y2xlIGlzc3VlcyAocG90ZW50aWFsIFVBRiBvciBkb3VibGUgZnJlZSkgaW4gdGhlIFRYIGVycm9yIHBhdGhzIChETUEgbWFwcGluZyBmYWlsdXJlcykgb2YgdGhlIEJOQSwgSElCTUNHRSwgYW5kIEhJTklDMyBuZXR3b3JrIGRyaXZlcnMuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcmVhY2hhYmxlIGRyaXZlciBjb2RlLiBUaGUgbW9kaWZpZWQgZnVuY3Rpb25zIGFyZSBpbiB0aGUgcGFja2V0IHRyYW5zbWlzc2lvbiBob3QgcGF0aCAobmRvX3N0YXJ0X3htaXQpLCBzbyB0aGV5IGFyZSBvbWl0dGVkIGZyb20gRm9jdXNTeW1ib2xzIHRvIGF2b2lkIHNrZXdpbmcgdGVzdCBkaXN0cmlidXRpb25zLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA4MDFjMjQ2YzhmOWE4YjQ1NjVmMjJkODk3YzlmZmRhMWQ1YWQ0NjU3CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFNhdCBKdWwgMTEgMDU6NTQ6NTcgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9jYWRlL2JuYS9ibmFkLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9jYWRlL2JuYS9ibmFkLmMKaW5kZXggOGUxOWFkZDc2NGRiMjguLjhiNzUwMDRiYTdjOWQ0IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9jYWRlL2JuYS9ibmFkLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvY2FkZS9ibmEvYm5hZC5jCkBAIC0zMDA2LDcgJiM0MzszMDA2LDYgQEAgYm5hZF9zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpCiAJdHhxZW50LSZndDtoZHIud2kucmVzZXJ2ZWQgPSAwOwogCXR4cWVudC0mZ3Q7aGRyLndpLm51bV92ZWN0b3JzID0gdmVjdG9yczsKIAotCWhlYWRfdW5tYXAtJmd0O3NrYiA9IHNrYjsKIAloZWFkX3VubWFwLSZndDtudmVjcyA9IDA7CiAKIAkvKiBQcm9ncmFtIHRoZSB2ZWN0b3JzICovCkBAIC0zMDE4LDYgJiM0MzszMDE3LDcgQEAgYm5hZF9zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpCiAJCUJOQURfVVBEQVRFX0NUUihibmFkLCB0eF9za2JfbWFwX2ZhaWxlZCk7CiAJCXJldHVybiBORVRERVZfVFhfT0s7CiAJfQomIzQzOwloZWFkX3VubWFwLSZndDtza2IgPSBza2I7CiAJQk5BX1NFVF9ETUFfQUREUihkbWFfYWRkciwgJmFtcDt0eHFlbnQtJmd0O3ZlY3RvclswXS5ob3N0X2FkZHIpOwogCXR4cWVudC0mZ3Q7dmVjdG9yWzBdLmxlbmd0aCA9IGh0b25zKGxlbik7CiAJZG1hX3VubWFwX2FkZHJfc2V0KCZhbXA7dW5tYXAtJmd0O3ZlY3RvcnNbMF0sIGRtYV9hZGRyLCBkbWFfYWRkcik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGlibWNnZS9oYmdfdHhyeC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX3R4cnguYwppbmRleCAwYWUzMTQ5OTQ2NzY5My4uNDM4MmFmOTM3ZTJlNzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9oaWJtY2dlL2hiZ190eHJ4LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX3R4cnguYwpAQCAtMTU1LDYgJiM0MzsxNTUsNyBAQCBuZXRkZXZfdHhfdCBoYmdfbmV0X3N0YXJ0X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldikKIAlidWZmZXItJmd0O3NrYiA9IHNrYjsKIAlidWZmZXItJmd0O3NrYl9sZW4gPSBza2ItJmd0O2xlbjsKIAlpZiAodW5saWtlbHkoaGJnX2RtYV9tYXAoYnVmZmVyKSkpIHsKJiM0MzsJCWJ1ZmZlci0mZ3Q7c2tiID0gTlVMTDsKIAkJZGV2X2tmcmVlX3NrYl9hbnkoc2tiKTsKIAkJcmV0dXJuIE5FVERFVl9UWF9PSzsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM190eC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguYwppbmRleCA5MzA2YmYwMDIwY2FmZS4uNTczOWVjYjA4ZDBkMzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvaGluaWMzX3R4LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguYwpAQCAtNTc4LDggJiM0Mzs1NzgsNiBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgaGluaWMzX3NlbmRfb25lX3NrYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkqd3FlX2NvbWJvLnRhc2sgPSB0YXNrOwogCiAJdHhfaW5mbyA9ICZhbXA7dHhxLSZndDt0eF9pbmZvW3BpXTsKLQl0eF9pbmZvLSZndDtza2IgPSBza2I7Ci0JdHhfaW5mby0mZ3Q7d3FlYmJfY250ID0gd3FlYmJfY250OwogCiAJZXJyID0gaGluaWMzX3R4X21hcF9za2IobmV0ZGV2LCBza2IsIHR4cSwgdHhfaW5mbywgJmFtcDt3cWVfY29tYm8pOwogCWlmIChlcnIpIHsKQEAgLTU4OSw2ICYjNDM7NTg3LDkgQEAgc3RhdGljIG5ldGRldl90eF90IGhpbmljM19zZW5kX29uZV9za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJZ290byBlcnJfZHJvcF9wa3Q7CiAJfQogCiYjNDM7CXR4X2luZm8tJmd0O3NrYiA9IHNrYjsKJiM0MzsJdHhfaW5mby0mZ3Q7d3FlYmJfY250ID0gd3FlYmJfY250OwomIzQzOwogCW5ldGlmX3N1YnF1ZXVlX3NlbnQobmV0ZGV2LCB0eHEtJmd0O3NxLSZndDtxX2lkLCBza2ItJmd0O2xlbik7CiAJbmV0aWZfc3VicXVldWVfbWF5YmVfc3RvcChuZXRkZXYsIHR4cS0mZ3Q7c3EtJmd0O3FfaWQsCiAJCQkJICBoaW5pYzNfd3FfZnJlZV93cWViYnMoJmFtcDt0eHEtJmd0O3NxLSZndDt3cSksCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDA1OjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI3NTAKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAyOTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBFdGhlcm5ldCBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSBoYXZlIGEgcGF0Y2ggaGVyZSB0aGF0JiMzOTtzIHRvdWNoaW5nIHRocmVlIEV0aGVybmV0IGRyaXZlcnM6IGBibmFkLmNgIChCcm9jYWRlKSwgYGhiZ190eHJ4LmNgIChIaVNpbGljb24pLCBhbmQgYGhpbmljM190eC5jYCAoSHVhd2VpKS4gVGhlIGNvcmUgb2YgdGhlIGZpeCBzZWVtcyB0byBiZSBhYm91dCBETUEgbWFwcGluZyBhbmQgZW5zdXJpbmcgdGhlIGBza2JgIChzb2NrZXQgYnVmZmVyKSBwb2ludGVyIGlzIGhhbmRsZWQgY29ycmVjdGx5IHRvIHByZXZlbnQgdXNlLWFmdGVyLWZyZWUgb3IgZG91YmxlLWZyZWUgc2NlbmFyaW9zLiBFc3NlbnRpYWxseSwgdGhleSYjMzk7cmUgbWFraW5nIHN1cmUgYHNrYmAgaXMgb25seSB2YWxpZCBhZnRlciB0aGUgRE1BIG1hcHBpbmcgc3VjY2VlZHMsIG9yIGNsZWFyZWQgb24gZmFpbHVyZS4gU29saWQgcHJhY3RpY2UsIGJ1dCB0aGUgcmVhbCBxdWVzdGlvbiBpcyBob3cgd2UgdmFsaWRhdGUgdGhpcyBmaXggZWZmZWN0aXZlbHkuCgpNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgY2FuIHdlIGZ1enogdGhlc2UgZHJpdmVycyB0byByZWFsbHkgc3RyZXNzLXRlc3QgdGhlIGNoYW5nZXM/IFRoZSBjYXRjaCB3aXRoIHRoZXNlIHNwZWNpZmljIGhhcmR3YXJlIGRyaXZlcnMgaXMgdGhhdCBmdXp6aW5nIGRpcmVjdGx5IGluIHRoZWlyICYjMzQ7bmF0aXZlJiMzNDsgZW52aXJvbm1lbnQgaXMgdG91Z2guIFR5cGljYWxseSwgeW91JiMzOTtkIG5lZWQgc29mdHdhcmUgZW11bGF0aW9uIG9yIGEgdmlydHVhbCBzZXR1cCB3aXRoIHRvb2xzIGxpa2UgYHZldGhgLCBgdHVuYCwgb3IgYHRhcGAuIEhvd2V2ZXIsIHRoZXNlIGFyZSBzcGVjaWFsaXplZCBoYXJkd2FyZSBhbmQgYXJlIG5vdCBlYXNpbHkgZnV6emVkLgoKV2FpdCBhIG1pbnV0ZS4uLnN5emthbGxlciEgU3l6a2FsbGVyIGlzIHByZXR0eSBnb29kIHdpdGggbmV0d29yayBkcml2ZXJzLCBlc3BlY2lhbGx5IGlmIHRoZXkgYXJlIFBDSSBkZXZpY2VzLiBJdCB1c2VzIFBDSSBmdXp6aW5nIHZpYSBgc3l6X3BjaV9kZXZpY2VgLiBCdXQsIEkgbmVlZCB0byBjb25maXJtIHdoZXRoZXIgdGhlc2UgYXJlIFBDSSBkcml2ZXJzIG9yIHBsYXRmb3JtIGRyaXZlcnMuIEJyb2NhZGUgQk5BLCBJIHJlbWVtYmVyIHRoYXQgb25lIGlzIGRlZmluaXRlbHkgUENJLiBOb3csIHdoYXQgYWJvdXQgSGlTaWxpY29uJiMzOTtzIGhpYm1jZ2U/IEFuZCwgaXMgSHVhd2VpIGhpbmljMyBhIFBDSSBkZXZpY2UsIHRvbz8KClJpZ2h0LCB0aGUgbmV4dCBzdGVwIGlzIHRvIGRpdmUgaW50byB0aGUgS2NvbmZpZyBmaWxlcy4gVGhhdCYjMzk7bGwgcXVpY2tseSB0ZWxsIG1lIHRoZSBkcml2ZXIgdHlwZSBhbmQgaG93IHRoZXNlIGFyZSBidWlsdCBhbmQgZXhwb3NlZCB0byB0aGUgc3lzdGVtLiBUaGF0JiMzOTtzIHdoZXJlIEkgbmVlZCB0byBzdGFydC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAwNTo1NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgQk5BJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvY2FkZS9ibmEvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9jYWRlL2JuYS9LY29uZmlnLTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9jYWRlL2JuYS9LY29uZmlnOjY6Y29uZmlnIEJOQVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvY2FkZS9ibmEvS2NvbmZpZy03LVx0dHJpc3RhdGUgXCYjMzQ7UUxvZ2ljIEJSLXNlcmllcyAxMDEwLzEwMjAvMTg2MCAxMEdiIEV0aGVybmV0IERyaXZlciBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMDU6NTU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzU0OAoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDE1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKktjb25maWcgRGl2ZSBmb3IgaGlibWNnZSBhbmQgaGluaWMzKioKCkFscmlnaHQsIHRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5LiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZGl2ZSBzdHJhaWdodCBpbnRvIEtjb25maWcuIEkgbmVlZCB0byBxdWlja2x5IGFzY2VydGFpbiB0aGUgc3RhdHVzIG9mIGBoaWJtY2dlYCBhbmQgYGhpbmljM2AuIFRoaXMgaXNuJiMzOTt0IGp1c3QgYWJvdXQgcHJlc2VuY2Ugb3IgYWJzZW5jZTsgSSYjMzk7bSBsb29raW5nIGZvciB0aGUgd2hvbGUgcGljdHVyZS4gSSYjMzk7bSB0aGlua2luZyBhYm91dDoKCiogICAqKkRlcGVuZGVuY2llczoqKiBXaGF0IG90aGVyIGNvbmZpZ3VyYXRpb25zIG5lZWQgdG8gYmUgc2V0IG9yIGFyZSBhZmZlY3RlZCBpZiBlaXRoZXIgb2YgdGhlc2UgYXJlIGVuYWJsZWQ/IEFyZSB0aGVyZSBhbnkgb2J2aW91cyBjb25mbGljdHMgSSBuZWVkIHRvIGJlIGF3YXJlIG9mPyBBcmUgdGhlcmUgc3BlY2lmaWMgaGFyZHdhcmUgZmVhdHVyZXMgSSBzaG91bGQgbG9vayBvdXQgZm9yPwoqICAgKipEZWZhdWx0IFZhbHVlczoqKiBXaGF0IGFyZSB0aGUgZGVmYXVsdCB2YWx1ZXMsIGFuZCBkbyB0aGV5IG1ha2Ugc2Vuc2UgZ2l2ZW4gdGhlIGN1cnJlbnQgYXJjaGl0ZWN0dXJlIGFuZCBpbnRlbmRlZCB1c2UgY2FzZXM/IEFueSBvYnZpb3VzIHJlZ3Jlc3Npb25zIGhlcmU/CiogICAqKkRvY3VtZW50YXRpb24gTGlua3M6KiogRG9lcyB0aGUgS2NvbmZpZyBlbnRyeSBwb2ludCB0byBjbGVhciBkb2N1bWVudGF0aW9uLCBvciBzaG91bGQgSSBzdGFydCBwdXR0aW5nIHRoZSBwaWVjZXMgdG9nZXRoZXIgbXlzZWxmPyBBbnkgY29tbWVudHMgdGhhdCBwcm92aWRlIGtleSBoaW50cz8KKiAgICoqQnVpbGQtVGltZSBCZWhhdmlvcjoqKiBBcmUgdGhlcmUgY29uZGl0aW9uYWwgYnVpbGQgb3B0aW9ucz8gV2hhdCBhcmUgdGhlIGltcGxpY2F0aW9ucyBvZiBkaWZmZXJlbnQgY29uZmlndXJhdGlvbiBzZXR0aW5ncz8gSG93IGRvZXMgdGhpcyBpbXBhY3QgdGhlIGJ1aWxkIGVudmlyb25tZW50PwoqICAgKipMb2NhdGlvbjoqKiBXaGVyZSBhcmUgdGhlc2UgY29uZmlndXJhdGlvbnMgZGVmaW5lZCBpbiB0aGUgb3ZlcmFsbCBidWlsZCBzdHJ1Y3R1cmU/IElzIGl0IGVhc3kgdG8gZmluZCB0aGVtPyBBcmUgdGhleSBpbiBhIGxvZ2ljYWwgcGxhY2U/CiogICAqKkhpc3Rvcnk6KiogSXMgdGhlcmUgYW55IGhpc3Rvcnkgb2YgdGhlc2UgY29uZmlndXJhdGlvbnM/IFdoYXQgd2VyZSB0aGUgcHJldmlvdXMgY29uZmlndXJhdGlvbnM/IEhhdmUgdGhlcmUgYmVlbiBhbnkgcmVwb3J0ZWQgaXNzdWVzIHRoYXQgd291bGQgcHJvdmlkZSBjb250ZXh0PwoKQmFzaWNhbGx5LCBJIG5lZWQgYSBjb21wcmVoZW5zaXZlIG92ZXJ2aWV3IHRvIHVuZGVyc3RhbmQgaG93IHRoZXNlIG1vZHVsZXMgYXJlIGludGVncmF0ZWQuIFRoaXMgd2lsbCBhbGxvdyBtZSB0byBhc3Nlc3MgdGhlIGN1cnJlbnQgc3RhdGUgYW5kIHByb3ZpZGUgcmVsaWFibGUgcmVjb21tZW5kYXRpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDA1OjU1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEhJQk1DR0UmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGlibWNnZS9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAwNTo1NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNjQxCgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAwNTo1NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgSElOSUMzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvS2NvbmZpZy01LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9LY29uZmlnOjY6Y29uZmlnIEhJTklDM1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9LY29uZmlnLTctXHR0cmlzdGF0ZSBcJiMzNDtIdWF3ZWkgM3JkIGdlbmVyYXRpb24gbmV0d29yayBhZGFwdGVycyAoSElOSUMzKSBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMDU6NTU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzc3OQoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDE4OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBQYXRjaDogTmV0d29yayBEcml2ZXIgTWVtb3J5IE1hbmFnZW1lbnQqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGl0IHNlZW1zIHRvIHRhcmdldCBzb21lIGNyaXRpY2FsIG1lbW9yeSBtYW5hZ2VtZW50IGlzc3VlcyBhY3Jvc3MgYSBmZXcgbmV0d29yayBkcml2ZXJzLiBTcGVjaWZpY2FsbHksIGl0JiMzOTtzIHRvdWNoaW5nIHRocmVlIGZpbGVzOiBgYm5hZC5jYCAodGhhdCYjMzk7cyB0aGUgQnJvY2FkZSBkcml2ZXIsIHJpZ2h0PyksIGBoYmdfdHhyeC5jYCBmb3IgdGhlIGhpc2lsaWNvbiwgYW5kIGBoaW5pYzNfdHguY2AsIHRoZSBIdWF3ZWkgaGluaWMzIGRyaXZlci4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsICYjMzQ7QWgsIHNvdW5kcyBsaWtlIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggdGhlIGNsYXNzaWMgJiMzOTt1c2UtYWZ0ZXItZnJlZSYjMzk7IHNjZW5hcmlvIG9yIHBvdGVudGlhbGx5IG1lbW9yeSBsZWFrcyYjMzQ7LgoKVGhlIGNvcmUgb2YgdGhlIHByb2JsZW0gaXMgY2xlYXI6IGFuIGBza2JgIChzb2NrZXQgYnVmZmVyKSBpcyBiZWluZyBhc3NpZ25lZCB0byBhIGRhdGEgc3RydWN0dXJlICpiZWZvcmUqIHRoZSBETUEgbWFwcGluZyBvcGVyYXRpb24uIElmIHRoYXQgRE1BIG1hcHBpbmcgZmFpbHMsIHRoZSBgc2tiYCBnZXRzIGZyZWVkLCBhcyBpdCBzaG91bGQsIGJ1dCB0aGUgcG9pbnRlciB3aXRoaW4gdGhlIGRhdGEgc3RydWN0dXJlIHJlbWFpbnMgZGFuZ2xpbmcuIFRoYXQmIzM5O3MganVzdCBhc2tpbmcgZm9yIHRyb3VibGUgZG93biB0aGUgbGluZS4gV2UgYWxsIGtub3cgaG93IHVucHJlZGljdGFibGUgdGhvc2UgZGFuZ2xpbmcgcG9pbnRlcnMgY2FuIGJlLiBUaGUgZml4IGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQsIHRoYW5rZnVsbHksIGVpdGhlciByZS1hcnJhbmdpbmcgdGhlIHNlcXVlbmNlLCBvciBjbGVhciB0aGUgZGFuZ2xpbmcgcG9pbnRlciBpbiBjYXNlIG9mIERNQSBmYWlsdXJlcy4KCk5vdywgSSYjMzk7bSB0aGlua2luZywgbGV0JiMzOTtzIGp1c3QgbWFrZSBzdXJlIHRoZXJlIGFyZSBubyBjb25maWcgY2hhbmdlcyBmb3IgaGlibWNnZS4uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAwNTo1NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgSElCTUNHRSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9LY29uZmlnPTE0NT1lbmRpZiAjIEFSTSB8fCBBUk02NCB8fCBDT01QSUxFX1RFU1RcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9LY29uZmlnLTE0Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9LY29uZmlnOjE0Nzpjb25maWcgSElCTUNHRVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL0tjb25maWctMTQ4LVx0dHJpc3RhdGUgXCYjMzQ7SGlzaWxpY29uIEJNQyBHaWdhYml0IEV0aGVybmV0IERldmljZSBTdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDA1OjU2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ2OTUKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAyODcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBSZWFjaGFiaWxpdHkgb2YgSGFyZHdhcmUgRHJpdmVycyBmb3IgRnV6emluZyoqCgpPa2F5LCBzbyB0aGVzZSBhcmUgZGVmaW5pdGVseSBoYXJkd2FyZSBkcml2ZXJzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBTeXprYWxsZXIgdXN1YWxseSBkb2VzbiYjMzk7dCB0YXJnZXQgdGhlc2UgZGlyZWN0bHkgdW5sZXNzIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYSBzcGVjaWFsaXplZCBQQ0kgb3IgcGxhdGZvcm0gZGV2aWNlIGZ1enppbmcgc2V0dXAuIEJ1dCB0aGUgcHJvbXB0IHNwZWNpZmljYWxseSBtZW50aW9ucyBjb2RlIHBhdGhzIHRoYXQgYXJlIGluYWNjZXNzaWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aXRoIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlLgoKU2luY2UgdGhlc2UgZHJpdmVycyDigJMgQnJvY2FkZSwgSGlTaWxpY29uIEJNQywgSHVhd2VpIEhJTklDMyDigJMgYXJlIGFsbCBwaHlzaWNhbCBoYXJkd2FyZSwgdGhleSYjMzk7cmUgZ2VuZXJhbGx5IG91dCBvZiByZWFjaCBpbiBRRU1VL0dDRSB1bmxlc3MgYSBkZWRpY2F0ZWQgZW11bGF0b3IgZXhpc3RzLiBBbmQgdGhlcmUmIzM5O3Mgbm8gc3RhbmRhcmQgZW11bGF0b3IgZm9yICp0aGVzZSogcGFydGljdWxhciBOSUNzIGluIFFFTVUsIGFzIGZhciBhcyBJIGtub3cuCgpXYWl0LCBTeXprYWxsZXIgKmRvZXMqIGhhdmUgYSBQQ0kgZnV6emVyIHRoYXQgY2FuIGVtdWxhdGUgUENJIGRldmljZXMuLi4gZG9lcyBpdCBoYW5kbGUgdGhlc2Ugc3BlY2lmaWMgb25lcz8gV2VsbCwgU3l6a2FsbGVyJiMzOTtzIFBDSSBmdXp6ZXIgKmNhbiogaW5qZWN0IGFyYml0cmFyeSBQQ0kgZGV2aWNlcywgYnV0IGl0JiMzOTtzIGltcG9ydGFudCB0byByZW1lbWJlciBpdCBkb2VzbiYjMzk7dCBkbyBhIGZ1bGwgaGFyZHdhcmUgZW11bGF0aW9uLCBpdCBqdXN0IHByb3ZpZGVzIHRoZSBNTUlPL1BJTy9ETUEgcmVzcG9uc2VzLiBTdGlsbCwgdGhhdCYjMzk7cyBzb21ldGhpbmcuCgpIb3dldmVyLCBteSB1c3VhbCBhc3N1bXB0aW9uIGlzIHRoYXQgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVycyBsaWtlIHRoZXNlLCBldGhlcm5ldC9icm9jYWRlLCBldGhlcm5ldC9oaXNpbGljb24sIGV0aGVybmV0L2h1YXdlaSwgYXJlIG9mZiBsaW1pdHMgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHVubGVzcyB0aGVyZSYjMzk7cyBlaXRoZXIgYSBrbm93biBlbXVsYXRvciBvciB0aGV5IHVzZSB2aXJ0dWFsIG9yIFVTQiBkZXZpY2VzLgoKTGV0JiMzOTtzIHF1aWNrbHkgY29uZmlybSB3aGV0aGVyIHRoZXNlIGFyZSBQQ0kgb3IgcGxhdGZvcm0gZGV2aWNlcy4gQk5BLi4uIGlzIGRlZmluaXRlbHkgUENJLiBISU5JQzMgaXMgYWxzbyBQQ0kuIEhJQk1DR0UuLi4gSSAqdGhpbmsqIHRoYXQmIzM5O3MgcGxhdGZvcm0sIGJ1dCBJIHNob3VsZCBkb3VibGUtY2hlY2sgdGhhdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMDU6NTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttb2R1bGVfcGxhdGZvcm1fZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMDU6NTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTM3NwoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDA1OjU2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cGxhdGZvcm1fZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMDU6NTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDY0MwoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDA1OjU2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3BjaV9kcml2ZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGlibWNnZS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX2Vyci5jPTE4ND1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9lcnJvcl9oYW5kbGVycyBoYmdfcGNpX2Vycl9oYW5kbGVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9oaWJtY2dlL2hiZ19lcnIuYy0xOTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGlibWNnZS9oYmdfZXJyLmM6MTkxOnZvaWQgaGJnX3NldF9wY2lfZXJyX2hhbmRsZXIoc3RydWN0IHBjaV9kcml2ZXIgKnBkcnYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGlibWNnZS9oYmdfZXJyLmMtMTkyLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGlibWNnZS9oYmdfZXJyLmgtOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9oaWJtY2dlL2hiZ19lcnIuaDo5OnZvaWQgaGJnX3NldF9wY2lfZXJyX2hhbmRsZXIoc3RydWN0IHBjaV9kcml2ZXIgKnBkcnYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX2Vyci5oLTEwLWludCBoYmdfcmVzZXQoc3RydWN0IGhiZ19wcml2ICpwcml2KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGlibWNnZS9oYmdfbWFpbi5jPTQ5OD1NT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgaGJnX3BjaV90YmwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX21haW4uYy00OTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGlibWNnZS9oYmdfbWFpbi5jOjUwMDpzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgaGJnX2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9oaWJtY2dlL2hiZ19tYWluLmMtNTAxLVx0Lm5hbWVcdFx0PSBcJiMzNDtoaWJtY2dlXCYjMzQ7LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAwNTo1NjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MTA5CgkJCQkJCQlvdXRwdXQ6IDEzMQoJCQkJCQkJdGhvdWdodHM6IDEyNzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHlzaXMgb2YgTmV0d29yayBEcml2ZXIgUGF0Y2ggZm9yIEZ1enppbmcqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyBtb2RpZnlpbmcgdGhyZWUgbmV0d29yayBkcml2ZXJzOiBgYm5hZC5jYCAoQnJvY2FkZSksIGBoYmdfdHhyeC5jYCAoSGlzaWxpY29uKSwgYW5kIGBoaW5pYzNfdHguY2AgKEh1YXdlaSkuIFRoZSBjb3JlIG9mIHRoZSBjaGFuZ2UgcmV2b2x2ZXMgYXJvdW5kIGZpeGluZyBhIHVzZS1hZnRlci1mcmVlIG9yIG1lbW9yeSBsZWFrIGluIHRoZSB0cmFuc21pdCBwYXRoLiBFc3NlbnRpYWxseSwgdGhleSYjMzk7cmUgZGVsYXlpbmcgdGhlIGFzc2lnbm1lbnQgb2YgdGhlIGBza2JgIHRvIGludGVybmFsIHRyYWNraW5nIHN0cnVjdHVyZXMgdW50aWwgKmFmdGVyKiB0aGUgRE1BIG1hcHBpbmcgaXMgc3VjY2Vzc2Z1bCwgb3IgY2xlYXJpbmcgaXQgaWYgdGhlIG1hcHBpbmcgZmFpbHMuIFRoaXMgcHJldmVudHMgZG91YmxlIGZyZWVzIG9yIGFjY2Vzc2VzIHRvIGZyZWVkIG1lbW9yeSBpbiBlcnJvciBjb25kaXRpb25zLCBzcGVjaWZpY2FsbHkgZHVyaW5nIERNQSBmYWlsdXJlcy4KClRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgd2l0aGluIHRoZSBjcml0aWNhbCBUWCBwYXRoIG9mIHRoZXNlIG5ldHdvcmsgZHJpdmVycy4gU2luY2UgdGhleSBhcmUgUENJIG5ldHdvcmsgZHJpdmVycywgdGhleSBhcmUgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cywgbGlrZSBRRU1VLCB0aHJvdWdoIFBDSSBlbXVsYXRpb24gb3IgZnV6emluZyB0ZWNobmlxdWVzIHVzaW5nIHN5emthbGxlciwgc3BlY2lmaWNhbGx5IGBzeXpfcGNpX2RldmljZV9hZGRgLiBUaGUga2V5IGNvbmZpZ3MgdG8gZW5hYmxlIGhlcmUgYXJlIGBDT05GSUdfQk5BYCwgYENPTkZJR19ISUJNQ0dFYCwgYW5kIGBDT05GSUdfSElOSUMzYCwgd2hpY2ggYXJlIGFsbCB2ZXJpZmllZCBhcyB0aGUgY29ycmVjdCBjb25maWd1cmF0aW9ucyBiYXNlZCBvbiB0aGVpciByZXNwZWN0aXZlIEtjb25maWcgZmlsZXMuCgpOb3csIHRoZSBpbnRlcmVzdGluZyBwYXJ0IGlzIHRoZSBgRm9jdXNTeW1ib2xzYC4gVGhlIHByb21wdCBzcGVjaWZpY2FsbHkgYWR2aXNlcyBhZ2FpbnN0IGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gYXZvaWQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4gTXkgZmlyc3QgaW5zdGluY3Qgd2FzIHRvIGluY2x1ZGUgdGhlIG1vZGlmaWVkIGZ1bmN0aW9uczogYGJuYWRfc3RhcnRfeG1pdGAsIGBoYmdfbmV0X3N0YXJ0X3htaXRgLCBhbmQgYGhpbmljM19zZW5kX29uZV9za2JgLiBCdXQsIGBibmFkX3N0YXJ0X3htaXRgIGFuZCBgaGJnX25ldF9zdGFydF94bWl0YCBhcmUgYWN0dWFsbHkgdGhlIGBuZG9fc3RhcnRfeG1pdGAgZnVuY3Rpb25zLCB3aGljaCBpcyAqdGhlKiBob3QgcGF0aCBmb3IgbmV0d29yayBkcml2ZXJzLiBTaW5jZSB0aGUgcGF0Y2ggKm9ubHkqIG1vZGlmaWVzIHRoaXMgZnVuY3Rpb24gKG9yIGZ1bmN0aW9ucyBjYWxsZWQgYnkgaXQpLCBsaXN0aW5nIHRoZXNlIHdvdWxkIGVmZmVjdGl2ZWx5IGp1c3QgZm9jdXMgb24gdGhlIGNvcmUgcGFja2V0IHRyYW5zbWl0IG1lY2hhbmlzbSwgd2hpY2ggaXMgYWxyZWFkeSBoZWF2aWx5IGZ1enplZCBpbiBhbnkgbmV0d29yayBzZXR1cC4gV2hpbGUgdGhlIGJ1ZyBpcyBpbiB0aGUgRE1BIGVycm9yIHBhdGgsIGZ1enppbmcgYG5kb19zdGFydF94bWl0YCBkaXJlY3RseSBtYXkgbm90IGVmZmVjdGl2ZWx5IHRhcmdldCB0aGUgc3BlY2lmaWMgZXJyb3IgY29uZGl0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoaXMgcGF0Y2guIEFuZCBzaW5jZSBgaGluaWMzX3NlbmRfb25lX3NrYmAgaXMgY2FsbGVkIGJ5IHRoZSBob3QgcGF0aCBgaGluaWMzX3htaXRfZnJhbWVgLCB3aGljaCBpcyBgbmRvX3N0YXJ0X3htaXRgLCB0aGUgc2FtZSBsb2dpYyBhcHBsaWVzLgoKU28sIGV2ZW4gdGhvdWdoIHRoZSBwYXRjaCAqZG9lcyogbW9kaWZ5IHRoZXNlIHNwZWNpZmljIGZ1bmN0aW9ucywgSSYjMzk7bSBnb2luZyB0byBmb2xsb3cgdGhlIHByb21wdCYjMzk7cyByZWNvbW1lbmRhdGlvbiBhbmQgbGVhdmUgYEZvY3VzU3ltYm9sc2AgZW1wdHkuIFRoaXMgaXMgbGlrZWx5IHRoZSBiZXR0ZXIgY2hvaWNlLCB0byBhdm9pZCBiaWFzaW5nIHRoZSBmdXp6aW5nIHRvd2FyZHMgYSBnZW5lcmljIGhvdC1wYXRoLCBldmVuIGlmIHRoYXQmIzM5O3Mgd2hlcmUgdGhlIGNvZGUgbW9kaWZpY2F0aW9uIGlzLiBCeSBsZWF2aW5nIGl0IGVtcHR5LCB3ZSBob3BlIHRoZSBmdXp6ZXIgd2lsbCBiZSBtb3JlIGZvY3VzZWQgb24gZXJyb3IgcGF0aHMuCgpUaGVyZSYjMzk7cyBubyByZWFzb24gKm5vdCogdG8gZnV6eiB0aGlzLiBJdCYjMzk7cyBhIGZ1bmN0aW9uYWwgZml4IGZvciBhIHBvdGVudGlhbCBtZW1vcnkgc2FmZXR5IGlzc3VlIGR1cmluZyBETUEgbWFwcGluZyBmYWlsdXJlcywgd2hpY2ggY291bGQgaW50cm9kdWNlIGNyaXRpY2FsIGJ1Z3MuCgpUaGVyZWZvcmUsIEkmIzM5O20gc2V0dGluZzoKCiogICBgV29ydGhGdXp6aW5nYDogYHRydWVgCiogICBgRW5hYmxlQ29uZmlnc2A6IGBbJiMzNDtCTkEmIzM0OywgJiMzNDtISUJNQ0dFJiMzNDssICYjMzQ7SElOSUMzJiMzNDtdYAoqICAgYEZvY3VzU3ltYm9sc2A6IGBbXWAKClJlYXNvbmluZzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgc2tiIGxpZmVjeWNsZSBpc3N1ZXMgKHBvdGVudGlhbCBVQUYgb3IgZG91YmxlIGZyZWUpIGluIHRoZSBUWCBlcnJvciBwYXRocyAoRE1BIG1hcHBpbmcgZmFpbHVyZXMpIG9mIHRoZSBCTkEsIEhJQk1DR0UsIGFuZCBISU5JQzMgbmV0d29yayBkcml2ZXJzLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHJlYWNoYWJsZSBkcml2ZXIgY29kZS4gU3BlY2lmaWNhbGx5LCBhdm9pZGluZyB0aGUgbGlzdGluZyBvZiBob3QtcGF0aCBmdW5jdGlvbnMsIGFzIHRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIGhvdC1wYXRoIGZ1bmN0aW9ucyBvciB0aG9zZSBjYWxsZWQgYnkgdGhlbS4mIzM0OwoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAwNTo1NzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7Qk5BJiMzNDssCiAgICAmIzM0O0hJQk1DR0UmIzM0OywKICAgICYjMzQ7SElOSUMzJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIHNrYiBsaWZlY3ljbGUgaXNzdWVzIChwb3RlbnRpYWwgVUFGIG9yIGRvdWJsZSBmcmVlKSBpbiB0aGUgVFggZXJyb3IgcGF0aHMgKERNQSBtYXBwaW5nIGZhaWx1cmVzKSBvZiB0aGUgQk5BLCBISUJNQ0dFLCBhbmQgSElOSUMzIG5ldHdvcmsgZHJpdmVycy4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiByZWFjaGFibGUgZHJpdmVyIGNvZGUuIFRoZSBtb2RpZmllZCBmdW5jdGlvbnMgYXJlIGluIHRoZSBwYWNrZXQgdHJhbnNtaXNzaW9uIGhvdCBwYXRoIChuZG9fc3RhcnRfeG1pdCksIHNvIHRoZXkgYXJlIG9taXR0ZWQgZnJvbSBGb2N1c1N5bWJvbHMgdG8gYXZvaWQgc2tld2luZyB0ZXN0IGRpc3RyaWJ1dGlvbnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JOQSYjMzQ7LAogICAgJiMzNDtISUJNQ0dFJiMzNDssCiAgICAmIzM0O0hJTklDMyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBza2IgbGlmZWN5Y2xlIGlzc3VlcyAocG90ZW50aWFsIFVBRiBvciBkb3VibGUgZnJlZSkgaW4gdGhlIFRYIGVycm9yIHBhdGhzIChETUEgbWFwcGluZyBmYWlsdXJlcykgb2YgdGhlIEJOQSwgSElCTUNHRSwgYW5kIEhJTklDMyBuZXR3b3JrIGRyaXZlcnMuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcmVhY2hhYmxlIGRyaXZlciBjb2RlLiBUaGUgbW9kaWZpZWQgZnVuY3Rpb25zIGFyZSBpbiB0aGUgcGFja2V0IHRyYW5zbWlzc2lvbiBob3QgcGF0aCAobmRvX3N0YXJ0X3htaXQpLCBzbyB0aGV5IGFyZSBvbWl0dGVkIGZyb20gRm9jdXNTeW1ib2xzIHRvIGF2b2lkIHNrZXdpbmcgdGVzdCBkaXN0cmlidXRpb25zLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMTFUMDU6NTQ6NTguNjk0Njg1OTk4WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTMxOTMyNjkyMzkxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJOQVwiLFxuICAgIFwiSElCTUNHRVwiLFxuICAgIFwiSElOSUMzXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIHNrYiBsaWZlY3ljbGUgaXNzdWVzIChwb3RlbnRpYWwgVUFGIG9yIGRvdWJsZSBmcmVlKSBpbiB0aGUgVFggZXJyb3IgcGF0aHMgKERNQSBtYXBwaW5nIGZhaWx1cmVzKSBvZiB0aGUgQk5BLCBISUJNQ0dFLCBhbmQgSElOSUMzIG5ldHdvcmsgZHJpdmVycy4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiByZWFjaGFibGUgZHJpdmVyIGNvZGUuIFRoZSBtb2RpZmllZCBmdW5jdGlvbnMgYXJlIGluIHRoZSBwYWNrZXQgdHJhbnNtaXNzaW9uIGhvdCBwYXRoIChuZG9fc3RhcnRfeG1pdCksIHNvIHRoZXkgYXJlIG9taXR0ZWQgZnJvbSBGb2N1c1N5bWJvbHMgdG8gYXZvaWQgc2tld2luZyB0ZXN0IGRpc3RyaWJ1dGlvbnMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDA1OjU0OjU4LjY5NDY5Mjg0OFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTg2NDgwMDg3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgODAxYzI0NmM4ZjlhOGI0NTY1ZjIyZDg5N2M5ZmZkYTFkNWFkNDY1N1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU2F0IEp1bCAxMSAwNTo1NDo1NyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9jYWRlL2JuYS9ibmFkLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9jYWRlL2JuYS9ibmFkLmNcXG5pbmRleCA4ZTE5YWRkNzY0ZGIyOC4uOGI3NTAwNGJhN2M5ZDQgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvY2FkZS9ibmEvYm5hZC5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvY2FkZS9ibmEvYm5hZC5jXFxuQEAgLTMwMDYsNyArMzAwNiw2IEBAIGJuYWRfc3RhcnRfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbiBcXHR0eHFlbnQtXFx1MDAzZWhkci53aS5yZXNlcnZlZCA9IDA7XFxuIFxcdHR4cWVudC1cXHUwMDNlaGRyLndpLm51bV92ZWN0b3JzID0gdmVjdG9ycztcXG4gXFxuLVxcdGhlYWRfdW5tYXAtXFx1MDAzZXNrYiA9IHNrYjtcXG4gXFx0aGVhZF91bm1hcC1cXHUwMDNlbnZlY3MgPSAwO1xcbiBcXG4gXFx0LyogUHJvZ3JhbSB0aGUgdmVjdG9ycyAqL1xcbkBAIC0zMDE4LDYgKzMwMTcsNyBAQCBibmFkX3N0YXJ0X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG4gXFx0XFx0Qk5BRF9VUERBVEVfQ1RSKGJuYWQsIHR4X3NrYl9tYXBfZmFpbGVkKTtcXG4gXFx0XFx0cmV0dXJuIE5FVERFVl9UWF9PSztcXG4gXFx0fVxcbitcXHRoZWFkX3VubWFwLVxcdTAwM2Vza2IgPSBza2I7XFxuIFxcdEJOQV9TRVRfRE1BX0FERFIoZG1hX2FkZHIsIFxcdTAwMjZ0eHFlbnQtXFx1MDAzZXZlY3RvclswXS5ob3N0X2FkZHIpO1xcbiBcXHR0eHFlbnQtXFx1MDAzZXZlY3RvclswXS5sZW5ndGggPSBodG9ucyhsZW4pO1xcbiBcXHRkbWFfdW5tYXBfYWRkcl9zZXQoXFx1MDAyNnVubWFwLVxcdTAwM2V2ZWN0b3JzWzBdLCBkbWFfYWRkciwgZG1hX2FkZHIpO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGlibWNnZS9oYmdfdHhyeC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX3R4cnguY1xcbmluZGV4IDBhZTMxNDk5NDY3NjkzLi40MzgyYWY5MzdlMmU3NCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGlibWNnZS9oYmdfdHhyeC5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX3R4cnguY1xcbkBAIC0xNTUsNiArMTU1LDcgQEAgbmV0ZGV2X3R4X3QgaGJnX25ldF9zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXFxuIFxcdGJ1ZmZlci1cXHUwMDNlc2tiID0gc2tiO1xcbiBcXHRidWZmZXItXFx1MDAzZXNrYl9sZW4gPSBza2ItXFx1MDAzZWxlbjtcXG4gXFx0aWYgKHVubGlrZWx5KGhiZ19kbWFfbWFwKGJ1ZmZlcikpKSB7XFxuK1xcdFxcdGJ1ZmZlci1cXHUwMDNlc2tiID0gTlVMTDtcXG4gXFx0XFx0ZGV2X2tmcmVlX3NrYl9hbnkoc2tiKTtcXG4gXFx0XFx0cmV0dXJuIE5FVERFVl9UWF9PSztcXG4gXFx0fVxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM190eC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguY1xcbmluZGV4IDkzMDZiZjAwMjBjYWZlLi41NzM5ZWNiMDhkMGQzNyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM190eC5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguY1xcbkBAIC01NzgsOCArNTc4LDYgQEAgc3RhdGljIG5ldGRldl90eF90IGhpbmljM19zZW5kX29uZV9za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4gXFx0XFx0KndxZV9jb21iby50YXNrID0gdGFzaztcXG4gXFxuIFxcdHR4X2luZm8gPSBcXHUwMDI2dHhxLVxcdTAwM2V0eF9pbmZvW3BpXTtcXG4tXFx0dHhfaW5mby1cXHUwMDNlc2tiID0gc2tiO1xcbi1cXHR0eF9pbmZvLVxcdTAwM2V3cWViYl9jbnQgPSB3cWViYl9jbnQ7XFxuIFxcbiBcXHRlcnIgPSBoaW5pYzNfdHhfbWFwX3NrYihuZXRkZXYsIHNrYiwgdHhxLCB0eF9pbmZvLCBcXHUwMDI2d3FlX2NvbWJvKTtcXG4gXFx0aWYgKGVycikge1xcbkBAIC01ODksNiArNTg3LDkgQEAgc3RhdGljIG5ldGRldl90eF90IGhpbmljM19zZW5kX29uZV9za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4gXFx0XFx0Z290byBlcnJfZHJvcF9wa3Q7XFxuIFxcdH1cXG4gXFxuK1xcdHR4X2luZm8tXFx1MDAzZXNrYiA9IHNrYjtcXG4rXFx0dHhfaW5mby1cXHUwMDNld3FlYmJfY250ID0gd3FlYmJfY250O1xcbitcXG4gXFx0bmV0aWZfc3VicXVldWVfc2VudChuZXRkZXYsIHR4cS1cXHUwMDNlc3EtXFx1MDAzZXFfaWQsIHNrYi1cXHUwMDNlbGVuKTtcXG4gXFx0bmV0aWZfc3VicXVldWVfbWF5YmVfc3RvcChuZXRkZXYsIHR4cS1cXHUwMDNlc3EtXFx1MDAzZXFfaWQsXFxuIFxcdFxcdFxcdFxcdCAgaGluaWMzX3dxX2ZyZWVfd3FlYmJzKFxcdTAwMjZ0eHEtXFx1MDAzZXNxLVxcdTAwM2V3cSksXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDA1OjU0OjU5LjI4MTg2OTcwNloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTMxMzQ1NTAwMTgzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJOQVwiLFxuICAgIFwiSElCTUNHRVwiLFxuICAgIFwiSElOSUMzXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIHNrYiBsaWZlY3ljbGUgaXNzdWVzIChwb3RlbnRpYWwgVUFGIG9yIGRvdWJsZSBmcmVlKSBpbiB0aGUgVFggZXJyb3IgcGF0aHMgKERNQSBtYXBwaW5nIGZhaWx1cmVzKSBvZiB0aGUgQk5BLCBISUJNQ0dFLCBhbmQgSElOSUMzIG5ldHdvcmsgZHJpdmVycy4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiByZWFjaGFibGUgZHJpdmVyIGNvZGUuIFRoZSBtb2RpZmllZCBmdW5jdGlvbnMgYXJlIGluIHRoZSBwYWNrZXQgdHJhbnNtaXNzaW9uIGhvdCBwYXRoIChuZG9fc3RhcnRfeG1pdCksIHNvIHRoZXkgYXJlIG9taXR0ZWQgZnJvbSBGb2N1c1N5bWJvbHMgdG8gYXZvaWQgc2tld2luZyB0ZXN0IGRpc3RyaWJ1dGlvbnMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgODAxYzI0NmM4ZjlhOGI0NTY1ZjIyZDg5N2M5ZmZkYTFkNWFkNDY1N1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgSnVsIDExIDA1OjU0OjU3IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvY2FkZS9ibmEvYm5hZC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvY2FkZS9ibmEvYm5hZC5jXG5pbmRleCA4ZTE5YWRkNzY0ZGIyOC4uOGI3NTAwNGJhN2M5ZDQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9jYWRlL2JuYS9ibmFkLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2NhZGUvYm5hL2JuYWQuY1xuQEAgLTMwMDYsNyArMzAwNiw2IEBAIGJuYWRfc3RhcnRfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuIFx0dHhxZW50LVx1MDAzZWhkci53aS5yZXNlcnZlZCA9IDA7XG4gXHR0eHFlbnQtXHUwMDNlaGRyLndpLm51bV92ZWN0b3JzID0gdmVjdG9ycztcbiBcbi1cdGhlYWRfdW5tYXAtXHUwMDNlc2tiID0gc2tiO1xuIFx0aGVhZF91bm1hcC1cdTAwM2VudmVjcyA9IDA7XG4gXG4gXHQvKiBQcm9ncmFtIHRoZSB2ZWN0b3JzICovXG5AQCAtMzAxOCw2ICszMDE3LDcgQEAgYm5hZF9zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG4gXHRcdEJOQURfVVBEQVRFX0NUUihibmFkLCB0eF9za2JfbWFwX2ZhaWxlZCk7XG4gXHRcdHJldHVybiBORVRERVZfVFhfT0s7XG4gXHR9XG4rXHRoZWFkX3VubWFwLVx1MDAzZXNrYiA9IHNrYjtcbiBcdEJOQV9TRVRfRE1BX0FERFIoZG1hX2FkZHIsIFx1MDAyNnR4cWVudC1cdTAwM2V2ZWN0b3JbMF0uaG9zdF9hZGRyKTtcbiBcdHR4cWVudC1cdTAwM2V2ZWN0b3JbMF0ubGVuZ3RoID0gaHRvbnMobGVuKTtcbiBcdGRtYV91bm1hcF9hZGRyX3NldChcdTAwMjZ1bm1hcC1cdTAwM2V2ZWN0b3JzWzBdLCBkbWFfYWRkciwgZG1hX2FkZHIpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9oaWJtY2dlL2hiZ190eHJ4LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGlibWNnZS9oYmdfdHhyeC5jXG5pbmRleCAwYWUzMTQ5OTQ2NzY5My4uNDM4MmFmOTM3ZTJlNzQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGlibWNnZS9oYmdfdHhyeC5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaGlibWNnZS9oYmdfdHhyeC5jXG5AQCAtMTU1LDYgKzE1NSw3IEBAIG5ldGRldl90eF90IGhiZ19uZXRfc3RhcnRfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuIFx0YnVmZmVyLVx1MDAzZXNrYiA9IHNrYjtcbiBcdGJ1ZmZlci1cdTAwM2Vza2JfbGVuID0gc2tiLVx1MDAzZWxlbjtcbiBcdGlmICh1bmxpa2VseShoYmdfZG1hX21hcChidWZmZXIpKSkge1xuK1x0XHRidWZmZXItXHUwMDNlc2tiID0gTlVMTDtcbiBcdFx0ZGV2X2tmcmVlX3NrYl9hbnkoc2tiKTtcbiBcdFx0cmV0dXJuIE5FVERFVl9UWF9PSztcbiBcdH1cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL2hpbmljM190eC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguY1xuaW5kZXggOTMwNmJmMDAyMGNhZmUuLjU3MzllY2IwOGQwZDM3IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9oaW5pYzNfdHguY1xuQEAgLTU3OCw4ICs1NzgsNiBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgaGluaWMzX3NlbmRfb25lX3NrYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0XHQqd3FlX2NvbWJvLnRhc2sgPSB0YXNrO1xuIFxuIFx0dHhfaW5mbyA9IFx1MDAyNnR4cS1cdTAwM2V0eF9pbmZvW3BpXTtcbi1cdHR4X2luZm8tXHUwMDNlc2tiID0gc2tiO1xuLVx0dHhfaW5mby1cdTAwM2V3cWViYl9jbnQgPSB3cWViYl9jbnQ7XG4gXG4gXHRlcnIgPSBoaW5pYzNfdHhfbWFwX3NrYihuZXRkZXYsIHNrYiwgdHhxLCB0eF9pbmZvLCBcdTAwMjZ3cWVfY29tYm8pO1xuIFx0aWYgKGVycikge1xuQEAgLTU4OSw2ICs1ODcsOSBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgaGluaWMzX3NlbmRfb25lX3NrYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuIFx0XHRnb3RvIGVycl9kcm9wX3BrdDtcbiBcdH1cbiBcbitcdHR4X2luZm8tXHUwMDNlc2tiID0gc2tiO1xuK1x0dHhfaW5mby1cdTAwM2V3cWViYl9jbnQgPSB3cWViYl9jbnQ7XG4rXG4gXHRuZXRpZl9zdWJxdWV1ZV9zZW50KG5ldGRldiwgdHhxLVx1MDAzZXNxLVx1MDAzZXFfaWQsIHNrYi1cdTAwM2VsZW4pO1xuIFx0bmV0aWZfc3VicXVldWVfbWF5YmVfc3RvcChuZXRkZXYsIHR4cS1cdTAwM2VzcS1cdTAwM2VxX2lkLFxuIFx0XHRcdFx0ICBoaW5pYzNfd3FfZnJlZV93cWViYnMoXHUwMDI2dHhxLVx1MDAzZXNxLVx1MDAzZXdxKSxcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDA1OjU0OjU5LjI4MTg3MTMyNloiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE0MjMxNTk5NDA2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgRXRoZXJuZXQgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSBoYXZlIGEgcGF0Y2ggaGVyZSB0aGF0J3MgdG91Y2hpbmcgdGhyZWUgRXRoZXJuZXQgZHJpdmVyczogYGJuYWQuY2AgKEJyb2NhZGUpLCBgaGJnX3R4cnguY2AgKEhpU2lsaWNvbiksIGFuZCBgaGluaWMzX3R4LmNgIChIdWF3ZWkpLiBUaGUgY29yZSBvZiB0aGUgZml4IHNlZW1zIHRvIGJlIGFib3V0IERNQSBtYXBwaW5nIGFuZCBlbnN1cmluZyB0aGUgYHNrYmAgKHNvY2tldCBidWZmZXIpIHBvaW50ZXIgaXMgaGFuZGxlZCBjb3JyZWN0bHkgdG8gcHJldmVudCB1c2UtYWZ0ZXItZnJlZSBvciBkb3VibGUtZnJlZSBzY2VuYXJpb3MuIEVzc2VudGlhbGx5LCB0aGV5J3JlIG1ha2luZyBzdXJlIGBza2JgIGlzIG9ubHkgdmFsaWQgYWZ0ZXIgdGhlIERNQSBtYXBwaW5nIHN1Y2NlZWRzLCBvciBjbGVhcmVkIG9uIGZhaWx1cmUuIFNvbGlkIHByYWN0aWNlLCBidXQgdGhlIHJlYWwgcXVlc3Rpb24gaXMgaG93IHdlIHZhbGlkYXRlIHRoaXMgZml4IGVmZmVjdGl2ZWx5LlxuXG5NeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgY2FuIHdlIGZ1enogdGhlc2UgZHJpdmVycyB0byByZWFsbHkgc3RyZXNzLXRlc3QgdGhlIGNoYW5nZXM/IFRoZSBjYXRjaCB3aXRoIHRoZXNlIHNwZWNpZmljIGhhcmR3YXJlIGRyaXZlcnMgaXMgdGhhdCBmdXp6aW5nIGRpcmVjdGx5IGluIHRoZWlyIFwibmF0aXZlXCIgZW52aXJvbm1lbnQgaXMgdG91Z2guIFR5cGljYWxseSwgeW91J2QgbmVlZCBzb2Z0d2FyZSBlbXVsYXRpb24gb3IgYSB2aXJ0dWFsIHNldHVwIHdpdGggdG9vbHMgbGlrZSBgdmV0aGAsIGB0dW5gLCBvciBgdGFwYC4gSG93ZXZlciwgdGhlc2UgYXJlIHNwZWNpYWxpemVkIGhhcmR3YXJlIGFuZCBhcmUgbm90IGVhc2lseSBmdXp6ZWQuXG5cbldhaXQgYSBtaW51dGUuLi5zeXprYWxsZXIhIFN5emthbGxlciBpcyBwcmV0dHkgZ29vZCB3aXRoIG5ldHdvcmsgZHJpdmVycywgZXNwZWNpYWxseSBpZiB0aGV5IGFyZSBQQ0kgZGV2aWNlcy4gSXQgdXNlcyBQQ0kgZnV6emluZyB2aWEgYHN5el9wY2lfZGV2aWNlYC4gQnV0LCBJIG5lZWQgdG8gY29uZmlybSB3aGV0aGVyIHRoZXNlIGFyZSBQQ0kgZHJpdmVycyBvciBwbGF0Zm9ybSBkcml2ZXJzLiBCcm9jYWRlIEJOQSwgSSByZW1lbWJlciB0aGF0IG9uZSBpcyBkZWZpbml0ZWx5IFBDSS4gTm93LCB3aGF0IGFib3V0IEhpU2lsaWNvbidzIGhpYm1jZ2U/IEFuZCwgaXMgSHVhd2VpIGhpbmljMyBhIFBDSSBkZXZpY2UsIHRvbz9cblxuUmlnaHQsIHRoZSBuZXh0IHN0ZXAgaXMgdG8gZGl2ZSBpbnRvIHRoZSBLY29uZmlnIGZpbGVzLiBUaGF0J2xsIHF1aWNrbHkgdGVsbCBtZSB0aGUgZHJpdmVyIHR5cGUgYW5kIGhvdyB0aGVzZSBhcmUgYnVpbHQgYW5kIGV4cG9zZWQgdG8gdGhlIHN5c3RlbS4gVGhhdCdzIHdoZXJlIEkgbmVlZCB0byBzdGFydC5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjc1MCwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI5NiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDA1OjU1OjEzLjUxMzQ3MzEwMVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNTMwOTk4NzMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEJOQVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9jYWRlL2JuYS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2NhZGUvYm5hL0tjb25maWctNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9jYWRlL2JuYS9LY29uZmlnOjY6Y29uZmlnIEJOQVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2NhZGUvYm5hL0tjb25maWctNy1cXHR0cmlzdGF0ZSBcXFwiUUxvZ2ljIEJSLXNlcmllcyAxMDEwLzEwMjAvMTg2MCAxMEdiIEV0aGVybmV0IERyaXZlciBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQwNTo1NToxMy44NjY2MDg1OTRaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDkxMjgxNTg4NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqS2NvbmZpZyBEaXZlIGZvciBoaWJtY2dlIGFuZCBoaW5pYzMqKlxuXG5BbHJpZ2h0LCB0aW1lIHRvIGdldCBteSBoYW5kcyBkaXJ0eS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGRpdmUgc3RyYWlnaHQgaW50byBLY29uZmlnLiBJIG5lZWQgdG8gcXVpY2tseSBhc2NlcnRhaW4gdGhlIHN0YXR1cyBvZiBgaGlibWNnZWAgYW5kIGBoaW5pYzNgLiBUaGlzIGlzbid0IGp1c3QgYWJvdXQgcHJlc2VuY2Ugb3IgYWJzZW5jZTsgSSdtIGxvb2tpbmcgZm9yIHRoZSB3aG9sZSBwaWN0dXJlLiBJJ20gdGhpbmtpbmcgYWJvdXQ6XG5cbiogICAqKkRlcGVuZGVuY2llczoqKiBXaGF0IG90aGVyIGNvbmZpZ3VyYXRpb25zIG5lZWQgdG8gYmUgc2V0IG9yIGFyZSBhZmZlY3RlZCBpZiBlaXRoZXIgb2YgdGhlc2UgYXJlIGVuYWJsZWQ/IEFyZSB0aGVyZSBhbnkgb2J2aW91cyBjb25mbGljdHMgSSBuZWVkIHRvIGJlIGF3YXJlIG9mPyBBcmUgdGhlcmUgc3BlY2lmaWMgaGFyZHdhcmUgZmVhdHVyZXMgSSBzaG91bGQgbG9vayBvdXQgZm9yP1xuKiAgICoqRGVmYXVsdCBWYWx1ZXM6KiogV2hhdCBhcmUgdGhlIGRlZmF1bHQgdmFsdWVzLCBhbmQgZG8gdGhleSBtYWtlIHNlbnNlIGdpdmVuIHRoZSBjdXJyZW50IGFyY2hpdGVjdHVyZSBhbmQgaW50ZW5kZWQgdXNlIGNhc2VzPyBBbnkgb2J2aW91cyByZWdyZXNzaW9ucyBoZXJlP1xuKiAgICoqRG9jdW1lbnRhdGlvbiBMaW5rczoqKiBEb2VzIHRoZSBLY29uZmlnIGVudHJ5IHBvaW50IHRvIGNsZWFyIGRvY3VtZW50YXRpb24sIG9yIHNob3VsZCBJIHN0YXJ0IHB1dHRpbmcgdGhlIHBpZWNlcyB0b2dldGhlciBteXNlbGY/IEFueSBjb21tZW50cyB0aGF0IHByb3ZpZGUga2V5IGhpbnRzP1xuKiAgICoqQnVpbGQtVGltZSBCZWhhdmlvcjoqKiBBcmUgdGhlcmUgY29uZGl0aW9uYWwgYnVpbGQgb3B0aW9ucz8gV2hhdCBhcmUgdGhlIGltcGxpY2F0aW9ucyBvZiBkaWZmZXJlbnQgY29uZmlndXJhdGlvbiBzZXR0aW5ncz8gSG93IGRvZXMgdGhpcyBpbXBhY3QgdGhlIGJ1aWxkIGVudmlyb25tZW50P1xuKiAgICoqTG9jYXRpb246KiogV2hlcmUgYXJlIHRoZXNlIGNvbmZpZ3VyYXRpb25zIGRlZmluZWQgaW4gdGhlIG92ZXJhbGwgYnVpbGQgc3RydWN0dXJlPyBJcyBpdCBlYXN5IHRvIGZpbmQgdGhlbT8gQXJlIHRoZXkgaW4gYSBsb2dpY2FsIHBsYWNlP1xuKiAgICoqSGlzdG9yeToqKiBJcyB0aGVyZSBhbnkgaGlzdG9yeSBvZiB0aGVzZSBjb25maWd1cmF0aW9ucz8gV2hhdCB3ZXJlIHRoZSBwcmV2aW91cyBjb25maWd1cmF0aW9ucz8gSGF2ZSB0aGVyZSBiZWVuIGFueSByZXBvcnRlZCBpc3N1ZXMgdGhhdCB3b3VsZCBwcm92aWRlIGNvbnRleHQ/XG5cbkJhc2ljYWxseSwgSSBuZWVkIGEgY29tcHJlaGVuc2l2ZSBvdmVydmlldyB0byB1bmRlcnN0YW5kIGhvdyB0aGVzZSBtb2R1bGVzIGFyZSBpbnRlZ3JhdGVkLiBUaGlzIHdpbGwgYWxsb3cgbWUgdG8gYXNzZXNzIHRoZSBjdXJyZW50IHN0YXRlIGFuZCBwcm92aWRlIHJlbGlhYmxlIHJlY29tbWVuZGF0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzU0OCwiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDA1OjU1OjI0Ljc3OTQyNjQzMVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDI4MjQyMjcsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBISUJNQ0dFXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9oaWJtY2dlL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDA1OjU1OjI0LjkyMjI1OTcxOFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE2MDI5NDkzODc3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MzY0MSwiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTFUMDU6NTU6NDAuOTUxNzU2NDg1WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMzMzM5ODM0MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgSElOSUMzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2h1YXdlaS9oaW5pYzMvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL0tjb25maWctNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9odWF3ZWkvaGluaWMzL0tjb25maWc6Njpjb25maWcgSElOSUMzXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaHVhd2VpL2hpbmljMy9LY29uZmlnLTctXFx0dHJpc3RhdGUgXFxcIkh1YXdlaSAzcmQgZ2VuZXJhdGlvbiBuZXR3b3JrIGFkYXB0ZXJzIChISU5JQzMpIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDA1OjU1OjQxLjI4NTE2MDQ0OFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE5Njc5NjY4OTQwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFBhdGNoOiBOZXR3b3JrIERyaXZlciBNZW1vcnkgTWFuYWdlbWVudCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGl0IHNlZW1zIHRvIHRhcmdldCBzb21lIGNyaXRpY2FsIG1lbW9yeSBtYW5hZ2VtZW50IGlzc3VlcyBhY3Jvc3MgYSBmZXcgbmV0d29yayBkcml2ZXJzLiBTcGVjaWZpY2FsbHksIGl0J3MgdG91Y2hpbmcgdGhyZWUgZmlsZXM6IGBibmFkLmNgICh0aGF0J3MgdGhlIEJyb2NhZGUgZHJpdmVyLCByaWdodD8pLCBgaGJnX3R4cnguY2AgZm9yIHRoZSBoaXNpbGljb24sIGFuZCBgaGluaWMzX3R4LmNgLCB0aGUgSHVhd2VpIGhpbmljMyBkcml2ZXIuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcIkFoLCBzb3VuZHMgbGlrZSB3ZSdyZSBkZWFsaW5nIHdpdGggdGhlIGNsYXNzaWMgJ3VzZS1hZnRlci1mcmVlJyBzY2VuYXJpbyBvciBwb3RlbnRpYWxseSBtZW1vcnkgbGVha3NcIi5cblxuVGhlIGNvcmUgb2YgdGhlIHByb2JsZW0gaXMgY2xlYXI6IGFuIGBza2JgIChzb2NrZXQgYnVmZmVyKSBpcyBiZWluZyBhc3NpZ25lZCB0byBhIGRhdGEgc3RydWN0dXJlICpiZWZvcmUqIHRoZSBETUEgbWFwcGluZyBvcGVyYXRpb24uIElmIHRoYXQgRE1BIG1hcHBpbmcgZmFpbHMsIHRoZSBgc2tiYCBnZXRzIGZyZWVkLCBhcyBpdCBzaG91bGQsIGJ1dCB0aGUgcG9pbnRlciB3aXRoaW4gdGhlIGRhdGEgc3RydWN0dXJlIHJlbWFpbnMgZGFuZ2xpbmcuIFRoYXQncyBqdXN0IGFza2luZyBmb3IgdHJvdWJsZSBkb3duIHRoZSBsaW5lLiBXZSBhbGwga25vdyBob3cgdW5wcmVkaWN0YWJsZSB0aG9zZSBkYW5nbGluZyBwb2ludGVycyBjYW4gYmUuIFRoZSBmaXggaXMgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZCwgdGhhbmtmdWxseSwgZWl0aGVyIHJlLWFycmFuZ2luZyB0aGUgc2VxdWVuY2UsIG9yIGNsZWFyIHRoZSBkYW5nbGluZyBwb2ludGVyIGluIGNhc2Ugb2YgRE1BIGZhaWx1cmVzLlxuXG5Ob3csIEknbSB0aGlua2luZywgbGV0J3MganVzdCBtYWtlIHN1cmUgdGhlcmUgYXJlIG5vIGNvbmZpZyBjaGFuZ2VzIGZvciBoaWJtY2dlLi4uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM3NzksIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxODgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTFUMDU6NTY6MDAuOTY0ODMxMzE3WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzY2OTcwMzIyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBISUJNQ0dFXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9LY29uZmlnPTE0NT1lbmRpZiAjIEFSTSB8fCBBUk02NCB8fCBDT01QSUxFX1RFU1RcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vS2NvbmZpZy0xNDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL0tjb25maWc6MTQ3OmNvbmZpZyBISUJNQ0dFXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL0tjb25maWctMTQ4LVxcdHRyaXN0YXRlIFxcXCJIaXNpbGljb24gQk1DIEdpZ2FiaXQgRXRoZXJuZXQgRGV2aWNlIFN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDA1OjU2OjAyLjczMTgwNzkzWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg0NDU0MjEwMTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBSZWFjaGFiaWxpdHkgb2YgSGFyZHdhcmUgRHJpdmVycyBmb3IgRnV6emluZyoqXG5cbk9rYXksIHNvIHRoZXNlIGFyZSBkZWZpbml0ZWx5IGhhcmR3YXJlIGRyaXZlcnMuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IFN5emthbGxlciB1c3VhbGx5IGRvZXNuJ3QgdGFyZ2V0IHRoZXNlIGRpcmVjdGx5IHVubGVzcyB3ZSdyZSBkZWFsaW5nIHdpdGggYSBzcGVjaWFsaXplZCBQQ0kgb3IgcGxhdGZvcm0gZGV2aWNlIGZ1enppbmcgc2V0dXAuIEJ1dCB0aGUgcHJvbXB0IHNwZWNpZmljYWxseSBtZW50aW9ucyBjb2RlIHBhdGhzIHRoYXQgYXJlIGluYWNjZXNzaWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aXRoIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlLlxuXG5TaW5jZSB0aGVzZSBkcml2ZXJzIOKAkyBCcm9jYWRlLCBIaVNpbGljb24gQk1DLCBIdWF3ZWkgSElOSUMzIOKAkyBhcmUgYWxsIHBoeXNpY2FsIGhhcmR3YXJlLCB0aGV5J3JlIGdlbmVyYWxseSBvdXQgb2YgcmVhY2ggaW4gUUVNVS9HQ0UgdW5sZXNzIGEgZGVkaWNhdGVkIGVtdWxhdG9yIGV4aXN0cy4gQW5kIHRoZXJlJ3Mgbm8gc3RhbmRhcmQgZW11bGF0b3IgZm9yICp0aGVzZSogcGFydGljdWxhciBOSUNzIGluIFFFTVUsIGFzIGZhciBhcyBJIGtub3cuXG5cbldhaXQsIFN5emthbGxlciAqZG9lcyogaGF2ZSBhIFBDSSBmdXp6ZXIgdGhhdCBjYW4gZW11bGF0ZSBQQ0kgZGV2aWNlcy4uLiBkb2VzIGl0IGhhbmRsZSB0aGVzZSBzcGVjaWZpYyBvbmVzPyBXZWxsLCBTeXprYWxsZXIncyBQQ0kgZnV6emVyICpjYW4qIGluamVjdCBhcmJpdHJhcnkgUENJIGRldmljZXMsIGJ1dCBpdCdzIGltcG9ydGFudCB0byByZW1lbWJlciBpdCBkb2Vzbid0IGRvIGEgZnVsbCBoYXJkd2FyZSBlbXVsYXRpb24sIGl0IGp1c3QgcHJvdmlkZXMgdGhlIE1NSU8vUElPL0RNQSByZXNwb25zZXMuIFN0aWxsLCB0aGF0J3Mgc29tZXRoaW5nLlxuXG5Ib3dldmVyLCBteSB1c3VhbCBhc3N1bXB0aW9uIGlzIHRoYXQgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVycyBsaWtlIHRoZXNlLCBldGhlcm5ldC9icm9jYWRlLCBldGhlcm5ldC9oaXNpbGljb24sIGV0aGVybmV0L2h1YXdlaSwgYXJlIG9mZiBsaW1pdHMgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHVubGVzcyB0aGVyZSdzIGVpdGhlciBhIGtub3duIGVtdWxhdG9yIG9yIHRoZXkgdXNlIHZpcnR1YWwgb3IgVVNCIGRldmljZXMuXG5cbkxldCdzIHF1aWNrbHkgY29uZmlybSB3aGV0aGVyIHRoZXNlIGFyZSBQQ0kgb3IgcGxhdGZvcm0gZGV2aWNlcy4gQk5BLi4uIGlzIGRlZmluaXRlbHkgUENJLiBISU5JQzMgaXMgYWxzbyBQQ0kuIEhJQk1DR0UuLi4gSSAqdGhpbmsqIHRoYXQncyBwbGF0Zm9ybSwgYnV0IEkgc2hvdWxkIGRvdWJsZS1jaGVjayB0aGF0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0Njk1LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mjg3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDA1OjU2OjExLjE3NzIzMDk0OVoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDM3MjMwMDkxLCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtb2R1bGVfcGxhdGZvcm1fZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9oaWJtY2dlL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTFUMDU6NTY6MTEuNjE0NDY4NjNaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODUzODkzMjYwOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjUzNzcsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDA1OjU2OjIwLjE1MzQwMzg1OFoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzU3MDIyMzIyLCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwbGF0Zm9ybV9kcml2ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQwNTo1NjoyMC41MTA0MzUwMVoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNTU1NjkwODAwNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjQ2NDMsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDA1OjU2OjQ2LjA2NzM0NjEwNFoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDM4ODA4MDAwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInBjaV9kcml2ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9oaWJtY2dlL2hiZ19lcnIuYz0xODQ9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZXJyb3JfaGFuZGxlcnMgaGJnX3BjaV9lcnJfaGFuZGxlciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9oaWJtY2dlL2hiZ19lcnIuYy0xOTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX2Vyci5jOjE5MTp2b2lkIGhiZ19zZXRfcGNpX2Vycl9oYW5kbGVyKHN0cnVjdCBwY2lfZHJpdmVyICpwZHJ2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9oaWJtY2dlL2hiZ19lcnIuYy0xOTIte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX2Vyci5oLTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX2Vyci5oOjk6dm9pZCBoYmdfc2V0X3BjaV9lcnJfaGFuZGxlcihzdHJ1Y3QgcGNpX2RyaXZlciAqcGRydik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX2Vyci5oLTEwLWludCBoYmdfcmVzZXQoc3RydWN0IGhiZ19wcml2ICpwcml2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9oaWJtY2dlL2hiZ19tYWluLmM9NDk4PU1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBoYmdfcGNpX3RibCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX21haW4uYy00OTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX21haW4uYzo1MDA6c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGhiZ19kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hpYm1jZ2UvaGJnX21haW4uYy01MDEtXFx0Lm5hbWVcXHRcXHQ9IFxcXCJoaWJtY2dlXFxcIixcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTFUMDU6NTY6NDYuNTA2MTYwNzM1WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjIzNzc3ODc2MjkyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5c2lzIG9mIE5ldHdvcmsgRHJpdmVyIFBhdGNoIGZvciBGdXp6aW5nKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyBtb2RpZnlpbmcgdGhyZWUgbmV0d29yayBkcml2ZXJzOiBgYm5hZC5jYCAoQnJvY2FkZSksIGBoYmdfdHhyeC5jYCAoSGlzaWxpY29uKSwgYW5kIGBoaW5pYzNfdHguY2AgKEh1YXdlaSkuIFRoZSBjb3JlIG9mIHRoZSBjaGFuZ2UgcmV2b2x2ZXMgYXJvdW5kIGZpeGluZyBhIHVzZS1hZnRlci1mcmVlIG9yIG1lbW9yeSBsZWFrIGluIHRoZSB0cmFuc21pdCBwYXRoLiBFc3NlbnRpYWxseSwgdGhleSdyZSBkZWxheWluZyB0aGUgYXNzaWdubWVudCBvZiB0aGUgYHNrYmAgdG8gaW50ZXJuYWwgdHJhY2tpbmcgc3RydWN0dXJlcyB1bnRpbCAqYWZ0ZXIqIHRoZSBETUEgbWFwcGluZyBpcyBzdWNjZXNzZnVsLCBvciBjbGVhcmluZyBpdCBpZiB0aGUgbWFwcGluZyBmYWlscy4gVGhpcyBwcmV2ZW50cyBkb3VibGUgZnJlZXMgb3IgYWNjZXNzZXMgdG8gZnJlZWQgbWVtb3J5IGluIGVycm9yIGNvbmRpdGlvbnMsIHNwZWNpZmljYWxseSBkdXJpbmcgRE1BIGZhaWx1cmVzLlxuXG5UaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIHdpdGhpbiB0aGUgY3JpdGljYWwgVFggcGF0aCBvZiB0aGVzZSBuZXR3b3JrIGRyaXZlcnMuIFNpbmNlIHRoZXkgYXJlIFBDSSBuZXR3b3JrIGRyaXZlcnMsIHRoZXkgYXJlIHJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMsIGxpa2UgUUVNVSwgdGhyb3VnaCBQQ0kgZW11bGF0aW9uIG9yIGZ1enppbmcgdGVjaG5pcXVlcyB1c2luZyBzeXprYWxsZXIsIHNwZWNpZmljYWxseSBgc3l6X3BjaV9kZXZpY2VfYWRkYC4gVGhlIGtleSBjb25maWdzIHRvIGVuYWJsZSBoZXJlIGFyZSBgQ09ORklHX0JOQWAsIGBDT05GSUdfSElCTUNHRWAsIGFuZCBgQ09ORklHX0hJTklDM2AsIHdoaWNoIGFyZSBhbGwgdmVyaWZpZWQgYXMgdGhlIGNvcnJlY3QgY29uZmlndXJhdGlvbnMgYmFzZWQgb24gdGhlaXIgcmVzcGVjdGl2ZSBLY29uZmlnIGZpbGVzLlxuXG5Ob3csIHRoZSBpbnRlcmVzdGluZyBwYXJ0IGlzIHRoZSBgRm9jdXNTeW1ib2xzYC4gVGhlIHByb21wdCBzcGVjaWZpY2FsbHkgYWR2aXNlcyBhZ2FpbnN0IGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gYXZvaWQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4gTXkgZmlyc3QgaW5zdGluY3Qgd2FzIHRvIGluY2x1ZGUgdGhlIG1vZGlmaWVkIGZ1bmN0aW9uczogYGJuYWRfc3RhcnRfeG1pdGAsIGBoYmdfbmV0X3N0YXJ0X3htaXRgLCBhbmQgYGhpbmljM19zZW5kX29uZV9za2JgLiBCdXQsIGBibmFkX3N0YXJ0X3htaXRgIGFuZCBgaGJnX25ldF9zdGFydF94bWl0YCBhcmUgYWN0dWFsbHkgdGhlIGBuZG9fc3RhcnRfeG1pdGAgZnVuY3Rpb25zLCB3aGljaCBpcyAqdGhlKiBob3QgcGF0aCBmb3IgbmV0d29yayBkcml2ZXJzLiBTaW5jZSB0aGUgcGF0Y2ggKm9ubHkqIG1vZGlmaWVzIHRoaXMgZnVuY3Rpb24gKG9yIGZ1bmN0aW9ucyBjYWxsZWQgYnkgaXQpLCBsaXN0aW5nIHRoZXNlIHdvdWxkIGVmZmVjdGl2ZWx5IGp1c3QgZm9jdXMgb24gdGhlIGNvcmUgcGFja2V0IHRyYW5zbWl0IG1lY2hhbmlzbSwgd2hpY2ggaXMgYWxyZWFkeSBoZWF2aWx5IGZ1enplZCBpbiBhbnkgbmV0d29yayBzZXR1cC4gV2hpbGUgdGhlIGJ1ZyBpcyBpbiB0aGUgRE1BIGVycm9yIHBhdGgsIGZ1enppbmcgYG5kb19zdGFydF94bWl0YCBkaXJlY3RseSBtYXkgbm90IGVmZmVjdGl2ZWx5IHRhcmdldCB0aGUgc3BlY2lmaWMgZXJyb3IgY29uZGl0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoaXMgcGF0Y2guIEFuZCBzaW5jZSBgaGluaWMzX3NlbmRfb25lX3NrYmAgaXMgY2FsbGVkIGJ5IHRoZSBob3QgcGF0aCBgaGluaWMzX3htaXRfZnJhbWVgLCB3aGljaCBpcyBgbmRvX3N0YXJ0X3htaXRgLCB0aGUgc2FtZSBsb2dpYyBhcHBsaWVzLlxuXG5TbywgZXZlbiB0aG91Z2ggdGhlIHBhdGNoICpkb2VzKiBtb2RpZnkgdGhlc2Ugc3BlY2lmaWMgZnVuY3Rpb25zLCBJJ20gZ29pbmcgdG8gZm9sbG93IHRoZSBwcm9tcHQncyByZWNvbW1lbmRhdGlvbiBhbmQgbGVhdmUgYEZvY3VzU3ltYm9sc2AgZW1wdHkuIFRoaXMgaXMgbGlrZWx5IHRoZSBiZXR0ZXIgY2hvaWNlLCB0byBhdm9pZCBiaWFzaW5nIHRoZSBmdXp6aW5nIHRvd2FyZHMgYSBnZW5lcmljIGhvdC1wYXRoLCBldmVuIGlmIHRoYXQncyB3aGVyZSB0aGUgY29kZSBtb2RpZmljYXRpb24gaXMuIEJ5IGxlYXZpbmcgaXQgZW1wdHksIHdlIGhvcGUgdGhlIGZ1enplciB3aWxsIGJlIG1vcmUgZm9jdXNlZCBvbiBlcnJvciBwYXRocy5cblxuVGhlcmUncyBubyByZWFzb24gKm5vdCogdG8gZnV6eiB0aGlzLiBJdCdzIGEgZnVuY3Rpb25hbCBmaXggZm9yIGEgcG90ZW50aWFsIG1lbW9yeSBzYWZldHkgaXNzdWUgZHVyaW5nIERNQSBtYXBwaW5nIGZhaWx1cmVzLCB3aGljaCBjb3VsZCBpbnRyb2R1Y2UgY3JpdGljYWwgYnVncy5cblxuVGhlcmVmb3JlLCBJJ20gc2V0dGluZzpcblxuKiAgIGBXb3J0aEZ1enppbmdgOiBgdHJ1ZWBcbiogICBgRW5hYmxlQ29uZmlnc2A6IGBbXCJCTkFcIiwgXCJISUJNQ0dFXCIsIFwiSElOSUMzXCJdYFxuKiAgIGBGb2N1c1N5bWJvbHNgOiBgW11gXG5cblJlYXNvbmluZzogXCJUaGUgcGF0Y2ggZml4ZXMgc2tiIGxpZmVjeWNsZSBpc3N1ZXMgKHBvdGVudGlhbCBVQUYgb3IgZG91YmxlIGZyZWUpIGluIHRoZSBUWCBlcnJvciBwYXRocyAoRE1BIG1hcHBpbmcgZmFpbHVyZXMpIG9mIHRoZSBCTkEsIEhJQk1DR0UsIGFuZCBISU5JQzMgbmV0d29yayBkcml2ZXJzLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHJlYWNoYWJsZSBkcml2ZXIgY29kZS4gU3BlY2lmaWNhbGx5LCBhdm9pZGluZyB0aGUgbGlzdGluZyBvZiBob3QtcGF0aCBmdW5jdGlvbnMsIGFzIHRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIGhvdC1wYXRoIGZ1bmN0aW9ucyBvciB0aG9zZSBjYWxsZWQgYnkgdGhlbS5cIlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MTA5LCJPdXRwdXRUb2tlbnMiOjEzMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyNzYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTFUMDU6NTc6MTAuMjg0MDM5OTA2WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzQzMzI0MTUzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCTkFcIixcbiAgICBcIkhJQk1DR0VcIixcbiAgICBcIkhJTklDM1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBza2IgbGlmZWN5Y2xlIGlzc3VlcyAocG90ZW50aWFsIFVBRiBvciBkb3VibGUgZnJlZSkgaW4gdGhlIFRYIGVycm9yIHBhdGhzIChETUEgbWFwcGluZyBmYWlsdXJlcykgb2YgdGhlIEJOQSwgSElCTUNHRSwgYW5kIEhJTklDMyBuZXR3b3JrIGRyaXZlcnMuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcmVhY2hhYmxlIGRyaXZlciBjb2RlLiBUaGUgbW9kaWZpZWQgZnVuY3Rpb25zIGFyZSBpbiB0aGUgcGFja2V0IHRyYW5zbWlzc2lvbiBob3QgcGF0aCAobmRvX3N0YXJ0X3htaXQpLCBzbyB0aGV5IGFyZSBvbWl0dGVkIGZyb20gRm9jdXNTeW1ib2xzIHRvIGF2b2lkIHNrZXdpbmcgdGVzdCBkaXN0cmlidXRpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJOQVwiLFxuICAgIFwiSElCTUNHRVwiLFxuICAgIFwiSElOSUMzXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIHNrYiBsaWZlY3ljbGUgaXNzdWVzIChwb3RlbnRpYWwgVUFGIG9yIGRvdWJsZSBmcmVlKSBpbiB0aGUgVFggZXJyb3IgcGF0aHMgKERNQSBtYXBwaW5nIGZhaWx1cmVzKSBvZiB0aGUgQk5BLCBISUJNQ0dFLCBhbmQgSElOSUMzIG5ldHdvcmsgZHJpdmVycy4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiByZWFjaGFibGUgZHJpdmVyIGNvZGUuIFRoZSBtb2RpZmllZCBmdW5jdGlvbnMgYXJlIGluIHRoZSBwYWNrZXQgdHJhbnNtaXNzaW9uIGhvdCBwYXRoIChuZG9fc3RhcnRfeG1pdCksIHNvIHRoZXkgYXJlIG9taXR0ZWQgZnJvbSBGb2N1c1N5bWJvbHMgdG8gYXZvaWQgc2tld2luZyB0ZXN0IGRpc3RyaWJ1dGlvbnMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflow4dhwg[1] Phase: Succeeded StartedAt: 2026-07-11 05:57:33 +0000 UTC FinishedAt: 2026-07-11 05:57:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4dhwg[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-11 05:57:33 +0000 UTC FinishedAt: 2026-07-11 05:57:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4dhwg[2] Phase: Succeeded StartedAt: 2026-07-11 05:57:33 +0000 UTC FinishedAt: 2026-07-11 08:13:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4dhwg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"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":[],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"series_id":"38b16fc0-885d-4c08-a75c-85c6705642a6","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-07-11 05:57:33 +0000 UTC FinishedAt: 2026-07-11 08:13:22 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"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":[],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"series_id":"38b16fc0-885d-4c08-a75c-85c6705642a6","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-workflow4dhwg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"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":[],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"series_id":"38b16fc0-885d-4c08-a75c-85c6705642a6","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-07-11 05:57:33 +0000 UTC FinishedAt: 2026-07-11 05:57:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4dhwg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"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":[],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"series_id":"38b16fc0-885d-4c08-a75c-85c6705642a6","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-07-11 05:57:33 +0000 UTC FinishedAt: 2026-07-11 05:57:39 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"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-workflow4dhwg/series-workflow4dhwg-convert-artifact-4163089909/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow4dhwg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"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":[],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"series_id":"38b16fc0-885d-4c08-a75c-85c6705642a6","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-07-11 05:57:43 +0000 UTC FinishedAt: 2026-07-11 06:28:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4dhwg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"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":[],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"series_id":"38b16fc0-885d-4c08-a75c-85c6705642a6","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-07-11 05:57:43 +0000 UTC FinishedAt: 2026-07-11 06:28:31 +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:*5e0f8a30-3ff6-489e-8fdf-466fe5f019d0,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-workflow4dhwg/series-workflow4dhwg-convert-artifact-4163089909/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": "cae4d3de-ca20-40fb-8c4d-67e9dd83e053", "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-workflow4dhwg/series-workflow4dhwg-build-action-1011290075/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow4dhwg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"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":[],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"series_id":"38b16fc0-885d-4c08-a75c-85c6705642a6","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-07-11 05:57:43 +0000 UTC FinishedAt: 2026-07-11 06:28:21 +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:*5e0f8a30-3ff6-489e-8fdf-466fe5f019d0,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-workflow4dhwg/series-workflow4dhwg-convert-artifact-4163089909/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": "cae4d3de-ca20-40fb-8c4d-67e9dd83e053", "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-workflow4dhwg/series-workflow4dhwg-build-action-1011290075/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow4dhwg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"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":[],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"series_id":"38b16fc0-885d-4c08-a75c-85c6705642a6","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-07-11 06:28:31 +0000 UTC FinishedAt: 2026-07-11 06:28:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4dhwg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"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":[],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"series_id":"38b16fc0-885d-4c08-a75c-85c6705642a6","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-07-11 06:28:31 +0000 UTC FinishedAt: 2026-07-11 06:28:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4dhwg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"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":[],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"series_id":"38b16fc0-885d-4c08-a75c-85c6705642a6","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-07-11 06:28:31 +0000 UTC FinishedAt: 2026-07-11 06:28:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4dhwg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"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":[],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"series_id":"38b16fc0-885d-4c08-a75c-85c6705642a6","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-07-11 06:28:31 +0000 UTC FinishedAt: 2026-07-11 06:28:43 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"series_id":"38b16fc0-885d-4c08-a75c-85c6705642a6","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-workflow4dhwg/series-workflow4dhwg-convert-artifact-682478416/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow4dhwg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"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":[],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"series_id":"38b16fc0-885d-4c08-a75c-85c6705642a6","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-07-11 06:28:53 +0000 UTC FinishedAt: 2026-07-11 06:31:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4dhwg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"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":[],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"series_id":"38b16fc0-885d-4c08-a75c-85c6705642a6","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-07-11 06:28:53 +0000 UTC FinishedAt: 2026-07-11 06:30:56 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*cae4d3de-ca20-40fb-8c4d-67e9dd83e053,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-workflow4dhwg/series-workflow4dhwg-build-action-1011290075/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-workflow4dhwg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"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":[],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"series_id":"38b16fc0-885d-4c08-a75c-85c6705642a6","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-07-11 06:31:05 +0000 UTC FinishedAt: 2026-07-11 06:31:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4dhwg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"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":[],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"series_id":"38b16fc0-885d-4c08-a75c-85c6705642a6","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-07-11 06:31:05 +0000 UTC FinishedAt: 2026-07-11 06:31:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4dhwg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"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":[],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"series_id":"38b16fc0-885d-4c08-a75c-85c6705642a6","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-07-11 06:31:05 +0000 UTC FinishedAt: 2026-07-11 07:14:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4dhwg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"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":[],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"series_id":"38b16fc0-885d-4c08-a75c-85c6705642a6","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-07-11 06:31:05 +0000 UTC FinishedAt: 2026-07-11 07:14:49 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*5e0f8a30-3ff6-489e-8fdf-466fe5f019d0,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-workflow4dhwg/series-workflow4dhwg-convert-artifact-682478416/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": "d52ce617-5926-49f1-afa6-2d98940d9d3c", "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-workflow4dhwg/series-workflow4dhwg-build-action-1884457164/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow4dhwg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"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":[],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"series_id":"38b16fc0-885d-4c08-a75c-85c6705642a6","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-07-11 06:31:05 +0000 UTC FinishedAt: 2026-07-11 07:14:39 +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:*5e0f8a30-3ff6-489e-8fdf-466fe5f019d0,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-workflow4dhwg/series-workflow4dhwg-convert-artifact-682478416/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": "d52ce617-5926-49f1-afa6-2d98940d9d3c", "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-workflow4dhwg/series-workflow4dhwg-build-action-1884457164/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow4dhwg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"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":[],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"series_id":"38b16fc0-885d-4c08-a75c-85c6705642a6","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-07-11 07:14:49 +0000 UTC FinishedAt: 2026-07-11 07:14:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4dhwg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"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":[],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"series_id":"38b16fc0-885d-4c08-a75c-85c6705642a6","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-07-11 07:14:49 +0000 UTC FinishedAt: 2026-07-11 07:14:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4dhwg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"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":[],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"series_id":"38b16fc0-885d-4c08-a75c-85c6705642a6","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-07-11 07:14:49 +0000 UTC FinishedAt: 2026-07-11 07:16:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4dhwg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"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":[],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"series_id":"38b16fc0-885d-4c08-a75c-85c6705642a6","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-07-11 07:14:49 +0000 UTC FinishedAt: 2026-07-11 07:16:38 +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:*d52ce617-5926-49f1-afa6-2d98940d9d3c,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-workflow4dhwg/series-workflow4dhwg-build-action-1884457164/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-workflow4dhwg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"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":[],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"series_id":"38b16fc0-885d-4c08-a75c-85c6705642a6","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-07-11 07:16:48 +0000 UTC FinishedAt: 2026-07-11 08:13:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4dhwg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"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":[],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"series_id":"38b16fc0-885d-4c08-a75c-85c6705642a6","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-07-11 07:16:48 +0000 UTC FinishedAt: 2026-07-11 08:13:22 +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":[],"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:*cae4d3de-ca20-40fb-8c4d-67e9dd83e053,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*d52ce617-5926-49f1-afa6-2d98940d9d3c,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-workflow4dhwg/series-workflow4dhwg-build-action-1011290075/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-workflow4dhwg/series-workflow4dhwg-build-action-1884457164/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow4dhwg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"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":[],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"series_id":"38b16fc0-885d-4c08-a75c-85c6705642a6","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-07-11 07:16:48 +0000 UTC FinishedAt: 2026-07-11 07:16:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4dhwg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"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":[],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"series_id":"38b16fc0-885d-4c08-a75c-85c6705642a6","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-07-11 07:16:48 +0000 UTC FinishedAt: 2026-07-11 07:16:54 +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":[],"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-workflow4dhwg/series-workflow4dhwg-convert-artifact-3949331785/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow4dhwg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"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":[],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"series_id":"38b16fc0-885d-4c08-a75c-85c6705642a6","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-07-11 07:16:48 +0000 UTC FinishedAt: 2026-07-11 07:16:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4dhwg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"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":[],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"series_id":"38b16fc0-885d-4c08-a75c-85c6705642a6","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-07-11 07:16:48 +0000 UTC FinishedAt: 2026-07-11 07:16:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4dhwg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"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":[],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"series_id":"38b16fc0-885d-4c08-a75c-85c6705642a6","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-07-11 07:16:48 +0000 UTC FinishedAt: 2026-07-11 07:16:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4dhwg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"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":[],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"series_id":"38b16fc0-885d-4c08-a75c-85c6705642a6","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-07-11 07:16:58 +0000 UTC FinishedAt: 2026-07-11 08:13:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4dhwg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"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":[],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["BNA","HIBMCGE","HINIC3"],"series_id":"38b16fc0-885d-4c08-a75c-85c6705642a6","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-07-11 07:16:58 +0000 UTC FinishedAt: 2026-07-11 08:13:13 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*cae4d3de-ca20-40fb-8c4d-67e9dd83e053,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*d52ce617-5926-49f1-afa6-2d98940d9d3c,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-workflow4dhwg/series-workflow4dhwg-build-action-1011290075/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-workflow4dhwg/series-workflow4dhwg-build-action-1884457164/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-workflow4dhwg/series-workflow4dhwg-convert-artifact-3949331785/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,}