Name: series-workflow5tfzn Phase: Succeeded StartedAt: 2026-07-20 23:23:58 +0000 UTC FinishedAt: 2026-07-21 04:07:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5tfzn[0] Phase: Succeeded StartedAt: 2026-07-20 23:23:58 +0000 UTC FinishedAt: 2026-07-20 23:37:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5tfzn[0].run-triage Phase: Succeeded StartedAt: 2026-07-20 23:23:58 +0000 UTC FinishedAt: 2026-07-20 23:37:19 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "cfce77b63375dac81d53f2f85593c548415206b7", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "cfce77b63375dac81d53f2f85593c548415206b7", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL" ], "series_id": "5f4023e8-1f95-420e-a9df-f3dbfacb47bf" }, "track": "KASAN", "fuzz": { "focus": [ "bpf" ], "focus_symbols": [ "adjust_ptr_min_max_vals" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-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+CgkJCTx0ZD4yMDI2LzA3LzIwIDIzOjM2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YWRqdXN0X3B0cl9taW5fbWF4X3ZhbHMmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciB0byBwcmVzZXJ2ZSB0aGUgZnJhbWUgbnVtYmVyIHdoZW4gcGVyZm9ybWluZyBwb2ludGVyIGFyaXRobWV0aWMgb24gc3RhY2sgcG9pbnRlcnMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBCUEYgdmVyaWZpZXIgbG9naWMgdGhhdCBoYW5kbGVzIHBvaW50ZXIgYm91bmRzIGFuZCB0eXBlcywgd2hpY2ggaXMgcmVhY2hhYmxlIHZpYSB0aGUgYnBmKCkgc3lzY2FsbC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAyMzozNjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGEyMWU3ZjQ5OTQ3Yjg5MmZjYjc1ZmEzZDYyZDNjYzhhNDM1ZGQ5MjNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEp1bCAyMCAyMzozNjo1MCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbmluZGV4IDUyYmUwYTExOGNjZTA3Li41ODAxNzE0MWQ1MmI3YiAxMDA2NDRcbi0tLSBhL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xuJiM0MzsmIzQzOyYjNDM7IGIva2VybmVsL2JwZi92ZXJpZmllci5jXG5AQCAtMTM3OTYsMTEgJiM0MzsxMzc5NiwxNCBAQCBzdGF0aWMgaW50IGFkanVzdF9wdHJfbWluX21heF92YWxzKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXG4gXHRcdHJldHVybiAtRUFDQ0VTO1xuIFx0fVxuIFxuLVx0LyogSW4gY2FzZSBvZiAmIzM5O3NjYWxhciAmIzQzOz0gcG9pbnRlciYjMzk7LCBkc3RfcmVnIGluaGVyaXRzIHBvaW50ZXIgdHlwZSBhbmQgaWQuXG4tXHQgKiBUaGUgaWQgbWF5IGJlIG92ZXJ3cml0dGVuIGxhdGVyIGlmIHdlIGNyZWF0ZSBhIG5ldyB2YXJpYWJsZSBvZmZzZXQuXG4mIzQzO1x0LyogSW4gY2FzZSBvZiAmIzM5O3NjYWxhciAmIzQzOz0gcG9pbnRlciYjMzk7LCBkc3RfcmVnIGluaGVyaXRzIHBvaW50ZXIgdHlwZSwgaWQsXG4mIzQzO1x0ICogYW5kIGZvciBzdGFjayBwb2ludGVycyBhbHNvIHRoZSBmcmFtZSBudW1iZXIuIFRoZSBpZCBtYXkgYmUgb3ZlcndyaXR0ZW5cbiYjNDM7XHQgKiBsYXRlciBpZiB3ZSBjcmVhdGUgYSBuZXcgdmFyaWFibGUgb2Zmc2V0LlxuIFx0ICovXG4gXHRkc3RfcmVnLVx1MDAzZXR5cGUgPSBwdHJfcmVnLVx1MDAzZXR5cGU7XG4gXHRkc3RfcmVnLVx1MDAzZWlkID0gcHRyX3JlZy1cdTAwM2VpZDtcbiYjNDM7XHRpZiAoYmFzZV90eXBlKHB0cl9yZWctXHUwMDNldHlwZSkgPT0gUFRSX1RPX1NUQUNLKVxuJiM0MztcdFx0ZHN0X3JlZy1cdTAwM2VmcmFtZW5vID0gcHRyX3JlZy1cdTAwM2VmcmFtZW5vO1xuIFxuIFx0aWYgKCFjaGVja19yZWdfc2FuZV9vZmZzZXRfc2NhbGFyKGVudiwgb2ZmX3JlZywgcHRyX3JlZy1cdTAwM2V0eXBlKSB8fFxuIFx0ICAgICFjaGVja19yZWdfc2FuZV9vZmZzZXRfcHRyKGVudiwgcHRyX3JlZywgcHRyX3JlZy1cdTAwM2V0eXBlKSlcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy92ZXJpZmllci5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdmVyaWZpZXIuY1xuaW5kZXggYmU5N2Y2ODg3ZjBlN2YuLjA0ODNhZTM0MDcyNmM5IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdmVyaWZpZXIuY1xuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdmVyaWZpZXIuY1xuQEAgLTExLDcgJiM0MzsxMSw2IEBAXG4gI2luY2x1ZGUgXCYjMzQ7dmVyaWZpZXJfYXJlbmFfZ2xvYmFsczIuc2tlbC5oXCYjMzQ7XG4gI2luY2x1ZGUgXCYjMzQ7dmVyaWZpZXJfYXJyYXlfYWNjZXNzLnNrZWwuaFwmIzM0O1xuICNpbmNsdWRlIFwmIzM0O3ZlcmlmaWVyX2FzeW5jX2NiX2NvbnRleHQuc2tlbC5oXCYjMzQ7XG4tI2luY2x1ZGUgXCYjMzQ7dmVyaWZpZXJfYmFzaWNfc3RhY2suc2tlbC5oXCYjMzQ7XG4gI2luY2x1ZGUgXCYjMzQ7dmVyaWZpZXJfYml0ZmllbGRfd3JpdGUuc2tlbC5oXCYjMzQ7XG4gI2luY2x1ZGUgXCYjMzQ7dmVyaWZpZXJfYm91bmRzLnNrZWwuaFwmIzM0O1xuICNpbmNsdWRlIFwmIzM0O3ZlcmlmaWVyX2JvdW5kc19kZWR1Y3Rpb24uc2tlbC5oXCYjMzQ7XG5AQCAtMTY1LDcgJiM0MzsxNjQsNiBAQCB2b2lkIHRlc3RfdmVyaWZpZXJfYXJlbmEodm9pZCkgICAgICAgICAgICAgICAgeyBSVU4odmVyaWZpZXJfYXJlbmEpOyB9XG4gdm9pZCB0ZXN0X3ZlcmlmaWVyX2FyZW5hX2xhcmdlKHZvaWQpICAgICAgICAgIHsgUlVOKHZlcmlmaWVyX2FyZW5hX2xhcmdlKTsgfVxuIHZvaWQgdGVzdF92ZXJpZmllcl9hcmVuYV9nbG9iYWxzMSh2b2lkKSAgICAgICB7IFJVTih2ZXJpZmllcl9hcmVuYV9nbG9iYWxzMSk7IH1cbiB2b2lkIHRlc3RfdmVyaWZpZXJfYXJlbmFfZ2xvYmFsczIodm9pZCkgICAgICAgeyBSVU4odmVyaWZpZXJfYXJlbmFfZ2xvYmFsczIpOyB9XG4tdm9pZCB0ZXN0X3ZlcmlmaWVyX2Jhc2ljX3N0YWNrKHZvaWQpICAgICAgICAgIHsgUlVOKHZlcmlmaWVyX2Jhc2ljX3N0YWNrKTsgfVxuIHZvaWQgdGVzdF92ZXJpZmllcl9iaXRmaWVsZF93cml0ZSh2b2lkKSAgICAgICB7IFJVTih2ZXJpZmllcl9iaXRmaWVsZF93cml0ZSk7IH1cbiB2b2lkIHRlc3RfdmVyaWZpZXJfYm91bmRzKHZvaWQpICAgICAgICAgICAgICAgeyBSVU4odmVyaWZpZXJfYm91bmRzKTsgfVxuIHZvaWQgdGVzdF92ZXJpZmllcl9ib3VuZHNfZGVkdWN0aW9uKHZvaWQpICAgICB7IFJVTih2ZXJpZmllcl9ib3VuZHNfZGVkdWN0aW9uKTsgfVxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy92ZXJpZmllcl9iYXNpY19zdGFjay5jXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxuaW5kZXggMDAwMDAwMDAwMDAwMDAuLjI3OWYzODk3MjliOGVmXG4tLS0gL2Rldi9udWxsXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy92ZXJpZmllcl9iYXNpY19zdGFjay5jXG5AQCAtMCwwICYjNDM7MSwyOCBAQFxuJiM0MzsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG4mIzQzO1xuJiM0MzsjaW5jbHVkZSBcdTAwM2N0ZXN0X3Byb2dzLmhcdTAwM2VcbiYjNDM7XG4mIzQzOyNpbmNsdWRlIFwmIzM0O2NhcF9oZWxwZXJzLmhcJiMzNDtcbiYjNDM7I2luY2x1ZGUgXCYjMzQ7dmVyaWZpZXJfYmFzaWNfc3RhY2suc2tlbC5oXCYjMzQ7XG4mIzQzO1xuJiM0Mzt2b2lkIHRlc3RfdmVyaWZpZXJfYmFzaWNfc3RhY2sodm9pZClcbiYjNDM7e1xuJiM0MztcdHN0cnVjdCB0ZXN0X2xvYWRlciB0ZXN0ZXIgPSB7fTtcbiYjNDM7XHRfX3U2NCBvbGRfY2FwcztcbiYjNDM7XHRpbnQgZXJyO1xuJiM0MztcbiYjNDM7XHQvKiB0ZXN0X3ZlcmlmaWVyIHRlc3RzIGFyZSBleGVjdXRlZCB3L28gQ0FQX1NZU19BRE1JTiwgZG8gdGhlIHNhbWUgaGVyZSAqL1xuJiM0MztcdGVyciA9IGNhcF9kaXNhYmxlX2VmZmVjdGl2ZSgxVUxMIFx1MDAzY1x1MDAzYyBDQVBfU1lTX0FETUlOLCBcdTAwMjZvbGRfY2Fwcyk7XG4mIzQzO1x0aWYgKGVycikge1xuJiM0MztcdFx0UFJJTlRfRkFJTChcJiMzNDtmYWlsZWQgdG8gZHJvcCBDQVBfU1lTX0FETUlOOiAlaSwgJXNcXG5cJiMzNDssIGVyciwgc3RyZXJyb3IoLWVycikpO1xuJiM0MztcdFx0cmV0dXJuO1xuJiM0MztcdH1cbiYjNDM7XG4mIzQzO1x0dGVzdF9sb2FkZXJfX3J1bl9zdWJ0ZXN0cyhcdTAwMjZ0ZXN0ZXIsIFwmIzM0O3ZlcmlmaWVyX2Jhc2ljX3N0YWNrXCYjMzQ7LFxuJiM0MztcdFx0XHRcdCAgdmVyaWZpZXJfYmFzaWNfc3RhY2tfX2VsZl9ieXRlcyk7XG4mIzQzO1x0dGVzdF9sb2FkZXJfZmluaShcdTAwMjZ0ZXN0ZXIpO1xuJiM0MztcbiYjNDM7XHRlcnIgPSBjYXBfZW5hYmxlX2VmZmVjdGl2ZShvbGRfY2FwcywgTlVMTCk7XG4mIzQzO1x0aWYgKGVycilcbiYjNDM7XHRcdFBSSU5UX0ZBSUwoXCYjMzQ7ZmFpbGVkIHRvIHJlc3RvcmUgQ0FQX1NZU19BRE1JTjogJWksICVzXFxuXCYjMzQ7LCBlcnIsIHN0cmVycm9yKC1lcnIpKTtcbiYjNDM7fVxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9iYXNpY19zdGFjay5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmNcbmluZGV4IGZiNjJlMDlmMjExNDZkLi42MzQxODNmYzg2ODgzZiAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9iYXNpY19zdGFjay5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYmFzaWNfc3RhY2suY1xuQEAgLTk3LDQgJiM0Mzs5Nyw0NSBAQCBfX25ha2VkIHZvaWQgbWlzYWxpZ25lZF9yZWFkX2Zyb21fc3RhY2sodm9pZClcbiBcJiMzNDtcdDo6OiBfX2Nsb2JiZXJfYWxsKTtcbiB9XG4gXG4mIzQzO1NFQyhcJiMzNDtzb2NrZXRcJiMzNDspXG4mIzQzO19fZGVzY3JpcHRpb24oXCYjMzQ7c3RhY2sgcG9pbnRlciBhcml0aG1ldGljIHByZXNlcnZlcyBmcmFtZSBudW1iZXJcJiMzNDspXG4mIzQzO19fZmFpbHVyZSBfX21zZyhcJiMzNDtSNyBpbnZhbGlkIG1lbSBhY2Nlc3MgJiMzOTtzY2FsYXImIzM5O1wmIzM0OylcbiYjNDM7X19uYWtlZCB2b2lkIHN0YWNrX3B0cl9hcml0aF9wcmVzZXJ2ZXNfZnJhbWVubyh2b2lkKVxuJiM0Mzt7XG4mIzQzO1x0YXNtIHZvbGF0aWxlIChcJiMzNDtcdFx0XHRcdFx0XFxcbiYjNDM7XHRyMyA9IDA7XHRcdFx0XHRcdFx0XFxcbiYjNDM7XHQqKHU2NCAqKShyMTAgLSA4KSA9IHIzO1x0XHRcdFxcXG4mIzQzO1x0cjEgPSAlW21hcF9oYXNoXzhiXSBsbDtcdFx0XHRcXFxuJiM0MztcdHIyID0gcjEwO1x0XHRcdFx0XHRcXFxuJiM0MztcdHIyICYjNDM7PSAtODtcdFx0XHRcdFx0XFxcbiYjNDM7XHRjYWxsICVbYnBmX21hcF9sb29rdXBfZWxlbV07XHRcdFx0XFxcbiYjNDM7XHRpZiByMCAhPSAwIGdvdG8gJiM0MzsyO1x0XHRcdFx0XFxcbiYjNDM7XHRyMCA9IDA7XHRcdFx0XHRcdFx0XFxcbiYjNDM7XHRleGl0O1x0XHRcdFx0XHRcdFxcXG4mIzQzO1x0cjEgPSByMDtcdFx0XHRcdFx0XFxcbiYjNDM7XHRyMiA9IDA7XHRcdFx0XHRcdFx0XFxcbiYjNDM7XHRyMyA9IDA7XHRcdFx0XHRcdFx0XFxcbiYjNDM7XHRjYWxsIHN0YWNrX3B0cl9hcml0aF9wcmVzZXJ2ZXNfZnJhbWVub19zdWJwcm9nO1x0XFxcbiYjNDM7XHRyMCA9IDA7XHRcdFx0XHRcdFx0XFxcbiYjNDM7XHRleGl0O1x0XHRcdFx0XHRcdFxcXG4mIzQzO1wmIzM0O1x0OlxuJiM0MztcdDogX19pbW0oYnBmX21hcF9sb29rdXBfZWxlbSksXG4mIzQzO1x0ICBfX2ltbV9hZGRyKG1hcF9oYXNoXzhiKVxuJiM0MztcdDogX19jbG9iYmVyX2FsbCk7XG4mIzQzO31cbiYjNDM7XG4mIzQzO3N0YXRpYyBfX3VzZWQgX19uYWtlZCB2b2lkIHN0YWNrX3B0cl9hcml0aF9wcmVzZXJ2ZXNfZnJhbWVub19zdWJwcm9nKHZvaWQpXG4mIzQzO3tcbiYjNDM7XHRhc20gdm9sYXRpbGUgKFwmIzM0O1x0XHRcdFx0XHRcXFxuJiM0MztcdCoodTY0ICopKHIxMCAtIDgpID0gcjE7XHRcdFx0XFxcbiYjNDM7XHRyNiA9IC04O1x0XHRcdFx0XHRcXFxuJiM0MztcdHI2ICYjNDM7PSByMTA7XHRcdFx0XHRcdFxcXG4mIzQzO1x0Kih1NjQgKikocjYgJiM0MzsgMCkgPSByMjtcdFx0XHRcXFxuJiM0MztcdHI3ID0gKih1NjQgKikocjEwIC0gOCk7XHRcdFx0XFxcbiYjNDM7XHQqKHU2NCAqKShyNyAmIzQzOyAwKSA9IHIzO1x0XHRcdFxcXG4mIzQzO1x0cjAgPSAwO1x0XHRcdFx0XHRcdFxcXG4mIzQzO1x0ZXhpdDtcdFx0XHRcdFx0XHRcXFxuJiM0MztcJiMzNDtcdDo6OiBfX2Nsb2JiZXJfYWxsKTtcbiYjNDM7fVxuJiM0MztcbiBjaGFyIF9saWNlbnNlW10gU0VDKFwmIzM0O2xpY2Vuc2VcJiMzNDspID0gXCYjMzQ7R1BMXCYjMzQ7O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDIzOjM2PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUEZfU1lTQ0FMTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2FkanVzdF9wdHJfbWluX21heF92YWxzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBCUEYgdmVyaWZpZXIgdG8gcHJlc2VydmUgdGhlIGZyYW1lIG51bWJlciB3aGVuIHBlcmZvcm1pbmcgcG9pbnRlciBhcml0aG1ldGljIG9uIHN0YWNrIHBvaW50ZXJzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgQlBGIHZlcmlmaWVyIGxvZ2ljIHRoYXQgaGFuZGxlcyBwb2ludGVyIGJvdW5kcyBhbmQgdHlwZXMsIHdoaWNoIGlzIHJlYWNoYWJsZSB2aWEgdGhlIGJwZigpIHN5c2NhbGwuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGEyMWU3ZjQ5OTQ3Yjg5MmZjYjc1ZmEzZDYyZDNjYzhhNDM1ZGQ5MjMKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEp1bCAyMCAyMzozNjo1MCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuYwppbmRleCA1MmJlMGExMThjY2UwNy4uNTgwMTcxNDFkNTJiN2IgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYwomIzQzOyYjNDM7JiM0MzsgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMKQEAgLTEzNzk2LDExICYjNDM7MTM3OTYsMTQgQEAgc3RhdGljIGludCBhZGp1c3RfcHRyX21pbl9tYXhfdmFscyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LAogCQlyZXR1cm4gLUVBQ0NFUzsKIAl9CiAKLQkvKiBJbiBjYXNlIG9mICYjMzk7c2NhbGFyICYjNDM7PSBwb2ludGVyJiMzOTssIGRzdF9yZWcgaW5oZXJpdHMgcG9pbnRlciB0eXBlIGFuZCBpZC4KLQkgKiBUaGUgaWQgbWF5IGJlIG92ZXJ3cml0dGVuIGxhdGVyIGlmIHdlIGNyZWF0ZSBhIG5ldyB2YXJpYWJsZSBvZmZzZXQuCiYjNDM7CS8qIEluIGNhc2Ugb2YgJiMzOTtzY2FsYXIgJiM0Mzs9IHBvaW50ZXImIzM5OywgZHN0X3JlZyBpbmhlcml0cyBwb2ludGVyIHR5cGUsIGlkLAomIzQzOwkgKiBhbmQgZm9yIHN0YWNrIHBvaW50ZXJzIGFsc28gdGhlIGZyYW1lIG51bWJlci4gVGhlIGlkIG1heSBiZSBvdmVyd3JpdHRlbgomIzQzOwkgKiBsYXRlciBpZiB3ZSBjcmVhdGUgYSBuZXcgdmFyaWFibGUgb2Zmc2V0LgogCSAqLwogCWRzdF9yZWctJmd0O3R5cGUgPSBwdHJfcmVnLSZndDt0eXBlOwogCWRzdF9yZWctJmd0O2lkID0gcHRyX3JlZy0mZ3Q7aWQ7CiYjNDM7CWlmIChiYXNlX3R5cGUocHRyX3JlZy0mZ3Q7dHlwZSkgPT0gUFRSX1RPX1NUQUNLKQomIzQzOwkJZHN0X3JlZy0mZ3Q7ZnJhbWVubyA9IHB0cl9yZWctJmd0O2ZyYW1lbm87CiAKIAlpZiAoIWNoZWNrX3JlZ19zYW5lX29mZnNldF9zY2FsYXIoZW52LCBvZmZfcmVnLCBwdHJfcmVnLSZndDt0eXBlKSB8fAogCSAgICAhY2hlY2tfcmVnX3NhbmVfb2Zmc2V0X3B0cihlbnYsIHB0cl9yZWcsIHB0cl9yZWctJmd0O3R5cGUpKQpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdmVyaWZpZXIuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3ZlcmlmaWVyLmMKaW5kZXggYmU5N2Y2ODg3ZjBlN2YuLjA0ODNhZTM0MDcyNmM5IDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy92ZXJpZmllci5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3ZlcmlmaWVyLmMKQEAgLTExLDcgJiM0MzsxMSw2IEBACiAjaW5jbHVkZSAmIzM0O3ZlcmlmaWVyX2FyZW5hX2dsb2JhbHMyLnNrZWwuaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O3ZlcmlmaWVyX2FycmF5X2FjY2Vzcy5za2VsLmgmIzM0OwogI2luY2x1ZGUgJiMzNDt2ZXJpZmllcl9hc3luY19jYl9jb250ZXh0LnNrZWwuaCYjMzQ7Ci0jaW5jbHVkZSAmIzM0O3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLnNrZWwuaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O3ZlcmlmaWVyX2JpdGZpZWxkX3dyaXRlLnNrZWwuaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O3ZlcmlmaWVyX2JvdW5kcy5za2VsLmgmIzM0OwogI2luY2x1ZGUgJiMzNDt2ZXJpZmllcl9ib3VuZHNfZGVkdWN0aW9uLnNrZWwuaCYjMzQ7CkBAIC0xNjUsNyAmIzQzOzE2NCw2IEBAIHZvaWQgdGVzdF92ZXJpZmllcl9hcmVuYSh2b2lkKSAgICAgICAgICAgICAgICB7IFJVTih2ZXJpZmllcl9hcmVuYSk7IH0KIHZvaWQgdGVzdF92ZXJpZmllcl9hcmVuYV9sYXJnZSh2b2lkKSAgICAgICAgICB7IFJVTih2ZXJpZmllcl9hcmVuYV9sYXJnZSk7IH0KIHZvaWQgdGVzdF92ZXJpZmllcl9hcmVuYV9nbG9iYWxzMSh2b2lkKSAgICAgICB7IFJVTih2ZXJpZmllcl9hcmVuYV9nbG9iYWxzMSk7IH0KIHZvaWQgdGVzdF92ZXJpZmllcl9hcmVuYV9nbG9iYWxzMih2b2lkKSAgICAgICB7IFJVTih2ZXJpZmllcl9hcmVuYV9nbG9iYWxzMik7IH0KLXZvaWQgdGVzdF92ZXJpZmllcl9iYXNpY19zdGFjayh2b2lkKSAgICAgICAgICB7IFJVTih2ZXJpZmllcl9iYXNpY19zdGFjayk7IH0KIHZvaWQgdGVzdF92ZXJpZmllcl9iaXRmaWVsZF93cml0ZSh2b2lkKSAgICAgICB7IFJVTih2ZXJpZmllcl9iaXRmaWVsZF93cml0ZSk7IH0KIHZvaWQgdGVzdF92ZXJpZmllcl9ib3VuZHModm9pZCkgICAgICAgICAgICAgICB7IFJVTih2ZXJpZmllcl9ib3VuZHMpOyB9CiB2b2lkIHRlc3RfdmVyaWZpZXJfYm91bmRzX2RlZHVjdGlvbih2b2lkKSAgICAgeyBSVU4odmVyaWZpZXJfYm91bmRzX2RlZHVjdGlvbik7IH0KZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy92ZXJpZmllcl9iYXNpY19zdGFjay5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwLi4yNzlmMzg5NzI5YjhlZgotLS0gL2Rldi9udWxsCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmMKQEAgLTAsMCAmIzQzOzEsMjggQEAKJiM0MzsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5CiYjNDM7CiYjNDM7I2luY2x1ZGUgJmx0O3Rlc3RfcHJvZ3MuaCZndDsKJiM0MzsKJiM0MzsjaW5jbHVkZSAmIzM0O2NhcF9oZWxwZXJzLmgmIzM0OwomIzQzOyNpbmNsdWRlICYjMzQ7dmVyaWZpZXJfYmFzaWNfc3RhY2suc2tlbC5oJiMzNDsKJiM0MzsKJiM0Mzt2b2lkIHRlc3RfdmVyaWZpZXJfYmFzaWNfc3RhY2sodm9pZCkKJiM0Mzt7CiYjNDM7CXN0cnVjdCB0ZXN0X2xvYWRlciB0ZXN0ZXIgPSB7fTsKJiM0MzsJX191NjQgb2xkX2NhcHM7CiYjNDM7CWludCBlcnI7CiYjNDM7CiYjNDM7CS8qIHRlc3RfdmVyaWZpZXIgdGVzdHMgYXJlIGV4ZWN1dGVkIHcvbyBDQVBfU1lTX0FETUlOLCBkbyB0aGUgc2FtZSBoZXJlICovCiYjNDM7CWVyciA9IGNhcF9kaXNhYmxlX2VmZmVjdGl2ZSgxVUxMICZsdDsmbHQ7IENBUF9TWVNfQURNSU4sICZhbXA7b2xkX2NhcHMpOwomIzQzOwlpZiAoZXJyKSB7CiYjNDM7CQlQUklOVF9GQUlMKCYjMzQ7ZmFpbGVkIHRvIGRyb3AgQ0FQX1NZU19BRE1JTjogJWksICVzXG4mIzM0OywgZXJyLCBzdHJlcnJvcigtZXJyKSk7CiYjNDM7CQlyZXR1cm47CiYjNDM7CX0KJiM0MzsKJiM0MzsJdGVzdF9sb2FkZXJfX3J1bl9zdWJ0ZXN0cygmYW1wO3Rlc3RlciwgJiMzNDt2ZXJpZmllcl9iYXNpY19zdGFjayYjMzQ7LAomIzQzOwkJCQkgIHZlcmlmaWVyX2Jhc2ljX3N0YWNrX19lbGZfYnl0ZXMpOwomIzQzOwl0ZXN0X2xvYWRlcl9maW5pKCZhbXA7dGVzdGVyKTsKJiM0MzsKJiM0MzsJZXJyID0gY2FwX2VuYWJsZV9lZmZlY3RpdmUob2xkX2NhcHMsIE5VTEwpOwomIzQzOwlpZiAoZXJyKQomIzQzOwkJUFJJTlRfRkFJTCgmIzM0O2ZhaWxlZCB0byByZXN0b3JlIENBUF9TWVNfQURNSU46ICVpLCAlc1xuJiMzNDssIGVyciwgc3RyZXJyb3IoLWVycikpOwomIzQzO30KZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9iYXNpY19zdGFjay5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmMKaW5kZXggZmI2MmUwOWYyMTE0NmQuLjYzNDE4M2ZjODY4ODNmIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYmFzaWNfc3RhY2suYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYmFzaWNfc3RhY2suYwpAQCAtOTcsNCAmIzQzOzk3LDQ1IEBAIF9fbmFrZWQgdm9pZCBtaXNhbGlnbmVkX3JlYWRfZnJvbV9zdGFjayh2b2lkKQogJiMzNDsJOjo6IF9fY2xvYmJlcl9hbGwpOwogfQogCiYjNDM7U0VDKCYjMzQ7c29ja2V0JiMzNDspCiYjNDM7X19kZXNjcmlwdGlvbigmIzM0O3N0YWNrIHBvaW50ZXIgYXJpdGhtZXRpYyBwcmVzZXJ2ZXMgZnJhbWUgbnVtYmVyJiMzNDspCiYjNDM7X19mYWlsdXJlIF9fbXNnKCYjMzQ7UjcgaW52YWxpZCBtZW0gYWNjZXNzICYjMzk7c2NhbGFyJiMzOTsmIzM0OykKJiM0MztfX25ha2VkIHZvaWQgc3RhY2tfcHRyX2FyaXRoX3ByZXNlcnZlc19mcmFtZW5vKHZvaWQpCiYjNDM7ewomIzQzOwlhc20gdm9sYXRpbGUgKCYjMzQ7CQkJCQlcCiYjNDM7CXIzID0gMDsJCQkJCQlcCiYjNDM7CSoodTY0ICopKHIxMCAtIDgpID0gcjM7CQkJXAomIzQzOwlyMSA9ICVbbWFwX2hhc2hfOGJdIGxsOwkJCVwKJiM0MzsJcjIgPSByMTA7CQkJCQlcCiYjNDM7CXIyICYjNDM7PSAtODsJCQkJCVwKJiM0MzsJY2FsbCAlW2JwZl9tYXBfbG9va3VwX2VsZW1dOwkJCVwKJiM0MzsJaWYgcjAgIT0gMCBnb3RvICYjNDM7MjsJCQkJXAomIzQzOwlyMCA9IDA7CQkJCQkJXAomIzQzOwlleGl0OwkJCQkJCVwKJiM0MzsJcjEgPSByMDsJCQkJCVwKJiM0MzsJcjIgPSAwOwkJCQkJCVwKJiM0MzsJcjMgPSAwOwkJCQkJCVwKJiM0MzsJY2FsbCBzdGFja19wdHJfYXJpdGhfcHJlc2VydmVzX2ZyYW1lbm9fc3VicHJvZzsJXAomIzQzOwlyMCA9IDA7CQkJCQkJXAomIzQzOwlleGl0OwkJCQkJCVwKJiM0MzsmIzM0Owk6CiYjNDM7CTogX19pbW0oYnBmX21hcF9sb29rdXBfZWxlbSksCiYjNDM7CSAgX19pbW1fYWRkcihtYXBfaGFzaF84YikKJiM0MzsJOiBfX2Nsb2JiZXJfYWxsKTsKJiM0Mzt9CiYjNDM7CiYjNDM7c3RhdGljIF9fdXNlZCBfX25ha2VkIHZvaWQgc3RhY2tfcHRyX2FyaXRoX3ByZXNlcnZlc19mcmFtZW5vX3N1YnByb2codm9pZCkKJiM0Mzt7CiYjNDM7CWFzbSB2b2xhdGlsZSAoJiMzNDsJCQkJCVwKJiM0MzsJKih1NjQgKikocjEwIC0gOCkgPSByMTsJCQlcCiYjNDM7CXI2ID0gLTg7CQkJCQlcCiYjNDM7CXI2ICYjNDM7PSByMTA7CQkJCQlcCiYjNDM7CSoodTY0ICopKHI2ICYjNDM7IDApID0gcjI7CQkJXAomIzQzOwlyNyA9ICoodTY0ICopKHIxMCAtIDgpOwkJCVwKJiM0MzsJKih1NjQgKikocjcgJiM0MzsgMCkgPSByMzsJCQlcCiYjNDM7CXIwID0gMDsJCQkJCQlcCiYjNDM7CWV4aXQ7CQkJCQkJXAomIzQzOyYjMzQ7CTo6OiBfX2Nsb2JiZXJfYWxsKTsKJiM0Mzt9CiYjNDM7CiBjaGFyIF9saWNlbnNlW10gU0VDKCYjMzQ7bGljZW5zZSYjMzQ7KSA9ICYjMzQ7R1BMJiMzNDs7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDIzOjM2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM2MDkKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAyNTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQlBGIFZlcmlmaWVyIFBhdGNoIEFuYWx5c2lzKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgbW9kaWZpZXMgYGtlcm5lbC9icGYvdmVyaWZpZXIuY2AuIFNwZWNpZmljYWxseSwgdGhlIGNoYW5nZSBpcyB3aXRoaW4gdGhlIGBhZGp1c3RfcHRyX21pbl9tYXhfdmFsc2AgZnVuY3Rpb24uIFRoZSBjb2RlJiMzOTtzIGxvZ2ljIGhhbmRsZXMgdGhlIGNhc2Ugb2YgYHNjYWxhciAmIzQzOz0gcG9pbnRlcmAgb3BlcmF0aW9ucy4KCk15IHVuZGVyc3RhbmRpbmcgaXMgdGhhdCBwcmV2aW91c2x5LCB3aGVuIHlvdSBkaWQgc29tZXRoaW5nIGxpa2UgdGhhdCwgdGhlIGRlc3RpbmF0aW9uIHJlZ2lzdGVyIChgZHN0X3JlZ2ApIHdhcyBpbmhlcml0aW5nIHRoZSBwb2ludGVyJiMzOTtzIHR5cGUgYW5kIElELCB3aGljaCBpcyBjb3JyZWN0LiBUaGUgSUQgbWlnaHQgZ2V0IG92ZXJ3cml0dGVuIGxhdGVyLCBhbmQgdGhhdCYjMzk7cyBmaW5lLiBIb3dldmVyLCBpdCB3YXNuJiMzOTt0IHByZXNlcnZpbmcgdGhlIGZyYW1lIG51bWJlciBhc3NvY2lhdGVkIHdpdGggc3RhY2sgcG9pbnRlcnMuIFRoaXMgY2hhbmdlIGFkZHMgYSBjaGVjayB0byBlbnN1cmUgdGhhdCBpZiB0aGUgcG9pbnRlciAoYHB0cl9yZWdgKSBpcyBhIHN0YWNrIHBvaW50ZXIgKGkuZS4sIGBiYXNlX3R5cGUocHRyX3JlZy0mZ3Q7dHlwZSkgPT0gUFRSX1RPX1NUQUNLYCksIHRoZSBkZXN0aW5hdGlvbiByZWdpc3RlciAqYWxzbyogZ2V0cyB0aGUgY29ycmVjdCBgZnJhbWVub2AuCgpTbywgaXQmIzM5O3MgYSBzdWJ0bGUgYnV0IGltcG9ydGFudCBmaXggdG8gaG93IHRoZSBCUEYgdmVyaWZpZXIgaGFuZGxlcyBzdGFjayBwb2ludGVyIGFyaXRobWV0aWMuIFRoaXMgaXMgZGVmaW5pdGVseSBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBCUEYgdmVyaWZpZXIsIGFkZHJlc3NpbmcgYSBzcGVjaWZpYyBidWcuIFRoZXJlZm9yZSwgYmVjYXVzZSBpdCYjMzk7cyBhIG1vZGlmaWNhdGlvbiBvZiBjcml0aWNhbCBrZXJuZWwgY29kZSB0aGF0IGFmZmVjdHMgbWVtb3J5IHNhZmV0eSBhbmQgcHJvZ3JhbSBleGVjdXRpb24sIEkgc2hvdWxkIGZsYWcgdGhpcyBhcyB3b3J0aCBmdXp6aW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDIzOjM2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2FkanVzdF9wdHJfbWluX21heF92YWxzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7a2VybmVsL2JwZi92ZXJpZmllci5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2tlcm5lbC9icGYvdmVyaWZpZXIuYz00MDAzPXN0YXRpYyBpbnQgY2hlY2tfc3RhY2tfcmVhZChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LFxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy00MDI3LVx0ICogY2hlY2tfc3RhY2tfYWNjZXNzX2Zvcl9wdHJfYXJpdGhtZXRpYygpIGNhbGxlZCBieVxua2VybmVsL2JwZi92ZXJpZmllci5jOjQwMjg6XHQgKiBhZGp1c3RfcHRyX21pbl9tYXhfdmFscygpIHByZXZlbnRzIHVzZXJzIGZyb20gY3JlYXRpbmcgc3RhY2sgcG9pbnRlcnNcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy00MDI5LVx0ICogd2l0aCB2YXJpYWJsZSBvZmZzZXRzLCB0aGVyZWZvcmUgbm8gY2hlY2sgaXMgcmVxdWlyZWQgaGVyZS4gRnVydGhlcixcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTM2ODA9c3RhdGljIGludCBzYW5pdGl6ZV9jaGVja19ib3VuZHMoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudixcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTM3MTYtICovXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTM3MTc6c3RhdGljIGludCBhZGp1c3RfcHRyX21pbl9tYXhfdmFscyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LFxua2VybmVsL2JwZi92ZXJpZmllci5jLTEzNzE4LVx0XHRcdFx0ICAgc3RydWN0IGJwZl9pbnNuICppbnNuLFxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xNDgwND1zdGF0aWMgaW50IGFkanVzdF9yZWdfbWluX21heF92YWxzKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTE0ODY2LVx0XHRcdFx0XHRyZXR1cm4gZXJyO1xua2VybmVsL2JwZi92ZXJpZmllci5jOjE0ODY3Olx0XHRcdFx0cmV0dXJuIGFkanVzdF9wdHJfbWluX21heF92YWxzKGVudiwgaW5zbixcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xNDg2OC1cdFx0XHRcdFx0XHRcdCAgICAgICBzcmNfcmVnLCBkc3RfcmVnKTtcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTQ4NzQtXHRcdFx0XHRyZXR1cm4gZXJyO1xua2VybmVsL2JwZi92ZXJpZmllci5jOjE0ODc1Olx0XHRcdHJldHVybiBhZGp1c3RfcHRyX21pbl9tYXhfdmFscyhlbnYsIGluc24sXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTQ4NzYtXHRcdFx0XHRcdFx0ICAgICAgIGRzdF9yZWcsIHNyY19yZWcpO1xuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xNDg5MC1cdFx0aWYgKHB0cl9yZWcpIC8qIHBvaW50ZXIgJiM0Mzs9IEsgKi9cbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxNDg5MTpcdFx0XHRyZXR1cm4gYWRqdXN0X3B0cl9taW5fbWF4X3ZhbHMoZW52LCBpbnNuLFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE0ODkyLVx0XHRcdFx0XHRcdCAgICAgICBwdHJfcmVnLCBzcmNfcmVnKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAyMzozNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NzEwCgkJCQkJCQlvdXRwdXQ6IDI5CgkJCQkJCQl0aG91Z2h0czogODQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyB0aGUgQ29uZmlndXJhdGlvbiBSZXF1aXJlbWVudHMgZm9yIGBhZGp1c3RfcHRyX21pbl9tYXhfdmFsc2AqKgoKT2theSwgc28gYGFkanVzdF9wdHJfbWluX21heF92YWxzYCBpcyBjYWxsZWQgYnkgYGFkanVzdF9yZWdfbWluX21heF92YWxzYC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIHdoYXQgYXJlIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9ucyB0aGF0IGFyZSBnb2luZyB0byBpbXBhY3QgdGhpcz8gR2l2ZW4gbXkgYmFja2dyb3VuZCwgSSYjMzk7bSBwcmV0dHkgc3VyZSBCUEYgaXMgdXN1YWxseSB0b2dnbGVkIG9uIGJ5IGBDT05GSUdfQlBGYCBhbmQgYENPTkZJR19CUEZfU1lTQ0FMTGAuIEkmIzM5O2xsIHdhbnQgdG8gdmVyaWZ5IHRoYXQgYW5kIGdldCB0aGUgZGVwZW5kZW5jaWVzIHN0cmFpZ2h0LiBUbyBkbyB0aGlzLCBJJiMzOTttIGdvaW5nIHRvIHF1aWNrbHkgY2hlY2sgaW4gYGtlcm5lbC9icGYvTWFrZWZpbGVgIG9yIGBrZXJuZWwvYnBmL0tjb25maWdgLiBUaGF0IHNob3VsZCBnaXZlIG1lIGEgc29saWQgdmlldyBvZiB0aGUgY29uZmlndXJhdGlvbiBsYW5kc2NhcGUgaGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAyMzozNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2ZXJpZmllci5vJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7a2VybmVsL2JwZi9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtrZXJuZWwvYnBmL01ha2VmaWxlPTc9Q0ZMQUdTX2NvcmUubyAmIzQzOz0gLVduby1vdmVycmlkZS1pbml0ICQoY2ZsYWdzLW5vZ2NzZS15eSlcbmtlcm5lbC9icGYvTWFrZWZpbGUtOC1cbmtlcm5lbC9icGYvTWFrZWZpbGU6OTpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBzeXNjYWxsLm8gdmVyaWZpZXIubyBpbm9kZS5vIGhlbHBlcnMubyB0bnVtLm8gY251bS5vIGxvZy5vIHRva2VuLm8gbGl2ZW5lc3MubyBjb25zdF9mb2xkLm9cbmtlcm5lbC9icGYvTWFrZWZpbGUtMTAtb2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSAmIzQzOz0gYnBmX2l0ZXIubyBtYXBfaXRlci5vIHRhc2tfaXRlci5vIHByb2dfaXRlci5vIGxpbmtfaXRlci5vXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMjM6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTE0MgoJCQkJCQkJb3V0cHV0OiAxMDEKCQkJCQkJCXRob3VnaHRzOiAyNzcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgUGF0Y2gmIzM5O3MgRnV6emluZyBQb3RlbnRpYWwqKgoKT2theSwgc28gSSYjMzk7dmUgemVyb2VkIGluIG9uIHRoZSBgQlBGX1NZU0NBTExgIGNvbmZpZ3VyYXRpb24gb3B0aW9uLiBUaGF0JiMzOTtzIG15IHN0YXJ0aW5nIHBvaW50LiBUaGUgY3J1Y2lhbCBmdW5jdGlvbiB3aXRoaW4gdGhlIHBhdGNoLCB0aGUgb25lIHRoYXQgcmVhbGx5IHNlZW1zIHRvIGdyYWIgbXkgYXR0ZW50aW9uLCBpcyBgYWRqdXN0X3B0cl9taW5fbWF4X3ZhbHNgLgoKTGV0IG1lIGp1c3QgcXVpY2tseSBjb25maXJtIHRoYXQgdGhlcmUgYXJlbiYjMzk7dCBhbnkgb3RoZXIgZnVuY3Rpb25zIHRoYXQgd2FycmFudCBzaW1pbGFyIGF0dGVudGlvbi4gTm9wZSwgYGFkanVzdF9wdHJfbWluX21heF92YWxzYCByZW1haW5zIHRoZSBrZXkuCgpOb3csIHRoZSBpbXBvcnRhbnQgcXVlc3Rpb246IGlzIHRoaXMgZnVuY3Rpb24gYSAmIzM0O2hvdCBwYXRoJiMzNDs/IE5vdCBpbiB0aGUgdXN1YWwgc2Vuc2Ugb2YgcmVhbC10aW1lIHBhY2tldCBwcm9jZXNzaW5nIG9yIHNjaGVkdWxlciBjb2RlLCBuby4gQnV0IHRoaXMgaXMgdGhlIEJQRiB2ZXJpZmllciwgYW5kIGBhZGp1c3RfcHRyX21pbl9tYXhfdmFsc2AgaXMgKnBhcnQqIG9mIHRoZSB2ZXJpZmllci4gSXQmIzM5O3MgZXhlY3V0ZWQgd2hlbiBhIEJQRiBwcm9ncmFtIGlzIGxvYWRlZCwgd2hpY2ggbWFrZXMgaXQgYSBjcml0aWNhbCBwYXJ0IG9mIHRoZSBhdHRhY2sgc3VyZmFjZSwgYW5kIGEgcGVyZmVjdCB0YXJnZXQgZm9yIGZ1enppbmcgdmlhIGBicGYoKWAgc3lzY2FsbHMsIGFzIFN5emthbGxlciBkb2VzLiBUaGlzIGlzIHdoZXJlIHRoZSB2dWxuZXJhYmlsaXR5IGh1bnRpbmcgaXMuCgpBbHJpZ2h0LCBJJiMzOTtsbCBxdWlja2x5IHZlcmlmeSB0aGF0IGBhZGp1c3RfcHRyX21pbl9tYXhfdmFsc2AgaXMgZGVjbGFyZWQgc3RhdGljLiBZZXMsIGl0IGlzLiBBbGwgdGhlIGJldHRlci4KCkxldCYjMzk7cyBzdW1tYXJpemUgdGhpcy4KCioqV29ydGhGdXp6aW5nOiBUcnVlKioKKipGb2N1c1N5bWJvbHM6IFsmIzM0O2FkanVzdF9wdHJfbWluX21heF92YWxzJiMzNDtdKioKKipFbmFibGVDb25maWdzOiBbJiMzNDtCUEZfU1lTQ0FMTCYjMzQ7XSoqCioqUmVhc29uaW5nOiAmIzM0O1RoaXMgcGF0Y2ggZnVuZGFtZW50YWxseSBhbHRlcnMgdGhlIEJQRiB2ZXJpZmllciYjMzk7cyBiZWhhdmlvciBieSBwcmVzZXJ2aW5nIHRoZSBmcmFtZSBudW1iZXIgZHVyaW5nIHBvaW50ZXIgYXJpdGhtZXRpYyBvbiBzdGFjayBwb2ludGVycy4gVGhpcyBjaGFuZ2UgZGlyZWN0bHkgaW1wYWN0cyB0aGUgY29yZSBsb2dpYyBvZiB0aGUgdmVyaWZpZXIsIHBhcnRpY3VsYXJseSBob3cgaXQgaGFuZGxlcyBwb2ludGVyIGJvdW5kcyBhbmQgdHlwZXMuIFRoZSBCUEYgdmVyaWZpZXIgbG9naWMgaXMgYWNjZXNzaWJsZSB0aHJvdWdoIHRoZSBgYnBmKClgIHN5c2NhbGwgYW5kIGlzIHRoZXJlZm9yZSBzdWl0YWJsZSBmb3IgZnV6emluZy4mIzM0OyoqCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMjM6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YWRqdXN0X3B0cl9taW5fbWF4X3ZhbHMmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciB0byBwcmVzZXJ2ZSB0aGUgZnJhbWUgbnVtYmVyIHdoZW4gcGVyZm9ybWluZyBwb2ludGVyIGFyaXRobWV0aWMgb24gc3RhY2sgcG9pbnRlcnMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBCUEYgdmVyaWZpZXIgbG9naWMgdGhhdCBoYW5kbGVzIHBvaW50ZXIgYm91bmRzIGFuZCB0eXBlcywgd2hpY2ggaXMgcmVhY2hhYmxlIHZpYSB0aGUgYnBmKCkgc3lzY2FsbC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlBGX1NZU0NBTEwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDthZGp1c3RfcHRyX21pbl9tYXhfdmFscyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgQlBGIHZlcmlmaWVyIHRvIHByZXNlcnZlIHRoZSBmcmFtZSBudW1iZXIgd2hlbiBwZXJmb3JtaW5nIHBvaW50ZXIgYXJpdGhtZXRpYyBvbiBzdGFjayBwb2ludGVycy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIEJQRiB2ZXJpZmllciBsb2dpYyB0aGF0IGhhbmRsZXMgcG9pbnRlciBib3VuZHMgYW5kIHR5cGVzLCB3aGljaCBpcyByZWFjaGFibGUgdmlhIHRoZSBicGYoKSBzeXNjYWxsLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMjBUMjM6MzY6NTIuMzQyNTE3MjczWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTUxMDMwOTgxNTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlBGX1NZU0NBTExcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJhZGp1c3RfcHRyX21pbl9tYXhfdmFsc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBCUEYgdmVyaWZpZXIgdG8gcHJlc2VydmUgdGhlIGZyYW1lIG51bWJlciB3aGVuIHBlcmZvcm1pbmcgcG9pbnRlciBhcml0aG1ldGljIG9uIHN0YWNrIHBvaW50ZXJzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgQlBGIHZlcmlmaWVyIGxvZ2ljIHRoYXQgaGFuZGxlcyBwb2ludGVyIGJvdW5kcyBhbmQgdHlwZXMsIHdoaWNoIGlzIHJlYWNoYWJsZSB2aWEgdGhlIGJwZigpIHN5c2NhbGwuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDIzOjM2OjUyLjM0MjUyNjAxM1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzQ5MTg0Mzg5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgYTIxZTdmNDk5NDdiODkyZmNiNzVmYTNkNjJkM2NjOGE0MzVkZDkyM1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEp1bCAyMCAyMzozNjo1MCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcXG5pbmRleCA1MmJlMGExMThjY2UwNy4uNTgwMTcxNDFkNTJiN2IgMTAwNjQ0XFxuLS0tIGEva2VybmVsL2JwZi92ZXJpZmllci5jXFxuKysrIGIva2VybmVsL2JwZi92ZXJpZmllci5jXFxuQEAgLTEzNzk2LDExICsxMzc5NiwxNCBAQCBzdGF0aWMgaW50IGFkanVzdF9wdHJfbWluX21heF92YWxzKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXFxuIFxcdFxcdHJldHVybiAtRUFDQ0VTO1xcbiBcXHR9XFxuIFxcbi1cXHQvKiBJbiBjYXNlIG9mICdzY2FsYXIgKz0gcG9pbnRlcicsIGRzdF9yZWcgaW5oZXJpdHMgcG9pbnRlciB0eXBlIGFuZCBpZC5cXG4tXFx0ICogVGhlIGlkIG1heSBiZSBvdmVyd3JpdHRlbiBsYXRlciBpZiB3ZSBjcmVhdGUgYSBuZXcgdmFyaWFibGUgb2Zmc2V0LlxcbitcXHQvKiBJbiBjYXNlIG9mICdzY2FsYXIgKz0gcG9pbnRlcicsIGRzdF9yZWcgaW5oZXJpdHMgcG9pbnRlciB0eXBlLCBpZCxcXG4rXFx0ICogYW5kIGZvciBzdGFjayBwb2ludGVycyBhbHNvIHRoZSBmcmFtZSBudW1iZXIuIFRoZSBpZCBtYXkgYmUgb3ZlcndyaXR0ZW5cXG4rXFx0ICogbGF0ZXIgaWYgd2UgY3JlYXRlIGEgbmV3IHZhcmlhYmxlIG9mZnNldC5cXG4gXFx0ICovXFxuIFxcdGRzdF9yZWctXFx1MDAzZXR5cGUgPSBwdHJfcmVnLVxcdTAwM2V0eXBlO1xcbiBcXHRkc3RfcmVnLVxcdTAwM2VpZCA9IHB0cl9yZWctXFx1MDAzZWlkO1xcbitcXHRpZiAoYmFzZV90eXBlKHB0cl9yZWctXFx1MDAzZXR5cGUpID09IFBUUl9UT19TVEFDSylcXG4rXFx0XFx0ZHN0X3JlZy1cXHUwMDNlZnJhbWVubyA9IHB0cl9yZWctXFx1MDAzZWZyYW1lbm87XFxuIFxcbiBcXHRpZiAoIWNoZWNrX3JlZ19zYW5lX29mZnNldF9zY2FsYXIoZW52LCBvZmZfcmVnLCBwdHJfcmVnLVxcdTAwM2V0eXBlKSB8fFxcbiBcXHQgICAgIWNoZWNrX3JlZ19zYW5lX29mZnNldF9wdHIoZW52LCBwdHJfcmVnLCBwdHJfcmVnLVxcdTAwM2V0eXBlKSlcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdmVyaWZpZXIuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3ZlcmlmaWVyLmNcXG5pbmRleCBiZTk3ZjY4ODdmMGU3Zi4uMDQ4M2FlMzQwNzI2YzkgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdmVyaWZpZXIuY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3ZlcmlmaWVyLmNcXG5AQCAtMTEsNyArMTEsNiBAQFxcbiAjaW5jbHVkZSBcXFwidmVyaWZpZXJfYXJlbmFfZ2xvYmFsczIuc2tlbC5oXFxcIlxcbiAjaW5jbHVkZSBcXFwidmVyaWZpZXJfYXJyYXlfYWNjZXNzLnNrZWwuaFxcXCJcXG4gI2luY2x1ZGUgXFxcInZlcmlmaWVyX2FzeW5jX2NiX2NvbnRleHQuc2tlbC5oXFxcIlxcbi0jaW5jbHVkZSBcXFwidmVyaWZpZXJfYmFzaWNfc3RhY2suc2tlbC5oXFxcIlxcbiAjaW5jbHVkZSBcXFwidmVyaWZpZXJfYml0ZmllbGRfd3JpdGUuc2tlbC5oXFxcIlxcbiAjaW5jbHVkZSBcXFwidmVyaWZpZXJfYm91bmRzLnNrZWwuaFxcXCJcXG4gI2luY2x1ZGUgXFxcInZlcmlmaWVyX2JvdW5kc19kZWR1Y3Rpb24uc2tlbC5oXFxcIlxcbkBAIC0xNjUsNyArMTY0LDYgQEAgdm9pZCB0ZXN0X3ZlcmlmaWVyX2FyZW5hKHZvaWQpICAgICAgICAgICAgICAgIHsgUlVOKHZlcmlmaWVyX2FyZW5hKTsgfVxcbiB2b2lkIHRlc3RfdmVyaWZpZXJfYXJlbmFfbGFyZ2Uodm9pZCkgICAgICAgICAgeyBSVU4odmVyaWZpZXJfYXJlbmFfbGFyZ2UpOyB9XFxuIHZvaWQgdGVzdF92ZXJpZmllcl9hcmVuYV9nbG9iYWxzMSh2b2lkKSAgICAgICB7IFJVTih2ZXJpZmllcl9hcmVuYV9nbG9iYWxzMSk7IH1cXG4gdm9pZCB0ZXN0X3ZlcmlmaWVyX2FyZW5hX2dsb2JhbHMyKHZvaWQpICAgICAgIHsgUlVOKHZlcmlmaWVyX2FyZW5hX2dsb2JhbHMyKTsgfVxcbi12b2lkIHRlc3RfdmVyaWZpZXJfYmFzaWNfc3RhY2sodm9pZCkgICAgICAgICAgeyBSVU4odmVyaWZpZXJfYmFzaWNfc3RhY2spOyB9XFxuIHZvaWQgdGVzdF92ZXJpZmllcl9iaXRmaWVsZF93cml0ZSh2b2lkKSAgICAgICB7IFJVTih2ZXJpZmllcl9iaXRmaWVsZF93cml0ZSk7IH1cXG4gdm9pZCB0ZXN0X3ZlcmlmaWVyX2JvdW5kcyh2b2lkKSAgICAgICAgICAgICAgIHsgUlVOKHZlcmlmaWVyX2JvdW5kcyk7IH1cXG4gdm9pZCB0ZXN0X3ZlcmlmaWVyX2JvdW5kc19kZWR1Y3Rpb24odm9pZCkgICAgIHsgUlVOKHZlcmlmaWVyX2JvdW5kc19kZWR1Y3Rpb24pOyB9XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy92ZXJpZmllcl9iYXNpY19zdGFjay5jXFxubmV3IGZpbGUgbW9kZSAxMDA2NDRcXG5pbmRleCAwMDAwMDAwMDAwMDAwMC4uMjc5ZjM4OTcyOWI4ZWZcXG4tLS0gL2Rldi9udWxsXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdmVyaWZpZXJfYmFzaWNfc3RhY2suY1xcbkBAIC0wLDAgKzEsMjggQEBcXG4rLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbitcXG4rI2luY2x1ZGUgXFx1MDAzY3Rlc3RfcHJvZ3MuaFxcdTAwM2VcXG4rXFxuKyNpbmNsdWRlIFxcXCJjYXBfaGVscGVycy5oXFxcIlxcbisjaW5jbHVkZSBcXFwidmVyaWZpZXJfYmFzaWNfc3RhY2suc2tlbC5oXFxcIlxcbitcXG4rdm9pZCB0ZXN0X3ZlcmlmaWVyX2Jhc2ljX3N0YWNrKHZvaWQpXFxuK3tcXG4rXFx0c3RydWN0IHRlc3RfbG9hZGVyIHRlc3RlciA9IHt9O1xcbitcXHRfX3U2NCBvbGRfY2FwcztcXG4rXFx0aW50IGVycjtcXG4rXFxuK1xcdC8qIHRlc3RfdmVyaWZpZXIgdGVzdHMgYXJlIGV4ZWN1dGVkIHcvbyBDQVBfU1lTX0FETUlOLCBkbyB0aGUgc2FtZSBoZXJlICovXFxuK1xcdGVyciA9IGNhcF9kaXNhYmxlX2VmZmVjdGl2ZSgxVUxMIFxcdTAwM2NcXHUwMDNjIENBUF9TWVNfQURNSU4sIFxcdTAwMjZvbGRfY2Fwcyk7XFxuK1xcdGlmIChlcnIpIHtcXG4rXFx0XFx0UFJJTlRfRkFJTChcXFwiZmFpbGVkIHRvIGRyb3AgQ0FQX1NZU19BRE1JTjogJWksICVzXFxcXG5cXFwiLCBlcnIsIHN0cmVycm9yKC1lcnIpKTtcXG4rXFx0XFx0cmV0dXJuO1xcbitcXHR9XFxuK1xcbitcXHR0ZXN0X2xvYWRlcl9fcnVuX3N1YnRlc3RzKFxcdTAwMjZ0ZXN0ZXIsIFxcXCJ2ZXJpZmllcl9iYXNpY19zdGFja1xcXCIsXFxuK1xcdFxcdFxcdFxcdCAgdmVyaWZpZXJfYmFzaWNfc3RhY2tfX2VsZl9ieXRlcyk7XFxuK1xcdHRlc3RfbG9hZGVyX2ZpbmkoXFx1MDAyNnRlc3Rlcik7XFxuK1xcbitcXHRlcnIgPSBjYXBfZW5hYmxlX2VmZmVjdGl2ZShvbGRfY2FwcywgTlVMTCk7XFxuK1xcdGlmIChlcnIpXFxuK1xcdFxcdFBSSU5UX0ZBSUwoXFxcImZhaWxlZCB0byByZXN0b3JlIENBUF9TWVNfQURNSU46ICVpLCAlc1xcXFxuXFxcIiwgZXJyLCBzdHJlcnJvcigtZXJyKSk7XFxuK31cXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYmFzaWNfc3RhY2suY1xcbmluZGV4IGZiNjJlMDlmMjExNDZkLi42MzQxODNmYzg2ODgzZiAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYmFzaWNfc3RhY2suY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9iYXNpY19zdGFjay5jXFxuQEAgLTk3LDQgKzk3LDQ1IEBAIF9fbmFrZWQgdm9pZCBtaXNhbGlnbmVkX3JlYWRfZnJvbV9zdGFjayh2b2lkKVxcbiBcXFwiXFx0Ojo6IF9fY2xvYmJlcl9hbGwpO1xcbiB9XFxuIFxcbitTRUMoXFxcInNvY2tldFxcXCIpXFxuK19fZGVzY3JpcHRpb24oXFxcInN0YWNrIHBvaW50ZXIgYXJpdGhtZXRpYyBwcmVzZXJ2ZXMgZnJhbWUgbnVtYmVyXFxcIilcXG4rX19mYWlsdXJlIF9fbXNnKFxcXCJSNyBpbnZhbGlkIG1lbSBhY2Nlc3MgJ3NjYWxhcidcXFwiKVxcbitfX25ha2VkIHZvaWQgc3RhY2tfcHRyX2FyaXRoX3ByZXNlcnZlc19mcmFtZW5vKHZvaWQpXFxuK3tcXG4rXFx0YXNtIHZvbGF0aWxlIChcXFwiXFx0XFx0XFx0XFx0XFx0XFxcXFxcbitcXHRyMyA9IDA7XFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbitcXHQqKHU2NCAqKShyMTAgLSA4KSA9IHIzO1xcdFxcdFxcdFxcXFxcXG4rXFx0cjEgPSAlW21hcF9oYXNoXzhiXSBsbDtcXHRcXHRcXHRcXFxcXFxuK1xcdHIyID0gcjEwO1xcdFxcdFxcdFxcdFxcdFxcXFxcXG4rXFx0cjIgKz0gLTg7XFx0XFx0XFx0XFx0XFx0XFxcXFxcbitcXHRjYWxsICVbYnBmX21hcF9sb29rdXBfZWxlbV07XFx0XFx0XFx0XFxcXFxcbitcXHRpZiByMCAhPSAwIGdvdG8gKzI7XFx0XFx0XFx0XFx0XFxcXFxcbitcXHRyMCA9IDA7XFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbitcXHRleGl0O1xcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4rXFx0cjEgPSByMDtcXHRcXHRcXHRcXHRcXHRcXFxcXFxuK1xcdHIyID0gMDtcXHRcXHRcXHRcXHRcXHRcXHRcXFxcXFxuK1xcdHIzID0gMDtcXHRcXHRcXHRcXHRcXHRcXHRcXFxcXFxuK1xcdGNhbGwgc3RhY2tfcHRyX2FyaXRoX3ByZXNlcnZlc19mcmFtZW5vX3N1YnByb2c7XFx0XFxcXFxcbitcXHRyMCA9IDA7XFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbitcXHRleGl0O1xcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4rXFxcIlxcdDpcXG4rXFx0OiBfX2ltbShicGZfbWFwX2xvb2t1cF9lbGVtKSxcXG4rXFx0ICBfX2ltbV9hZGRyKG1hcF9oYXNoXzhiKVxcbitcXHQ6IF9fY2xvYmJlcl9hbGwpO1xcbit9XFxuK1xcbitzdGF0aWMgX191c2VkIF9fbmFrZWQgdm9pZCBzdGFja19wdHJfYXJpdGhfcHJlc2VydmVzX2ZyYW1lbm9fc3VicHJvZyh2b2lkKVxcbit7XFxuK1xcdGFzbSB2b2xhdGlsZSAoXFxcIlxcdFxcdFxcdFxcdFxcdFxcXFxcXG4rXFx0Kih1NjQgKikocjEwIC0gOCkgPSByMTtcXHRcXHRcXHRcXFxcXFxuK1xcdHI2ID0gLTg7XFx0XFx0XFx0XFx0XFx0XFxcXFxcbitcXHRyNiArPSByMTA7XFx0XFx0XFx0XFx0XFx0XFxcXFxcbitcXHQqKHU2NCAqKShyNiArIDApID0gcjI7XFx0XFx0XFx0XFxcXFxcbitcXHRyNyA9ICoodTY0ICopKHIxMCAtIDgpO1xcdFxcdFxcdFxcXFxcXG4rXFx0Kih1NjQgKikocjcgKyAwKSA9IHIzO1xcdFxcdFxcdFxcXFxcXG4rXFx0cjAgPSAwO1xcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4rXFx0ZXhpdDtcXHRcXHRcXHRcXHRcXHRcXHRcXFxcXFxuK1xcXCJcXHQ6OjogX19jbG9iYmVyX2FsbCk7XFxuK31cXG4rXFxuIGNoYXIgX2xpY2Vuc2VbXSBTRUMoXFxcImxpY2Vuc2VcXFwiKSA9IFxcXCJHUExcXFwiO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQyMzozNjo1My4wOTI0ODgyOTFaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoxNDM1MzExMzA5OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfU1lTQ0FMTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImFkanVzdF9wdHJfbWluX21heF92YWxzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciB0byBwcmVzZXJ2ZSB0aGUgZnJhbWUgbnVtYmVyIHdoZW4gcGVyZm9ybWluZyBwb2ludGVyIGFyaXRobWV0aWMgb24gc3RhY2sgcG9pbnRlcnMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBCUEYgdmVyaWZpZXIgbG9naWMgdGhhdCBoYW5kbGVzIHBvaW50ZXIgYm91bmRzIGFuZCB0eXBlcywgd2hpY2ggaXMgcmVhY2hhYmxlIHZpYSB0aGUgYnBmKCkgc3lzY2FsbC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBhMjFlN2Y0OTk0N2I4OTJmY2I3NWZhM2Q2MmQzY2M4YTQzNWRkOTIzXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdWwgMjAgMjM6MzY6NTAgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbmluZGV4IDUyYmUwYTExOGNjZTA3Li41ODAxNzE0MWQ1MmI3YiAxMDA2NDRcbi0tLSBhL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xuKysrIGIva2VybmVsL2JwZi92ZXJpZmllci5jXG5AQCAtMTM3OTYsMTEgKzEzNzk2LDE0IEBAIHN0YXRpYyBpbnQgYWRqdXN0X3B0cl9taW5fbWF4X3ZhbHMoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudixcbiBcdFx0cmV0dXJuIC1FQUNDRVM7XG4gXHR9XG4gXG4tXHQvKiBJbiBjYXNlIG9mICdzY2FsYXIgKz0gcG9pbnRlcicsIGRzdF9yZWcgaW5oZXJpdHMgcG9pbnRlciB0eXBlIGFuZCBpZC5cbi1cdCAqIFRoZSBpZCBtYXkgYmUgb3ZlcndyaXR0ZW4gbGF0ZXIgaWYgd2UgY3JlYXRlIGEgbmV3IHZhcmlhYmxlIG9mZnNldC5cbitcdC8qIEluIGNhc2Ugb2YgJ3NjYWxhciArPSBwb2ludGVyJywgZHN0X3JlZyBpbmhlcml0cyBwb2ludGVyIHR5cGUsIGlkLFxuK1x0ICogYW5kIGZvciBzdGFjayBwb2ludGVycyBhbHNvIHRoZSBmcmFtZSBudW1iZXIuIFRoZSBpZCBtYXkgYmUgb3ZlcndyaXR0ZW5cbitcdCAqIGxhdGVyIGlmIHdlIGNyZWF0ZSBhIG5ldyB2YXJpYWJsZSBvZmZzZXQuXG4gXHQgKi9cbiBcdGRzdF9yZWctXHUwMDNldHlwZSA9IHB0cl9yZWctXHUwMDNldHlwZTtcbiBcdGRzdF9yZWctXHUwMDNlaWQgPSBwdHJfcmVnLVx1MDAzZWlkO1xuK1x0aWYgKGJhc2VfdHlwZShwdHJfcmVnLVx1MDAzZXR5cGUpID09IFBUUl9UT19TVEFDSylcbitcdFx0ZHN0X3JlZy1cdTAwM2VmcmFtZW5vID0gcHRyX3JlZy1cdTAwM2VmcmFtZW5vO1xuIFxuIFx0aWYgKCFjaGVja19yZWdfc2FuZV9vZmZzZXRfc2NhbGFyKGVudiwgb2ZmX3JlZywgcHRyX3JlZy1cdTAwM2V0eXBlKSB8fFxuIFx0ICAgICFjaGVja19yZWdfc2FuZV9vZmZzZXRfcHRyKGVudiwgcHRyX3JlZywgcHRyX3JlZy1cdTAwM2V0eXBlKSlcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy92ZXJpZmllci5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdmVyaWZpZXIuY1xuaW5kZXggYmU5N2Y2ODg3ZjBlN2YuLjA0ODNhZTM0MDcyNmM5IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdmVyaWZpZXIuY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdmVyaWZpZXIuY1xuQEAgLTExLDcgKzExLDYgQEBcbiAjaW5jbHVkZSBcInZlcmlmaWVyX2FyZW5hX2dsb2JhbHMyLnNrZWwuaFwiXG4gI2luY2x1ZGUgXCJ2ZXJpZmllcl9hcnJheV9hY2Nlc3Muc2tlbC5oXCJcbiAjaW5jbHVkZSBcInZlcmlmaWVyX2FzeW5jX2NiX2NvbnRleHQuc2tlbC5oXCJcbi0jaW5jbHVkZSBcInZlcmlmaWVyX2Jhc2ljX3N0YWNrLnNrZWwuaFwiXG4gI2luY2x1ZGUgXCJ2ZXJpZmllcl9iaXRmaWVsZF93cml0ZS5za2VsLmhcIlxuICNpbmNsdWRlIFwidmVyaWZpZXJfYm91bmRzLnNrZWwuaFwiXG4gI2luY2x1ZGUgXCJ2ZXJpZmllcl9ib3VuZHNfZGVkdWN0aW9uLnNrZWwuaFwiXG5AQCAtMTY1LDcgKzE2NCw2IEBAIHZvaWQgdGVzdF92ZXJpZmllcl9hcmVuYSh2b2lkKSAgICAgICAgICAgICAgICB7IFJVTih2ZXJpZmllcl9hcmVuYSk7IH1cbiB2b2lkIHRlc3RfdmVyaWZpZXJfYXJlbmFfbGFyZ2Uodm9pZCkgICAgICAgICAgeyBSVU4odmVyaWZpZXJfYXJlbmFfbGFyZ2UpOyB9XG4gdm9pZCB0ZXN0X3ZlcmlmaWVyX2FyZW5hX2dsb2JhbHMxKHZvaWQpICAgICAgIHsgUlVOKHZlcmlmaWVyX2FyZW5hX2dsb2JhbHMxKTsgfVxuIHZvaWQgdGVzdF92ZXJpZmllcl9hcmVuYV9nbG9iYWxzMih2b2lkKSAgICAgICB7IFJVTih2ZXJpZmllcl9hcmVuYV9nbG9iYWxzMik7IH1cbi12b2lkIHRlc3RfdmVyaWZpZXJfYmFzaWNfc3RhY2sodm9pZCkgICAgICAgICAgeyBSVU4odmVyaWZpZXJfYmFzaWNfc3RhY2spOyB9XG4gdm9pZCB0ZXN0X3ZlcmlmaWVyX2JpdGZpZWxkX3dyaXRlKHZvaWQpICAgICAgIHsgUlVOKHZlcmlmaWVyX2JpdGZpZWxkX3dyaXRlKTsgfVxuIHZvaWQgdGVzdF92ZXJpZmllcl9ib3VuZHModm9pZCkgICAgICAgICAgICAgICB7IFJVTih2ZXJpZmllcl9ib3VuZHMpOyB9XG4gdm9pZCB0ZXN0X3ZlcmlmaWVyX2JvdW5kc19kZWR1Y3Rpb24odm9pZCkgICAgIHsgUlVOKHZlcmlmaWVyX2JvdW5kc19kZWR1Y3Rpb24pOyB9XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdmVyaWZpZXJfYmFzaWNfc3RhY2suYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmNcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XG5pbmRleCAwMDAwMDAwMDAwMDAwMC4uMjc5ZjM4OTcyOWI4ZWZcbi0tLSAvZGV2L251bGxcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmNcbkBAIC0wLDAgKzEsMjggQEBcbisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG4rXG4rI2luY2x1ZGUgXHUwMDNjdGVzdF9wcm9ncy5oXHUwMDNlXG4rXG4rI2luY2x1ZGUgXCJjYXBfaGVscGVycy5oXCJcbisjaW5jbHVkZSBcInZlcmlmaWVyX2Jhc2ljX3N0YWNrLnNrZWwuaFwiXG4rXG4rdm9pZCB0ZXN0X3ZlcmlmaWVyX2Jhc2ljX3N0YWNrKHZvaWQpXG4re1xuK1x0c3RydWN0IHRlc3RfbG9hZGVyIHRlc3RlciA9IHt9O1xuK1x0X191NjQgb2xkX2NhcHM7XG4rXHRpbnQgZXJyO1xuK1xuK1x0LyogdGVzdF92ZXJpZmllciB0ZXN0cyBhcmUgZXhlY3V0ZWQgdy9vIENBUF9TWVNfQURNSU4sIGRvIHRoZSBzYW1lIGhlcmUgKi9cbitcdGVyciA9IGNhcF9kaXNhYmxlX2VmZmVjdGl2ZSgxVUxMIFx1MDAzY1x1MDAzYyBDQVBfU1lTX0FETUlOLCBcdTAwMjZvbGRfY2Fwcyk7XG4rXHRpZiAoZXJyKSB7XG4rXHRcdFBSSU5UX0ZBSUwoXCJmYWlsZWQgdG8gZHJvcCBDQVBfU1lTX0FETUlOOiAlaSwgJXNcXG5cIiwgZXJyLCBzdHJlcnJvcigtZXJyKSk7XG4rXHRcdHJldHVybjtcbitcdH1cbitcbitcdHRlc3RfbG9hZGVyX19ydW5fc3VidGVzdHMoXHUwMDI2dGVzdGVyLCBcInZlcmlmaWVyX2Jhc2ljX3N0YWNrXCIsXG4rXHRcdFx0XHQgIHZlcmlmaWVyX2Jhc2ljX3N0YWNrX19lbGZfYnl0ZXMpO1xuK1x0dGVzdF9sb2FkZXJfZmluaShcdTAwMjZ0ZXN0ZXIpO1xuK1xuK1x0ZXJyID0gY2FwX2VuYWJsZV9lZmZlY3RpdmUob2xkX2NhcHMsIE5VTEwpO1xuK1x0aWYgKGVycilcbitcdFx0UFJJTlRfRkFJTChcImZhaWxlZCB0byByZXN0b3JlIENBUF9TWVNfQURNSU46ICVpLCAlc1xcblwiLCBlcnIsIHN0cmVycm9yKC1lcnIpKTtcbit9XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYmFzaWNfc3RhY2suY1xuaW5kZXggZmI2MmUwOWYyMTE0NmQuLjYzNDE4M2ZjODY4ODNmIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmNcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9iYXNpY19zdGFjay5jXG5AQCAtOTcsNCArOTcsNDUgQEAgX19uYWtlZCB2b2lkIG1pc2FsaWduZWRfcmVhZF9mcm9tX3N0YWNrKHZvaWQpXG4gXCJcdDo6OiBfX2Nsb2JiZXJfYWxsKTtcbiB9XG4gXG4rU0VDKFwic29ja2V0XCIpXG4rX19kZXNjcmlwdGlvbihcInN0YWNrIHBvaW50ZXIgYXJpdGhtZXRpYyBwcmVzZXJ2ZXMgZnJhbWUgbnVtYmVyXCIpXG4rX19mYWlsdXJlIF9fbXNnKFwiUjcgaW52YWxpZCBtZW0gYWNjZXNzICdzY2FsYXInXCIpXG4rX19uYWtlZCB2b2lkIHN0YWNrX3B0cl9hcml0aF9wcmVzZXJ2ZXNfZnJhbWVubyh2b2lkKVxuK3tcbitcdGFzbSB2b2xhdGlsZSAoXCJcdFx0XHRcdFx0XFxcbitcdHIzID0gMDtcdFx0XHRcdFx0XHRcXFxuK1x0Kih1NjQgKikocjEwIC0gOCkgPSByMztcdFx0XHRcXFxuK1x0cjEgPSAlW21hcF9oYXNoXzhiXSBsbDtcdFx0XHRcXFxuK1x0cjIgPSByMTA7XHRcdFx0XHRcdFxcXG4rXHRyMiArPSAtODtcdFx0XHRcdFx0XFxcbitcdGNhbGwgJVticGZfbWFwX2xvb2t1cF9lbGVtXTtcdFx0XHRcXFxuK1x0aWYgcjAgIT0gMCBnb3RvICsyO1x0XHRcdFx0XFxcbitcdHIwID0gMDtcdFx0XHRcdFx0XHRcXFxuK1x0ZXhpdDtcdFx0XHRcdFx0XHRcXFxuK1x0cjEgPSByMDtcdFx0XHRcdFx0XFxcbitcdHIyID0gMDtcdFx0XHRcdFx0XHRcXFxuK1x0cjMgPSAwO1x0XHRcdFx0XHRcdFxcXG4rXHRjYWxsIHN0YWNrX3B0cl9hcml0aF9wcmVzZXJ2ZXNfZnJhbWVub19zdWJwcm9nO1x0XFxcbitcdHIwID0gMDtcdFx0XHRcdFx0XHRcXFxuK1x0ZXhpdDtcdFx0XHRcdFx0XHRcXFxuK1wiXHQ6XG4rXHQ6IF9faW1tKGJwZl9tYXBfbG9va3VwX2VsZW0pLFxuK1x0ICBfX2ltbV9hZGRyKG1hcF9oYXNoXzhiKVxuK1x0OiBfX2Nsb2JiZXJfYWxsKTtcbit9XG4rXG4rc3RhdGljIF9fdXNlZCBfX25ha2VkIHZvaWQgc3RhY2tfcHRyX2FyaXRoX3ByZXNlcnZlc19mcmFtZW5vX3N1YnByb2codm9pZClcbit7XG4rXHRhc20gdm9sYXRpbGUgKFwiXHRcdFx0XHRcdFxcXG4rXHQqKHU2NCAqKShyMTAgLSA4KSA9IHIxO1x0XHRcdFxcXG4rXHRyNiA9IC04O1x0XHRcdFx0XHRcXFxuK1x0cjYgKz0gcjEwO1x0XHRcdFx0XHRcXFxuK1x0Kih1NjQgKikocjYgKyAwKSA9IHIyO1x0XHRcdFxcXG4rXHRyNyA9ICoodTY0ICopKHIxMCAtIDgpO1x0XHRcdFxcXG4rXHQqKHU2NCAqKShyNyArIDApID0gcjM7XHRcdFx0XFxcbitcdHIwID0gMDtcdFx0XHRcdFx0XHRcXFxuK1x0ZXhpdDtcdFx0XHRcdFx0XHRcXFxuK1wiXHQ6OjogX19jbG9iYmVyX2FsbCk7XG4rfVxuK1xuIGNoYXIgX2xpY2Vuc2VbXSBTRUMoXCJsaWNlbnNlXCIpID0gXCJHUExcIjtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDIzOjM2OjUzLjA5MjQ5MTI0MloiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ2MTg4ODcxODMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQlBGIFZlcmlmaWVyIFBhdGNoIEFuYWx5c2lzKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IG1vZGlmaWVzIGBrZXJuZWwvYnBmL3ZlcmlmaWVyLmNgLiBTcGVjaWZpY2FsbHksIHRoZSBjaGFuZ2UgaXMgd2l0aGluIHRoZSBgYWRqdXN0X3B0cl9taW5fbWF4X3ZhbHNgIGZ1bmN0aW9uLiBUaGUgY29kZSdzIGxvZ2ljIGhhbmRsZXMgdGhlIGNhc2Ugb2YgYHNjYWxhciArPSBwb2ludGVyYCBvcGVyYXRpb25zLlxuXG5NeSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgcHJldmlvdXNseSwgd2hlbiB5b3UgZGlkIHNvbWV0aGluZyBsaWtlIHRoYXQsIHRoZSBkZXN0aW5hdGlvbiByZWdpc3RlciAoYGRzdF9yZWdgKSB3YXMgaW5oZXJpdGluZyB0aGUgcG9pbnRlcidzIHR5cGUgYW5kIElELCB3aGljaCBpcyBjb3JyZWN0LiBUaGUgSUQgbWlnaHQgZ2V0IG92ZXJ3cml0dGVuIGxhdGVyLCBhbmQgdGhhdCdzIGZpbmUuIEhvd2V2ZXIsIGl0IHdhc24ndCBwcmVzZXJ2aW5nIHRoZSBmcmFtZSBudW1iZXIgYXNzb2NpYXRlZCB3aXRoIHN0YWNrIHBvaW50ZXJzLiBUaGlzIGNoYW5nZSBhZGRzIGEgY2hlY2sgdG8gZW5zdXJlIHRoYXQgaWYgdGhlIHBvaW50ZXIgKGBwdHJfcmVnYCkgaXMgYSBzdGFjayBwb2ludGVyIChpLmUuLCBgYmFzZV90eXBlKHB0cl9yZWctXHUwMDNldHlwZSkgPT0gUFRSX1RPX1NUQUNLYCksIHRoZSBkZXN0aW5hdGlvbiByZWdpc3RlciAqYWxzbyogZ2V0cyB0aGUgY29ycmVjdCBgZnJhbWVub2AuXG5cblNvLCBpdCdzIGEgc3VidGxlIGJ1dCBpbXBvcnRhbnQgZml4IHRvIGhvdyB0aGUgQlBGIHZlcmlmaWVyIGhhbmRsZXMgc3RhY2sgcG9pbnRlciBhcml0aG1ldGljLiBUaGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgQlBGIHZlcmlmaWVyLCBhZGRyZXNzaW5nIGEgc3BlY2lmaWMgYnVnLiBUaGVyZWZvcmUsIGJlY2F1c2UgaXQncyBhIG1vZGlmaWNhdGlvbiBvZiBjcml0aWNhbCBrZXJuZWwgY29kZSB0aGF0IGFmZmVjdHMgbWVtb3J5IHNhZmV0eSBhbmQgcHJvZ3JhbSBleGVjdXRpb24sIEkgc2hvdWxkIGZsYWcgdGhpcyBhcyB3b3J0aCBmdXp6aW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjA5LCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjUyLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMjM6MzY6NTcuNzExMzgxNjA0WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyMjA2MTA4MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJhZGp1c3RfcHRyX21pbl9tYXhfdmFsc1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJrZXJuZWwvYnBmL3ZlcmlmaWVyLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwia2VybmVsL2JwZi92ZXJpZmllci5jPTQwMDM9c3RhdGljIGludCBjaGVja19zdGFja19yZWFkKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNDAyNy1cXHQgKiBjaGVja19zdGFja19hY2Nlc3NfZm9yX3B0cl9hcml0aG1ldGljKCkgY2FsbGVkIGJ5XFxua2VybmVsL2JwZi92ZXJpZmllci5jOjQwMjg6XFx0ICogYWRqdXN0X3B0cl9taW5fbWF4X3ZhbHMoKSBwcmV2ZW50cyB1c2VycyBmcm9tIGNyZWF0aW5nIHN0YWNrIHBvaW50ZXJzXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTQwMjktXFx0ICogd2l0aCB2YXJpYWJsZSBvZmZzZXRzLCB0aGVyZWZvcmUgbm8gY2hlY2sgaXMgcmVxdWlyZWQgaGVyZS4gRnVydGhlcixcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xMzY4MD1zdGF0aWMgaW50IHNhbml0aXplX2NoZWNrX2JvdW5kcyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LFxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTEzNzE2LSAqL1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxMzcxNzpzdGF0aWMgaW50IGFkanVzdF9wdHJfbWluX21heF92YWxzKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTEzNzE4LVxcdFxcdFxcdFxcdCAgIHN0cnVjdCBicGZfaW5zbiAqaW5zbixcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xNDgwND1zdGF0aWMgaW50IGFkanVzdF9yZWdfbWluX21heF92YWxzKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTQ4NjYtXFx0XFx0XFx0XFx0XFx0cmV0dXJuIGVycjtcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTQ4Njc6XFx0XFx0XFx0XFx0cmV0dXJuIGFkanVzdF9wdHJfbWluX21heF92YWxzKGVudiwgaW5zbixcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTQ4NjgtXFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgICAgIHNyY19yZWcsIGRzdF9yZWcpO1xcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE0ODc0LVxcdFxcdFxcdFxcdHJldHVybiBlcnI7XFxua2VybmVsL2JwZi92ZXJpZmllci5jOjE0ODc1OlxcdFxcdFxcdHJldHVybiBhZGp1c3RfcHRyX21pbl9tYXhfdmFscyhlbnYsIGluc24sXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE0ODc2LVxcdFxcdFxcdFxcdFxcdFxcdCAgICAgICBkc3RfcmVnLCBzcmNfcmVnKTtcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xNDg5MC1cXHRcXHRpZiAocHRyX3JlZykgLyogcG9pbnRlciArPSBLICovXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjE0ODkxOlxcdFxcdFxcdHJldHVybiBhZGp1c3RfcHRyX21pbl9tYXhfdmFscyhlbnYsIGluc24sXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE0ODkyLVxcdFxcdFxcdFxcdFxcdFxcdCAgICAgICBwdHJfcmVnLCBzcmNfcmVnKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMjM6MzY6NTguMTMzNDUxNTI0WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQ0NDIxOTg2NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbnZlc3RpZ2F0aW5nIHRoZSBDb25maWd1cmF0aW9uIFJlcXVpcmVtZW50cyBmb3IgYGFkanVzdF9wdHJfbWluX21heF92YWxzYCoqXG5cbk9rYXksIHNvIGBhZGp1c3RfcHRyX21pbl9tYXhfdmFsc2AgaXMgY2FsbGVkIGJ5IGBhZGp1c3RfcmVnX21pbl9tYXhfdmFsc2AuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCB3aGF0IGFyZSB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgdGhhdCBhcmUgZ29pbmcgdG8gaW1wYWN0IHRoaXM/IEdpdmVuIG15IGJhY2tncm91bmQsIEknbSBwcmV0dHkgc3VyZSBCUEYgaXMgdXN1YWxseSB0b2dnbGVkIG9uIGJ5IGBDT05GSUdfQlBGYCBhbmQgYENPTkZJR19CUEZfU1lTQ0FMTGAuIEknbGwgd2FudCB0byB2ZXJpZnkgdGhhdCBhbmQgZ2V0IHRoZSBkZXBlbmRlbmNpZXMgc3RyYWlnaHQuIFRvIGRvIHRoaXMsIEknbSBnb2luZyB0byBxdWlja2x5IGNoZWNrIGluIGBrZXJuZWwvYnBmL01ha2VmaWxlYCBvciBga2VybmVsL2JwZi9LY29uZmlnYC4gVGhhdCBzaG91bGQgZ2l2ZSBtZSBhIHNvbGlkIHZpZXcgb2YgdGhlIGNvbmZpZ3VyYXRpb24gbGFuZHNjYXBlIGhlcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ3MTAsIk91dHB1dFRva2VucyI6MjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQyMzozNzowMS41Nzc2NzU2OTlaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzQzODM5NDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidmVyaWZpZXIub1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJrZXJuZWwvYnBmL01ha2VmaWxlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImtlcm5lbC9icGYvTWFrZWZpbGU9Nz1DRkxBR1NfY29yZS5vICs9IC1Xbm8tb3ZlcnJpZGUtaW5pdCAkKGNmbGFncy1ub2djc2UteXkpXFxua2VybmVsL2JwZi9NYWtlZmlsZS04LVxcbmtlcm5lbC9icGYvTWFrZWZpbGU6OTpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICs9IHN5c2NhbGwubyB2ZXJpZmllci5vIGlub2RlLm8gaGVscGVycy5vIHRudW0ubyBjbnVtLm8gbG9nLm8gdG9rZW4ubyBsaXZlbmVzcy5vIGNvbnN0X2ZvbGQub1xcbmtlcm5lbC9icGYvTWFrZWZpbGUtMTAtb2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSBicGZfaXRlci5vIG1hcF9pdGVyLm8gdGFza19pdGVyLm8gcHJvZ19pdGVyLm8gbGlua19pdGVyLm9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMjM6Mzc6MDEuNjUyMDY3NDFaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NjkzNzY0OTAwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIFBhdGNoJ3MgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyBJJ3ZlIHplcm9lZCBpbiBvbiB0aGUgYEJQRl9TWVNDQUxMYCBjb25maWd1cmF0aW9uIG9wdGlvbi4gVGhhdCdzIG15IHN0YXJ0aW5nIHBvaW50LiBUaGUgY3J1Y2lhbCBmdW5jdGlvbiB3aXRoaW4gdGhlIHBhdGNoLCB0aGUgb25lIHRoYXQgcmVhbGx5IHNlZW1zIHRvIGdyYWIgbXkgYXR0ZW50aW9uLCBpcyBgYWRqdXN0X3B0cl9taW5fbWF4X3ZhbHNgLlxuXG5MZXQgbWUganVzdCBxdWlja2x5IGNvbmZpcm0gdGhhdCB0aGVyZSBhcmVuJ3QgYW55IG90aGVyIGZ1bmN0aW9ucyB0aGF0IHdhcnJhbnQgc2ltaWxhciBhdHRlbnRpb24uIE5vcGUsIGBhZGp1c3RfcHRyX21pbl9tYXhfdmFsc2AgcmVtYWlucyB0aGUga2V5LlxuXG5Ob3csIHRoZSBpbXBvcnRhbnQgcXVlc3Rpb246IGlzIHRoaXMgZnVuY3Rpb24gYSBcImhvdCBwYXRoXCI/IE5vdCBpbiB0aGUgdXN1YWwgc2Vuc2Ugb2YgcmVhbC10aW1lIHBhY2tldCBwcm9jZXNzaW5nIG9yIHNjaGVkdWxlciBjb2RlLCBuby4gQnV0IHRoaXMgaXMgdGhlIEJQRiB2ZXJpZmllciwgYW5kIGBhZGp1c3RfcHRyX21pbl9tYXhfdmFsc2AgaXMgKnBhcnQqIG9mIHRoZSB2ZXJpZmllci4gSXQncyBleGVjdXRlZCB3aGVuIGEgQlBGIHByb2dyYW0gaXMgbG9hZGVkLCB3aGljaCBtYWtlcyBpdCBhIGNyaXRpY2FsIHBhcnQgb2YgdGhlIGF0dGFjayBzdXJmYWNlLCBhbmQgYSBwZXJmZWN0IHRhcmdldCBmb3IgZnV6emluZyB2aWEgYGJwZigpYCBzeXNjYWxscywgYXMgU3l6a2FsbGVyIGRvZXMuIFRoaXMgaXMgd2hlcmUgdGhlIHZ1bG5lcmFiaWxpdHkgaHVudGluZyBpcy5cblxuQWxyaWdodCwgSSdsbCBxdWlja2x5IHZlcmlmeSB0aGF0IGBhZGp1c3RfcHRyX21pbl9tYXhfdmFsc2AgaXMgZGVjbGFyZWQgc3RhdGljLiBZZXMsIGl0IGlzLiBBbGwgdGhlIGJldHRlci5cblxuTGV0J3Mgc3VtbWFyaXplIHRoaXMuXG5cbioqV29ydGhGdXp6aW5nOiBUcnVlKipcbioqRm9jdXNTeW1ib2xzOiBbXCJhZGp1c3RfcHRyX21pbl9tYXhfdmFsc1wiXSoqXG4qKkVuYWJsZUNvbmZpZ3M6IFtcIkJQRl9TWVNDQUxMXCJdKipcbioqUmVhc29uaW5nOiBcIlRoaXMgcGF0Y2ggZnVuZGFtZW50YWxseSBhbHRlcnMgdGhlIEJQRiB2ZXJpZmllcidzIGJlaGF2aW9yIGJ5IHByZXNlcnZpbmcgdGhlIGZyYW1lIG51bWJlciBkdXJpbmcgcG9pbnRlciBhcml0aG1ldGljIG9uIHN0YWNrIHBvaW50ZXJzLiBUaGlzIGNoYW5nZSBkaXJlY3RseSBpbXBhY3RzIHRoZSBjb3JlIGxvZ2ljIG9mIHRoZSB2ZXJpZmllciwgcGFydGljdWxhcmx5IGhvdyBpdCBoYW5kbGVzIHBvaW50ZXIgYm91bmRzIGFuZCB0eXBlcy4gVGhlIEJQRiB2ZXJpZmllciBsb2dpYyBpcyBhY2Nlc3NpYmxlIHRocm91Z2ggdGhlIGBicGYoKWAgc3lzY2FsbCBhbmQgaXMgdGhlcmVmb3JlIHN1aXRhYmxlIGZvciBmdXp6aW5nLlwiKipcblxuXG4iLCJJbnB1dFRva2VucyI6NTE0MiwiT3V0cHV0VG9rZW5zIjoxMDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNzcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMjM6Mzc6MDcuMzQ1ODM1MzJaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk5NzYxMDUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfU1lTQ0FMTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImFkanVzdF9wdHJfbWluX21heF92YWxzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciB0byBwcmVzZXJ2ZSB0aGUgZnJhbWUgbnVtYmVyIHdoZW4gcGVyZm9ybWluZyBwb2ludGVyIGFyaXRobWV0aWMgb24gc3RhY2sgcG9pbnRlcnMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBCUEYgdmVyaWZpZXIgbG9naWMgdGhhdCBoYW5kbGVzIHBvaW50ZXIgYm91bmRzIGFuZCB0eXBlcywgd2hpY2ggaXMgcmVhY2hhYmxlIHZpYSB0aGUgYnBmKCkgc3lzY2FsbC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfU1lTQ0FMTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImFkanVzdF9wdHJfbWluX21heF92YWxzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciB0byBwcmVzZXJ2ZSB0aGUgZnJhbWUgbnVtYmVyIHdoZW4gcGVyZm9ybWluZyBwb2ludGVyIGFyaXRobWV0aWMgb24gc3RhY2sgcG9pbnRlcnMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBCUEYgdmVyaWZpZXIgbG9naWMgdGhhdCBoYW5kbGVzIHBvaW50ZXIgYm91bmRzIGFuZCB0eXBlcywgd2hpY2ggaXMgcmVhY2hhYmxlIHZpYSB0aGUgYnBmKCkgc3lzY2FsbC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow5tfzn[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-20 23:23:58 +0000 UTC FinishedAt: 2026-07-20 23:37:09 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "cfce77b63375dac81d53f2f85593c548415206b7", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "cfce77b63375dac81d53f2f85593c548415206b7", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL" ], "series_id": "5f4023e8-1f95-420e-a9df-f3dbfacb47bf" }, "track": "KASAN", "fuzz": { "focus": [ "bpf" ], "focus_symbols": [ "adjust_ptr_min_max_vals" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-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+CgkJCTx0ZD4yMDI2LzA3LzIwIDIzOjM2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YWRqdXN0X3B0cl9taW5fbWF4X3ZhbHMmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciB0byBwcmVzZXJ2ZSB0aGUgZnJhbWUgbnVtYmVyIHdoZW4gcGVyZm9ybWluZyBwb2ludGVyIGFyaXRobWV0aWMgb24gc3RhY2sgcG9pbnRlcnMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBCUEYgdmVyaWZpZXIgbG9naWMgdGhhdCBoYW5kbGVzIHBvaW50ZXIgYm91bmRzIGFuZCB0eXBlcywgd2hpY2ggaXMgcmVhY2hhYmxlIHZpYSB0aGUgYnBmKCkgc3lzY2FsbC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAyMzozNjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGEyMWU3ZjQ5OTQ3Yjg5MmZjYjc1ZmEzZDYyZDNjYzhhNDM1ZGQ5MjNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEp1bCAyMCAyMzozNjo1MCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbmluZGV4IDUyYmUwYTExOGNjZTA3Li41ODAxNzE0MWQ1MmI3YiAxMDA2NDRcbi0tLSBhL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xuJiM0MzsmIzQzOyYjNDM7IGIva2VybmVsL2JwZi92ZXJpZmllci5jXG5AQCAtMTM3OTYsMTEgJiM0MzsxMzc5NiwxNCBAQCBzdGF0aWMgaW50IGFkanVzdF9wdHJfbWluX21heF92YWxzKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXG4gXHRcdHJldHVybiAtRUFDQ0VTO1xuIFx0fVxuIFxuLVx0LyogSW4gY2FzZSBvZiAmIzM5O3NjYWxhciAmIzQzOz0gcG9pbnRlciYjMzk7LCBkc3RfcmVnIGluaGVyaXRzIHBvaW50ZXIgdHlwZSBhbmQgaWQuXG4tXHQgKiBUaGUgaWQgbWF5IGJlIG92ZXJ3cml0dGVuIGxhdGVyIGlmIHdlIGNyZWF0ZSBhIG5ldyB2YXJpYWJsZSBvZmZzZXQuXG4mIzQzO1x0LyogSW4gY2FzZSBvZiAmIzM5O3NjYWxhciAmIzQzOz0gcG9pbnRlciYjMzk7LCBkc3RfcmVnIGluaGVyaXRzIHBvaW50ZXIgdHlwZSwgaWQsXG4mIzQzO1x0ICogYW5kIGZvciBzdGFjayBwb2ludGVycyBhbHNvIHRoZSBmcmFtZSBudW1iZXIuIFRoZSBpZCBtYXkgYmUgb3ZlcndyaXR0ZW5cbiYjNDM7XHQgKiBsYXRlciBpZiB3ZSBjcmVhdGUgYSBuZXcgdmFyaWFibGUgb2Zmc2V0LlxuIFx0ICovXG4gXHRkc3RfcmVnLVx1MDAzZXR5cGUgPSBwdHJfcmVnLVx1MDAzZXR5cGU7XG4gXHRkc3RfcmVnLVx1MDAzZWlkID0gcHRyX3JlZy1cdTAwM2VpZDtcbiYjNDM7XHRpZiAoYmFzZV90eXBlKHB0cl9yZWctXHUwMDNldHlwZSkgPT0gUFRSX1RPX1NUQUNLKVxuJiM0MztcdFx0ZHN0X3JlZy1cdTAwM2VmcmFtZW5vID0gcHRyX3JlZy1cdTAwM2VmcmFtZW5vO1xuIFxuIFx0aWYgKCFjaGVja19yZWdfc2FuZV9vZmZzZXRfc2NhbGFyKGVudiwgb2ZmX3JlZywgcHRyX3JlZy1cdTAwM2V0eXBlKSB8fFxuIFx0ICAgICFjaGVja19yZWdfc2FuZV9vZmZzZXRfcHRyKGVudiwgcHRyX3JlZywgcHRyX3JlZy1cdTAwM2V0eXBlKSlcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy92ZXJpZmllci5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdmVyaWZpZXIuY1xuaW5kZXggYmU5N2Y2ODg3ZjBlN2YuLjA0ODNhZTM0MDcyNmM5IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdmVyaWZpZXIuY1xuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdmVyaWZpZXIuY1xuQEAgLTExLDcgJiM0MzsxMSw2IEBAXG4gI2luY2x1ZGUgXCYjMzQ7dmVyaWZpZXJfYXJlbmFfZ2xvYmFsczIuc2tlbC5oXCYjMzQ7XG4gI2luY2x1ZGUgXCYjMzQ7dmVyaWZpZXJfYXJyYXlfYWNjZXNzLnNrZWwuaFwmIzM0O1xuICNpbmNsdWRlIFwmIzM0O3ZlcmlmaWVyX2FzeW5jX2NiX2NvbnRleHQuc2tlbC5oXCYjMzQ7XG4tI2luY2x1ZGUgXCYjMzQ7dmVyaWZpZXJfYmFzaWNfc3RhY2suc2tlbC5oXCYjMzQ7XG4gI2luY2x1ZGUgXCYjMzQ7dmVyaWZpZXJfYml0ZmllbGRfd3JpdGUuc2tlbC5oXCYjMzQ7XG4gI2luY2x1ZGUgXCYjMzQ7dmVyaWZpZXJfYm91bmRzLnNrZWwuaFwmIzM0O1xuICNpbmNsdWRlIFwmIzM0O3ZlcmlmaWVyX2JvdW5kc19kZWR1Y3Rpb24uc2tlbC5oXCYjMzQ7XG5AQCAtMTY1LDcgJiM0MzsxNjQsNiBAQCB2b2lkIHRlc3RfdmVyaWZpZXJfYXJlbmEodm9pZCkgICAgICAgICAgICAgICAgeyBSVU4odmVyaWZpZXJfYXJlbmEpOyB9XG4gdm9pZCB0ZXN0X3ZlcmlmaWVyX2FyZW5hX2xhcmdlKHZvaWQpICAgICAgICAgIHsgUlVOKHZlcmlmaWVyX2FyZW5hX2xhcmdlKTsgfVxuIHZvaWQgdGVzdF92ZXJpZmllcl9hcmVuYV9nbG9iYWxzMSh2b2lkKSAgICAgICB7IFJVTih2ZXJpZmllcl9hcmVuYV9nbG9iYWxzMSk7IH1cbiB2b2lkIHRlc3RfdmVyaWZpZXJfYXJlbmFfZ2xvYmFsczIodm9pZCkgICAgICAgeyBSVU4odmVyaWZpZXJfYXJlbmFfZ2xvYmFsczIpOyB9XG4tdm9pZCB0ZXN0X3ZlcmlmaWVyX2Jhc2ljX3N0YWNrKHZvaWQpICAgICAgICAgIHsgUlVOKHZlcmlmaWVyX2Jhc2ljX3N0YWNrKTsgfVxuIHZvaWQgdGVzdF92ZXJpZmllcl9iaXRmaWVsZF93cml0ZSh2b2lkKSAgICAgICB7IFJVTih2ZXJpZmllcl9iaXRmaWVsZF93cml0ZSk7IH1cbiB2b2lkIHRlc3RfdmVyaWZpZXJfYm91bmRzKHZvaWQpICAgICAgICAgICAgICAgeyBSVU4odmVyaWZpZXJfYm91bmRzKTsgfVxuIHZvaWQgdGVzdF92ZXJpZmllcl9ib3VuZHNfZGVkdWN0aW9uKHZvaWQpICAgICB7IFJVTih2ZXJpZmllcl9ib3VuZHNfZGVkdWN0aW9uKTsgfVxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy92ZXJpZmllcl9iYXNpY19zdGFjay5jXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxuaW5kZXggMDAwMDAwMDAwMDAwMDAuLjI3OWYzODk3MjliOGVmXG4tLS0gL2Rldi9udWxsXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy92ZXJpZmllcl9iYXNpY19zdGFjay5jXG5AQCAtMCwwICYjNDM7MSwyOCBAQFxuJiM0MzsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG4mIzQzO1xuJiM0MzsjaW5jbHVkZSBcdTAwM2N0ZXN0X3Byb2dzLmhcdTAwM2VcbiYjNDM7XG4mIzQzOyNpbmNsdWRlIFwmIzM0O2NhcF9oZWxwZXJzLmhcJiMzNDtcbiYjNDM7I2luY2x1ZGUgXCYjMzQ7dmVyaWZpZXJfYmFzaWNfc3RhY2suc2tlbC5oXCYjMzQ7XG4mIzQzO1xuJiM0Mzt2b2lkIHRlc3RfdmVyaWZpZXJfYmFzaWNfc3RhY2sodm9pZClcbiYjNDM7e1xuJiM0MztcdHN0cnVjdCB0ZXN0X2xvYWRlciB0ZXN0ZXIgPSB7fTtcbiYjNDM7XHRfX3U2NCBvbGRfY2FwcztcbiYjNDM7XHRpbnQgZXJyO1xuJiM0MztcbiYjNDM7XHQvKiB0ZXN0X3ZlcmlmaWVyIHRlc3RzIGFyZSBleGVjdXRlZCB3L28gQ0FQX1NZU19BRE1JTiwgZG8gdGhlIHNhbWUgaGVyZSAqL1xuJiM0MztcdGVyciA9IGNhcF9kaXNhYmxlX2VmZmVjdGl2ZSgxVUxMIFx1MDAzY1x1MDAzYyBDQVBfU1lTX0FETUlOLCBcdTAwMjZvbGRfY2Fwcyk7XG4mIzQzO1x0aWYgKGVycikge1xuJiM0MztcdFx0UFJJTlRfRkFJTChcJiMzNDtmYWlsZWQgdG8gZHJvcCBDQVBfU1lTX0FETUlOOiAlaSwgJXNcXG5cJiMzNDssIGVyciwgc3RyZXJyb3IoLWVycikpO1xuJiM0MztcdFx0cmV0dXJuO1xuJiM0MztcdH1cbiYjNDM7XG4mIzQzO1x0dGVzdF9sb2FkZXJfX3J1bl9zdWJ0ZXN0cyhcdTAwMjZ0ZXN0ZXIsIFwmIzM0O3ZlcmlmaWVyX2Jhc2ljX3N0YWNrXCYjMzQ7LFxuJiM0MztcdFx0XHRcdCAgdmVyaWZpZXJfYmFzaWNfc3RhY2tfX2VsZl9ieXRlcyk7XG4mIzQzO1x0dGVzdF9sb2FkZXJfZmluaShcdTAwMjZ0ZXN0ZXIpO1xuJiM0MztcbiYjNDM7XHRlcnIgPSBjYXBfZW5hYmxlX2VmZmVjdGl2ZShvbGRfY2FwcywgTlVMTCk7XG4mIzQzO1x0aWYgKGVycilcbiYjNDM7XHRcdFBSSU5UX0ZBSUwoXCYjMzQ7ZmFpbGVkIHRvIHJlc3RvcmUgQ0FQX1NZU19BRE1JTjogJWksICVzXFxuXCYjMzQ7LCBlcnIsIHN0cmVycm9yKC1lcnIpKTtcbiYjNDM7fVxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9iYXNpY19zdGFjay5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmNcbmluZGV4IGZiNjJlMDlmMjExNDZkLi42MzQxODNmYzg2ODgzZiAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9iYXNpY19zdGFjay5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYmFzaWNfc3RhY2suY1xuQEAgLTk3LDQgJiM0Mzs5Nyw0NSBAQCBfX25ha2VkIHZvaWQgbWlzYWxpZ25lZF9yZWFkX2Zyb21fc3RhY2sodm9pZClcbiBcJiMzNDtcdDo6OiBfX2Nsb2JiZXJfYWxsKTtcbiB9XG4gXG4mIzQzO1NFQyhcJiMzNDtzb2NrZXRcJiMzNDspXG4mIzQzO19fZGVzY3JpcHRpb24oXCYjMzQ7c3RhY2sgcG9pbnRlciBhcml0aG1ldGljIHByZXNlcnZlcyBmcmFtZSBudW1iZXJcJiMzNDspXG4mIzQzO19fZmFpbHVyZSBfX21zZyhcJiMzNDtSNyBpbnZhbGlkIG1lbSBhY2Nlc3MgJiMzOTtzY2FsYXImIzM5O1wmIzM0OylcbiYjNDM7X19uYWtlZCB2b2lkIHN0YWNrX3B0cl9hcml0aF9wcmVzZXJ2ZXNfZnJhbWVubyh2b2lkKVxuJiM0Mzt7XG4mIzQzO1x0YXNtIHZvbGF0aWxlIChcJiMzNDtcdFx0XHRcdFx0XFxcbiYjNDM7XHRyMyA9IDA7XHRcdFx0XHRcdFx0XFxcbiYjNDM7XHQqKHU2NCAqKShyMTAgLSA4KSA9IHIzO1x0XHRcdFxcXG4mIzQzO1x0cjEgPSAlW21hcF9oYXNoXzhiXSBsbDtcdFx0XHRcXFxuJiM0MztcdHIyID0gcjEwO1x0XHRcdFx0XHRcXFxuJiM0MztcdHIyICYjNDM7PSAtODtcdFx0XHRcdFx0XFxcbiYjNDM7XHRjYWxsICVbYnBmX21hcF9sb29rdXBfZWxlbV07XHRcdFx0XFxcbiYjNDM7XHRpZiByMCAhPSAwIGdvdG8gJiM0MzsyO1x0XHRcdFx0XFxcbiYjNDM7XHRyMCA9IDA7XHRcdFx0XHRcdFx0XFxcbiYjNDM7XHRleGl0O1x0XHRcdFx0XHRcdFxcXG4mIzQzO1x0cjEgPSByMDtcdFx0XHRcdFx0XFxcbiYjNDM7XHRyMiA9IDA7XHRcdFx0XHRcdFx0XFxcbiYjNDM7XHRyMyA9IDA7XHRcdFx0XHRcdFx0XFxcbiYjNDM7XHRjYWxsIHN0YWNrX3B0cl9hcml0aF9wcmVzZXJ2ZXNfZnJhbWVub19zdWJwcm9nO1x0XFxcbiYjNDM7XHRyMCA9IDA7XHRcdFx0XHRcdFx0XFxcbiYjNDM7XHRleGl0O1x0XHRcdFx0XHRcdFxcXG4mIzQzO1wmIzM0O1x0OlxuJiM0MztcdDogX19pbW0oYnBmX21hcF9sb29rdXBfZWxlbSksXG4mIzQzO1x0ICBfX2ltbV9hZGRyKG1hcF9oYXNoXzhiKVxuJiM0MztcdDogX19jbG9iYmVyX2FsbCk7XG4mIzQzO31cbiYjNDM7XG4mIzQzO3N0YXRpYyBfX3VzZWQgX19uYWtlZCB2b2lkIHN0YWNrX3B0cl9hcml0aF9wcmVzZXJ2ZXNfZnJhbWVub19zdWJwcm9nKHZvaWQpXG4mIzQzO3tcbiYjNDM7XHRhc20gdm9sYXRpbGUgKFwmIzM0O1x0XHRcdFx0XHRcXFxuJiM0MztcdCoodTY0ICopKHIxMCAtIDgpID0gcjE7XHRcdFx0XFxcbiYjNDM7XHRyNiA9IC04O1x0XHRcdFx0XHRcXFxuJiM0MztcdHI2ICYjNDM7PSByMTA7XHRcdFx0XHRcdFxcXG4mIzQzO1x0Kih1NjQgKikocjYgJiM0MzsgMCkgPSByMjtcdFx0XHRcXFxuJiM0MztcdHI3ID0gKih1NjQgKikocjEwIC0gOCk7XHRcdFx0XFxcbiYjNDM7XHQqKHU2NCAqKShyNyAmIzQzOyAwKSA9IHIzO1x0XHRcdFxcXG4mIzQzO1x0cjAgPSAwO1x0XHRcdFx0XHRcdFxcXG4mIzQzO1x0ZXhpdDtcdFx0XHRcdFx0XHRcXFxuJiM0MztcJiMzNDtcdDo6OiBfX2Nsb2JiZXJfYWxsKTtcbiYjNDM7fVxuJiM0MztcbiBjaGFyIF9saWNlbnNlW10gU0VDKFwmIzM0O2xpY2Vuc2VcJiMzNDspID0gXCYjMzQ7R1BMXCYjMzQ7O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDIzOjM2PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUEZfU1lTQ0FMTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2FkanVzdF9wdHJfbWluX21heF92YWxzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBCUEYgdmVyaWZpZXIgdG8gcHJlc2VydmUgdGhlIGZyYW1lIG51bWJlciB3aGVuIHBlcmZvcm1pbmcgcG9pbnRlciBhcml0aG1ldGljIG9uIHN0YWNrIHBvaW50ZXJzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgQlBGIHZlcmlmaWVyIGxvZ2ljIHRoYXQgaGFuZGxlcyBwb2ludGVyIGJvdW5kcyBhbmQgdHlwZXMsIHdoaWNoIGlzIHJlYWNoYWJsZSB2aWEgdGhlIGJwZigpIHN5c2NhbGwuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGEyMWU3ZjQ5OTQ3Yjg5MmZjYjc1ZmEzZDYyZDNjYzhhNDM1ZGQ5MjMKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEp1bCAyMCAyMzozNjo1MCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuYwppbmRleCA1MmJlMGExMThjY2UwNy4uNTgwMTcxNDFkNTJiN2IgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYwomIzQzOyYjNDM7JiM0MzsgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMKQEAgLTEzNzk2LDExICYjNDM7MTM3OTYsMTQgQEAgc3RhdGljIGludCBhZGp1c3RfcHRyX21pbl9tYXhfdmFscyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LAogCQlyZXR1cm4gLUVBQ0NFUzsKIAl9CiAKLQkvKiBJbiBjYXNlIG9mICYjMzk7c2NhbGFyICYjNDM7PSBwb2ludGVyJiMzOTssIGRzdF9yZWcgaW5oZXJpdHMgcG9pbnRlciB0eXBlIGFuZCBpZC4KLQkgKiBUaGUgaWQgbWF5IGJlIG92ZXJ3cml0dGVuIGxhdGVyIGlmIHdlIGNyZWF0ZSBhIG5ldyB2YXJpYWJsZSBvZmZzZXQuCiYjNDM7CS8qIEluIGNhc2Ugb2YgJiMzOTtzY2FsYXIgJiM0Mzs9IHBvaW50ZXImIzM5OywgZHN0X3JlZyBpbmhlcml0cyBwb2ludGVyIHR5cGUsIGlkLAomIzQzOwkgKiBhbmQgZm9yIHN0YWNrIHBvaW50ZXJzIGFsc28gdGhlIGZyYW1lIG51bWJlci4gVGhlIGlkIG1heSBiZSBvdmVyd3JpdHRlbgomIzQzOwkgKiBsYXRlciBpZiB3ZSBjcmVhdGUgYSBuZXcgdmFyaWFibGUgb2Zmc2V0LgogCSAqLwogCWRzdF9yZWctJmd0O3R5cGUgPSBwdHJfcmVnLSZndDt0eXBlOwogCWRzdF9yZWctJmd0O2lkID0gcHRyX3JlZy0mZ3Q7aWQ7CiYjNDM7CWlmIChiYXNlX3R5cGUocHRyX3JlZy0mZ3Q7dHlwZSkgPT0gUFRSX1RPX1NUQUNLKQomIzQzOwkJZHN0X3JlZy0mZ3Q7ZnJhbWVubyA9IHB0cl9yZWctJmd0O2ZyYW1lbm87CiAKIAlpZiAoIWNoZWNrX3JlZ19zYW5lX29mZnNldF9zY2FsYXIoZW52LCBvZmZfcmVnLCBwdHJfcmVnLSZndDt0eXBlKSB8fAogCSAgICAhY2hlY2tfcmVnX3NhbmVfb2Zmc2V0X3B0cihlbnYsIHB0cl9yZWcsIHB0cl9yZWctJmd0O3R5cGUpKQpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdmVyaWZpZXIuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3ZlcmlmaWVyLmMKaW5kZXggYmU5N2Y2ODg3ZjBlN2YuLjA0ODNhZTM0MDcyNmM5IDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy92ZXJpZmllci5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3ZlcmlmaWVyLmMKQEAgLTExLDcgJiM0MzsxMSw2IEBACiAjaW5jbHVkZSAmIzM0O3ZlcmlmaWVyX2FyZW5hX2dsb2JhbHMyLnNrZWwuaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O3ZlcmlmaWVyX2FycmF5X2FjY2Vzcy5za2VsLmgmIzM0OwogI2luY2x1ZGUgJiMzNDt2ZXJpZmllcl9hc3luY19jYl9jb250ZXh0LnNrZWwuaCYjMzQ7Ci0jaW5jbHVkZSAmIzM0O3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLnNrZWwuaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O3ZlcmlmaWVyX2JpdGZpZWxkX3dyaXRlLnNrZWwuaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O3ZlcmlmaWVyX2JvdW5kcy5za2VsLmgmIzM0OwogI2luY2x1ZGUgJiMzNDt2ZXJpZmllcl9ib3VuZHNfZGVkdWN0aW9uLnNrZWwuaCYjMzQ7CkBAIC0xNjUsNyAmIzQzOzE2NCw2IEBAIHZvaWQgdGVzdF92ZXJpZmllcl9hcmVuYSh2b2lkKSAgICAgICAgICAgICAgICB7IFJVTih2ZXJpZmllcl9hcmVuYSk7IH0KIHZvaWQgdGVzdF92ZXJpZmllcl9hcmVuYV9sYXJnZSh2b2lkKSAgICAgICAgICB7IFJVTih2ZXJpZmllcl9hcmVuYV9sYXJnZSk7IH0KIHZvaWQgdGVzdF92ZXJpZmllcl9hcmVuYV9nbG9iYWxzMSh2b2lkKSAgICAgICB7IFJVTih2ZXJpZmllcl9hcmVuYV9nbG9iYWxzMSk7IH0KIHZvaWQgdGVzdF92ZXJpZmllcl9hcmVuYV9nbG9iYWxzMih2b2lkKSAgICAgICB7IFJVTih2ZXJpZmllcl9hcmVuYV9nbG9iYWxzMik7IH0KLXZvaWQgdGVzdF92ZXJpZmllcl9iYXNpY19zdGFjayh2b2lkKSAgICAgICAgICB7IFJVTih2ZXJpZmllcl9iYXNpY19zdGFjayk7IH0KIHZvaWQgdGVzdF92ZXJpZmllcl9iaXRmaWVsZF93cml0ZSh2b2lkKSAgICAgICB7IFJVTih2ZXJpZmllcl9iaXRmaWVsZF93cml0ZSk7IH0KIHZvaWQgdGVzdF92ZXJpZmllcl9ib3VuZHModm9pZCkgICAgICAgICAgICAgICB7IFJVTih2ZXJpZmllcl9ib3VuZHMpOyB9CiB2b2lkIHRlc3RfdmVyaWZpZXJfYm91bmRzX2RlZHVjdGlvbih2b2lkKSAgICAgeyBSVU4odmVyaWZpZXJfYm91bmRzX2RlZHVjdGlvbik7IH0KZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy92ZXJpZmllcl9iYXNpY19zdGFjay5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwLi4yNzlmMzg5NzI5YjhlZgotLS0gL2Rldi9udWxsCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmMKQEAgLTAsMCAmIzQzOzEsMjggQEAKJiM0MzsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5CiYjNDM7CiYjNDM7I2luY2x1ZGUgJmx0O3Rlc3RfcHJvZ3MuaCZndDsKJiM0MzsKJiM0MzsjaW5jbHVkZSAmIzM0O2NhcF9oZWxwZXJzLmgmIzM0OwomIzQzOyNpbmNsdWRlICYjMzQ7dmVyaWZpZXJfYmFzaWNfc3RhY2suc2tlbC5oJiMzNDsKJiM0MzsKJiM0Mzt2b2lkIHRlc3RfdmVyaWZpZXJfYmFzaWNfc3RhY2sodm9pZCkKJiM0Mzt7CiYjNDM7CXN0cnVjdCB0ZXN0X2xvYWRlciB0ZXN0ZXIgPSB7fTsKJiM0MzsJX191NjQgb2xkX2NhcHM7CiYjNDM7CWludCBlcnI7CiYjNDM7CiYjNDM7CS8qIHRlc3RfdmVyaWZpZXIgdGVzdHMgYXJlIGV4ZWN1dGVkIHcvbyBDQVBfU1lTX0FETUlOLCBkbyB0aGUgc2FtZSBoZXJlICovCiYjNDM7CWVyciA9IGNhcF9kaXNhYmxlX2VmZmVjdGl2ZSgxVUxMICZsdDsmbHQ7IENBUF9TWVNfQURNSU4sICZhbXA7b2xkX2NhcHMpOwomIzQzOwlpZiAoZXJyKSB7CiYjNDM7CQlQUklOVF9GQUlMKCYjMzQ7ZmFpbGVkIHRvIGRyb3AgQ0FQX1NZU19BRE1JTjogJWksICVzXG4mIzM0OywgZXJyLCBzdHJlcnJvcigtZXJyKSk7CiYjNDM7CQlyZXR1cm47CiYjNDM7CX0KJiM0MzsKJiM0MzsJdGVzdF9sb2FkZXJfX3J1bl9zdWJ0ZXN0cygmYW1wO3Rlc3RlciwgJiMzNDt2ZXJpZmllcl9iYXNpY19zdGFjayYjMzQ7LAomIzQzOwkJCQkgIHZlcmlmaWVyX2Jhc2ljX3N0YWNrX19lbGZfYnl0ZXMpOwomIzQzOwl0ZXN0X2xvYWRlcl9maW5pKCZhbXA7dGVzdGVyKTsKJiM0MzsKJiM0MzsJZXJyID0gY2FwX2VuYWJsZV9lZmZlY3RpdmUob2xkX2NhcHMsIE5VTEwpOwomIzQzOwlpZiAoZXJyKQomIzQzOwkJUFJJTlRfRkFJTCgmIzM0O2ZhaWxlZCB0byByZXN0b3JlIENBUF9TWVNfQURNSU46ICVpLCAlc1xuJiMzNDssIGVyciwgc3RyZXJyb3IoLWVycikpOwomIzQzO30KZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9iYXNpY19zdGFjay5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmMKaW5kZXggZmI2MmUwOWYyMTE0NmQuLjYzNDE4M2ZjODY4ODNmIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYmFzaWNfc3RhY2suYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYmFzaWNfc3RhY2suYwpAQCAtOTcsNCAmIzQzOzk3LDQ1IEBAIF9fbmFrZWQgdm9pZCBtaXNhbGlnbmVkX3JlYWRfZnJvbV9zdGFjayh2b2lkKQogJiMzNDsJOjo6IF9fY2xvYmJlcl9hbGwpOwogfQogCiYjNDM7U0VDKCYjMzQ7c29ja2V0JiMzNDspCiYjNDM7X19kZXNjcmlwdGlvbigmIzM0O3N0YWNrIHBvaW50ZXIgYXJpdGhtZXRpYyBwcmVzZXJ2ZXMgZnJhbWUgbnVtYmVyJiMzNDspCiYjNDM7X19mYWlsdXJlIF9fbXNnKCYjMzQ7UjcgaW52YWxpZCBtZW0gYWNjZXNzICYjMzk7c2NhbGFyJiMzOTsmIzM0OykKJiM0MztfX25ha2VkIHZvaWQgc3RhY2tfcHRyX2FyaXRoX3ByZXNlcnZlc19mcmFtZW5vKHZvaWQpCiYjNDM7ewomIzQzOwlhc20gdm9sYXRpbGUgKCYjMzQ7CQkJCQlcCiYjNDM7CXIzID0gMDsJCQkJCQlcCiYjNDM7CSoodTY0ICopKHIxMCAtIDgpID0gcjM7CQkJXAomIzQzOwlyMSA9ICVbbWFwX2hhc2hfOGJdIGxsOwkJCVwKJiM0MzsJcjIgPSByMTA7CQkJCQlcCiYjNDM7CXIyICYjNDM7PSAtODsJCQkJCVwKJiM0MzsJY2FsbCAlW2JwZl9tYXBfbG9va3VwX2VsZW1dOwkJCVwKJiM0MzsJaWYgcjAgIT0gMCBnb3RvICYjNDM7MjsJCQkJXAomIzQzOwlyMCA9IDA7CQkJCQkJXAomIzQzOwlleGl0OwkJCQkJCVwKJiM0MzsJcjEgPSByMDsJCQkJCVwKJiM0MzsJcjIgPSAwOwkJCQkJCVwKJiM0MzsJcjMgPSAwOwkJCQkJCVwKJiM0MzsJY2FsbCBzdGFja19wdHJfYXJpdGhfcHJlc2VydmVzX2ZyYW1lbm9fc3VicHJvZzsJXAomIzQzOwlyMCA9IDA7CQkJCQkJXAomIzQzOwlleGl0OwkJCQkJCVwKJiM0MzsmIzM0Owk6CiYjNDM7CTogX19pbW0oYnBmX21hcF9sb29rdXBfZWxlbSksCiYjNDM7CSAgX19pbW1fYWRkcihtYXBfaGFzaF84YikKJiM0MzsJOiBfX2Nsb2JiZXJfYWxsKTsKJiM0Mzt9CiYjNDM7CiYjNDM7c3RhdGljIF9fdXNlZCBfX25ha2VkIHZvaWQgc3RhY2tfcHRyX2FyaXRoX3ByZXNlcnZlc19mcmFtZW5vX3N1YnByb2codm9pZCkKJiM0Mzt7CiYjNDM7CWFzbSB2b2xhdGlsZSAoJiMzNDsJCQkJCVwKJiM0MzsJKih1NjQgKikocjEwIC0gOCkgPSByMTsJCQlcCiYjNDM7CXI2ID0gLTg7CQkJCQlcCiYjNDM7CXI2ICYjNDM7PSByMTA7CQkJCQlcCiYjNDM7CSoodTY0ICopKHI2ICYjNDM7IDApID0gcjI7CQkJXAomIzQzOwlyNyA9ICoodTY0ICopKHIxMCAtIDgpOwkJCVwKJiM0MzsJKih1NjQgKikocjcgJiM0MzsgMCkgPSByMzsJCQlcCiYjNDM7CXIwID0gMDsJCQkJCQlcCiYjNDM7CWV4aXQ7CQkJCQkJXAomIzQzOyYjMzQ7CTo6OiBfX2Nsb2JiZXJfYWxsKTsKJiM0Mzt9CiYjNDM7CiBjaGFyIF9saWNlbnNlW10gU0VDKCYjMzQ7bGljZW5zZSYjMzQ7KSA9ICYjMzQ7R1BMJiMzNDs7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDIzOjM2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM2MDkKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAyNTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQlBGIFZlcmlmaWVyIFBhdGNoIEFuYWx5c2lzKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgbW9kaWZpZXMgYGtlcm5lbC9icGYvdmVyaWZpZXIuY2AuIFNwZWNpZmljYWxseSwgdGhlIGNoYW5nZSBpcyB3aXRoaW4gdGhlIGBhZGp1c3RfcHRyX21pbl9tYXhfdmFsc2AgZnVuY3Rpb24uIFRoZSBjb2RlJiMzOTtzIGxvZ2ljIGhhbmRsZXMgdGhlIGNhc2Ugb2YgYHNjYWxhciAmIzQzOz0gcG9pbnRlcmAgb3BlcmF0aW9ucy4KCk15IHVuZGVyc3RhbmRpbmcgaXMgdGhhdCBwcmV2aW91c2x5LCB3aGVuIHlvdSBkaWQgc29tZXRoaW5nIGxpa2UgdGhhdCwgdGhlIGRlc3RpbmF0aW9uIHJlZ2lzdGVyIChgZHN0X3JlZ2ApIHdhcyBpbmhlcml0aW5nIHRoZSBwb2ludGVyJiMzOTtzIHR5cGUgYW5kIElELCB3aGljaCBpcyBjb3JyZWN0LiBUaGUgSUQgbWlnaHQgZ2V0IG92ZXJ3cml0dGVuIGxhdGVyLCBhbmQgdGhhdCYjMzk7cyBmaW5lLiBIb3dldmVyLCBpdCB3YXNuJiMzOTt0IHByZXNlcnZpbmcgdGhlIGZyYW1lIG51bWJlciBhc3NvY2lhdGVkIHdpdGggc3RhY2sgcG9pbnRlcnMuIFRoaXMgY2hhbmdlIGFkZHMgYSBjaGVjayB0byBlbnN1cmUgdGhhdCBpZiB0aGUgcG9pbnRlciAoYHB0cl9yZWdgKSBpcyBhIHN0YWNrIHBvaW50ZXIgKGkuZS4sIGBiYXNlX3R5cGUocHRyX3JlZy0mZ3Q7dHlwZSkgPT0gUFRSX1RPX1NUQUNLYCksIHRoZSBkZXN0aW5hdGlvbiByZWdpc3RlciAqYWxzbyogZ2V0cyB0aGUgY29ycmVjdCBgZnJhbWVub2AuCgpTbywgaXQmIzM5O3MgYSBzdWJ0bGUgYnV0IGltcG9ydGFudCBmaXggdG8gaG93IHRoZSBCUEYgdmVyaWZpZXIgaGFuZGxlcyBzdGFjayBwb2ludGVyIGFyaXRobWV0aWMuIFRoaXMgaXMgZGVmaW5pdGVseSBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBCUEYgdmVyaWZpZXIsIGFkZHJlc3NpbmcgYSBzcGVjaWZpYyBidWcuIFRoZXJlZm9yZSwgYmVjYXVzZSBpdCYjMzk7cyBhIG1vZGlmaWNhdGlvbiBvZiBjcml0aWNhbCBrZXJuZWwgY29kZSB0aGF0IGFmZmVjdHMgbWVtb3J5IHNhZmV0eSBhbmQgcHJvZ3JhbSBleGVjdXRpb24sIEkgc2hvdWxkIGZsYWcgdGhpcyBhcyB3b3J0aCBmdXp6aW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDIzOjM2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2FkanVzdF9wdHJfbWluX21heF92YWxzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7a2VybmVsL2JwZi92ZXJpZmllci5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2tlcm5lbC9icGYvdmVyaWZpZXIuYz00MDAzPXN0YXRpYyBpbnQgY2hlY2tfc3RhY2tfcmVhZChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LFxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy00MDI3LVx0ICogY2hlY2tfc3RhY2tfYWNjZXNzX2Zvcl9wdHJfYXJpdGhtZXRpYygpIGNhbGxlZCBieVxua2VybmVsL2JwZi92ZXJpZmllci5jOjQwMjg6XHQgKiBhZGp1c3RfcHRyX21pbl9tYXhfdmFscygpIHByZXZlbnRzIHVzZXJzIGZyb20gY3JlYXRpbmcgc3RhY2sgcG9pbnRlcnNcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy00MDI5LVx0ICogd2l0aCB2YXJpYWJsZSBvZmZzZXRzLCB0aGVyZWZvcmUgbm8gY2hlY2sgaXMgcmVxdWlyZWQgaGVyZS4gRnVydGhlcixcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTM2ODA9c3RhdGljIGludCBzYW5pdGl6ZV9jaGVja19ib3VuZHMoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudixcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTM3MTYtICovXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTM3MTc6c3RhdGljIGludCBhZGp1c3RfcHRyX21pbl9tYXhfdmFscyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LFxua2VybmVsL2JwZi92ZXJpZmllci5jLTEzNzE4LVx0XHRcdFx0ICAgc3RydWN0IGJwZl9pbnNuICppbnNuLFxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xNDgwND1zdGF0aWMgaW50IGFkanVzdF9yZWdfbWluX21heF92YWxzKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTE0ODY2LVx0XHRcdFx0XHRyZXR1cm4gZXJyO1xua2VybmVsL2JwZi92ZXJpZmllci5jOjE0ODY3Olx0XHRcdFx0cmV0dXJuIGFkanVzdF9wdHJfbWluX21heF92YWxzKGVudiwgaW5zbixcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xNDg2OC1cdFx0XHRcdFx0XHRcdCAgICAgICBzcmNfcmVnLCBkc3RfcmVnKTtcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTQ4NzQtXHRcdFx0XHRyZXR1cm4gZXJyO1xua2VybmVsL2JwZi92ZXJpZmllci5jOjE0ODc1Olx0XHRcdHJldHVybiBhZGp1c3RfcHRyX21pbl9tYXhfdmFscyhlbnYsIGluc24sXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTQ4NzYtXHRcdFx0XHRcdFx0ICAgICAgIGRzdF9yZWcsIHNyY19yZWcpO1xuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xNDg5MC1cdFx0aWYgKHB0cl9yZWcpIC8qIHBvaW50ZXIgJiM0Mzs9IEsgKi9cbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxNDg5MTpcdFx0XHRyZXR1cm4gYWRqdXN0X3B0cl9taW5fbWF4X3ZhbHMoZW52LCBpbnNuLFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE0ODkyLVx0XHRcdFx0XHRcdCAgICAgICBwdHJfcmVnLCBzcmNfcmVnKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAyMzozNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NzEwCgkJCQkJCQlvdXRwdXQ6IDI5CgkJCQkJCQl0aG91Z2h0czogODQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyB0aGUgQ29uZmlndXJhdGlvbiBSZXF1aXJlbWVudHMgZm9yIGBhZGp1c3RfcHRyX21pbl9tYXhfdmFsc2AqKgoKT2theSwgc28gYGFkanVzdF9wdHJfbWluX21heF92YWxzYCBpcyBjYWxsZWQgYnkgYGFkanVzdF9yZWdfbWluX21heF92YWxzYC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIHdoYXQgYXJlIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9ucyB0aGF0IGFyZSBnb2luZyB0byBpbXBhY3QgdGhpcz8gR2l2ZW4gbXkgYmFja2dyb3VuZCwgSSYjMzk7bSBwcmV0dHkgc3VyZSBCUEYgaXMgdXN1YWxseSB0b2dnbGVkIG9uIGJ5IGBDT05GSUdfQlBGYCBhbmQgYENPTkZJR19CUEZfU1lTQ0FMTGAuIEkmIzM5O2xsIHdhbnQgdG8gdmVyaWZ5IHRoYXQgYW5kIGdldCB0aGUgZGVwZW5kZW5jaWVzIHN0cmFpZ2h0LiBUbyBkbyB0aGlzLCBJJiMzOTttIGdvaW5nIHRvIHF1aWNrbHkgY2hlY2sgaW4gYGtlcm5lbC9icGYvTWFrZWZpbGVgIG9yIGBrZXJuZWwvYnBmL0tjb25maWdgLiBUaGF0IHNob3VsZCBnaXZlIG1lIGEgc29saWQgdmlldyBvZiB0aGUgY29uZmlndXJhdGlvbiBsYW5kc2NhcGUgaGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAyMzozNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2ZXJpZmllci5vJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7a2VybmVsL2JwZi9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtrZXJuZWwvYnBmL01ha2VmaWxlPTc9Q0ZMQUdTX2NvcmUubyAmIzQzOz0gLVduby1vdmVycmlkZS1pbml0ICQoY2ZsYWdzLW5vZ2NzZS15eSlcbmtlcm5lbC9icGYvTWFrZWZpbGUtOC1cbmtlcm5lbC9icGYvTWFrZWZpbGU6OTpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICYjNDM7PSBzeXNjYWxsLm8gdmVyaWZpZXIubyBpbm9kZS5vIGhlbHBlcnMubyB0bnVtLm8gY251bS5vIGxvZy5vIHRva2VuLm8gbGl2ZW5lc3MubyBjb25zdF9mb2xkLm9cbmtlcm5lbC9icGYvTWFrZWZpbGUtMTAtb2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSAmIzQzOz0gYnBmX2l0ZXIubyBtYXBfaXRlci5vIHRhc2tfaXRlci5vIHByb2dfaXRlci5vIGxpbmtfaXRlci5vXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMjM6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTE0MgoJCQkJCQkJb3V0cHV0OiAxMDEKCQkJCQkJCXRob3VnaHRzOiAyNzcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgUGF0Y2gmIzM5O3MgRnV6emluZyBQb3RlbnRpYWwqKgoKT2theSwgc28gSSYjMzk7dmUgemVyb2VkIGluIG9uIHRoZSBgQlBGX1NZU0NBTExgIGNvbmZpZ3VyYXRpb24gb3B0aW9uLiBUaGF0JiMzOTtzIG15IHN0YXJ0aW5nIHBvaW50LiBUaGUgY3J1Y2lhbCBmdW5jdGlvbiB3aXRoaW4gdGhlIHBhdGNoLCB0aGUgb25lIHRoYXQgcmVhbGx5IHNlZW1zIHRvIGdyYWIgbXkgYXR0ZW50aW9uLCBpcyBgYWRqdXN0X3B0cl9taW5fbWF4X3ZhbHNgLgoKTGV0IG1lIGp1c3QgcXVpY2tseSBjb25maXJtIHRoYXQgdGhlcmUgYXJlbiYjMzk7dCBhbnkgb3RoZXIgZnVuY3Rpb25zIHRoYXQgd2FycmFudCBzaW1pbGFyIGF0dGVudGlvbi4gTm9wZSwgYGFkanVzdF9wdHJfbWluX21heF92YWxzYCByZW1haW5zIHRoZSBrZXkuCgpOb3csIHRoZSBpbXBvcnRhbnQgcXVlc3Rpb246IGlzIHRoaXMgZnVuY3Rpb24gYSAmIzM0O2hvdCBwYXRoJiMzNDs/IE5vdCBpbiB0aGUgdXN1YWwgc2Vuc2Ugb2YgcmVhbC10aW1lIHBhY2tldCBwcm9jZXNzaW5nIG9yIHNjaGVkdWxlciBjb2RlLCBuby4gQnV0IHRoaXMgaXMgdGhlIEJQRiB2ZXJpZmllciwgYW5kIGBhZGp1c3RfcHRyX21pbl9tYXhfdmFsc2AgaXMgKnBhcnQqIG9mIHRoZSB2ZXJpZmllci4gSXQmIzM5O3MgZXhlY3V0ZWQgd2hlbiBhIEJQRiBwcm9ncmFtIGlzIGxvYWRlZCwgd2hpY2ggbWFrZXMgaXQgYSBjcml0aWNhbCBwYXJ0IG9mIHRoZSBhdHRhY2sgc3VyZmFjZSwgYW5kIGEgcGVyZmVjdCB0YXJnZXQgZm9yIGZ1enppbmcgdmlhIGBicGYoKWAgc3lzY2FsbHMsIGFzIFN5emthbGxlciBkb2VzLiBUaGlzIGlzIHdoZXJlIHRoZSB2dWxuZXJhYmlsaXR5IGh1bnRpbmcgaXMuCgpBbHJpZ2h0LCBJJiMzOTtsbCBxdWlja2x5IHZlcmlmeSB0aGF0IGBhZGp1c3RfcHRyX21pbl9tYXhfdmFsc2AgaXMgZGVjbGFyZWQgc3RhdGljLiBZZXMsIGl0IGlzLiBBbGwgdGhlIGJldHRlci4KCkxldCYjMzk7cyBzdW1tYXJpemUgdGhpcy4KCioqV29ydGhGdXp6aW5nOiBUcnVlKioKKipGb2N1c1N5bWJvbHM6IFsmIzM0O2FkanVzdF9wdHJfbWluX21heF92YWxzJiMzNDtdKioKKipFbmFibGVDb25maWdzOiBbJiMzNDtCUEZfU1lTQ0FMTCYjMzQ7XSoqCioqUmVhc29uaW5nOiAmIzM0O1RoaXMgcGF0Y2ggZnVuZGFtZW50YWxseSBhbHRlcnMgdGhlIEJQRiB2ZXJpZmllciYjMzk7cyBiZWhhdmlvciBieSBwcmVzZXJ2aW5nIHRoZSBmcmFtZSBudW1iZXIgZHVyaW5nIHBvaW50ZXIgYXJpdGhtZXRpYyBvbiBzdGFjayBwb2ludGVycy4gVGhpcyBjaGFuZ2UgZGlyZWN0bHkgaW1wYWN0cyB0aGUgY29yZSBsb2dpYyBvZiB0aGUgdmVyaWZpZXIsIHBhcnRpY3VsYXJseSBob3cgaXQgaGFuZGxlcyBwb2ludGVyIGJvdW5kcyBhbmQgdHlwZXMuIFRoZSBCUEYgdmVyaWZpZXIgbG9naWMgaXMgYWNjZXNzaWJsZSB0aHJvdWdoIHRoZSBgYnBmKClgIHN5c2NhbGwgYW5kIGlzIHRoZXJlZm9yZSBzdWl0YWJsZSBmb3IgZnV6emluZy4mIzM0OyoqCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMjM6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YWRqdXN0X3B0cl9taW5fbWF4X3ZhbHMmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciB0byBwcmVzZXJ2ZSB0aGUgZnJhbWUgbnVtYmVyIHdoZW4gcGVyZm9ybWluZyBwb2ludGVyIGFyaXRobWV0aWMgb24gc3RhY2sgcG9pbnRlcnMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBCUEYgdmVyaWZpZXIgbG9naWMgdGhhdCBoYW5kbGVzIHBvaW50ZXIgYm91bmRzIGFuZCB0eXBlcywgd2hpY2ggaXMgcmVhY2hhYmxlIHZpYSB0aGUgYnBmKCkgc3lzY2FsbC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlBGX1NZU0NBTEwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDthZGp1c3RfcHRyX21pbl9tYXhfdmFscyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgQlBGIHZlcmlmaWVyIHRvIHByZXNlcnZlIHRoZSBmcmFtZSBudW1iZXIgd2hlbiBwZXJmb3JtaW5nIHBvaW50ZXIgYXJpdGhtZXRpYyBvbiBzdGFjayBwb2ludGVycy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIEJQRiB2ZXJpZmllciBsb2dpYyB0aGF0IGhhbmRsZXMgcG9pbnRlciBib3VuZHMgYW5kIHR5cGVzLCB3aGljaCBpcyByZWFjaGFibGUgdmlhIHRoZSBicGYoKSBzeXNjYWxsLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMjBUMjM6MzY6NTIuMzQyNTE3MjczWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTUxMDMwOTgxNTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlBGX1NZU0NBTExcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJhZGp1c3RfcHRyX21pbl9tYXhfdmFsc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBCUEYgdmVyaWZpZXIgdG8gcHJlc2VydmUgdGhlIGZyYW1lIG51bWJlciB3aGVuIHBlcmZvcm1pbmcgcG9pbnRlciBhcml0aG1ldGljIG9uIHN0YWNrIHBvaW50ZXJzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgQlBGIHZlcmlmaWVyIGxvZ2ljIHRoYXQgaGFuZGxlcyBwb2ludGVyIGJvdW5kcyBhbmQgdHlwZXMsIHdoaWNoIGlzIHJlYWNoYWJsZSB2aWEgdGhlIGJwZigpIHN5c2NhbGwuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDIzOjM2OjUyLjM0MjUyNjAxM1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzQ5MTg0Mzg5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgYTIxZTdmNDk5NDdiODkyZmNiNzVmYTNkNjJkM2NjOGE0MzVkZDkyM1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEp1bCAyMCAyMzozNjo1MCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcXG5pbmRleCA1MmJlMGExMThjY2UwNy4uNTgwMTcxNDFkNTJiN2IgMTAwNjQ0XFxuLS0tIGEva2VybmVsL2JwZi92ZXJpZmllci5jXFxuKysrIGIva2VybmVsL2JwZi92ZXJpZmllci5jXFxuQEAgLTEzNzk2LDExICsxMzc5NiwxNCBAQCBzdGF0aWMgaW50IGFkanVzdF9wdHJfbWluX21heF92YWxzKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXFxuIFxcdFxcdHJldHVybiAtRUFDQ0VTO1xcbiBcXHR9XFxuIFxcbi1cXHQvKiBJbiBjYXNlIG9mICdzY2FsYXIgKz0gcG9pbnRlcicsIGRzdF9yZWcgaW5oZXJpdHMgcG9pbnRlciB0eXBlIGFuZCBpZC5cXG4tXFx0ICogVGhlIGlkIG1heSBiZSBvdmVyd3JpdHRlbiBsYXRlciBpZiB3ZSBjcmVhdGUgYSBuZXcgdmFyaWFibGUgb2Zmc2V0LlxcbitcXHQvKiBJbiBjYXNlIG9mICdzY2FsYXIgKz0gcG9pbnRlcicsIGRzdF9yZWcgaW5oZXJpdHMgcG9pbnRlciB0eXBlLCBpZCxcXG4rXFx0ICogYW5kIGZvciBzdGFjayBwb2ludGVycyBhbHNvIHRoZSBmcmFtZSBudW1iZXIuIFRoZSBpZCBtYXkgYmUgb3ZlcndyaXR0ZW5cXG4rXFx0ICogbGF0ZXIgaWYgd2UgY3JlYXRlIGEgbmV3IHZhcmlhYmxlIG9mZnNldC5cXG4gXFx0ICovXFxuIFxcdGRzdF9yZWctXFx1MDAzZXR5cGUgPSBwdHJfcmVnLVxcdTAwM2V0eXBlO1xcbiBcXHRkc3RfcmVnLVxcdTAwM2VpZCA9IHB0cl9yZWctXFx1MDAzZWlkO1xcbitcXHRpZiAoYmFzZV90eXBlKHB0cl9yZWctXFx1MDAzZXR5cGUpID09IFBUUl9UT19TVEFDSylcXG4rXFx0XFx0ZHN0X3JlZy1cXHUwMDNlZnJhbWVubyA9IHB0cl9yZWctXFx1MDAzZWZyYW1lbm87XFxuIFxcbiBcXHRpZiAoIWNoZWNrX3JlZ19zYW5lX29mZnNldF9zY2FsYXIoZW52LCBvZmZfcmVnLCBwdHJfcmVnLVxcdTAwM2V0eXBlKSB8fFxcbiBcXHQgICAgIWNoZWNrX3JlZ19zYW5lX29mZnNldF9wdHIoZW52LCBwdHJfcmVnLCBwdHJfcmVnLVxcdTAwM2V0eXBlKSlcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdmVyaWZpZXIuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3ZlcmlmaWVyLmNcXG5pbmRleCBiZTk3ZjY4ODdmMGU3Zi4uMDQ4M2FlMzQwNzI2YzkgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdmVyaWZpZXIuY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3ZlcmlmaWVyLmNcXG5AQCAtMTEsNyArMTEsNiBAQFxcbiAjaW5jbHVkZSBcXFwidmVyaWZpZXJfYXJlbmFfZ2xvYmFsczIuc2tlbC5oXFxcIlxcbiAjaW5jbHVkZSBcXFwidmVyaWZpZXJfYXJyYXlfYWNjZXNzLnNrZWwuaFxcXCJcXG4gI2luY2x1ZGUgXFxcInZlcmlmaWVyX2FzeW5jX2NiX2NvbnRleHQuc2tlbC5oXFxcIlxcbi0jaW5jbHVkZSBcXFwidmVyaWZpZXJfYmFzaWNfc3RhY2suc2tlbC5oXFxcIlxcbiAjaW5jbHVkZSBcXFwidmVyaWZpZXJfYml0ZmllbGRfd3JpdGUuc2tlbC5oXFxcIlxcbiAjaW5jbHVkZSBcXFwidmVyaWZpZXJfYm91bmRzLnNrZWwuaFxcXCJcXG4gI2luY2x1ZGUgXFxcInZlcmlmaWVyX2JvdW5kc19kZWR1Y3Rpb24uc2tlbC5oXFxcIlxcbkBAIC0xNjUsNyArMTY0LDYgQEAgdm9pZCB0ZXN0X3ZlcmlmaWVyX2FyZW5hKHZvaWQpICAgICAgICAgICAgICAgIHsgUlVOKHZlcmlmaWVyX2FyZW5hKTsgfVxcbiB2b2lkIHRlc3RfdmVyaWZpZXJfYXJlbmFfbGFyZ2Uodm9pZCkgICAgICAgICAgeyBSVU4odmVyaWZpZXJfYXJlbmFfbGFyZ2UpOyB9XFxuIHZvaWQgdGVzdF92ZXJpZmllcl9hcmVuYV9nbG9iYWxzMSh2b2lkKSAgICAgICB7IFJVTih2ZXJpZmllcl9hcmVuYV9nbG9iYWxzMSk7IH1cXG4gdm9pZCB0ZXN0X3ZlcmlmaWVyX2FyZW5hX2dsb2JhbHMyKHZvaWQpICAgICAgIHsgUlVOKHZlcmlmaWVyX2FyZW5hX2dsb2JhbHMyKTsgfVxcbi12b2lkIHRlc3RfdmVyaWZpZXJfYmFzaWNfc3RhY2sodm9pZCkgICAgICAgICAgeyBSVU4odmVyaWZpZXJfYmFzaWNfc3RhY2spOyB9XFxuIHZvaWQgdGVzdF92ZXJpZmllcl9iaXRmaWVsZF93cml0ZSh2b2lkKSAgICAgICB7IFJVTih2ZXJpZmllcl9iaXRmaWVsZF93cml0ZSk7IH1cXG4gdm9pZCB0ZXN0X3ZlcmlmaWVyX2JvdW5kcyh2b2lkKSAgICAgICAgICAgICAgIHsgUlVOKHZlcmlmaWVyX2JvdW5kcyk7IH1cXG4gdm9pZCB0ZXN0X3ZlcmlmaWVyX2JvdW5kc19kZWR1Y3Rpb24odm9pZCkgICAgIHsgUlVOKHZlcmlmaWVyX2JvdW5kc19kZWR1Y3Rpb24pOyB9XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy92ZXJpZmllcl9iYXNpY19zdGFjay5jXFxubmV3IGZpbGUgbW9kZSAxMDA2NDRcXG5pbmRleCAwMDAwMDAwMDAwMDAwMC4uMjc5ZjM4OTcyOWI4ZWZcXG4tLS0gL2Rldi9udWxsXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdmVyaWZpZXJfYmFzaWNfc3RhY2suY1xcbkBAIC0wLDAgKzEsMjggQEBcXG4rLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbitcXG4rI2luY2x1ZGUgXFx1MDAzY3Rlc3RfcHJvZ3MuaFxcdTAwM2VcXG4rXFxuKyNpbmNsdWRlIFxcXCJjYXBfaGVscGVycy5oXFxcIlxcbisjaW5jbHVkZSBcXFwidmVyaWZpZXJfYmFzaWNfc3RhY2suc2tlbC5oXFxcIlxcbitcXG4rdm9pZCB0ZXN0X3ZlcmlmaWVyX2Jhc2ljX3N0YWNrKHZvaWQpXFxuK3tcXG4rXFx0c3RydWN0IHRlc3RfbG9hZGVyIHRlc3RlciA9IHt9O1xcbitcXHRfX3U2NCBvbGRfY2FwcztcXG4rXFx0aW50IGVycjtcXG4rXFxuK1xcdC8qIHRlc3RfdmVyaWZpZXIgdGVzdHMgYXJlIGV4ZWN1dGVkIHcvbyBDQVBfU1lTX0FETUlOLCBkbyB0aGUgc2FtZSBoZXJlICovXFxuK1xcdGVyciA9IGNhcF9kaXNhYmxlX2VmZmVjdGl2ZSgxVUxMIFxcdTAwM2NcXHUwMDNjIENBUF9TWVNfQURNSU4sIFxcdTAwMjZvbGRfY2Fwcyk7XFxuK1xcdGlmIChlcnIpIHtcXG4rXFx0XFx0UFJJTlRfRkFJTChcXFwiZmFpbGVkIHRvIGRyb3AgQ0FQX1NZU19BRE1JTjogJWksICVzXFxcXG5cXFwiLCBlcnIsIHN0cmVycm9yKC1lcnIpKTtcXG4rXFx0XFx0cmV0dXJuO1xcbitcXHR9XFxuK1xcbitcXHR0ZXN0X2xvYWRlcl9fcnVuX3N1YnRlc3RzKFxcdTAwMjZ0ZXN0ZXIsIFxcXCJ2ZXJpZmllcl9iYXNpY19zdGFja1xcXCIsXFxuK1xcdFxcdFxcdFxcdCAgdmVyaWZpZXJfYmFzaWNfc3RhY2tfX2VsZl9ieXRlcyk7XFxuK1xcdHRlc3RfbG9hZGVyX2ZpbmkoXFx1MDAyNnRlc3Rlcik7XFxuK1xcbitcXHRlcnIgPSBjYXBfZW5hYmxlX2VmZmVjdGl2ZShvbGRfY2FwcywgTlVMTCk7XFxuK1xcdGlmIChlcnIpXFxuK1xcdFxcdFBSSU5UX0ZBSUwoXFxcImZhaWxlZCB0byByZXN0b3JlIENBUF9TWVNfQURNSU46ICVpLCAlc1xcXFxuXFxcIiwgZXJyLCBzdHJlcnJvcigtZXJyKSk7XFxuK31cXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYmFzaWNfc3RhY2suY1xcbmluZGV4IGZiNjJlMDlmMjExNDZkLi42MzQxODNmYzg2ODgzZiAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYmFzaWNfc3RhY2suY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9iYXNpY19zdGFjay5jXFxuQEAgLTk3LDQgKzk3LDQ1IEBAIF9fbmFrZWQgdm9pZCBtaXNhbGlnbmVkX3JlYWRfZnJvbV9zdGFjayh2b2lkKVxcbiBcXFwiXFx0Ojo6IF9fY2xvYmJlcl9hbGwpO1xcbiB9XFxuIFxcbitTRUMoXFxcInNvY2tldFxcXCIpXFxuK19fZGVzY3JpcHRpb24oXFxcInN0YWNrIHBvaW50ZXIgYXJpdGhtZXRpYyBwcmVzZXJ2ZXMgZnJhbWUgbnVtYmVyXFxcIilcXG4rX19mYWlsdXJlIF9fbXNnKFxcXCJSNyBpbnZhbGlkIG1lbSBhY2Nlc3MgJ3NjYWxhcidcXFwiKVxcbitfX25ha2VkIHZvaWQgc3RhY2tfcHRyX2FyaXRoX3ByZXNlcnZlc19mcmFtZW5vKHZvaWQpXFxuK3tcXG4rXFx0YXNtIHZvbGF0aWxlIChcXFwiXFx0XFx0XFx0XFx0XFx0XFxcXFxcbitcXHRyMyA9IDA7XFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbitcXHQqKHU2NCAqKShyMTAgLSA4KSA9IHIzO1xcdFxcdFxcdFxcXFxcXG4rXFx0cjEgPSAlW21hcF9oYXNoXzhiXSBsbDtcXHRcXHRcXHRcXFxcXFxuK1xcdHIyID0gcjEwO1xcdFxcdFxcdFxcdFxcdFxcXFxcXG4rXFx0cjIgKz0gLTg7XFx0XFx0XFx0XFx0XFx0XFxcXFxcbitcXHRjYWxsICVbYnBmX21hcF9sb29rdXBfZWxlbV07XFx0XFx0XFx0XFxcXFxcbitcXHRpZiByMCAhPSAwIGdvdG8gKzI7XFx0XFx0XFx0XFx0XFxcXFxcbitcXHRyMCA9IDA7XFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbitcXHRleGl0O1xcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4rXFx0cjEgPSByMDtcXHRcXHRcXHRcXHRcXHRcXFxcXFxuK1xcdHIyID0gMDtcXHRcXHRcXHRcXHRcXHRcXHRcXFxcXFxuK1xcdHIzID0gMDtcXHRcXHRcXHRcXHRcXHRcXHRcXFxcXFxuK1xcdGNhbGwgc3RhY2tfcHRyX2FyaXRoX3ByZXNlcnZlc19mcmFtZW5vX3N1YnByb2c7XFx0XFxcXFxcbitcXHRyMCA9IDA7XFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbitcXHRleGl0O1xcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4rXFxcIlxcdDpcXG4rXFx0OiBfX2ltbShicGZfbWFwX2xvb2t1cF9lbGVtKSxcXG4rXFx0ICBfX2ltbV9hZGRyKG1hcF9oYXNoXzhiKVxcbitcXHQ6IF9fY2xvYmJlcl9hbGwpO1xcbit9XFxuK1xcbitzdGF0aWMgX191c2VkIF9fbmFrZWQgdm9pZCBzdGFja19wdHJfYXJpdGhfcHJlc2VydmVzX2ZyYW1lbm9fc3VicHJvZyh2b2lkKVxcbit7XFxuK1xcdGFzbSB2b2xhdGlsZSAoXFxcIlxcdFxcdFxcdFxcdFxcdFxcXFxcXG4rXFx0Kih1NjQgKikocjEwIC0gOCkgPSByMTtcXHRcXHRcXHRcXFxcXFxuK1xcdHI2ID0gLTg7XFx0XFx0XFx0XFx0XFx0XFxcXFxcbitcXHRyNiArPSByMTA7XFx0XFx0XFx0XFx0XFx0XFxcXFxcbitcXHQqKHU2NCAqKShyNiArIDApID0gcjI7XFx0XFx0XFx0XFxcXFxcbitcXHRyNyA9ICoodTY0ICopKHIxMCAtIDgpO1xcdFxcdFxcdFxcXFxcXG4rXFx0Kih1NjQgKikocjcgKyAwKSA9IHIzO1xcdFxcdFxcdFxcXFxcXG4rXFx0cjAgPSAwO1xcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4rXFx0ZXhpdDtcXHRcXHRcXHRcXHRcXHRcXHRcXFxcXFxuK1xcXCJcXHQ6OjogX19jbG9iYmVyX2FsbCk7XFxuK31cXG4rXFxuIGNoYXIgX2xpY2Vuc2VbXSBTRUMoXFxcImxpY2Vuc2VcXFwiKSA9IFxcXCJHUExcXFwiO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQyMzozNjo1My4wOTI0ODgyOTFaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoxNDM1MzExMzA5OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfU1lTQ0FMTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImFkanVzdF9wdHJfbWluX21heF92YWxzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciB0byBwcmVzZXJ2ZSB0aGUgZnJhbWUgbnVtYmVyIHdoZW4gcGVyZm9ybWluZyBwb2ludGVyIGFyaXRobWV0aWMgb24gc3RhY2sgcG9pbnRlcnMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBCUEYgdmVyaWZpZXIgbG9naWMgdGhhdCBoYW5kbGVzIHBvaW50ZXIgYm91bmRzIGFuZCB0eXBlcywgd2hpY2ggaXMgcmVhY2hhYmxlIHZpYSB0aGUgYnBmKCkgc3lzY2FsbC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBhMjFlN2Y0OTk0N2I4OTJmY2I3NWZhM2Q2MmQzY2M4YTQzNWRkOTIzXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdWwgMjAgMjM6MzY6NTAgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbmluZGV4IDUyYmUwYTExOGNjZTA3Li41ODAxNzE0MWQ1MmI3YiAxMDA2NDRcbi0tLSBhL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xuKysrIGIva2VybmVsL2JwZi92ZXJpZmllci5jXG5AQCAtMTM3OTYsMTEgKzEzNzk2LDE0IEBAIHN0YXRpYyBpbnQgYWRqdXN0X3B0cl9taW5fbWF4X3ZhbHMoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudixcbiBcdFx0cmV0dXJuIC1FQUNDRVM7XG4gXHR9XG4gXG4tXHQvKiBJbiBjYXNlIG9mICdzY2FsYXIgKz0gcG9pbnRlcicsIGRzdF9yZWcgaW5oZXJpdHMgcG9pbnRlciB0eXBlIGFuZCBpZC5cbi1cdCAqIFRoZSBpZCBtYXkgYmUgb3ZlcndyaXR0ZW4gbGF0ZXIgaWYgd2UgY3JlYXRlIGEgbmV3IHZhcmlhYmxlIG9mZnNldC5cbitcdC8qIEluIGNhc2Ugb2YgJ3NjYWxhciArPSBwb2ludGVyJywgZHN0X3JlZyBpbmhlcml0cyBwb2ludGVyIHR5cGUsIGlkLFxuK1x0ICogYW5kIGZvciBzdGFjayBwb2ludGVycyBhbHNvIHRoZSBmcmFtZSBudW1iZXIuIFRoZSBpZCBtYXkgYmUgb3ZlcndyaXR0ZW5cbitcdCAqIGxhdGVyIGlmIHdlIGNyZWF0ZSBhIG5ldyB2YXJpYWJsZSBvZmZzZXQuXG4gXHQgKi9cbiBcdGRzdF9yZWctXHUwMDNldHlwZSA9IHB0cl9yZWctXHUwMDNldHlwZTtcbiBcdGRzdF9yZWctXHUwMDNlaWQgPSBwdHJfcmVnLVx1MDAzZWlkO1xuK1x0aWYgKGJhc2VfdHlwZShwdHJfcmVnLVx1MDAzZXR5cGUpID09IFBUUl9UT19TVEFDSylcbitcdFx0ZHN0X3JlZy1cdTAwM2VmcmFtZW5vID0gcHRyX3JlZy1cdTAwM2VmcmFtZW5vO1xuIFxuIFx0aWYgKCFjaGVja19yZWdfc2FuZV9vZmZzZXRfc2NhbGFyKGVudiwgb2ZmX3JlZywgcHRyX3JlZy1cdTAwM2V0eXBlKSB8fFxuIFx0ICAgICFjaGVja19yZWdfc2FuZV9vZmZzZXRfcHRyKGVudiwgcHRyX3JlZywgcHRyX3JlZy1cdTAwM2V0eXBlKSlcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy92ZXJpZmllci5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdmVyaWZpZXIuY1xuaW5kZXggYmU5N2Y2ODg3ZjBlN2YuLjA0ODNhZTM0MDcyNmM5IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdmVyaWZpZXIuY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdmVyaWZpZXIuY1xuQEAgLTExLDcgKzExLDYgQEBcbiAjaW5jbHVkZSBcInZlcmlmaWVyX2FyZW5hX2dsb2JhbHMyLnNrZWwuaFwiXG4gI2luY2x1ZGUgXCJ2ZXJpZmllcl9hcnJheV9hY2Nlc3Muc2tlbC5oXCJcbiAjaW5jbHVkZSBcInZlcmlmaWVyX2FzeW5jX2NiX2NvbnRleHQuc2tlbC5oXCJcbi0jaW5jbHVkZSBcInZlcmlmaWVyX2Jhc2ljX3N0YWNrLnNrZWwuaFwiXG4gI2luY2x1ZGUgXCJ2ZXJpZmllcl9iaXRmaWVsZF93cml0ZS5za2VsLmhcIlxuICNpbmNsdWRlIFwidmVyaWZpZXJfYm91bmRzLnNrZWwuaFwiXG4gI2luY2x1ZGUgXCJ2ZXJpZmllcl9ib3VuZHNfZGVkdWN0aW9uLnNrZWwuaFwiXG5AQCAtMTY1LDcgKzE2NCw2IEBAIHZvaWQgdGVzdF92ZXJpZmllcl9hcmVuYSh2b2lkKSAgICAgICAgICAgICAgICB7IFJVTih2ZXJpZmllcl9hcmVuYSk7IH1cbiB2b2lkIHRlc3RfdmVyaWZpZXJfYXJlbmFfbGFyZ2Uodm9pZCkgICAgICAgICAgeyBSVU4odmVyaWZpZXJfYXJlbmFfbGFyZ2UpOyB9XG4gdm9pZCB0ZXN0X3ZlcmlmaWVyX2FyZW5hX2dsb2JhbHMxKHZvaWQpICAgICAgIHsgUlVOKHZlcmlmaWVyX2FyZW5hX2dsb2JhbHMxKTsgfVxuIHZvaWQgdGVzdF92ZXJpZmllcl9hcmVuYV9nbG9iYWxzMih2b2lkKSAgICAgICB7IFJVTih2ZXJpZmllcl9hcmVuYV9nbG9iYWxzMik7IH1cbi12b2lkIHRlc3RfdmVyaWZpZXJfYmFzaWNfc3RhY2sodm9pZCkgICAgICAgICAgeyBSVU4odmVyaWZpZXJfYmFzaWNfc3RhY2spOyB9XG4gdm9pZCB0ZXN0X3ZlcmlmaWVyX2JpdGZpZWxkX3dyaXRlKHZvaWQpICAgICAgIHsgUlVOKHZlcmlmaWVyX2JpdGZpZWxkX3dyaXRlKTsgfVxuIHZvaWQgdGVzdF92ZXJpZmllcl9ib3VuZHModm9pZCkgICAgICAgICAgICAgICB7IFJVTih2ZXJpZmllcl9ib3VuZHMpOyB9XG4gdm9pZCB0ZXN0X3ZlcmlmaWVyX2JvdW5kc19kZWR1Y3Rpb24odm9pZCkgICAgIHsgUlVOKHZlcmlmaWVyX2JvdW5kc19kZWR1Y3Rpb24pOyB9XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvdmVyaWZpZXJfYmFzaWNfc3RhY2suYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmNcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XG5pbmRleCAwMDAwMDAwMDAwMDAwMC4uMjc5ZjM4OTcyOWI4ZWZcbi0tLSAvZGV2L251bGxcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmNcbkBAIC0wLDAgKzEsMjggQEBcbisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG4rXG4rI2luY2x1ZGUgXHUwMDNjdGVzdF9wcm9ncy5oXHUwMDNlXG4rXG4rI2luY2x1ZGUgXCJjYXBfaGVscGVycy5oXCJcbisjaW5jbHVkZSBcInZlcmlmaWVyX2Jhc2ljX3N0YWNrLnNrZWwuaFwiXG4rXG4rdm9pZCB0ZXN0X3ZlcmlmaWVyX2Jhc2ljX3N0YWNrKHZvaWQpXG4re1xuK1x0c3RydWN0IHRlc3RfbG9hZGVyIHRlc3RlciA9IHt9O1xuK1x0X191NjQgb2xkX2NhcHM7XG4rXHRpbnQgZXJyO1xuK1xuK1x0LyogdGVzdF92ZXJpZmllciB0ZXN0cyBhcmUgZXhlY3V0ZWQgdy9vIENBUF9TWVNfQURNSU4sIGRvIHRoZSBzYW1lIGhlcmUgKi9cbitcdGVyciA9IGNhcF9kaXNhYmxlX2VmZmVjdGl2ZSgxVUxMIFx1MDAzY1x1MDAzYyBDQVBfU1lTX0FETUlOLCBcdTAwMjZvbGRfY2Fwcyk7XG4rXHRpZiAoZXJyKSB7XG4rXHRcdFBSSU5UX0ZBSUwoXCJmYWlsZWQgdG8gZHJvcCBDQVBfU1lTX0FETUlOOiAlaSwgJXNcXG5cIiwgZXJyLCBzdHJlcnJvcigtZXJyKSk7XG4rXHRcdHJldHVybjtcbitcdH1cbitcbitcdHRlc3RfbG9hZGVyX19ydW5fc3VidGVzdHMoXHUwMDI2dGVzdGVyLCBcInZlcmlmaWVyX2Jhc2ljX3N0YWNrXCIsXG4rXHRcdFx0XHQgIHZlcmlmaWVyX2Jhc2ljX3N0YWNrX19lbGZfYnl0ZXMpO1xuK1x0dGVzdF9sb2FkZXJfZmluaShcdTAwMjZ0ZXN0ZXIpO1xuK1xuK1x0ZXJyID0gY2FwX2VuYWJsZV9lZmZlY3RpdmUob2xkX2NhcHMsIE5VTEwpO1xuK1x0aWYgKGVycilcbitcdFx0UFJJTlRfRkFJTChcImZhaWxlZCB0byByZXN0b3JlIENBUF9TWVNfQURNSU46ICVpLCAlc1xcblwiLCBlcnIsIHN0cmVycm9yKC1lcnIpKTtcbit9XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfYmFzaWNfc3RhY2suY1xuaW5kZXggZmI2MmUwOWYyMTE0NmQuLjYzNDE4M2ZjODY4ODNmIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX2Jhc2ljX3N0YWNrLmNcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9iYXNpY19zdGFjay5jXG5AQCAtOTcsNCArOTcsNDUgQEAgX19uYWtlZCB2b2lkIG1pc2FsaWduZWRfcmVhZF9mcm9tX3N0YWNrKHZvaWQpXG4gXCJcdDo6OiBfX2Nsb2JiZXJfYWxsKTtcbiB9XG4gXG4rU0VDKFwic29ja2V0XCIpXG4rX19kZXNjcmlwdGlvbihcInN0YWNrIHBvaW50ZXIgYXJpdGhtZXRpYyBwcmVzZXJ2ZXMgZnJhbWUgbnVtYmVyXCIpXG4rX19mYWlsdXJlIF9fbXNnKFwiUjcgaW52YWxpZCBtZW0gYWNjZXNzICdzY2FsYXInXCIpXG4rX19uYWtlZCB2b2lkIHN0YWNrX3B0cl9hcml0aF9wcmVzZXJ2ZXNfZnJhbWVubyh2b2lkKVxuK3tcbitcdGFzbSB2b2xhdGlsZSAoXCJcdFx0XHRcdFx0XFxcbitcdHIzID0gMDtcdFx0XHRcdFx0XHRcXFxuK1x0Kih1NjQgKikocjEwIC0gOCkgPSByMztcdFx0XHRcXFxuK1x0cjEgPSAlW21hcF9oYXNoXzhiXSBsbDtcdFx0XHRcXFxuK1x0cjIgPSByMTA7XHRcdFx0XHRcdFxcXG4rXHRyMiArPSAtODtcdFx0XHRcdFx0XFxcbitcdGNhbGwgJVticGZfbWFwX2xvb2t1cF9lbGVtXTtcdFx0XHRcXFxuK1x0aWYgcjAgIT0gMCBnb3RvICsyO1x0XHRcdFx0XFxcbitcdHIwID0gMDtcdFx0XHRcdFx0XHRcXFxuK1x0ZXhpdDtcdFx0XHRcdFx0XHRcXFxuK1x0cjEgPSByMDtcdFx0XHRcdFx0XFxcbitcdHIyID0gMDtcdFx0XHRcdFx0XHRcXFxuK1x0cjMgPSAwO1x0XHRcdFx0XHRcdFxcXG4rXHRjYWxsIHN0YWNrX3B0cl9hcml0aF9wcmVzZXJ2ZXNfZnJhbWVub19zdWJwcm9nO1x0XFxcbitcdHIwID0gMDtcdFx0XHRcdFx0XHRcXFxuK1x0ZXhpdDtcdFx0XHRcdFx0XHRcXFxuK1wiXHQ6XG4rXHQ6IF9faW1tKGJwZl9tYXBfbG9va3VwX2VsZW0pLFxuK1x0ICBfX2ltbV9hZGRyKG1hcF9oYXNoXzhiKVxuK1x0OiBfX2Nsb2JiZXJfYWxsKTtcbit9XG4rXG4rc3RhdGljIF9fdXNlZCBfX25ha2VkIHZvaWQgc3RhY2tfcHRyX2FyaXRoX3ByZXNlcnZlc19mcmFtZW5vX3N1YnByb2codm9pZClcbit7XG4rXHRhc20gdm9sYXRpbGUgKFwiXHRcdFx0XHRcdFxcXG4rXHQqKHU2NCAqKShyMTAgLSA4KSA9IHIxO1x0XHRcdFxcXG4rXHRyNiA9IC04O1x0XHRcdFx0XHRcXFxuK1x0cjYgKz0gcjEwO1x0XHRcdFx0XHRcXFxuK1x0Kih1NjQgKikocjYgKyAwKSA9IHIyO1x0XHRcdFxcXG4rXHRyNyA9ICoodTY0ICopKHIxMCAtIDgpO1x0XHRcdFxcXG4rXHQqKHU2NCAqKShyNyArIDApID0gcjM7XHRcdFx0XFxcbitcdHIwID0gMDtcdFx0XHRcdFx0XHRcXFxuK1x0ZXhpdDtcdFx0XHRcdFx0XHRcXFxuK1wiXHQ6OjogX19jbG9iYmVyX2FsbCk7XG4rfVxuK1xuIGNoYXIgX2xpY2Vuc2VbXSBTRUMoXCJsaWNlbnNlXCIpID0gXCJHUExcIjtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDIzOjM2OjUzLjA5MjQ5MTI0MloiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ2MTg4ODcxODMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQlBGIFZlcmlmaWVyIFBhdGNoIEFuYWx5c2lzKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IG1vZGlmaWVzIGBrZXJuZWwvYnBmL3ZlcmlmaWVyLmNgLiBTcGVjaWZpY2FsbHksIHRoZSBjaGFuZ2UgaXMgd2l0aGluIHRoZSBgYWRqdXN0X3B0cl9taW5fbWF4X3ZhbHNgIGZ1bmN0aW9uLiBUaGUgY29kZSdzIGxvZ2ljIGhhbmRsZXMgdGhlIGNhc2Ugb2YgYHNjYWxhciArPSBwb2ludGVyYCBvcGVyYXRpb25zLlxuXG5NeSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgcHJldmlvdXNseSwgd2hlbiB5b3UgZGlkIHNvbWV0aGluZyBsaWtlIHRoYXQsIHRoZSBkZXN0aW5hdGlvbiByZWdpc3RlciAoYGRzdF9yZWdgKSB3YXMgaW5oZXJpdGluZyB0aGUgcG9pbnRlcidzIHR5cGUgYW5kIElELCB3aGljaCBpcyBjb3JyZWN0LiBUaGUgSUQgbWlnaHQgZ2V0IG92ZXJ3cml0dGVuIGxhdGVyLCBhbmQgdGhhdCdzIGZpbmUuIEhvd2V2ZXIsIGl0IHdhc24ndCBwcmVzZXJ2aW5nIHRoZSBmcmFtZSBudW1iZXIgYXNzb2NpYXRlZCB3aXRoIHN0YWNrIHBvaW50ZXJzLiBUaGlzIGNoYW5nZSBhZGRzIGEgY2hlY2sgdG8gZW5zdXJlIHRoYXQgaWYgdGhlIHBvaW50ZXIgKGBwdHJfcmVnYCkgaXMgYSBzdGFjayBwb2ludGVyIChpLmUuLCBgYmFzZV90eXBlKHB0cl9yZWctXHUwMDNldHlwZSkgPT0gUFRSX1RPX1NUQUNLYCksIHRoZSBkZXN0aW5hdGlvbiByZWdpc3RlciAqYWxzbyogZ2V0cyB0aGUgY29ycmVjdCBgZnJhbWVub2AuXG5cblNvLCBpdCdzIGEgc3VidGxlIGJ1dCBpbXBvcnRhbnQgZml4IHRvIGhvdyB0aGUgQlBGIHZlcmlmaWVyIGhhbmRsZXMgc3RhY2sgcG9pbnRlciBhcml0aG1ldGljLiBUaGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgQlBGIHZlcmlmaWVyLCBhZGRyZXNzaW5nIGEgc3BlY2lmaWMgYnVnLiBUaGVyZWZvcmUsIGJlY2F1c2UgaXQncyBhIG1vZGlmaWNhdGlvbiBvZiBjcml0aWNhbCBrZXJuZWwgY29kZSB0aGF0IGFmZmVjdHMgbWVtb3J5IHNhZmV0eSBhbmQgcHJvZ3JhbSBleGVjdXRpb24sIEkgc2hvdWxkIGZsYWcgdGhpcyBhcyB3b3J0aCBmdXp6aW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjA5LCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjUyLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMjM6MzY6NTcuNzExMzgxNjA0WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyMjA2MTA4MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJhZGp1c3RfcHRyX21pbl9tYXhfdmFsc1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJrZXJuZWwvYnBmL3ZlcmlmaWVyLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwia2VybmVsL2JwZi92ZXJpZmllci5jPTQwMDM9c3RhdGljIGludCBjaGVja19zdGFja19yZWFkKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNDAyNy1cXHQgKiBjaGVja19zdGFja19hY2Nlc3NfZm9yX3B0cl9hcml0aG1ldGljKCkgY2FsbGVkIGJ5XFxua2VybmVsL2JwZi92ZXJpZmllci5jOjQwMjg6XFx0ICogYWRqdXN0X3B0cl9taW5fbWF4X3ZhbHMoKSBwcmV2ZW50cyB1c2VycyBmcm9tIGNyZWF0aW5nIHN0YWNrIHBvaW50ZXJzXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTQwMjktXFx0ICogd2l0aCB2YXJpYWJsZSBvZmZzZXRzLCB0aGVyZWZvcmUgbm8gY2hlY2sgaXMgcmVxdWlyZWQgaGVyZS4gRnVydGhlcixcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xMzY4MD1zdGF0aWMgaW50IHNhbml0aXplX2NoZWNrX2JvdW5kcyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LFxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTEzNzE2LSAqL1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxMzcxNzpzdGF0aWMgaW50IGFkanVzdF9wdHJfbWluX21heF92YWxzKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTEzNzE4LVxcdFxcdFxcdFxcdCAgIHN0cnVjdCBicGZfaW5zbiAqaW5zbixcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xNDgwND1zdGF0aWMgaW50IGFkanVzdF9yZWdfbWluX21heF92YWxzKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTQ4NjYtXFx0XFx0XFx0XFx0XFx0cmV0dXJuIGVycjtcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTQ4Njc6XFx0XFx0XFx0XFx0cmV0dXJuIGFkanVzdF9wdHJfbWluX21heF92YWxzKGVudiwgaW5zbixcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTQ4NjgtXFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgICAgIHNyY19yZWcsIGRzdF9yZWcpO1xcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE0ODc0LVxcdFxcdFxcdFxcdHJldHVybiBlcnI7XFxua2VybmVsL2JwZi92ZXJpZmllci5jOjE0ODc1OlxcdFxcdFxcdHJldHVybiBhZGp1c3RfcHRyX21pbl9tYXhfdmFscyhlbnYsIGluc24sXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE0ODc2LVxcdFxcdFxcdFxcdFxcdFxcdCAgICAgICBkc3RfcmVnLCBzcmNfcmVnKTtcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xNDg5MC1cXHRcXHRpZiAocHRyX3JlZykgLyogcG9pbnRlciArPSBLICovXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjE0ODkxOlxcdFxcdFxcdHJldHVybiBhZGp1c3RfcHRyX21pbl9tYXhfdmFscyhlbnYsIGluc24sXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE0ODkyLVxcdFxcdFxcdFxcdFxcdFxcdCAgICAgICBwdHJfcmVnLCBzcmNfcmVnKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMjM6MzY6NTguMTMzNDUxNTI0WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQ0NDIxOTg2NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbnZlc3RpZ2F0aW5nIHRoZSBDb25maWd1cmF0aW9uIFJlcXVpcmVtZW50cyBmb3IgYGFkanVzdF9wdHJfbWluX21heF92YWxzYCoqXG5cbk9rYXksIHNvIGBhZGp1c3RfcHRyX21pbl9tYXhfdmFsc2AgaXMgY2FsbGVkIGJ5IGBhZGp1c3RfcmVnX21pbl9tYXhfdmFsc2AuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCB3aGF0IGFyZSB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgdGhhdCBhcmUgZ29pbmcgdG8gaW1wYWN0IHRoaXM/IEdpdmVuIG15IGJhY2tncm91bmQsIEknbSBwcmV0dHkgc3VyZSBCUEYgaXMgdXN1YWxseSB0b2dnbGVkIG9uIGJ5IGBDT05GSUdfQlBGYCBhbmQgYENPTkZJR19CUEZfU1lTQ0FMTGAuIEknbGwgd2FudCB0byB2ZXJpZnkgdGhhdCBhbmQgZ2V0IHRoZSBkZXBlbmRlbmNpZXMgc3RyYWlnaHQuIFRvIGRvIHRoaXMsIEknbSBnb2luZyB0byBxdWlja2x5IGNoZWNrIGluIGBrZXJuZWwvYnBmL01ha2VmaWxlYCBvciBga2VybmVsL2JwZi9LY29uZmlnYC4gVGhhdCBzaG91bGQgZ2l2ZSBtZSBhIHNvbGlkIHZpZXcgb2YgdGhlIGNvbmZpZ3VyYXRpb24gbGFuZHNjYXBlIGhlcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ3MTAsIk91dHB1dFRva2VucyI6MjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQyMzozNzowMS41Nzc2NzU2OTlaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzQzODM5NDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidmVyaWZpZXIub1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJrZXJuZWwvYnBmL01ha2VmaWxlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImtlcm5lbC9icGYvTWFrZWZpbGU9Nz1DRkxBR1NfY29yZS5vICs9IC1Xbm8tb3ZlcnJpZGUtaW5pdCAkKGNmbGFncy1ub2djc2UteXkpXFxua2VybmVsL2JwZi9NYWtlZmlsZS04LVxcbmtlcm5lbC9icGYvTWFrZWZpbGU6OTpvYmotJChDT05GSUdfQlBGX1NZU0NBTEwpICs9IHN5c2NhbGwubyB2ZXJpZmllci5vIGlub2RlLm8gaGVscGVycy5vIHRudW0ubyBjbnVtLm8gbG9nLm8gdG9rZW4ubyBsaXZlbmVzcy5vIGNvbnN0X2ZvbGQub1xcbmtlcm5lbC9icGYvTWFrZWZpbGUtMTAtb2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSArPSBicGZfaXRlci5vIG1hcF9pdGVyLm8gdGFza19pdGVyLm8gcHJvZ19pdGVyLm8gbGlua19pdGVyLm9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMjM6Mzc6MDEuNjUyMDY3NDFaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NjkzNzY0OTAwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIFBhdGNoJ3MgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyBJJ3ZlIHplcm9lZCBpbiBvbiB0aGUgYEJQRl9TWVNDQUxMYCBjb25maWd1cmF0aW9uIG9wdGlvbi4gVGhhdCdzIG15IHN0YXJ0aW5nIHBvaW50LiBUaGUgY3J1Y2lhbCBmdW5jdGlvbiB3aXRoaW4gdGhlIHBhdGNoLCB0aGUgb25lIHRoYXQgcmVhbGx5IHNlZW1zIHRvIGdyYWIgbXkgYXR0ZW50aW9uLCBpcyBgYWRqdXN0X3B0cl9taW5fbWF4X3ZhbHNgLlxuXG5MZXQgbWUganVzdCBxdWlja2x5IGNvbmZpcm0gdGhhdCB0aGVyZSBhcmVuJ3QgYW55IG90aGVyIGZ1bmN0aW9ucyB0aGF0IHdhcnJhbnQgc2ltaWxhciBhdHRlbnRpb24uIE5vcGUsIGBhZGp1c3RfcHRyX21pbl9tYXhfdmFsc2AgcmVtYWlucyB0aGUga2V5LlxuXG5Ob3csIHRoZSBpbXBvcnRhbnQgcXVlc3Rpb246IGlzIHRoaXMgZnVuY3Rpb24gYSBcImhvdCBwYXRoXCI/IE5vdCBpbiB0aGUgdXN1YWwgc2Vuc2Ugb2YgcmVhbC10aW1lIHBhY2tldCBwcm9jZXNzaW5nIG9yIHNjaGVkdWxlciBjb2RlLCBuby4gQnV0IHRoaXMgaXMgdGhlIEJQRiB2ZXJpZmllciwgYW5kIGBhZGp1c3RfcHRyX21pbl9tYXhfdmFsc2AgaXMgKnBhcnQqIG9mIHRoZSB2ZXJpZmllci4gSXQncyBleGVjdXRlZCB3aGVuIGEgQlBGIHByb2dyYW0gaXMgbG9hZGVkLCB3aGljaCBtYWtlcyBpdCBhIGNyaXRpY2FsIHBhcnQgb2YgdGhlIGF0dGFjayBzdXJmYWNlLCBhbmQgYSBwZXJmZWN0IHRhcmdldCBmb3IgZnV6emluZyB2aWEgYGJwZigpYCBzeXNjYWxscywgYXMgU3l6a2FsbGVyIGRvZXMuIFRoaXMgaXMgd2hlcmUgdGhlIHZ1bG5lcmFiaWxpdHkgaHVudGluZyBpcy5cblxuQWxyaWdodCwgSSdsbCBxdWlja2x5IHZlcmlmeSB0aGF0IGBhZGp1c3RfcHRyX21pbl9tYXhfdmFsc2AgaXMgZGVjbGFyZWQgc3RhdGljLiBZZXMsIGl0IGlzLiBBbGwgdGhlIGJldHRlci5cblxuTGV0J3Mgc3VtbWFyaXplIHRoaXMuXG5cbioqV29ydGhGdXp6aW5nOiBUcnVlKipcbioqRm9jdXNTeW1ib2xzOiBbXCJhZGp1c3RfcHRyX21pbl9tYXhfdmFsc1wiXSoqXG4qKkVuYWJsZUNvbmZpZ3M6IFtcIkJQRl9TWVNDQUxMXCJdKipcbioqUmVhc29uaW5nOiBcIlRoaXMgcGF0Y2ggZnVuZGFtZW50YWxseSBhbHRlcnMgdGhlIEJQRiB2ZXJpZmllcidzIGJlaGF2aW9yIGJ5IHByZXNlcnZpbmcgdGhlIGZyYW1lIG51bWJlciBkdXJpbmcgcG9pbnRlciBhcml0aG1ldGljIG9uIHN0YWNrIHBvaW50ZXJzLiBUaGlzIGNoYW5nZSBkaXJlY3RseSBpbXBhY3RzIHRoZSBjb3JlIGxvZ2ljIG9mIHRoZSB2ZXJpZmllciwgcGFydGljdWxhcmx5IGhvdyBpdCBoYW5kbGVzIHBvaW50ZXIgYm91bmRzIGFuZCB0eXBlcy4gVGhlIEJQRiB2ZXJpZmllciBsb2dpYyBpcyBhY2Nlc3NpYmxlIHRocm91Z2ggdGhlIGBicGYoKWAgc3lzY2FsbCBhbmQgaXMgdGhlcmVmb3JlIHN1aXRhYmxlIGZvciBmdXp6aW5nLlwiKipcblxuXG4iLCJJbnB1dFRva2VucyI6NTE0MiwiT3V0cHV0VG9rZW5zIjoxMDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNzcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMjM6Mzc6MDcuMzQ1ODM1MzJaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk5NzYxMDUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfU1lTQ0FMTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImFkanVzdF9wdHJfbWluX21heF92YWxzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciB0byBwcmVzZXJ2ZSB0aGUgZnJhbWUgbnVtYmVyIHdoZW4gcGVyZm9ybWluZyBwb2ludGVyIGFyaXRobWV0aWMgb24gc3RhY2sgcG9pbnRlcnMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBCUEYgdmVyaWZpZXIgbG9naWMgdGhhdCBoYW5kbGVzIHBvaW50ZXIgYm91bmRzIGFuZCB0eXBlcywgd2hpY2ggaXMgcmVhY2hhYmxlIHZpYSB0aGUgYnBmKCkgc3lzY2FsbC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfU1lTQ0FMTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImFkanVzdF9wdHJfbWluX21heF92YWxzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciB0byBwcmVzZXJ2ZSB0aGUgZnJhbWUgbnVtYmVyIHdoZW4gcGVyZm9ybWluZyBwb2ludGVyIGFyaXRobWV0aWMgb24gc3RhY2sgcG9pbnRlcnMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBCUEYgdmVyaWZpZXIgbG9naWMgdGhhdCBoYW5kbGVzIHBvaW50ZXIgYm91bmRzIGFuZCB0eXBlcywgd2hpY2ggaXMgcmVhY2hhYmxlIHZpYSB0aGUgYnBmKCkgc3lzY2FsbC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow5tfzn[1] Phase: Succeeded StartedAt: 2026-07-20 23:37:19 +0000 UTC FinishedAt: 2026-07-20 23:37:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5tfzn[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-20 23:37:19 +0000 UTC FinishedAt: 2026-07-20 23:37:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5tfzn[2] Phase: Succeeded StartedAt: 2026-07-20 23:37:19 +0000 UTC FinishedAt: 2026-07-21 04:07:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5tfzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["adjust_ptr_min_max_vals"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"5f4023e8-1f95-420e-a9df-f3dbfacb47bf","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-20 23:37:19 +0000 UTC FinishedAt: 2026-07-21 04:07:51 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["adjust_ptr_min_max_vals"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"5f4023e8-1f95-420e-a9df-f3dbfacb47bf","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflow5tfzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["adjust_ptr_min_max_vals"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"5f4023e8-1f95-420e-a9df-f3dbfacb47bf","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-20 23:37:19 +0000 UTC FinishedAt: 2026-07-20 23:37:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5tfzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["adjust_ptr_min_max_vals"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"5f4023e8-1f95-420e-a9df-f3dbfacb47bf","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-20 23:37:19 +0000 UTC FinishedAt: 2026-07-20 23:37:37 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow5tfzn/series-workflow5tfzn-convert-artifact-3547352696/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow5tfzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["adjust_ptr_min_max_vals"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"5f4023e8-1f95-420e-a9df-f3dbfacb47bf","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-20 23:37:45 +0000 UTC FinishedAt: 2026-07-21 00:35:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5tfzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["adjust_ptr_min_max_vals"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"5f4023e8-1f95-420e-a9df-f3dbfacb47bf","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-20 23:37:45 +0000 UTC FinishedAt: 2026-07-21 00:35:40 +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:*c503b5af-3273-4041-89a0-04cd9b8a085f,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-workflow5tfzn/series-workflow5tfzn-convert-artifact-3547352696/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": "70ef1ca5-add4-490c-9846-194adaa78002", "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-workflow5tfzn/series-workflow5tfzn-build-action-2883982126/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow5tfzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["adjust_ptr_min_max_vals"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"5f4023e8-1f95-420e-a9df-f3dbfacb47bf","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-20 23:37:45 +0000 UTC FinishedAt: 2026-07-21 00:35:28 +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:*c503b5af-3273-4041-89a0-04cd9b8a085f,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-workflow5tfzn/series-workflow5tfzn-convert-artifact-3547352696/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": "70ef1ca5-add4-490c-9846-194adaa78002", "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-workflow5tfzn/series-workflow5tfzn-build-action-2883982126/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow5tfzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["adjust_ptr_min_max_vals"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"5f4023e8-1f95-420e-a9df-f3dbfacb47bf","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-21 00:35:40 +0000 UTC FinishedAt: 2026-07-21 00:35:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5tfzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["adjust_ptr_min_max_vals"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"5f4023e8-1f95-420e-a9df-f3dbfacb47bf","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-21 00:35:40 +0000 UTC FinishedAt: 2026-07-21 00:35:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5tfzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["adjust_ptr_min_max_vals"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"5f4023e8-1f95-420e-a9df-f3dbfacb47bf","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-21 00:35:40 +0000 UTC FinishedAt: 2026-07-21 00:36:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5tfzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["adjust_ptr_min_max_vals"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"5f4023e8-1f95-420e-a9df-f3dbfacb47bf","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-21 00:35:40 +0000 UTC FinishedAt: 2026-07-21 00:35:57 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"5f4023e8-1f95-420e-a9df-f3dbfacb47bf","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow5tfzn/series-workflow5tfzn-convert-artifact-2951800287/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow5tfzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["adjust_ptr_min_max_vals"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"5f4023e8-1f95-420e-a9df-f3dbfacb47bf","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-21 00:36:02 +0000 UTC FinishedAt: 2026-07-21 00:38:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5tfzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["adjust_ptr_min_max_vals"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"5f4023e8-1f95-420e-a9df-f3dbfacb47bf","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-21 00:36:02 +0000 UTC FinishedAt: 2026-07-21 00:37:56 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*70ef1ca5-add4-490c-9846-194adaa78002,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-workflow5tfzn/series-workflow5tfzn-build-action-2883982126/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-workflow5tfzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["adjust_ptr_min_max_vals"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"5f4023e8-1f95-420e-a9df-f3dbfacb47bf","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-21 00:38:07 +0000 UTC FinishedAt: 2026-07-21 00:38:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5tfzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["adjust_ptr_min_max_vals"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"5f4023e8-1f95-420e-a9df-f3dbfacb47bf","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-21 00:38:07 +0000 UTC FinishedAt: 2026-07-21 00:38:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5tfzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["adjust_ptr_min_max_vals"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"5f4023e8-1f95-420e-a9df-f3dbfacb47bf","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-21 00:38:07 +0000 UTC FinishedAt: 2026-07-21 01:01:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5tfzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["adjust_ptr_min_max_vals"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"5f4023e8-1f95-420e-a9df-f3dbfacb47bf","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-21 00:38:07 +0000 UTC FinishedAt: 2026-07-21 01:01:08 +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:*c503b5af-3273-4041-89a0-04cd9b8a085f,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-workflow5tfzn/series-workflow5tfzn-convert-artifact-2951800287/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": "c8ff2ff5-3cac-432b-9b4c-8ef7dca1a5b7", "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-workflow5tfzn/series-workflow5tfzn-build-action-4290868083/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow5tfzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["adjust_ptr_min_max_vals"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"5f4023e8-1f95-420e-a9df-f3dbfacb47bf","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-21 00:38:07 +0000 UTC FinishedAt: 2026-07-21 01:00:57 +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:*c503b5af-3273-4041-89a0-04cd9b8a085f,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-workflow5tfzn/series-workflow5tfzn-convert-artifact-2951800287/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": "c8ff2ff5-3cac-432b-9b4c-8ef7dca1a5b7", "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-workflow5tfzn/series-workflow5tfzn-build-action-4290868083/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow5tfzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["adjust_ptr_min_max_vals"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"5f4023e8-1f95-420e-a9df-f3dbfacb47bf","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-21 01:01:08 +0000 UTC FinishedAt: 2026-07-21 01:01:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5tfzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["adjust_ptr_min_max_vals"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"5f4023e8-1f95-420e-a9df-f3dbfacb47bf","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-21 01:01:08 +0000 UTC FinishedAt: 2026-07-21 01:01:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5tfzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["adjust_ptr_min_max_vals"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"5f4023e8-1f95-420e-a9df-f3dbfacb47bf","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-21 01:01:08 +0000 UTC FinishedAt: 2026-07-21 01:03:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5tfzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["adjust_ptr_min_max_vals"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"5f4023e8-1f95-420e-a9df-f3dbfacb47bf","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-21 01:01:08 +0000 UTC FinishedAt: 2026-07-21 01:03:05 +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:*c8ff2ff5-3cac-432b-9b4c-8ef7dca1a5b7,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-workflow5tfzn/series-workflow5tfzn-build-action-4290868083/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-workflow5tfzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["adjust_ptr_min_max_vals"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"5f4023e8-1f95-420e-a9df-f3dbfacb47bf","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-21 01:03:15 +0000 UTC FinishedAt: 2026-07-21 04:07:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5tfzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["adjust_ptr_min_max_vals"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"5f4023e8-1f95-420e-a9df-f3dbfacb47bf","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-21 01:03:15 +0000 UTC FinishedAt: 2026-07-21 04:07:51 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["adjust_ptr_min_max_vals"],"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:*70ef1ca5-add4-490c-9846-194adaa78002,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*c8ff2ff5-3cac-432b-9b4c-8ef7dca1a5b7,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-workflow5tfzn/series-workflow5tfzn-build-action-2883982126/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-workflow5tfzn/series-workflow5tfzn-build-action-4290868083/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow5tfzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["adjust_ptr_min_max_vals"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"5f4023e8-1f95-420e-a9df-f3dbfacb47bf","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-21 01:03:15 +0000 UTC FinishedAt: 2026-07-21 01:03:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5tfzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["adjust_ptr_min_max_vals"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"5f4023e8-1f95-420e-a9df-f3dbfacb47bf","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-21 01:03:15 +0000 UTC FinishedAt: 2026-07-21 01:03:21 +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-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["adjust_ptr_min_max_vals"],"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-workflow5tfzn/series-workflow5tfzn-convert-artifact-1056613624/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow5tfzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["adjust_ptr_min_max_vals"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"5f4023e8-1f95-420e-a9df-f3dbfacb47bf","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-21 01:03:15 +0000 UTC FinishedAt: 2026-07-21 01:03:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5tfzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["adjust_ptr_min_max_vals"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"5f4023e8-1f95-420e-a9df-f3dbfacb47bf","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-21 01:03:15 +0000 UTC FinishedAt: 2026-07-21 01:03:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5tfzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["adjust_ptr_min_max_vals"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"5f4023e8-1f95-420e-a9df-f3dbfacb47bf","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-21 01:03:15 +0000 UTC FinishedAt: 2026-07-21 01:03:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5tfzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["adjust_ptr_min_max_vals"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"5f4023e8-1f95-420e-a9df-f3dbfacb47bf","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-21 01:03:25 +0000 UTC FinishedAt: 2026-07-21 04:07:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5tfzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["adjust_ptr_min_max_vals"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cfce77b63375dac81d53f2f85593c548415206b7","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"5f4023e8-1f95-420e-a9df-f3dbfacb47bf","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-21 01:03:25 +0000 UTC FinishedAt: 2026-07-21 04:07:41 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*70ef1ca5-add4-490c-9846-194adaa78002,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*c8ff2ff5-3cac-432b-9b4c-8ef7dca1a5b7,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-workflow5tfzn/series-workflow5tfzn-build-action-2883982126/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-workflow5tfzn/series-workflow5tfzn-build-action-4290868083/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-workflow5tfzn/series-workflow5tfzn-convert-artifact-1056613624/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,}